¿Cuál es la diferencia entre keepalive y heartbeat?

20

Quiero estructurar un clúster de servidores de alta disponibilidad. Ahora quiero saber detalles sobre keepalive y heartbeat, cuál es la diferencia entre ambos y cómo elegir uno.

sobre el estudio
fuente

Respuestas:

26

Cree que la pregunta ha sido respondida con mucha precisión por Willy Tarreau, el autor de HAProxy, en http://www.formilux.org/archives/haproxy/1003/3259.html .

Cita del enlace de arriba

Heartbeat no es la mejor herramienta para obtener una configuración de haproxy redundante, se diseñó para crear clústeres, que es muy diferente de tener dos equipos de red redundantes sin estado. Las herramientas orientadas a la red, como keepalived o ucarp, son las más adecuadas para esa tarea

La diferencia entre esas dos familias es simple

  1. un producto orientado a clústeres, como heartbeat , garantizará que un recurso compartido esté presente en un lugar como máximo . Esto es muy importante para los sistemas de archivos compartidos, discos, etc. Está diseñado para quitar un servicio en un nodo y subirlo en otro durante una conmutación. De esa manera, el recurso compartido nunca podrá ser accedido simultáneamente. Esta es una tarea muy difícil de lograr y lo hace bien.
  2. un producto orientado a la red, como keepalived , garantizará que haya una dirección IP compartida en al menos un lugar. Tenga en cuenta que ya no estoy hablando de un servicio o recurso, solo juega con direcciones IP. No intentará reducir o aumentar ningún servicio, solo considerará un cierto número de criterios para decidir qué nodo es el más adecuado para ofrecer el servicio. Pero el servicio ya debe estar activo en ambos nodos. Como tal, es muy adecuado para enrutadores redundantes, cortafuegos y servidores proxy, pero no para matrices de discos ni sistemas de archivos.

(Sí, sé que es una vieja pregunta, pero para referencia futura)

Vange
fuente
Referencia futura de hecho. Heartbeat fue una tarea difícil de configurar y trabajar, descubrí que keepalived era mucho más simple y con mi configuración de MySQL Master Master Single Write, funcionó como se esperaba.
Mike Purcell
3

No hay una diferenciación clara y consistente. Esas palabras a veces se usan más o menos indistintamente.

Hay un demonio de usuario común para configuraciones de alta disponibilidad llamado Keepalived , y el proyecto Linux HA solía tener un demonio llamado Heartbeat, que ahora ha cambiado a Pacemaker . (Confío en que no solicitó una descripción completa de esos dos sistemas, y cuáles son todas las diferencias, eso en mi humilde opinión estaría fuera de tema).

En el uso diario de los términos , diría que el uso más común es que:

  • "Keepalive" se refiere más generalmente a un sistema que mantiene un servicio altamente disponible.

  • "Heartbeat" se refiere más específicamente a un protocolo de comunicación, donde a o más miembros de una configuración de alta disponibilidad envían periódicamente "¡Sí, todavía estoy vivo!" mensajes Sus pares luego toman medidas si no ven el mensaje "Sí, estoy vivo" antes de un tiempo establecido (es decir, el otro host se ha caído). Esto es un poco como sentir un pulso, de ahí el nombre.

Jesper M
fuente
Ver respuesta @vange. Me parece bastante claro. Diferentes servicios diferentes nombres diferentes objetivos de diseño y casos de uso.
nelaaro