Marcio Cunha

Cómo automatizar failover NVMe-oF y DRBD en Proxmox

Aprende a configurar alta disponibilidad de almacenamiento NVMe en clusters Proxmox usando DRBD y multipathing NVMe-oF para redundancia de datos sin pérdida.

Marcio Cunha•5 min
También disponible en:PortuguêsEnglish
Resumen
  • El NVMe-oF transporta comandos NVMe por redes de alta velocidad logrando latencia cercana al disco local.
  • El DRBD espeja bloques en tiempo real entre nodos asegurando consistencia síncrona o asíncrona.
  • El multipathing unifica rutas de red redundantes previniendo caídas abruptas de almacenamiento.
  • La automatización del failover en Proxmox evita la intervención manual durante fallas críticas.
  • La correlación de telemetría de hardware y latidos previene escenarios catastróficos de split-brain.

El desafío de la alta disponibilidad en storages NVMe

Mantener almacenamiento rápido y seguro en entornos de virtualización es uno de los malabares más complejos que un ingeniero de infraestructura enfrenta a diario. Al trabajar con discos NVMe, que ofrecen velocidades de lectura y escritura impresionantes, cualquier cuello de botella en la red o falla de hardware puede tirar abajo docenas de máquinas virtuales al instante. En la práctica, esto significa que no basta con tener hardware veloz; debemos asegurar que los datos escritos en un servidor se copien instantáneamente a otro lugar seguro sin interrupciones.

En clusters Proxmox, el objetivo principal es garantizar que si un servidor físico muere de repente, las máquinas virtuales que corrían en él despierten en otro hardware en pocos segundos, con el menor impacto posible para el usuario final. Para lograr esta magia sin perder datos, combinamos dos tecnologías potentes: NVMe-oF para tráfico rápido de bloques y DRBD para replicación síncrona de datos. Antes de avanzar al montaje práctico, vale la pena recordar la importancia de mantener la infraestructura vigilada, tal como abordamos en estrategias de alertas predictivas de infraestructura con Prometheus.

Entendiendo NVMe-oF y DRBD en la práctica

NVMe-oF, o NVMe over Fabrics, es básicamente la tecnología que permite que los comandos de disco NVMe viajen a través de redes de computadoras en lugar de estar confinados a la placa madre del servidor. En la práctica, extiende el bus ultra rápido del NVMe hacia cables de red de alto rendimiento, como InfiniBand o Ethernet con RDMA. Esto hace que acceder a un disco remoto se sienta casi tan rápido como acceder a un disco conectado físicamente dentro del equipo.

Por otro lado, DRBD funciona como un espejo de disco en red. Intercepta cada pequeño dato que el sistema operativo intenta escribir en el disco principal y envía una copia exacta a través de la red hacia un segundo servidor en tiempo real. Si el primer servidor falla o se queda sin energía, el segundo servidor toma el control de inmediato porque ya posee una copia idéntica y actualizada de todos los bloques de datos. Esta redundancia estructural recuerda el cuidado que aplicamos en sistemas críticos, análogo a principios de diagnóstico de fallas en buses físicos industriales.

Configurando la capa de transporte NVMe-oF

Para estructurar nuestra redundancia de datos, necesitamos preparar los nodos de Proxmox para comunicarse mediante NVMe-oF usando protocolos TCP o RDMA. El primer paso consiste en cargar los módulos de kernel necesarios en todos los nodos del cluster y asegurar que el servicio de descubrimiento mapee los almacenamientos disponibles en la red.

La ejecución de los siguientes comandos debe realizarse directamente en la terminal de cada nodo Proxmox para habilitar los drivers de transporte y conectar el iniciador NVMe a los storages remotos:

modprobe nvme
modprobe nvme-fabrics
modprobe nvme-tcp
nvme discover -t tcp -a 192.168.100.50
nvme connect-all -t tcp -a 192.168.100.50

Con estos comandos, Proxmox pasa a visualizar el disco remoto NVMe como si fuese un dispositivo local conectado a las controladoras del propio servidor. El uso de multipathing garantiza que, si una de las placas de red falla, el tráfico migre automáticamente a la interfaz secundaria sin desconectar las sesiones activas.

Implementando el espejo síncrono con DRBD

Con los discos NVMe expuestos y conectados por red, el siguiente paso es crear la capa de replicación síncrona utilizando DRBD. Esta herramienta opera directamente en la capa de bloques de Linux, asegurando que cualquier modificación hecha en el volumen primario se confirme únicamente tras una escritura exitosa en el nodo secundario.

A continuación presentamos un ejemplo de archivo de configuración para el recurso DRBD que gestiona nuestro volumen de almacenamiento compartido entre dos nodos Proxmox:

resource r0 {
    protocol C;
    disk {
        c-plan-ahead 512;
        c-fill-target 24M;
        c-max-rate 720M;
    }
    net {
        allow-two-primaries no;
        rr-conflict disconnect;
    }
    on proxmox-node1 {
        device /dev/drbd0;
        disk /dev/nvme0n1;
        address 192.168.200.10:7788;
        meta-disk internal;
    }
    on proxmox-node2 {
        device /dev/drbd0;
        disk /dev/nvme0n1;
        address 192.168.200.20:7788;
        meta-disk internal;
    }
}

Tras crear este archivo de configuración en ambos servidores, inicializamos el recurso ejecutando los comandos de activación y formateo del dispositivo lógico resultante:

drbdadm create-md r0
drbdadm up r0
drbdadm primary --force r0
mkfs.ext4 /dev/drbd0

Esta estructura síncrona asegura que el cluster Proxmox mantenga siempre un bloque de datos íntegro y listo para ser montado ante cualquier falla imprevista de hardware.

Para garantizar que todo el ecosistema de hardware y sensores responda de manera saludable y predecible bajo estrés térmico o eléctrico, vale la pena mantener buenas prácticas de ingeniería, revisando conceptos fundamentales como los descritos en nuestra guía sobre monitoreo de temperaturas de VRM y telemetría por bus I2C.

Automatizando el failover y previniendo el split-brain

El mayor riesgo en sistemas de alta disponibilidad basados en replicación de bloques es el temido split-brain, situación donde ambos nodos pierden comunicación de red entre sí y asumen simultáneamente que el otro murió, escribiendo datos contradictorios en el mismo disco y corrompiendo el almacenamiento. Para evitar este desastre, configuramos mecanismos de aislamiento y quórum basados en STONITH (Shoot The Other Node In The Head).

Proxmox administra esta inteligencia a través de su gestor de cluster corosync, que monitorea constantemente el pulso de cada máquina física. Cuando un nodo deja de responder al latido durante unos segundos, la automatización ejecuta el aislamiento inmediato del nodo defectuoso y promueve al nodo secundario como primario absoluto de DRBD, permitiendo que las máquinas virtuales sigan operando sin intervención humana.

Consideraciones finales

Automatizar el failover de storages NVMe en clusters Proxmox utilizando DRBD y multipathing NVMe-oF transforma una infraestructura casera o empresarial en un entorno altamente resiliente y preparado para lo inesperado. Aunque la complejidad inicial de configuración exige atención rigurosa a los detalles de red y fencing, la tranquilidad operativa compensa cada minuto invertido. Con redundancia de rutas, espejado síncrono de bloques y automatización de quórum, su infraestructura adquiere la solidez necesaria para operar ininterrumpidamente, manteniendo sus datos seguros y sus servicios siempre en línea.