Heartbeat (informática)


En informática , un latido es una señal periódica generada por hardware o software para indicar un funcionamiento normal o para sincronizar otras partes de un sistema informático . [1] [2] El mecanismo de latido es una de las técnicas comunes en los sistemas de misión crítica para proporcionar alta disponibilidad y tolerancia a fallas de los servicios de red mediante la detección de fallas de red o sistemas de nodos o demonios que pertenecen a unclúster de red —administrado por un servidor maestro — con el propósito de la adaptación automática y el reequilibrio del sistema mediante el uso de los nodos redundantes restantes en el clúster para hacerse cargo de la carga de nodos fallidos para brindar servicios constantes. [3] [1] Por lo general, se envía un latido entre máquinas a intervalos regulares del orden de segundos; un mensaje de latido del corazón . [4] Si el punto final no recibe un latido durante un tiempo, generalmente unos pocos intervalos de latido, se supone que la máquina que debería haber enviado el latido ha fallado. [5] Los mensajes de latido se envían normalmente sin parar de forma periódica.o de forma recurrente desde el inicio del originador hasta el cierre del originador. Cuando el destino identifica una falta de mensajes de latido durante un período de llegada anticipado, el destino puede determinar que el originador ha fallado, se ha apagado o, en general, ya no está disponible.

Un protocolo de latido se usa generalmente para negociar y monitorear la disponibilidad de un recurso, como una dirección IP flotante , y el procedimiento implica enviar paquetes de red a todos los nodos de la cultura para verificar su accesibilidad . [3] Normalmente, cuando un latido se inicia en una máquina, realizará un proceso de elección con otras máquinas en la red de latidos.para determinar qué máquina, si alguna, es propietaria del recurso. En redes de latidos de más de dos máquinas, es importante tener en cuenta la partición, donde dos mitades de la red podrían estar funcionando pero no pueden comunicarse entre sí. En una situación como esta, es importante que el recurso solo sea propiedad de una máquina, no de una máquina en cada partición.

Como un latido está destinado a indicar el estado de una máquina, es importante que el protocolo de latido y el transporte en el que se ejecuta sean lo más fiables posible. Causar una conmutación por error debido a una falsa alarma puede, dependiendo del recurso, ser altamente indeseable. También es importante reaccionar rápidamente ante una falla real, lo que significa aún más la confiabilidad de los mensajes de latido. Por esta razón, a menudo es deseable tener un latido que se ejecute en más de un transporte; por ejemplo, un segmento de Ethernet que usa UDP / IP y un enlace en serie.

Una "pertenencia a un clúster" de un nodo es una propiedad de la accesibilidad de la red : si el maestro puede comunicarse con el nodo , se considera miembro del clúster y "muerto" en caso contrario. [6] Un programa de headbeat en su conjunto consta de varios subsistemas : [7]

Los mensajes de latido se envían de forma periódica a través de técnicas como la difusión o multidifusión en grupos más grandes. [6] Dado que los CM tienen transacciones en todo el clúster, el patrón más común es enviar mensajes de latido a todos los nodos y " esperar " respuestas sin bloqueo . [8] Dado que los mensajes de latido o keepalive son la inmensa mayoría de los mensajes de control de clúster no relacionados con la aplicación, que también van a todos los miembros del clúster, los principales sistemas críticos también incluyen protocolos que no son IP como puertos seriales para entregar latidos. [9]