Eliminar un nodo de un clúster Proxmox VE sin reinstalar

Publicado por P. Ruiz en

En el artículo Crear un clúster a partir de dos servidores Proxmox explicábamos que, básicamente, un clúster es un conjunto de ordenadores que colaboran para ofrecer una funcionalidad compartida. En ese artículo, explicábamos cómo crear un clúster a partir de dos servidores Proxmox VE independientes.

Pues bien, en el artículo de hoy explicaremos cómo realizar la operación inversa. Es decir, cómo separar un nodo de un clúster al que se encuentra vinculado.

Antes de comenzar

Como es lógico, lo primero que necesitaremos serán un clúster correctamente construido y funcional. Esto es lo que aprendimos a realizar en el artículo mencionad arriba.

Si necesitas ayuda con otras tareas relacionadas con Proxmox VE, puedes consultar los artículos publicados en  SomeBooks.es sobre el tema.

Separar el nodo del clúster sin necesidad de reinstalar

Antes de continuar, debes tener en cuenta que, cualquier fallo durante la puesta en práctica del artículo, podría derivar en una perdida irreparable de tus datos. Una buena idea es realizar una copia de seguridad de toda la instalación.

Otra precaución importante será evitar que el nodo que estamos a punto de separar, siga compartiendo ningún medio de almacenamiento con el clúster después del proceso. Esto haría que los mecanismos de bloqueo y la asignación de identificadores para las nuevas máquinas virtuales, dejaran de funcionar correctamente.

Lo ideal es establecer un nuevo medio de almacenamiento exclusivo para el nodo, donde llevar cualquier dato o máquina virtual que se encuentre ubicada en el almacenamiento compartido del clúster.

Una vez resuelto este aspecto… Comienza el rock and roll.

Paso 1: Detener los servicios

Lo primero será abrir la página de administración de Proxmox VE desde el ordenador cliente que usemos habitualmente para hacerlo. Y lo haremos empleando la dirección IP del nodo que pretendemos separar.

A continuación, haremos clic en el panel izquierdo sobre dicho nodo y, en el panel central, elegiremos la opción Shell.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-001

Una vez que nos encontremos en la terminal del nodo, lo primero será detener el servicio que gestiona el clúster. Lo haremos con el siguiente comando:

systemctl stop pve-cluster

Escribimos el comando y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-002

A continuación, detendremos también el servicio que se encarga de la comunicación entre los nodos del clúster:

systemctl stop corosync

De nuevo,escribimos el comando y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-003

Y para que todo siga funcionando, iniciamos el sistema de archivos del clúster, pero de forma local. Algo que conseguiremos aplicando el siguiente comando:

pmxcfs -l

Como antes, lo escribimos y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-004

Paso 2: Eliminar archivos

A continuación, borraremos el archivo de configuración de corosync, que se encuentra en /etc/pve:

rm /etc/pve/corosync.conf

Basta con escribir el comando y pulsar la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-005

Y eliminamos también la carpeta con todos sus archivos:

rm -r /etc/corosync/*

Una vez más, escribimos el comando y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-006

Paso 3: Iniciar el sistema de archivos en modo normal

Más arriba, hemos iniciado el sistema de archivos del clúster en modo local, pero ya estamos listos para devolverlo a la normalidad. Y para lograrlo, comenzaremos deteniendo el proceso que hemos iniciado antes:

killall pmxcfs

De nuevo,escribimos el comando y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-007

Si ahora iniciamos el servicio pve-cluster, también se iniciará el sistema de archivos, y todo volverá a la normalidad:

systemctl start pve-cluster

Volvemos a escribir el comando y pulsar la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-008

Con esto, prácticamente habremos terminado la tarea. Ahora, el nodo está completamente separado del clúster. De hecho, podemos comprobarlo fácilmente actualizando la ventana del navegador.

Veremos que ahora, en el panel izquierdo solo aparece el nodo en el que nos encontramos. Además, si en el panel central elegimos la opción Clúster, comprobaremos que no existe ningún clúster pare este nodo.

Ya se trata de un nodo independiente.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-009

Ajustes en el clúster

Hasta el momento, hemos visto el mundo desde la perspectiva del nodo que se independiza, pero, ¿qué pasa con el resto del clúster que teníamos? Pues, básicamente, que detectará la pérdida del nodo y nos lo hará saber.

Para comprobarlo, basta con abrir una nueva pestaña en el navegador que hemos venido utilizando, y navegar hasta la dirección del otro nodo.

Comprobaremos que aquí aún aparece el nodo que hemos separado.

… Pero está identificado con un icono que avisa del error.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-010

Para resolverlo, comenzaremos eligiendo el nodo que aun permanece en el clúster y, seleccionando en el panel central su terminal.

Una vez en ella, tratamos de eliminar el nodo separado, usando el siguiente comando:

pvecm delnode somebooks-02

Volvemos a escribir el comando y pulsar la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-011

Puede que, como a mí, el comando te devuelva un error avisando de que no están presentes todos los nodos. Para solventarlo, basta con indicarle al clúster que ahora hay un nodo menos. Lo hacemos con el siguiente comando:

pvecm expected 1

Y después de escribirlo, pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-012

Después, volvemos a tratar de eliminar el nodo:

pvecm delnode somebooks-02

… Seguro que ahora con mejores resultados

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-013

Si ahora actualizamos la ventana del navegador…

… veremos que ha desaparecido en el panel izquierdo el nodo separado.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-014

Ahora, un poco de limpieza

Ya casi hemos terminado. Solo nos queda asegurarnos de que ya no quedan restos de la relación entre el nodo que hemos separado y el clúster que aún sigue existiendo (aunque en nuestro ejemplo, solo mantiene un nodo).

Comenzaremos por el clúster

Si consultamos el contenido de la carpeta donde el clúster guarda información sobre los nodos que lo forman (/etc/pve/nodes), comprobaremos que aún aparece el nodo antiguo. Para ello, basta con usar el siguiente comando:

ls -l /etc/pve/nodes

Contenido de la carpeta

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-015

Para eliminar la información sobre el nodo, podemos ejecutar algo así:

rm -rf /etc/pve/nodes/somebooks-02

Asegúrate de escribir el nombre del nodo correcto porque, de lo contrario, el clúster quedará inconsistente.

Una vez más, escribimos el comando y pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-016

Otro aspecto del que debemos preocuparnos, son las claves SSH, que aún permiten conectarse a los nodos entre ellos mediante su clave pública. Estas claves se encuentran en el archivo authorized_key, y podemos ver su contenido escribiendo lo siguiente:

cat /etc/pve/priv/authorized_keys

Contenido del archivo authorized_key.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-017

Como ves en la imagen, tenemos dos claves: la del nodo actual y la del nodo que ya hemos separado (que hemos marcado en verde). Aunque ambas son bastante largas, en realidad cada una ocupa solo una línea. Es decir, en el archivo solo hay un salto de línea al final de cada clave, lo que hará que la editarlo en nano, solo veamos dos líneas y parecerá que se trata de un contenido diferente. Veamos a qué me refiero:

nano /etc/pve/priv/authorized_keys

Editamos el archivo

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-018

Como te decía, en el área de trabajo del editor vemos una línea por cada clave. Como tratamos de eliminar la segunda, nos desplazamos con el cursor hasta ella.

Después, para eliminarla, pulsamos las teclas Ctrl + K.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-019

Una vez conseguido, pulsamos Ctrl + X para salir y nos aseguramos de guardar los cambios.

…Pulsando la tecla Yl.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-020

Y ahora, en el nodo separado

Ya casi estamos. Solo nos queda hacer otro poco de limpieza en el nodo que hemos separado.

Comenzaremos eliminando todos los archivos que aún quedan del clúster:

rm /var/lib/corosync/*

Y después de escribirlo, pulsamos la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-021

Como en el apartado anterior, podemos consultar la carpeta donde se guarda la información sobre los nodos que forman el clúster (/etc/pve/nodes). Para ello, basta con usar el siguiente comando:

ls /etc/pve/nodes

Y comprobamos que aún aparecen ambos.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-022

Por lo tanto, procedemos a eliminar la información del nodo que aún forma parte del clúster:

rm -rf /etc/pve/nodes/somebooks

Volvemos a escribir el comando y pulsar la tecla Intro.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-023

Por último, también aquí debemos eliminar las claves SSH para impedir la conexión entre los nodos usando su clave pública.

Como antes, comenzamos comprobando el contenido del archivo authorized_key:

cat /etc/pve/priv/authorized_keys

Contenido del archivo authorized_key.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-024

De nuevo, editamos el archivo:

nano /etc/pve/priv/authorized_keys

… Aunque en este caso, hemos eliminado la primera clave.

Eliminar-un-nodo-de-un-cluster-Proxmox-VE-025

Y cuando hayamos acabado, cerramos el editor asegurándonos de guardar los cambios.

Y con esto, hemos terminado la tarea de hoy. Espero que te resulte útil.