Mudanças entre as edições de "Minicluster:NFS"
m (→/etc/fstab) |
m (→/etc/exports) |
||
Linha 17: | Linha 17: | ||
* Configurar o arquivo | * Configurar o arquivo | ||
[root@one] $ vi /etc/exports | [root@one] $ vi /etc/exports | ||
− | Este arquivo contém quais arquivos serão compartilhados. | + | Este arquivo contém quais arquivos serão compartilhados. |
# <dir a ser compartilho> <clientes permitidos>(opções) | # <dir a ser compartilho> <clientes permitidos>(opções) | ||
/home/export 192.168.0.0/24(rw,no_root_squash,sync,subtree_check,no_wdelay) | /home/export 192.168.0.0/24(rw,no_root_squash,sync,subtree_check,no_wdelay) |
Edição das 11h22min de 5 de julho de 2010
O Network File System (NFS) permite que todo o cluster compartilhe parte de seu sistema de arquivos. Neste paradigma, uma ou mais máquinas guardam os arquivos no seu disco físico e agem como um servidor NFS enquanto que os outros "mount" o sistema de arquivos localmente. Para o usuário, parece que seus arquivos existem em todas as máquinas de uma só vez.
Se houver mais de um servidor de arquivos (digamos MESTRE1 e MESTRE2), eles não podem compartilhar o mesmo diretório /home
(mas um poder compartilhar o /home/students
e o outro pode compartilhar /home/faculty
.)
Índice
Servidor NFS
Instalando o servidor NFS
Instalar no servidor NFS (antigamente era usado portmap
para a comunicação)
[root@one]$ yum install nfs-utils rpcbind
/etc/exports
- Criar no servidor o diretório para colocar os usuários a serem exportados
[root@one] $ cd /home [root@one] $ mkdir /home/export
(não usar o próprio /home
pois ele já existe nas máquinas clientes, pois assim arquivos não serão montados sobre os arquivos locais).
- Configurar o arquivo
[root@one] $ vi /etc/exports
Este arquivo contém quais arquivos serão compartilhados.
# <dir a ser compartilho> <clientes permitidos>(opções) /home/export 192.168.0.0/24(rw,no_root_squash,sync,subtree_check,no_wdelay) /share 192.168.0.100(ro) # # /home/export 192.168.0.101(rw) # um endereço IP # /home/export cell101(rw) # uma maquina # /home/export .matrix.net(rw) # um dominio # /home/export 192.1680.0.1/24(rw) # um dominio
(Usando endereços IP não requer que DNS esteja de pé e rodando)
- Ver [LDAP]
Opções para /etc/exports
-
rw
- permite read e write ao sistema de arquivos. -
ro
- read only é o default do NFS. -
async/sync
- Assíncrona perminte que o servidor NFS respond to requests before committing changes. According toman
, this can improve performance but can corrupt data in the event of a crash. Synchronous is the default. -
wdelay/no_wdelay
- Write delay allows the NFS server to put off committing changes to disk if it suspects that another write is coming shortly. -
subtree_check/no_subtree_check
- Subtree checking improves security by checking not just that the client has rights to mount a directory, but all of the directory's subdirectories as well. Subtree checking is enabled by default, but the NFS server will complain if you don't specifically indicate it. -
root_squash/no_root_squash
- Root squashing prevents a root user on a machine using the filesystem to act as it if is the root user on the actual filesystem; this is more secure. It is on by default.
Reiniciando o servidor NFS
[root@one]$ service nfs start [root@one]$ service rpcbind stop # portmap para versões antigas [root@one]$ service rpcbind start # portmap para versões antigas
ou na ordem contrária. Para modificar outras diretivas NFS não padrões, modifique /etc/sysconfig/nfs
Para verificar que o mount esta sendo compartilhado,
[root@one]$ showmount -e Export list for um.matrix: /share 192.168.0.100 /home/export2 192.168.0.100
Monitoração
Para monitorar o sistema
[root@one]$ nfsstat [root@one]$ nfsstat -o net
Cliente NFS
Pacotes para o cliente NFS
Instalar nos clientes NFS (antigamente era usado portmap
para a comunicação)
[root@one]$ yum install nfs-utils rpcbind
/etc/fstab
/etc/fstab
fornece a funcionalidade oposta ao /etc/exports
- ao invés de contar o que exportar, informa o que importar. O formato é
<source to mount from> <local mount point> <type of filesystem> <options> <dump> <pass>
Adicione a linha NFS depois do drive local ser montado. Use
<NFS server>:<remote location>
Deveria estar apto a usar a opção defaults
, que usa as opções setadas no servidor NFS em /etc/exports
, e dump
e pass
não precisam ser habilitados (assim podem ter 0).
Para montar o diretório NFS sem resetar a máquina use
[root@cell100 /]# mount -v 192.168.0.99:/share /share
Melhor ainda é adiciona a linha no arquivo /etc/fstab
[root@um] $ vi /etc/fstab # UUID=4410482b-b774-4129-8df7-e91bced7206d / ext4 defaults 1 1 UUID=4083cf64-0477-476c-a116-a39c7f47847b /boot ext3 defaults 1 2 UUID=1d1ee881-d431-46df-b387-d180f239f388 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 192.168.0.99:/share /share nfs defaults 0 0 192.168.0.99:/home/export2 /home/export2 nfs defaults 0 0
Adicionando a linha em /etc/fstab
, o diretório será montado automaticamente quando a máquina é iniciada, se o diretório de montagem existe (Crie o diretório /share se ele não existe).
Usando mount é possível ver os diretórios montados.
Criar link simbólico
[root@um] $ mkdir /share [root@um] $ cd /share [root@um] $ ln -s /home/dago /share/dago
Troubleshooting: NFS Mounts not Loading at Boot
I had a problem with my firewall not automatically mounting the NFS systems at boot, for whatever reason. I could issue mount -a
as root as soon as the system booted up, but it wouldn't boot at load time, despite the /etc/fstab
file. To "hack fix" it, I added my own script at /etc/rcS.d/S46mymount
. (46 runs right after S45mountnfs.sh and S46mountnfs-bootclean.sh.) It needs to be executable (chmod +x nfshack
), but the file itself is simply:
#!/bin/bash mount -a
Troubleshooting
Algumas vezes um erro ocorre:
[maquina~] $ mount /shared mount: RPC: Timed out
Reiniciando o serviço portmap funcionou para o autor:
[maquina~] $ /etc/init.d/portmap stop Stopping portmap daemon.... [maquina~] $ /etc/init.d/portmap start Starting portmap daemon.... [maquina~] $ mount /shared
Ferramentas:
[root]$ chkconfig [root]$ system-config-services [root]$ rpcinfo -p [root]$ /usr/sbin/ntsysv # servicos inicicializados.
Tudo que é importante é logged em /var/log/messages.
- Erros
[root@cell100 etc]# mount -v 192.168.0.99:/home/export2 /home/export2/ mount.nfs: trying text-based options 'vers=4,addr=192.168.0.99,clientaddr=192.168.0.100' mount.nfs: mount(2): No route to host
Causa: Provavelmente firewall ativa. Desativar iptables ou consertar.
[root@cell100 etc]# mount -v 192.168.0.99:/home/export2 /home/export2/ mount.nfs: trying text-based options 'vers=4,addr=192.168.0.99,clientaddr=192.168.0.100' mount.nfs: mount(2): Stale NFS file handle
Causa: ???