Wartungsmodus
NCache unterstützt den Wartungsmodus für Partitionsreplikat Topologie, die am häufigsten verwendete Caching-Topologie.
Der Wartungsmodus wurde eingeführt, um das Patchen oder Aktualisieren von Hardware/Software auf Caching-Servern zu ermöglichen. Ein typischer Upgrade-Workflow umfasst das Stoppen jeweils eines Cache-Knotens, das Upgrade des Servers und das Neustarten der darauf befindlichen Caches. Dieses Upgrade-Verfahren vermeidet Ausfallzeiten der Anwendung. Das Stoppen eines Cache-Knotens löst jedoch eine Statusübertragung innerhalb des gesamten Cache-Clusters aus, was zu einer übermäßigen Nutzung von Ressourcen wie Netzwerk und CPU führt.
NCache Der Wartungsmodus behebt dieses Problem, indem er die Zustandsübertragung anhält, wenn ein Knoten vorübergehend zu Wartungszwecken angehalten werden soll. Sobald ein Knoten speziell zu Wartungszwecken angehalten wird, informiert er den laufenden Cache-Cluster, die Statusübertragung für eine bestimmte Zeitspanne anzuhalten. Wenn sich ein Cluster im Wartungsmodus befindet, werden Clientdatenanforderungen für den gestoppten Knoten von seinem Replikatknoten bedient. Sobald der gestoppte Knoten wieder dem Cluster beitritt, überträgt er Daten von seinem Replikatknoten.
So funktioniert der Wartungsmodus
Betrachten Sie einen Cluster aus drei Knoten, wie unten gezeigt. Wenn Knoten 3 zur Wartung markiert ist, wird die Statusübertragung für eine bestimmte Zeitspanne angehalten, während alle Vorgänge von seinem Replikat auf Knoten 1 ausgeführt werden. Während des Wartungszeitraums fungiert das Replikat des Wartungsknotens als dessen aktive Partition. Dies geschieht ohne Eingreifen eines Clients und gewährleistet einen reibungslosen Betrieb des Clients, selbst wenn ein Knoten wegen Wartungsarbeiten angehalten wird.
Zeitüberschreitung und Statusübertragung
Das vom Benutzer konfigurierte Timeout dient als Wartezeit für den Statusübertragungsthread. Dieser Thread wartet darauf, dass der Cluster den Wartungsmodus verlässt, indem er entweder dem Knoten erneut beitritt oder nicht. In diesem Fall gibt es zwei Ergebnisse:
Knoten 3 tritt dem Cluster nicht innerhalb der Zeitüberschreitung wieder bei:
In diesem Fall startet die Statusübertragungsaufgabe zwischen den verbleibenden Knoten (Knoten 1 und Knoten 2) und diese nehmen ihren normalen Zustand wieder ein.
Beachten Sie, dass es in diesem Fall zu Datenverlusten kommen kann, wenn Knoten 2 den Cluster abrupt verlässt, da sein Replikat auf Knoten 3 vorhanden war.
Knoten 3 tritt innerhalb der Zeitüberschreitung wieder dem Cluster bei:
Wenn Knoten 3 innerhalb des Timeout-Zeitraums wieder beitritt, wird die Statusübertragung eingeleitet, um den ursprünglichen Status des Clusters wiederherzustellen. Dieser Staatstransfer besteht nun aus zwei Stufen:
- Knoten 1 (Replikat von Knoten 3) -> Knoten 3 (aktive Partition von Knoten 3)
- Knoten 2 (aktive Partition von Knoten 2) -> Knoten 3 (Replikat von Knoten 2)
Verhalten
Um einen Cluster für die Wartung zu markieren, sind mindestens 2 Knoten erforderlich.
Wenn ein Cluster zur Wartung markiert wurde, kann über das kein Knoten zum Cluster hinzugefügt oder daraus entfernt werden NCache Management Center oder Tools.
Wenn ein Cluster zur Wartung markiert wurde, kann kein anderer Knoten außer dem Knoten gestartet werden, der zur Wartung gestoppt wurde. Nehmen wir an, Knoten 3 wurde bereits gestoppt und Knoten 2 wurde zur Wartung markiert. Sie können nur Knoten 2 starten.
Beim Stoppen/Starten eines Knotens, der nicht zur Wartung gestoppt wurde, wird die Ausnahme „Cluster wird bereits gewartet“ ausgelöst.
Wenn die Statusübertragung bereits im Gange ist, sei es durch einen Knoten-Down oder einen Knoten-Up, können Sie einen Cluster nicht zur Wartung markieren. Die folgende Ausnahme wird ausgelöst: „Cluster ist für Wartung, Statusübertragung oder Cluster-Statusänderung im Prozess nicht verfügbar.“
Benutzer können mithilfe von Zustandsübertragungszählern oder anhand der Cache-Protokolldateien überprüfen, ob sich ein Cluster im Zustandstransfer befindet oder nicht
%NCHOME%/log-files
(Windows) oder\opt\ncache\log-files
(Linux). „Statusübertragung wurde abgeschlossen“ wird in den Protokolldateien protokolliert.Sobald ein Cluster für die Wartung markiert ist, enthalten Cache-Protokolle das Protokoll „Cluster wird unter Wartung des Knotens markiert: [IP]:[Port] für xx:xx:xx {HH:MM:SS).“
Ein Cluster kann den Wartungsmodus in den folgenden Szenarien verlassen:
- Der zur Wartung markierte Knoten startet erneut.
- Es tritt eine Zeitüberschreitung für den Wartungsmodus auf.
- Die Option „Wartungsmodus beenden“ wird über ausgewählt NCache Management Center.
- Ein Knoten verlässt den Cluster abrupt.
Sobald der Cluster den Wartungsmodus verlässt, wird die Statusübertragung eingeleitet.