
Tengo varios casos en los que necesito que las aplicaciones se migren de un servidor a otro en caso de una falla (el servidor se cuelga o falla).
En Solaris hacemos esto con VCS (Veritas Cluster Server). ¿Qué opciones están disponibles para Linux?
Indique el nivel de esfuerzo para configurar/mantener o el costo (si corresponde) para cada uno.
-- Más detalles agregados --
Para dar una idea del nivel de complejidad:
- El servidor defectuoso podría colgarse o fallar sin previo aviso, es posible que aún se pueda hacer ping.
- El servidor de recuperación necesita iniciar sus aplicaciones en caso de conmutación por error.
- Una vez que el servidor que falla arranca o se enciende, se vuelve pasivo para no interferir con el servidor de recuperación.
Este es un nodo de recopilación de datos o de cálculo, no una base de datos, por lo que podrían funcionar soluciones más simples.
-- aún más detalles (lo siento) --
El almacenamiento compartido no es una opción, pero no es necesario migrar mucho estado (si es que hay alguno) de un servidor a otro. Mantenemos los dos servidores sincronizados a través de rsync.
Muchas gracias por todas las publicaciones hasta ahora.
Respuesta1
http://linux-ha.org/para todas sus necesidades de alta disponibilidad. Como dice la canción, las mejores cosas de la vida son gratis.
Respuesta2
He utilizado una variedad de soluciones de clúster en Linux. También soy un defensor de la gestión de configuración, así que agregaré un poco sobre eso en mis descripciones (Chef o Puppet, claro está).
Servidor de clúster Veritas (VCS). Ha pasado un tiempo, pero implementamos algunos clústeres de Linux VCS en RHEL 3.0. Espero que esté disponible en RHEL 5.0. Deberías estar familiarizado con la dificultad de configurar esto, ya que es un territorio familiar. Como ya sabrá, VCS es caro. Como anécdota, VCS no es adecuado para que lo configure la gestión de configuración.
Hablando de RHEL, Red Hat Cluster Suite ha madurado mucho desde su lanzamiento original con RHEL 2.1. La fase de instalación/configuración es bastante sencilla y la documentación es muy completa y útil y, al igual que VCS, puede adquirir soporte del proveedor. Para productos comerciales de HA, RHCS tiene un precio razonable. Sólo usaría la gestión de configuración para instalar los paquetes y mantenerlos "a mano" a través de la interfaz web. Además, he oído hablar de algunas personas que lo utilizan en plataformas que no son de Red Hat, aunque no tengo experiencia con eso directamente.
Linux-HA (drbd/heartbeat) también es excelente, aunque viniendo de VCS la configuración puede parecer simplista, pero difícil de manejar. Esto es bastante fácil de automatizar con una herramienta de gestión de configuración.
Como prueba de concepto, instalé un clúster de Linux con HACMP de IBM, su software de agrupación en clústeres AIX. No lo recomendaría, según recuerdo, es más caro incluso que VCS. IBM tiene procedimientos específicos para instalar y mantener HACMP; aquí no usaría la gestión de configuración.
Respuesta3
Michael tiene razón en que la comunidad está un poco fracturada en este momento y la documentación es un poco escasa.
En realidad, está todo ahí, es simplemente imposible de entender. Lo que realmente desea es el libro electrónico "Explicación de la configuración del marcapasos"... (Enlace a PDF). Querrá leerlo una docena de veces, luego intentar implementarlo y luego leerlo otra docena de veces para poder asimilarlo.
La implementación con mejor soporte de servicios de clúster para Linux en este momento probablemente será SLES11 de Novell y su extensión de alta disponibilidad (HAE). Salió SÓLO hace uno o dos meses y viene con un bonito y grueso manual de 200 páginas que describe cómo configurarlo y hacer que todo funcione. Novell también ha sido excelente a la hora de admitir configuraciones de marcapasos en diversas formas.
Más allá de eso, está la implementación de RHEL5, que tiene el mismo paquete y documentación decente, pero creo que es más cara que SLES. Al menos lo es para nosotros.
Yo evitaría Heartbeat en este momento e iría con Pacekmaker/OpenAIS porque tendrán un soporte mucho mejor en el futuro. SIN EMBARGO, el estado actual de la comunidad es tal que hay algunos expertos, hay algunas personas que la ejecutan en producción y hay un montón de personas que no tienen ni idea. Únase a la lista de correo de Pacemaker y preste atención a un hombre llamado Andrew Beekhof.
Edite para proporcionar los detalles solicitados:
Pacemaker/OpenAIS utiliza una operación de 'monitoreo' en un 'recurso primitivo' (por ejemplo, servidor nfs) para realizar un seguimiento de lo que está haciendo el recurso. Si el servidor NFS de ejemplo no responde al resto del clúster durante X segundos, entonces el clúster ejecutará una operación STONITH (disparar al otro nodo en la cabeza) para apagar el nodo principal y activar el nodo secundario. Usted decide en la configuración qué mostrar después y las acciones asociadas a realizar. Los detalles de implementación a partir de ahí dependen del servicio que esté intentando realizar con conmutación por error, las ventanas de ejecución para ciertas operaciones (como promover el nodo principal nuevamente a maestro) y todo es lo más configurable posible.
Respuesta4
Con Linux hemos implementado clustering con heartbeat y drbd. Heartbeat comprueba el estado del servidor. DRBD se utiliza para la sincronización de datos entre servidores. Tenemos el servicio Oracle ejecutándose en un servidor y Apache en otro servidor. Cuando falla el servidor que ejecuta Oracle, el latido detecta lo mismo y restaura el servicio de Oracle en el servidor que ejecuta Apache. y viceversa. He estado usando esta configuración para muchos otros propósitos y ha sido confiable hasta la fecha.