View a markdown version of this page

Active/passive équilibreur de charge - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Active/passive équilibreur de charge

Dans cette configuration, vous exécutez HAProxy en tant qu'équilibreur de charge sur une instance à la fois. Les fichiers de configuration HAProxy sont DRBD-replicated stockés de sorte que lorsque Pacemaker bascule vers une instance de secours, la configuration est immédiatement disponible.

Important

Effectuez toutes les étapes Conditions préalables et configuration du cluster avant de continuer.

Avertissement

Exécutez les commandes suivantes uniquement sur l'instance principale, sauf indication contraire.

Installez HAProxy sur toutes les instances

Installez HAProxy et désactivez le service afin que Pacemaker puisse le gérer. Exécutez cette opération sur chaque instance.

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

Configurer le montage DRBD pour HAProxy

Montez le périphérique DRBD dans un répertoire pour l'équilibreur de charge.

Créez le répertoire des points de montage. Exécutez cette opération sur chaque instance.

sudo mkdir -p /drbd/loadbalancer/

Montez le périphérique DRBD sur l'instance principale. Démontez d'abord le point de montage précédent par rapport aux prérequis.

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

Vérifiez le support aveclsblk. Vous devriez voir drbd0 monté à/drbd/loadbalancer.

Configurer HAProxy

Les fichiers de configuration doivent se trouver dans le répertoire de montage du DRBD afin d'être répliqués sur l'instance de basculement.

  1. Copiez la configuration HAProxy dans le répertoire de montage DRBD.

    sudo mkdir -p /drbd/loadbalancer/etc/haproxy/ sudo cp /etc/haproxy/haproxy.cfg /drbd/loadbalancer/etc/haproxy/haproxy.cfg
  2. Modifiez le fichier d'unité HAProxy systemd pour utiliser la configuration depuis le chemin de montage DRBD. Exécutez cette opération sur chaque instance.

    sudo systemctl edit haproxy

    Ajoutez les lignes suivantes pour mettre à jour le chemin du fichier de configuration vers le chemin de montage DRBD.

    [Service] Environment="CONFIG=/drbd/loadbalancer/etc/haproxy/haproxy.cfg"
  3. Rechargez systemd. Exécutez cette opération sur chaque instance.

    sudo systemctl daemon-reload

Joindre la ressource DRBD

Démontez l'appareil DRBD et abaissez le DRBD pour que Pacemaker puisse le gérer. Exécutez le démontage sur l'instance principale et drbdadm down sur toutes les instances.

# 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

Joindre la ressource du système de fichiers

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

Joindre la ressource HAProxy systemd

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

Créer des contraintes en matière de ressources

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

Activez les ressources maintenant que les contraintes sont en place.

sudo pcs resource enable fs_loadbalancer sudo pcs resource enable haproxy

Désactivez STONITH pour la configuration de ce didacticiel.

sudo pcs property set stonith-enabled=false
Avertissement

STONITH est désactivé ici pour simplifier ce didacticiel. Dans un environnement de production, vous devez activer STONITH et configurer un agent de clôture (par exemple, fence_aws pour les instances Amazon EC2) afin d'empêcher le split brain et la corruption des données.

Vérifier le basculement

  1. Vérifiez l'état initial. Vérifiez que HAProxy est en cours d'exécution sur l'instance principale.

    sudo pcs status
  2. Simulez le basculement. Mettez le nœud principal en mode veille pour forcer toutes les ressources à quitter le nœud principal.

    sudo pcs node standby primary-node-name
  3. Vérifiez le basculement. Sur l'instance de secours, vérifiez l'état du cluster. Les ressources DRBD, système de fichiers et HAProxy devraient désormais s'exécuter sur l'instance de secours avec des fichiers de configuration à jour.

    sudo pcs status

    Lorsque l'instance défaillante est rétablie, le service d'équilibrage de charge reste sur l'instance de secours, sauf si vous configurez Pacemaker pour la migrer.

  4. Remettez le nœud en ligne.

    sudo pcs node unstandby primary-node-name