Como instalar servidor e cliente NFS em distribuições RHEL
No Linux, existem alguns protocolos de compartilhamento de arquivos usados para compartilhar armazenamento e arquivos em uma rede. Os mais utilizados são Samba e NFS.
Samba é um popular conjunto de aplicativos de código aberto que funciona em uma arquitetura cliente-servidor. Ele oferece compatibilidade entre plataformas, permitindo o compartilhamento contínuo de arquivos nos sistemas operacionais Linux, Windows e macOS. Um compartilhamento de arquivos hospedado em um sistema Linux pode ser acessado de diversas plataformas, promovendo assim a colaboração.
Outro protocolo de compartilhamento de arquivos amplamente utilizado é o NFS, abreviação de Network File Share. Assim como o Samba, ele funciona em um modelo cliente-servidor e permite que um usuário compartilhe diretórios e arquivos em uma rede com vários usuários clientes remotos.
Neste guia, veremos como instalar o servidor e cliente NFS em distribuições baseadas em RHEL, como Fedora, CentOS Stream, Rocky Linux e AlmaLinux.
Serviços NFS
Atualmente, existem 3 versões do NFS, sendo a mais recente o NFSv4, que inclui recursos como a capacidade de trabalhar pela Internet e através de um firewall. Além disso, existe o NFSv3 e o NFSv2 que é o protocolo mais antigo.
O serviço NFS é composto pelo Servidor NFS e pelo cliente. O servidor NFS compreende os seguintes arquivos-chave:
- nfs-server – Permite que os sistemas clientes acessem os arquivos compartilhados pelo NFS.
- rpcbind – converte programas RPC em endereços universais.
- nfs-idmap – Realiza a tradução dos IDs de usuários e grupos em nomes e nomes de usuários e grupos em IDs.
- portmap – Este é um servidor que converte números de programas RPC em números de portas IP.
- nfslock – No caso de uma falha no servidor NFS, o nfslock inicia os processos RPC necessários.
Serviços de configuração NFS
Aqui estão alguns dos principais arquivos de configuração do NFS:
- /etc/exports – O arquivo de configuração principal, que estipula os sistemas de arquivos ou diretórios a serem exportados e acessados por usuários remotos.
- /etc/fstab – Este é um arquivo que contém entradas de partições montadas. No NFS, o arquivo contém entradas de diretórios de compartilhamento NFS ou sistemas de arquivos que são montados permanentemente e podem persistir após uma reinicialização.
- /etc/sysconfig/nfs – Define as portas necessárias durante a execução dos serviços RPC.
Configuração de servidor e cliente NFS
Para configurar compartilhamentos NFS, precisaremos de pelo menos duas máquinas Linux/Unix. Aqui neste tutorial, usarei dois servidores.
- Servidor NFS – RHEL 9 com IP 10.128.15.213
- Cliente NFS – RHEL 9 com IP 10.128.15.214
Instale o NFS no servidor e no cliente
Para começar, você precisa fazer login em ambos os nós (servidor NFS e cliente) e instalar os serviços NFS. Primeiro, atualize as informações do pacote conforme mostrado. O seguinte comando dnf também atualizará todos os pacotes interessantes para suas versões mais recentes.
sudo dnf update
Assim que a atualização for concluída, prossiga e instale os serviços NFS necessários.
sudo dnf install rpcbind nfs-utils -y
A próxima etapa é habilitar os serviços NFS conforme mostrado.
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
Certifique-se de iniciar também os serviços NFS.
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
É crucial verificar se todos os serviços NFS estão funcionando.
sudo systemctl status nfs-server
sudo systemctl status rpcbind
Certifique-se de configurar também o firewall para permitir serviços NFS de entrada da seguinte forma.
sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload
Crie um diretório de compartilhamento NFS
Com todos os serviços NFS instalados e funcionando conforme o esperado, é hora de criar o diretório de compartilhamento NFS, que é o diretório que conterá os arquivos que serão acessados pelos clientes NFS na rede.
Neste caso, criaremos um diretório de compartilhamento NFS chamado my_nfsshare em nosso diretório inicial.
mkdir -p /home/tecmint/my_nfsshare
Em seguida, atribua permissões de diretório. Para fins de demonstração, atribuiremos permissões globais que darão aos clientes NFS permissões de leitura, gravação e execução.
sudo chmod 777 -R /home/tecmint/my_nfsshare
Exportar um diretório de compartilhamento NFS
A próxima etapa é exportar o diretório de compartilhamento NFS. Para conseguir isso, precisamos fazer uma entrada no arquivo /etc/exports. Portanto, acesse o arquivo usando o editor de texto de sua preferência. Neste caso usaremos o editor Vim.
sudo vim /etc/exports
Adicione a seguinte entrada. Certifique-se de substituir o server-ip pelo endereço IP do seu servidor NFS.
/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)
Por fim, exporte o diretório de compartilhamento ou sistema de arquivos do NFS.
sudo exportfs -rv
Execute o seguinte comando para visualizar os compartilhamentos NFS.
showmount -e localhost
Configurar cliente NFS
A fase restante deste exercício é configurar o cliente NFS para acessar o diretório compartilhado. Primeiro, confirme se você pode visualizar a lista de exportação ou os compartilhamentos NFS no servidor NFS.
showmount -e 10.128.15.213
A próxima etapa é montar o compartilhamento NFS do servidor para o cliente. Para fazer isso, primeiro precisamos criar um diretório de montagem. Neste caso, criaremos um diretório chamado nfs_backup.
mkdir nfs_backup
Depois disso, montaremos o compartilhamento NFS no diretório de montagem que acabamos de criar no diretório inicial raiz
mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare ~/nfs_backup
Para persistir o compartilhamento NFS, edite o arquivo /etc/fstab.
vim /etc/fstab
Em seguida, adicione a seguinte entrada.
10.128.15.213:/home/tecmint/my_nfsshare /root/nfs_backup nfs defaults 0 0
Salve e saia do arquivo de configuração.
Testando a configuração do NFS
A última etapa é verificar se a configuração do NFS está funcionando conforme o esperado. Criaremos alguns arquivos no servidor e verificaremos sua disponibilidade no lado do cliente NFS.
No lado do servidor, criaremos os arquivos no diretório de compartilhamento NFS.
sudo touch my_nfsshare/file{1..4}.txt
Para verificar se os arquivos foram criados, executaremos o comando ls:
ls -l my_nfsshare/
De volta ao lado do cliente, verifique se os arquivos estão disponíveis no diretório de montagem sem nenhuma atualização ou reinicialização de qualquer serviço, conforme visto na saída a seguir.
ls -l nfs_backup/
Removendo montagem NFS
Se você não precisar mais do diretório montado em seu sistema, poderá desmontá-lo do lado do cliente usando o seguinte comando umount:
umount ~/nfs_backup
Comandos de compartilhamento NFS
Alguns comandos mais importantes para NFS.
- showmount -e – Mostra os compartilhamentos disponíveis em sua máquina local
- showmount -e endereço IP – Lista os compartilhamentos disponíveis no servidor remoto
- showmount -d – Lista todos os subdiretórios
- exportfs -v – Exibe uma lista de arquivos e opções compartilhados em um servidor
- exportfs -a – Exporta todos os compartilhamentos listados em /etc/exports ou nome próprio
- exportfs -u – Desexporta todos os compartilhamentos listados em /etc/exports ou nome próprio
- exportfs -r – Atualize a lista do servidor após modificar /etc/exports
Conclusão
Isso conclui nosso guia sobre como instalar o servidor e cliente NFS em distribuições baseadas em RedHat. Instalamos os serviços NFS no servidor, criamos um diretório de compartilhamento NFS e finalmente montamos o diretório de compartilhamento no cliente. Por fim, verificamos a configuração do NFS acessando o arquivo criado no servidor pelo lado do cliente.