Tres maneras de sobrevivir al apocalipsis

Episodio 3

Montaje de Sistemas de Archivos NFSv4 en Linux

Una línea de fstab robusta para montar NFSv4 bajo demanda con systemd, qué hace cada opción y cómo depurar los errores típicos.

Publicado
Lectura
2 min
Vistas
1
  • Linux
  • Networking
  • NFS
  • NFSv4
  • systemd
  • fstab
  • Storage
Índice del episodio
  1. Configuración Recomendada en /etc/fstab
  2. Línea de ejemplo para fstab:
  3. Errores Comunes y Solución de Problemas
  4. Comandos Útiles para el Ciclo de Vida del Montaje

Este artículo explica cómo montar un recurso compartido con NFSv4 (Network File System versión 4) usando /etc/fstab y el montaje bajo demanda de systemd, de forma que el sistema arranque bien aunque el servidor no esté disponible.

⚙️ Configuración Recomendada en /etc/fstab

La idea es que el recurso no se monte durante el arranque, sino la primera vez que alguien entra en la carpeta. Así, si el servidor está caído, el equipo arranca igual.

Línea de ejemplo para fstab:

[IP_SERVIDOR]:[RUTA_REMOTA]  [PUNTO_DE_MONTAJE]  nfs  nfsvers=4.2,noauto,x-systemd.automount,_netdev,hard,timeo=14  0 0

Explicación de Opciones Clave:

  • [IP_SERVIDOR]:[RUTA_REMOTA]: el recurso exportado por el servidor.
  • [PUNTO_DE_MONTAJE]: la carpeta local donde aparecerá el contenido (debe existir).
  • nfsvers=4.2: usa NFS 4.2. Si tu servidor es más antiguo, prueba con 4.1 o 4.
  • noauto: no montar el recurso durante el arranque.
  • x-systemd.automount: la opción clave. systemd vigila la carpeta y monta el recurso en el primer acceso.
  • _netdev: marca el montaje como dependiente de la red, para que systemd no lo intente antes de que haya conexión.
  • hard: si el servidor deja de responder, las operaciones esperan y se reintentan hasta que vuelva. Es lo recomendable para escribir datos. Su alternativa, soft, devuelve un error tras varios reintentos, y eso puede dejar archivos a medio escribir. Úsala solo en recursos de solo lectura.
  • timeo=14: tiempo de espera antes de reintentar una petición, en décimas de segundo (14 = 1,4 s). Sobre TCP, el valor por defecto es 600 (60 s); un valor bajo hace que el cliente reaccione antes cuando el servidor no contesta.

🚨 Errores Comunes y Solución de Problemas

  • “an incorrect mount option was specified”: alguna opción no existe o está mal escrita. Las versiones modernas del cliente NFS (nfs-utils en Arch, nfs-common en Debian/Ubuntu) rechazan el montaje en vez de ignorar la opción desconocida. Revisa la línea letra por letra.
  • Sintaxis en fstab: las opciones (cuarto campo) van separadas por comas, sin espacios.
  • showmount -e no muestra nada: es normal en servidores que solo sirven NFSv4, porque showmount usa el protocolo de NFSv3. Prueba directamente con un montaje manual.

🚀 Comandos Útiles para el Ciclo de Vida del Montaje

  1. Ver los recursos exportados (servidores con NFSv3): showmount -e [IP_SERVIDOR]

  2. Montar manualmente para probar: sudo mount -t nfs -o nfsvers=4.2 [IP_SERVIDOR]:[RUTA_REMOTA] [PUNTO_DE_MONTAJE]

  3. Aplicar los cambios de fstab:

    • sudo systemctl daemon-reload
    • sudo systemctl restart $(systemd-escape -p --suffix=automount [PUNTO_DE_MONTAJE])

    El nombre de la unidad se deriva de la ruta: /mnt/nas pasa a ser mnt-nas.automount. systemd-escape lo calcula por ti.

  4. Comprobar que funciona: ls [PUNTO_DE_MONTAJE] y, a continuación, findmnt [PUNTO_DE_MONTAJE].

Con esto, el recurso se monta solo cuando hace falta y el arranque del sistema ya no depende de que el servidor NFS esté encendido.