Desplegar un clúster de servidores de virtualización con Proxmox VE. Configuramos dos nodos para alta redundancia y disponibilidad. Migrar máquina virtual de un nodo a otro del clúster. Recuperar backup de máquina virtual en el clúster.

Clúster virtualización Proxmox VE

En un entorno de virtualización, para conseguir alta disponibilidad y tolerancia a fallos, además de mayor capacidad de cómputo (CPU y RAM), lo ideal es disponer de varios nodos (equipos), para así poder hacer balanceo y reubicación de máquinas virtuales en caso de caída de uno de los nodos.

Para que el despliegue de un clúster sea efectivo, debemos tener un almacenamiento compartido, accesible por todos los nodos. De esta forma, cualquier máquina virtual desplegada en uno de los nodos será accesible por el resto. Para conseguir un almacenamiento compartido, Proxmox admite varios métodos: hiperconvergencia con Ceph, capaz de usar discos duros locales de los servidores como almacenamiento compartido, iSCSI, FC (Fibre Channel) con cabina de almacenamiento SAN, etc.

Para definir un clúster eficiente es recomendable disponer de redundancia y HA (alta disponibilidad), tanto a nivel de conectividad con el almacenamiento (como hemos indicado anteriormente), como con la red de servicio. Cada nodo debería incorporar varios adaptadores de red de servicio y varios adaptadores de red de almacenamiento. A su vez, los adaptadores de la red de servicio deberían ir conectados a switches separados, al igual que los adaptadores de la red de almacenamiento, que deberían ir conectados a controladoras separadas de la cabina de almacenamiento o a un switch de fibra también en HA.

Para evitar errores o avisos de incumplimiento de reglas de quorum cuando se apaga una nodo del clúster, lo recomendable es disponer de, al menos, tres nodos. De esta forma, podrá apagarse uno de los nodos y seguiremos teniendo acceso a la gestión del clúster sin problemas.

Crear un clúster de virtualización en Proxmox VE

Desde la consola de gestión web de uno de los servidores Proxmox VE, en «Centro de datos» (Datacenter) [1], pulsaremos en «Cluster» [2] y en «Crear cluster» (Create Cluster) [3]:

Introduciremos un nombre para el clúster, por ejemplo «cproxmox» y agregaremos los adaptadores de red que queramos que formen parte del clúster. Pulsaremos en «Crear»:

Esperaremos a que finalice la tarea de creación del clúster Proxmox VE:

Agregar un nodo al clúster

Para agregar un nodo al clúster, desde el clúster creado, obtendremos la información de unión, pulsando en «Información de unión» (Join Information):

Copiaremos la información de unión pulsando en «Copiar información», será la que usemos para agregar un segundo nodo al clúster:

Accederemos ahora a la consola de gestión del que convertiremos en segundo nodo del clúster Proxmox VE, que debe ser un equipo con Proxmox VE instalado y de la misma red. Pulsaremos en «Datacenter» [1], en «Cluster» [2] y en «Join Cluster» [3]:

Pegaremos la información de unión copiada anteriormente, introduciremos la contraseña del usuario root del nodo y pulsaremos en «Join ‘cproxmox'»:

Si el nuevo nodo contiene alguna máquina virtual o algún contenedor, tendremos que exportarlo o hacer una backup y eliminarlo previamente, dado que Proxmox VE no permite agregar nodos a un clúster que contengan máquina virtuales o contenedores. Nos arrojará este error:

En este caso, como ejemplo, teníamos un contenedor en el nodo a agregar, que hemos apagado y le hemos hecho un backup desde el propio Proxmox VE:

Tras realizar el backup, hemos eliminado el contenedor:

Ahora sí nos dejará agregar el nodo al clúster, en este caso mostrará el mensaje:

Dado que no hemos creado un adaptador de red específico para el clúster (es lo recomendable), usará la red de gestión:

A partir de ahora, accediendo a la consola de gestión de cualquiera de los dos nodos, nos mostrará los nodos que forman el clúster:

Lo recomendable, es configurar el HA (alta disponibilidad) de cada máquina, para que en caso de caída de un nodo, se migren automáticamente a otro nodo. En el siguiente tutorial indicamos cómo activar el HA (alta disponibilidad) en máquinas virtuales sobre Proxmox VE:

Para evitar errores o avisos de incumplimiento de reglas de quorum cuando se apaga una nodo del clúster, lo recomendable es disponer de, al menos, tres nodos. De esta forma, podrá apagarse uno de los nodos y seguiremos teniendo acceso a la gestión del clúster sin problemas.

Migrar una máquina virtual a otro nodo Proxmox VE del clúster

En el caso de uso que nos ocupa, aún no tenemos un almacenamiento compartido por ambos nodos. Por ello, si migramos una máquina de un nodo a otro, nos indicará que el proceso será lento porque, además de migrar la unidad de cómputo (RAM, CPU, etc.) también tendrá que migrar los discos duros virtuales de un almacenamiento local del nodo actual al almacenamiento local del nodo destino. Desde luego, esto no es lo recomendable (en este tutorial indicamos cómo crear un almacenamiento compartido en SAN desde Proxmox y en este otro cómo crear un almacenamiento compartido con hiperconvergencia Ceph en Proxmox). De momento, para las pruebas, no tenemos almacenamiento compartido, por lo que al migrar una máquina:

Seleccionaremos el nodo de destino (proxmox2) y el almacenamiento del nodo de destino. Si dejamos «Current layout» y pulsamos en «Migrate»:

Si en el nodo destino no existe un almacenamiento con el mismo nombre, se producirá este error:

Para las pruebas, creamos un almacenamiento LVM-Thin (Thinpool) en el nodo2 con el mismo nombre:

Y realizamos la migración. Si no queremos crear un almacenamiento con el mismo nombre, simplemente elegiremos el almacenamiento de destino en el desplegable:

El proceso se iniciará, en caliente, sin detener la máquina virtual que estamos migrando. Realizará la copia de los discos duros virtuales de un nodo a otro a través de la red:

El icono de la máquina virtual cambiará, indicando que está en proceso de migración de nodo:

Hemos lanzado un ping sostenido para comprobar los pines que se pierden durante el proceso, en este caso únicamente se perdió un ping en el proceso de migración:

La máquina virtual se habrá movido al nodo2, tanto CPU, RAM como almacenamiento (repetimos que esto no es lo recomendable):

Recuperar una copia de seguridad de una máquina virtual o contenedor al clúster

Tras agregar el nodo al clúster, si teníamos algún backup de alguna máquina, podremos recuperarla para que esté disponible nuevamente para el clúster. Desde el nodo que tenía el backup, seleccionaremos el almacenamiento local y «Backups», nos mostrará las copias de seguridad de las máquinas que hayamos hecho, seleccionaremos la copia y pulsaremos en «Restore»:

Elegiremos el storage de destino, marcaremos «Start after restore» (para que se inicie la máquina o el contenedor automáticamente tras la recuperación) y pulsaremos en «Restore»:

Se iniciará la tarea de recuperación de la máquina virtual o contenedor:

La máquina o el contenedor quedará iniciada y disponible para el clúster: