próximo acima anterior sumário índice
Próximo: 11.1 Preparando o NFS Acima: Guia do Administador de Anterior: 10.10 Utilizando o Tradicional   Sumário   Índice


11. O Sistema de Arquivos de Rede

NFS, o sistema de arquivos de redes, é provavelmente o serviço de rede mais importante que utiliza o RPC. Ele permite acessar arquivos em máquinas remotas exatamente da mesma maneira como um usuário acessa qualquer arquivo localmente. Isto é possível graças à mistura de funcionalidades do kernel no lado do cliente (que usa o sistema de arquivos remoto) e um servidor NFS no lado do servidor (que provê os arquivos de dados). Este acesso ao arquivo é completamente transparente ao cliente e funciona com uma grande variedade de servidores e arquiteturas de máquinas.

NFS oferece diversas vantagens:

Não é difícil executar a configuração básica de operações NFS, tanto no lado cliente quanto servidor e este capítulo tem a função de ensinar como isso é feito.

NFS é principalmente um trabalho de Rick Sladkey,11.1 que escreveu o código correspondente ao núcleo do NFS e muitas partes do servidor NFS. Este último é derivado do programa de usuário unfsd do servidor NFS originalmente escrito por Mark Shand e do hnfs (Harris NFS) servidor NFS, escrito por Donald Becker. Vamos dar uma olhada agora no funcionamento do NFS. Um cliente solicita a montagem de um diretório de um servidor remoto em um diretório local, da mesma maneira que ele monta um dispositivo físico local. No entanto a sintaxe não é exatamente a mesma. Por exemplo, para montar o arquivo /home da máquina aracaju em users na máquina blumenau, o administrador poderá executar o seguinte comando na máquina blumenau:11.2

mount irá tentar conectar-se com o programa servidor remoto chamado mountd na máquina aracaju via RPC. O servidor irá verificar se a máquina blumenau tem permissão para montar o diretório em questão, e caso tenha, retorna a ela um descritor de arquivos. Este descritor de arquivos será usado em todas as requisições posteriores aos arquivos sob o users.

Quando alguém acessa um arquivo sob NFS, o kernel manda uma chamada RPC para o servidor nfsd na máquina servidora. Esta chamada leva como parâmetro o descritor de arquivos, o nome do arquivo a ser acessado, o identificador de usuário e de grupo. Eles são usados para controlar os direitos de acesso sobre um determinado arquivo. Para poder evitar que usuários não autorizados leiam ou modifiquem os arquivos, identificações de usuários e grupos devem ser iguais em ambos os servidores.

Em várias implementações de , as funcionalidades de clientes e servidores NFS são implementadas em programas a nível de kernel, que são ativados no espaço de usuário durante a inicialização do sistema. Eles são: o programas NFS (nfsd) no servidor e o programa Servidor de Blocos de Entrada e Saída , (biod) que é executado no cliente. Para aumentar a performance, o programa biod realiza entradas e saídas assíncronas usando ``leituras adiantadas'' e ``gravações atrasadas'', assim como diversas instâncias do programa nfsd são executadas concorrentemente.

A implementação de NFS no é um pouco diferente: o código do cliente está integrado firmemente nas camadas do sistema de arquivo virtual (VFS) do kernel e não requerem controle adicional do programa biod. Por outro lado, o código do servidor é executado totalmente no espaço de usuário, tornando praticamente impossível executarem-se várias cópias do programa servidor simultaneamente, devido às questões de sincronismo que isto pode envolver.

O maior problema com o código NFS é que o kernel do versão 1.0 não pode alocar pedaços de memória com mais que 4k; como conseqüência, o código de rede não pode suportar datagramas maiores que 3500 bytes após terem sido retirados o tamanho do cabeçalho, etc. Isto significa que as transferências com servidores NFS rodando em sistemas que utilizam como padrão tamanhos grandes de datagramas UDP (por exemplo: 8k no SunOS ) precisam ser reduzidos artificialmente. Isto produz perda de performance em algumas circunstâncias.11.3 Esta limitação desapareceu nos kernels posteriores ao kernel -1.1 e o código do cliente vem sendo modificado para se ter melhorias.




próximo acima anterior sumário índice
Próximo: 11.1 Preparando o NFS Acima: Guia do Administador de Anterior: 10.10 Utilizando o Tradicional   Sumário   Índice
www.conectiva.com