Solución de varios errores que se suelen producir cuando intentamos agregar un nodo (habitualmente un nodo caído que ha sido reinstalado) a un clúster Proxmox VE: An error occurred on the cluster node: can’t add existing node ‘proxmox’, this host already contains virtual guests.

Solución al error al agregar nodo a clúster Proxmox VE: can’t add existing node ‘…’

Cuando intentamos agregar un nodo Proxmox VE a un clúster y muestra este error:

Es debido a que en el clúster ya existe un nodo con el mismo nombre. Aunque, en este caso, el nodo esté caído, sigue formando parte del clúster:

En el estudio de caso que nos ocupa, el nodo proxmox3 del clúster está caído, dado que el disco duro donde se alojaba el SO de Proxmox VE se ha averiado. Por lo que hemos optado por agregar un nuevo disco duro y volver a instalar Proxmox VE. Hemos asignado la misma IP y el mismo nombre al nodo, para agregarlo al clúster tal y como estaba. Pero, dado que no hemos eliminado el nodo del clúster, no nos permitirá agregarlo con el mismo nombre. Explicamos a continuación como solucionar este error, eliminando el nodo caído antes de volver a agregarlo.

Para solucionar este error, eliminaremos el nodo caído, proxmox3, del clúster. Para ello, desde uno de los nodos activos del clúster, abriremos una ventana de shell, pulsando en el botón «Shell» (o accediendo por SSH al nodo con algún cliente como PuTTY):

Ejecutaremos el siguiente comando, que nos devolverá los nodos activos:

Para eliminar el nodo inactivo (que no aparecerá en el listado anterior), ejecutaremos el siguiente comando:

Nos mostrará el siguiente mensaje:

Could not kill node (error = CS_ERR_NOT_EXISTS)
Killing node 3

Y el nodo habrá desaparecido del clúster:

Solución al error al agregar nodo a clúster Proxmox VE: this host already contains virtual guests al agregar un nodo al clúster

Cuando intentamos agregar el nodo «limpio» (sin máquinas virtuales ni contenedores) al clúster y nos muestra este error:

Es posible que en algún momento, se teníamos activado el HA en el clúster Proxmox VE, dado que este nodo (con el mismo nombre e IP) existía en algún grupo de HA de destino de máquinas virtuales, se le haya podido pasar el estado de algunas de ellas. Aunque realmente no existan en el nodo nuevo, aparecerán en este nodo como activas (realmente no son alcanzables porque el nodo no está aún en el clúster). En ese caso, nos aseguraremos de que, efectivamente, el nodo a agregar al clúster no tiene máquinas virtuales reales (no debe tenerlas porque es un nodo recién instalado), forzaremos su detención (no se detendrán las máquinas reales en el clúster porque no tiene conexión con él):

Además de «detenerlas», tendremos que «eliminarlas» del nodo a agregar al clúster. Repetimos que no son máquinas reales, se agregaría su estado en algún momento al conectar el nodo, dado que tenían en HA habilitado y este nodo estaba en el grupo de HA destino. Para eliminarlas, previamente habrá que deshabilitarlas del HA (desde el Datacenter del nodo que NO está en el clúster aún):

Antes de continuar, por seguridad, realizaremos copia de seguridad de todas las máquinas virtuales del clúster. Una vez desactivado el HA en todas las máquinas, en el nodo que NO está en el clúster (la desactivación del HA no afectará al HA real del clúster porque aún no está agregado), realizaremos la eliminación de cada máquina, seleccionando la máquina apagada (siempre en el nodo que NO está en el clúster y nos aseguraremos de que son máquinas que NO están en el equipo en local), pulsando en «More» y el «Remove»:

Introduciremos el ID de la máquina y pulsaremos en «Remove»:

Las máquinas seguirán funcionando correctamente en el clúster, repartidas entre los nodos activos:

Solución al error al agregar nodo a clúster Proxmox VE: this host already contains virtual guests al agregar un nodo al clúster

Tras «eliminar» todas las máquinas del nodo que NO está conectado al clúster, podremos agregarlo solucionando el error.

Solución al error al agregar nodo a clúster Proxmox VE: El nodo ya existe en el clúster

En determinadas circunstancias, cuando el nodo pertenecía al clúster, pero por algún motivo volvió a perder la conexión. El clúster puede que no lo reconozca y tampoco nos deja volver a agregarlo porque nos indica que el nodo ya está en el clúster. En este caso, además de asegurarnos de que hemos eliminado el nodo del clúster, en este ejemplo el nodo que queremos volver a agregar (el que tuvo una avería) es el proxmox3, ejecutando el comando:

Para forzar la eliminación de todos los datos del clúster en un nodo nuevo proxmox3, abriremos una ventana de shell en este nodo, el que está fuera del clúster, y ejecutaremos los siguientes comandos:

Tras limpiar los datos del clúster, podremos volver a agregarlo.

Agregar nodo a clúster Proxmox VE

Tras solucionar los errores, podremos volver a agregar el nodo al clúster Proxmox VE, como indicamos en este tutorial:

Básicamente obtendremos la información de unión desde el clúster actual y la pegaremos en la unión del nuevo nodo:

El nodo habrá pasado a formar parte del clúster nuevamente:

Deberemos revisar que forma parte de los grupos de HA (Alta disponibilidad) en que lo hubiéramos agregado antes de la avería, si no aparece, volveremos a agregarlo (en nuestro caso sí ha aparecido):

Por supuesto, volveremos a instalar el servicio Ceph de almacenamiento hiperconvergente (si lo teníamos activo), tal y como indicamos en este tutorial:

Agregaremos sus discos duros físicos a OSD para uso de Ceph en el clúster, como indicamos en el tutorial anterior.