Las unidades NFS trabajan como directorios(carpetas) compartidos entre varios servidores. La principal ventaja de esta configuración es salvar espacio en disco ya que la unidad que se utilizara estará ubicada en un solo servidor y los otros servidores estarán conectados via red. NFS es la mejor configuración para compartir un disco en varios servidores y hoy vamos a aprender a como configurar de forma sencilla.
Configuración de NFS en Centos
Vamos a realizar un ejemplo de configuración de una unidad NFS en base a dos servidores. La primera maquina la llamaremos Master que es en donde esta el disco origen para el NFS y a otra maquina la vamos a llamar Cliente es la que se conectara vía red a la unidad NFS de la maquina Master.
Aquí las Ips de nuestras maquinas, punto importante a la hora de configurar una unidad NFS se recomienda que las maquinas estén en el mismo Datacenter y que estén conectadas con IP’s privadas para aprovechar la velocidad que ofrecen estas redes.
Master: 10.34.56.110
Cliente: 10.34.56.113
Configuración de nuestro servidor llamado Master
Paso 1 : Ahora como usuario root necesitaremos instalar varios paquetes para utilizas NFS
yum install nfs-utils nfs-utils-lib
Ahora configuramos que los servicios inicien al arranque del sistema y que estén activos.
chkconfig nfs on service rpcbind start service nfs start
Paso 2 : Ahora necesitaremos exportar el directorio(carpeta) que queremos compartir, esta configuración se realizara en el archivo /etc/exports de la siguiente manera
#Abrimos el archivo
nano /etc/exports
#Colocamos la unidad que queremos compartir con nuestros clientes, por ejemplo vamos a compartir la carpeta /home con nuestro cliente 10.34.56.113
/home 10.34.56.113(rw,sync,no_root_squash,no_subtree_check)
Configuraciones:
rw: Esta opción permite que el servidor de cliente para leer y escribir en el directorio compartido
sync: Sync confirma solicitudes al directorio compartido sólo una vez se han confirmado los cambios.
no_subtree_check: Esta opción evita que el control del subárbol. Cuando un directorio compartido es el subdirectorio de un sistema de archivos más grande, nfs realiza exploraciones de cada directorio por encima de ella, con el fin de verificar sus permisos y detalles. Deshabilitar la comprobación de subárbol puede incrementar la fiabilidad de NFS, pero reducir la seguridad.
no_root_squash: Esta propiedad permite a root la conexión al directorio designado
Otra configuración:
ro = Esta opción permite que el servidor de cliente para leer solamente en el directorio compartido.
Una vez que haya ingresado en la configuración para cada directorio, ejecute el siguiente comando:
exportfs -a
Listo! Quedo configurado nuestro Master, ahora continuamos con nuestro Cliente, pero antes debemos asegurarnos que la conexión entre estos dos servidores este correcta que no exista ningún bloqueo de parte de nuestros firewall para que toda la información fluya entre estos dos servidores.
Configuración de nuestro servidor llamado Cliente
Paso 1: Instalar los paquetes necesarios en el cliente para utilizar NFS
yum install nfs-utils nfs-utils-lib
Paso 2 : Ubicar y crear carpeta en donde se va a montar la unidad NFS, esta ubicación la puedes realizar en donde se necesite, nosotros vamos a realizar una prueba de montar la unidad en /mnt/nfs/home procedemos a crear esta carpeta
mkdir -p /mnt/nfs/home
Ahora podemos probar que se monte bien nuestra unidad NFS en esta ruta que acabamos de crear.
mount 10.34.56.110:/home /mnt/nfs/home
Ahora puedes verificar con el comando df -h que la unidad NFS este funcionando y este montada correctamente
df -h
Ejemplo de resultado
Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 783M 18G 5% / 10.34.56.110:/home 20G 785M 18G 5% /mnt/nfs/home
Ahora con el comando mount podemos verificar todas las unidades que se encuentran funcionando en nuestra maquina
mount
Resultado
/dev/sda on / type ext4 (rw,errors=remount-ro) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 10.34.56.110:/home on /mnt/nfs/home type nfs (rw,noatime,nolock,bg,nfsvers=2,intr,tcp,actimeo=1800,addr=10.34.56.110)
Ahora ya puedes realizar pruebas de escribir en el Servidor llamado cliente, por ejemplo crear un archivo y luego validar que ese archivo se encuentre en el Servidor llamado Master.
En Servidor «Cliente»
touch /mnt/nfs/home/ejemplo
Verificamos en Servidor «Master»
ls /home
Configuración de unidad NFS en nuestro fstab
Esta configuración se realiza para mantener la unidad montada luego de un reinicio de nuestro servidor, la configuración se realiza en el archivo /etc/fstab y es la siguente
nano -w /etc/fstab
Ahora colocamos esta linea
10.34.56.110:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0
Probar fstab sin reiniciar, el comando para realizar esta prueba es el siguiente:
mount -a
Luego chequeamos que este montada la unidad con los siguientes comandos
df -h
mount
Desmontar una unidad NFS
En algunas ocasiones necesitamos bajar una unidad NFS para esto utilizamos el comando umount de la siguiente manera por ejemplo.
umount /mnt/nfs/home/
Verificamos que ya no este
df -h
Notas
En caso de que la unidad no se monte luego del reinicio y de que este configurado el archivo /etc/fstab podemos colocar en nuestro archivo /etc/rc.local el comando mount -a
nano -w /etc/rc.local
Colocamos en una linea
mount -a