Olá galera, olha eu aqui de novo.
Eis uma coisa que preciso sempre usar, mas ainda não havia documentado aqui.
Eu sempre uso compartilhamentos e montagens de sistema de arquivos ou pastas via NFS. E de vez em quando, quando eu monto um novo servidor, eu costumo instalar e configurar isso para que outro servidor que tenho (servidor de backup), possa ler esse sistema de arquivos e fazer backup de algumas pastas. Então toda vez que eu tenho que configurar isso para um novo server, eu tenho que consultar uns comandos, e por isso hoje eu coloco aqui o procedimento.
NFS (acrônimo para Network File System) é um sistema de arquivos distribuídos desenvolvido inicialmente pela Sun Microsystems, a fim de compartilhar arquivos e diretórios entre computadores conectados em rede, formando assim um diretório virtual. Saiba mais.
Daí você deve estar se perguntando porque não usar o Samba para isso?
Bom, minha resposta é que eu prefiro usar o Samba para criar um servidor de arquivos e compartilhar e controlar acessos aos diretórios para usuários de uma rede com estações de trabalho Windows, enquanto uso o NFS para compartilhar diretórios entre servidores. Lembrando que o Windows não possui em sua versão Desktop o serviço de cliente de NFS ativo, apenas na versão Enterprise e em servidores Windows.
Este procedimento pode ser feito no Redhat e derivados como CentOS, Oracle Linux, ou no Debian, Ubuntu e derivados. Nestas Distros tudo será feito através de comandos de terminal. Também coloquei uma parte especial para fazer isso no SUSE/openSUSE através do Yast e sem usar nenhum comando de terminal.
Vamos lá?
Instalação
Ambiente de teste:
Servidor: 192.168.0.100
Máquina cliente: 192.168.0.150
1 – Instale o Serviço de NFS no Servidor
Se você estiver usando o CentOS, ou RedHat ou Oracle Linux:
sudo yum install nfs-utils
Se você estiver usando o Debian, Ubuntu, e derivados:
sudo apt install nfs-kernel-server
2 – Habilite e inicie os seguintes serviços
sudo systemctl enable rpcbind sudo systemctl enable nfs-server sudo systemctl enable nfs-lock sudo systemctl enable nfs-idmap sudo systemctl start rpcbind sudo systemctl start nfs-server sudo systemctl start nfs-lock sudo systemctl start nfs-idmap
3 – Configure Seus Compartilhamentos
3.1 – Escolhendo ou Criando Pastas Para Compartilhar
Neste exemplo, eu criei os diretórios “Backup” e “Dados”, então faz-se necessário usar os seguintes comandos para alterar as permissões neles:
sudo chmod -R 755 /media/Backup sudo chown nfsnobody:nfsnobody /media/Backup sudo chmod -R 755 /media/Dados sudo chown nfsnobody:nfsnobody /media/Dados
Obs. Caso você queira compartilhar seu diretório “/home” ou alguma pasta dentro dele, não altere as permissões da mesma para não arruinar a hierarquia de permissões.
3.2 – Adicionando suas Pastas às configurações do NFS
Neste passo o procedimento é simples, basta editar usando seu editor de texto favorito o seguinte arquivo abaixo (eu usarei o editor nano):
sudo nano /etc/exports
Dentro do arquivo vazio, coloque o caminho de seu diretório que deseja compartilhar.
Neste exemplo abaixo eu irei compartilhar as pastas fictícias chamadas “Backup” e “Dados” com o servidor com o ip:192.168.0.150.
/media/Backup/ 192.168.0.150(rw,sync,no_root_squash,no_all_squash) /media/Dados/ 192.168.0.150(rw,sync,no_root_squash,no_all_squash)
Obs. Note que o 192.168.0.150 é o IP da máquina cliente, se você deseja que qualquer outro cliente possa acessá-lo, você precisa adicionar o endereço IP, caso contrário você pode adicionar um “*”. E nem preciso mencionar, (mas vou), que o IP do servidor e máquina cliente devem estar pingando/comunicando um com o outro.
3.3 – Agora basta reiniciar o serviço de NFS
sudo systemctl restart nfs-server
3.4 – Liberando NFS no Firewall
Caso esteja com o Firewall ativo no CentOS, Fedora, o que é padrão em muitos server, precisamos adicionar o serviço de NFS na public zone do Firewall.
sudo firewall-cmd --permanent --zone=public --add-service=nfs sudo firewall-cmd --permanent --zone=public --add-service=mountd sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind sudo firewall-cmd --reload
Obs. Se isso não for feito poderá dar erro de conexão com timeout no lado do cliente.
No Ubuntu (se estiver com o Firewall habilitado)
sudo ufw allow from 192.168.0.100 to any port nfs
Obs. Substitua o IP acima (100), pelo ip de seu servidor.
A parte do Servidor agora está pronta.
Dica Para Administradores que usam SUSE e openSUSE
Se seu servidor for um SUSE/openSUSE.
A Distro SUSE Enterprise e a openSUSE (versão gratuita), possuem o Yast, que é uma central de configurações para administradores dos serviços do servidor, e na minha opinião a mais bacana que existe para administrar um servidor (com interface). Lá no Yast temos o Servidor de NFS e o cliente de NFS, ambas ferramentas gráficas o que deixa o processo ainda mais simples.
Abaixo alguns prints que mostram como o processo é simples.
1 – Abra o Yast e escolha o item Servidor de NFS.
2 – Já escolha se ele irá iniciar com o sistema e daqui já se pode abrir a porta no Firewall.
Adicione os diretórios que desejar e pronto!
Configurando o Cliente de NFS
No teste abaixo usaremos um CentOS desktop, mas você poderá fazer o mesmo no Debian, Ubuntu e derivados, Fedora, SUSE, openSUSE.
1 – Instalação
Primeiramente instale o NFS no client
sudo yum install nfs-utils
No Debian, Ubuntu e derivados
sudo apt install nfs-common
2 – Criando Pastas de Ponto de Montagem
Agora, vamos criar a pasta que será o ponto de montagem de seu diretório NFS remoto.
sudo mkdir -p /mnt/nfs/Backup sudo mkdir -p /mnt/nfs/Dados
3 – Montagem
Vamos agora montar o compartilhamento NFS nestas pastas:
mount -t nfs 192.168.0.100:/media/Backup /mnt/nfs/Backup/ mount -t nfs 192.168.0.100:/media/Dados /mnt/nfs/Dados/
4 – Checagem
Vamos checar se a montagem foi bem sucedida.
df -kh
[root@client1 ~]# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 39G 1.1G 38G 3% /
devtmpfs 488M 0 488M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 494M 6.7M 487M 2% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/mapper/centos-home 19G 33M 19G 1% /home
/dev/sda1 497M 126M 372M 26% /boot
192.168.0.100:/media/Backup 39G 980M 38G 3% /mnt/nfs/Backup
192.168.0.100:/media/Dados 19G 33M 19G 1% /mnt/nfs/Dados
Agora é possível confirmar que estamos conectados.
Agora testaremos as permissões na pasta com o seguinte comando:
touch /mnt/nfs/Backup/test-nfs.txt
Se o comando der a saída ok, e o arquivo for criado, as permissões estão ok.
Tornando Permanente a Montagem NFS
Para não ter que montar novamente os shares NFS a cada boot, podemos configurar para o client fazer isso sozinho. Para isso vamos editar o arquivo “/etc/fstab” na máquina cliente.
sudo nano /etc/fstab
Adicione as entradas conforme exemplo abaixo:
[...] 192.168.0.100:/media/Backup /mnt/nfs/Backup nfs defaults 0 0 192.168.0.100:/media/Dados /mnt/nfs/Dados nfs defaults 0 0
Obs. A Distro SUSE Enterprise e a openSUSE (versão gratuita), possuem um cliente de NFS gráfico configurável, a partir do painel de controle do Yast. O que deixa o processo ainda mais simples.
Dica para Usuários de SUSE/openSUSE
Como citei anteriormente, a Distro SUSE Enterprise e a openSUSE (versão gratuita), possuem o Yast, que é uma central de configurações para administradores dos serviços do servidor. No Yast temos o Servidor de NFS e o cliente de NFS, ambas ferramentas gráficas o que deixa o processo ainda mais simples.
Cheque como é fácil configurar um SUSE/openSUSE como cliente de NFS:
1 – Abra o item Cliente de NFS
2 – Adicione o IP do servidor que está fazendo o share, Selecione o diretório compartilhado, e defina o ponto de montagem local. Clique em “ok” e pronto. Fácil não é?!
Conclusão
Agora você tem uma montagem feita a partir de um compartilhamento NFS bem sucedida. Você pode até mesmo fazer scripts de backup que compactam e armazenam localmente e diariamente o conteúdo de montagens NFS como neste exemplo.
Abraços,
Cleuber