NFS Simples e Fácil usando Mandriva e Kurumin

Descrição:

Muito se fala sobre NFS, existem milhares de artigos sobre NFS na internet, inclusive no próprio VivaoLinux temos vários artigos sobre o assunto. Neste artigo também vou falar de NFS, mas tentei abordar o assunto de uma forma simples, mais light, direcionado para usuários finais que precisam acessar dados que estão em outros computadores mas não querem ter a dor de cabeça e ter que se preocupar com a configuração mais complicada do Samba.

Abordei o NFS usando duas distribuições independentes, na máquina cliente suponhamos que você já tenha o Linux instalado, e como você quer só acessar e copiar as informações de uma outra máquina sem necessariamente ter o Linux instalado nela, vamos usar um live-cd para isso.
Nosso cenário vai ficar assim: Temos duas máquinas, uma com Linux instalado e outra que será nosso servidor, que usa Windows, e para podermos acessar os dados desta máquina sem correr o risco de causar danos nos discos rígidos vamos usar um live-cd.
As distribuições usadas são o Mandriva Linux Free 2006 e o Kurumin 6.0(As versões posteriores destes sistemas, provavelmente seguirão os mesmos passos de configuração descritos neste artigo.)

Antes de vermos NFS na prática vamos falar um pouco da história do protocolo NFS.

Network File System(Sun Microsystem)

Network File System é um protocolo, originalmente desenvolvido pela Sun Microsystem em 1984, que permite ao a um computador cliente acessar arquivos pela rede facilmente, como se acessasse discos locais. NFS, é parecido com outros protocolos produzidos pela Open Network Computing Remote Procedure Call(ONCRPC). O protocolo Network File System é especificado pelos padrões RFC 1094, RFC 1813 e RFC 3530 e pelo obsoleto RFC 3010.

Versões do protocolo.

A versão 1 do NFS somente foi usada internamente pela Sun, não sendo lançada para o público.
A versão 2 do protocolo(definida em RFC 1094 em Março de 1989), originalmente operava em cima do protocolo UDP.
A versão 3 (definida pelo RFC 1813 em Junho de 1995) adicionou as características:

* Suporte para arquivos de 64-bits de tamanho, com offsets para segurar arquivos maiores de 4 gigas.
* Suporte assíncrono para leitura no servidor, para melhorar desempenho no processo de escrita.
* A operação READDIRPLUS, para pegar arquivos e atributos junto com o nome de arquivos quando for escaneado o diretório.
Dentre outras melhorias.

Na época da introdução a versão 3 do NFS, a venda de suporte a TCP como protocolo de transporte começou a aumentar. Enquanto vários vendedores adicionaram o suporte a TCP na versão 2 do NFS, a Sun Microsystem adicionou o suporte para o protocolo TCP para a versão 3. Usando assim TCP como protocolo de transporte, o uso de NFS em WAN tornou -se mais praticável.

A Versão 4(RFC 3010 em Dezembro de 2000 e revisada pela RFC 3530 em Abril de 2003), foi influenciada pelo AFS(Andrew File System) e pelo CIFS, incluindo melhorias na performance, melhorias na segurança e introdução a um protocolo statefull. A versão 4 foi a primeira versão desenvolvida com Internet Engineering Task Force (IETF).

Vários protocolos vieram associados com NFS, incluindo:

