Pesquisa de site

Configurando sistemas de arquivos Linux padrão e configurando o servidor NFSv4 - Parte 2


Um engenheiro certificado pela Linux Foundation (LFCE) é treinado para instalar, configurar, gerenciar e solucionar problemas de serviços de rede em sistemas Linux e é responsável pelo projeto e implementação da arquitetura do sistema e pela solução de problemas relacionados ao dia a dia. questões.

Apresentando o Programa de Certificação Linux Foundation (LFCE).

Na Parte 1 desta série explicamos como instalar um servidor NFS (Network File System) e configurar o serviço para iniciar automaticamente na inicialização. Se ainda não o fez, consulte esse artigo e siga as etapas descritas antes de continuar.

  1. Instalando serviços de rede e configurando inicialização automática na inicialização – Parte 1

Agora mostrarei como configurar corretamente seu servidor NFSv4 (sem segurança de autenticação) para que você possa configurar compartilhamentos de rede para usar em clientes Linux como se esses sistemas de arquivos estivessem instalados localmente. Observe que você pode usar LDAP ou NIS para fins de autenticação, mas ambas as opções estão fora do escopo da certificação LFCE.

Configurando um servidor NFSv4

Assim que o servidor NFS estiver instalado e funcionando, focaremos nossa atenção em:

  1. especificando e configurando os diretórios locais que queremos compartilhar na rede, e
  2. montar esses compartilhamentos de rede em clientes automaticamente, seja através do arquivo /etc/fstab ou do utilitário automount baseado em kernel (autofs).

Explicaremos mais tarde quando escolher um método ou outro.

Antes de começarmos, precisamos ter certeza de que o daemon idmapd está rodando e configurado. Este serviço realiza o mapeamento de nomes NFSv4 (usuário@meudominio) para IDs de usuários e grupos e é necessário para implementar um servidor NFSv4.

Edite /etc/default/nfs-common para ativar o idmapd.

NEED_IDMAPD=YES

E edite /etc/idmapd.conf com seu nome de domínio local (o padrão é o FQDN do host).

Domain = yourdomain.com

Então inicie o idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Exportando compartilhamentos de rede

O arquivo /etc/exports contém as principais diretivas de configuração do nosso servidor NFS, define os sistemas de arquivos que serão exportados para hosts remotos e especifica as opções disponíveis. Neste arquivo, cada compartilhamento de rede é indicado por meio de uma linha separada, que possui a seguinte estrutura por padrão:

/filesystem/to/export client1([options]) clientN([options])

Onde /filesystem/to/export é o caminho absoluto para o sistema de arquivos exportado, enquanto client1 (até clientN) representa o cliente específico (nome do host ou endereço IP) ou rede (caracteres curinga são permitidos) para o qual o compartilhamento está sendo exportado. Finalmente, options é uma lista de valores separados por vírgula (opções) que são levados em consideração na exportação do compartilhamento, respectivamente. Observe que não há espaços entre cada nome de host e os parênteses que ele precede.

Aqui está uma lista das opções mais frequentes e suas respectivas descrições:

  1. ro (abreviação de somente leitura): clientes remotos podem montar os sistemas de arquivos exportados somente com permissões de leitura.
  2. rw (abreviação de leitura-gravação): Permite que hosts remotos façam alterações de gravação nos sistemas de arquivos exportados.
  3. wdelay (abreviação de atraso de gravação): O servidor NFS atrasa a confirmação de alterações no disco se suspeitar que outra solicitação de gravação relacionada é iminente. Entretanto, se o servidor NFS receber diversas solicitações pequenas e não relacionadas, esta opção reduzirá o desempenho, portanto a opção no_wdelay pode ser usada para desligá-lo.
  4. sincronização: O servidor NFS responde às solicitações somente após as alterações terem sido confirmadas no armazenamento permanente (ou seja, no disco rígido). Seu oposto, a opção async, pode aumentar o desempenho, mas ao custo de perda ou corrupção de dados após uma reinicialização incorreta do servidor.
  5. root_squash: Impede que usuários root remotos tenham privilégios de superusuário no servidor e atribui a eles o ID do usuário ninguém. Se você quiser “squash ” todos os usuários (e não apenas root), você pode usar a opção all_squash.
  6. anonuid/anongid: Define explicitamente o UID e o GID da conta anônima (ninguém).
  7. subtree_check: Se apenas um subdiretório de um sistema de arquivos for exportado, esta opção verifica se um arquivo solicitado está localizado nesse subdiretório exportado. Por outro lado, se todo o sistema de arquivos for exportado, desabilitar esta opção com no_subtree_check irá acelerar as transferências. A opção padrão hoje em dia é no_subtree_check já que a verificação de subárvore tende a causar mais problemas do que vale a pena, de acordo com man 5 exports.
  8. fsid=0 | root (zero ou root): Especifica que o sistema de arquivos especificado é a raiz de vários diretórios exportados (aplica-se apenas no NFSv4).

Neste artigo usaremos os diretórios /NFS-SHARE e /NFS-SHARE/mydir em 192.168.0.10 (servidor NFS) como nosso testar sistemas de arquivos.

Sempre podemos listar os compartilhamentos de rede disponíveis em um servidor NFS usando o seguinte comando:

showmount -e [IP or hostname]

Na saída acima, podemos ver que os compartilhamentos /NFS-SHARE e /NFS-SHARE/mydir em 192.168.0.10 foram exportados para cliente com endereço IP 192.168.0.17.

Nossa configuração inicial (consulte o diretório /etc/exports em seu servidor NFS) para o diretório exportado é a seguinte:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Após editar o arquivo de configuração, devemos reiniciar o serviço NFS:

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Montando compartilhamentos de rede exportados usando autofs

Você pode consultar a Parte 5 da série LFCS (“Como montar/desmontar sistemas de arquivos locais e de rede (Samba e NFS) no Linux”) para obter detalhes sobre a montagem de compartilhamentos NFS remotos sob demanda usando o comando mount ou permanentemente através do arquivo /etc/fstab.

A desvantagem de montar um sistema de arquivos de rede usando esses métodos é que o sistema deve alocar os recursos necessários para manter o compartilhamento montado o tempo todo, ou pelo menos até decidirmos desmontá-lo manualmente. Uma alternativa é montar o sistema de arquivos desejado sob demanda automaticamente (sem usar o comando mount) através do autofs, que pode montar sistemas de arquivos quando eles são usados e desmontá-los depois. um período de inatividade.

Autofs lê /etc/auto.master, que tem o seguinte formato:

[mount point]	[map file]

Onde [arquivo de mapa] é usado para indicar vários pontos de montagem dentro de [ponto de montagem].

Este arquivo de mapa mestre (/etc/auto.master) é então usado para determinar quais pontos de montagem estão definidos e, em seguida, inicia um processo de montagem automática com os parâmetros especificados para cada ponto de montagem.

Montando compartilhamentos NFS exportados usando autofs

Edite seu /etc/auto.master da seguinte maneira:

/media/nfs	/etc/auto.nfs-share	--timeout=60

e crie um arquivo de mapa chamado /etc/auto.nfs-share com o seguinte conteúdo:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Observe que o primeiro campo em /etc/auto.nfs-share é o nome de um subdiretório dentro de /media/nfs. Cada subdiretório é criado dinamicamente pelo autofs.

Agora, reinicie o serviço autofs:

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

e finalmente, para ativar o autofs para iniciar na inicialização, execute o seguinte comando:

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Examinando sistemas de arquivos montados após iniciar o daemon autofs

Quando reiniciamos autofs, o comando mount nos mostra que o arquivo de mapa (/etc/auto.nfs-share) está montado no local especificado diretório em /etc/auto.master:

Observe que nenhum diretório foi montado ainda, mas será automaticamente quando tentarmos acessar os compartilhamentos especificados em /etc/auto.nfs-share:

Como podemos ver, o serviço autofs “monta” o arquivo de mapa, por assim dizer, mas espera até que uma solicitação seja feita aos sistemas de arquivos para realmente montá-los.

Executando testes de gravação em sistemas de arquivos exportados

As opções anonuid e anongid, juntamente com o root_squash definido no primeiro compartilhamento, nos permitem mapear solicitações realizadas pelo usuário root no cliente para uma conta local no servidor.

Em outras palavras, quando root no cliente cria um arquivo naquele diretório exportado, sua propriedade será automaticamente mapeada para a conta do usuário com UID e GID=1000, desde que tal conta exista no servidor:

Conclusão

Espero que você tenha conseguido instalar e configurar com êxito um servidor NFS adequado ao seu ambiente usando este artigo como guia. Você também pode consultar as páginas man relevantes para obter mais ajuda (man exports e man idmapd.conf, por exemplo).

Sinta-se à vontade para experimentar outras opções e casos de teste conforme descrito anteriormente e não hesite em usar o formulário abaixo para enviar seus comentários, sugestões ou dúvidas. Nós ficaremos felizes em ouvir de você.