

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Active/passive balanceador de carga
<a name="pacemaker-tutorial-setup2"></a>

En esta configuración, se ejecuta HAProxy como un balanceador de carga en una instancia a la vez. Los archivos de configuración de HAProxy se almacenan en el DRBD-replicated almacenamiento para que, cuando Pacemaker realice una conmutación por error a una instancia en espera, la configuración esté disponible de forma inmediata.

**importante**  
Complete todos los pasos [Requisitos previos y configuración del clúster](pacemaker-tutorial-prerequisites.md) antes de continuar.

**aviso**  
Ejecute los siguientes comandos solo en la instancia principal, a menos que se indique lo contrario.

## Instale HAProxy en todas las instancias
<a name="pacemaker-tutorial-setup2-install-haproxy"></a>

Instale HAProxy y desactive el servicio para que Pacemaker pueda administrarlo. Ejecute esto en cada instancia.

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

## Configure el montaje DRBD para HAProxy
<a name="pacemaker-tutorial-setup2-drbd-mount"></a>

Monte el dispositivo DRBD en un directorio para el balanceador de carga.

Cree el directorio de puntos de montaje. Ejecute esto en cada instancia.

```
sudo mkdir -p /drbd/loadbalancer/
```

Monte el dispositivo DRBD en la instancia principal. Primero, desmonte el punto de montaje anterior de los requisitos previos.

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

Compruebe el montaje con. `lsblk` Deberías verlo `drbd0` montado en`/drbd/loadbalancer`.

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

Los archivos de configuración deben estar en el directorio de montaje del DRBD para que se repliquen en la instancia de conmutación por error.

1. **Copie la configuración de HAProxy** en el directorio de montaje del DRBD.

   ```
   sudo mkdir -p /drbd/loadbalancer/etc/haproxy/
   sudo cp /etc/haproxy/haproxy.cfg /drbd/loadbalancer/etc/haproxy/haproxy.cfg
   ```

1. **Edite el archivo de la unidad systemd de HAProxy** para utilizar la configuración de la ruta de montaje del DRBD. Ejecute esto en cada instancia.

   ```
   sudo systemctl edit haproxy
   ```

   Agregue las siguientes líneas para actualizar la ruta del archivo de configuración a la ruta de montaje del DRBD.

   ```
   [Service]
   Environment="CONFIG=/drbd/loadbalancer/etc/haproxy/haproxy.cfg"
   ```

1. **Vuelva a cargar systemd.** Ejecute esto en cada instancia.

   ```
   sudo systemctl daemon-reload
   ```

## Adjunte el recurso DRBD
<a name="pacemaker-tutorial-setup2-drbd-resource"></a>

Desmonte el dispositivo DRBD y baje el DRBD para que Pacemaker pueda gestionarlo. Ejecute el desmontaje en la instancia principal y en todas las instancias. `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
```

## Adjunta el recurso del sistema de archivos
<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
```

## Adjunte el recurso 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
```

## Cree restricciones de recursos
<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
```

Habilite los recursos ahora que existen las restricciones.

```
sudo pcs resource enable fs_loadbalancer
sudo pcs resource enable haproxy
```

Desactive STONITH para la configuración de este tutorial.

```
sudo pcs property set stonith-enabled=false
```

**aviso**  
STONITH está deshabilitado aquí para simplificar este tutorial. En un entorno de producción, debe habilitar STONITH y configurar un agente de control (por ejemplo, para las instancias de Amazon EC2) `fence_aws` para evitar la división de cerebros y la corrupción de los datos.

## Verifique la conmutación por error
<a name="pacemaker-tutorial-setup2-failover"></a>

1. **Compruebe el estado inicial.** Compruebe que HAProxy se esté ejecutando en la instancia principal.

   ```
   sudo pcs status
   ```

1. **Simule la conmutación por error.** Coloque el nodo principal en modo de espera para forzar el cierre de todos los recursos del nodo principal.

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

1. **Compruebe la conmutación por error.** En la instancia en espera, compruebe el estado del clúster. Los recursos de DRBD, sistema de archivos y HAProxy deberían ejecutarse ahora en la instancia en espera con los archivos de configuración actualizados.

   ```
   sudo pcs status
   ```

   Cuando la instancia fallida se recupera, el servicio de equilibrador de carga permanece en la instancia en espera, a menos que configure Pacemaker para que la migre.

1. **Vuelva a conectar el nodo.**

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