En este tutorial explicaré como configurar un cluster con Proxmox para garantizar alta disponibilidad y la gestión del almacenamiento será con Ceph para poder tener un entorno de virtualización Hiperconvergente.
Tabla de contenido
Presentación
Antes de pasar al tutorial, cubriré algunas cosas para los novatos.
Comencemos con la hiperconvergencia, tradicionalmente la agrupación de hipervisores se realizaba con un sistema de 2 niveles. Por un lado teníamos la potencia de cálculo (CPU + RAM), los servidores y el almacenamiento en la Bahía en una arquitectura tipo SAN (Storage Area Network). Con la Hiperconvergencia ya no existe una SAN, utilizamos el almacenamiento local de los servidores para almacenar las máquinas virtuales.
Para que sea más fácil de entender, aquí hay dos diagramas:


No voy a entrar en un debate sobre qué arquitectura es mejor, con una arquitectura hiperconvergente nos encontramos con que las máquinas virtuales se almacenan en varios servidores para así asegurar una alta disponibilidad en caso de pérdida de un servidor físico.
El diagrama es bastante simplista, si tuviéramos un cuarto servidor en la parte hiperconvergente, no necesariamente habrá una cuarta copia de las máquinas virtuales.
Por experiencia ambos tipos de arquitectura tienen sus ventajas y desventajas, para mí son complementarios y no opuestos.
En el papel, la hiperconvergencia ofrece un alto rendimiento porque se utiliza a menudo en servidores de alta gama, lo cual es un requisito previo; con almacenamiento flash completo como Nvme o SSD, es ideal para realizar aplicaciones y bases de datos que requieren mucha potencia y alta disponibilidad.
Sería totalmente contraproducente ejecutar, por ejemplo, servidores de archivos de varios Terabytes o servidores Exchange por ejemplo que almacenan un gran volumen de datos fríos.
Tomemos el ejemplo de un servidor de archivos que tendría un volumen de 10 TB, en una arquitectura hiperconvergente, la máquina utilizaría 30 TB de almacenamiento en discos flash.
Para operar una arquitectura hiperconvergente, es necesario tener al menos 3 nodos idénticos (servidores), lo cual es un requisito previo para todas las soluciones del mercado.
Volviendo a este tutorial dedicado a Proxmox, veremos cómo configurar un Cluster en Proxmox luego la configuración de Ceph que gestionará el almacenamiento entre los servidores.
Información
Al no tener 3 servidores físicos idénticos a mi disposición, creé este tutorial con 2 servidores.
Para un lanzamiento en producción es imprescindible contar con 3 servidores, de lo contrario la alta disponibilidad no será funcional.
Creando el cluster en Proxmox y agregando los servidores
El primer paso de este tutorial será la creación del Cluster en Proxmox y luego la adición de los otros servidores.
Antes de comenzar a crear el clúster, daré una pequeña introducción para las personas que están acostumbradas a Hyper-V.
Muchas veces cuando hablamos de Cluster, inmediatamente pensamos en alta disponibilidad, en Proxmox la configuración del Cluster permitirá primeramente agregar los servidores Proxmox en un mismo Datacenter y poder gestionar todos los servidores Promox en una misma interfaz Web y poder por ejemplo, mover las maquinas de un servidor a otro (Migrar) sin que estas estén en alta disponibilidad.
Para que sea posible la alta disponibilidad, se requiere almacenamiento compartido (SAN/Ceph), se crea un grupo de alta disponibilidad y se configuran las máquinas virtuales en ese grupo.
Otro elemento a tener en cuenta con Proxmox para un correcto funcionamiento de alta disponibilidad, Proxmox requiere de 3 servidores.
Crear un clúster en Proxmox
La creación de un clúster se puede realizar en cualquier servidor que sea miembro.
Crearemos el clúster desde el servidor s-pve-1.
Aller sur Datacenter 1, Cluster 2 puis cliquer sur le bouton Create Cluster 1.

Nombra el clúster 1, configura la red del clúster 2 y luego haz clic en Crear 3.


Por favor espere mientras se crea el clúster…

Se crea el cluster, cierra la ventana.

El clúster es visible en la interfaz web y podemos ver que el servidor que usamos para crear el clúster es miembro.

Agregar un servidor Proxmox a un clúster
Agregaremos el servidor s-pve-2 al clúster.

En el servidor s-pve-1, desde la configuración del clúster, haga clic en Información de unión 1.

Haga clic en el botón Copiar información 1.

Desde la interfaz web de administración del servidor vaya a la configuración del cluster: Datacenter / Cluster y haga clic en el botón Unirse a Cluster 1.

Pegue la información de unión del clúster 1, ingrese la contraseña raíz 2 del servidor miembro del clúster, seleccione la tarjeta de red 3 para las comunicaciones del clúster y haga clic en el botón Unirse a ‘Nombre del clúster’ 4.

Por favor espere mientras se une al cluster…

Al unirse al clúster, se cerrará la sesión de la interfaz web, por lo que no podrá ver cuándo se completa la unión.
En el servidor s-pve-1, verifique en la interfaz web que el servidor esté agregado al clúster 1 y que sea visible en la interfaz de administración.

Repita la operación para los demás servidores que necesiten agregarse al clúster.
Configuración del almacenamiento de Ceph
Instalar Ceph en servidores Proxmox
De forma predeterminada, Ceph no está instalado en los servidores Proxmox, al seleccionar el servidor, vaya a Ceph y haga clic en el botón Instalar Ceph 1.

Al no tener licencia, seleccioné el Repositorio Sin Suscripción 1, hago clic en Iniciar instalación de arrecife 2.

Validar la instalación de paquetes adicionales…

Por favor espere mientras se instala…


Una vez completada la instalación, haga clic en Siguiente 1 para continuar con la configuración.

Seleccione la dirección de red 1 que se utilizará para el clúster Ceph y haga clic en Siguiente 2.

La instalación ha finalizado, haga clic en Finalizar 1 para cerrar el asistente.

La instalación de Ceph se ha completado en el primer servidor, repita esta operación en los demás servidores del clúster.
Configuración de Ceph
Ahora pasaremos a configurar Ceph.
No entraré en detalles técnicos en el tutorial, te invito a leer la documentación que se encuentra aquí para mayor información.
Configurar el monitor y el administrador
Agregaremos cada nodo como Minotor y Administrador del cluster Ceph
Desde uno de los nodos del clúster, vaya a Ceph 1 y luego a Monitor 2.

Comenzaremos con los Monitores, haga clic en el botón Crear 1.

Seleccione el servidor que desea agregar 1.

Con el servidor seleccionado, haga clic en el botón Crear 1.

Se añade el segundo servidor.

Agregue los otros servidores y haga lo mismo para el Administrador.

Agregar OSD: Disco físico
Ahora agregaremos a Ceph los discos físicos llamados OSD.
A continuación se muestran los discos físicos que podré agregar para cada servidor:


Para un correcto funcionamiento se debe agregar la misma cantidad de discos para cada servidor.
Seleccione un servidor, luego vaya a Ceph / OSD y haga clic en el botón Crear: OSD 1.

Seleccione el disco 1 y haga clic en Crear 2.

Se agrega el disco para el servidor s-pve-1.

Agregue más discos de servidor si es necesario y repita el procedimiento para cada servidor en el clúster Ceph.
Se han agregado discos para ambos servidores.

Puedes agregar OSD en cualquier momento, solo tienes que respetar agregar un OSD por servidor cada vez.
Creando un Pool
Un pool es un almacenamiento que se puede utilizar en Proxmox para almacenar máquinas virtuales.
Vaya a Cepth / Pools y haga clic en el botón Crear 1.

He habilitado intencionalmente la visualización avanzada, normalmente solo tienes que nombrar 1 el Pool y hacer clic en Crear 2.

Algunas explicaciones, el valor de Tamaño corresponderá al número de copias de los datos en el cluster Ceph, por defecto este valor es 3 y no puede ser mayor que el número de nodos en el cluster Ceph. El valor mínimo. El tamaño corresponde al número mínimo de nodos que deben estar en línea, por defecto 2, si bajamos de este límite se bloquea el acceso al Pool.
Se agrega el Pool y podemos ver el almacenamiento ceph-1 disponible en ambos servidores.

Uso del grupo de almacenamiento de Ceph
Al crear una máquina virtual o un contenedor, elija el almacenamiento ceph-1.

Podemos ver que el disco de la máquina virtual está en el almacenamiento ceph-1.

Configuración de alta disponibilidad en un clúster Proxmox
Ahora veremos como configurar HA en Proxmox, para que funcione el almacenamiento de las maquinas virtuales debe estar en un almacenamiento compartido entre los servidores del grupo HA.
La alta disponibilidad en Proxmox se gestiona con grupos de alta disponibilidad de los cuales los servidores son miembros, lo que permite por ejemplo tener diferentes tipos de servidores miembros de un cluster y agrupar servidores del mismo tipo en un grupo.
Esta configuración proporciona una gran flexibilidad y permite, por ejemplo, dentro de un mismo Datacenter gestionar servidores que estarían en una arquitectura 2 tiers y servidores en hiperconvergencia.
Para crear un grupo, vaya a Centro de datos / HA / Grupos y haga clic en el botón Crear 1.

Nombra el grupo 1, selecciona los servidores miembros 2 y luego haz clic en el botón Crear 3.

El grupo está creado.

Ahora necesitamos agregar los recursos (VM y CT) que estarán en el grupo HA.
Vaya a Centro de datos / HA y haga clic en el botón Agregar 1.

Seleccione VM 1.

Seleccione el grupo 1 y haga clic en Agregar 2.

Los recursos están configurados para tener alta disponibilidad.

Desde la descripción general de la máquina virtual, podemos ver el estado de HA.

Prueba de conmutación por error
Para probar la conmutación por error de la VM 100 que está en s-pve-2, detendré el servidor.

Desde el Shell, inicio un apagado del servidor.


El servidor está fuera de línea.

La VM con ID 100 se cambia a s-pve-1 y se inicia.

Ahora ya sabes cómo configurar un entorno de alta disponibilidad con Proxmox y Ceph.