Notfallwiederherstellung mit Umgebungs-Snapshots

Auf dieser Seite wird beschrieben, wie Sie Umgebungssnapshots für die Notfallwiederherstellung verwenden.

Definitionen

In dieser Anleitung werden die folgenden Definitionen verwendet:

  • Notfall : Ein Ereignis, bei dem Managed Airflow oder andere Komponenten, die für den Betrieb Ihrer Umgebung unerlässlich sind, nicht verfügbar sind. Dieses Ereignis erfordert ein Failover zu einer anderen Region und zu anderen Managed Airflow-Umgebungen. Die Ursache eines Notfalls kann natürlich oder von Menschen verursacht sein, einschließlich Ausfallzeiten von Cloud de Confiance by S3NS Regionen und Ausfällen in Ihrer eigenen Infrastruktur.
  • Notfallwiederherstellung (Disaster Recovery, DR): Im Zusammenhang mit Managed Airflow ist dies ein Prozess zur Wiederherstellung des Betriebs der Umgebung nach einem Notfall. Dabei wird die Umgebung möglicherweise in einer anderen Region neu erstellt. Weitere Informationen zur Notfallwiederherstellung finden Sie unter Leitfaden zur Planung der Notfallwiederherstellung.
  • Primäre Umgebung : Eine Managed Airflow-Umgebung, für die Sie eine Notfallwiederherstellungsfunktion aktivieren möchten.
  • Failover-Umgebung : Eine Managed Airflow-Umgebung, die Aktivitäten von der primären Umgebung übernimmt.
  • Warmes Notfallwiederherstellungsszenario : Eine Variante der Notfallwiederherstellung, bei der Sie eine Standby-Failover-Umgebung verwenden, die Sie vor einem Notfall erstellen.
  • Kaltes Notfallwiederherstellungsszenario : Eine Variante der Notfallwiederherstellung, bei der Sie nach einem Notfall eine Failover-Umgebung erstellen.
  • Regionenübergreifende Notfallwiederherstellung : Eine Variante der warmen oder kalten Notfallwiederherstellung, bei der sich die primäre und die Failover-Umgebung in verschiedenen Regionen befinden.

Informationen zum Notfallwiederherstellungsverfahren

Das Notfallwiederherstellungsverfahren löst das Problem, wenn Ihre primäre Umgebung aufgrund einer Katastrophe nicht mehr funktioniert (defekt oder anderweitig nicht zugänglich ist).

Bei diesem Verfahren wird davon ausgegangen, dass Ihre primäre Umgebung nicht vor Ort repariert wird, um den Notfall zu beheben. Stattdessen erstellen Sie parallel eine zweite (Failover-)Umgebung. Diese Umgebung wird anstelle der primären Umgebung verwendet. Später können Sie entscheiden, ob Sie zur primären Umgebung zurückkehren oder die Failover-Umgebung weiter verwenden möchten.

Da bei diesem Verfahren eine Failover-Umgebung verwendet wird, werden Änderungen eingeführt, wenn Sie von der primären Umgebung wechseln. Zu den Änderungen zwischen der primären und der Failover-Umgebung gehören (die Liste ist nicht vollständig):

  • Die Webserver-URL ist anders. Dadurch ändert sich die Adresse der Airflow-UI und des Airflow REST API-Endpunkt.

  • Die Bucket-URL der Umgebung ist anders.

  • Die Konfiguration für Netzwerk- und Zugriffsberechtigungen muss möglicherweise angepasst werden.

Wenn Sie das warme Notfallwiederherstellungsszenario verwenden, kennen Sie die Werte für den Webserver, die Bucket-Adressen der Umgebung und die Netzwerkkonfiguration im Voraus.

Hinweis

  • Die Airflow-Datenbank darf weniger als 20 GB Daten enthalten, um Snapshots zu erstellen.

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss weniger als 100.000 betragen,um Snapshots zu erstellen.

  • Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, müssen Sie sicherstellen, dass Sie ihn gemäß den Airflow-Richtlinien verwenden. Das Übertragen großer Dateien oder einer großen Anzahl von Dateien mit XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann zu Fehlern beim Laden von Snapshots oder beim Upgrade Ihrer Umgebung führen. Erwägen Sie Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.

Vorbereitung – Übersicht

