Implementação e Configuração do Serviço NFS no Linux

Serviço de Compartilhamento de Arquivos NFS

Conceitos Básicos

O NFS (Network File System) é um sistema de compartilhamento de arquivos que permite que diferentes hosts em uma rede acessem diretórios como se fossem locais. Isso é útil para ambientes Linux onde máquinas precisam compartilhar dados de forma eficiente. O cliente monta o diretório remoto usando o protocolo NFS, tornando-o transparente para o sistema de arquivos local.

Classificação de Armazenamento

Para compartilhamento entre sistemas heterogêneos, como Windows e Linux, soluções como FTP ou Samba são empregadas. Entretanto, o NFS é otimizado exclusivamente para compartilhamento entre sistemas Linux, oferecendo melhor desempenho e integração.

Processo de Deploy do Serviço NFS

Princípio de Funcionamento com RPC

O NFS depende do serviço RPC (Remote Procedure Call) para gerenciar portas. O fluxo inclui: iniciar o RPC, registrar o NFS no RPC, o cliente consultar o RPC para obter a porta do NFS e, finalmente, acessar o diretório compartilhado usando essa porta.

Configuração no Servidor

Primeiro, instale os pacotes necessários. Utilize o gerenciador de pacotes apropriado para a distribuição Linux:

sudo yum install nfs-utils rpcbind   # Para sistemas baseados em RHEL/CentOS
sudo systemctl enable rpcbind --now
sudo systemctl enable nfs-server --now

Edite o arquivo de configuração /etc/exports para definir os diretórios compartilhados e as permissões. Por exemplo, para compartilhar o diretório /dados-compartilhados com a rede 10.0.0.0/24:

cat /etc/exports
/dados-compartilhados 10.0.0.0/24(rw,sync)

Aqui, a primeira coluna é o caminho do diretório, a segunda define a rede autorizada e a terceira especifica opções como leitura/escrita (rw) e sincronização (sync).

Crie o diretório compartilhado e ajuste as permissões. Por exemplo:

sudo mkdir /dados-compartilhados
sudo chmod o+w /dados-compartilhados   # Concede permissão de escrita para outros usuários

Configure o firewall para permitir tráfego NFS. Adicione serviços relevantes:

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --reload

Configuração no Cliente

No cliente, instale os utilitários NFS e monte o diretório remoto. Exemplo:

sudo yum install nfs-utils
sudo mount -t nfs 10.0.0.100:/dados-compartilhados /mnt/cliente

Substitua o IP pelo endereço do servidor NFS e o diretório local por um ponto de montagem desejado. Use df -h para verificar o espaço.

Parâmetros de Configuração Detalhados

No arquivo /etc/exports, opções como rw e ro controlam acesso de leitura/escrita ou somente leitura. Os parâmetros sync e async definem se os dados são gravados no disco imediatamente (seguro) ou em memória (mais rápido). Para controle de usuários:

  • root_squash: Converte usuários root remotos para nfsnobody.
  • all_squash: Converte todos os usuários para nfsnobody.
  • no_root_squash ou no_all_squash: Mantém as identidades originais dos usuários.

Exemplo usando all_squash para mapear todos os usuários:

cat /etc/exports
/armazenamento 10.0.0.0/24(rw,sync,all_squash)

Reinicie o serviço NFS para aplicar as mudanças: sudo systemctl restart nfs-server. No cliente, após montar, arquivos criados por usuários normais serão atribuídos ao nfsnobody.

Se usando no_all_squash, os usuários mantêm suas identidades, então pode haver problemas de permissão. Soluções incluem alterar o proprietário do diretório compartilhado ou conceder permissões com chmod, como chmod o+w /aramzenamento.

Considerações Finais sobre Permissões

As permissões no NFS dependem tanto das configurações no arquivo /etc/exports quanto dos direitos do diretório no servidor. Ajustes como usar chown para mudar o proprietário para nfsnobody quando usando squash, ou modificar permissões de outros usuários, são práticas comuns para resolver conflitos de acesso.

Tags: NFS Linux rpc Compartilhamento de Arquivos mount

Publicado em 6-28 04:46