@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

alta-disponibilidad-en-cluster-linux-con-pacemaker-7

Alta disponibilidad en cluster Linux con Pacemaker

Alta disponibilidad en cluster Linux con Pacemaker

Hace bastante tiempo, hablamos de Corosync como sistema para gestión de un clúster de alta disponibilidad y os enseñé un par de entradas de como se configura en un cluster Proxmox:

Hoy vamos a hablar de Pacemaker. Pacemaker y Corosync son dos componentes clave en la construcción de clústeres de alta disponibilidad en sistemas Linux. Aunque a menudo se mencionan juntos y se utilizan conjuntamente, tienen roles y funcionalidades distintas dentro del ecosistema de alta disponibilidad. Os dejo una pequeña tabla comparativa:

alta-disponibilidad-en-cluster-linux-con-pacemaker-1

Integración de Pacemaker y Corosync

En la práctica, Pacemaker y Corosync se utilizan juntos para formar una solución completa de alta disponibilidad. Aquí hay un ejemplo de cómo se complementan:

  • Corosync:
    • Configura y gestiona la comunicación entre los nodos del clúster.
    • Detecta cuando un nodo falla y comunica este evento a Pacemaker.
  • Pacemaker:
    • Recibe la información de fallo de Corosync y toma decisiones sobre cómo reubicar los recursos.
    • Ejecuta las acciones necesarias para recuperar los recursos en otros nodos del clúster.

En resumen, Corosync maneja la comunicación y la membresía del clúster, asegurando que todos los nodos tengan una visión coherente del estado del clúster. Pacemaker, por otro lado, se encarga de la gestión de recursos, asegurando que los servicios críticos se mantengan en funcionamiento incluso en caso de fallos de nodo.

Voy a centrarme en Pacemaker…

Pacemaker es un gestor de clúster de alta disponibilidad (HA) que se utiliza para asegurar la disponibilidad continua de servicios y aplicaciones en sistemas Linux. Su propósito principal es gestionar los recursos del clúster de manera que, en caso de fallo de uno de los nodos del clúster, los recursos sean movidos automáticamente a otro nodo para minimizar el tiempo de inactividad.

Características de Pacemaker

  • Alta Disponibilidad:
    • Asegura que los servicios estén siempre disponibles al moverlos automáticamente a otro nodo en caso de fallo.
  • Escalabilidad:
    • Puede manejar desde dos nodos hasta clústeres con decenas de nodos sin problemas de rendimiento significativos.
  • Compatibilidad:
    • Funciona con una variedad de sistemas operativos Linux y puede gestionar una amplia gama de servicios y recursos.
  • Gestión de Recursos:
    • Permite definir y gestionar recursos del clúster, como IPs virtuales, sistemas de archivos, servicios de base de datos, etc.
  • Políticas de Recuperación:
    • Soporta políticas de recuperación configurables para determinar cómo y cuándo los recursos deben ser recuperados.
  • Integración con Corosync:
    • Pacemaker se suele utilizar junto con Corosync para proporcionar la infraestructura de comunicación necesaria para la gestión del clúster.

Componentes de Pacemaker

  • Cluster Information Base (CIB):
    • Almacena la configuración y el estado del clúster, replicando esta información en todos los nodos para mantener la coherencia.
  • Resource Agents:
    • Scripts que encapsulan el conocimiento necesario para gestionar un recurso específico. Pacemaker utiliza estos agentes para iniciar, detener y monitorizar los recursos del clúster.
  • Cluster Resource Manager (CRM):
    • Toma decisiones sobre la gestión de recursos basadas en la información del CIB y en las políticas configuradas por el administrador del clúster.
  • Fencing:
    • Mecanismo utilizado para aislar un nodo defectuoso del resto del clúster para asegurar la integridad de los datos.

Instalación y Configuración Pacemaker en LXC Proxmox

Como sin ejemplos, no vamos a aprender nada, vamos a generar unos LXC Proxmox basados en Debian 12 con una página web, y haremos pruebas de caídas y validaciones. Vamos al lío…

