Edge for Private Cloud v4.18.05
ZooKeeper-Ensembles sind so konzipiert, dass sie funktionieren, ohne Datenverlust, selbst wenn einem oder mehreren ZooKeeper-Knoten. 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. Alle Unterstützte Edge-Topologien für ein Produktionssystem geben an, dass mindestens drei ZooKeeper-Topologien verwendet werden sollen. Knoten.
Verwenden Sie die Attribute ZK_HOSTS
und ZK_CLIENT_HOSTS
in der
Edge-Konfigurationsdatei zur Angabe der ZooKeeper-Knoten. Für die Prüfung
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
Wobei:
ZK_HOSTS
gibt die IP-Adressen der ZooKeeper-Knoten an. Die IP-Adressen müssen auf allen ZooKeeper-Knoten in derselben Reihenfolge aufgelistet werden.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 von diesem verwendet werden Nur Rechenzentrum. Die IP-Adressen müssen auf allen ZooKeeper-Knoten in derselben Reihenfolge aufgelistet werden: im Rechenzentrum.In einer einzelnen Rechenzentrumsinstallation sind dies dieselben Knoten, wie von ZK_HOSTS angegeben. In einer Umgebungen mit mehreren Rechenzentren sollte die Edge-Konfigurationsdatei für jedes Rechenzentrum nur die ZooKeeper-Knoten für dieses Rechenzentrum.
Standardmäßig werden alle ZooKeeper-Knoten als Voter-Knoten festgelegt. Das bedeutet, dass die Knoten
alle an der Wahl des ZooKeeper-Leaders teilnehmen. Sie können den
:observer
-Modifikator mit ZK_HOSTS
, um anzuzeigen, dass
die Notiz ist ein Beobachter-Knoten und kein Wähler. Ein Beobachterknoten ist nicht an
die Wahl des Leaders.
In der Regel geben Sie den Modifikator :observer
an, wenn Sie mehrere Edge-Daten erstellen
oder wenn 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 Rechenzentrum
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
Führungskräfte, 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 festgelegt. Lesevorgänge können zwar von jedem ZooKeeper-Knoten werden, werden alle Schreibanfragen an den Leader weitergeleitet. Beispiel: Eine neue Nachricht Prozessor wird zu Edge hinzugefügt. Diese Informationen werden an den ZooKeeper-Leader gesendet. Alle Follower und replizieren Sie die Daten dann.
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 funktionsfähig sein.
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 Wählerknoten verfügbar ist, funktioniert das ZooKeeper-Ensemble nicht.
In einer Installation mit zwei Rechenzentren:
- Sie haben drei ZooKeeper-Knoten pro Rechenzentrum installiert, also insgesamt sechs Knoten.
- Rechenzentrum 1 hat drei Voterknoten
- Rechenzentrum 2 hat zwei Wählerknoten 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.
Achten Sie darauf, dass genügend Wählerknoten vorhanden sind, damit bei Ausfall eines oder mehrerer Wählerknoten dass das ZooKeeper-Ensemble weiterhin funktionieren kann, was bedeutet, dass noch ein Quorum von Wählerknoten vorhanden ist verfügbar. 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 Voterknoten kann sich jedoch negativ auf die Schreibleistung auswirken, da Operationen erfordern, dass das Quorum sich auf die Leader einigen muss. Die Zeit, die benötigt wird, um die beste Variante zu ermitteln basiert auf der Anzahl der Voterknoten, die zunimmt, je mehr Wählerknoten hinzugefügt werden. Daher möchten Sie nicht, dass alle Knoten zu wählen.
Anstatt Voterknoten hinzuzufügen, können Sie Beobachterknoten hinzufügen. Das Hinzufügen von Beobachterknoten erhöht die Leseleistung des gesamten Systems, ohne den Mehraufwand für die Auswahl einer führenden Person zu erhöhen, Beobachterknoten nicht abstimmen und haben keine Auswirkung auf die Quorumgröße. Wenn also ein Beobachterknoten hat das keinen Einfluss auf die Fähigkeit des Ensembles, eine Führungskraft zu wählen. Den Beobachter verlieren, Knoten können zu einer Verschlechterung der Leseleistung des ZooKeeper-Ensembles führen, da es weniger Knoten für Dienstdatenanfragen verfügbar.
In einem einzelnen Rechenzentrum empfiehlt Apigee, unabhängig davon nicht mehr als fünf Wähler zu haben. Anzahl der Beobachterknoten. In zwei Rechenzentren empfiehlt Apigee, dass Sie keine weiteren Rechenzentren als neun Wähler (fünf in einem Rechenzentrum und vier in dem anderen). Anschließend können Sie beliebig viele je nach Systemanforderungen.
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. Indem Sie dafür sorgen, dass nur ein ZooKeeper-Knoten können Sie sicherstellen, dass immer ein Quorum von Wählerknoten verfügbar ist, Leader.
Wartung in mehrere Rechenzentren
Wenn Sie mit mehreren Rechenzentren arbeiten, denken Sie daran, dass das ZooKeeper-Ensemble keine zwischen Rechenzentren unterscheiden. 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 zur Wartung abschalten, entweder als Wähler oder einen Beobachterknoten. Beispielsweise müssen Sie möglicherweise die Edge-Version auf dem Knoten aktualisieren, könnte die Maschine, die ZooKeeper hostet, fehlschlagen oder der Knoten für andere Netzwerkfehler verursacht.
Wenn es sich bei dem ausgefallenen Knoten um einen Beobachterknoten handelt, die Leistung des ZooKeeper-Ensembles, 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 Wartungsarbeiten erst durchführen, nachdem Sie sichergestellt haben, dass ein ZooKeeper 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 die ohne Datenverlust oder erhebliche Auswirkungen auf die Leistung. Dieses bedeutet, dass Sie an jedem Knoten im Ensemble Wartungen durchführen können, solange er sich auf einem Knoten befindet um jeweils einen Knoten zu erstellen.
Gehen Sie bei der Wartung wie folgt vor, um den Typ eines ZooKeeper-Knoten (Anführer, Wähler oder Beobachter):
- Wenn es nicht auf dem ZooKeeper-Knoten installiert ist, installieren Sie nc:
sudo yum install nc
- Führen Sie den folgenden nc-Befehl auf dem Knoten aus:
echo stat | nc localhost 2181
Wobei 2181 der ZooKeeper-Port ist. Die Ausgabe sollte im Formular angezeigt werden:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0xc00000044 Mode: follower Node count: 653
In der Zeile
Mode
der Ausgabe für die Knoten sollteobserver
stehen.leader
oderfollower
(d. h. ein Wähler, der nicht der Führende ist) abhängig von der Knotenkonfiguration. - Wiederholen Sie die Schritte 1 und 2 auf jedem ZooKeeper-Knoten.
Zusammenfassung
Die beste Möglichkeit zur Wartung eines ZooKeeper-Ensembles besteht darin, die Wartung für einen Knoten pro Knoten . Denk daran:
- Sie müssen während der Wartung ein Quorum von Wählerknoten aufrechterhalten, damit ZooKeeper bleibt funktionsfähig
- Das Ausschalten eines Beobachterknotens hat keinen Einfluss auf das Quorum oder die Fähigkeit, einen Leader auszuwählen
- Das Quorum wird für alle ZooKeeper-Knoten in allen Rechenzentren berechnet.
- Wartung des nächsten Servers fortsetzen, nachdem der vorherige Server betriebsbereit ist
- Mit dem Befehl
nc
den ZooKeeper-Knoten prüfen