* Protocolo Network Lock Manager (NLM) (Adicionado para suportar UNIX System V API's file-locking).
* Protocolo de Relatório de Quota Remoto (RQUOTAD) (Que permite usuários NFS verem suas quotas de dados de armazenamento em servidores NFS)
* WebNFS é uma extensão para as versões 2 e 3, permitindo ao NFS integrar mais facilmente em Web-Browsers e permitindo operações através de Firewall's.

Obs: Partes destas informações foram retiradas da wikipédia, no endereço http://en.wikipedia.org/wiki/Network_File_System_%28Sun%29

Configurando os endereços IP's no Mandriva e no Kurumin

Para que entenda melhor como está a nossa rede, veja esta ilustração:






A configuração no Mandriva é bem simples, como o foco deste artigo é usuários finais, vamos fazer esta configuração através da interface gráfica.

Abra o Konsole, ou o terminal que você estiver usando, logue -se como root. Para isso digite:

    su
    <coloque sua senha de administrador quando o sistema pedir e tecle enter>


Depois de entrar na conta do root, digite drakconnect, e selecione a opção 'Conexão LAN' e clique em Próximo, como é mostrado na figura abaixo:




Em seguida, escolha o dispositivo de rede da sua máquina e clique em Próximo, no meu caso ela é reconhecida pelo sistema como eth0, sendo uma placa Broadcom.




Em seguida, escolha por Configuração manual e clique em Próximo.




Agora escolha o endereço IP 10.0.1.2 com a máscara 255.0.0.0,em seguida clique em Próximo, lembre -se que o Mandriva vai ser nossa máquina Cliente!



Em seguida, vamos colocar um nome a nossa máquina, no meu caso coloquei como Notebook, em Gateway coloque 10.0.1.1, depois clique em Próximo.



Agora o sistema irá lhe perguntar o Nome da Máquina do Zeroconf, não precisa preencher este campo, clique direto em Próximo.




Na próxima tela clique em Não, porque não seremos o servidor da nossa rede, e depois clique em Próximo.




Para finalizar a configuração clique em Terminar.




Agora vamos configurar a rede em nosso servidor. A configuração pela interface gráfica no Kurumin é tão simples quanto no Mandriva.
Primeiro, clique em: Menu K > Internet > Conectar na Internet ou configurar a Rede > Configurar Rede Local, IP Fixo, cabo, rádio, ou modem router.




Em seguida, escolha qual interface de rede vai ser usada, no meu caso será eth0, depois clique em Ok. Se você está em dúvida qual é a sua interface, digite lspci no Konsole para ver o modelo da placa.



A próxima tela que será mostrada irá lhe perguntar se deseja configurar uma Rede por DHCP. Clique em Não.




A próxima tela vai te perguntar o endereço IP da interface que você escolheu anteriormente. Digite 10.0.1.1 e clique em OK.



Agora você será questionado sobre a máscara de sub-rede. Digite 255.0.0.0 e clique em OK.



Será perguntando o endereço de Broadcast da rede, digite 10.0.1.255 e clique em OK.



Na próxima tela você será interrogado sobre o endereço do Gateway, coloque aqui o endereço IP da máquina com o Kurumin, no caso 10.0.1.1, e clique em OK para confirmar.



E porfim ele irá perguntar o endereço do servidor DNS do provedor, coloque o mesmo endereço acima, 10.0.1.1.




Agora para termos certeza que nossa rede está funcionando, digite no Mandriva:

    ping 10.0.1.1

E no Kurumin:

    ping 10.0.1.2

Pode acontecer de o Mandriva não ter "enxergado" a máquina com Kurumin. Para resolver este problema, logue -se como root(visto acima) na máquina  com o Mandriva e digite:

    service network restart

Depois de reiniciar a rede digite para termos certeza que tudo esta certo:

    ping 10.0.1.1

Ativando o Servidor NFS no Kurumin

Depois de configurarmos a rede, e termos certeza que ela está funcionando, vamos ativar o servidor NFS do Kurumin.
Para isso, abra o console do Kurumin, no meu caso o Konsole(do KDE).

Após ele ter carregado, digite:

    sudo nfs-server-ativar

Obs: Por algum motivo, o Kurumin não me disponibilizou os aplicativos do console para que eu ativa -se o NFS manualmente, mas em compensação o comando acima faz tudo o que precisamos de uma maneira mais fácil.




Em seguida o script do Kurumin fará o carregamento dos daemons e dos processos necessários para o funcionamento do NFS, depois que esta etapa estiver pronta será aberto o arquivo exports, localizado na pasta /etc.
No arquivo exports é onde você informará ao sistema qual pasta vai ser compartilhada, quem vai poder acessa -la, e com que direitos.
Ficará assim:

[pasta_que_você_quer_compartilhar] [endereço_ip_do_cliente][direitos_dos_clientes_no_direitorio_compartilhado]

No meu caso coloquei assim:

/data/exemplo *(ro)

Atenção, ao colocar asterisco, qualquer um pode acessar sua pasta compartilhada, se você não desejar que isto aconteça, coloque neste campo o endereço ip do cliente que você quer que tenha acesso ao diretório compartilhado.
Entre parentes temos as permissões dos usuários clientes, no caso, permitidos somente o direito de leitura, se tivéssemos colocado (rw) teríamos permitidos direito de leitura e escrita. Atenção! Colocar direito de leitura e escrita não é aconselhado!




Na tela abaixo podemos ver o script do Kurumin iniciando o processo para liberar o servidor NFS, veja que o script ativa o daemon portmap, exporta as linhas descomentadas(linhas que não tem o símbolo #) e inicia o daemon nfsd.




Pronto! Se tudo estiver sido feito corretamente, o servidor NFS do Kurumin foi ativado e está funcionando, agora você já pode acessar, de uma outra máquina cliente, o Kurumin via NFS, a pasta compartilhada.

Acessando o Servidor NFS por outra máquina cliente.

Após termos configurado o servidor NFS na máquina com o Kurumin, é hora de acessarmos sua pasta compartilhada.
O Primeiro passo que devemos fazer é verificar se os pacotes com os utilitários para o cliente NFS funcionar estão instalados. Para isso abra o Konsole, ou outro terminal de sua preferência, logue -se como root(processo descrito acima) e digite:

[root@notebook localhost]# rpm -qa | grep nfs

Depois que digitar esses comandos, o gerenciador de pacotes rpm fará uma busca pelos pacotes instalados e mostrará, se encontrar, algum pacote que contenha o nome nfs.

Se você já tiver instalado o cliente nfs na sua máquina, você receberá a seguinte resposta pelo console:

nfs-utils-1.0.7-6mdk
nfs-utils-clients-1.0.7-6mdk

Se o rpm não encontrar nada, você terá que instalar os pacotes do cliente nfs.

Depois de confirmar que tudo está instalado corretamente, entre na pasta /etc/init.d com o comando:

    cd /etc/init.d

Digite em seguida:

    ./portmap start

Se tudo correr bem, aparecerá esta mensagem no console:

Iniciando portmapper:                                           [  OK  ]

Ainda nesta pasta digite:

    ./nfslock start

Porfim, para acessar a pasta compartilhada da outra máquina com o Kurumin, precisamos monta -la. Para isso digite:

    mount 10.0.1.1:/data/exemplo /mnt/data

Repare que depois do comando mount, colocamos o endereço ip do servidor NFS, em seguida, depois dos dois pontos, colocamos a pasta compartilhada que queremos acessar e por último colocamos aonde que ela deve ser montada em nosso sistema. É importante que você coloque nesta última pasta, um diretório que você tenha direito de leitura e escrita.

Se tudo correu bem, a pasta que você escolheu para receber os arquivos da pasta compartilhada do servidor, conterá dentro de sí, os arquivos da pasta compartilhada pelo NFS do computador com o Kurumin.

Dica:

Você pode automatizar o processo de montagem da pasta compartilhada por NFS, isso é possivel editando o fstab.
Para isso logue -se como root na máquina com Mandriva e digite no Konsole(Terminal):

    vi /etc/fstab

E coloque este conteúdo no final do arquivo

10.0.1.1:/dados/exemplo /mnt/dados nfs defaults 0

Obs: Primeiro colocamos o endereço ip do servidor NFS, depois colocamos a pasta que queremos acessar no servidor, depois vem a pasta aonde será montada o compartilhando do arquivo NFS em nosso computador, em seguida declaramos o tipo de sistema de arquivos, no caso nfs, depois em defaults, colocamos as permissões sobre a pasta, e por fim o 0 é a opção para dump.

Conclusão

Neste artigo abordei um tema trivial, que existe muita documentação na internet, mas tentei de uma forma mais simples, para que as que tem pouco conhecimento nessa área, também possam usufruir dos recursos do NFS sem ter problemas e dor de cabeça.

Matheus Santana Lima
matheusslima@yahoo.com.br
http://www.matheussantanalima.x-br.com/
Fico no aguardo pelos comentários.