Manueller Failover

Diese Seite bietet einen Überblick über den manuellen Failover für Memorystore for Redis. Informationen zum Ausführen eines Failovers finden Sie unter Manueller Failover einleiten.

Was ist ein manueller Failover?

Memorystore for Redis-Instanzen der Standardstufe verwenden Replikatknoten, um den Masterknoten zu sichern. Ein normaler Failover tritt auf, wenn der Masterknoten fehlerhaft wird und das Replikat als neuer Master festgelegt wird. Der Unterschied zwischen einem manuellen Failover und einem normalen Failover ist, dass Sie den manuellen Failover selbst einleiten. Weitere Informationen zur Replikationsfunktion von Memorystore for Redis finden Sie unter Hochverfügbarkeit.

Warum wird ein manueller Failover eingeleitet?

Durch das Einleiten eines manuellen Failovers können Sie testen, wie Ihre Anwendung auf einen Failover reagiert. Dieses Wissen kann für einen reibungslosen Failover sorgen, wenn später ein unerwarteter Failover auftritt.

Optionaler Datenschutzmodus

Dies sind die beiden verfügbaren Datenschutzmodi:

  • limited-data-loss-Modus (Standard).
    • Ein manueller Failover wird immer im Modus mit begrenztem Datenverlust ausgeführt, wenn Sie den Modus nicht ändern.
  • force-data-loss-Mode.

Verwenden Sie einen der folgenden Befehle, um den Datenschutzmodus zu ändern:

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=force-data-loss

oder

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=limited-data-loss

Wie funktionieren Datenschutzmodi?

Wenn Sie testen möchten, wie sich Ihre Anwendung in einem echten Failover-Szenario verhält, können Sie den Modus force-data-loss verwenden, da dieser die Bedingungen eines Failovers bei der Notfallwiederherstellung am genauesten darstellt.

Bei einem Failover vom Master zum Replikat können Daten verloren gehen. Durch den Modus limited-data-loss wird der Datenverlust auf ein Minimum reduziert. Vor der Einleitung des Failovers wird überprüft, ob der Unterschied bei der Synchronisierung zwischen Master und Replikat unter 30 MB liegt.

Im Modus force-data-loss wird die Überprüfung der Master-Replikat-Synchronisierung überschrieben. Wenn Sie den Modus force-data-loss verwenden, wenn die Replikat-Synchronisierung mehr als 30 MB hinter dem Master liegt, gehen möglicherweise 30 MB an Daten oder mehr verloren.

Replikationsmetrik für ausstehende Bytes

Die Replikationsmetrik für ausstehende Bytes gibt an, wie viele Bytes das Replikat noch kopieren muss, bevor der Master vollständig gesichert ist. Sie können auf diesen Messwert in der Google Cloud Console auf der Seite mit den Instanzdetails zugreifen. Sie rufen die Seite mit den Instanzendetails auf, indem Sie auf die Instanzen-ID auf der Seite mit der Instanzenliste Ihres Projekts klicken.

Alternativ können Sie den Metrics Explorer der Operations-Suite von Google Cloud für Ihr Projekt aufrufen und nach dem Messwert redis.googlapis.com/replication/offset_diff suchen.

Wann wird ein manueller Failover ausgeführt?

Manuelle Failovers mit dem standardmäßigen limited-data-loss-Schutzmodus sind nur dann erfolgreich, wenn der Messwert Byte für Replikation ausstehend kleiner als 30 MB ist. Wenn Sie ein manuelles Failover mit mehr als 30 MB Byte für Replikation ausstehend ausführen möchten, verwenden Sie den Schutzmodus force-data-loss.

Wenn Sie so viele Daten wie möglich erhalten möchten, müssen Sie die Anwendung vorübergehend anhalten, um nicht in die Redis-Instanz zu schreiben. Warten Sie für die Ausführung des manuellen Failover, bis die Replikationsmetrik für ausstehende Bytes so niedrig ist, wie Sie für angemessen halten.

Mögliche Probleme, die einen manuellen Failover verhindern

  • Das Ausführen eines manuellen Failovers auf einer Basisstufeninstanz funktioniert nicht, da Basisstufeninstanzen keine Replikate aufweisen.

  • Wenn Ihre Redis-Instanz fehlerhaft ist, wird der manuelle Failover verhindert.

  • Wenn für Ihre Instanz Vorgänge ausstehen, die nicht vollständig sind, z. B. Skalieren oder Aktualisieren, wird der manuelle Failover verhindert. Der manuelle Failover ist erst möglich, wenn Ihre Instanz den Status READY hat.

Client-Anwendungsverbindung

Wenn ein Masterknoten zum entsprechenden Failover-Replikat wechselt, werden alle bestehenden Verbindungen zu Memorystore for Redis unterbrochen. Wenn die Anwendung die Verbindung jedoch wiederherstellt, wird sie automatisch über den gleichen Verbindungsstring oder die gleiche IP-Adresse an den neuen Masterknoten weitergeleitet.

Einen manuellen Failover überprüfen

Sie können den Erfolg eines manuellen Failovers mit der Google Cloud Console, der Operations-Suite von Google Cloud oder gcloud überprüfen.

Cloud Console-Überprüfung

Bevor Sie ein manuelles Failover starten, rufen Sie die Memorystore for Redis-Seite mit der Instanzliste auf und klicken Sie auf den Namen Ihrer Instanz.

Sehen Sie sich dann unter Instanzeneigenschaften an, in welchen Zonen sich Ihr Master und Ihr Replikat befinden. Notieren Sie sich die Zonen. Überprüfen Sie diese Seite erneut, wenn Sie Ihren manuellen Failover abgeschlossen haben, und bestätigen Sie, dass der Masterknoten und der Replikatknoten die Zonen gewechselt haben.

Cloud Monitoring-Überprüfung

So rufen Sie die Messwerte für eine überwachte Ressource mit dem Metrics Explorer auf:

  1. Wechseln Sie in der Google Cloud Console zu Monitoring oder verwenden Sie die folgende Schaltfläche:
    Zu Monitoring
  2. Klicken Sie im Navigationsbereich von Monitoring auf Metrics Explorer.
  3. Prüfen Sie, ob der Tab Messwert ausgewählt ist.
  4. Klicken Sie in das Feld mit der Bezeichnung Find resource type and metric (Ressourcentyp und Messwert suchen) und treffen Sie Ihre Auswahl über das Menü oder geben Sie den Namen für die Ressource und den Messwert ein. Verwenden Sie die folgenden Informationen, um die Felder für dieses Textfeld auszufüllen:
    1. Wählen Sie für Ressource Cloud Memorystore Redis aus oder geben Sie es ein.
    2. Wählen Sie für den Messwert die Knotenrolle aus oder geben Sie sie ein.
  5. Mit den Menüs Filter, Gruppieren nach und Aggregation können Sie die Darstellung der Daten ändern. Sie können beispielsweise nach Ressourcen- oder Messwertlabels gruppieren. Weitere Informationen finden Sie unter Messwerte auswählen – Zusätzliche Konfiguration.

Das Cloud Monitoring-Diagramm stellt die Master- und Replikatknoten mit zwei Linien dar. Wenn die Zeile eines Knotens im Diagramm den Wert Null anzeigt, handelt es sich um den Replikatknoten. Wenn die Zeile eines Knotens im Diagramm den Wert Eins anzeigt, handelt es sich um den Masterknoten. Das Diagramm stellt einen Failover dar, da angezeigt wird, wie die Zeilen jeweils zwischen Eins und Null bzw. zwischen Null und Eins wechseln.

gcloud-Überprüfung

Bevor Sie einen manuellen Failover einleiten, überprüfen Sie mit dem folgenden Befehl, in welcher Zone sich Ihr Masterknoten befindet:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Ihr Masterknoten befindet sich in der Zone mit der Bezeichnung currentLocationId. Notieren Sie sich die Zone.

Nachdem Sie ein manuelles Failover abgeschlossen haben, können Sie überprüfen, ob Ihr Masterknoten zu einer neuen Zone gewechselt ist, indem Sie den Befehl gcloud redis instances describe noch einmal ausführen und überprüfen, ob die Zone currentLocationId geändert wurde.

Außerdem informiert Sie das Label locationId über die Zone, in der Sie Ihren Masterknoten ursprünglich bereitgestellt haben. Das Label alternativeLocationId gibt die Zone an, in der das System Ihren Replikatknoten ursprünglich bereitgestellt hat. Bei jedem Failover wechseln Master und Replikat zwischen diesen beiden Zonen. Die mit locationId und alternativeLocationId verknüpften Zonen ändern sich jedoch nicht.