Clusterización en Proxmox VE

Clusterización en Proxmox VE

En artículos anteriores, comenzamos a hablar sobre qué es Proxmox VE y cómo funciona. Hoy hablaremos sobre cómo se puede utilizar la capacidad de clusterización y mostraremos qué beneficios ofrece.

¿Qué es un clúster y para qué sirve? Un clúster (del inglés cluster) es un grupo de servidores unidos por canales de alta velocidad, que operan y se presentan al usuario como un todo unificado. Existen varios escenarios principales de uso de un clúster:

  • Garantía de alta disponibilidad (High-availability).
  • Balanceo de carga (Balanceo de carga).
  • Aumento del rendimiento (High Performance).
  • Ejecución de cálculos distribuidos (Distributed computing).

Cada escenario plantea sus propias exigencias para los componentes del clúster. Por ejemplo, para un clúster que realiza cálculos distribuidos, el requisito principal es una alta velocidad de ejecución de operaciones de punto flotante y baja latencia de red. Dichos clústeres se utilizan a menudo con fines de investigación científica.

Ya que hemos tocado el tema de los cálculos distribuidos, vale la pena mencionar que también existe el concepto de sistema grid (del inglés grid — malla, red). A pesar de su similitud general, no debemos confundir un sistema grid con un clúster. Un grid no es un clúster en el sentido habitual. A diferencia del clúster, los nodos que componen el grid a menudo son heterogéneos y presentan baja disponibilidad. Este enfoque simplifica la solución de problemas de cálculos distribuidos, pero no permite crear un todo uniforme a partir de los nodos.

Un ejemplo destacado de un sistema grid es la popular plataforma de computación BOINC (Berkeley Open Infrastructure for Network Computing). Esta plataforma fue creada inicialmente para el proyecto SETI@home (Search for Extra-Terrestrial Intelligence at Home), que se ocupa del problema de buscar vida extraterrestre mediante el análisis de señales de radio.

¿Cómo funciona?Una enorme cantidad de datos obtenidos de radiotelescopios se divide en múltiples pequeños fragmentos y se envía a los nodos del sistema grid (en el proyecto SETI@home, estos nodos son computadoras de voluntarios). Los datos se procesan en los nodos y, una vez que el procesamiento se ha completado, se envían al servidor central del proyecto SETI. De esta manera, el proyecto resuelve una compleja tarea global, sin disponer de la potencia de cálculo requerida.

Ahora que tenemos una comprensión clara de lo que es un clúster, propongamos cómo se puede crear y utilizar. Usaremos un sistema de virtualización de código abierto. Proxmox VE.

Es especialmente importante que, antes de comenzar a crear el clúster, comprendamos claramente las limitaciones y requisitos del sistema de Proxmox, a saber:

  • número máximo de nodos en el clúster — 32;
  • todos los nodos deben tener la misma versión de Proxmox. (hay excepciones, pero no se recomiendan para producción);
  • si se planea utilizar la funcionalidad de Alta Disponibilidad, entonces en el clúster debe haber al menos 3 nodos.;
  • para que los nodos se comuniquen entre sí, deben estar abiertos los puertos UDP/5404,, UDP/5405, para corosync y TCP/22 para SSH;
  • la latencia en la red entre nodos no debe exceder 2 ms..

Creación del clúster

¡Importante! La configuración a continuación es de prueba. No olvides consultar la documentación oficial de Proxmox VE.

Para iniciar el clúster de prueba, tomamos tres servidores con el hipervisor Proxmox instalado con la misma configuración (2 núcleos, 2 GB de RAM).

Si deseas saber cómo se puede instalar Proxmox, te recomendamos leer nuestro artículo anterior — La magia de la virtualización: curso introductorio a Proxmox VE..

Inicialmente, después de instalar el SO, un servidor único funciona en modo Standalone..

Clusterización en Proxmox VE
Crearemos un clúster haciendo clic en el botón Crear Clúster. en la sección correspondiente.

Clusterización en Proxmox VE
Asignamos un nombre al futuro clúster y elegimos la conexión de red activa.

Clusterización en Proxmox VE
Hacemos clic en el botón Crear. El servidor generará una clave de 2048 bits y la registrará junto con los parámetros del nuevo clúster en los archivos de configuración.

Clusterización en Proxmox VE
La inscripción TAREA OK indica que la operación se ha realizado con éxito. Ahora, al observar la información general del sistema, se puede ver que el servidor ha pasado al modo de clúster. Por ahora, el clúster consiste solo en un nodo, es decir, aún no tiene las capacidades para las que se requiere un clúster.

Clusterización en Proxmox VE

Unirse al clúster

Antes de conectarse al clúster creado, necesitamos obtener la información necesaria para realizar la conexión. Para esto, ingresamos a la sección Clúster y hacemos clic en el botón Información de Unión..

Clusterización en Proxmox VE
En la ventana que se abre, nos interesa el contenido del campo homónimo. Será necesario copiarlo.

Clusterización en Proxmox VE
Aquí están codificados todos los parámetros de conexión necesarios: la dirección del servidor para la conexión y la huella digital. Vamos al servidor que necesitamos incluir en el clúster. Hacemos clic en el botón Unirse al clúster y en la ventana que se abre insertamos el contenido copiado.

