Ratio:  / 6

Esta guía explica cómo configurar un servidor NFS y un cliente de NFS. El acrónimo NFS significa Network File System; y como a través de NFS, un cliente de acceso (lectura, escritura) compartirá con un servidor NFS, el contenido de éste último como si de un disco local se tratara
 

1 Nota preliminar

  • Servidor NFS: server.example.com, dirección IP: 192.168.1.34
  • Cliente NFS: client.example.com, dirección IP: 192.168.1.33

2 Instalación NFS


servidor:

En el servidor NFS, ejecutamos:

yum install nfs-utils nfs-utils-lib

(apt-get install, si usa Debian/Ubuntu)

Entonces creamos los enlaces de inicio del sistema para el servidor NFS e iniciarlo:

chkconfig --levels 235 nfs on

service nfs start
o

/etc/init.d/nfs start


cliente:

En el cliente podemos instalar NFS como sigue (esto es realmente lo mismo que en el servidor):

yum install nfs-utils nfs-utils-lib

3 Exportación directorios del servidor


servidor:

Me gustaría hacer que los directorios /home y /var/nfs fueran accesibles al cliente; por lo tanto  debemos "Exportarlos" en el servidor.

Cuando un cliente accede a un recurso compartido de NFS, sucede normalmente como el usuario nobody. Generalmente el directorio /home no es propiedad de nadie (y no lo recomiendo cambiar su propiedad a nadie!), porque si queremos leer y escribir en /home, decimos al NFS que los accesos deben hacerse como root (si nuestra cuota/Inicio era de sólo lectura, esto no sería necesario). No existe el directorio /var/nfs , así que debemos crearlo y cambiar su propiedad; en mis pruebas el usuario y grupo nobody tiene el ID el 99 en ambos mis sistemas de prueba de CentOS (servidor y cliente); Cuando traté de escribir a /var/nfs desde el cliente NFS, tengo un error de permiso denegado , así que hice un chmod 777 /var/nfs para que todo el mundo pudiera escribir en ese directorio.

mkdir /var/nfs
chmod 755 /var/nfs

Ahora debemos modificar /etc/exports donde "exportamos" nuestras acciones NFS. Especificamos /home y /var/nfs como compartidos e indicamos al servidor NFS que los accesos a /home se hagan como root (para aprender más acerca de /etc/exports, su formato y opciones disponibles, echa un vistazo a)

man 5 exports

Recuerde (en este ejemplo):

  • Servidor NFS: server.example.com, dirección IP: 192.168.1.34
  • Cliente NFS: client.example.com, dirección IP: 192.168.1.33

vi /etc/exports

/home           192.168.1.33(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.33(rw,sync,no_subtree_check)

(La opción no_root_squash permite acceder como root  a /home.)

Cada vez que modificamos /etc/exports, debemos ejecutar:

exportfs -a

para hacer efectivos los cambios.


cliente:

Primero creamos los directorios donde queremos montar las acciones NFS, por ejemplo:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

Posteriormente, podemos montarles como sigue (debemos hacerlo como root, o escribiendo sudo delante si es un usuario con permisos):

Recuerde (en este ejemplo):

  • Servidor NFS: server.example.com, dirección IP: 192.168.1.34
  • Cliente NFS: client.example.com, dirección IP: 192.168.1.33

 

mount 192.168.1.34:/home /mnt/nfs/home
mount 192.168.1.34:/var/nfs /mnt/nfs/var/nfs

 Ahora debería ver las dos acciones NFS en las salidas de "df -h"

 

[root@client ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                        28G  2.2G   25G   8% /
/dev/sda1               99M   13M   82M  14% /boot
tmpfs                  250M     0  250M   0% /dev/shm
192.168.1.34:/home     28G  2.6G   25G  10% /mnt/nfs/home
192.168.1.34:/var/nfs
                       28G  2.6G   25G  10% /mnt/nfs/var/nfs
[root@client ~]#

y la salida simple de "mount"

[root@client ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (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.1.34:/home on /mnt/nfs/home type nfs (rw,addr=192.168.1.34)
192.168.1.34:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.1.34)
[root@client ~]#

5 Ensayo

En el cliente, ahora puede intentar crear archivos de prueba en el servidor NFS:


cliente:

touch /mnt/nfs/home/prueba.txt
touch /mnt/nfs/var/nfs/prueba.txt

Ahora vaya al servidor y compruebe que si puede ver ambos archivos de prueba:


servidor:

ls -l /home/

[root@server ~] # ls -l /home/
55540 total
-rw-r--r--1 root root 0 Sep 16 17:30 prueba.txt
[root@server ~] #

ls -l /var/nfs

[root@server ~] # ls - l /var/nfs
0 total
-rw-r--r--1 65534 65534 0 Sep 16 17:30 prueba.txt
[root@server ~] #

(Tenga en cuenta las diferentes propiedades de los archivos de prueba: el recurso compartido de NFS /home obtiene acceso como root, por lo tanto /home/test.txt es propiedad de root, obtiene acceso a la cuota de /var/nfs nobody , por lo tanto, es propiedad de nobody)

6 Montaje NFS acciones durante el arranque

En lugar de montar manualmente las acciones NFS en el cliente, se puede modificar /etc/fstab para que las acciones NFS se montan automáticamente cuando el cliente se inicia.

Recuerde (en este ejemplo):

  • Servidor NFS: server.example.com, dirección IP: 192.168.1.34
  • Cliente NFS: client.example.com, dirección IP: 192.168.1.33

cliente:

Abra /etc/fstab y agregue las siguientes lineas:

vi /etc/fstab

 

[...]
192.168.1.34:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0
192.168.0.34:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

 

En lugar de rw, sync, hard, intr puede utilizar opciones de montaje diferentes. Para más información sobre las opciones disponibles, echa un vistazo a

man nfs

Para probar si está funcionando su modificado /etc/fstab, reinicie al cliente:

reinicio

Después del reinicio, encontrará las dos acciones NFS en las salidas de

df .-h

 

[root@client ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       28G  2.2G   25G   8% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 250M     0  250M   0% /dev/shm
192.168.1.34:/home     28G  2.6G   25G  10% /mnt/nfs/home
192.168.1.34:/var/nfs
                       28G  2.6G   25G  10% /mnt/nfs/var/nfs
[root@client ~]#

y

mount

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (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.1.34:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.1.34)
192.168.1.34:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.1.34)
[root@client ~]#

 

También te puede interesar tener la información cifrada y secreta, entonces deberías leer este artículo: