projetos | download | linux | privacidade | contato
 
  Produtos | Documentação | Suporte | Treinamento | Conectiva | Cases | Soluções | Parcerias | Imprensa | Oportunidades
Pesquise 
português 
english 
español

SUPORTE

->Suporte Estendido
->Centros de Serviços
->Técnicos Certificados
->Formulário de Suporte
->Abrangência do Suporte
->Acionando o Suporte
->Perguntas e Respostas
->Atualizações
->Livros, Guias e Manuais
->Hardware

    12.1. Como configurar o NFS ?

    O NFS é um serviço de rede que usa RPC (Chamada de Procedimento Remoto), e que permite o compartilhamento de arquivos e diretórios. É simples e fácil de configurar, tanto o servidor como o cliente, de uma rede baseada em NFS. O NFS é uma ferramenta poderosa, é a mais usada/indicada para montar uma rede de compartilhamento de arquivos em redes com máquinas Linux. Funciona permitindo as "máquinas" acessar arquivos em máquinas remotas, como se estivesse em um diretório da máquina local. Se o NFS for instalado junto ao NIS - Network Information System (Sistema de informação de Rede), os "usuários" podem acessar qualquer sistema e ainda trabalhar em um único conjunto de arquivos.

    Para saber mais sobre o NIS acesse e leia: linux.unicamp.br/docs/howtos/BR-NIS-HOWTO.html

    A maneira como o NFS trabalha, rapidamente, podemos dizer que quando dá-se a linha de comando:

        # mount -t nfs <servidor>:/<caminho_diretório> /<diretório_local> [opções]
    

    O servidor irá verificar se a máquina tem permissão para acessar os dados daquele diretório, caso tenha, e isto deve estar especificado no arquivo /etc/exports do servidor, retorna um descritor de arquivos. Quando é acessado o NFS, o kernel envia uma chamada RPC ao servidor nfsd na máquina servidora, nesta são enviados os parâmetros, descritor de arquivos, o nome do arquivo, o identificador de usuário e grupo, usados para controle. As funcionalidades do NFS no Linux são implementadas em nível kernel, o VFS (sistema de arquivo virtual) é integrado no kernel.

    Estes pacotes, na maioria das vezes já são instalados por default, mas caso não tenham sido instalados, os pacotes são estes:

    # Marumbi

        # rpm -ivh nfs-server-2.2beta29-2.i386.rpm nfs-server-clients-2.2beta29-2.i386.rpm
    

    # Servidor 3.0

        # rpm -ivh nfs-server-2.2beta40-1cl.i386.rpm nfs-server-clients-2.2beta40-1cl.i386.rpm
    

    # Guaraní 3.0

        # rpm -ivh nfs-server-2.2beta37-2cl.i386.rpm nfs-server-clients-2.2beta37-2cl.i386.rpm
    

    # Ipanema 4.0

        # rpm -ivh knfsd-1.4.1-5cl.i386.rpm knfsd-clients-1.4.1-5cl.i386.rpm
    

    # Servidor 4.2

        # rpm -ivh knfsd-1.5.1-7cl.i386.rpm knfsd-clients-1.5.1-7cl.i386.rpm
    

    # Xavante 5.0

        # rpm -ivh nfs-server-2.2beta47-1cl.i386.rpm
          nfs-utils-0.1.6-3cl.i386.rpm
    

    # Servidor 5.1

        # rpm -ivh nfs-server-2.2beta47-1cl.i386.rpm nfs-utils-0.1.8-3cl.i386.rpm
    

    # Desktop e Servidor 6.0

        # rpm -ivh nfs-server-2.2beta47-3cl.i386.rpm nfs-utils-0.2-2cl.i386.rpm
    

    Ative-o pelo comando:

        [root@localhost]# ntsysv
    

    Ativar, tecle F1 para saber para que serve cada serviço.

        [X] netfs
        [X] network
        [X] nfs
        [X] nfslock
        [X] portmap
    

    Pode-se tambem habilitar um por um, é só dar, como root, o comando:

        # cds
    

    e habilitar os serviços

        ./<serviço> start
    

    Para configurar o NFS, temos, primeiramente que ter certeza que o Kernel tem suporte a NFS e que os serviços estejam funcionando, nos kernels modernos podemos verificar isto dando o seguinte comando:

        # cat /proc/filesystems
        
                ext2
        nodev   proc
                iso9660
        nodev   devpts
        nodev   nfs       <------  Observar a existência deste.
    

    Caso não exista, poderá ser necessário recompilar o kernel e habilitar o suporte a NFS. Em kernels mais antigos a maneira mais simples de saber se está habilitado o serviço de NFS é totalmente empírica, tente montar um diretório, se o comando mount não funcionar e apresentar uma mensagem do tipo "tipo de sistema de arquivos nfs não suportado pelo kernel", será necessário compilar e habilitá-lo.

    Ex: (como root)

        # mount localhost:/tmp /mnt
    

    Nota: O aparecimento da opção nodev nfs no arquivo /proc/filesystems não é necessariamente obrigatória para indicar que existe suporte a NFS no kernel utilizado. Portanto, o teste acima indicado é necessário para verificação de tal suporte.

    Montando um Volume NFS

    Para montar volumes NFS, é usado o comando mount com o seguinte formato:

        # mount -t nfs <máquina_remota>:/<diretório_remoto> /<diretório_local> [opções]
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                     Volume NFS
    

    Cabe notar que os parâmetros "-t nfs" não são necessários, pois por ser a notação própria do sistema de arquivos NFS, ele interpreta por default. Existem opções adicionais que podem ser especificadas com o comando mount. Elas pode ser informadas depois da opção -o na linha de comando, ou no campo de opções de arquivo /etc/fstab, em ambos casos, as multiplas opções devem ser separadas por vírgulas. Tenha-se em conta que as opções dadas na linha de comando tem precedencia pelas opções dadas no arquivo /etc/fstab.

    Exemplo de entrada do arquivo /etc/fstab:

             Volume NFS         Diretório  Tipo        Opções           Verifica a
                                  Local                                  partição
        
        192.168.255.220:/wb       /wb       nfs     soft,bg,nosuid          0 0
        192.168.255.2:/d          /d        nfs     noauto,soft,bg          0 0
        192.168.255.122:/home     /home     nfs     soft,bg,nosuid,nolock   0 0
        192.168.255.122:/faq      /faq      nfs     soft,bg,nosuid          0 0
        192.168.255.122:/faq-es   /es       nfs     soft,bg,nosuid          0 0
        192.168.255.122:/suporte  /suporte  nfs     soft,bg,nosuid          0 0
       
    

    OPÇÕES

        rsize=n     O número de bytes que NFS usará ao ler arquivos de um servidor
                    NFS.  O valor padrão depende do kernel e normalmente é de 1.024
                    bytes (ainda que a velocidade  de  acesso cresça
                    substancialmente ao se informar rsize=8192).
        
        wsize=n     O número de bytes que NFS usará ao gravar arquivos em um
                    servidor NFS.  O valor padrão depende do kernel e normalmente é
                    de 1.024 bytes (ainda que a velocidade de acesso cresça
                    substancialmente ao se informar wsize=8192).
        
        timeo=n     O número de décimos de segundo antes de enviar a primeira
                    retransmissão após findo o tempo de espera de uma RPC. O valor
                    padrão é de 7 décimos de segundo. Após a primeira espera, o
                    tempo é dobrado após cada espera sem respostas, até um máximo de
                    60 segundos ou um número máximo de retransmissões ser atingido.
                    Então, caso o sistema de arquivos esteja montado com a opção
                    hard, cada novo tempo de espera começa com o dobro do tempo da
                    anterior, novamente dobrando a cada retransmissão. O tempo
                    máximo de espera é sempre de 60 segundos. Uma melhor
                    performance  pode  ser atingida ao se incrementar o tempo de
                    espera, quando se está montando sistemas sobre uma rede com
                    muito tráfego, utilizando-se servidores lentos ou usando o
                    sistema através de diversos roteadores e gateways.
        
        retrans=n   O número de tempo limite e retransmissões que devem ocorrer
                    antes que um  alarme de tempo de resposta seja acionado. O
                    padrão é de 3 ocorrências.  Quando um alarme de tempo de espera
                    maior ocorre, a operação é interrompida ou uma mensagem de
                    "servidor não está respondendo" é apresentada na console.
        
        
        acregmin=n  O tempo mínimo em segundos que os atributos de um arquivo normal
                    devem estar em memória cache antes de solicitar novas
                    informações para o servidor.  O padrão é de 3 segundos.
        
        acregmax=n  O tempo máximo em segundos que os atributos de um arquivo normal
                    devem estar em  memória cache antes de solicitar novas
                    informações para o servidor. O padrão é de 60 segundos.
        
        acdirmin=n  O tempo mínimo em segundos que os atributos de um diretório
                    devem estar em memória cache antes de solicitar novas
                    informações para o servidor. O padrão é de 30 segundos.
        
        acdirmax=n  O tempo máximo em segundos que os atributos de um diretório
                    devem estar em memória cache antes de solicitar novas
                    informações para o servidor. O padrão é de 60 segundos.
        
        actimeo=n   Utilizando-se actimeo, os parâmetros acregmin, acregmax,
                    acdirmin, e acdirmax recebem o mesmo valor. Não há valor padrão.
        
        retry=n     O número de minutos na tentativa de executar operações de
                    montagem NFS em primeiro ou segundo plano antes de desistir
                    definitivamente.  O valor padrão é de 10.000 minutos, o que é
                    quase uma semana.
        
        namlen=n    Quando um servidor NFS não suporta a versão 2 do protocolo de
                    montagem RPC, esta opção pode ser usada para especificar o
                    tamanho máximo do nome de arquivos que é suportado pelo sistema
                    de arquivos remoto. Esta opção é usada para suportar as funções
                    pathconf do POSIX. O padrão é de 255 caracteres.
        
        port=n      O número da porta para conexão no servidor NFS. Caso esta porta
                    seja igual a 0 (o padrão), então será perguntado ao programa
                    mapeador de portas do servidor, qual o número a ser usado. Caso
                    o servidor NFS não esteja registrado no programa mapeador, a
                    porta padrão NFS 2039 será usada.
        
        mountport=n O número da porta de mountd.
        
        mounthost=nome O nome do servidor executando mountd.
        
        mountprog=n Número de programa RPC alternativo para contatar o servidor
                    mount no servidor remoto. Esta opção é útil para servidores que
                    podem rodar múltiplos servidores NFS.  O valor padrão é 100.005,
                    o qual é o padrão para o número do servidor mount.
        
        mountvers=n Versão alternativa do RPC usado para contatar o servidor mount
                    no servidor remoto. Esta opção é útil para servidores que podem
                    executar múltiplos servidores NFS. O valor padrão é versão 1.
        
        nfsprog=n   Número alternativo do programa RPC usado para contatar o
                    servidor NFS no servidor remoto. Esta opção é útil para
                    servidores que podem executar múltiplos servidores NFS. O valor
                    padrão é 100.003 para o número do servidor NFS.
        
        nfsvers=n   Versão alternativa do RPC usado para contatar o servidor NFS no
                    servidor remoto.  Esta opção é útil para servidores que podem
                    executar múltiplos servidores NFS.  O valor padrão é versão 2.
        
        bg          Caso a primeira tentativa de montagem NFS não ocorra dentro do
                    tempo de espera definido, tenta a montagem em segundo plano.
                    Após a transferência para segundo plano da operação de montagem,
                    todas as tentativas subseqüentes no mesmo servidor NFS serão
                    transferidas para segundo plano automaticamente, sem a primeira
                    tentativa de montagem em primeiro plano.  Um ponto de montagem
                    não encontrado é tratado como a ultrapassagem do tempo de
                    espera, para permitir montagens NFS encadeadas.
        
        fg          Caso a primeira tentativa de montagem ultrapasse o tempo de
                    espera, tenta novamente  a montagem, porém em primeiro plano.
                    Isso complementa a opção bg, e o comportamento padrão.
        
        soft        Caso uma operação NFS ultrapasse o tempo de espera, então relata
                    um erro de E/S a o programa que a acionou. O padrão é continuar
                    tentando a operação indefinidamente.
        
        hard        Caso uma operação NFS ultrapasse o tempo de espera, então
                    apresenta a mensagem "servidor não responde" na console e
                    continua indefinidamente. Este é o padrão.
        
        intr        Se uma operação NFS ultrapassar o tempo de espera e estiver
                    montada com a opção hard, permite o envio de sinais de
                    interrupção da operação e provoca um retorno EINTR para o
                    programa de origem.  O padrão é não permitir que as operações
                    sejam interrompidas.
        
        posix       Monta o sistema de arquivos usando a semântica POSIX. Isso
                    permite que um sistema de arquivos NFS suporte adequadamente o
                    comando POSIX pathconf através da solicitação de informações ao
                    servidor sobre o tamanho máximo de um nome de arquivo. Para
                    fazer isso, o servidor remoto deve suportar a versão 2 do
                    protocolo de montagem RPC. Muitos servidores NFS suportam
                    somente a versão 1.
        
        nocto       Suprime a recuperação de novos atributos na criação de um
                    arquivo.
        
        noac        Desabilita inteiramente o cache de atributos. Esta forma de
                    trabalho penaliza a performance de um servidor, mas permite que
                    dois diferentes clientes NFS tenham resultados razoáveis ao
                    utilizar ativamente um sistema de arquivos comum para gravação
                    no servidor.
        
        tcp         Monta o sistema de arquivos usando o protocolo TCP ao invés do
                    protocolo padrão UDP. Muitos servidores NFS suportam somente
                    UDP.
        
        udp         Monta o sistema de arquivos NFS usando o protocolo UDP. Este é o
                    padrão.
    

    Manipulação do Arquivo exports

    O arquivo exports é o arquivo que contém os diretórios que serão exportados pelo servidor para a(s) máquina(s) remota(s) da rede; pois por default o mount não permite que ninguém acesse seus diretórios, assim, aqueles diretórios que se desejam exportar, tem que estar relacionados no arquivo: /etc/exports

    Exemplo de arquivo exports:

         Volume a ser           Máquina(s) remota(s)(opção(ões))
          exportado
        
        /tmp/sol                192.168.255.202(rw,no_root_squash)
        /home/bugs              192.168.255.14(rw,no_root_squash)
        /home/slowly            192.168.255.13(rw,no_root_squash)
        /home/skippy            192.168.255.102(rw,no_root_squash)
        /usr                    *.conectiva(ro,no_root_squash)
        /mnt                    administrador(rw) cliente(rw)
    

    Cada vez que seja necessário acrescentar algum diretório, máquina ou alguma modificação for feita no /etc/exports, é necessário "restartar" o serviço de nfs do servidor para que as mudançãs tenham efeito, para fazer isto faça, no servidor e como root:

        # cds
        
        # ./nfsd restart
    

    OPÇÕES

        insecure    Permite o acesso não autenticado a partir desta máquina.
        
        unix-rpm    Requer autenticação RPC (domínio UNIX) para esta máquina. Isto é
                    requerido somente para as requisições originadas a partir de uma
                    porta reservada Internet (isto é, portas com números menor que
                    1024). Esta opção está ativa por padrão.
        
        secure-rpc  Requer autenticação segura RPC para esta máquina. Isto ainda não
                    foi implementado. Veja a documentação da Sun em ``Secure RPC''.
        
        kerberos    Requer autenticação Kerberos para acesso desta máquina. Isto
                    ainda não está implementado. Veja a documentação do MIT sobre
                    sistemas de autenticação Kerberos.
        
        root_squash Esta é uma característica de segurança que proíbe que o
                    superusuário dos servidores especificados tenha qualquer direito
                    de acesso especial a partir de sua identificação igual a 0 no
                    cliente, que será alterada no servidor para 65534 (-2). Esta
                    identificação deve ser associada ao usuário nobody.
        
        no_root_squash Não mapeia requisições do usuário com identificação 0. Esta
                    opção é ativada por padrão.
        
        ro          Monta hierarquicamente os arquivos, somente para leitura. Esta
                    opção é usada por padrão.
        
        rw          Monta hierarquicamente os arquivos, com autorizações para
                    leitura e gravação.
        
        link_relativa Converte ligações simbólicas absolutas (onde a ligação começa
                    com uma barra) em ligações relativas colocando os prefixos ../
                    que sejam necessários para obter a rota do diretório que contém
                    a ligação para a raiz no servidor.  Esta opção somente faz
                    sentido quanto é montado um sistema de arquivos completo de uma
                    máquina, onde algumas ligações podem apontar para arquivos
                    inválidos, ou pior, para arquivos que nunca deveriam ser
                    apontados. Esta opção é usada por padrão.
        
        link_absolute Deixa todas as ligações simbólicas inalteradas (é a opção
                    normal dos servidores NFS da Sun).
        
        map_identity A opção map_identity indica ao servidor para assumir que o
                    cliente usa as mesmas identificações de usuário e grupos que o
                    servidor. Esta opção é usada por padrão.
        
        map_daemon  Esta opção avisa o servidor NFS para assumir que o cliente e o
                    servidor não compartilham a mesma identificação de usuários e
                    grupos. O servidor nfsd irá então construir uma lista da
                    identificação de mapas entre cliente e servidor, através da
                    chamada ao servidor ugidd na máquina cliente.
    

    Para montar um servidor NFS para outras máquinas, antes de nada, deve ser executado o programa nfsd e o servidor mountd nas máquinas locais e no servidor, ainda no servidor, certifique-se que o 'portmap' tenha sido inicializado.

    Para saber mais acesse: linux.unicamp.br/docs/howtos/BR-NFS-HOWTO.html