El propósito de este instructivo es describir una configuración básica de un servidor NFS versión 4. Entre otras ventajas, brinda soporte mejorado de permisos y autenticación Kerberos.
Actualizar previamente el sistema de paquetes:
apt-get update && apt-get upgrade
Luego instalar los paquetes requeridos por NFS:
apt-get install nfs-kernel-server portmap nfs-common
Para configurar portmap, se debe editar /etc/default/portmap. En ese archivo, verificar que la siguiente variable se encuentre vacía para poder aceptar conexiones desde la intranet:
OPTIONS=""
Luego se debe permitir conexiones a portmap desde la intranet, utilizando el archivo /etc/hosts.allow:
portmap: 192.168.10.
El rpc.idmapd es el demonio que mapea IDs en nombres. Provee funcionalidad al kernel cliente y servidor NFSv4, con el cual se comunica mediante upcalls, para traducir IDs de grupo y usuario en nombres, y viceversa. Se debe editar el archivo /etc/default/nfs-common, y configurar la línea:
NEED_IDMAPD=YES
La configuración está en el archivo /etc/idmapd.conf el cual por ahora se dejará tal como viene por defecto.
Primero se debe crear un directorio donde se exportarán los sistemas de archivos a los clientes:
mkdir /exportados
Luego se debe editar el archivo /etc/exports y configurar las listas de control de acceso para los clientes:
/exportados 192.168.1.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0,async)
La opción async es sumamente importante, ya que según nuestras pruebas la performance del servidor se ve muy afectada si el export usa la opción sync (que es la opción por defecto) llegando incluso a colgar durante muchos segundos al cliente y llegando a tasas de transferencia de apenas unos pocos KB; esto es especialmente notable en servidores NFS con carga considerable. Se debe tener en cuenta que esta opción “async” aumenta la posibilidad de pérdida o corrupción de datos si el servidor se apaga incorrectamente o cuelga mientras se realiza la transferencia.
Para más información sobre este archivo, ver: man 5 exports
El directorio /exportados actúa como la raíz del pseudo sistema de archivos para la exportación. Se necesita montar todos los sistemas de archivos necesarios bajo este directorio. Por ejemplo, si se desea compartir /home, /datos y /usr:
cd /exportados mkdir {home,datos,usr}
Y luego montar allí los directorios en cuestión:
mount --bind /home home mount --bind /datos datos mount --bind /usr usr
Si se desea montarlos automáticamente en el inicio del sistema, editar /etc/fstab y agregar:
/home /exportados/home none bind /usr /exportados/usr none bind /datos /exportados/datos none bind
Hecho esto, reiniciar los servicios:
/etc/init.d/portmap restart /etc/init.d/nfs-common restart /etc/init.d/nfs-kernel-server restart
En el cliente se necesitan los siguientes paquetes:
apt-get install nfs-common portmap
Para ver los sistemas de archivos exportados:
showmount -e servidor
Para montar los directorios compartidos:
mkdir /mnt/datos mount.nfs4 servidor:/datos /mnt/datos
También se puede montar la raíz de exportación:
mkdir /mnt/todo mount.nfs4 servidor:/ /mnt/todo
Si se desea montar los compartidos en forma automática, editar /etc/fstab y agregar algo como:
servidor:/datos /mnt/datos nfs4 soft,intr,rsize=8192,wsize=8192