View a markdown version of this page

Active/passive balanceador de carga - AWS IoT Greengrass

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

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

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

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 comlsblk. Você deve ver drbd0 montado em/drbd/loadbalancer.

Configurar o HAProxy

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
  2. 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"
  3. Recarregue o systemd. Execute isso em cada instância.

    sudo systemctl daemon-reload

Anexe o recurso DRBD

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

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

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

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

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

    sudo pcs status
  2. 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
  3. 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.

  4. Coloque o nó novamente on-line.

    sudo pcs node unstandby primary-node-name