View a markdown version of this page

Active/passive AWS IoT Greengrass V2 servicio - 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 AWS IoT Greengrass V2 servicio

En esta configuración, se ejecuta AWS IoT Greengrass V2 como un servicio de systemd en una instancia a la vez. Pacemaker administra la replicación del DRBD, el montaje del sistema de archivos y el AWS IoT Greengrass V2 servicio como recursos ordenados. Si la instancia principal falla, Pacemaker convierte la DRBD de la instancia en espera en la instancia principal, monta el sistema de archivos y se inicia. AWS IoT Greengrass V2

importante

Complete todos los pasos antes de continuar. Requisitos previos y configuración del clúster

aviso

Ejecute los siguientes comandos únicamente en la instancia principal, a menos que se indique lo contrario.

Adjunte el recurso DRBD

Compruebe que Pacemaker esté funcionando antes de continuar.

sudo systemctl status pacemaker

Desactive STONITH antes de crear cualquier recurso. Sin un dispositivo de cercado configurado, Pacemaker se negará a iniciar los recursos si STONITH está activado (opción predeterminada).

sudo pcs property set stonith-enabled=false
aviso

STONITH está desactivado 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.

Desmonte el dispositivo DRBD de la instancia principal y desactive el DRBD en todas las instancias para que Pacemaker tenga un control total del ciclo de vida del DRBD.

# On the primary instance only sudo umount /greengrass/v2 # On all instances sudo drbdadm down greengrass

Cree el recurso DRBD en Pacemaker.

sudo pcs resource create drbd-greengrass \ ocf:linbit:drbd drbd_resource=greengrass \ op monitor interval=15s role=Promoted \ op monitor interval=30s role=Unpromoted

Configure el recurso como promocionable para que solo una instancia sea principal a la vez. clone-maxDefina el número de instancias de su clúster.

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

Todos los AWS IoT Greengrass V2 recursos se almacenan en. /greengrass/v2 Este paso indica a Pacemaker que monte el dispositivo DRBD en esa ruta de la instancia promocionada. Esto garantiza que el directorio de AWS IoT Greengrass V2 datos se replique y esté disponible durante la conmutación por error.

Cree el recurso del sistema de archivos en un estado desactivado. Lo habilitará una vez que se hayan establecido todas las restricciones.

sudo pcs resource create fs_greengrass Filesystem \ device="/dev/drbd0" \ directory="/greengrass/v2" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled

Verifique los recursos

Verifique que los recursos se hayan creado y propagado a todas las instancias.

sudo pcs status

Aprovisione y adjunte el AWS IoT Greengrass V2 recurso sistémico

  1. Provisión AWS IoT Greengrass V2. Dado que desmontó el dispositivo DRBD anteriormente, habilite el modo de mantenimiento y vuelva a montarlo para el aprovisionamiento:

    # Enable maintenance mode to prevent Pacemaker from interfering sudo pcs property set maintenance-mode=true # Check which node Pacemaker promoted to Primary sudo pcs status | grep drbd-greengrass # On the Promoted node, mount the DRBD device sudo mount /dev/drbd0 /greengrass/v2

    Aprovisione AWS IoT Greengrass V2 en la instancia principal mediante el aprovisionamiento automático. Sigue las instrucciones de Install AWS IoT Greengrass V2 Core con aprovisionamiento automático de recursos.

    Asegúrese de que AWS IoT Greengrass V2 esté instalado en el /greengrass/v2 directorio (la DRBD-mounted ruta). Tras el aprovisionamiento, desmonte el dispositivo e inhabilite el modo de mantenimiento:

    sudo umount /greengrass/v2 sudo pcs property set maintenance-mode=false
  2. Deshabilite el AWS IoT Greengrass V2 servicio para que Pacemaker pueda administrarlo en lugar de systemd.

    sudo systemctl disable greengrass sudo systemctl stop greengrass
  3. Instala los requisitos previos de tiempo de ejecución en todas las instancias en espera. AWS IoT Greengrass V2 requiere Java y otras dependencias que el aprovisionador automático instala fuera del directorio. DRBD-replicated Instale la misma versión del JDK en cada instancia en espera. Consulte AWS IoT Greengrass V2 los requisitos para ver la lista completa de requisitos previos.

  4. Cree un archivo de unidad systemd en otras instancias. Copie el archivo de la unidad AWS IoT Greengrass V2 systemd en las instancias en espera para que Pacemaker pueda iniciar el servicio en cualquier instancia durante la conmutación por error.

    # On the primary instance, view the unit file location systemctl show -p FragmentPath greengrass

    Copie ese archivo en la misma ruta en las demás instancias. A continuación, vuelva a cargar systemd en cada instancia en espera para que reconozca el nuevo archivo de la unidad.

    # On each standby instance sudo systemctl daemon-reload
  5. Adjunte el recurso AWS IoT Greengrass V2 .

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

Crear restricciones de recursos

Cree un orden de restricción para que Pacemaker administre los recursos en el orden correcto durante la conmutación por error.

sudo pcs constraint order promote drbd-greengrass-clone then start fs_greengrass sudo pcs constraint colocation add fs_greengrass with Promoted drbd-greengrass-clone score=INFINITY sudo pcs resource group add greengrass-group fs_greengrass greengrass sudo pcs constraint location greengrass-group prefers instance1=200

Habilite los recursos ahora que existen restricciones.

sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass

Verifique el estado final de las restricciones de recursos.

sudo pcs constraint show

El resultado debe mostrar las siguientes restricciones:

  • Restricciones de ubicación: el grupo de greengrass-group recursos prefiere la instancia principal.

  • Restricciones de colocación: fs_greengrass se ejecuta con la promocionada drbd-greengrass-clone y greengrass se ejecuta confs_greengrass.

  • Restricciones de orden: DRBD se promueve antes de que se inicie el sistema de archivos y el sistema de archivos se inicia antes. AWS IoT Greengrass V2

Verifique la conmutación por error

Simule una conmutación por error para comprobar que la configuración funciona.

  1. Compruebe el estado inicial. Compruebe que AWS IoT Greengrass V2 se esté ejecutando en la instancia principal.

    sudo pcs status
  2. Simule el error de la instancia principal. Coloque el nodo principal en modo de espera para activar la migración de recursos.

    sudo pcs node standby primary-node-name
  3. Verifique la conmutación por error. En la instancia en espera, compruebe el estado del clúster. El DRBD, el sistema de archivos y AWS IoT Greengrass V2 los recursos ahora deberían estar ejecutándose en la instancia en espera.

    sudo pcs status
  4. Recupera la instancia fallida.

    sudo pcs node unstandby primary-node-name

    Cuando el nodo vuelve a estar en línea, vuelve a unirse al clúster como instancia en espera. La instancia que se promovió durante la conmutación por error sigue siendo la instancia principal.

Resolución de problemas

Si los recursos entran en un estado fallido, puedes limpiarlos y reiniciarlos con el siguiente comando.

sudo pcs resource cleanup