Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So funktioniert Keepalived

So funktioniert Keepalived

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-06-24 11:08:293559Durchsuche

Das Funktionsprinzip von Keepalived besteht darin, den Status jedes Dienstknotens gemäß dem Switch-Mechanismus der dritten, vierten und fünften Schicht des TCP/IP-Referenzmodells zu erkennen. Wenn ein bestimmter Serverknoten abnormal ist oder ausfällt, erkennt Keepalived dies wird eine Anomalie oder ein Fehler vorliegen. Der ausgefallene Serverknoten wird aus dem Clustersystem entfernt.

So funktioniert Keepalived

Die Betriebsumgebung dieses Tutorials: Centos7-System, Thinkpad T480-Computer.

Einführung in Keepalived

Keepalived ist die nächste leichte Hochverfügbarkeitslösung für Linux. Hochverfügbarkeit: Im weitesten Sinne bezieht es sich auf die hohe Verfügbarkeit des gesamten Systems; im engeren Sinne bezieht es sich auf die Redundanz und Übernahme des Hosts.

Es implementiert ähnliche Funktionen wie HeartBeat, die beide eine hohe Verfügbarkeit von Diensten oder Netzwerken erreichen können, es gibt jedoch Unterschiede. HeartBeat ist eine professionelle und voll funktionsfähige Hochverfügbarkeitssoftware. Es bietet die grundlegenden Funktionen, die von HA-Software benötigt werden : Heartbeat-Erkennung, Ressourcenübernahme, Erkennung von Diensten im Cluster, Übertragung von Eigentümern gemeinsamer IP-Adressen auf Cluster-Knoten usw.

HeartBeat ist leistungsstark, aber im Vergleich zu HeartBeat implementiert Keepalived hauptsächlich Hochverfügbarkeitsfunktionen durch virtuelle Routing-Redundanz. Keepalived ist jedoch nur sehr einfach bereitzustellen und zu verwenden Für den Abschluss ist eine Konfigurationsdatei erforderlich.

Was ist Keepalived?

Keepalived wurde ursprünglich für LVS entwickelt und wird speziell zur Überwachung des Status jedes Serviceknotens im Clustersystem verwendet. Es erkennt den Status jedes Serviceknotens basierend auf den Switching-Mechanismen der dritten, vierten und fünften Schicht von TCP/IP Referenzmodell: Wenn ein Serverknoten abnormal ist oder die Arbeit fehlschlägt, wird Keepalived den ausgefallenen Serverknoten aus dem Clustersystem entfernen. Alle diese Aufgaben werden automatisch ausgeführt und erfordern keinen manuellen Eingriff Der einzige Zweck besteht darin, den ausgefallenen Dienstknoten zu reparieren.

Später fügte Keepalived die VRRP-Funktion hinzu (VritrualRouterRedundancyProtocol, virtuelles Routing-Redundanzprotokoll). Durch VRRP kann ein unterbrechungsfreier und stabiler Betrieb des Netzwerks erreicht werden Einerseits verfügt Keepalived über Funktionen zur Serverstatuserkennung und Fehlerisolierung, andererseits auch über HAcluster-Funktionen.

Gesundheitsprüfung und Failover sind die beiden Kernfunktionen von keepalived. Der sogenannte Health Check verwendet TCP-Drei-Wege-Handshake, ICMP-Anfrage, HTTP-Anfrage, UDP-Echo-Anfrage usw., um den tatsächlichen Server hinter dem Load Balancer (normalerweise den Server, der das eigentliche Geschäft überträgt) am Leben zu halten; Hauptsächlich die Anwendung: Bei Load Balancern, die im aktiven und Standby-Modus konfiguriert sind, wird VRRP verwendet, um den Herzschlag der aktiven und Standby-Load Balancer aufrechtzuerhalten. Wenn ein Problem mit dem aktiven Load Balancer auftritt, überträgt der Standby-Load Balancer die entsprechenden Dienste und minimiert so den Datenverkehr Verlust und Gewährleistung der Stabilität der Dienste.

VRRP-Protokoll und Funktionsprinzip

in einer echten Netzwerkumgebung. Die Kommunikation zwischen Hosts wird durch die Konfiguration von statischem Routing oder (Standard-Gateway) abgeschlossen. Sobald der Router zwischen Hosts ausfällt, wird der Router zu einem Single-Point-Engpass Das VRRP-Protokoll wurde eingeführt.

Das VRRP-Protokoll ist ein fehlertolerantes Aktiv-Standby-Modus-Protokoll, das sicherstellt, dass bei einem Ausfall der Next-Hop-Route des Hosts ein anderer Router den ausgefallenen Router ersetzen kann, wenn ein Netzwerkausfall auftritt durchgeführt, ohne die Datenkommunikation zwischen Hosts zu beeinträchtigen.

So funktioniert Keepalived

Virtueller Router: Ein virtueller Router ist eine Sammlung aller Router in einer VRRP-Backup-Gruppe. Es ist ein logisches Konzept und existiert nicht wirklich. Wenn man die Router in der Backup-Gruppe von außerhalb der Backup-Gruppe betrachtet, hat man das Gefühl, dass alle Router in der Gruppe eins sind, was als Teil einer Gruppe verstanden werden kann: Hauptrouter + alle Backup-Router = virtueller Router.

Ein virtueller Router verfügt über eine virtuelle IP-Adresse und eine MAC-Adresse. Der Host verwendet den virtuellen Router als Standard-Gateway. Das Format der virtuellen MAC-Adresse ist 00-00-5E-00-01-{VRID}. Normalerweise antwortet ein virtueller Router auf ARP-Anfragen mit einer virtuellen MAC-Adresse. Nur wenn der virtuelle Router speziell konfiguriert ist, antwortet er auf die reale MAC-Adresse der Schnittstelle.

Hauptrouter (MASTER): Der virtuelle Router stellt über die virtuelle IP Dienste für die Außenwelt bereit, und innerhalb des virtuellen Routers gibt es nur einen physischen Router, der gleichzeitig Dienste für die Außenwelt bereitstellt Derjenige, der Dienste bereitstellt, wird als Master-Router bezeichnet. Im Allgemeinen wird der Master durch einen Wahlalgorithmus generiert. Er verfügt über eine virtuelle IP für externe Dienste und stellt verschiedene Netzwerkfunktionen bereit, wie z. B. ARP-Anfragen, ICMP-Datenweiterleitung usw.

Backup-Router (BACKUP): Andere physische Router im virtuellen Router verfügen nicht über externe virtuelle IPs und bieten auch keine externen Netzwerkfunktionen. Sie akzeptieren nur die VRRP-Statusanzeigeinformationen des MASTER. Diese Router werden als Backup-Router bezeichnet. Wenn der Hauptrouter ausfällt, wird der Backup-Router in der BACKUP-Rolle wiedergewählt, um einen neuen Hauptrouter zu generieren, der die MASTER-Rolle übernimmt und weiterhin externe Dienste bereitstellt. Der gesamte Switch ist für Benutzer vollständig transparent.

VRRP-Wahlmechanismus

Der VRRP-Router hat während des Betriebs drei Zustände:

1. Nach dem Systemstart erfolgt keine Verarbeitung von VRRP-Paketen 2. Master-Status;

3. Backup-Status; Im Allgemeinen befindet sich der Hauptrouter im Master-Status und der Backup-Router im Backup-Status.

VRRP verwendet einen Wahlmechanismus, um den Status des Routers zu bestimmen:

1. Wenn die virtuelle IP-Adresse mit der IP-Adresse eines VRRP-Routers in der VRRP-Gruppe übereinstimmt, ist dieser Router der Besitzer der IP-Adresse und dieser Router wird als Master-Router positioniert.

2. Vergleichen Sie die Prioritäten. Wenn es keinen IP-Adressbesitzer gibt, vergleichen Sie die Prioritäten der Router. Der Prioritätsbereich liegt zwischen 0 und 255. Derjenige mit der höheren Priorität ist der Hauptrouter. Wenn es keinen Besitzer einer IP-Adresse gibt und die Priorität gleich ist, fungiert derjenige mit der größeren IP-Adresse als Hauptrouter.

Wie in der Abbildung unten gezeigt, ist die virtuelle IP 10.1.1.254. Vergleichen Sie dann die Prioritäten von RB und RA. Vergleichen Sie dann die IP-Adressen Die IP-Adresse von RA und RB ist groß. RB ist also der Hauptrouter in der Gruppe.

Arbeitsprozess

So funktioniert KeepalivedNach Verwendung der VRRP-Funktion bestimmt der Router seine Rolle in der Backup-Gruppe anhand der Priorität. Der Router mit der höheren Priorität wird zum Master-Router und der Router mit der niedrigeren Priorität wird zum Backup-Router. Der Master verfügt über eine virtuelle IP für externe Dienste, stellt verschiedene Netzwerkfunktionen bereit und sendet regelmäßig VRRP-Nachrichten, um andere Geräte in der Backup-Gruppe darüber zu informieren, dass er normal funktioniert. Der Backup-Router empfängt nur vom Master gesendete Nachrichteninformationen, um den Betrieb zu überwachen der Meisterstaat. Wenn der Master ausfällt, wird der Backup-Router ausgewählt und der Backup-Router mit höherer Priorität wird zum neuen Master.

Wenn der Backup-Router im Preemption-Modus die VRRP-Nachricht empfängt, vergleicht er seine eigene Priorität mit der Priorität in der Nachricht. Wenn die Priorität höher ist als in der Ankündigungsnachricht, wird er zum Master-Router. Andernfalls bleibt er im Backup-Status, solange der Master-Router nicht ausfällt Die Gruppe bleibt immer im Master- oder Backup-Status, und der Backup-Router wird nicht zum Master-Router, auch wenn er anschließend mit einer höheren Priorität konfiguriert wird. Wenn der Backup-Router danach keine VRRP-Nachricht vom Master-Router erhält Wenn sein Timer abläuft, wird davon ausgegangen, dass der Master-Router nicht mehr ordnungsgemäß funktioniert. Zu diesem Zeitpunkt betrachtet sich der Backup-Router als Master-Router und sendet VRRP-Pakete nach außen. Die Router in der Backup-Gruppe wählen basierend auf ihrer Priorität einen Master-Router aus, der die Paketweiterleitungsfunktion übernimmt.

Keepaliveds Arbeitsprinzip

Keepaliveds Arbeitsprinzip für den Server-Betriebsstatus und die Fehlerisolierung:

Keepalived arbeitet auf der dritten, vierten und fünften Schicht (physikalische Schicht, Verbindungsschicht) des TCP/IP-Referenzmodells:

Netzwerk Schicht (3): Keepalived sendet über das ICMP-Protokoll ein ICMP-Paket an jeden Knoten im Servercluster (ähnlich der Funktion von Ping). Wenn ein Knoten kein Antwortpaket zurückgibt, wird davon ausgegangen, dass der Knoten aufgetreten ist. Bei einem Fehler meldet Keepalived den Knotenfehler und entfernt den ausgefallenen Knoten aus dem Servercluster. Transportschicht (4): Keepalived verwendet die Portverbindungs- und Scantechnologie des TCP-Protokolls in der Transportschicht, um zu bestimmen, ob der Port des Clusterknotens normal ist, z. B. Port 80 des gemeinsamen WEB-Servers. Oder SSH-Dienst-Port 22. Sobald Keepalived erkennt, dass diese Portnummern keine Datenantwort oder Datenrückgabe auf der Transportschicht haben, betrachtet es diese Ports als abnormal und entfernt dann die diesen Ports entsprechenden Knoten zwangsweise aus dem Servercluster.

Anwendungsebene (5): Der Betriebsmodus von Keepalived ist ebenfalls umfassender und komplexer. Benutzer können den Arbeitsmodus von Keepalived anpassen, indem sie beispielsweise ein Programm oder ein Skript schreiben, und Keepalived wird entsprechend ausgeführt Die Parameter des Benutzers erkennen, ob verschiedene Programme oder Dienste normal funktionieren dürfen. Wenn die Erkennungsergebnisse von Keepalived nicht mit den Benutzereinstellungen übereinstimmen, entfernt Keepalived den entsprechenden Server aus dem Servercluster.

Keepalived-Architektur

Keepalived wurde ursprünglich für LVS entwickelt. Da Keepalived die Statuserkennung von Clusterknoten realisieren kann und IPVS die Lastausgleichsfunktion realisieren kann, kann Keepalived problemlos mit Hilfe des Drittanbietermoduls IPVS erstellt werden. Ein Lastausgleichssystem. Das IPVS-Modul in Keepalived ist konfigurierbar. Wenn Sie die Lastausgleichsfunktion benötigen, können Sie die Lastausgleichsfunktion beim Kompilieren von Keepalived aktivieren oder über Kompilierungsparameter deaktivieren.

So funktioniert Keepalived

SchedulerI/OMultiplexer ist ein I/O-Multiplex-Verteilungsplaner, der alle internen Aufgabenanforderungen von Keepalived plant;

Memory Mngt ist ein Speicherverwaltungsmechanismus, und dieses Framework bietet einige gängige Methoden für den Speicherzugriff;

Control Plane ist das Kontrollfeld von keepalived, das Konfigurationsdateien kompilieren und analysieren kann.

Kernkomponenten Dieser Teil besteht hauptsächlich aus 5 Teilen;

  • Watchdog: Es handelt sich um ein äußerst einfaches und sehr effektives Erkennungstool im Bereich der Computerzuverlässigkeit welches Keepalived Checker und VRRP-Prozesse überwacht.

  • Checker: Dies ist die grundlegendste und wichtigste Funktion von Keepalived, die den Betriebsstatus des Servers erkennen und Fehler isolieren kann.

  • VRRP-Stack: Dies ist die später zitierte VRRP-Funktion von keepalived, die die Failover-Funktion im HA-Cluster realisieren kann. Verantwortlich für die FailOver-Umschaltung zwischen Load Balancern;

  • IPVS-Wrapper: Dies ist eine Implementierung der IPVS-Funktion. Das IPVSwarrper-Modul sendet den Kernel-Speicherplatz, an dem die IPVS-Regeln festgelegt werden können, und stellt ihn letztendlich zur Verfügung IPVS-Modul laden.

  • Netlink Reflector: Wird verwendet, um die Einstellung und Umschaltung der virtuellen IP (VIP) während des Hochverfügbarkeits-Cluster-Failovers zu realisieren. Wenn

keepalived ausgeführt wird, werden 3 Prozesse gestartet, nämlich: Kern (Kernprozess), check und vrrp

- Kern: verantwortlich für den Start, die Wartung und das Laden der globalen Konfigurationsdateien des Hauptprozesses

- check: verantwortlich für die Gesundheitsprüfung

- vrrp: wird zur Implementierung des vrrp-Protokolls verwendet

im Vergleich Heartbeat/Corosync usw.

Welche der drei Clusterkomponenten Heartbeat, Corosync und Keepalived sollten wir wählen? Heartbeat und Corosync sind vom gleichen Typ, Heartbeat und Corosync sind überhaupt nicht vom gleichen Typ.

Keepalived verwendet die virtuelle Routing-Redundanzprotokollmethode vrrp; Heartbeat oder Corosync ist eine Hochverfügbarkeitsmethode, die auf Host- oder Netzwerkdiensten basiert. Der Zweck von Keepalived besteht darin, die hohe Verfügbarkeit des Routers zu simulieren oder Corosync soll Service High Availability implementieren.

Im Allgemeinen wird Keepalived verwendet, um eine hohe Front-End-Verfügbarkeit zu erreichen. Zu den häufig verwendeten Kombinationen von Front-End-Hochverfügbarkeit gehören unser gemeinsames LVS+Keepalived, Nginx+Keepalived und HAproxy+Keepalived. Heartbeat oder Corosync werden verwendet, um eine hohe Verfügbarkeit von Diensten zu erreichen. Zu den gängigen Kombinationen gehören Heartbeat v3(Corosync)+Pacemaker+NFS+Httpd, um eine hohe Verfügbarkeit von Webservern zu erreichen, und Heartbeat v3(Corosync)+Pacemaker+NFS+MySQL, um eine hohe Verfügbarkeit zu erreichen von MySQL-Servern.

Zusammenfassend lässt sich sagen, dass Keepalived eine leichte Hochverfügbarkeit implementiert, die im Allgemeinen für die Front-End-Hochverfügbarkeit verwendet wird und keinen gemeinsamen Speicher erfordert. Es wird im Allgemeinen für die Hochverfügbarkeit von zwei Knoten verwendet. Heartbeat (oder Corosync) wird im Allgemeinen für die Hochverfügbarkeit von Diensten verwendet und erfordert gemeinsam genutzten Speicher und wird im Allgemeinen für die Hochverfügbarkeit mehrerer Knoten verwendet.

(empfohlenes Lernen: Linux-Tutorial)

Das obige ist der detaillierte Inhalt vonSo funktioniert Keepalived. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn