Proxmox VE: cluster de 3 nodos bien diseñado

Cómo no arruinar el diseño base — Debian 12 / Proxmox VE 8.x

¿Por qué este artículo?

Instalar Proxmox es fácil. Diseñar un cluster que aguante producción, migración en vivo y un nodo caído sin perder datos ni quorum — eso ya es otro tema.

Este artículo muestra lo que aprendí armando un cluster de tres nodos con conectividad DAC SFP 10G y almacenamiento distribuido. El punto de partida: tres nodos como unidad mínima razonable.

Topología de referencia

Figura 1 — Topología del cluster: nodo1, nodo2, nodo3 con segmentación de VLANs

Requisitos mínimos antes de tocar la UI

Antes de crear el primer nodo, hay que tener claro:

  • Hardware homogéneo o al menos CPUs del mismo vendor — no mezclar Intel y AMD en el mismo cluster si querés live migration sin restricciones
  • Al menos dos interfaces de red físicas por nodo: una para gestión/VM traffic, otra para storage/cluster
  • DNS resolución inversa funcionando para todos los nodos — Proxmox la usa para el quorum
  • Tiempo sincronizado (NTP/Chrony) en todos los nodos. Un clock skew mata pmxcfs sin dar explicaciones claras

⚠️ Importante:  Si renombrás un nodo después de haberlo integrado al cluster, pmxcfs queda en estado inconsistente. El rename se hace ANTES de unirse al cluster, nunca después.

1 — Preparación del sistema operativo (cada nodo)

Proxmox VE se instala sobre Debian 12. Estos comandos se ejecutan en cada nodo antes de unirlo al cluster.

Configurar hostname e /etc/hosts

# nodo1 — hostname e /etc/hosts

# En nodo1 — repetir con nombres/IPs correspondientes en nodo2 y nodo3

hostnamectl set-hostname nodo1
 
cat >> /etc/hosts << 'EOF'
10.0.0.11   nodo1 nodo1.lab.internal
10.0.0.12   nodo2 nodo2.lab.internal
10.0.0.13   nodo3 nodo3.lab.internal
EOF

Diseño de red

Cuatro VLANs separadas por función, como muestra el diagrama:

  • VLAN10 (10.0.10.0/24) — Gestión: SSH, UI Proxmox, backup
  • VLAN20 (10.0.20.0/24) — VM traffic: trunking de VMs hacia switches core
  • VLAN30 (10.0.30.0/24) — Cluster/Corosync: latencia crítica, aislada del resto.
  • VLAN40 (10.0.40.0/24) — Storage: Ceph public/cluster network o NFS/iSCSI

La red de cluster (Corosync) debe tener latencia < 2ms entre nodos. No la compartas con VM traffic bajo ningún concepto.

#/etc/network/interfaces — nodo1


auto lo
iface lo inet loopback
 
# Interfaz física 1gestión y VMs
auto eno1
iface eno1 inet manual
 
# VLAN10Gestión
auto eno1.10
iface eno1.10 inet static
    address 10.0.10.11/24
    gateway 10.0.10.1
    vlan-raw-device eno1
 
# VLAN20VM traffic (bridge para VMs)
auto vmbr20
iface vmbr20 inet manual
    bridge-ports eno1.20
    bridge-stp off
    bridge-fd 0
 
# Interfaz física 2cluster y storage
auto eno2
iface eno2 inet manual
 
# VLAN30Corosync/cluster
auto eno2.30
iface eno2.30 inet static
    address 10.0.30.11/24
    vlan-raw-device eno2
 
# VLAN40Storage Ceph
auto eno2.40
iface eno2.40 inet static
    address 10.0.40.11/24
    vlan-raw-device eno2
# aplicar y verificar red
systemctl restart networking
ip addr show eno1.10

# output esperado
2: eno1.10@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 10.0.10.11/24 brd 10.0.10.255 scope global eno1.10

En este setup usamos DAC SFP+ 10G entre los nodos. Los drivers ixgbe en algunas NICs requieren el parámetro allow_unsupported_sfp=1 para reconocer los DAC de terceros.

Bootstrap del cluster — orden correcto

  1. Instalar Proxmox en cada nodo de forma standalone
  2. Configurar hostname, IP y DNS en /etc/hosts de cada nodo (todos deben resolverse entre sí)
  3. Crear el cluster desde nodo1: pvecm create NOMBRE-CLUSTER
  4. Unir nodo2 y nodo3: pvecm add 10.0.0.11 desde cada nodo secundario
  5. Verificar quorum: pvecm status — expected votes debe coincidir con nodos activos

💡 Tip:  Si el cluster queda con quorum degradado durante el bootstrap, usá pvecm expected 1 temporalmente para poder operar, pero nunca dejés eso en producción.

Instalar Proxmox VE 8 sobre Debian 12

# cada nodoinstalar Proxmox VE
echo 'deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription' \
  > /etc/apt/sources.list.d/pve-install-repo.list
 
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
  -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
 
apt update && apt full-upgrade -y
apt install -y proxmox-ve postfix open-iscsi chrony
 
# Remover kernel Debian, usar el de Proxmox
apt remove -y linux-image-amd64 && update-grub && reboot

Almacenamiento local antes de Ceph

En el artículo 2 vemos Ceph en detalle. Para arrancar, cada nodo necesita:

  • local: directorio /var/lib/vz para ISOs y templates
  • local-lvm: LVM-thin sobre el disco del SO para VMs — opción por defecto, funciona bien

Validación antes de seguir

  • pvecm status muestra 3 nodos con quorum
  • Podés migrar una VM en vivo de nodo1 a nodo2 sin interrupciones
  • Al apagar un nodo, los otros 2 mantienen quorum y el cluster sigue operativo
  • La UI de cualquier nodo muestra el cluster completo


Comentarios

Deja un comentario

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