NFS Server · 4 min read · Oct 09, 2025
Configuración de un servidor NFS altamente disponible
¡Este es un “copia y pega” HowTo!
La forma más fácil de seguir este tutorial es usar un cliente de línea de comandos/cliente SSH (como
PuTTY
para Windows) y simplemente copiar y pegar los comandos (excepto donde tengas que proporcionar tu propia información como direcciones IP, nombres de host, contraseñas,…). Esto ayuda a evitar errores tipográficos.
Configuración de un servidor NFS altamente disponible
Versión 1.0
Autor: Falko Timme
Última edición: 03/07/2006
En este tutorial describiré cómo configurar un servidor NFS altamente disponible que se puede utilizar como solución de almacenamiento para otros servicios de alta disponibilidad como, por ejemplo, un clúster de servidores web que están siendo balanceados. Si tienes un clúster de servidores web con dos o más nodos que sirven el mismo sitio web, entonces estos nodos deben acceder al mismo conjunto de datos para que cada nodo sirva los mismos datos, sin importar si el balanceador de carga dirige al usuario al nodo 1 o al nodo n. Esto se puede lograr con un recurso compartido NFS en un servidor NFS al que todos los nodos del servidor web (los clientes NFS) pueden acceder.
Como no queremos que el servidor NFS se convierta en otro “Punto Único de Fallo”, tenemos que hacerlo altamente disponible. De hecho, en este tutorial crearé dos servidores NFS que reflejan sus datos entre sí en tiempo real usando DRBD y que se monitorean mutuamente usando heartbeat, y si uno de los servidores NFS falla, el otro toma el control silenciosamente. Para el exterior (por ejemplo, los nodos del servidor web) estos dos servidores NFS aparecerán como un solo servidor NFS.
En esta configuración usaré Debian Sarge (3.1) para los dos servidores NFS así como para el cliente NFS (que representa un nodo del clúster de servidores web).
Quiero decir primero que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que elijo. No emito ninguna garantía de que esto funcione para ti.
1 Mi Configuración
En este documento utilizo los siguientes sistemas:
- Servidor NFS 1: server1.example.com, dirección IP: 192.168.0.172; me referiré a este como server1.
- Servidor NFS 2: server2.example.com, dirección IP: 192.168.0.173; me referiré a este como server2.
- Dirección IP virtual: uso 192.168.0.174 como la dirección IP virtual que representa el clúster NFS hacia el exterior.
- Cliente NFS (por ejemplo, un nodo del clúster de servidores web): client.example.com, dirección IP: 192.168.0.100; me referiré al cliente NFS como client.
- El directorio /data será reflejado por DRBD entre server1 y server2. Contendrá el recurso compartido NFS /data/export.
2 Instalación Básica de server1 y server2
Primero configuramos dos sistemas Debian básicos para server1 y server2. Puedes hacerlo como se describe en las primeras dos páginas de este tutorial: https://www.howtoforge.com/perfect_setup_debian_sarge. Como nombre de host, ingresas server1 y server2 respectivamente, y como dominio ingresas example.com.
En cuanto a la partición, utilizo el siguiente esquema de partición:
/dev/sda1 – 100 MB /boot (primaria, ext3, bandera de arranque: activada)
/dev/sda5 – 5000 MB / (lógica, ext3)
/dev/sda6 – 1000 MB swap (lógica)
/dev/sda7 – 150 MB no montada (lógica, ext3) (contendrá los metadatos de DRBD)
/dev/sda8 – 26 GB no montada (lógica, ext3) (contendrá el directorio /data)
Puedes variar los tamaños de las particiones dependiendo del tamaño de tu disco duro, y los nombres de tus particiones también pueden variar, dependiendo de tu hardware (por ejemplo, podrías tener /dev/hda1 en lugar de /dev/sda1 y así sucesivamente). Sin embargo, es importante que /dev/sda7 tenga un poco más de 128 MB porque usaremos esta partición para los metadatos de DRBD que utilizan 128 MB. Además, asegúrate de que /dev/sda7 así como /dev/sda8 sean idénticas en tamaño en server1 y server2, y por favor no las montes (cuando el instalador te pregunte:
No se ha asignado ningún punto de montaje para el sistema de archivos ext3 en la partición #7 de SCSI1 (0,0,0) (sda).
¿Quieres volver al menú de particionamiento?
por favor responde No)! /dev/sda8 será nuestra partición de datos (es decir, nuestro recurso compartido NFS).
Después de la instalación básica, asegúrate de que le des a server1 y server2 direcciones IP estáticas (server1: 192.168.0.172, server2: 192.168.0.173), como se describe al principio de https://www.howtoforge.com/perfect_setup_debian_sarge_p3).
Después, deberías verificar /etc/fstab en ambos sistemas. El mío se ve así en ambos sistemas:
| # /etc/fstab: información del sistema de archivos estático. # # proc /proc proc defaults 0 0 /dev/sda5 / ext3 defaults,errors=remount-ro 0 1 /dev/sda1 /boot ext3 defaults 0 2 /dev/sda6 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |
Si encuentras que el tuyo se ve así, por ejemplo:
| # /etc/fstab: información del sistema de archivos estático. # # proc /proc proc defaults 0 0 /dev/hda5 / ext3 defaults,errors=remount-ro 0 1 /dev/hda1 /boot ext3 defaults 0 2 /dev/hda6 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |
entonces asegúrate de usar /dev/hda en lugar de /dev/sda en los siguientes archivos de configuración. También asegúrate de que /dev/sda7 (o /dev/hda7) y /dev/sda8 (o /dev/hda8…) no estén listados en /etc/fstab!
3 Sincronizar la Hora del Sistema
Es importante que tanto server1 como server2 tengan la misma hora del sistema. Por lo tanto, instalamos un cliente NTP en ambos:
server1/server2:apt-get install ntp ntpdate
Después, puedes verificar que ambos tengan la misma hora ejecutando
server1/server2:date
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.