Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Active/passive AWS IoT Greengrass V2 service
In questa configurazione, viene eseguito AWS IoT Greengrass V2 come servizio systemd su un'istanza alla volta. Pacemaker gestisce la replica DRBD, il montaggio del file system e il servizio come risorse ordinate. AWS IoT Greengrass V2 Se l'istanza primaria fallisce, Pacemaker promuove il DRBD dell'istanza di standby a principale, monta il file system e si avvia. AWS IoT Greengrass V2
Importante
Prerequisiti e configurazione del clusterCompleta tutti i passaggi prima di procedere.
avvertimento
Esegui i seguenti comandi solo sull'istanza principale, se non diversamente specificato.
Allega la risorsa DRBD
Verificate che Pacemaker sia in funzione prima di procedere.
sudo systemctl status pacemaker
Disabilita STONITH prima di creare qualsiasi risorsa. Senza un dispositivo di recinzione configurato, Pacemaker rifiuterà di avviare le risorse se STONITH è abilitato (impostazione predefinita).
sudo pcs property set stonith-enabled=false
avvertimento
STONITH è disabilitato qui per semplificare questo tutorial. In un ambiente di produzione, è necessario abilitare STONITH e configurare un agente di fencing (ad esempio, per le istanze Amazon EC2) fence_aws per prevenire lo split-brain e il danneggiamento dei dati.
Smonta il dispositivo DRBD sull'istanza principale e disattiva DRBD su tutte le istanze in modo che Pacemaker abbia un controllo completo del ciclo di vita DRBD.
# On the primary instance only sudo umount /greengrass/v2 # On all instances sudo drbdadm down greengrass
Crea la risorsa DRBD 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
Configura la risorsa come promuovibile in modo che solo un'istanza sia principale alla volta. Imposta clone-max il numero di istanze nel cluster.
sudo pcs resource promotable drbd-greengrass \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
Allega la risorsa del filesystem
Tutte le AWS IoT Greengrass V2 risorse sono archiviate in. /greengrass/v2 Questo passaggio indica a Pacemaker di montare il dispositivo DRBD in quel percorso sull'istanza promossa. Ciò garantisce che la directory AWS IoT Greengrass V2 dei dati sia replicata e disponibile durante il failover.
Crea la risorsa del filesystem in uno stato disabilitato. La abiliterai dopo che tutti i vincoli saranno stati impostati.
sudo pcs resource create fs_greengrass Filesystem \ device="/dev/drbd0" \ directory="/greengrass/v2" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled
Verifica le risorse
Verifica che le risorse vengano create e propagate a tutte le istanze.
sudo pcs status
Fornisci e allega il AWS IoT Greengrass V2 risorsa systemd
-
Fornitura AWS IoT Greengrass V2. Poiché hai smontato il dispositivo DRBD in precedenza, abilita la modalità di manutenzione e rimontalo per il provisioning:
# 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/v2Esegui il provisioning AWS IoT Greengrass V2 sull'istanza principale utilizzando il provisioning automatico. Segui le istruzioni riportate in Installa il software AWSAWS IoTAWS IoT Greengrass V2 Core con il provisioning automatico delle risorse.
Assicuratevi che AWS IoT Greengrass V2 sia installato nella
/greengrass/v2directory (il DRBD-mounted percorso). Dopo il provisioning, smonta il dispositivo e disabilita la modalità di manutenzione:sudo umount /greengrass/v2 sudo pcs property set maintenance-mode=false -
Disabilita il AWS IoT Greengrass V2 servizio in modo che Pacemaker possa gestirlo al posto di systemd.
sudo systemctl disable greengrass sudo systemctl stop greengrass -
Installa i prerequisiti di runtime su tutte le istanze di standby. AWS IoT Greengrass V2 richiede Java e altre dipendenze che il provisioner automatico installa all'esterno della directory. DRBD-replicated Installa la stessa versione di JDK su ogni istanza di standby. Consulta AWS IoT Greengrass V2 i requisiti per l'elenco completo dei prerequisiti.
-
Crea il file di unità systemd su altre istanze. Copia il file di unità AWS IoT Greengrass V2 systemd nelle istanze di standby in modo che Pacemaker possa avviare il servizio su qualsiasi istanza durante il failover.
# On the primary instance, view the unit file location systemctl show -p FragmentPath greengrassCopia quel file nello stesso percorso su ogni altra istanza. Quindi ricaricate systemd su ogni istanza di standby in modo che riconosca il nuovo file di unità.
# On each standby instance sudo systemctl daemon-reload -
Allega la risorsa. AWS IoT Greengrass V2
sudo pcs resource create greengrass systemd:greengrass \ op monitor interval=10s \ op start timeout=60s \ op stop timeout=60s \ --disabled
Crea vincoli di risorse
Crea un ordinamento dei vincoli in modo che Pacemaker gestisca le risorse nell'ordine corretto durante il failover.
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
Abilita le risorse ora che sono stati impostati i vincoli.
sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass
Verifica lo stato finale dei vincoli relativi alle risorse.
sudo pcs constraint show
L'output dovrebbe mostrare i seguenti vincoli:
-
Vincoli di posizione: il gruppo di
greengrass-grouprisorse preferisce l'istanza principale. -
Vincoli di colocation: viene eseguito con il programma promosso e
fs_greengrassviene eseguito con.drbd-greengrass-clonegreengrassfs_greengrass -
Vincoli d'ordine: DRBD viene promosso prima dell'avvio del filesystem e il filesystem prima. AWS IoT Greengrass V2
Verifica il failover
Simula un failover per verificare che la configurazione funzioni.
-
Controllate lo stato iniziale. Verifica che AWS IoT Greengrass V2 sia in esecuzione sull'istanza principale.
sudo pcs status -
Simula l'errore dell'istanza primaria. Metti il nodo primario in modalità standby per attivare la migrazione delle risorse.
sudo pcs node standbyprimary-node-name -
Verifica il failover. Nell'istanza di standby, controlla lo stato del cluster. Il DRBD, il filesystem e AWS IoT Greengrass V2 le risorse dovrebbero ora essere in esecuzione sull'istanza di standby.
sudo pcs status -
Recupera l'istanza fallita.
sudo pcs node unstandbyprimary-node-nameQuando il nodo viene riportato online, si ricongiunge al cluster come istanza di standby. L'istanza promossa durante il failover rimane l'istanza principale.
Risoluzione dei problemi
Se le risorse entrano in uno stato di errore, è possibile pulirle e riavviarle con il seguente comando.
sudo pcs resource cleanup