View a markdown version of this page

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

Nessa configuração, você executa AWS IoT Greengrass V2 como um serviço systemd em uma instância por vez. O Pacemaker gerencia a replicação do DRBD, a montagem do sistema de arquivos e o serviço conforme os recursos solicitados. AWS IoT Greengrass V2 Se a instância primária falhar, o Pacemaker promove o DRBD da instância em espera para primário, monta o sistema de arquivos e inicia. AWS IoT Greengrass V2

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, a menos que indicado de outra forma.

Anexe o recurso DRBD

Verifique se o Pacemaker está funcionando antes de continuar.

sudo systemctl status pacemaker

Desative o STONITH antes de criar qualquer recurso. Sem um dispositivo de vedação configurado, o Pacemaker se recusará a iniciar recursos se o STONITH estiver ativado (o padrão).

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.

Desmonte o dispositivo DRBD na instância primária e desative o DRBD em todas as instâncias para que o Pacemaker tenha controle total do ciclo de vida do DRBD.

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

Crie o recurso DRBD no 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 o recurso como promotível para que somente uma instância seja primária por vez. clone-maxDefina o número de instâncias em seu cluster.

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

Todos os AWS IoT Greengrass V2 recursos são armazenados em/greengrass/v2. Essa etapa faz com que o Pacemaker monte o dispositivo DRBD nesse caminho na instância promovida. Isso garante que o diretório AWS IoT Greengrass V2 de dados seja replicado e esteja disponível durante o failover.

Crie o recurso do sistema de arquivos em um estado desativado. Você o habilitará depois que todas as restrições estiverem em vigor.

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

Verifique se os recursos foram criados e propagados para todas as instâncias.

sudo pcs status

Provisionar e anexar o AWS IoT Greengrass V2 recurso systemd

  1. Provisão AWS IoT Greengrass V2. Como você desmontou o dispositivo DRBD anteriormente, ative o modo de manutenção e remonte-o para provisionamento:

    # 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

    Provisione AWS IoT Greengrass V2 na instância primária usando o provisionamento automático. Siga as instruções em Instalar o software AWSAWS IoTAWS IoT Greengrass V2 principal com provisionamento automático de recursos.

    Certifique-se de que AWS IoT Greengrass V2 esteja instalado no /greengrass/v2 diretório (o DRBD-mounted caminho). Após o provisionamento, desmonte o dispositivo e desative o modo de manutenção:

    sudo umount /greengrass/v2 sudo pcs property set maintenance-mode=false
  2. Desative o AWS IoT Greengrass V2 serviço para que o Pacemaker possa gerenciá-lo em vez do systemd.

    sudo systemctl disable greengrass sudo systemctl stop greengrass
  3. Instale os pré-requisitos de tempo de execução em todas as instâncias em espera. AWS IoT Greengrass V2 requer Java e outras dependências que o provisionador automático instale fora do diretório. DRBD-replicated Instale a mesma versão do JDK em cada instância em espera. Consulte AWS IoT Greengrass V2 os requisitos para ver a lista completa de pré-requisitos.

  4. Crie um arquivo de unidade systemd em outras instâncias. Copie o arquivo da unidade AWS IoT Greengrass V2 systemd para as instâncias em espera para que o Pacemaker possa iniciar o serviço em qualquer instância durante o failover.

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

    Copie esse arquivo para o mesmo caminho em cada instância. Em seguida, recarregue o systemd em cada instância em espera para que ele reconheça o novo arquivo de unidade.

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

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

Crie restrições de recursos

Crie uma ordem de restrição para que o Pacemaker gerencie os recursos na ordem correta durante o failover.

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

Ative os recursos agora que as restrições estão em vigor.

sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass

Verifique o estado final das restrições de recursos.

sudo pcs constraint show

A saída deve mostrar as seguintes restrições:

  • Restrições de localização — O grupo greengrass-group de recursos prefere a instância primária.

  • Restrições de colocationfs_greengrass funciona com o promovido drbd-greengrass-clone e greengrass funciona com. fs_greengrass

  • Restrições de ordem — O DRBD promove antes que o sistema de arquivos seja iniciado e o sistema de arquivos seja iniciado antes. AWS IoT Greengrass V2

Verifique o failover

Simule um failover para verificar se a configuração funciona.

  1. Verifique o estado inicial. Verifique se AWS IoT Greengrass V2 está sendo executado na instância primária.

    sudo pcs status
  2. Simule a falha da instância primária. Coloque o nó primário no modo de espera para acionar a migração de recursos.

    sudo pcs node standby primary-node-name
  3. Verifique o failover. Na instância em espera, verifique o status do cluster. O DRBD, o sistema de arquivos e AWS IoT Greengrass V2 os recursos agora devem estar em execução na instância em espera.

    sudo pcs status
  4. Recupere a instância com falha.

    sudo pcs node unstandby primary-node-name

    Quando o nó é colocado novamente on-line, ele se junta novamente ao cluster como uma instância em espera. A instância que foi promovida durante o failover continua sendo a instância primária.

Solução de problemas

Se os recursos entrarem em um estado de falha, você poderá limpá-los e reiniciá-los com o comando a seguir.

sudo pcs resource cleanup