O que significa NFS?
NFS = Network File System. Sistema de compartilhamento de arquivos em rede, quer saber mais?.
Digite na caixa de pesquisa do google, define: nfs
, tradução das páginas em Inglês, copie a URL atual e no final da página, clique em "Ferramentas de idiomas", cole o endereço, clique em "traduzir",
ou acesse diretamente o tradutor em http://translate.google.com/translate_t ou CTRL+T abre outra aba no browser para colar a URL.
Já que está procurando no google, na caixa de pesquisa, acrescente ao termo pesquisado +nfs ~linux, exemplos:
cliente +nfs ~linux server +nfs ~linux how to nfs ~linux tutorial nfs+ldap tutorial nfs+nis tutorial nfs+dhcp
Use e abuse da criatividade, tente com outras variações, use também expressões em inglês e o tradutor.
Consulte as páginas do manual;
man nfs man exportfs man nfs man rpc.statd
Compartilhar diretórios via NFS envolve configurações no servidor e cliente, independe da distro, funciona com distribuições diferentes, o que importa é iniciar o serviço e corretamente configurado, também as permissões e configurações de rede.
Cuidado com a segurança, _nunca_ deixe diretórios exportados de cara para internet, quando for inevitável exportar diretórios em micros que estão de cara para o mundo, reforce as regras de firewall, feche o acesso via internet.
Das inúmeras vantagens de uma rede podemos destacar a troca de arquivos e acesso aos arquivos de outras maquinas.
No Linux temos várias maneiras de fazer isso, http, ftp, telnet, ssh, nfs etc.
O NFS tem um destaque especial dentro de uma rede local, usado para troca ou acesso aos arquivos entre várias maquinas ou usuários.
NFS pode montar em sua maquina diretórios de outras máquinas ou exportar diretórios de sua maquina para outras maquinas da rede.
Exemplo, em minha maquina tenho o ponto de montagem /mnt/micro200 onde posso montar um diretório de outra maquina da rede que foi previamente configurado para ser exportado para minha maquina, a partir da montagem quando eu acessar /mnt/micro200 tudo que for feito neste diretório montado, tem efeito no diretório da maquina que o exportou, comandos, copiar, apagar gravação e tudo mais, quando desmontar este compartilhamento no meu micro este ponto de montagem aparece vazio mas tudo que foi feito continua no diretório do micro que o exportou.
NFS só pode ser usado entre maquinas Linux e *nix.
Samba compartilhar diretórios com maquinas Windows, lembre que entre maquinas Linux não tem como usar as letras com dois pontos para indicar ou mapear um local da rede, isto só existe em estações windows, inclusive pode mapear unidades de rede do servidor Samba, mas é tudo configurado na estação Windows.
Em sistemas linux, NFS cliente permite acesso a diretório de outra maquina, precisa monta-lo em um diretório local, depois de montado acesse como sendo um diretório qualquer, via linha de comando, scripts ou interface gráfica, konqueror e etc...
Estes diretórios montados localmente podem aplicar qualquer ação, pode transferir arquivos entre outros diretórios da maquina e outros ponto de montagem, respeitadas as permissões pode: ler, editar, gravar, copiar, mover, apagar e etc....
Todas as ações nestes diretórios montados tem seus efeitos nos diretórios que deram origem a montagem (exportados), quando desmontados as ações praticadas permanecem somente nos diretórios das maquinas remotas, na maquina local (onde montou) eles deixam de existir após a desmontagem.
Toda ação dentro do diretório montado tem efeito somente na maquina remota.
Como os demais serviços de rede o NFS também tem o servidor e cliente de NFS, neste documento tem tópicos específicos sobre eles.
Webmin tem modulo configurador de NFS, procure no menu;
Rede ou Networking -> NFS Exports
Algumas distro tem opção no próprio configurador, como exemplo, yast no SUSE e Drakconf no Mandriva, procure nas ferramentas de configuração da sua instalação por algo relacionado ao NFS ou compartilhamento de arquivos e diretórios.
exportfs -a
Configurar servidor, diretório a exportar via NFS. Cliente, montar e acessar diretório compartilhado.
Ambiente, Instalação com interface gráfica KDE, neste perfil já instala os pacotes NFS servidor e cliente, caso tenha instalação com perfil diferente, com seu gerenciador de pacotes procure mais informações e instale os pacotes NFS e portmap
Modo via Yast
Yast instala e configura tudo via interface gráfica, interface fácil e intuitiva.
Configurar estações (cliente). Yast -> Serviços de Rede -> Cliente do NFS.
Configurar servidor (exportar diretório). Yast -> Serviços de Rede -> Servidor do NFS.
Configurar servidor via yast, ao sair do yast já está configurado para iniciar o serviço no boot e salva as configurações em /etc/exports, resultado da configuração via yast.
chkconfig nfs --list nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off chkconfig portmap --list portmap 0:off 1:off 2:off 3:on 4:off 5:on 6:off cat /etc/exports /tmp/distro *(ro,root_squash,sync)
O exemplo acima mostra um compartilhameto para qualquer maquina da rede, (ro) indica somente leitura.
Configurar via linha de comando - shell
Testar o compartilhamento, em outra maquina da rede, use este formato de linha de comando para montar.
mkdir /mnt/remoto mount -tnfs 192.168.1.200:/tmp/distro /mnt/remoto
Montou e acessou..., então funcionou....
Modo texto, tudo em linha de comando.
Configuração manual do servidor, via linha de comando e editando diretamente o arquivos de configuração, como root em um console, criar e exportar o diretório /tmp/distro
mkdir /mnt/distro #acrescentar em /etc/exports /tmp/distro *(ro,root_squash,sync) chkconfig nfs on chkconfig portmap on rcnfsserver start
Utilizo arquitetura i386 e x86_64, criei diretórios distintos abaixo de distro, a seguir exemplos de montagem da ISO no servidor. Na estação montagem e acesso aos arquivos exportados via NFS, tanto para uso em canais smart ou para indicar na instalação via NFS.
Montagem da iso no servidor, considerando que o servidor NFS já está configurado e exportando o diretório /tmp/distro/suse386.
mount -t iso9660 -o loop /home/zago/SUSE-Linux-10.1-GM-i386-DVD.iso /tmp/distro/suse386
Na estação, montagem para acessar os arquivos via NFS.
mkdir /mnt/isolocal mount -tnfs 192.168.1.2:/tmp/distro/suse386 /mnt/isolocal
Esta montagem não é permanente, não vale para o próximo boot. Montagem permanente, automática junto com o boot, acrescente a linha de comando acima no final do /etc/rc.d/boot.local ou configure no /etc/fstab.
Montagem de compartilhamento NFS via /etc/fstab, formato e exemplo
ipremoto:/caminho/remoto /caminho/local nfs defaults 0 0 192.168.1.2:/tmp/distro/suse386 /mnt/isolocal nfs defaults 0 0
Testar a montagem, mount -a
, confira com ls /mnt/isolocal, acesse o diretório ou via konqueror, acessando os arquivos está OK.
Na estação tem acesso normal aos pacotes, configure no seu gerenciador de pacotes para instalar a partir deste local, exemplo com smart, criar canal apontando para este ponto de montagem.
smart channel --add http://200.204.198.164/zago/smart/s101isolocal.channel -y smart update
Resumo de comandos.
rcnfsserver status
Conferir se o servidor está rodando
rcnfsserver stop
parar (interromper) o serviço nfs manualmente.
rcnfsserver start
iniciar o serviço nfs manualmente.
rcnfsserver restart
reiniciar o serviço nfs manualmente, executar após alterações na configuração do NFS.
exportfs
conferir o que está sendo exportado, exemplo de resultado.
/tmp/distro/susex86_64 <world> /tmp/distro/suse386 <world>
Outro exemplo.
Ambiente, estação na rede com SUSE 10.1, IP 192.168.1.53, exportar diretório /backup para outra maquina gravar dados, maquina cliente com IP 192.168.1.1
Comandos e resultados no servidor NFS (lado servidor)
chkconfig nfs --list nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off chkconfig portmap --list portmap 0:off 1:off 2:off 3:on 4:off 5:on 6:off Criar o diretório /backup com sub-diretório para cada dia da semana. mkdir -p /backup/{seg,ter,qua,qui,sex,sab,dom} exportar /backup. echo "/backup 192.168.1.1(rw,root_squash,sync)" >> etc/exports Ou com seu editor preferido, edite a acrescente no /etc/exports ``/backup 192.168.1.1(rw,root_squash,sync)`` vi etc/exports /tmp/distro/susei386 *(ro,root_squash,sync) /backup 192.168.1.1(rw,root_squash,sync)
Mesmo exportando e montando com rw não tem permissão para gravar, tem somente direito de leitura, para gravar precisa alterar as permissões, ajuste a seu modo, exemplo para liberar geral, liberar tudo.
chmod -R 777 /backup/
rcnfsserver start Starting kernel based NFS server done
Comandos na estação, montagem e acesso ao compartilhamento. (lado cliente)
mkdir /mnt/backremoto
mount -tnfs 192.168.1.53:/backup /mnt/backremoto
copiar arquivos para /backup/sex na maquina remota, basta copiar para o ponto de montagem, incluem o raiz e sub-diretórios.
cp * /mnt/backremoto/sex
comando acima executado como root, na própria maquina (CL10) veja o resultado de ls -la
-rw-r--r-- 1 nobody nobody 258537879 2006-07-21 18:17 homecontabil.meiodia.tar.gz resultado de ls -la no servidor SUSE 10.1 (micro que exporta diretório NFS) ls -la /backup/sex drwxrwxrwx 2 root root 144 Jul 21 18:17 . drwxrwxrwx 9 root root 248 Jul 21 18:15 .. -rw-r--r-- 1 nobody nogroup 19693568 Jul 21 18:17 homecontabil.meiodia.tar.gz
Outros testes e exemplos de montagem.
mount -tnfs -o exec,dev,suid,rw,soft,nolock,rsize=8192,wsize=8192,sync 192.168.1.53:/backup /mnt/backremoto
Servidor NFS - instalar pacotes; apt-get install nfs portmap
Verificar se NFS e PORTMAP estão instalados; rpm -qa | grep nfs
Comandos para iniciar e parar o servidor NFS.
O servidor de NFS é composto por dois serviços, nfs e portmap, eles podem ser iniciados automaticamente junto com o boot da maquina e parar também automaticamente quando desligar o micro, ou manualmente a qualquer momento.
Configurar para iniciar o serviço automaticamente quando liga o micro, tanto em modo texto como gráfico, execute estas duas linhas:
chkconfig portmap on chkconfig nfs on
Comandos para executar como root na linha de comando (manualmente).
Iniciar:
service nfs start service portmap start
Parar:
service nfs stop service portmap stop
conferir se esta rodando:
service nfs status service portmap status
Sempre que fizer alterações nos diretórios exportados reinicie os serviços:
service portmap restart service nfs restart
Configurar NFS no CL10 - lado do servidor.
Neste exemplo de um lado o servidor está com IP 192.168.1.200 nome copia200.linux.com e de outro lado o cliente com IP 192.168.1.10 nome serv.linux.com.
Comandos e configuração na maquina que vai exportar diretórios via NFS:
em /etc/exports acrescente uma linha indicando o que vai ser exportado e para qual IP, neste formato:
/diretorio/exportado ip_autorizado(rw)
Exemplo, exportar o diretorio /home/copia para uma maquina na rede com IP 192.168.1.10 para leitura e gravação.
/home/copia 192.168.1.10(rw)
no final da linha o (rw) indica leitura e gravação, para ficar somente leitura troque (rw) por (ro).
em /etc edite o arquivo hosts e acrescente o IP da maquina que vai ter acesso acrescentando uma linha com o IP e nome da maquina:
192.168.1.1 copia200
Exemplo para exportar um diretório para qualquer ip cliente.
/tmp/distro/ 192.168.1.0/255.255.255.0(rw)
192.168.1.0 exporta para toda a rede, qualquer estação pode montar este compartilhamento.
Lado cliente de NFS
Na maquina cliente precisa instalar e iniciar o serviço portmap
, este é o cliente NFS, conferir se está rodando, service portmap status
Também precisa criar um ponto de montagem, em /mnt ou outro local, exemplo de ponto de montagem em /mnt/rede, digite:
mkdir /mnt/rede cds ./portmap restart mount -tnfs 192.168.1.200:/home/copia /mnt/rede
Após o comando acima se ocorrer mensagens de erro, revise todos os comandos e observe se ao reiniciar algum serviço ocorre mensagens de erro, IP ou nome errado pode impedir a comunicação, teste com ping ou outro serviço de rede para saber se as maquinas se comunicam.
A montagem pode ser feita automaticamente na inicialização, configure no /etc/fstab da maquina que vai fazer a montagem.
Quando na montagem não ocorrer erros mas também não mostrar os arquivos é problema com permissões no diretorio exportado pelo server.
Para confirmar que é isto crie um diretorio em /home/teste e de um chmod 777 teste, exporte este diretorio e quando montar na outra maquina vai ter acesso total, veja o man nfs, man chmod...
A instalação e configuração pode diferenciar conforme a distro, como instalar e configurar o cliente NFS, veja no típico especifico sobre sua distro, a seguir alguns comandos comum a qualquer distro.
Montagem do compartilhamento remoto, exemplo para criar na maquina local o ponto de montagem /mnt/teste e montar nele um diretório exportado (/tmp/distro), exportado pela maquina com IP 192.168.1.120
mkdir /mnt/teste mount -tnfs 192.168.1.120:/tmp/distro /mnt/teste
Prontinho, acesse /tmp/teste, via linha de comando, konqueror ou seu navegador preferido, para desmontar, execute;
umount /mnt/teste
Ambiente, FC 7 instalado com perfil de estação de trabalho, Gnome e KDE selecionado em tempo de instalação, neste ambiente já inclue os pacotes cliente para montagem via nfs, não predcisa instalar pacotes adicionais.
Testar montagem na linha de comando.
mount -tnfs 192.168.1.120:/home/docadmin /home/zago/servidor
Montagem automatica via /etc/fstab
192.168.1.120:/home/docadmin /home/zago/servidor nfs
Outra opção para /etc/fstab
192.168.1.120:/home/docadmin /home/zago/servidor nfs defaults,rw,rsize=8192,wsize=8192,timeo=14,intr 0 0
Criar ponto de montagem como root e alterar o dono.
[root@a8n8 ~]# mkdir /home/zago/servidor [root@a8n8 ~]# chown -R zago /home/zago/servidor
Opções acima testadas também no SUSE 10.1
OpenOffice 2.2 - falha ao gravar arquivos em compartilhamento via NFS
Tive problema ao salvar arquivos em diretórios compartilhados via NFS, retorna erro de permissão, detectei este problema no FC7, veja a solução adotada no tutorial sobre OO, consulte o tópico FC7+NFS
http://www.zago.eti.br/openoffice2.html
Um recurso bem prático, compartilhar a imagem ISO da distro para instalar via rede, como exemplo o OPENSUSE 10.1, pode baixar a ISO dos 5 CD e criar imagem para DVD, mas não precisa gravar o DVD para instalar, pode baixar a mini-iso própria para instalar via rede, gravar em CD para dar boot pelo CD.
Também pode baixar a ISO para DVD, tem duas versões, a non-oss com alguns pacotes proprietários e a versão openSUSE sem os extras.
O CD da mini-iso pode ser utilizado com qualquer uma destas ISO, o que importa é exportar o conteúdo da ISO via rede (via NFS).
Exemplo para montar a ISO do DVD non-oss /tmp/SUSE-Linux-10.1-GM-DVD-i386.iso montar no diretório que está configurado para exportar /tmp/distro/suse386, basta montar a ISO com o comando;
mount -t iso9660 -o loop /tmp/SUSE-Linux-10.1-GM-DVD-i386.iso /tmp/distro/suse386
Na maquina que vai fazer a instalação, faça boot pelo CD de boot da mini-iso, selecione via NFS, informe o IP do servidor e diretório compartilhado...
Tem mais dicas no tutorial, instalando SUSE via rede.
NFS abre a porta 111, em micros com duas placas de rede, compartilhando internet e de cara para o mundo. Precisa fechar esta porta para conexões entrante da internet.
Aplique esta regra no firewall.
# Fechar NFS (portmap) para o mundo $iptables -A INPUT -p tcp -i $EXTERNA --syn --dport 111 -j DROP
Caso tenha problemas de conexão e tenha firewall no servidor NFS, tente fazer testes com firewall desabilitado, se funcionar sem firewall, então aplique regras para abrir a porta 111 somente para a rede interna, algo neste formato.
$iptables -A INPUT -p tcp --dport 111 -i $INTERNA -j ACCEPT $iptables -A INPUT -p udp --dport 111 -i $INTERNA -j ACCEPT
Via NX, FreeNX, tutorial e dicas
http://www.zago.eti.br/ssh/nx-freenx.html
Via ssh - konqueror
Transferir arquivos ou acessar a maquina remota via konqueror, explorar a maquina remota como se faz na maquina local, procure no FAQ sobre o konqueror:
http://www.zago.eti.br/konqueror.txt
Procure pelo tópico: SSH em modo gráfico
Prático e seguro em maquinas conectadas via internet....