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
-
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/v2Bereitstellung 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/v2Verzeichnis (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 -
Deaktivieren Sie den AWS IoT Greengrass V2 Dienst, damit Pacemaker ihn anstelle von systemd verwalten kann.
sudo systemctl disable greengrass sudo systemctl stop greengrass -
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.
-
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 greengrassKopieren 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 -
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 prefersinstance1=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-groupRessourcengruppe bevorzugt die primäre Instanz. -
Colocation-Einschränkungen —
fs_greengrassläuft mit der beworbenendrbd-greengrass-cloneVersion undgreengrasslä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.
-
Überprüfen Sie den Ausgangszustand. Stellen Sie sicher, dass AWS IoT Greengrass V2 es auf der primären Instanz läuft.
sudo pcs status -
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 standbyprimary-node-name -
Ü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 -
Stellen Sie die ausgefallene Instanz wieder her.
sudo pcs node unstandbyprimary-node-nameWenn 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