Failover de disco permanente regional

Os discos permanentes regionais fornecem replicação síncrona de dados entre duas zonas em uma região. Ele é perfeito para ser usado ao implementar serviços de alta disponibilidade (HA, na sigla em inglês) no Compute Engine. Eles também foram projetados para funcionar com grupos de instâncias gerenciadas regionais.

Cenários de falha

Com discos permanentes regionais, os dados são replicados automaticamente para duas zonas em uma região. As falhas temporárias nas operações de discos regionais são processadas com transparência por um disco permanente regional. Um disco permanente regional detecta erros e lentidão automaticamente e atualiza os dados replicados para apenas uma zona.

Se as duas réplicas estiverem disponíveis, uma operação de gravação será confirmada novamente na VM quando os dados forem conservados de maneira duradoura nas duas. Se uma das réplicas não estiver disponível, uma operação de gravação será confirmada quando os dados forem conservados de maneira duradoura na réplica íntegra. Quando e se o Compute Engine determina que a réplica não íntegra se encontra novamente operacional, ela é sincronizada de maneira com a réplica íntegra. Esta operação é transparente para as VMs.

.

Para evitar a perda não intencional de dados caso ambas as réplicas fiquem indisponíveis ao mesmo tempo, recomendamos fazer backup dos discos permanentes regionais regularmente usando snapshots.

Falhas zonais

Um disco permanente regional é replicado em duas zonas:

  • Uma réplica está localizada na mesma zona da instância de VM em que está anexada (a zona principal).
  • A outra está localizada em uma zona alternativa na mesma região (a zona secundária).

Se a zona principal falhar, será possível fazer o failover pelo disco permanente regional para uma instância de VM em outra zona usando a sinalização --force-attach com o comando attach-disk.

Nesse cenário, talvez não seja possível remover um disco da instância porque não é possível acessá-la para executar a operação de desanexação. A anexação forçada permite anexar um disco permanente regional a uma instância de VM, mesmo que esse disco já esteja anexado a outra instância.

Depois de concluir a operação force-attach, o Compute Engine impedirá que a VM original faça gravações no disco. Com force-attach, você recupera com segurança o serviço e o acesso aos seus dados. Você também tem a opção de encerrar manualmente a instância depois de realizar a etapa de force-attach.

Caso a zona secundária falhe, a réplica não íntegra será novamente sincronizada com a réplica íntegra automaticamente quando a zona secundária for recuperada.

Estado inicial Falha Novo estado Ação
Duas zonas íntegras A zona principal falha
  • A réplica íntegra tem todos os dados do disco.
  • A réplica não íntegra não tem todos os dados do disco.
Força a anexação do disco a uma VM na zona íntegra.
Duas zonas íntegras A zona secundária falha
  • Não há garantias de que a réplica não íntegra tem todos os dados do disco até que a zona se recupere.
Nenhuma ação é necessária. A réplica não íntegra é sincronizada novamente quando a zona se recupera.
  • Uma zona íntegra
  • Uma zona não íntegra
A zona íntegra falha
  • As duas réplicas estão em zonas não íntegras e não podem veicular tráfego. O disco está indisponível.
  • Se a interrupção zonal for temporária, nenhum dado será perdido.
  • Se a interrupção zonal for permanente, os dados gravados apenas na réplica íntegra serão perdidos permanentemente.
  • Não recomendamos forçar a anexação, porque o disco não pode veicular tráfego.
  • Não é possível criar um snapshot do disco até que a zona se recupere. Como prática recomendada, faça backup dos discos permanentes regionais regularmente usando snapshots.

Falhas no aplicativo e na VM

No caso de interrupções causadas por configuração incorreta da VM, uma falha no upgrade do SO ou outras falhas do aplicativo, é possível force-attach do seu disco permanente regional para uma instância de VM na mesma zona.

Categoria da falha e probabilidade Tipos de falha Ação
Falha no aplicativo (alta) O aplicativo não responde
Ações de administração do aplicativo (por exemplo, upgrade)
Erro humano
(por exemplo, configuração incorreta de parâmetros como certificados SSL ou ACLs.
O plano de controle do aplicativo pode acionar o failover com base nos limites da verificação de integridade.
Falha na VM (média) Falha na infraestrutura/hardware
A VM não responde devido à contenção de CPU ou interrupção de rede intermediária
As VMs geralmente se recuperam automaticamente. O plano de controle do aplicativo pode acionar o failover com base nos limites da verificação de integridade.
Aplicativo corrompido (baixa a média) Dados do aplicativo corrompidos
(por exemplo, devido a bugs ou a um upgrade de sistema operacional malsucedido)
Recuperação do aplicativo:

Fazer failover do disco permanente regional usando force-attach

Console

Crie uma instância de VM em espera e force-attach um disco a uma instância.

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Selecione o projeto.

  3. Clique em Criar.

  4. Especifique um Nome para sua instância.

  5. Selecione a região onde seu disco permanente reside.

  6. Selecione a zona para a instância de VM em espera.

  7. Clique em Gerenciamento, discos, rede, chaves SSH.

  8. Clique em Discos.

  9. Na seção Discos extras, clique em Anexar disco.

  10. Selecione o disco permanente regional na lista.

  11. Marque a caixa de seleção para forçar a anexação do disco.

  12. Clique em Concluído.

  13. Clique em Criar para concluir a criação dessa instância. A nova instância de VM será exibida na página "Instâncias de VM".

Após a falha ser resolvida, execute as mesmas etapas para force-attach um disco na instância original.

gcloud

Na ferramenta gcloud, use o comando instances attach-disk para anexar o disco de réplica a uma instância de VM. Inclua a sinalização --disk-scope e defina-a como regional.

gcloud compute instances attach-disk INSTANCE_NAME  \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

Substitua:

  • INSTANCE_NAME: o nome da nova instância de VM na região;
  • DISK_NAME: o nome do disco.

Depois de force-attach o disco, ative os sistemas de arquivos no disco se necessário. A instância pode usar o disco de anexação forçada para continuar as operações de leitura e gravação.

API

Crie uma solicitação POST para o método compute.instances.attachDisk e inclua o URL no disco permanente que você acabou de criar. Para anexar o disco à nova instância de VM, o parâmetro de consulta forceAttach=true é necessário, mesmo que a instância primária ainda tenha o disco.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk?forceAttach=true

{
 "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

Substitua:

  • PROJECT_ID: o ID do projeto;
  • ZONE: o local da instância;
  • INSTANCE_NAME: o nome da instância em que você está adicionando o novo disco permanente;
  • REGION: a região em que o novo disco permanente regional está localizado;
  • DISK_NAME: o nome do novo disco.

Depois de anexar o disco de réplica, ative os sistemas de arquivos nos discos se necessário. A instância pode usar o disco de réplica para continuar as operações de leitura e gravação.

A seguir