Sobre a reparação de VMs para alta disponibilidade


Este documento descreve como um grupo gerenciado de instâncias (MIG) fornece alta disponibilidade do seu aplicativo reparando VMs com falha e não íntegras no grupo.

Um MIG mantém seu aplicativo ativo e disponível, mantendo proativamente o número de VMs em execução no grupo. Se uma VM no grupo falhar, o MIG repara a VM recriando-a das seguintes maneiras para trazer a VM de volta ao serviço:

  • Reparar automaticamente uma VM com falha : se uma VM falhar ou for excluída por uma ação não iniciada pelo MIG, o MIG reparará automaticamente a VM com falha. Neste documento, consulte Reparar automaticamente uma VM com falha .
  • Reparar uma VM com base em uma verificação de integridade do aplicativo : uma forma opcional de melhorar ainda mais a alta disponibilidade reparando VMs não íntegras . Se você configurar uma verificação de integridade baseada em aplicativo e seu aplicativo falhar na verificação de integridade, o MIG marcará essa VM como não íntegra e a reparará. O reparo de uma VM com base em uma verificação de integridade do aplicativo também é chamado de recuperação automática . Neste documento, consulte Reparar uma VM com base em uma verificação de integridade do aplicativo .

Reparar automaticamente uma VM com falha

Se uma VM em um MIG falhar, o MIG reparará automaticamente a VM com falha, recriando-a. Uma VM pode falhar pelos seguintes motivos:

Se o MIG parar intencionalmente uma VM (por exemplo, quando um escalonador automático exclui uma VM), o MIG não reparará essa VM.

Reparar uma VM com base em uma verificação de integridade do aplicativo

Além do reparo automático de VMs com falha, talvez você queira reparar uma VM se o aplicativo em execução na VM congelar, falhar ou ficar sem memória. Para garantir que o aplicativo esteja respondendo conforme esperado, você pode configurar uma verificação de integridade baseada em aplicativo.

Uma verificação de integridade baseada em aplicativo verifica periodicamente se seu aplicativo em cada VM em um MIG está respondendo conforme o esperado. Se o aplicativo em uma VM não responder, o MIG marcará essa VM como não íntegra. O MIG então repara a VM não íntegra. O reparo de uma VM com base em uma verificação de integridade do aplicativo é chamado de recuperação automática.

Para garantir que o MIG continue executando um subconjunto de suas VMs, o grupo nunca cura automaticamente todas as suas VMs simultaneamente. Isso é útil se, por exemplo, uma verificação de integridade incorreta acionar reparos desnecessários, uma regra de firewall mal configurada impedir que uma verificação de integridade investigue a VM ou se houver problemas de conectividade de rede ou de infraestrutura que identifiquem erroneamente uma VM íntegra como não íntegra. No entanto, se um MIG zonal tiver apenas uma VM, ou um MIG regional tiver apenas uma VM por zona, um MIG curará automaticamente essas VMs quando elas se tornarem não íntegras.

Política de recuperação automática

Cada MIG possui uma política de recuperação automática na qual você pode configurar uma verificação de integridade e também definir um atraso inicial. O atraso inicial é o tempo que uma nova VM leva para inicializar e executar seu script de inicialização. O temporizador de atraso inicial começa quando o MIG altera o campo currentAction da VM para VERIFYING . Durante o período de atraso inicial de uma VM, o MIG ignora verificações de integridade malsucedidas porque a VM pode estar no processo de inicialização. Isso evita que o MIG recrie uma VM prematuramente. Se a verificação de integridade receber uma resposta íntegra durante o atraso inicial, isso indicará que o processo de inicialização foi concluído e a VM está pronta.

Para obter mais informações sobre como configurar uma política de recuperação automática, consulte Configurar uma verificação de integridade e recuperação automática do aplicativo .

Monitore alterações no estado de integridade do aplicativo

Se você configurou uma verificação de integridade baseada em aplicativo em seu MIG, poderá verificar o estado de integridade de cada VM no MIG. Para obter mais informações, consulte Verificar se as VMs estão íntegras .

Também pode monitorizar as alterações no estado de saúde de uma VM. Para obter mais informações, consulte Monitorar alterações do estado de integridade .

Preços

Quando você configura uma verificação de integridade baseada em aplicativo, por padrão, o Compute Engine grava uma entrada de registro sempre que o estado de integridade de uma instância gerenciada muda.O Cloud Logging oferece uma cota gratuita por mês, após a qual o registro é cobrado por volume de dados. Para evitar custos, você pode desabilitar os logs de alterações do estado de integridade.

Comportamento durante um reparo

