Implementa un cluster de alta disponibilidad con Pacemaker y Corosync

Introducción

En entornos críticos, la disponibilidad continua de servicios es un requisito básico. Pacemaker y Corosync son dos componentes clave en la construcción de un cluster de alta disponibilidad que proteja aplicaciones y datos ante fallos de servidor o red. Este artículo ofrece una guía detallada para implementar, configurar y mantener un cluster robusto y escalable.

Componentes y Arquitectura

Un cluster de alta disponibilidad consta de varios nodos que cooperan para ofrecer servicios redundantes. Al fallar uno, otro asume su carga sin interrupción aparente.

  • Pacemaker: Gestor de recursos que orquesta la activación y migración de servicios.
  • Corosync: Proporciona la capa de comunicación y consenso entre nodos (anillo o multicast).
  • DRBD: (opcional) Replica bloques de disco en tiempo real entre nodos.
  • STONITH: Dispositivo de “shoot the other node in the head” para aislar nodos defectuosos.

Requisitos Previos

  • Dos o más servidores con Linux (Debian, Ubuntu, CentOS, RHEL).
  • Adaptadores de red dedicados para tráfico de clúster y almacenamiento.
  • Sincronización horaria (NTP o Chrony).
  • Acceso root o usuario con privilegios sudo.
  • Firewall configurado para permitir puertos de Corosync (5404/5405 UDP).

Instalación de Pacemaker y Corosync

Paso 1: Instalar paquetes

En Debian/Ubuntu:

sudo apt-get update
sudo apt-get install -y pacemaker corosync pcs fence-agents-all

En RHEL/CentOS:

sudo yum install -y pacemaker corosync pcs fence-agents

Paso 2: Configurar Corosync

  1. Editar /etc/corosync/corosync.conf definiendo el anillo:
    totem {
    nbspnbspversion: 2
    nbspnbspcrypto_cipher: none
    nbspnbspinterface {
    nbspnbspnbspnbspringnumber: 0
    nbspnbspnbspnbspbindnetaddr: 192.168.1.0
    nbspnbspnbspnbspmcastport: 5405
    nbspnbsp}
    }
    nodelist {
    nbspnbspnode { name: nodo1 nodeid: 1 quorum_votes: 1 }
    nbspnbspnode { name: nodo2 nodeid: 2 quorum_votes: 1 }
    }
    quorum { provider: corosync_votequorum }
  2. Iniciar servicios:
    sudo systemctl enable corosync pacemaker
    sudo systemctl start corosync pacemaker

Configuración de Recursos con pcs

La herramienta pcs simplifica la creación de clusters. Inicie sesión en cada nodo con la contraseña del usuario hacluster:

  1. Autenticación:
    sudo pcs cluster auth nodo1 nodo2 -u hacluster -p contraseña
  2. Crear el cluster:
    sudo pcs cluster setup –name hacluster nodo1 nodo2
  3. Arrancar el cluster:
    sudo pcs cluster start –all
  4. Verificar estado:
    sudo pcs status

Ejemplo: Recurso de IP Flotante

sudo pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s

Gestión Avanzada de Recursos

Pacemaker utiliza agents OCF y legacy LSB para controlar servicios. A continuación, un resumen:

Tipo de Agent Ejemplo Uso Común
ocf:heartbeat:IPaddr2 Dirección IP IP flotante
systemd:apache2 Servicio Apache Web server
ocf:linbit:drbd DRBD Replicación de bloque

Mantenimiento y Monitoreo

  • pcs status: Estado global del cluster.
  • crm_mon -1: Monitorización en tiempo real.
  • Logs en /var/log/cluster/corosync.log y /var/log/messages.
  • Alertas SNMP o correo electrónico a través de scripts personalizados.

Seguridad y Conexiones VPN

Para proteger la comunicación de administración y sincronización, es aconsejable encapsular el tráfico del cluster en una VPN. Algunas opciones:

Configurando la VPN en cada nodo, el tráfico de Corosync y Pacemaker quedará aislado de la red pública.

Buenas Prácticas

  • Utilizar STONITH para evitar “split-brain”.
  • Probar cortes de red y reinicios para validar la conmutación.
  • Realizar actualizaciones de forma escalonada y controlada.
  • Documentar la topología y variables de configuración.

Conclusión

Implementar un cluster de alta disponibilidad con Pacemaker y Corosync ofrece una capa crítica de protección contra fallos de hardware y software. Siguiendo esta guía, podrá diseñar una solución sólida, segura y escalable. La correcta configuración de VPN, STONITH y recursos OCF garantizará que sus servicios permanezcan disponibles aún en situaciones adversas.

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *