Articulo de referencia

Latido cardíaco (informática)

En ciencias de la computación , un latido es una señal periódica generada por hardware o software para indicar el funcionamiento normal o para sincronizar otras partes de un sis...

En ciencias de la computación , un latido es una señal periódica generada por hardware o software para indicar el 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 sistemas de misión crítica para proporcionar alta disponibilidad y tolerancia a fallos de los servicios de red al detectar fallos de red o de sistemas de nodos o demonios que pertenecen a un clúster de red —administrado por un servidor maestro— con el propósito de adaptación y reequilibrio automáticos del sistema utilizando los nodos redundantes restantes en el clúster para asumir la carga de los nodos que fallaron para proporcionar servicios constantes. [ 3 ] [ 1 ] Normalmente, un latido se envía entre máquinas a intervalos regulares del orden de segundos; un mensaje de latido . [ 4 ] Si el punto final no recibe un latido durante un tiempo —normalmente unos pocos intervalos de latido— se asume que la máquina que debería haber enviado el latido ha fallado. [ 5 ] Los mensajes de latido se envían normalmente de forma continua, periódica o recurrente, desde el inicio del originador hasta su apagado. Cuando el destino detecta la ausencia de mensajes de latido durante un período de llegada previsto, puede determinar que el originador ha fallado, se ha apagado o, en general, ya no está disponible.

Protocolo de latido cardíaco

Un protocolo de latido se utiliza generalmente para negociar y supervisar la disponibilidad de un recurso, como una dirección IP flotante , y el procedimiento implica el envío de paquetes de red a todos los nodos del clúster para verificar su accesibilidad . [ 3 ] Normalmente, cuando se inicia un latido en una máquina, esta realiza un proceso de elección con otras máquinas de la red de latidos para determinar qué máquina, si alguna, posee el 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 poder comunicarse entre sí. En una situación como esta, es importante que el recurso sea propiedad de una sola máquina, no de una máquina en cada partición.

Dado que la señal de latido se utiliza para indicar el estado de una máquina, es fundamental que el protocolo y el medio de transporte que utiliza sean lo más fiables posible. Una falsa alarma puede provocar una conmutación por error , dependiendo del recurso, lo cual resulta muy indeseable. Asimismo, es importante reaccionar con rapidez ante un fallo real, lo que subraya aún más la fiabilidad de los mensajes de latido. Por este motivo, suele ser conveniente que la señal de latido se ejecute a través de más de un medio de transporte; por ejemplo, un segmento Ethernet mediante UDP / IP y un enlace serie.

La "pertenencia a un clúster" de un nodo es una propiedad de accesibilidad de la red : si el maestro puede comunicarse con el nodoincógnita{\displaystyle x}, se considera un miembro del clúster y "muerto" de lo contrario. [ 6 ] Un programa de latidos como todo consta de varios subsistemas : [ 7 ]

  • Subsistema de latidos (HS): El subsistema que supervisa la presencia del nodo dentro del clúster a través de una serie de mensajes de mantenimiento de conexión o "mensajes de latidos".
  • Administrador de clúster (CM): El subsistema dentro del clúster, generalmente el servidor maestro, que realiza un seguimiento de los "miembros del clúster" y registra qué recursos se encuentran en qué nodos.
  • Transición de clúster (CT): Cuando un nodo se une o abandona el clúster, este subsistema se encarga de registrar dichos sucesos con el fin de activar eventos para reequilibrar y reconfigurar el nodo maestro y así distribuir la carga.

Los mensajes de latido se envían periódicamente mediante técnicas como difusión o multidifusión en clústeres 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 de forma no bloqueante . [ 8 ] Dado que los mensajes de latido o keepalive constituyen la gran mayoría de los mensajes de control del clúster no relacionados con la aplicación —que también se envían a todos los miembros del clúster—, los principales sistemas críticos también incluyen protocolos que no son IP, como puertos serie , para enviar latidos. [ 9 ]

Diseño e implementación

Cada CM en el servidor maestro mantiene una máquina de estados finitos con tres estados para cada nodo que administra: Inactivo, Inicializado y Activo. [ 10 ] Cada vez que se une un nuevo nodo, el CM cambia el estado del nodo de Inactivo a Inicializado y difunde un "mensaje de arranque", que el nodo recibe y ejecuta un conjunto de procedimientos de inicio. Luego responde con un mensaje de acuse de recibo, el CM luego incluye el nodo como miembro del clúster y transiciona el estado del nodo de Inicializado a Activo. Cada nodo en estado Activo recibiría un mensaje de latido de difusión periódica del subsistema HS y espera un mensaje de acuse de recibo dentro de un rango de tiempo de espera . Si el CM no recibe un mensaje de latido de acuse de recibo, el nodo se considera no disponible , y el CM realiza una transición de estado de Activo a Inactivo para ese nodo. [ 11 ] Los procedimientos o scripts a ejecutar y las acciones a tomar entre cada transición de estado son un detalle de implementación del sistema.

Red de latidos del corazón

La red de latidos es una red privada compartida únicamente por los nodos del clúster, a la que no se puede acceder desde fuera. Los nodos del clúster la utilizan para monitorizar el estado de cada uno y comunicarse entre sí mediante mensajes necesarios para el correcto funcionamiento del clúster. El método de latidos utiliza el principio FIFO ( primero en entrar, primero en salir) para las señales enviadas a través de la red. Al garantizar la recepción de todos los mensajes, el sistema asegura que los eventos se ordenen correctamente. [ 12 ]

En este protocolo de comunicación, cada nodo envía un mensaje en un intervalo determinado, por ejemplo delta , confirmando así su actividad y su estado de latencia. Estos mensajes se consideran mensajes de control que ayudan a determinar que la red no incluye mensajes retrasados. Un nodo receptor, denominado "sincronizador", mantiene una lista ordenada de los mensajes recibidos. Una vez que se recibe un mensaje de cada nodo con una marca de tiempo posterior a la hora marcada, el sistema determina que se han recibido todos los mensajes, ya que la propiedad FIFO garantiza que los mensajes estén ordenados. [ 13 ]

En general, es difícil seleccionar un delta que sea óptimo para todas las aplicaciones. Si delta es demasiado pequeño, requiere demasiada sobrecarga, y si es grande, provoca una degradación del rendimiento, ya que todo espera la siguiente señal de latido. [ 14 ]

Véase también

Notas

  1. 1 2 Hou y Huang 2003 , pág. 1.
  2. "Definición de latido cardíaco " . pcmag.com Enciclopedia . Consultado el 7 de octubre de 2020 .
  3. 1 2 Robertson 2000 , pág. 1.
  4. US 4710926 , Donald W. Brown, James W. Leth, James E. Vandendorpe, "Recuperación de fallos en un sistema de procesamiento distribuido", publicado el 1 de diciembre de 1987 
  5. Kawazoe Aguilera, Marcos; Chen, Wei; Toueg, Sam (1997). "Heartbeat: Un detector de fallos sin tiempo de espera para una comunicación fiable en reposo" (PDF) . Algoritmos distribuidos . Berlín, Heidelberg: Springer Berlin Heidelberg. págs. 126–140 . doi : 10.1007/bfb0030680 . hdl : 1813/7286 . ISBN  978-3-540-63575-8ISSN 0302-9743 
  6. 1 2 Robertson 2000 , pág. 2.
  7. Robertson 2000 , págs. 1-2.
  8. Robertson 2000 , págs. 2-3.
  9. Robertson 2000 , pág. 5.
  10. ^ Li, Yu y Wu 2009 , pág. 2.
  11. ^ Li, Yu y Wu 2009 , pág. 2-3.
  12. Nikoletseas 2011 , pág. 304.
  13. Nikoletseas 2011 , pág. 304-305.
  14. Nikoletseas 2011 , pág. 306.

Referencias

  • Nikoletseas, Sotiris; Rolim, José DP, eds. (2011). «Aspectos teóricos de la computación distribuida en redes de sensores». Monografías en informática teórica. Una serie EATCS . ​​Berlín, Heidelberg: Springer Berlin Heidelberg. Bibcode : 2011tadc.book.....N . doi : 10.1007/978-3-642-14849-1 . ISBN 978-3-642-14848-4ISSN 1431-2654 
  • Hou, Zonghao; Huang, Yongxiang (29 de marzo de 2003). Diseño e implementación de Heartbeat en un entorno multimáquina . XVII Conferencia Internacional sobre Redes y Aplicaciones Avanzadas de Información, 2003. AINA 2003. China: IEEE Xplore . doi : 10.1109/AINA.2003.1192949 . ISBN 0-7695-1906-7.
  • Robertson, Alan (2000). Diseño del sistema de latidos de Linux-HA (PDF) . Conferencia técnica anual de USENIX . SUSE Labs .
  • Li, Fei-Fei; Yu, Xiang-Zhan; Wu, Gang (11 de julio de 2009). Diseño e implementación de un sistema distribuido de alta disponibilidad basado en un protocolo de latido multinivel . Conferencia Internacional IITA de 2009 sobre Control, Automatización e Ingeniería de Sistemas (CASE 2009). China: IEEE . doi : 10.1109/CASE.2009.115 . ISBN 978-0-7695-3728-3.