Minicluster:NFS
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
.)
Servidor NFS
Instalando o servidor NFS
Instalar no servidor NFS
[root@one]$ dnf install nfs-utils rpcbind
/etc/exports
- Criar no servidor o diretório para colocar os usuários a serem exportados (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).
[root@one] $ cd /home [root@one] $ mkdir /home/export [root@one] $ mkdir /home/export/alunos [root@one] $ mkdir /home/export/docentes [root@one] $ mkdir /share
- Configurar o arquivo
[root@one] $ vi /etc/exports
Este arquivo contém quais arquivos serão compartilhados. (Usando endereços IP não requer que DNS esteja de pé e rodando)
# <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
- 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]$ systemctl start nfs [root@one]$ systemctl stop rpcbind # portmap para versões antigas [root@one]$ systemctl start rpcbind # 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 one: /home/export 192.168.0.100
Monitoração
Para monitorar o sistema
[root@one]$ nfsstat [root@one]$ nfsstat -o net
Cliente NFS (usando DRBL)
Pacotes para o cliente NFS
Instalar nos clientes NFS
[root@cell100]$ yum install nfs-utils rpcbind
- Criar no cliente um diretório para colocar os diretórios a serem importados
[root@cell100] $ cd /home [root@cell100] $ mkdir /home/export
/etc/fstab
Este arquivo fornece a funcionalidade oposta ao /etc/exports
- ao invés de contar o que exportar, informa o que importar.
Adicione a última linha ao arquivo (será montado automaticamente quando a máquina é iniciada)
[root@cell100] $ 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:/home/export /home/export nfs defaults 0 0
Usando defaults utiliza as opções setadas no servidor NFS em /etc/exports
.
Para montar o diretório NFS sem resetar a máquina use
[root@cell100 /]# mount -v 192.168.0.99:/share /share
Usando mount é possível ver os diretórios montados.
[root@cell100 /]# mount
Criar link simbólico
[root@cell100] $ mkdir /share [root@cell100] $ cd /share [root@cell100] $ 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.