Opciones para añañdir al fichero /etc/exports:
El formato es: directorio_compartido nombre_maquina(opciones)
Ejemplo:
/exports 192.168.0.0/24(rw,no_subtree_check,no_root_squash,crossmnt,fsid=0,sync)
directorio_compartido ► Es el directorio que se exportará por NFS.
nombre_maquina ► Máquinas de clientes autorizados, puede ser un nombre de máquina, una dirección IP o un rango de direcciones IP. 192.168.0.0/24 o 19.168.0.0:255.255.255.0 autorizan toda la red.
opciones ► Las diferentes opciones disponibles para el servidor NFS.
Opciones interesantes:
rw/ro ► Exporta el directorio en modo lectura-escritura o solo lectura.
root_squash ► Mapea los requerimientos del UID/GID 0 (user root) al usuario anónimo (defecto).
no_root_squash ► No mapea root al usuario anónimo.
all_squash ► Mapea todos los usuarios al usuario anónimo.
subtree_check/no_subtree_check ► Si se exporta un subdirectorio, el servidor comprueba que el fichero solicitado esté en el árbol de directorios exportado (por defecto: no).
sync ► Modo síncrono. Requiere que todas las operaciones de escritura se completen antes de continuar (defecto).
async ► Modo asíncrono. No requiere que las escrituras se completen para continuar. Es más rápido pero puede provocar pérdida de datos ante una caida o apagado acidental del servidor.
secure ► Los requerimientos deben de provenir de un puerto por debajo de 1024.
insecure ► Los requerimientos pueden provenir de cualquier número de puerto.
fsid=0 ► Designa este path como la raíz de los directorios exportados por NFSv4.
crossmnt ► Permite que los directorios debajo de raíz se muestren adecuadamente. Alternativamente se puede poner la opción nohide en cada uno de esos directorios.
Opciones de montaje para el cliente NFS:
Ejemplo de entrada en /etc/fstab.
...
192.168.1.10:/ /mnt/dir_remoto nfs4 rw,user,noauto,dev,nosuid,rsize=1048576,wsize=1048576,hard,intr
...
Opciones:
rw ► Monta el directorio remoto como lectura/escritura.
user ► Permite que cualquier usuario, no solo root, pueda montar el directorio remoto.
auto/noauto ► El directorio remoto se monta o no se monta de forma automática al iniciar el sistema.
dev ► ...
nosuid ► ...
rsize/wsize ► Especifican el tamaño del datagrama utilizado por los clientes NFS cuando realizan peticiones de lectura (r) y escritura (w). El valor mínimo es 1024 y el máximo 1048576 (un megabyte). Se debe indicar en múltiplos de 1024. Si se indica un valor inferior a 1024, el servidor asigna automáticamente el valor de 4096. Si el valor indicado es mayor que el soportado por el servidor o cliente, entonces estas opciones se negocian a los valores máximos que soporten ambos.
hard ► El programa que acceda a un fichero en un sistema de ficheros montado por NFS, se colgará cuando el servidor falle. El proceso no puede interrumpirse ni matarse, a menos que uno también especifique la opción intr. Cuando el servidor NFS esté de nuevo disponible, el programa continuará por donde estuviera como si nada hubiera ocurrido. Esta es la opción más recomendable.
soft ► Esta opción permite al kernel esperar un rato y rendirse después, si el servidor NFS no responde durante un tiempo determinado. El tiempo se puede especificar con la opción timeo=x. Esta opción podría ser de utilidad si el servidor NFS no respondierá a veces, o si fuera rearrancado mientras algún proceso estuviera intentando obtener un fichero de el. Esta opción normalmente dará muchos problemas.
intr/nointr ► Selecciona si se permiten señales para interrumpir las operaciones de archivos en este punto de montaje. Si no se especifica ninguna opción (o si se especifica nointr), las señales no interrumpen las operaciones de archivos NFS. Si se especifica intr, llamadas al sistema devuelven EINTR si una operación NFS en curso es interrumpida por una señal. Estas opciones están obsoletas desde el kernel 2.6.25 (solo para NFSv4).
Opciones de montaje desde línea de comandos:
# mount -t nfs4 192.168.1.10:/ /mnt/dir_remoto -o rsize=1048576,wsize=1048576,hard,int
Para más información ver las entradas del manual nfs(5), export(5)
NOTA: He leido que puede mejorar el rendimiento de NFS con ficheros grandes (de varios GB) y también evitar cuelgues del cliente, si se usa la versión 3 de NFS en lugar de la 4. Para ello sería necesario indicar en el montaje -t nfs y en las opciones añadir nfsvers=3
No lo he probado todavía.
Se pueden modificar el número de threards que el servidor NFS puede procesar, lo que aumentará ligeramente el rendimiento. Para ello editamos /etc/default/nfs-kernel-server y cambiamos el valor de RPCNFSDCOUNT de 8 a 32.
# Number of servers to start up
RPCNFSDCOUNT=32
...
Enlaces interesantes.
https://wiki.archlinux.org/index.php/NFS/Troubleshooting#Performance_issues
http://www.slashroot.in/how-do-linux-nfs-performance-tuning-and-optimization
http://www.cyberciti.biz/faq/nfs4-server-debian-ubuntu-linux/
2025 Alberto Picado