Pesquisa de site

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 NFSRHEL 9 com IP 10.128.15.213
  • Cliente NFSRHEL 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.