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.
-
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 -
Modifica il file di unità HAProxy systemd per utilizzare la configurazione dal percorso di montaggio DRBD. Eseguilo su ogni istanza.
sudo systemctl edit haproxyAggiungi 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" -
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
-
Controlla lo stato iniziale. Verificare che HAProxy sia in esecuzione sull'istanza principale.
sudo pcs status -
Simula il failover. Metti il nodo primario in modalità standby per forzare tutte le risorse a uscire dal nodo primario.
sudo pcs node standbyprimary-node-name -
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 statusQuando 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.
-
Riporta il nodo online.
sudo pcs node unstandbyprimary-node-name