GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von Keepalived zum Verwalten eines einfachen Failover in Clustern

Wenn Sie den Begriff „Hochverfügbarkeit“ hören, denken Sie vielleicht an große, komplexe Umgebungen mit geheimnisvollen Technologien, die für den durchschnittlichen Systemadministrator unerreichbar sind. Aber grundlegende Hochverfügbarkeit muss nicht kompliziert sein:In dieser Serie erfahren Sie, wie Sie grundlegende, hochverfügbare Dienste mit Keepalived implementieren . Ich werde Sie durch einfache Failover-Situationen sowie eine komplexere Konfiguration führen, die verwendet wird, um auf externe Ereignisse zu reagieren und Failover auszulösen. Zuerst beginnen wir mit den Grundlagen von Keepalived und das Virtual Router Redundancy Protocol (VRRP).

Dieser Artikel ist der erste einer Reihe von drei Artikeln, die alles von der grundlegenden Einrichtung bis hin zu fortgeschrittenen Linux-HA-Konzepten abdecken.

Keepalived und VRRP-Grundlagen

Netzwerksymbole in den Diagrammen verfügbar über VRT Network Equipment Extension, CC BY-SA 3.0.

Wenn Sie einige der Artikel zum Aktivieren von Sysadmin-Netzwerken gelesen haben, wissen Sie, dass alle Systemadministratoren von einem soliden Verständnis der Netzwerkgrundlagen profitieren können. Kenntnis von Keepalived ist nicht anders. Das Protokoll, das dem HA-Failover zugrunde liegt, ist das Virtual Router Redundancy Protocol (VRRP) und Keepalived bietet sowohl eine Version 2 als auch eine Version 3 Implementierung dieses Protokolls.

Es mag seltsam klingen, dass wir ein Protokoll verwenden, das für Router auf unseren Servern entwickelt wurde. Es stellt sich heraus, dass die gleiche Netzwerktechnologie, die zum Bereitstellen von Redundanz für Netzwerkgeräte verwendet wird, auch für Redundanz in Serverumgebungen sorgen kann. Router werden häufig paarweise bereitgestellt, wobei ein Router aktiv und ein anderer im Standby-Modus ist und einsatzbereit ist, falls der aktive Router ausfällt. Dieselben Konzepte können auf Server angewendet werden.

VRRP verwendet das Konzept einer virtuellen IP-Adresse (VIP). Ein oder mehrere Hosts (Router, Server usw.) nehmen an einer Wahl teil, um den Host zu bestimmen, der diese VIP steuert. Nur ein Host (der Master) steuert das VIP gleichzeitig. Wenn der Master ausfällt, VRRP bietet Mechanismen zum Erkennen dieses Fehlers und zum schnellen Failover auf einen Standby-Host. In der obigen Topologie ist server1 der Master und für die IP-Adresse 192.168.122.200 verantwortlich. Fällt Server1 aus, übernimmt Server2 diese IP.

Beachten Sie auch, dass Keepalived bietet mehr als nur ein VRRP Implementierung. Keepalived hat auch die Möglichkeit, virtuelle Linux-IP-Server für den Lastausgleich zu konfigurieren. Das Konfigurieren von IPVS würde den Rahmen dieser Serie sprengen, aber es ist gut zu wissen, dass Sie Keepalived verwenden können um einen redundanten All-in-One-Load-Balancer für Ihre Umgebung zu konfigurieren.

VRRP-Protokollbetrieb

VRRP Das Verhalten von wird durch RFC 3768 (Version 2) und RFC 5798 (Version 3) spezifiziert. Ich werde Version 2 in dieser Artikelserie verwenden. Obwohl die Überprüfung des RFC der beste Weg ist, um das Verhalten des Protokolls vollständig zu verstehen, müssen Sie kein Experte sein, um mit der Verwendung von Keepalived zu beginnen 's-Implementierung in Ihrer Umgebung. Allerdings Grundkenntnisse von VRRP Das Verhalten von wird Sie besser in die Lage versetzen, es in Ihrer Umgebung zu betreiben und Fehler zu beheben.

Der erste Schritt in VRRP Die Operation von ist die Wahl eines Masters, um zu bestimmen, welcher Server (oder Router in der Protokollspezifikation) die gemeinsam genutzte IP-Adresse halten wird. VRRP Server werden mit einem Prioritätswert konfiguriert, den man sich wie eine Gewichtung vorstellen kann. Der Server mit der höchsten Priorität wird der Besitzer eines VRRP sein die Anschrift. Die Spezifikation gibt an, dass die Priorität des Masters 255 sein sollte , wobei alle Sicherungsserver einen Wert kleiner als 255 haben . In der Praxis eine Priorität von 255 ist nicht unbedingt erforderlich, da das Protokoll den Server mit der höchsten Priorität auswählt, auch wenn es nicht 255. ist

Sobald ein Master eingerichtet ist, warten alle anderen Server auf periodische Nachrichten, die vom Master gesendet werden, um anzuzeigen, dass er noch am Leben ist. Der Master versendet diese Advertisements in regelmäßigen Abständen. Solange der Master am Leben ist, bedient er den Verkehr für den VIP und sendet Werbung. Wenn der Master aus irgendeinem Grund offline geht, übernimmt der Backup-Server mit der höchsten Priorität. In ähnlicher Weise kann eine Funktion namens Preemption jedem Server mit höherer Priorität ermöglichen, automatisch Master zu werden, wenn er online geht.

Wenn ein Master zum ersten Mal online geht und eine IP-Adresse übernimmt, sendet er ein Gratuitous ARP. Diese Nachricht informiert andere Server im Netzwerk über die mit dem VIP verknüpfte MAC-Adresse, sodass sie ihren Datenverkehr korrekt auf Schicht 2 adressieren können. Außerdem beschleunigt sie das VIP-Failover:Hosts müssen nicht warten, bis ihre ARP-Timer abgelaufen sind, und können dies tun aktualisieren Sie einfach ihre ARP-Tabellen mit der korrekten MAC-Adresse für den Host, dem die VIP gehört.

Paketformat

Sich mit den theoretischen Aspekten des Betriebs eines Protokolls zu befassen, kann ein bisschen langweilig sein, aber es ist entscheidend, um zu verstehen, wie eine Technologie funktioniert (und um sie zu beheben, wenn sie kaputt geht). Schaut man sich die Paketstruktur eines VRRP an Werbung mit Wireshark werden einige Dinge klarer.

Zunächst werden Sie feststellen, dass sowohl die Ethernet- als auch die IP-Zieladressen multicast sind Adressen. Multicast-Datenverkehr wird, wie der Name schon sagt, an mehrere Hosts in einem Netzwerk gesendet, die auf diese Multicast-Adresse „lauschen“. Die meisten Netzwerke vermeiden eine komplexe Multicast-Konfiguration, also den Multicast-Verkehr für VRRP wird zu Broadcast-Traffic im lokalen Netzwerksegment und geht an alle Hosts.

Sie können auch diesen VRRP sehen ist weder TCP noch UDP. VRRP verwendet für seinen Betrieb die IP-Protokollnummer 112. Die Kenntnis dieser Protokollnummer kann wichtig sein, da Sie möglicherweise Ihre Host-Firewall so konfigurieren müssen, dass dieser Datenverkehr von VRRP zugelassen wird Server in Ihrer Umgebung.

Sobald Sie anfangen, sich den VRRP anzusehen Abschnitt des Pakets, werden Sie feststellen, dass es alle Informationen enthält, die benötigt werden, um einen Master zu wählen und andere Server über den aktuellen Master zu informieren:

  • Virtual Router ID (VRID) ist eine eindeutige Kennung für ein VRRP Instanz und ihre IP-Adressen (es kann mehr als eine geben) in einem Netzwerk. Sie sollten vermeiden, VRIDs im selben LAN wiederzuverwenden, aber sie können sicher in verschiedenen Layer-2-Netzwerken wiederverwendet werden.
  • Priorität ist die Priorität für den Host, der die Ankündigung sendet. Sobald ein Master gewählt ist, ist dies die definierte Priorität des Masters. Zur strikten Einhaltung der Spezifikation sollte 255 verwendet werden für die Priorität des Masters, aber viele Konfigurationen wählen einen anderen Wert.
  • Auth Type und Authentication String enthalten ein einfaches Textpasswort, um Mitglieder des VRRP zu authentifizieren Gruppe miteinander.
  • Advertisement Interval gibt an, wie oft Werbung vom Master versendet wird. In diesem Fall sendet der Master jede Sekunde eine Anzeige.
  • IP-Adresse enthält eine oder mehrere IP-Adressen, für die der Master verantwortlich ist. Während diese Serie nur das Failover einer einzelnen IP-Adresse abdeckt, ist es möglich, VRRP zu haben mehrere IPs verwalten.

Schlussfolgerung

Dieser Artikel führte Sie durch das grundlegende Protokoll, das Keepalived zugrunde liegt , eine Softwareimplementierung von VRRP auf Linux. Während die Überprüfung der Protokollspezifikationen langweilig erscheinen mag, ist es wichtig, die in Ihrer Umgebung arbeitenden Netzwerkprotokolle zu verstehen, damit Sie sie effektiv konfigurieren und Fehler beheben können. Im nächsten Artikel erfahren Sie, wie Sie Keepalived installieren und konfigurieren .

[ Möchten Sie mehr über die Linux-Systemadministration erfahren? Erwägen Sie die Teilnahme an einem Red Hat Systemadministrationskurs. ]


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. Verwenden von at für Cron-Jobs zur einmaligen Verwendung in Linux

  3. Verwenden von Variablen in SQLCMD für Linux

  4. Nutze ich virtio für meinen KVM-Gast?

  5. Verhindern, dass der VRRP-Master zum Master wird, nachdem er fehlgeschlagen ist

Verwenden von ifstat für Linux-Netzwerkstatistiken

Tipps zur Verwendung von tmux

Tipps zur Verwendung des Bildschirms

Skanlite – Ein einfaches Bildscan-Tool für Linux

Verwalten von Knotenanwendungen mit PM2

Verwenden von Ajenti beim Verwalten von Linux-Servern