View a markdown version of this page

Active/passive AWS IoT Greengrass V2 Service nicht zulässig - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Active/passive AWS IoT Greengrass V2 Service nicht zulässig

In diesem Setup werden Sie AWS IoT Greengrass V2 als Systemd-Dienst auf jeweils einer Instanz ausgeführt. Pacemaker verwaltet die DRBD-Replikation, das Dateisystem-Mount und den AWS IoT Greengrass V2 Dienst als geordnete Ressourcen. Wenn die primäre Instanz ausfällt, stuft Pacemaker die DRBD der Standby-Instanz auf die primäre Instanz hoch, hängt das Dateisystem ein und startet. AWS IoT Greengrass V2

Wichtig

Schließen Sie alle Schritte unter ab, bevor Sie fortfahren. Voraussetzungen und Cluster-Setup

Warnung

Führen Sie die folgenden Befehle nur auf der primären Instanz aus, sofern nicht anders angegeben.

Hängen Sie die DRBD-Ressource an

Stellen Sie sicher, dass Pacemaker läuft, bevor Sie fortfahren.

sudo systemctl status pacemaker

Deaktivieren Sie STONITH, bevor Sie Ressourcen erstellen. Ohne konfiguriertes Fencing-Gerät weigert sich Pacemaker, Ressourcen zu starten, wenn STONITH aktiviert ist (Standardeinstellung).

sudo pcs property set stonith-enabled=false
Warnung

STONITH ist hier deaktiviert, um dieses Tutorial zu vereinfachen. In einer Produktionsumgebung müssen Sie STONITH aktivieren und einen Fencing-Agenten konfigurieren (z. B. fence_aws für Amazon EC2 EC2-Instances), um Split-Brain und Datenbeschädigung zu verhindern.

Hängen Sie das DRBD-Gerät auf der primären Instance aus und schalten Sie DRBD auf allen Instances herunter, sodass Pacemaker die vollständige Kontrolle über den DRBD-Lebenszyklus hat.

# On the primary instance only sudo umount /greengrass/v2 # On all instances sudo drbdadm down greengrass

Erstellen Sie die DRBD-Ressource in Pacemaker.

sudo pcs resource create drbd-greengrass \ ocf:linbit:drbd drbd_resource=greengrass \ op monitor interval=15s role=Promoted \ op monitor interval=30s role=Unpromoted

Konfigurieren Sie die Ressource so, dass sie heraufsteigen kann, sodass jeweils nur eine Instanz primär ist. Stellen Sie clone-max die Anzahl der Instanzen in Ihrem Cluster ein.

sudo pcs resource promotable drbd-greengrass \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true

Hängen Sie die Dateisystemressource an

Alle AWS IoT Greengrass V2 Ressourcen sind gespeichert unter/greengrass/v2. Dieser Schritt weist Pacemaker an, das DRBD-Gerät an diesem Pfad auf der beworbenen Instanz zu mounten. Dadurch wird sichergestellt, dass das AWS IoT Greengrass V2 Datenverzeichnis repliziert wird und während des Failovers verfügbar ist.

Erstellen Sie die Dateisystemressource in einem deaktivierten Zustand. Sie werden sie aktivieren, sobald alle Einschränkungen gelten.

sudo pcs resource create fs_greengrass Filesystem \ device="/dev/drbd0" \ directory="/greengrass/v2" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled

Überprüfen Sie die Ressourcen

Stellen Sie sicher, dass die Ressourcen erstellt und an alle Instanzen weitergegeben wurden.

sudo pcs status

