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 gestiona la replicación del DRBD, el montaje del sistema de archivos y AWS IoT Greengrass V2 el servicio como recursos solicitados. Si la instancia principal falla, Pacemaker convierte el DRBD de la instancia en espera a 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 solo en la instancia principal, a menos que se indique lo contrario.

Adjunta el recurso DRBD

Compruebe que el marcapasos esté funcionando antes de continuar.

sudo systemctl status pacemaker

Deshabilite STONITH antes de crear cualquier recurso. Sin un dispositivo de protección 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á 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.

Desmonte el dispositivo DRBD en 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-maxEstablézcalo en el número de instancias de tu 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 esté replicado y disponible durante la conmutación por error.

Cree el recurso del sistema de archivos en un estado desactivado. Lo activará 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

Verifica los recursos

Compruebe que los recursos se crean y se propagan a todas las instancias.

sudo pcs status

Aprovisione y adjunte el AWS IoT Greengrass V2 recurso systemd

  1. Provisión AWS IoT Greengrass V2. Como desmontó el dispositivo DRBD antes, 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. Siga las instrucciones que se indican en Instalar el software AWSAWS IoTAWS IoT Greengrass V2 principal 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. Desactive el AWS IoT Greengrass V2 servicio para que Pacemaker pueda gestionarlo en lugar de systemd.

    sudo systemctl disable greengrass sudo systemctl stop greengrass
  3. Instale los requisitos 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 instale fuera del directorio. DRBD-replicated Instale la misma versión de JDK en cada instancia en espera. Consulte AWS IoT Greengrass V2 los requisitos para ver la lista completa de requisitos previos.

  4. Cree el 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 cada una de 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

Cree restricciones de recursos

Cree un orden de restricciones para que Pacemaker gestione 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 las restricciones.

sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass

Compruebe 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 activa antes de que se inicie el sistema de archivos y el sistema de archivos se inicie antes. AWS IoT Greengrass V2

Compruebe 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 deberían estar ejecutándose ahora 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