Entendiendo la alta disponibilidad (HA) en SUSE Linux

La alta disponibilidad y la continuidad del negocio son cruciales para mantener las aplicaciones y servicios siempre operativos. Los clústeres de alta disponibilidad permiten que los servicios críticos sigan funcionando, incluso si fallan servidores o componentes de hardware. SUSE Linux ofrece un conjunto de herramientas robustas para la creación y gestión de estos clústeres. En este artículo, exploramos la alta disponibilidad en SUSE Linux: el estado actual de los clústeres en SUSE Linux, con un enfoque en tecnologías clave como Pacemaker, Corosync, DRBD y otras. Estas, con pequeñas diferencias están disponibles en x86 y en ppc64le.

Pacemaker: el cerebro del clúster

Pacemaker es el motor que gestiona los clústeres de alta disponibilidad en SUSE Linux. Su función principal es administrar los recursos del clúster, asegurando que los servicios críticos estén operativos y se recuperen rápidamente en caso de fallo. Pacemaker monitoriza continuamente los recursos (bases de datos, servicios web, sistemas de archivos, etc.) y, si detecta un problema, migra esos recursos a otros nodos del clúster para mantenerlos en funcionamiento.

Pacemaker destaca por su flexibilidad y capacidad para gestionar una amplia variedad de recursos. Desde servicios sencillos hasta sistemas distribuidos más complejos, es capaz de manejar la mayoría de los escenarios de alta disponibilidad que una empresa puede necesitar.

Corosync: el sistema nervioso del clúster

Corosync es responsable de la comunicación entre los nodos del clúster. Asegura que todos los nodos tengan la misma visión del estado del clúster en todo momento, lo cual es esencial para la toma de decisiones coordinadas. También gestiona el quorum, que determina si hay suficientes nodos activos para que el clúster opere de manera segura. Si se pierde el quorum, se pueden tomar medidas para evitar la pérdida de datos o incluso la caída del servicio.

DRBD: la columna vertebral de los datos

DRBD (Distributed Replicated Block Device) es una solución de replicación de almacenamiento a nivel de bloques que replica datos entre nodos en tiempo real. Con DRBD, los datos de un servidor se replican en otro servidor casi instantáneamente, creando una copia exacta. Esto es especialmente útil en escenarios donde es crucial que los datos críticos estén siempre disponibles, incluso si un nodo falla. Combinado con Pacemaker, DRBD permite que los servicios sigan operando con acceso a los mismos datos, aunque estén en diferentes nodos.

Otras tecnologías clave en clústeres SUSE Linux

Además de Pacemaker, Corosync y DRBD, existen otras tecnologías esenciales para construir clústeres robustos en SUSE Linux:

  • SBD (Storage-Based Death): SBD es una herramienta de fencing que aísla un nodo que no se comporta correctamente para evitar que cause problemas en el clúster. Esto se logra utilizando un dispositivo de almacenamiento compartido que los nodos usan para comunicarse su estado.
  • OCF (Open Cluster Framework): Los scripts OCF son la base de los recursos gestionados por Pacemaker. Definen cómo iniciar, detener y verificar el estado de un recurso, proporcionando la flexibilidad necesaria para integrar una amplia gama de servicios en el clúster.
  • Csync2: Es una herramienta para la sincronización de archivos entre nodos en un clúster. Asegura que los archivos de configuración y otros datos críticos estén siempre actualizados en todos los nodos.

Estado actual y tendencias futuras

Los clústeres en SUSE Linux han madurado y se están adaptando a nuevas demandas empresariales. Con la adopción creciente de entornos de contenedores y con partes en las diferentes nubes, los clústeres en SUSE Linux están evolucionando para integrarse mejor con ellos. Esto incluye soporte mejorado para la orquestación de contenedores y aplicaciones distribuidas que requieren alta disponibilidad más allá de replicar dos discos por DRBD y manter una IP virtual con vida :)

Aún así, en la actualidad, la combinación de Pacemaker, Corosync, DRBD y otras herramientas proporciona una base sólida para crear clústeres de alta disponibilidad que pueden escalar y adaptarse a las necesidades de SAP HANA y otras soluciones que requieren una alta cuando no total disponibilidad. Si necesitas ayuda en SIXE os ayudamos.

Cheatsheet para la creación y administración de clústeres con Pacemaker en SUSE Linux

Aquí te dejamos una modesta cheatsheet para ayudarte en la creación y administración de clústeres con Pacemaker en SUSE Linux. Sharing is caring!

Tarea Comando / Descripción
Instalación de paquetes
Instalar Pacemaker y Corosync zypper install -y pacemaker corosync crmsh
Configuración básica
Configurar el archivo de Corosync Edita /etc/corosync/corosync.conf para definir el transporte, las interfaces y la red.
Iniciar servicios systemctl start corosync && systemctl start pacemaker
Habilitar servicios en el arranque systemctl enable corosync && systemctl enable pacemaker
Administración del clúster
Ver estado del clúster crm status
Ver detalles de los nodos crm_node -l
Añadir un nuevo nodo crm node add <nombre_del_nodo>
Expulsar un nodo crm node remove <nombre_del_nodo>
Ver logs del clúster crm_mon --logfile <ruta_del_log>
Configuración de recursos
Crear un recurso crm configure primitive <nombre_recurso> <tipo_agente> params <parámetros>
Eliminar un recurso crm configure delete <nombre_recurso>
Modificar un recurso crm configure edit <nombre_recurso>
Mostrar configuración completa del clúster crm configure show
Configuración de grupos y conjuntos
Crear un grupo de recursos crm configure group <nombre_grupo> <recurso1> <recurso2> ...
Crear un conjunto ordenado crm configure colocation <nombre_conjunto> inf: <recurso1> <recurso2>
Crear una orden de ejecución crm configure order <orden> <recurso1> then <recurso2>
Restricciones y colocaciones
Crear restricción de colocación crm configure colocation <nombre_restricción> inf: <recurso1> <recurso2>
Crear restricción de ubicación crm configure location <nombre_ubicación> <recurso> <puntaje> <nodo>
Failover y recovery
Forzar migración de un recurso crm resource migrate <nombre_recurso> <nombre_nodo>
Limpiar estado de un recurso crm resource cleanup <nombre_recurso>
Inhabilitar un recurso temporalmente crm resource unmanage <nombre_recurso>
Habilitar un recurso después de deshabilitarlo crm resource manage <nombre_recurso>
Configuración avanzada
Configurar el quorum `crm configure property no-quorum-policy=<freeze
Configurar fencing crm configure primitive stonith-sbd stonith:external/sbd params pcmk_delay_max=<tiempo>
Configurar timeout de un recurso crm configure primitive <nombre_recurso> <tipo_agente> op start timeout=<tiempo> interval=<intervalo>
Validación y pruebas
Validar configuración del clúster crm_verify --live-check
Simular una falla crm_simulate --run
Gestión de políticas
Configurar política de recuperación crm configure rsc_defaults resource-stickiness=<valor>
Configurar prioridad de recursos crm configure resource default-resource-stickiness=<valor>
Detención y arranque del clúster
Detener todo el clúster crm cluster stop --all
Arrancar todo el clúster crm cluster start --all

 

Sixe Ingeniería
×