La forma más sencilla de montar unidades en NFS ha sido tradicionalmente el empleo de /etc/fstab para definir las unidades de red y los puntos de montaje. Sin embargo este método puede provocar retrasos en el arranque del sistema, dado que hasta que no están los dispositivos de red y el cliente NFS funcionando no es posible montar dichas entradas, provocando interrupciones en el arranque del sistema.

Recientemente he tenido este problema con la instalación de un equipo portátil que utilizaba puntos de montaje NFS para las carpetas de documentos, música, etc. Una demora de este tipo (con una pantalla con mensajes de texto si utilizas SysV.rc o en negro si utilizas systemd) desde luego no es una situación deseable y un usuario no experimentado puede pensar que se ha producido un error y reiniciar el equipo sin finalizar el arranque.

El servicio autofs

Para evitar esta situación una posible solución es utilizar el servicio autofs cuya función es montar y desmontar automáticamente sistemas de archivos locales y remotos, evitando el engorro de montarlos manualmente o especificándolos en /etc/fstab. Esta solución tiene como ventaja que es aplicable tanto a equipos con SysV.rc o con systemd.

Para ello deberemos asegurarnos que dicho servicio se encuentra instalado en nuestro sistema y en funcionamiento. En los equipos con SysV.rc podemos comprobarlo con service autofs status y en systemd con systemctl status autofs.service. Si no lo tenemos instalado o funcionando deberemos de instalarlos y activarlos en el arranque. Es un servicio básico así que no tendrás problema en localizarlo e instalarlo en tu distribución.

Configurar el servicio para NFS

Una vez nos hemos asegurado que el servicio está corriendo podemos pasar a configurarlo en unos pocos sencillos pasos.

  • Determinar el punto de montaje. Naturalmente podemos especificar el punto de montaje que queramos, pero creo que lo más adecuado es mantener la Filesystem Hierarchy Standard y realizar los montajes en /mnt. Creamos un directorio nfs con mkdir /mnt/nfs. Así pues todos los montajes de NFS los realizaremos en /mnt/nfs.
  • Configuración del montaje. Nos ubicaremos en el directorio /etc/autofs, en donde sino existe un fichero específico podemos crear el fichero auto.nfs. En dicho fichero especificaremos los puntos de montaje, las opciones y el export de origen. Y ya está. Podemos incluso montar todos los exports de nfs de un servidor o utilizar widlcards y variables para mantener un único fichero auto.nfs para todos los equipos de nuestra red.

    Por ejemplo, si queremos montar todos los exports de un servidor:

    * -fstype=nfs4,rw   server:/export/home/&
    

    El * equivale a todo, y el & es equivalente al punto de montaje. En mi caso sólo me interesaba montar algunos exports, no todos, por lo que quedó así:

    docs	-fstype=nfs4,rw	server:/${USER} # Utilizamos 
    # el nombre de usuario como variable en la exportación
    mp3	-fstype=nfs4,rw server:/&
    video	-fstype=nfs4,rw server:/&
    
  • Configurar /etc/autofs/auto.master. Así pues ya hemos configurado los exports a montar. Ahora falta incluirlo en el fichero /etc/autofs/master.auto, que es donde se especifican los directorios donde se montarán los distintos *.auto. En este caso incluimos la siguiente linea.
    /mnt/nfs	/etc/autofs/auto.nfs
    

    Con esto estamos informando que todos los puntos de montaje especificados en auto.nfs deben de montarse en el directorio /mnt/nfs. ¿Simple no? Reiniciemos el servicio. En SysV.rc con service restart autofs y en systemd con systemctl restart autofs.service.

Ahora si entramos en el directorio /mnt/nfs veremos cómo aparecen montados los exports especificados en auto.nfs. Ahora la próxima vez que arranquemos el equipo comprobaremos cómo tarda mucho menos tiempo al no utilizar /etc/fstab para el montaje, estando ya disponibles los puntos de montaje probablemente después de la carga del entorno gráfico.

Como último detalle en este caso lo que hice fue realizar enlaces simbólicos desde los distintos exports en /mnt/nfs al directorio home del usuario, sustituyendo las carpetas Documentos, Música y Vídeo para que pudiera acceder a ellos desde su carpeta personal.

Otras aproximaciones

Por supuesto siempre existen otras alternativas:

  • Empleo de NetworkManager o Wicd para ejecutar scripts de montaje. Es otra opción basarse en estos servicios, sobre todo en ordenadores con entorno gráfico, para ejecutar el montaje sólo cuando una red o un interface está conectado.

    En un principio era la opción que exploré, sin embargo en el caso de NetworkManager tuve que descartarlo por un problema de timeout en la ejecucion de scripts de las últimas versiones. Al parecer si un script lanzado con el servicio NM.dispatcher tarda más tres segundos en ejecutarse el proceso es interrumpido. Por desgracia el montaje de un NFS a veces tarda más de tres segundos, sobre todo por wifi. En Wicd no observé este problema y es otra opción a considerar.

  • Utilizar el sistema de montaje de sistemas de archivos de Systemd. Systemd permite manejar y configurar los puntos de montaje y automounts, por lo que podríamos prescindir de autofs. Pero claro, esta opción no está disponible en aquellos equipos con SysV.rc. Pero puedes encontrar más información aquí.

Fuentes

http://linux.die.net/man/5/autofs

http://linux.die.net/man/5/auto.master

http://docstore.mik.ua/orelly/networking_2ndEd/nfs/ch09_04.htm

Comparte si te ha gustado

Autor:
Última actualización:

2 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

De acuerdo con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016, consiento que mis datos sean tratados bajo la responsabilidad de Oscar Gascón Arjol para recibir respuesta a consultas. publicación de comentarios del blog y que las conserve mientras haya un interés mutuo para ello. Me doy por informado que tengo derecho a revocar este consentimiento en cualquier momento y a ejercer los de acceso, rectificación, portabilidad y supresión de mis datos y los de limitación y oposición al tratamiento dirigiéndome por email a [email protected] También estoy informado de que puedo reclamar ante la autoridad de control a www.agpd.es.