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.
-
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 -
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 haproxyAgregue 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" -
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
-
Compruebe el estado inicial. Compruebe que HAProxy se esté ejecutando en la instancia principal.
sudo pcs status -
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 standbyprimary-node-name -
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 statusCuando 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.
-
Vuelva a conectar el nodo.
sudo pcs node unstandbyprimary-node-name