

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
<a name="pacemaker-tutorial-setup1"></a>

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](pacemaker-tutorial-prerequisites.md) 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
<a name="pacemaker-tutorial-setup1-drbd-resource"></a>

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-max`Defina 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
<a name="pacemaker-tutorial-setup1-fs-resource"></a>

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
<a name="pacemaker-tutorial-setup1-verify-resources"></a>

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
<a name="pacemaker-tutorial-setup1-greengrass-resource"></a>

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](https://docs.aws.amazon.com/greengrass/v2/developerguide/quick-installation.html).

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

1. **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
   ```

1. **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](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) para ver a lista completa de pré-requisitos.

1. **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
   ```

1. **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
<a name="pacemaker-tutorial-setup1-constraints"></a>

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 colocation** — `fs_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
<a name="pacemaker-tutorial-setup1-failover"></a>

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

1. **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}}
   ```

1. **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
   ```

1. **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
```