Partimos de tener dos nodos Proxmox, vamos a crear un contenedor LXC en cada host:

Requisitos cluster Linux

  1. Proxmox VE: Un clúster de Proxmox VE con al menos dos nodos.
  2. Contenedores LXC: Dos contenedores LXC basados en Debian 12.
  3. Pacemaker y Corosync: Instalados en los contenedores LXC.

alta-disponibilidad-en-cluster-linux-con-pacemaker-2

Generamos los contenedores LXC Debian con IPs 192.168.2.12, 192.168.2.13 y 192.168.2.14 para el Qourum / IP Virtual:

alta-disponibilidad-en-cluster-linux-con-pacemaker-3

Yo he clonado uno de ellos:

alta-disponibilidad-en-cluster-linux-con-pacemaker-4

Lo he generado en el otro nodo:

alta-disponibilidad-en-cluster-linux-con-pacemaker-5

Y luego he cambiado la IP:

alta-disponibilidad-en-cluster-linux-con-pacemaker-6

Para que corosync corra en un container LXC Proxmox, es necesario agregar unos parámetros a los containers, lo haré en su fichero .conf (/etc/pve/lxc/ID-CONTAINER.conf):

Si no hacéis esto, os podéis encontrar con que el servicio Corosync no arranque, por ejemplo, y os de este tipo de error al intentar ejecutar el cluster:

Con esto tengo todo preparado para lanzar comandos:

alta-disponibilidad-en-cluster-linux-con-pacemaker-7

Lo primero que validamos que hay comunicación entre los contenedores LXC. Agregar estas IPs al fichero hosts de cada nodo o vuestro DNS (yo lo hago en el role del Mikrotik) para que entiendan también los nombres de las máquinas:

Instalamos los paquetes necesarios en cada nodo:

Hacemos lo mismo con pacemaker:

Habilitamos en cada nodo el siguiente servicio, y fijamos la contraseña del usuario hacluster:

Agregamos un usuario de gestión para cluster, al cual le ponemos una contraseña:

Inicializamos el cluster:

Autorizamos los nodos:

Configuramos el cluster:

Esto hace que el fichero /etc/corosync/corosync.conf quede configurado de la siguiente forma:

Arrancamos servicios del cluster, lo hacemos sobre uno de los nodos:

Habilitamos los servicios, también lo lanzamos en uno de los nodos:

Comprobamos el estado del cluster:

Con esto ya tenemos nuestro cluster montado…ahora vamos a agregar un servicio apache y realizar validaciones.

Instalación servidor Apache para validar Pacemaker

Instalamos en cada nodo el servidor Apache:

Revisamos el estado:

En uno de los contenedores, configuramos el recurso de Apache en Pacemaker:

Revisamos su estado:

Configuramos una IP virtual que se moverá entre los contenedores en caso de fallo:

Reiniciamos el cluster:

Ahora validamos el estado y la asignación de la IP Virtual. Os dejo unos cuantos comandos:

Podéis ir haciendo pruebas parando el servicio de apache en los nodos para ver si responde la ip virtual:

alta-disponibilidad-en-cluster-linux-con-pacemaker-8

Donde se guarda la información del cluster Pacemaker

En un clúster gestionado por Pacemaker en Debian 12, la configuración de los recursos, incluidas las IPs virtuales, no se guarda en un único fichero de configuración como en otros sistemas. En cambio, Pacemaker utiliza una base de datos interna llamada CIB (Cluster Information Base) para almacenar toda la configuración del clúster, incluidos los recursos y sus restricciones.

Puedes exportar la información:

Editar el fichero cib.xml y luego restaurarlo de la siguiente forma:

Destruir cluster Pacemaker

Si lo que necesitáis es destruir el cluster, os dejo un par de comandos (parar y destruir):

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

implementar-soc-instalacion-opensearch-0

Implementar SOC: Instalación Opensearch

Implementar SOC: Instalación Opensearch Seguimos implementando un SOC bajo Opensource como en anteriores entradas (las …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

seis − seis =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu