

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
<a name="pacemaker-tutorial-setup2"></a>

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](pacemaker-tutorial-prerequisites.md) avant de continuer.

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

## Installez HAProxy sur toutes les instances
<a name="pacemaker-tutorial-setup2-install-haproxy"></a>

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
<a name="pacemaker-tutorial-setup2-drbd-mount"></a>

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 avec`lsblk`. Vous devriez voir `drbd0` monté à`/drbd/loadbalancer`.

## Configurer HAProxy
<a name="pacemaker-tutorial-setup2-configure-haproxy"></a>

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
   ```

1. **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"
   ```

1. **Rechargez systemd.** Exécutez cette opération sur chaque instance.

   ```
   sudo systemctl daemon-reload
   ```

## Joindre la ressource DRBD
<a name="pacemaker-tutorial-setup2-drbd-resource"></a>

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
<a name="pacemaker-tutorial-setup2-fs-resource"></a>

```
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
<a name="pacemaker-tutorial-setup2-haproxy-resource"></a>

```
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
<a name="pacemaker-tutorial-setup2-constraints"></a>

```
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
<a name="pacemaker-tutorial-setup2-failover"></a>

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

   ```
   sudo pcs status
   ```

1. **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}}
   ```

1. **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.

1. **Remettez le nœud en ligne.**

   ```
   sudo pcs node unstandby {{primary-node-name}}
   ```