Mudanças entre as edições de "Minicluster:NFS"
m (→Instalando o servidor NFS) |
m (→Cliente NFS) |
||
(36 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 5: | Linha 5: | ||
= Servidor NFS = | = Servidor NFS = | ||
== Instalando o servidor NFS == | == Instalando o servidor NFS == | ||
− | Instalar no servidor NFS | + | Instalar no servidor NFS |
− | [root@one]$ | + | [root@one]$ dnf install nfs-utils rpcbind |
== /etc/exports == | == /etc/exports == | ||
− | * Criar no servidor o diretório para colocar os usuários a serem exportados | + | * Criar no servidor o diretório para colocar os usuários a serem exportados (não usar o próprio <code>/home</code> 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] $ cd /home | ||
[root@one] $ mkdir /home/export | [root@one] $ mkdir /home/export | ||
− | + | [root@one] $ mkdir /home/export/alunos | |
+ | [root@one] $ mkdir /home/export/docentes | ||
+ | [root@one] $ mkdir /share | ||
+ | |||
+ | |||
* 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. (Usando endereços IP não requer que DNS esteja de pé e rodando) |
# <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) | ||
+ | /share 192.168.0.100(ro) | ||
# | # | ||
# /home/export 192.168.0.101(rw) # um endereço IP | # /home/export 192.168.0.101(rw) # um endereço IP | ||
Linha 25: | Linha 30: | ||
# /home/export .matrix.net(rw) # um dominio | # /home/export .matrix.net(rw) # um dominio | ||
# /home/export 192.1680.0.1/24(rw) # um dominio | # /home/export 192.1680.0.1/24(rw) # um dominio | ||
− | |||
− | |||
* Ver [LDAP] | * Ver [LDAP] | ||
Linha 39: | Linha 42: | ||
== Reiniciando o servidor NFS == | == Reiniciando o servidor NFS == | ||
− | [root@one]$ | + | [root@one]$ systemctl start nfs |
− | [root@one]$ | + | [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 modificar outras diretivas NFS não padrões, modifique /etc/sysconfig/nfs | ||
Para verificar que o mount esta sendo compartilhado, | Para verificar que o mount esta sendo compartilhado, | ||
[root@one]$ showmount -e | [root@one]$ showmount -e | ||
− | Export list for | + | Export list for one: |
− | / | + | /home/export 192.168.0.100 |
+ | |||
* http://techgurulive.com/2008/09/15/fedora-9-quick-nfs-server-howto/ | * http://techgurulive.com/2008/09/15/fedora-9-quick-nfs-server-howto/ | ||
+ | === Monitoração === | ||
+ | Para monitorar o sistema | ||
+ | [root@one]$ nfsstat | ||
+ | [root@one]$ nfsstat -o net | ||
− | = Cliente NFS = | + | = Cliente NFS (usando DRBL) = |
== Pacotes para o cliente NFS == | == 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 == | == /etc/fstab == | ||
− | + | Este arquivo fornece a funcionalidade oposta ao <code>/etc/exports</code> - 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 <code>/etc/exports</code>. | |
− | + | 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 == | == 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 <code>mount -a</code> as root as soon as the system booted up, but it wouldn't boot at load time, despite the <code>/etc/fstab</code> file. To "hack fix" it, I added my own script at <code>/etc/rcS.d/S46mymount</code>. (46 runs right after S45mountnfs.sh and S46mountnfs-bootclean.sh.) It needs to be executable (<code>chmod +x nfshack</code>), but the file itself is simply: | I had a problem with my firewall not automatically mounting the NFS systems at boot, for whatever reason. I could issue <code>mount -a</code> as root as soon as the system booted up, but it wouldn't boot at load time, despite the <code>/etc/fstab</code> file. To "hack fix" it, I added my own script at <code>/etc/rcS.d/S46mymount</code>. (46 runs right after S45mountnfs.sh and S46mountnfs-bootclean.sh.) It needs to be executable (<code>chmod +x nfshack</code>), but the file itself is simply: | ||
− | + | #!/bin/bash | |
− | #!/bin/bash | + | mount -a |
− | |||
− | mount -a | ||
− | |||
− | |||
− | |||
== Troubleshooting == | == Troubleshooting == | ||
Linha 111: | Linha 115: | ||
Starting portmap daemon.... | Starting portmap daemon.... | ||
[maquina~] $ mount /shared | [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. | ||
== Veja == | == Veja == | ||
* http://www.debianhelp.co.uk/nfs.htm | * http://www.debianhelp.co.uk/nfs.htm | ||
* http://uwsg.indiana.edu/usail/network/nfs/tips.html | * http://uwsg.indiana.edu/usail/network/nfs/tips.html | ||
+ | |||
+ | *http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch04_:_Simple_Network_Troubleshooting | ||
+ | *http://tldp.org/HOWTO/NFS-HOWTO/troubleshooting.html, Dicas | ||
+ | *http://www.linuxconfig.org/HowTo_configure_NFS |
Edição atual tal como às 22h05min de 27 de junho de 2017
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.