Home / Dicas e Tutoriais / Configurando Um Servidor de NFS no Linux

Configurando Um Servidor de NFS no Linux

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

About Cleuber

Cleuber Silva Hashimoto. Administrador

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...