

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Nessa configuração, você executa o HAProxy como balanceador de carga em uma instância por vez. Os arquivos de configuração do HAProxy são armazenados no DRBD-replicated armazenamento para que, quando o Pacemaker fizer o failover para uma instância em espera, a configuração fique disponível imediatamente.

**Importante**  
Conclua todas as etapas [Pré-requisitos e configuração do cluster](pacemaker-tutorial-prerequisites.md) antes de continuar.

**Atenção**  
Execute os comandos a seguir somente na instância primária, salvo indicação em contrário.

## Instale o HAProxy em todas as instâncias
<a name="pacemaker-tutorial-setup2-install-haproxy"></a>

Instale o HAProxy e desative o serviço para que o Pacemaker possa gerenciá-lo. Execute isso em cada instância.

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

## Configurar a montagem DRBD para HAProxy
<a name="pacemaker-tutorial-setup2-drbd-mount"></a>

Monte o dispositivo DRBD em um diretório para o balanceador de carga.

Crie o diretório do ponto de montagem. Execute isso em cada instância.

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

Monte o dispositivo DRBD na instância primária. Primeiro, desmonte o ponto de montagem anterior a partir dos pré-requisitos.

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

Verifique o suporte com`lsblk`. Você deve ver `drbd0` montado em`/drbd/loadbalancer`.

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

Os arquivos de configuração devem estar no diretório de montagem do DRBD para que sejam replicados na instância de failover.

1. **Copie a configuração do HAProxy** para o diretório de montagem DRBD.

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

1. **Edite o arquivo da unidade HAProxy systemd** para usar a configuração do caminho de montagem do DRBD. Execute isso em cada instância.

   ```
   sudo systemctl edit haproxy
   ```

   Adicione as linhas a seguir para atualizar o caminho do arquivo de configuração para o caminho de montagem do DRBD.

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

1. **Recarregue o systemd.** Execute isso em cada instância.

   ```
   sudo systemctl daemon-reload
   ```

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

Desmonte o dispositivo DRBD e derrube o DRBD para que o Pacemaker possa gerenciá-lo. Execute a desmontagem na instância primária e `drbdadm down` em todas as instâncias.

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

## Anexar o recurso do sistema de arquivos
<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
```

## Anexe o 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
```

## Crie restrições 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
```

Ative os recursos agora que as restrições estão em vigor.

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

Desative o STONITH para a configuração deste tutorial.

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

**Atenção**  
O STONITH está desativado aqui para simplificar este tutorial. Em um ambiente de produção, você deve habilitar o STONITH e configurar um agente de esgrima (por exemplo, para instâncias do Amazon `fence_aws` EC2) para evitar a divisão cerebral e a corrupção de dados.

## Verifique o failover
<a name="pacemaker-tutorial-setup2-failover"></a>

1. **Verifique o estado inicial.** Verifique se o HAProxy está sendo executado na instância primária.

   ```
   sudo pcs status
   ```

1. **Simule o failover.** Coloque o nó primário no modo de espera para forçar a saída de todos os recursos do nó primário.

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

1. **Verifique o failover.** Na instância em espera, verifique o status do cluster. Os recursos DRBD, sistema de arquivos e HAProxy agora devem estar em execução na instância em espera com arquivos de configuração atualizados.

   ```
   sudo pcs status
   ```

   Quando a instância com falha se recupera, o serviço de balanceador de carga permanece na instância em espera, a menos que você configure o Pacemaker para migrá-la.

1. **Coloque o nó novamente on-line.**

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