08 Jan

NFS, Mas Esse Não é Need For Speed

Tags: , ,  

Esquecendo a brincadeira do título esse protocolo é bastante interessante e relativamente fácil de entender e vale a pena falar sobre ele.

Network File System conhecinho pela sigla NFS é um protocolo que foi desenvolvido pela Sun Microsystems na década de 80. Esse protocolo teria como finalidade facilitar o compartilhamento de arquivos e/ou diretórios entre computadores conectados numa mesma rede. Caso tenha a curiosidade você pode ter acesso as especificações deste protocolo lendo as RFC’s: 1094 (Versão 1 e Versão 2), 1813 (Versão 3) e 3530 (Versão 4).

Agora você pergunta: Qual a vantagem? Acredito que de cara podemos descrever três:

  1. Em ambientes empresariais, por exemplo, ao invés de investir em disdo para diversas maquinas, se pode investir em uma máquina em específico e deixar compartilhado o espaço, o que facilitaria até mesmo para evitar armazenamento duplicado de arquivos, de forma desnecessária.
  2. Outra boa vantagem também seria a configuração dos diretórios home dos usuários ficarem em um servidor NFS, fazendo com que ficasse muito mais fácil e prático o acesso, em qualquer máquina conectada a rede.
  3. Dispositivos como Drives CD/DVD, Discos removíveis e outros dispositivos que estejam em uma máquina na rede podem ser acessados facilmente pelas outras que forma a rede.

O funcionamente do NFS para o cliente é bem transparente, para ele é como se estivesse acessando um diretório localmente mas, por trás de toda essa transparencia existe o uso de protocolos tipo Cliente-Servidor, que podemos definor de forma breve como protocolos que interligam cliente(s) e servidor(s) conectados a mesma rede, onde o cliente envia um requisição ao servidor e o servidor recebe essa requisição, processa e envia uma resposta. Quando essa relação Cliente-Servidor é estabelecida o os arquivos remotos e /ou diretórios remotos passam a ser parte do Sistema de Arquivos local.

Mais abaixo descreverei como montar um servidor NFS e como configurar o cliente, mas vamos explicar, digamos assim, a função de cada um deles:

nfs-kernel-server: É um pacote que instala o servidor NFS e é bastante recomendado para utilização em sistemas Linux/GNU . Os recursos contidos neste pacote não os das versões 3 e 4 do NFS.

nfs-user-server: Esse pacote também instala um servidor NFS contudo é executado inteiramente no espaço do usuário.

nfs-common: Pacote para suporte de arquivos comuns a cliente e servidor NFS.

portmap: Permite que o cliente NFS saiba qual porta o servidor NFS está utilizando.

Agora vamos ao que interessa neh?!

Montando o Servidor

Instale os pacotes:

[krix@rogue]# apt-get install nfs-kernel-server nfs-user-server nfs-common portmap

Após a instalação edite o arquivo exports, onde ficam indicados os diretórios e/ou arquivos que seram compartilhados, vamos dar uma olhada no arquivo original:

[krix@rogue]# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#        to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes  gss/krb5i(rw,sync)
#

Como se pode ser nada de muito complicado no arquivo e os exemplos contidos são bem simples de entender, então podermos como exemplo editar colocando a seguinte linha ai final:

[krix@rogue]# echo “/misc/videos 192.168.3.86(rw,sync)” >> /etc/exports

Desse modo estaremos definindo qual diretório estarei compatilhando na rede.

Reinicie o servidor NFS e o portmap

[krix@rogue]# /etc/init.d/nfs-kernel-server restart
[krix@rogue]# /etc/init.d/portmap restart

Você também ao invés de reiniciar os serviços usar o exportfs para atualizar as alterações feitas no arquivo exports sem a necessidade de reiniciar os serviços.

[krix@rogue]# exportfs -v -a

Como você pode observar eu fiz uso de duas opções na execução do exportfs, vamos ver a função delas e de outras:

-a = Exporta todos os diretórios adicionados e/ou remove todos os diretórios removidos;
-i = Ignora o arquivo /etc/exports exportando somente o caminho especificado na linha de comando;
-o = Especifica as opções de acesso;
-r = Reexporta todos os diretórios sincronizando o /var/lib/nfs/xtab com o /etc/exports removendo da tabela de exportação toda entrada que não mais seja válida;
-v = Exibe na saída padrão o(s) diretórios que foram adicionados para exportar e os que foram removidos.

Tudo feito, vamos agora para o cliente…

Configurando o Cliente NFS

Para o cliente, não será necessário a instalação dos mesmos pacotes que foram instalados no servidor, basta somente o nfs-common e o portmap:

[krix@rogue]# apt-get install nfs-common portmap

Para podermos começar devemos montar um ponto de montagem que que possa haver o compartilhamento. O ideal é que você crie um ponto dentro de um diretório chamado /export para que fique mais visível que aquele diretório é externo.

[krix@rogue]# mkdir -p /export/videos

Usei a opção -p nesse caso pois não existia o diretório /export. Criado o ponto de montagem vamos montar o compartilhamento:

[krix@rogue]# mount -t nfs -o soft 192.168.3.86:/misc/videos /export/videos

Vamos entender a linha acima:

-t nfs = Indica o tipo de sistema de arquivo, nesse caso o nfs;
-o soft = Evita o travamento do cliente ao tentar acessar o compartilhamento caso o servidor tenha caído, exibindo para isso uma mensagem de informando a indisponibilidade do compartilhamento;
192.168.3.86:/misc/videos = Origem, nesse caso, IP do servidor e caminho no servidor;
/export/videos = Destino, caminho onde será montado os arquivos do compartilhamento.

Prontinho!!!! Seu servidor NFS e seu cliente estão, respectivamente, montado e configurado.

Anúncio provido pelo BuscaPé

Deixe um comentário

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: