

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

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

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

## Installa HAProxy su tutte le istanze
<a name="pacemaker-tutorial-setup2-install-haproxy"></a>

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

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

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

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

1. **Ricarica systemd.** Eseguilo su ogni istanza.

   ```
   sudo systemctl daemon-reload
   ```

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

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

## Collegare la risorsa systemd HAProxy
<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
```

## Crea vincoli di risorse
<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
```

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

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

   ```
   sudo pcs status
   ```

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

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

1. **Riporta il nodo online.**

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