Was ist der Unterschied zwischen Keepalive und Heartbeat?


20

Ich möchte einen hochverfügbaren Servercluster strukturieren. Jetzt möchte ich Details über Keepalive und Heartbeat wissen, was der Unterschied zwischen beiden ist und wie man einen auswählt.

Antworten:


26

Glauben Sie, dass die Frage von Willy Tarreau, dem Autor von HAProxy, in http://www.formilux.org/archives/haproxy/1003/3259.html sehr genau beantwortet wurde .

Zitat aus dem obigen Link

Heartbeat ist nicht das beste Tool, um ein redundantes Haproxy-Setup zu erhalten. Es wurde zum Erstellen von Clustern entwickelt, was sich stark von zwei redundanten zustandslosen Netzwerkgeräten unterscheidet. Netzwerkorientierte Tools wie keepalived oder ucarp eignen sich am besten für diese Aufgabe

Der Unterschied zwischen diesen beiden Familien ist einfach

  1. Ein clusterorientiertes Produkt wie Heartbeat stellt sicher, dass eine gemeinsam genutzte Ressource höchstens an einer Stelle vorhanden ist. Dies ist für gemeinsam genutzte Dateisysteme, Festplatten usw. sehr wichtig. Es dient dazu, einen Dienst während einer Umschaltung auf einem Knoten herunterzufahren und auf einem anderen hochzufahren. Auf diese Weise kann möglicherweise nie gleichzeitig auf die gemeinsam genutzte Ressource zugegriffen werden. Dies ist eine sehr schwierige Aufgabe, die es gut macht.
  2. Ein netzwerkorientiertes Produkt wie keepalived stellt sicher, dass eine gemeinsame IP-Adresse an mindestens einem Ort vorhanden ist. Bitte beachten Sie, dass es sich nicht mehr um einen Dienst oder eine Ressource handelt, sondern nur noch um IP-Adressen. Es wird nicht versucht, einen Dienst herunter- oder hochzufahren, sondern es wird lediglich eine bestimmte Anzahl von Kriterien berücksichtigt, um zu entscheiden, welcher Knoten am besten geeignet ist, den Dienst anzubieten. Der Dienst muss jedoch bereits auf beiden Knoten verfügbar sein. Als solches eignet es sich sehr gut für redundante Router, Firewalls und Proxys, aber überhaupt nicht für Disk Arrays oder Dateisysteme.

(Ja, ich weiß, es ist eine alte Frage, aber für zukünftige Referenz)


Zukünftige Referenz in der Tat. Das Einrichten und Arbeiten mit Heartbeat war mühsam. Ich fand, dass Keepalived viel einfacher war und mit meinem MySQL Master Master Single Write-Setup wie erwartet funktionierte.
Mike Purcell

3

Es gibt keine klare, konsistente Unterscheidung. Diese Wörter werden manchmal mehr oder weniger synonym verwendet.

Es gibt ein allgemeines Userland-Deamon für Hochverfügbarkeits-Setups namens Keepalived und das Linux-HA-Projekt hatte früher ein Deamon namens Heartbeat, das jetzt zu Pacemaker geändert wurde . (Ich vertraue darauf, dass Sie nicht um einen vollständigen Überblick über diese beiden Systeme gebeten haben, und was all die Unterschiede sind, die meiner Meinung nach vom Thema abweichen würden.)

In der täglichen Verwendung der Begriffe würde ich sagen, dass die häufigste Verwendung ist, dass:

  • "Keepalive" bezieht sich allgemeiner auf ein System, das einen Dienst hochverfügbar hält.

  • "Heartbeat" bezieht sich insbesondere auf ein Kommunikationsprotokoll, an das oder an die Mitglieder eines Hochverfügbarkeits-Setups regelmäßig "Ja, ich bin noch am Leben!" Senden. Mitteilungen. Ihre Kollegen ergreifen dann Maßnahmen, wenn sie vor Ablauf einer festgelegten Zeit keine Meldung "Ja, ich bin am Leben" erhalten (dh der andere Host ist ausgefallen). Dies ist ein bisschen wie ein Gefühl für einen Puls, daher der Name.


Siehe @vange answer. Es scheint mir ziemlich klar zu sein. Unterschiedliche Services, unterschiedliche Namen, unterschiedliche Designziele und Anwendungsfälle.
Nelaaro
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.