Beide Notfallwiederherstellungsszenarien umfassen die folgenden Vorbereitungsschritte:

  1. Failover-Umgebung erstellen.

    • Im warmen Notfallwiederherstellungsszenario halten Sie diese Umgebung verfügbar.
    • Im kalten Notfallwiederherstellungsszenario erstellen Sie diese Umgebung nur, um Ihr Notfallwiederherstellungsverfahren zu testen. Nachdem Sie die Vorbereitung abgeschlossen haben, löschen Sie diese Umgebung und erstellen sie nach einem Notfall wieder.
  2. Bucket für Snapshots erstellen.

    • Der Bucket muss in der Notfallwiederherstellungsregion verfügbar sein. Bei der regionenübergreifenden Notfallwiederherstellung muss der Snapshot-Bucket entweder multiregional sein oder sich in einer anderen Region als die primäre Umgebung befinden.

    • Prüfen Sie, ob DAGs auf regionale Ressourcen zugreifen können.

  3. Datenbankwartung einrichten.

  4. Geplante Snapshots einrichten.

  5. Notfallwiederherstellungsverfahren testen.

Notfallwiederherstellung – Übersicht

Nach einer Katastrophe:

  1. (Nur kaltes Notfallwiederherstellungsszenario) Failover-Umgebung erstellen.
  2. Wenn möglich, verhindern Sie, dass die primäre Umgebung DAGs ausführt.
  3. Laden Sie einen Snapshot aus dem Snapshot-Bucket in die Failover- Umgebung.
  4. Passen Sie bei Bedarf die Konfiguration der Failover-Umgebung an.
  5. Entscheiden Sie, was mit der primären Umgebung geschehen soll.

Vorbereitungsschritte

Führen Sie die folgenden Schritte aus, um die Notfallwiederherstellung für Ihre Umgebung einzurichten.

Failover-Umgebung erstellen

Erstellen Sie eine Umgebung, die als Failover-Umgebung dient.

Beachten Sie folgende Richtlinien:

  • Ihre primäre und Failover-Umgebung müssen dieselbe Version und denselben Build von Airflow verwenden.

  • Im warmen Notfallwiederherstellungsszenario müssen Sie beide Umgebungen synchron aktualisieren und upgraden. Wenn Sie beispielsweise die primäre Umgebung auf einen späteren Airflow-Build upgraden oder PyPI-Pakete installieren, müssen diese Änderungen auch in Ihrer Failover-Umgebung vorhanden sein.

  • Wir empfehlen, die Failover-Umgebung in einer anderen Region als die primäre Umgebung zu erstellen. Dadurch kann ein breiteres Spektrum möglicher Notfallszenarien abgedeckt werden, z. B. ein Notfall, der sich auf die Verfügbarkeit der gesamten Region auswirkt.

  • Wir empfehlen, Terraform zu verwenden, um primäre und Failover-Umgebungen zu erstellen, damit beide eine konsistente Konfiguration haben. Achten Sie darauf, dass die Terraform-Definitionen für die primäre und die Failover-Umgebung synchronisiert sind.

  • Die Konfiguration der Failover-Umgebung (z. B. Umgebungsgröße, Anzahl der Planer und IAM-Berechtigungen) sollte der Konfiguration der primären Umgebung entsprechen. IAM-Berechtigungen für beide Umgebungen müssen Nutzern und Snapshots angemessenen Zugriff gewähren.

Ressourcenverfügbarkeit prüfen

DAGs können mit externen Ressourcen arbeiten und der Zugriff auf diese Ressourcen kann von der Konfiguration der Umgebung abhängen (z. B. Berechtigungen, die dem Dienstkonto der Umgebung gewährt wurden, Netzwerkkonfiguration oder Projekt). Achten Sie darauf, dass diese Ressourcen für die Failover-Umgebung verfügbar sind.

Eine Umgebung kann über in Airflow gespeicherte Verbindungenmit einigen externen Ressourcen interagieren. Prüfen Sie, ob diese Ressourcen in der Failover-Umgebung im Vergleich zur primären Umgebung angepasst werden müssen.

Storage-Bucket für Snapshots erstellen

Erstellen Sie einen neuen Storage-Bucket für Umgebungssnapshots. Verwenden Sie keine Umgebungs-Buckets für die Notfallwiederherstellung, da die Konfiguration für die Aufbewahrungsrichtlinie und den Lebenszyklus auf Bucket-Ebene angewendet wird.

Achten Sie darauf, dass für diesen Storage-Bucket IAM-Berechtigungen, eine Aufbewahrungsrichtlinie und eine Lebenszykluskonfiguration festgelegt sind, die versehentliches Löschen oder unbefugten Zugriff verhindern. Weitere Informationen zum Konfigurieren eines Buckets für Snapshots finden Sie unter Geplante Snapshots konfigurieren.

Sie haben folgende Möglichkeiten:

  • Bucket in einer anderen Region erstellen
  • Multiregionalen Bucket erstellen

Datenbankwartung einrichten

Halten Sie die Airflow-Datenbank klein und innerhalb des Größenlimits, indem Sie die Datenbankbereinigungeinrichten. Dadurch wird das Speichern und Laden von Snapshots beschleunigt. Die Airflow-Datenbank darf weniger als 20 GB Daten enthalten, um Snapshots zu erstellen.

Geplante Snapshots einrichten

Richten Sie geplante Snapshots ein für die primäre Umgebung.

Snapshots können nur in einer fehlerfreien Umgebung erstellt werden. Sie müssen also vor dem Notfall gespeichert werden.

Weitere Informationen zur Funktionsweise von Snapshots finden Sie unter Umgebungssnapshots speichern und laden. Im Abschnitt Umgebungssnapshot speichern der Dokumentation finden Sie Informationen dazu, wo die gespeicherten Snapshots zu finden sind.

(Optional) Monitoring für geplante Snapshot-Vorgänge einrichten

Bei geplanten Snapshots mit einer Häufigkeit von mindestens einmal alle 12 Stunden können Sie sich mit Cloud Monitoring benachrichtigen lassen, wenn ein Snapshot nicht automatisch erstellt wird.

Bei Zeitplänen mit geringerer Häufigkeit verwenden Sie die Google Cloud CLI, um die Ergebnisse von Snapshot-Vorgängen zu prüfen. Weitere Informationen finden Sie unter Vorgänge zum Speichern von Snapshots prüfen.

  1. Rufen Sie in der Cloud de Confiance Console die Seite Monitoring auf.

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich „Monitoring“ die Option Benachrichtigungen aus.
  3. Wenn Sie keine Benachrichtigungskanäle erstellt haben und Benachrichtigungen erhalten möchten, klicken Sie auf Benachrichtigungskanäle bearbeiten und fügen Sie Benachrichtigungskanäle hinzu. Kehren Sie nach dem Hinzufügen der Kanäle zur Seite Benachrichtigungen zurück.
  4. Klicken Sie auf der Seite Benachrichtigungen auf Richtlinie erstellen.
  5. Maximieren Sie zum Auswählen des Messwerts das Menü Messwert auswählen und gehen Sie dann so vor:
    1. Um das Menü auf relevante Einträge zu beschränken, geben Sie in die Filterleiste Composer Snapshot ein. Wenn nach dem Filtern des Menüs keine Ergebnisse angezeigt werden, deaktivieren Sie die Nur aktive Ressourcen und Messwerte anzeigen Option.
    2. Wählen Sie für den Ressourcentyp die Option Cloud Composer-Umgebung aus.
    3. Wählen Sie als Messwertkategorie die Option Umgebung aus.
    4. Wählen Sie als Messwert die Option Anzahl der Snapshot-Erstellungen aus.
    5. Klicken Sie auf Anwenden.
  6. Klicken Sie auf Filter hinzufügen und fügen Sie mit den Drop-down-Menüs die folgenden Filter hinzu:
    Filter Vergleichsoperator Wert
    Ressourcenlabel > environment_name = Der Name der Umgebung, in der Sie geplante Snapshots überwachen möchten.
    Monitorlabel > result = SUCCEEDED
  7. Legen Sie im Bereich Daten transformieren die folgenden Attribute fest:
    • Wählen Sie für Rollierendes Fenster das Monitoring-Fenster für diese Benachrichtigung aus. Dieser Wert wirkt sich auf die Schwellenwertkonfiguration im nächsten Schritt aus.

      Empfohlener Wert für das Monitoring geplanter Snapshots: 1 Tag.

    • Wählen Sie für Funktion für rollierendes Zeitfenster die Option Delta aus.
  8. Klicken Sie auf Weiter.
  9. Die Einstellungen auf der Seite Benachrichtigungstrigger konfigurieren bestimmen, wann die Benachrichtigung ausgelöst wird. Füllen Sie diese Seite mit den Einstellungen in der folgenden Tabelle aus.
    Feld Wert
    Condition type Threshold
    Alert trigger Any time series violates
    Threshold position Below threshold
    Threshold value Die Anzahl der geplanten Snapshots, die voraussichtlich innerhalb des Zeitraums gespeichert werden der als Rollierendes Fenster für die Benachrichtigung konfiguriert ist.

    Berechnen Sie diesen Wert mit der folgenden Formel:

    (rolling window in hours / schedule frequency in hours) - 1

    Hinweis: Der Abzug von 1 Stunde in der Formel berücksichtigt unterschiedliche Zeiten für den Abschluss von Snapshots. So werden falsch positive Ergebnisse vermieden, wenn der letzte Snapshot während einer Monitoring-Prüfung noch ausgeführt wird.

    Beispiel:
    Wenn Sie das empfohlene rollierende Fenster von 1 Tag verwenden, und die Häufigkeit des Zeitplans einmal alle 2 Stunden beträgt, legen Sie diesen Wert auf 11 fest (gemäß Berechnung: 24 / 2 - 1 = 11).

    Wenn Ihr Zeitplan korrekt ausgeführt wird, sollten Sie innerhalb von 24 Stunden mindestens 11 Snapshots haben. Andernfalls wurde ein Snapshot-Vorgang nicht erfolgreich abgeschlossen und Cloud Monitoring löst diese Benachrichtigung aus.

    Condition name Ihr benutzerdefinierter Name für die Bedingung.
  10. Klicken Sie auf Weiter.
  11. Optional: Klicken Sie auf Benachrichtigungskanäle, um Benachrichtigungen zu Ihrer Benachrichtigungsrichtlinie hinzuzufügen. Wählen Sie im Dialogfeld einen oder mehrere Benachrichtigungskanäle aus dem Menü aus, und klicken Sie dann auf OK.
  12. Optional: Aktualisieren Sie die Dauer bis zur automatischen Schließung von Vorfällen. Dieses Feld bestimmt, wann Monitoring Vorfälle ohne Messwertdaten schließt.
  13. Optional: Klicken Sie auf Dokumentation, und geben Sie alle Informationen an, die in einer Benachrichtigung angezeigt werden sollen.
  14. Klicken Sie auf Benachrichtigungsname, und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  15. Klicken Sie auf Richtlinie erstellen.
Weitere Informationen finden Sie unter Benachrichtigungsrichtlinien.

Notfallwiederherstellungsverfahren testen

Testen Sie Ihr Notfallwiederherstellungsverfahren nach der Einrichtung und dann regelmäßig. So können Sie potenzielle Probleme beheben, die sich auf den eigentlichen Notfallwiederherstellungsprozess auswirken könnten.

Im kalten Notfallwiederherstellungsszenario können Sie die Failover-Umgebung löschen, nachdem Sie das Notfallwiederherstellungsverfahren getestet haben.

Vorgänge zum Speichern von Snapshots prüfen

Mit der Google Cloud CLI können Sie die Liste der Vorgänge zum Speichern von Snapshots abrufen und prüfen, ob Ihre Snapshots für Notfallwiederherstellungsszenarien bereit sind.

Diese Methode ist nützlich, wenn Sie Snapshots seltener als mindestens einmal alle 12 Stunden speichern. Zum Prüfen von Snapshots, die häufiger gespeichert werden, ist es am besten, Cloud Monitoring-Benachrichtigungen zu konfigurieren. Weitere Informationen finden Sie unter Monitoring für geplante Snapshot-Vorgänge einrichten.

gcloud

Alle Snapshot-Vorgänge für eine bestimmte Umgebung auflisten. Die vollständige Befehlsreferenz finden Sie unter gcloud composer operations list.

gcloud composer operations list \
    --locations LOCATION \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND 
    metadata.resource=projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_ID"
    --format yaml

Ersetzen Sie:

  • LOCATIONS durch die Liste der Regions-IDs, in denen sich die Umgebung befindet.
  • PROJECT_ID durch die ID des Projekts, in dem sich die Umgebung befindet.
  • ENVIRONMENT_ID durch die ID der Umgebung, in der Sie Snapshot-Vorgänge prüfen möchten.

Beispiel:

gcloud composer operations list \
    --locations us-central1 \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND 
    metadata.resource=projects/my-project/locations/us-central1/environments/my-environment"
    --format yaml

Nach einer Katastrophe

Führen Sie nach einem Notfall die folgenden Schritte aus, um Ihre primäre Umgebung wiederherzustellen.

(Nur kaltes Notfallwiederherstellungsszenario) Failover-Umgebung erstellen

Folgen Sie der Anleitung im Abschnitt Failover-Umgebung erstellen.

Verhindern, dass die primäre Umgebung DAGs ausführt

Wenn möglich, verhindern Sie, dass die primäre Umgebung DAGs ausführt:

  • Wenn die primäre Umgebung noch zugänglich ist, pausieren Sie alle DAGs.
  • Wenn der Bucket der primären Umgebung zugänglich ist, verschieben Sie alle DAGs aus dem Bucket der Umgebung oder in einen Ordner außerhalb von /dags im Bucket der primären Umgebung.

Snapshot in die Failover-Umgebung laden

Laden Sie einen Snapshot aus der primären Umgebung in die Failover-Umgebung.

