ZooKeeper-Wartung

Edge for Private Cloud Version 4.17.01

ZooKeeper-Ensembles sind so konzipiert, dass sie auch bei Ausfall eines oder mehrerer ZooKeeper-Knoten ohne Datenverlust funktionieren. Diese Ausfallsicherheit kann effektiv genutzt werden, um die Wartung ZooKeeper-Knoten ohne Systemausfallzeit.

Über ZooKeeper und Edge

In Edge enthalten ZooKeeper-Knoten Konfigurationsdaten über den Speicherort und die Konfiguration von die verschiedenen Edge-Komponenten und benachrichtigt die verschiedenen Komponenten über Konfigurationsänderungen. Für alle unterstützten Edge-Topologien für ein Produktionssystem ist die Verwendung von mindestens drei ZooKeeper-Knoten erforderlich.

Verwenden Sie die Eigenschaften ZK_HOSTS und ZK_CLIENT_HOSTS in der Edge-Konfigurationsdatei, um die ZooKeeper-Knoten anzugeben. Beispiel:

ZK_HOSTS="$IP1 $IP2 $IP3" 
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" 

Dabei gilt:

  • ZK_HOSTS: Gibt die IP-Adressen der ZooKeeper-Knoten an. Die IP-Adressen müssen auf allen ZooKeeper-Knoten in derselben Reihenfolge aufgeführt sein.

    Listen Sie in einer Umgebung mit mehreren Rechenzentren alle ZooKeeper-Knoten aus allen Rechenzentren auf.
  • ZK_CLIENT_HOSTS Gibt die IP-Adressen der ZooKeeper-Knoten an, die nur von diesem Rechenzentrum verwendet werden. Die IP-Adressen müssen auf allen ZooKeeper-Knoten im Rechenzentrum in derselben Reihenfolge aufgeführt sein.

    Bei einer einzelnen Data Center-Installation sind dies dieselben Knoten wie in ZK_HOSTS angegeben. In einer Umgebung mit mehreren Rechenzentren sollten in der Edge-Konfigurationsdatei für jedes Rechenzentrum nur die ZooKeeper-Knoten für dieses Rechenzentrum aufgeführt sein.

Standardmäßig werden alle ZooKeeper-Knoten als Abstimmungsknoten bezeichnet. Das bedeutet, dass alle Knoten an der Wahl des ZooKeeper-Leiters teilnehmen. Sie können den „:observer“-Modifikator mit ZK_HOSTS, um anzugeben, dass die Notiz ist ein Beobachter-Knoten und kein Wähler. Ein Beobachterknoten nimmt nicht an der Wahl des Leaders teil.

Sie geben den Modifikator „:observer“ in der Regel an, wenn Sie mehrere Edge-Rechenzentren erstellen oder ein einzelnes Rechenzentrum eine große Anzahl von ZooKeeper-Knoten hat. Beispiel: In einer Edge-Installation mit 12 Hosts und zwei Rechenzentren, ZooKeeper auf Knoten 9 im Rechenzentrum 2 ist die Beobachter:

Anschließend verwenden Sie die folgenden Einstellungen in Ihrer Konfigurationsdatei für Rechenzentrum 1:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

Und für das Rechenzentrum

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

Leiter, Follower, Wähler und Beobachter

In einer ZooKeeper-Installation mit mehreren Knoten wird einer der Knoten als Leader festgelegt. Alle anderen ZooKeeper-Knoten werden als Follower bezeichnet. Lesevorgänge können von jedem ZooKeeper-Knoten ausgeführt werden, alle Schreibanfragen werden jedoch an den führenden Knoten weitergeleitet. Beispiel: Edge wird ein neuer Message Processor hinzugefügt. Diese Informationen werden an den ZooKeeper-Leader gesendet. Alle Follower replizieren dann die Daten.

Zum Zeitpunkt der Edge-Installation legen Sie jeden ZooKeeper-Knoten als Voter oder Beobachter fest. Die Der Leader wird dann von allen ZooKeeper-Knoten des Voters gewählt. Die einzige Voraussetzung für die Wahl eines Leader ist, dass ein Quorum funktionierender ZooKeeper-Voterknoten verfügbar sein muss. A Quorum bedeutet, dass mehr als die Hälfte aller ZooKeeper-Knoten der Wahl in allen Rechenzentren funktioniert.

Wenn kein Quorum von Wählerknoten verfügbar ist, kann kein Leader gewählt werden. In diesem Szenario Der Zookeeper kann keine Anfragen bedienen. Das bedeutet, dass Sie keine Anfrage an das Edge-Management Server verarbeiten, Management API-Anfragen verarbeiten oder sich bei der Edge-Benutzeroberfläche anmelden, bis das Quorum wiederhergestellt ist.

Zum Beispiel in einer einzelnen Rechenzentrumsinstallation:

  • Sie haben drei ZooKeeper-Knoten installiert.
  • Alle ZooKeeper-Knoten sind Wähler
  • Das Quorum besteht aus zwei funktionierenden Wählerknoten.
  • Wenn nur ein Knoten für die Abstimmung verfügbar ist, kann das ZooKeeper-Ensemble nicht funktionieren.

Bei einer Installation mit zwei Rechenzentren:

  • Sie haben drei ZooKeeper-Knoten pro Rechenzentrum installiert, also insgesamt sechs Knoten.
  • Rechenzentrum 1 hat drei Abstimmende Knoten
  • Rechenzentrum 2 hat zwei Knoten mit Stimmrecht und einen Beobachterknoten
  • Die Beschlussfähigkeit basiert auf den fünf Wählern in beiden Rechenzentren und ist daher drei funktionierende Wählerknoten
  • Wenn nur zwei oder weniger Wählerknoten verfügbar sind, kann das ZooKeeper-Ensemble nicht Funktion

Das Hinzufügen von Knoten als Voter oder Beobachter

Aufgrund Ihrer Systemanforderungen müssen Sie möglicherweise zusätzliche ZooKeeper-Knoten zu Ihrem Edge hinzufügen. Installation. Dokumentation zum Hinzufügen von ZooKeeper-Knoten beschreibt, wie Sie in Edge zusätzliche ZooKeeper-Knoten hinzufügen. Beim Hinzufügen von ZooKeeper-Knoten müssen Sie berücksichtigen Sie die Art der Knoten, die hinzugefügt werden sollen: Wähler oder Beobachter.

Sie sollten genügend Voter-Knoten haben, damit das ZooKeeper-Ensemble auch dann funktionieren kann, wenn ein oder mehrere Voter-Knoten ausfallen. Das bedeutet, dass immer ein Quorum von Voter-Knoten verfügbar sein muss. Durch das Hinzufügen von Wählerknoten erhöhen Sie das Quorum, sodass Sie dass mehr Wählerknoten ausgefallen sind.

Das Hinzufügen zusätzlicher Knoten, die abstimmen, kann sich jedoch negativ auf die Schreibleistung auswirken, da für Schreibvorgänge das Quorum für die Auswahl des Leaders erforderlich ist. Die Zeit, die für die Bestimmung des Leaders benötigt wird, hängt von der Anzahl der Abstimmendenknoten ab. Je mehr Abstimmendenknoten hinzugefügt werden, desto länger dauert es. Daher möchten Sie nicht, dass alle Knoten zu wählen.

Anstatt Voterknoten hinzuzufügen, können Sie Beobachterknoten hinzufügen. Durch das Hinzufügen von Beobachterknoten wird die Leseleistung des gesamten Systems erhöht, ohne dass der Overhead für die Wahl eines Leaders steigt. Beobachterknoten stimmen nicht ab und haben keine Auswirkungen auf die Größe des Quorums. Wenn also ein Beobachterknoten ausfällt, hat das keine Auswirkungen auf die Fähigkeit des Ensembles, einen Anführer zu wählen. Wenn jedoch Beobachterknoten ausfallen, kann die Leseleistung des ZooKeeper-Ensembles sinken, da weniger Knoten für die Bearbeitung von Datenanfragen verfügbar sind.

In einem einzelnen Rechenzentrum empfiehlt Apigee, unabhängig von der Anzahl der Beobachterknoten nicht mehr als fünf Abstimmende zu verwenden. In zwei Rechenzentren empfiehlt Apigee, nicht mehr als neun Stimmen zu haben (fünf in einem Rechenzentrum und vier im anderen). Sie können dann so viele Beobachterknoten hinzufügen, wie für Ihre Systemanforderungen erforderlich sind.

Hinweise zur Wartung

Die Wartung von ZooKeeper kann in einem voll funktionsfähigen Ensemble ohne Ausfallzeiten durchgeführt werden, falls es jeweils auf einem einzelnen Knoten ausgeführt. Wenn immer nur ein ZooKeeper-Knoten ausfällt, ist immer ein Quorum an abstimmenden Knoten verfügbar, um einen Leader zu wählen.

Wartung in Mehrere Rechenzentren

Wenn Sie mit mehreren Rechenzentren arbeiten, denken Sie daran, dass das ZooKeeper-Ensemble keine Unterscheidung zwischen Rechenzentren vornimmt. ZooKeeper-Assemblies zeigen alle ZooKeeper-Knoten in allen Rechenzentren als ein Ensemble

Der Standort der Wählerknoten in einem bestimmten Rechenzentrum spielt bei der Durchführung von ZooKeeper keine Rolle. Quorumberechnungen. Einzelne Knoten können über mehrere Rechenzentren hinweg ausfallen, solange ein Quorum im gesamten Ensemble erhalten bleiben, dann funktioniert ZooKeeper weiterhin.

Auswirkungen auf die Wartung

Gelegentlich müssen Sie einen ZooKeeper-Knoten zu Wartungszwecken herunterfahren, entweder einen Knoten mit Stimmrecht oder einen Beobachterknoten. Beispielsweise müssen Sie möglicherweise die Edge-Version auf dem Knoten aktualisieren, der Computer, auf dem ZooKeeper gehostet wird, kann ausfallen oder der Knoten kann aus einem anderen Grund wie einem Netzwerkfehler nicht mehr verfügbar sein.

Wenn der ausgefallene Knoten ein Beobachterknoten ist, ist mit einer leichten Leistungsminderung des ZooKeeper-Ensembles zu rechnen, bis der Knoten wiederhergestellt ist. Wenn der Knoten ein Wähler ist Knoten kann die Funktionsfähigkeit des ZooKeeper-Ensembles durch den Verlust eines Knotens beeinträchtigt werden, der am Prozess zur Wahl des Leaders teilnimmt. Unabhängig davon, aus welchem Grund ist es wichtig, ein Quorum der verfügbaren Wählerknoten aufrechtzuerhalten.

Wartungsverfahren

Sie sollten nur dann Wartungsvorgänge ausführen, wenn Sie sich vergewissert haben, dass ein ZooKeeper-Ensemble funktioniert. Dabei wird vorausgesetzt, dass Beobachterknoten funktionieren Wählerknoten während der Wartung verfügbar sind, um ein Quorum aufrechtzuerhalten.

Wenn diese Bedingungen erfüllt sind, kann ein ZooKeeper-Ensemble beliebiger Größe den Verlust eines einzelnen Knotens jederzeit ohne Datenverlust oder nennenswerte Auswirkungen auf die Leistung tolerieren. Das bedeutet, dass Sie Wartungsarbeiten an jedem Knoten im Ensemble ausführen können, solange es sich um jeweils einen Knoten handelt.

Führen Sie während der Wartung die folgenden Schritte aus, um den Typ eines ZooKeeper-Knotens (Leiter, Wähler oder Beobachter) zu ermitteln:

  1. Wenn es nicht auf dem ZooKeeper-Knoten installiert ist, installieren Sie nc:
    > sudo yum install nc
  2. Führen Sie den folgenden nc-Befehl auf dem Knoten aus:
    > echo stat | nc localhost 2181

    Dabei ist 2181 der ZooKeeper-Port. Die Ausgabe sollte so aussehen:
    Zookeeper-Version: 3.4.5-1392090, erstellt am 30.09.2012 17:52 GMT
    Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    Minimale/durchschnittliche/maximale Latenz: 0/0/0
    Empfangen: 1
    Gesendet: 0
    Verbindungen: 1
    Ausstehend: 0
    Zxid: 0xc00000044
    Modus: regelmäßiger Leser
    Knotenanzahl: 653


    In der Zeile Modus der Ausgabe Für die Knoten sollten Sie observer, leader oder Follower sehen (d. h. einen Wähler, der nicht der Leader) abhängig von der Knotenkonfiguration.

    Hinweis: In einer eigenständigen Installation von Edge mit einem einzigen ZooKeeper-Knoten wird der Der Modus ist auf eigenständig eingestellt.
  3. Wiederholen Sie die Schritte 1 und 2 auf jedem ZooKeeper-Knoten.

Zusammenfassung

Die Wartung eines ZooKeeper-Ensembles sollte am besten Knoten für Knoten durchgeführt werden. Denk daran:

  • Während der Wartung muss ein Quorum von abstimmenden Knoten aufrechterhalten werden, damit das ZooKeeper-Ensemble funktionsfähig bleibt.
  • Das Herunterfahren eines Beobachterknotens hat keine Auswirkungen auf das Quorum oder die Möglichkeit, einen Leiter zu wählen.
  • Das Quorum wird für alle ZooKeeper-Knoten in allen Rechenzentren berechnet.
  • Wartung des nächsten Servers nach Inbetriebnahme des vorherigen Servers durchführen
  • ZooKeeper-Knoten mit dem Befehl „nc“ prüfen