Capítulo 27. Compartilhando sistemas de arquivos com o NFS

Sumário

27.1. Terminologia
27.2. Instalando o servidor NFS
27.3. Configurando o servidor NFS
27.4. Configurando clientes
27.5. Para obter mais informações

Resumo

Distribuir e compartilhar sistemas de arquivos em uma rede é uma tarefa comum em ambientes corporativos. O reconhecido sistema de arquivos de rede (NFS) funciona com o NIS, o protocolo de yellow pages. Para um protocolo mais seguro que funcione com o LDAP e também possa usar Kerberos, marque NFSv4. Juntamente com o pNFS, é possível eliminar gargalos no desempenho.

O NFS com o NIS torna uma rede transparente para o usuário. Com o NFS, é possível distribuir sistemas de arquivos arbitrários pela rede. Com a configuração adequada, os usuários sempre ficam no mesmo ambiente, independentemente do terminal que estejam usando.

27.1. Terminologia

Veja a seguir os termos usados no módulo do YaST.

Exportações

Um diretório exportado por um servidor NFS, que os clientes podem integrar a seus sistemas.

Cliente NFS

O cliente NFS é um sistema que usa serviços NFS de um servidor NFS pelo protocolo NFS (Network File System – Sistema de Rede de Arquivos). O protocolo TCP/IP já está integrado ao kernel do Linux; não há necessidade de instalar software adicional.

Servidor NFS

O servidor NFS fornece serviços NFS aos clientes. Um servidor em execução depende dos seguintes daemons: nfsd (worker), idmapd (mapeamentos de nome de grupo e usuário para IDs e vice versa), statd (bloqueio de arquivos) e mountd (solicitações de montagem).

pNFS

NFS Paralelo, o protocolo de extensão do NFSv4. Qualquer cliente do pNFS pode acessar diretamente os dados em um servidor NFS.

27.2. Instalando o servidor NFS

O software do servidor NFS não faz parte da instalação padrão. Se você configurar um servidor NFS conforme descrito na Seção 27.3, “Configurando o servidor NFS”, receberá automaticamente um aviso solicitando para instalar os pacotes necessários. Se preferir, instale o pacote nfs-kernel-server com o YaST ou o zypper.

Assim como o NIS, o NFS é um sistema cliente/servidor. Entretanto, uma máquina pode ser ambos—pode fornecer sistemas de arquivos pela rede (exportar) e montar sistemas de arquivos a partir de outros hosts (importar).

27.3. Configurando o servidor NFS

É possível configurar um servidor NFS usando o YaST ou manualmente. Para autenticação, o NFS também pode ser combinado com o Kerberos.

27.3.1. NFS com Kerberos

Para usar a autenticação Kerberos para o NFS, é preciso que a segurança GSS esteja habilitada. Selecione Habilitar Segurança GSS na caixa de diálogo inicial Servidor NFS do YaST. É preciso ter um servidor Kerberos ativo para usar esse recurso. O YaST não configura o servidor, apenas usa a funcionalidade fornecida. Se você quiser usar a autenticação Kerberos além da configuração do YaST, conclua pelo menos as etapas seguintes antes de executar a configuração do NFS:

  1. Verifique se o servidor e o cliente estão no mesmo domínio Kerberos. Eles precisam acessar o mesmo servidor KDC (Key Distribution Center — Centro de Distribuição de Chaves) e compartilhar o arquivo krb5.keytab (o local padrão em qualquer máquina é /etc/krb5.keytab). Para obter mais informações sobre o Kerberos, consulte o Capítulo 6, Network Authentication with Kerberos (↑Security Guide (Guia de Segurança)).

  2. Inicie o serviço gssd no cliente com rcgssd start.

Para obter mais informações sobre como configurar o NFS que usa Kerberos, consulte os links na Seção 27.5, “Para obter mais informações”.

27.4. Configurando clientes

Para configurar seu host como cliente NFS, você não precisa instalar software adicional. Todos os pacotes necessários são instalados por padrão.

27.4.1. Importando sistemas de arquivos com o YaST

Usuários autorizados podem montar diretórios NFS de um servidor NFS na árvore de arquivos local usando o módulo de cliente NFS do YaST. Proceda da seguinte maneira:

Procedimento 27.1. Importando diretórios NFS

  1. Inicie o módulo cliente NFS do YaST.

  2. Clique em Adicionar na guia Compartilhamentos NFS. Digite o nome de host do servidor NFS, o diretório a ser importado e o ponto de montagem desse diretório localmente.

  3. Habilite Abrir Porta no Firewall na guia Configurações do NFS, se você usa um Firewall e deseja permitir o acesso de computadores remotos ao serviço. O status do firewall é mostrado próximo à caixa de seleção.

  4. Ao usar NFSv4, verifique se a caixa de seleção Habilitar NFSv4 está marcada e se o Nome de Domínio NFSv4 inclui o mesmo valor usado pelo servidor NFSv4. O domínio padrão é localdomain.

  5. Clique em OK para gravar as mudanças.

A configuração é gravada em /etc/fstab e os sistemas de arquivos especificados são montados. Quando você iniciar o cliente de configuração do YaST posteriormente, ele também lerá a configuração existente desse arquivo.

27.4.2. Importando sistemas de arquivos manualmente

O pré-requisito para importar os sistemas de arquivos manualmente de um servidor NFS é um mapeador de portas RPC em execução. Comece digitando rcrpcbind start enquanto usuário root. Em seguida, os sistemas de arquivos remotos podem ser montados no sistema de arquivos como partições locais usando mount:

mount host:remote-pathlocal-path

Para importar os diretórios de usuário da máquina do nfs.example.com, por exemplo, use:

mount nfs.example.com:/home /home

27.4.2.1. Usando o serviço de montagem automática

O daemon autofs pode ser usado para montar sistemas de arquivos remotos automaticamente. Adicione a seguinte entrada ao seu arquivo /etc/auto.master:

/nfsmounts /etc/auto.nfs

Agora, o diretório /nfsmounts atuará como raiz para todas as montagens NFS no cliente se o arquivo auto.nfs for preenchido adequadamente. O nome auto.nfs foi escolhido por mera conveniência; você pode escolher qualquer nome. Adicione entradas ao auto.nfs para todas as montagens NFS da seguinte maneira:

localdata -fstype=nfs server1:/data
nfs4mount -fstype=nfs4 server2:/

Ative as configurações com rcautofs start enquanto root. Neste exemplo, /nfsmounts/localdata, o diretório /data do server1, é montado com NFS e /nfsmounts/nfs4mount, do server2, é montado com NFSv4.

Se o arquivo /etc/auto.master for editado enquanto o serviço autofs estiver em execução, o automontador deverá ser reiniciado com rcautofs restart para que as mudanças tenham efeito.

27.4.2.2. Editando /etc/fstab manualmente

Uma entrada de montagem típica do NFSv3 em /etc/fstab tem aparência semelhante a esta:

nfs.example.com:/data /local/path nfs rw,noauto 0 0

As montagens NFSv4 também podem ser adicionadas ao arquivo /etc/fstab. Para essas montagens, use nfs4 em vez de nfs na terceira coluna e verifique se o sistema de arquivos remoto aparece como / após o nfs.example.com: na primeira coluna. Uma linha de amostra de uma montagem NFSv4 em /etc/fstab tem aparência semelhante a esta:

nfs.example.com:/ /local/pathv4 nfs4 rw,noauto 0 0

A opção noauto impede que o sistema de arquivos seja montado automaticamente na inicialização. Se desejar montar o respectivo sistema de arquivos manualmente, é possível abreviar o comando de montagem especificando apenas o ponto de montagem:

mount /local/path

Observe que, se você não digitar a opção noauto, os scripts de inicialização do sistema gerenciarão a montagem dos sistemas de arquivos na inicialização.

27.4.3. NFS paralelo (pNFS)

NFS é um dos protocolos mais antigos, desenvolvido nos anos 80. Em geral, o NFS é suficiente para compartilhar arquivos pequenos. Entretanto, para transferir arquivos grandes ou quando um número elevado de clientes precisa acessar os dados, o servidor NFS torna-se um gargalo e afeta significativamente o desempenho do sistema. Isso ocorre porque os arquivos aumentam de tamanho rapidamente, mas a velocidade relativa do Ethernet não consegue acompanhar esse aumento.

Quando você solicita um arquivo de um servidor NFS normal, o servidor procura os metadados do arquivo, coleta todos os dados e os transfere pela rede até o cliente. No entanto, o gargalo no desempenho torna-se aparente independentemente do tamanho dos arquivos:

  • Com os arquivos pequenos, a maior parte do tempo é gasta para coletar os metadados

  • Com os arquivos grandes, a maior parte do tempo é gasta para transferir os dados do servidor para o cliente

O pNFS, ou NFS paralelo, supera essa limitação, pois ele separa os metadados do sistema de arquivos do local dos dados. Para isso, o pNFS requer dois tipos de servidores:

  • Um servidor de controle ou de metadados que controla todo o tráfego que não seja de dados

  • Um ou mais servidor(es) de armazenamento que armazena(m) os dados

Os servidores de metadados e de armazenamento formam um único servidor NFS lógico. Para o cliente ler ou gravar, o servidor de metadados informa ao cliente NFSv4 qual servidor de armazenamento deve ser usado para acessar os pacotes de arquivos. O cliente pode acessar os dados diretamente no servidor.

O SUSE Linux Enterprise suporta pNFS apenas no cliente.

27.4.3.1. Configurando o cliente pNFS com o YaST

Siga a descrição em Procedimento 27.1, “Importando diretórios NFS”, mas clique na caixa de seleção pNFS (v4.1) e, opcionalmente, em Compartilhamento NFSv4. O YaST executa todas as etapas necessárias e grava todas as opções exigidas no arquivo /etc/exports.

27.4.3.2. Configurando o cliente pNFS manualmente

Para começar, consulte a Seção 27.4.2, “Importando sistemas de arquivos manualmente”. A maior parte da configuração é feita pelo servidor NFSv4. Para o pNFS, a única diferença é adicionar a opção minorversion e o servidor de metadados MDS_SERVER ao comando mount:

mount -t nfs4 -o minorversion=1 MDS_SERVER MOUNTPOINT

Para ajudar na depuração, mude o valor no sistema de arquivos /proc:

echo 32767 > /proc/sys/sunrpc/nfsd_debug
echo 32767 > /proc/sys/sunrpc/nfs_debug

27.5. Para obter mais informações

Além das páginas de manual de exports, nfs e mount, há informações disponíveis sobre como configurar servidores e clientes NFS em /usr/share/doc/packages/nfsidmap/README. Para mais documentações online, consulte os seguintes sites na Web:


SUSE Linux Enterprise Desktop Guia de Administração 11 SP3