Anteriormente tenía configurado ssh para el intercambio de archivos entre los equipos de la LAN, la velocidad de transmisión de datos esta entre 3 y 4 MiB/s, es lento. NFS nos puede dar más velocidad a cambio de menos seguridad, aunque tampoco es la panacea, consiguiendo una velocidad de 9 y 10 MiB/s pero como en mi caso, para intercambiar varios gigabites es un alivio.
NFS no esta pensado para compartir archivos como en Samba o usando fish de SSH, la forma de actuar con NFS es montar una de las unidades de red del servidor en nuestro equipo.
En primer lugar y en el servidor NFS, es decir el que contendrá la carpeta que necesitamos compartir, hay que instalar varios paquetes:
yum install nfs-utils portmap
Comprobaremos si portmap y nfs están activos en el sistema, sino los arrancamos:
/etc/init.d/rpcbind status
/etc/init.d/rpcbind start (si esta inactivo)
/etc/init.d/nfs status
/etc/init.d/nfs start (si esta inactivo)
/etc/init.d/nfslock status
/etc/init.d/nfslock start (si esta inactivo)
Si queremos que el servicio nfs este activo el siguiente arranque debemos ejecutar el siguiente comando:
/sbin/chkconfig nfs on
Configuremos la seguridad para NFS, añadiendo las siguientes lineas:
vim /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
/etc/hosts.allow
portmap:192.168.1.0/255.255.255.0
lockd:192.168.1.0/255.255.255.0
mountd:192.168.1.0/255.255.255.0
rquotad:192.168.1.0/255.255.255.0
statd:192.168.1.0/255.255.255.0
Se puede dar permisos por supuesto a una red de internet ajena a nuestra intranet, por ejemplo:
portmap:89.125.4.52
Editamos el archivo /etc/sysconfig/nfs configuramos o añadimos los siguientes parámetros:
LOCKD_TCPPORT=4000
STATD_PORT=4002
LOCKD_UDPPORT=4000
MOUNTD_PORT=4001
Abrir los puertos que anteriormente hemos seleccionado más el 111 y el 2049:
111 tpc/udp (rcp)
4000 tcp/udp
4001 tcp/udp, 4002 tcp/udp
también 2049 tcp/udp (nfs)
Configurar que carpetas vamos a exportar modificando el archivo /etc/exports
/home 192.168.1.39(rw,sync)
Con esto le notificamos al sistema que estamos compartiendo el directorio /home con permisos de lectura-escritura y escritura sincronizada a petición, si quisiéramos que fuera de solo lectura bastaría con substituir (rw) por (ro).
Cada vez que se efectue un cambio en /etc/exports hay que ejecutar el siguiente comando para que los cambios sean visibles:
exportfs -rv
Para que los cambios efectuados hasta el momento hay que reiniciar los servicios:
/etc/init.d/rpcbind restart
/etc/init.d/iptables restart
/etc/init.d/nfs restart
/etc/init.d/nfslock restart
Ahora desde la parte del cliente, vamos a comprobar que carpetas comparte el servidor y posteriormente montar la carpeta deseada. "showmount" nos presenta las carpetas compartidas y la salida seria como esta:
[root@nexus7 nexus7]# showmount -e 192.168.1.18
Export list for 192.168.1.18:
/home 192.168.1.39
Ahora procedemos a montar /home en nuestro sistema cliente, creamos una carpeta en /mnt con el nombre que queramos (mkdir /mnt/HomeNexus7).
mount -t nfs 192.168.1.18:/home /mnt/HomeNexus7/
Para que esta carpeta siga montada en cada arranque debemos añadir una nueva linea a /etc/fstab, por ejemplo:
192.168.1.18:/home /mnt/HomeNexus7 nfs rw 0 0
Podemos añadir "hard,intr", cuando servidor se cuelga el programa que accede a ese archivo también se bloquea, para evitar esto se recomienda poner en la linea de comandos de montaje:
192.168.1.18:/home /mnt/HomeNexus7 nfs rw,hard,intr, 0 0