View a markdown version of this page

Active/passive AWS IoT Greengrass V2 service - AWS IoT Greengrass

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

  1. 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/v2

    Esegui 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/v2 directory (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
  2. 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
  3. 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.

  4. 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 greengrass

    Copia 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
  5. 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 prefers instance1=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-group risorse preferisce l'istanza principale.

  • Vincoli di colocation: viene eseguito con il programma promosso e fs_greengrass viene eseguito con. drbd-greengrass-clone greengrass fs_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.

  1. Controllate lo stato iniziale. Verifica che AWS IoT Greengrass V2 sia in esecuzione sull'istanza principale.

    sudo pcs status
  2. Simula l'errore dell'istanza primaria. Metti il nodo primario in modalità standby per attivare la migrazione delle risorse.

    sudo pcs node standby primary-node-name
  3. 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
  4. Recupera l'istanza fallita.

    sudo pcs node unstandby primary-node-name

    Quando 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