Esta guía explica cómo configurar un servidor NFS y un cliente NFS en CentOS 6.3. NFS significa Sistema de archivos de red; a través de NFS, un cliente puede acceder (leer, escribir) un recurso compartido remoto en un servidor NFS como si estuviera en el disco duro local.
1 nota preliminar
Estoy usando dos sistemas CentOS aquí:
- Servidor NFS:server.example.com, dirección IP:192.168.0.100
- Cliente NFS:client.example.com, dirección IP:192.168.0.101
2 Instalación de NFS
servidor:
En el servidor NFS ejecutamos:
yum install nfs-utils nfs-utils-lib
Luego creamos los enlaces de inicio del sistema para el servidor NFS y lo iniciamos:
chkconfig --levels 235 nfs on
/etc/init.d/nfs start
cliente:
En el cliente podemos instalar NFS de la siguiente manera (en realidad es lo mismo que en el servidor):
yum install nfs-utils nfs-utils-lib
3 Exportación de directorios en el servidor
servidor:
Me gustaría hacer que los directorios /home y /var/nfs sean accesibles para el cliente; por lo tanto, debemos "exportarlos" en el servidor.
Cuando un cliente accede a un recurso compartido NFS, normalmente ocurre como el usuario none. Por lo general, el directorio /home no es propiedad de nadie (¡y no recomiendo cambiar su propiedad a nadie!), y porque queremos leer y escribir en /home, le decimos a NFS que los accesos deben hacerse como root (si nuestro recurso compartido /home fuera de solo lectura, esto no sería necesario). El directorio /var/nfs no existe, por lo que podemos crearlo y cambiar su propiedad; en mis pruebas, el usuario y el grupo nadie tenían el ID 99 en mis dos sistemas de prueba CentOS (servidor y cliente); cuando traté de escribir en /var/nfs desde el cliente NFS, obtuve un error de Permiso denegado, así que hice un chmod 777 /var/nfs para que todos pudieran escribir en ese directorio; Escribir en /var/nfs desde el cliente funcionó entonces, y en el cliente los archivos escritos en /var/nfs parecían ser propiedad del usuario y del grupo, pero en el servidor eran propiedad del (inexistente) usuario y grupo. con el DNI 65534; así que cambié la propiedad de /var/nfs al usuario/grupo 65534 en el servidor y cambié los permisos de /var/nfs a 755, y voilà, al cliente se le permitió escribir en /var/nfs:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs
Ahora debemos modificar /etc/exports donde "exportamos" nuestros recursos compartidos NFS. Especificamos /home y /var/nfs como recursos compartidos de NFS y le indicamos a NFS que realice accesos a /home como raíz (para obtener más información sobre /etc/exports, su formato y las opciones disponibles, eche un vistazo a
man 5 exports
)
vi /etc/exports
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(La opción no_root_squash hace que se acceda a /home como raíz).
Siempre que modifiquemos /etc/exports, debemos ejecutar
exportfs -a
después para hacer efectivos los cambios.
4 Montaje de los recursos compartidos NFS en el cliente
cliente:
Primero creamos los directorios donde queremos montar los recursos compartidos de NFS, por ejemplo:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Posteriormente, podemos montarlos de la siguiente manera:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
Ahora debería ver los dos recursos compartidos de NFS en los resultados de
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[[email protected] ~]#
y
mount
[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
5 Pruebas
En el cliente, ahora puede intentar crear archivos de prueba en los recursos compartidos de NFS:
cliente:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt
Ahora ve al servidor y verifica si puedes ver ambos archivos de prueba:
servidor:
ls -l /home/
[[email protected] ~]# ls -l /home/
total 0
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
[[email protected] ~]#
ls -l /var/nfs
[[email protected] ~]# ls -l /var/nfs
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
[[email protected] ~]#
(Tenga en cuenta las diferentes propiedades de los archivos de prueba:se accede al recurso compartido NFS /home como raíz, por lo tanto, /home/test.txt es propiedad del usuario raíz; se accede al recurso compartido /var/nfs como nadie/65534, por lo tanto, /var/ nfs/test.txt es propiedad de 65534.)
6 Montaje de recursos compartidos NFS en el momento del arranque
En lugar de montar los recursos compartidos de NFS manualmente en el cliente, puede modificar /etc/fstab para que los recursos compartidos de NFS se monten automáticamente cuando se inicie el cliente.
cliente:
Abra /etc/fstab y agregue las siguientes líneas:
vi /etc/fstab
[...]
192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
En lugar de rw,sync,duro,intr puede utilizar diferentes opciones de montaje. Para obtener más información sobre las opciones disponibles, consulte
man nfs
Para probar si su /etc/fstab modificado está funcionando, reinicie el cliente:
reboot
Después del reinicio, debería encontrar los dos recursos compartidos de NFS en las salidas de
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[[email protected] ~]#
y
mount
[[email protected] ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[[email protected] ~]#
7 Enlaces
- NFS de Linux:http://nfs.sourceforge.net/
- CentOS:http://www.centos.org/