View a markdown version of this page

Active/passive bilanciamento del carico - 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 bilanciamento del carico

In questa configurazione, si esegue HAProxy come bilanciatore del carico su un'istanza alla volta. I file di configurazione HAProxy vengono archiviati sullo DRBD-replicated storage in modo che quando Pacemaker esegue il failover su un'istanza di standby, la configurazione sia immediatamente disponibile.

Importante

Completa tutti i passaggi prima di procedere. Prerequisiti e configurazione del cluster

avvertimento

Esegui i seguenti comandi solo sull'istanza principale, se non diversamente specificato.

Installa HAProxy su tutte le istanze

Installa HAProxy e disabilita il servizio in modo che Pacemaker possa gestirlo. Eseguilo su ogni istanza.

sudo apt install -y haproxy sudo systemctl disable haproxy sudo systemctl stop haproxy

Configura il montaggio DRBD per HAProxy

Monta il dispositivo DRBD in una directory per il bilanciamento del carico.

Crea la directory dei punti di montaggio. Eseguila su ogni istanza.

sudo mkdir -p /drbd/loadbalancer/

Monta il dispositivo DRBD sull'istanza principale. Per prima cosa smonta il punto di montaggio precedente dai prerequisiti.

sudo umount /greengrass/v2 sudo mount /dev/drbd0 /drbd/loadbalancer/

Verifica il montaggio con. lsblk Dovresti vederlo drbd0 montato su/drbd/loadbalancer.

Configurare HAProxy

I file di configurazione devono trovarsi nella directory di montaggio DRBD in modo da essere replicati nell'istanza di failover.

  1. Copia la configurazione HAProxy nella directory di montaggio DRBD.

    sudo mkdir -p /drbd/loadbalancer/etc/haproxy/ sudo cp /etc/haproxy/haproxy.cfg /drbd/loadbalancer/etc/haproxy/haproxy.cfg
  2. Modifica il file di unità HAProxy systemd per utilizzare la configurazione dal percorso di montaggio DRBD. Eseguilo su ogni istanza.

    sudo systemctl edit haproxy

    Aggiungi le seguenti righe per aggiornare il percorso del file di configurazione al percorso di montaggio DRBD.

    [Service] Environment="CONFIG=/drbd/loadbalancer/etc/haproxy/haproxy.cfg"
  3. Ricarica systemd. Eseguilo su ogni istanza.

    sudo systemctl daemon-reload

Allega la risorsa DRBD

Smonta il dispositivo DRBD e disattiva DRBD in modo che Pacemaker possa gestirlo. Esegui lo smontaggio sull'istanza principale e su tutte le istanze. drbdadm down

# On the primary instance only sudo umount /drbd/loadbalancer # On all instances sudo drbdadm down greengrass
sudo pcs resource create drbd-greengrass \ ocf:linbit:drbd drbd_resource=greengrass \ op monitor interval=15s role=Promoted \ op monitor interval=30s role=Unpromoted
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

sudo pcs resource create fs_loadbalancer Filesystem \ device="/dev/drbd0" \ directory="/drbd/loadbalancer" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled

Collegare la risorsa systemd HAProxy

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

Crea vincoli di risorse

sudo pcs constraint colocation add haproxy with fs_loadbalancer sudo pcs constraint order fs_loadbalancer then start haproxy sudo pcs constraint colocation add fs_loadbalancer with Promoted drbd-greengrass-clone sudo pcs constraint order promote drbd-greengrass-clone then start fs_loadbalancer

Abilita le risorse ora che i vincoli sono stati impostati.

sudo pcs resource enable fs_loadbalancer sudo pcs resource enable haproxy

Disabilita STONITH per questa configurazione del tutorial.

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.

Verifica il failover

  1. Controlla lo stato iniziale. Verificare che HAProxy sia in esecuzione sull'istanza principale.

    sudo pcs status
  2. Simula il failover. Metti il nodo primario in modalità standby per forzare tutte le risorse a uscire dal nodo primario.

    sudo pcs node standby primary-node-name
  3. Verifica il failover. Nell'istanza di standby, controlla lo stato del cluster. Le risorse DRBD, filesystem e HAProxy dovrebbero ora essere in esecuzione sull'istanza di standby con file di configurazione aggiornati.

    sudo pcs status

    Quando l'istanza fallita viene ripristinata, il servizio di bilanciamento del carico rimane sull'istanza di standby a meno che non si configuri Pacemaker per la migrazione.

  4. Riporta il nodo online.

    sudo pcs node unstandby primary-node-name