Sobald der Snapshot in die Failover-Umgebung geladen wurde, werden Aufgaben geplant und ausgeführt, als ob nach dem Erstellen eines Snapshots nichts von der primären Umgebung ausgeführt worden wäre. Einige dieser Aufgaben wurden jedoch möglicherweise bereits von der primären Umgebung ausgeführt. Die Failover-Umgebung kann nicht erkennen, welche Aufgaben nach dem Erstellen des Snapshots und vor einem Notfall ausgeführt wurden. Daher werden einige Aufgaben möglicherweise zweimal ausgeführt (sowohl in der primären als auch in der Failover-Umgebung). Wir empfehlen, dass alle Aufgaben idempotent sind und dass die geplanten Snapshots alle zwei Stunden erstellt werden.

(Optional) Konfiguration der Failover-Umgebung anpassen

In einigen Fällen kann es sinnvoll sein, die Konfiguration der Failover-Umgebung zu ändern, nachdem Sie den Snapshot der primären Umgebung in sie geladen haben.

In einem kalten Notfallwiederherstellungsszenario müssen Sie beispielsweise möglicherweise eine andere Reihe von Airflow-Umgebungsvariablen in der Failover-Umgebung verwenden. In einem warmen Notfallwiederherstellungsszenario müssen Sie möglicherweise Nutzern in der Airflow-UI Berechtigungen gewähren, damit sie auf die Failover-Umgebung zugreifen können.

Sie können diese Änderungen entweder manuell vornehmen oder ein Shell-Skript mit Befehlen vorbereiten, die die Konfiguration der Failover-Umgebung ändern, indem Sie gcloud composer environment update-Befehle ausführen.

Entscheiden, was mit der primären Umgebung geschehen soll

Einige Notfälle können auftreten, weil die primäre Umgebung nicht erreichbar ist, aber noch funktioniert oder nicht ordnungsgemäß funktioniert. Beispielsweise können Sie aufgrund eines Infrastrukturfehlers nicht über das Netzwerk auf die primäre Umgebung zugreifen. Ein weiteres Beispiel: Die Umgebung funktioniert mit einigen Fehlern oder mit reduzierter Kapazität, aber einige DAGs werden weiterhin ausgeführt.

Wenn die ursprüngliche Umgebung noch ausgeführt wird, können Kosten entstehen, die direkt mit Managed Airflow oder anderen Diensten zusammenhängen, auf die über die DAGs zugegriffen wird, obwohl eine neue Umgebung als Ersatz erstellt wurde. In dieser Umgebung können weiterhin einige DAGs ausgeführt werden. Daher werden einige Vorgänge möglicherweise zweimal ausgeführt: in der primären Umgebung, die noch ausgeführt wird, und in der Failover-Umgebung nach dem Laden des Snapshots.

Wenn die primäre Umgebung vorhanden ist, aber nicht ordnungsgemäß funktioniert

Die primäre Umgebung kann gelöscht werden, wenn alle relevanten Daten wiederhergestellt wurden. Möglicherweise möchten Sie beispielsweise Daten wiederherstellen, die nicht in den Umgebungssnapshots enthalten sind, z. B. die Netzwerkkonfiguration oder Inhalte des Buckets der Umgebung außerhalb der /dags und /plugins Ordner.

Wenn die primäre Umgebung wieder zugänglich und fehlerfrei ist

Wenn die primäre Umgebung nur vorübergehend nicht zugänglich war und wieder zugänglich und fehlerfrei ist, können Sie einen Ansatz auswählen:

  • Failover-Umgebung weiter verwenden
  • Zur primären Umgebung zurückkehren

So verwenden Sie die Failover-Umgebung weiter:

  1. Wenn die primäre Umgebung noch DAGs ausführt, pausieren Sie sie so schnell wie möglich.
  2. Achten Sie darauf, dass alle relevanten Daten wiederhergestellt wurden, und löschen Sie dann die primäre Umgebung.
  3. Wiederholen Sie die Schritte zur Vorbereitung der Notfallwiederherstellung für die Failover-Umgebung, z. B. das Einrichten geplanter Snapshots.

So kehren Sie zur primären Umgebung zurück:

  1. Pausieren Sie alle DAGs in der Failover-Umgebung.
  2. Warten Sie, bis alle DAG-Ausführungen in der Failover-Umgebung abgeschlossen sind, oder beenden Sie sie.
  3. Speichern Sie einen Snapshot der Failover-Umgebung.
  4. Laden Sie diesen Snapshot in die primäre Umgebung.
  5. Deaktivieren Sie die DAGs in der primären Umgebung.
  6. Löschen Sie bei Bedarf die Failover-Umgebung.

Nächste Schritte