Tabla de Contenidos

Instalando y configurando NFSv4 en Debian

Introducción

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.

Instalando los paquetes necesarios

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

Configurando portmap

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.

Configurando idmapd

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.

Exportando directorios

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

Nota sobre el pseudo sistema de archivos /exportados

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

Configuración de los clientes

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

Bibliografía