As seções a seguir explicam o comportamento durante reparos automáticos e reparos com base na verificação de integridade do aplicativo.

Atualização sobre reparo

Por padrão, durante um reparo, um MIG recria uma VM usando o modelo de instância original usado para criar a VM. Por exemplo, se uma VM foi criada usando instance-template-a e, em seguida, você atualiza o MIG para usar instance-template-b no modo OPPORTUNISTIC , o MIG ainda usa instance-template-a para recriar a VM.

Se quiser que seu MIG use o modelo de instância mais recente e as configurações por instância durante o reparo da VM, você pode configurar o grupo para aplicar atualizações de configuração durante os reparos .

Manuseio de disco

Durante um reparo, ao recriar uma VM com base em seu modelo, o MIG trata diferentes tipos de discos de maneira diferente. Algumas configurações de disco podem causar falha no reparo ao tentar recriar uma VM.

Tipo de disco autodelete Comportamento durante um reparo
Novo disco permanente true O disco é recriado conforme especificado no modelo de instância. Todos os dados gravados nesse disco serão perdidos quando o disco e sua VM forem recriados.
Novo disco permanente false O disco é preservado e reanexado quando o MIG recria a VM.
Disco permanente existente true O disco antigo é excluído. A operação de recriação da VM falha porque o Compute Engine não consegue reconectar um disco excluído à VM. No entanto, para discos de leitura/gravação existentes, um MIG pode ter apenas uma VM porque um único disco permanente não pode ser anexado a várias VMs no modo de leitura/gravação.
Disco permanente existente false O disco antigo é reanexado conforme especificado no modelo de instância. Os dados no disco são preservados. No entanto, para discos de leitura/gravação existentes, um MIG pode ter apenas uma VM porque um único disco permanente não pode ser anexado a várias VMs no modo de leitura/gravação.
Novo SSD local N / D O disco é recriado conforme especificado no modelo de instância. Os dados em um SSD local são perdidos quando uma VM é recriada ou excluída.

O MIG não reconecta discos que não estão especificados no modelo de instância ou nas configurações por instância, como discos que você anexou manualmente a uma VM após a criação da VM.

Para preservar dados importantes que foram gravados no disco, tome precauções como as seguintes:

Se suas VMs tiverem configurações importantes que você deseja preservar, o Google também recomenda que você use uma imagem personalizada em seu modelo de instância. Uma imagem personalizada contém todas as configurações personalizadas necessárias. Quando você especifica uma imagem personalizada em seu modelo de instância, o MIG recria VMs usando a imagem personalizada que contém as configurações personalizadas necessárias.

Desativar reparos

Você pode desativar os reparos feitos automaticamente por um MIG. Quando você desativa os reparos, o reparo de VMs com falha e o reparo com base em uma verificação de integridade do aplicativo são desativados.

Talvez você queira desativar os reparos em um MIG em cenários como os seguintes:

  • Para investigar ou depurar uma VM com falha sem interrupção do reparo automático.
  • Para reparar VMs manualmente ou implementar sua própria lógica de reparo.
  • Para evitar o registro de novas VMs enquanto um trabalho em lote estiver em andamento.
  • Para observar os estados de integridade do aplicativo sem reparar uma VM não íntegra.
  • Para ajustar a configuração da verificação de integridade sem reparos falsos.

Quando você desativa os reparos, o MIG não toma nenhuma ação se uma VM do grupo falhar ou ficar não íntegra. VMs com falha e não íntegras continuam no grupo e o número alvo de VMs em execução no MIG ( targetSize ) permanece o mesmo.

Se o tipo de atualização do MIG estiver definido como proactive e um novo modelo de instância estiver disponível, o MIG tentará atualizar as VMs com falha e não íntegras.

Se você configurou uma verificação de integridade baseada em aplicativo, a desativação dos reparos não afetará o funcionamento da verificação de integridade. A verificação de funcionamento continua a investigar a aplicação e a fornecer os estados de funcionamento da VM. Isso permite monitorar os estados de integridade do aplicativo e, ao mesmo tempo, evitar que o MIG repare VMs não íntegras.

Se o MIG fizer parte de um serviço de back-end de um balanceador de carga e você desativar os reparos no MIG, quaisquer VMs com falha e não íntegras não reparadas não responderão à verificação de integridade do balanceador de carga. Se o número dessas VMs com falha ou não íntegras no MIG aumentar, o balanceador de carga poderá reduzir o tráfego para esse MIG ou mudar para outro back-end, se configurado. Quando as VMs com falha ficam disponíveis novamente, o balanceador de carga retoma o tráfego para o MIG.

Para obter mais informações, consulte Desativar reparos em um MIG .

O que vem a seguir