View a markdown version of this page

Active/passive balanceador de carga - AWS IoT Greengrass

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

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

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

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

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
  2. 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"
  3. Vuelva a cargar systemd. Ejecute esto en cada instancia.

    sudo systemctl daemon-reload

Adjunte el recurso DRBD

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

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

sudo pcs resource create haproxy systemd:haproxy \ op monitor interval=10s \ op start timeout=60s \ op stop timeout=60s \ --disabled

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

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

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

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

  4. Vuelva a conectar el nodo.

    sudo pcs node unstandby primary-node-name