Clusterización en Proxmox VE
Campos Dirección del par y Huella digital se rellenarán automáticamente. Introducimos la contraseña root del nodo número 1, elegimos la conexión de red y hacemos clic en el botón Unirse.

Clusterización en Proxmox VE
Durante el proceso de unión al clúster, la página web GUI puede dejar de actualizarse. Esto es normal, simplemente recargamos la página. De la misma manera, añadimos otro nodo y al final obtenemos un clúster completo de 3 nodos operativos.

Clusterización en Proxmox VE
Ahora podemos controlar todos los nodos del clúster desde una sola GUI.

Clusterización en Proxmox VE

Organización de Alta Disponibilidad

Proxmox soporta 'out of the box' la funcionalidad de organización de HA tanto para máquinas virtuales como para contenedores LXC. La utilidad ha-manager detecta y maneja errores y fallos, realizando un failover de un nodo fallido a uno operativo. Para que el mecanismo funcione correctamente, es necesario que las máquinas virtuales y los contenedores tengan un almacenamiento de archivos común.

Después de activar la funcionalidad de Alta Disponibilidad, la pila de software ha-manager comenzará a monitorear continuamente el estado de operación de la máquina virtual o contenedor e interactuar de manera asíncrona con otros nodos del clúster.

Conectamos el almacenamiento compartido

Por ejemplo, hemos desplegado un pequeño almacenamiento de archivos NFS en la dirección 192.168.88.18. Para que todos los nodos del clúster puedan utilizarlo, debemos realizar las siguientes manipulaciones.

Seleccionamos en el menú de la interfaz web Datacenter — Almacenamiento — Agregar — NFS.

Clusterización en Proxmox VE
Rellenamos los campos ID y Servidor. En el menú desplegable Exportar elegimos el directorio deseado de los disponibles y en la lista Contenido — los tipos de datos necesarios. Tras hacer clic en el botón Agregar el almacenamiento se conectará a todos los nodos del clúster.

Clusterización en Proxmox VE
Al crear máquinas virtuales y contenedores en cualquiera de los nodos, especificamos nuestro almacenamiento como almacenamiento.

Configuramos HA

Como ejemplo, crearemos un contenedor con Ubuntu 18.04 y configuraremos la Alta Disponibilidad para él. Después de crear y lanzar el contenedor, accedemos a la sección Datacenter — HA — Agregar. En el campo que se abre, indicamos el ID de la máquina virtual/contenedor y el número máximo de intentos de reinicio y movimiento entre nodos.

Si se excede esta cantidad, el hipervisor marcará la VM como fallida y la cambiará al estado de Error, después de lo cual dejará de realizar cualquier acción con ella.

Clusterización en Proxmox VE
Después de hacer clic en el botón Agregar herramienta ha-manager notificará a todos los nodos del clúster que ahora la VM con el ID especificado está bajo control y en caso de caída debe reiniciarse en otro nodo.

Clusterización en Proxmox VE

Provoquemos un fallo

Para ver cómo funciona el mecanismo de conmutación, apagaremos inesperadamente node1. Observamos desde otro nodo qué sucede con el clúster. Vemos que el sistema ha registrado el fallo.

Clusterización en Proxmox VE

El funcionamiento del mecanismo HA no significa continuidad en el funcionamiento de la VM. Tan pronto como el nodo "cae", el funcionamiento de la VM se detiene temporalmente hasta el reinicio automático en otro nodo.

Y aquí es donde comienza la "magia": el clúster ha reasignado automáticamente el nodo para ejecutar nuestra VM y en 120 segundos la operación se había recuperado automáticamente.

Clusterización en Proxmox VE
Apagamos node2. Veremos si el clúster soporta esto y si la VM regresa automáticamente al estado operativo.

Clusterización en Proxmox VE
Lamentablemente, como podemos ver, hemos tenido un problema con que en el único nodo que quedó vivo ya no hay quórum, lo que apaga automáticamente el funcionamiento del HA. Damos el comando de instalación forzada del quórum en la consola.

pvecm esperaba 1

Clusterización en Proxmox VE
Después de 2 minutos, el mecanismo de HA funcionó correctamente y al no encontrar node2, inició nuestra VM en node3.

Clusterización en Proxmox VE
Tan pronto como volvimos a encender node1 y node2, el funcionamiento del clúster se restauró completamente. Tenga en cuenta que la VM no migra automáticamente de nuevo a node1, pero esto se puede hacer manualmente.

Resumen

Le hemos hablado sobre cómo funciona el mecanismo de agrupamiento en Proxmox y también le mostramos cómo se configura el HA para máquinas virtuales y contenedores. Un uso adecuado del agrupamiento y del HA aumenta significativamente la fiabilidad de la infraestructura y garantiza la recuperación de fallos.

Antes de crear un clúster, es necesario planificar de inmediato para qué fines se utilizará y cuánto se necesitará escalar en el futuro. También se debe verificar que la infraestructura de red esté lista para operar con retrasos mínimos, para que el futuro clúster funcione sin fallas.

Cuéntanos, ¿utilizas las capacidades de agrupamiento en Proxmox? Esperamos tus comentarios.

Artículos anteriores sobre el hipervisor Proxmox VE:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster