Una unidad NFS (Network File System) es básicamente un directorio que se comparte entre varios servidores. Es decir, podemos crear un directorio en el servidor «A», que mediante el montaje NFS podrá ser accesible desde los servidores «B», «C», etc. El montaje de una unidad NFS nos ofrece la ventaja de que ahorraremos espacio, ya que el directorio sólo estará físicamente en uno de los servidores, pero el resto de los servidores podrán acceder a él como si tuviesen ese directorio en local. Es una solución muy utilizada también para los backups, ya que permite tener los backups almacenados en un servidor remoto, y al mismo tiempo, nos permite acceder al directorio que almacena los backups como si estuviese en local. Vamos a ver aquí cómo configurarlo.
Un montaje NFS necesita de al menos 2 servidores, obviamente. El servidor que aloja el directorio compartido se llama «Maestro» y el servidor externo que tiene acceso a ese directorio compartido se llama «Cliente». En este tutorial, vamos a configurar primero el servidor Maestro y luego el servidor Cliente, y utilizaremos las siguientes IPs de ejemplo:
Maestro: 192.168.1.1
Cliente: 192.168.1.2
Todo lo que explicaremos debes realizarlo como usuario root del sistema. Vamos allá.
Lo primero que vamos a hacer es instalar todos los componentes necesarios en nuestro servidor Maestro:
yum install nfs-utils nfs-utils-lib
A continuación, nos aseguraremos de que se inicie siempre cuando el servidor se reinicie:
chkconfig nfs on service rpcbind start service nfs start
El siguiente paso es decidir qué directorio queremos compartir con el servidor cliente. El directorio que escojamos, tendrá que ser añadido al archivo /etc/exports, donde estará especificado tanto el directorio que queremos compartir como el modo en que lo compartiremos. Vamos a suponer que queremos compartir el directorio /home del servidor Maestro.
Editamos el archivo /etc/exports:
nano /etc/exports
Y añadimos lo siguiente al final del archivo:
/home 192.168.1.2(rw,sync,no_root_squash,no_subtree_check)
Estos parámetros indican lo siguiente:
rw: Esta opción autoriza al servidor cliente tanto a leer como a escribir en el directorio compartido.
sync: Esta opción sincroniza los cambios realizados en el directorio compartido.
no_root_squash: Esta opción autoriza al usuario root a conectarse al directorio compartido.
no_subtree_check: Esta opción hace que NFS no tenga que escanear todo el árbol de directorios del servidor, por lo que la consulta es más rápida.
Una vez que se hayan definido las opciones para el directorio o los directorios que queramos compartir, ejecutaremos el siguiente comando para exportarlos:
exportfs -a
Como hicimos con el servidor Maestro, lo primero será instalar los componentes de NFS:
yum install nfs-utils nfs-utils-lib
Una vez que tenemos instalados los componentes, crearemos el directorio donde montaremos la unidad NFS:
mkdir -p /mnt/nfs/home
Ahora que hemos creado el directorio, lo montaremos así
mount 192.168.1.1:/home /mnt/nfs/home
Puedes comprobar si el directorio se ha montado correctamente, ejecutando el comando «df -h«. Si todo ha ido bien, verás el montaje en la última línea, así:
Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 783M 18G 5% / 12.34.56.789:/home 20G 785M 18G 5% /mnt/nfs/home
Una vez que hayas montado la unidad NFS como he indicado anteriormente, para probarla sólo debes crear un archivo dentro del directorio compartido en el servidor Cliente.
touch /mnt/nfs/home/ejemplo.txt
Si todo ha ido bien, ahora podrás acceder al servidor Maestro y dentro del directorio /home podrás ver el archivo ejemplo.txt que acabas de crear en el servidor Cliente.
Debes asegurarte de que el montaje siempre estará activo en el servidor Cliente, a pesar de que reinicies el servidor, y para ello sólo debes añadir esta línea al archivo /etc/fstab:
12.34.56.789:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0
Con estos sencillos pasos ya tendrías montada y compartida tu unidad NFS, ahorrando espacio en disco y accediendo a los directorios compartidos como si los tuvieras en local.