Stellen Sie die bereit und hängen Sie sie an AWS IoT Greengrass V2 systemd-Ressource

  1. Bereitstellung AWS IoT Greengrass V2. Da Sie das DRBD-Gerät zuvor aus der Installation genommen haben, aktivieren Sie den Wartungsmodus und hängen Sie es für die Bereitstellung erneut ein:

    # Enable maintenance mode to prevent Pacemaker from interfering sudo pcs property set maintenance-mode=true # Check which node Pacemaker promoted to Primary sudo pcs status | grep drbd-greengrass # On the Promoted node, mount the DRBD device sudo mount /dev/drbd0 /greengrass/v2

    Bereitstellung AWS IoT Greengrass V2 auf der primären Instanz mithilfe der automatischen Bereitstellung. Folgen Sie den Anweisungen unter Installieren der AWSAWS IoTAWS IoT Greengrass V2 Core-Software mit automatischer Ressourcenbereitstellung.

    Stellen Sie sicher, dass AWS IoT Greengrass V2 es im /greengrass/v2 Verzeichnis (dem DRBD-mounted Pfad) installiert ist. Hängen Sie das Gerät nach der Bereitstellung aus und deaktivieren Sie den Wartungsmodus:

    sudo umount /greengrass/v2 sudo pcs property set maintenance-mode=false
  2. Deaktivieren Sie den AWS IoT Greengrass V2 Dienst, damit Pacemaker ihn anstelle von systemd verwalten kann.

    sudo systemctl disable greengrass sudo systemctl stop greengrass
  3. Installieren Sie die erforderlichen Laufzeitvoraussetzungen auf allen Standby-Instanzen. AWS IoT Greengrass V2 erfordert Java und andere Abhängigkeiten, die der automatische Provisioner außerhalb des DRBD-replicated Verzeichnisses installiert. Installieren Sie dieselbe JDK-Version auf jeder Standby-Instanz. Die vollständige Liste der AWS IoT Greengrass V2 Voraussetzungen finden Sie unter Anforderungen.

  4. Erstellen Sie eine Systemd-Unit-Datei auf anderen Instanzen. Kopieren Sie die AWS IoT Greengrass V2 Systemd-Unit-Datei auf die Standby-Instanzen, sodass Pacemaker den Dienst während eines Failovers auf jeder Instanz starten kann.

    # On the primary instance, view the unit file location systemctl show -p FragmentPath greengrass

    Kopieren Sie diese Datei auf jeder anderen Instanz in denselben Pfad. Laden Sie dann Systemd auf jeder Standby-Instanz neu, damit es die neue Unit-Datei erkennt.

    # On each standby instance sudo systemctl daemon-reload
  5. Hängen Sie die AWS IoT Greengrass V2 Ressource an.

    sudo pcs resource create greengrass systemd:greengrass \ op monitor interval=10s \ op start timeout=60s \ op stop timeout=60s \ --disabled

Erstellen Sie Ressourcenbeschränkungen

Erstellen Sie eine Reihenfolge mit Einschränkungen, sodass Pacemaker die Ressourcen während des Failovers in der richtigen Reihenfolge verwaltet.

sudo pcs constraint order promote drbd-greengrass-clone then start fs_greengrass sudo pcs constraint colocation add fs_greengrass with Promoted drbd-greengrass-clone score=INFINITY sudo pcs resource group add greengrass-group fs_greengrass greengrass sudo pcs constraint location greengrass-group prefers instance1=200

Aktivieren Sie die Ressourcen jetzt, da Einschränkungen gelten.

sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass

Überprüfen Sie den endgültigen Status der Ressourcenbeschränkungen.

sudo pcs constraint show

Die Ausgabe sollte die folgenden Einschränkungen enthalten:

  • Standortbeschränkungen — Die greengrass-group Ressourcengruppe bevorzugt die primäre Instanz.

  • Colocation-Einschränkungenfs_greengrass läuft mit der beworbenen drbd-greengrass-clone Version und greengrass läuft mitfs_greengrass.

  • Order Constraints — DRBD wird vor dem Start des Dateisystems hochgestuft, und das Dateisystem wird davor gestartet. AWS IoT Greengrass V2

Überprüfen Sie den Failover

Simulieren Sie einen Failover, um zu überprüfen, ob das Setup funktioniert.

  1. Überprüfen Sie den Ausgangszustand. Stellen Sie sicher, dass AWS IoT Greengrass V2 es auf der primären Instanz läuft.

    sudo pcs status
  2. Simulieren Sie den Ausfall der primären Instanz. Versetzen Sie den Primärknoten in den Standby-Modus, um die Ressourcenmigration auszulösen.

    sudo pcs node standby primary-node-name
  3. Überprüfen Sie den Failover. Überprüfen Sie auf der Standby-Instanz den Clusterstatus. Die DRBD, das Dateisystem und die AWS IoT Greengrass V2 Ressourcen sollten jetzt auf der Standby-Instanz laufen.

    sudo pcs status
  4. Stellen Sie die ausgefallene Instanz wieder her.

    sudo pcs node unstandby primary-node-name

    Wenn der Knoten wieder online ist, tritt er dem Cluster als Standby-Instanz wieder bei. Die Instanz, die während des Failovers heraufgestuft wurde, bleibt die primäre Instanz.

Fehlerbehebung

Wenn Ressourcen in einen ausgefallenen Zustand übergehen, können Sie sie mit dem folgenden Befehl bereinigen und neu starten.

sudo pcs resource cleanup