Solución 1:
Prefiero usar keepalived para alta disponibilidad. Lo encuentro más simple de configurar (un demonio y configuración) que heartbeat y compañía. El único inconveniente que encuentro es que keepalived no tiene una opción de unidifusión de forma predeterminada y solo usa VRRP para la comunicación (sin embargo, el autor de HAProxy ha escrito un parche de unidifusión para keepalived)
Solución 2:
De hecho, estoy trabajando en algo muy similar a lo que describiste (un clúster de conmutación por error en EC2), y después de probar Heartbeat, me decidí por Corosync como mi capa de mensajería. Corosync se ejecutará en varios servidores y es compatible con Unicast (UDPU) a partir de la versión 1.3.0 (desde noviembre de 2010). Configuré y probé Corosync en la nube EC2 de Amazon (usando la AMI de Linux de Amazon) y puedo confirmar que funciona sin problemas.
Se instala un archivo udpu de muestra en /etc/corosync.
Agregue un bloque de miembros a la sección de interfaz para cada nodo y especifique el transporte como updu. (He usado el mismo puerto que heartbeat en el siguiente ejemplo, pero puede cambiarlo como desee).
por ejemplo:
totem {
version: 2
secauth: off
interface {
member {
memberaddr: 10.xxx.xxx.xxx
}
member {
memberaddr: 10.xxx.xxx.xxx
}
ringnumber: 0
bindnetaddr: 10.xxx.xxx.xxx
mcastport: 694
}
transport: udpu
}
(Se supone que Heartbeat admite más de 3 clústeres de nodos en las versiones 1.2.3+, aunque nunca lo he probado personalmente y no sé si funcionaría con Unicast).
Solución 3:
Lo sentimos, pero la parte sobre Pacemaker no es cierta. Las pruebas de regresión y liberación de Pacemaker hacen un uso extensivo de la automatización.
Para configurar sin un clúster activo, prefije todos los comandos con CIB_file=/var/lib/heartbeat/crm/cib.xml
o configurarlo en su entorno. Solo asegúrese de eliminar el archivo .sig antes de iniciar el clúster.
Para clústeres sin quórum, la mayoría de las herramientas, si no todas, deberían ser compatibles con -f
o --force
lo que le indicará al clúster que acepte el cambio de todos modos. Si encuentra una herramienta que no lo hace, informe un error.
Solución 4:
En el mundo del código abierto, está RedHat Cluster Suite. Han pasado varios años desde que implementé RHCS, por lo que no tengo muchas cosas relevantes que decir al respecto hoy.
Comercialmente, existe Veritas Cluster Server. Sin experiencia con eso.
Una herramienta HA mucho más simple y de código abierto es UCARP. UCARP no proporciona casi el mismo tipo de "infraestructura" que Heartbeat/Pacemaker/CoroSync, pero puede crear soluciones HA a su alrededor.
También puede crear una infraestructura de alta disponibilidad con tecnologías de virtualización, pero estas soluciones tienden a centrarse en la disponibilidad a nivel de host en lugar de la disponibilidad a nivel de aplicación.