Faça a gestão de falhas para discos regionais

O Hyperdisk Balanced de alta disponibilidade é uma opção de armazenamento que oferece replicação síncrona de dados entre duas zonas numa região. Pode usar o Hyperdisk Balanced de alta disponibilidade como um bloco de construção quando implementa serviços de alta disponibilidade (HA) no Compute Engine.

Este documento explica os vários cenários que podem interromper o funcionamento dos seus discos regionais e como pode gerir estes cenários.

Antes de começar

  • Reveja as noções básicas sobre discos regionais e comutação por falha. Para mais informações, consulte o artigo Acerca da replicação síncrona de discos.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Funções necessárias

Para receber as autorizações de que precisa para migrar dados de disco regionais através de um ponto de verificação de recuperação de réplicas, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para migrar dados de discos regionais através de um ponto de verificação de recuperação de réplicas. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para migrar dados de discos regionais através de um ponto de verificação de recuperação de réplicas:

  • Para criar um instantâneo padrão a partir do ponto de verificação de recuperação da réplica:
    • compute.snapshots.create no projeto
    • compute.disks.createSnapshot no disco
  • Para criar um novo disco regional a partir da captura de ecrã padrão: compute.disks.create no projeto onde quer criar o novo disco
  • Para migrar VMs para o novo disco:
    • compute.instances.attachDisk na instância de VM
    • compute.disks.use permission no disco recém-criado

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Limitações

Não pode usar operações force-attach em discos que estejam no modo de gravação múltipla.

Cenários de falha

Com os discos regionais, quando o dispositivo está totalmente replicado, os dados são replicados automaticamente para duas zonas numa região. Uma gravação é confirmada a uma instância de computação quando é persistida de forma duradoura em ambas as réplicas.

Se a replicação para uma zona falhar ou for muito lenta durante algum tempo, o estado de replicação do disco muda para degraded. Neste modo, a escrita é reconhecida depois de ser persistida de forma duradoura numa réplica.

Quando o Compute Engine deteta que a replicação pode ser retomada, os dados escritos numa réplica depois de a outra réplica ter entrado no estado degradado são sincronizados com ambas as zonas, e o disco regressa a um estado totalmente replicado. Esta transição é totalmente automática.

O RPO e o RTO não estão definidos enquanto um dispositivo está num estado degradado. Para minimizar a perda de dados e disponibilidade em caso de falha de um disco a funcionar num estado degradado, recomendamos que faça regularmente cópias de segurança dos seus discos regionais através de cópias instantâneas padrão. Pode recuperar um disco restaurando o instantâneo.

Falhas zonais

Um disco replicado, ou disco regional, é replicado de forma síncrona para réplicas de disco nas zonas primária e secundária. As falhas zonais ocorrem quando uma réplica zonal fica indisponível. As falhas zonais podem ocorrer na zona principal ou secundária devido a um dos seguintes motivos:

  • Existe uma falha de energia zonal.
  • A réplica sofre uma lentidão excessiva nas operações de escrita.

A tabela seguinte apresenta os vários cenários de falhas zonais que pode encontrar para discos regionais e a ação recomendada para cada cenário. Em cada um destes cenários, pressupõe-se que a réplica zonal principal está em bom estado e sincronizada durante o estado inicial.

Estado inicial do disco Falha em Novo estado do disco Consequências da falha Ação a realizar

Réplica principal: sincronizada

Réplica secundária: sincronizada

Estado do disco: totalmente replicado

Disco anexado na: zona principal

Zona principal

Réplica principal: não sincronizada ou indisponível

Réplica secundária: sincronizada

Estado do disco: degradado

Disco anexado na: zona principal

  • A réplica na zona secundária permanece em bom estado e tem os dados do disco mais recentes.
  • A réplica na zona principal não está em bom estado e não tem garantia de ter todos os dados do disco.
Efetue o failover do disco anexando-o à força a uma VM na zona secundária em bom estado.

Réplica principal: sincronizada

Réplica secundária: sincronizada

Estado do disco: totalmente replicado

Disco anexado na: zona principal

Zona secundária

Réplica principal: sincronizada

Réplica secundária: não sincronizada ou indisponível

Estado do disco: degradado

Disco anexado na: zona principal

  • A réplica na zona principal permanece em bom estado e tem os dados do disco mais recentes.
  • A réplica na zona secundária não está em bom estado e não é garantido que tenha todos os dados do disco.
Não é necessária nenhuma ação. O Compute Engine sincroniza novamente a réplica não saudável na zona secundária depois de estar novamente disponível.

Réplica principal: sincronizada

Réplica secundária: não sincronizada e indisponível

Estado do disco: degradado

Disco anexado na: zona principal

Zona principal

Réplica principal: sincronizada, mas indisponível

Réplica secundária: dessincronizada

Estado do disco: indisponível

Disco anexado na: zona principal

  • Ambas as réplicas zonais estão indisponíveis e não podem publicar tráfego. O disco fica indisponível.
  • Se a interrupção zonal ou a falha de réplica for temporária, não se perdem dados.
  • Se a indisponibilidade zonal ou a falha da réplica for permanente, todos os dados escritos na réplica em bom estado enquanto o disco estava degradado são perdidos permanentemente.
A Google recomenda que use uma captura de ecrã padrão existente e crie um novo disco para recuperar os seus dados. Como prática recomendada, faça cópias de segurança dos discos regionais regularmente através de instantâneos padrão.

Réplica principal: sincronizada

Réplica secundária: a recuperar, mas disponível

Estado do disco: a recuperar

Disco anexado na: zona principal

Zona principal

Réplica principal: indisponível

Réplica secundária: a recuperar, mas disponível

Estado do disco: indisponível

Disco anexado na: zona principal

  • Nenhuma das réplicas zonais consegue publicar tráfego. O disco fica indisponível.
  • Se a indisponibilidade zonal ou a falha da réplica for temporária, o disco retoma as operações depois de a réplica principal estar novamente disponível.
  • Se a indisponibilidade zonal ou a falha da réplica for permanente, o disco fica inutilizável.

Réplica principal: sincronizada

Réplica secundária: não sincronizada, mas disponível

Estado do disco: degradado

Disco anexado na: zona principal

Zona principal

Réplica principal: indisponível

Réplica secundária: não sincronizada, mas disponível

Estado do disco: indisponível

Disco anexado na: zona principal

  • Nenhuma das réplicas zonais consegue publicar tráfego. O disco fica indisponível.
  • Se a indisponibilidade zonal ou a falha da réplica for temporária, o disco retoma as operações depois de a réplica principal estar novamente disponível.
  • Se a indisponibilidade zonal ou a falha de réplica for permanente, o disco torna-se inutilizável.

Falhas de aplicações e VMs

Em caso de indisponibilidades causadas por uma configuração incorreta da VM, uma atualização do SO sem êxito ou outras falhas da aplicação, pode force-attach o disco regional para uma instância de computação na mesma zona que a réplica em bom estado.

Categoria de falha e (probabilidade) Tipos de falhas Ação
Falha da aplicação (elevada)
  • Aplicações que não respondem
  • Falha devido a ações administrativas da aplicação (por exemplo, atualização)
  • Erro humano (por exemplo, configuração incorreta de parâmetros, como o certificado SSL ou as ACLs)
O plano de controlo da aplicação pode acionar a transferência de responsabilidade com base nos limites de verificação de funcionamento.
Falha da VM (média)
  • Falha de infraestrutura ou hardware
  • A VM não responde devido a contenção da CPU, interrupção da rede intermédia
Normalmente, as VMs são reparadas automaticamente. O plano de controlo da aplicação pode acionar a transferência de responsabilidade com base nos limites da verificação de funcionamento.
Aplicação danificada (baixa a média) Corrupção de dados da aplicação
(por exemplo, devido a erros da aplicação ou a uma atualização do SO sem êxito)
Recuperação de aplicações:

Faça o failover de um disco regional com o comando force-attach

Caso a zona principal falhe, pode fazer failover do seu volume de alta disponibilidade equilibrado do Hyperdisk para uma instância de computação noutra zona através de uma operação de anexação forçada.

Quando ocorre uma falha na zona principal, pode não conseguir desanexar o disco da instância porque não é possível aceder à instância para realizar a operação de desanexação. A opção Force-attach permite-lhe associar um Hyperdisk Balanced High Availability volume a uma instância de computação mesmo que esse volume esteja associado a outra instância.

Depois de concluir a operação de associação forçada, o Compute Engine impede que a instância original escreva no disco regional. A utilização da operação force-attach permite-lhe recuperar o acesso aos seus dados e recuperar o seu serviço de forma segura. Também tem a opção de encerrar manualmente a instância de VM depois de realizar a operação de associação forçada.

Para forçar a anexação de um disco existente a uma instância de computação, selecione uma das seguintes tarefas:

Consola

  1. Aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione o seu projeto.

  3. Clique no nome da instância que quer alterar.

  4. Na página de detalhes, clique em Editar.

  5. Na secção Discos adicionais, clique em Anexar disco adicional.

  6. Selecione o disco replicado regional ou sincronamente na lista pendente.

  7. Para forçar a anexação do disco, selecione a caixa de verificação Forçar anexação do disco.

  8. Clique em Concluído e, de seguida, clique em Guardar.

Pode seguir os mesmos passos para force-attach um disco para a instância de computação original após a resolução da falha.

gcloud

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

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

Substitua o seguinte:

  • VM_NAME: o nome da nova instância de computação na região
  • DISK_NAME: o nome do disco regional

Depois de force-attach o disco, monte os sistemas de ficheiros no disco, se necessário. A instância de computação pode usar o disco anexado à força para continuar as operações de leitura e escrita no disco.

REST

Crie um pedido POST para o método compute.instances.attachDisk e inclua o URL do disco regional que acabou de criar. Para anexar o disco à nova instância de computação, o parâmetro de consulta forceAttach=true é necessário se a instância de computação principal ainda tiver o disco anexado.

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true

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

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • ZONE: a localização da sua instância de computação
  • VM_NAME: o nome da instância de computação onde está a adicionar o disco regional
  • REGION: a região onde o seu disco regional está localizado
  • DISK_NAME: o nome do disco regional

Depois de anexar o disco regional, monte os sistemas de ficheiros nos discos, se necessário. A instância de computação pode usar o disco da réplica para continuar as operações de leitura e escrita no disco.

Efetue o failover de um disco de arranque para uma instância secundária

Só pode ter um disco de arranque associado a uma instância de computação. Quando fizer failover de um disco de arranque regional, use um dos seguintes métodos, consoante a instância de computação secundária já exista ou não:

Use o ponto de verificação de recuperação de réplicas para recuperar discos regionais

Um ponto de verificação de recuperação de réplica representa o ponto consistente com falhas mais recente no tempo de um . O Compute Engine permite-lhe criar instantâneos padrão a partir do ponto de verificação de recuperação da réplica para discos regionais degradados.

Em cenários raros, quando o disco está degradado, a réplica zonal sincronizada com os dados do disco mais recentes também pode falhar antes de a réplica dessincronizada ficar atualizada. Não vai poder anexar o disco à força a instâncias de computação em nenhuma das zonas. O disco replicado fica indisponível e tem de migrar os dados para um novo disco. Nestes cenários, se não tiver instantâneos padrão existentes disponíveis para o seu disco, ainda pode recuperar os dados do disco da réplica incompleta através de um instantâneo padrão criado a partir do ponto de verificação de recuperação da réplica. Consulte o artigo Procedimento para migrar e recuperar dados do disco para ver passos detalhados.

Procedimento para migrar e recuperar dados do disco

Para recuperar e migrar os dados de um disco regional através do ponto de verificação de recuperação de réplicas, siga estes passos:

  1. Crie uma captura de ecrã padrão doou do volume de alta disponibilidade equilibrado do Hyperdisk afetado a partir do respetivo ponto de verificação de recuperação de réplicas.

    Pode criar o resumo padrão de um disco a partir do respetivo ponto de verificação de recuperação de réplica usando apenas a CLI gcloud ou a API REST.

    gcloud

    Para criar um resumo usando o ponto de verificação de recuperação da réplica, use o comando gcloud compute snapshots create . Inclua a flag --source-disk-for-recovery-checkpoint para especificar que quer criar a imagem instantânea com um ponto de verificação de recuperação de réplica. Exclua os parâmetros --source-disk e --source-disk-region.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-for-recovery-checkpoint=SOURCE_DISK \
        --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \
        --storage-location=STORAGE_LOCATION \
        --snapshot-type=SNAPSHOT_TYPE
    

    Substitua o seguinte:

    • DESTINATION_PROJECT_ID: o ID do projeto no qual quer criar a imagem instantânea.
    • SNAPSHOT_NAME: um nome para o resumo.
    • SOURCE_DISK: o nome ou o caminho completo do disco de origem que quer usar para criar a captura de ecrã. Para especificar o caminho completo de um disco de origem, use a seguinte sintaxe:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Se especificar o caminho completo para o disco de origem, pode excluir a flag --source-disk-for-recovery-checkpoint-region. Se especificar apenas o nome do disco, tem de incluir esta flag.

      Para criar um instantâneo a partir do ponto de verificação de recuperação de um disco de origem num projeto diferente, tem de especificar o caminho completo para o disco de origem.

    • SOURCE_PROJECT_ID: o ID do projeto do disco de origem cujo ponto de verificação quer usar para criar a captura de ecrã.
    • SOURCE_REGION: a região do disco de origem cujo ponto de verificação quer usar para criar o instantâneo.
    • SOURCE_DISK_NAME: o nome do disco de origem cujo ponto de verificação quer usar para criar a captura de ecrã.
    • STORAGE_LOCATION: Opcional: A multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar a sua captura de ecrã. Só pode especificar uma localização de armazenamento.
      Use a flag --storage-locationapenas se quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo.
    • SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE. Se não for especificado um tipo de instantâneo, é criado um instantâneo STANDARD.

    Pode usar o ponto de verificação de recuperação de réplicas para criar um resumo apenas em discos degradados. Se tentar criar uma imagem instantânea a partir de um ponto de verificação de recuperação de réplica quando o dispositivo estiver totalmente replicado, é apresentada a seguinte mensagem de erro:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

    REST

    Para criar um resumo através do ponto de verificação de recuperação da réplica, faça um pedido POST ao método snapshots.insert. Exclua o parâmetro sourceDisk e, em alternativa, inclua o parâmetro sourceDiskForRecoveryCheckpoint para especificar que quer criar a imagem instantânea com o ponto de verificação.

    POST https://compute.s3nsapis.fr/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": "SNAPSHOT_NAME",
      "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",
      "storageLocations": "STORAGE_LOCATION",
      "snapshotType": "SNAPSHOT_TYPE"
    }
    

    Substitua o seguinte:

    • DESTINATION_PROJECT_ID: o ID do projeto no qual quer criar a imagem instantânea.
    • SNAPSHOT_NAME: um nome para o resumo.
    • SOURCE_DISK: o nome ou o caminho completo do disco de origem que quer usar para criar a captura de ecrã. Para especificar o caminho completo de um disco de origem, use a seguinte sintaxe:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Se especificar o caminho completo para o disco de origem, pode excluir a flag --source-disk-for-recovery-checkpoint-region. Se especificar apenas o nome do disco, tem de incluir esta flag.

      Para criar um instantâneo a partir do ponto de verificação de recuperação de um disco de origem num projeto diferente, tem de especificar o caminho completo para o disco de origem.

    • SOURCE_PROJECT_ID: o ID do projeto do disco de origem cujo ponto de verificação quer usar para criar a captura de ecrã.
    • SOURCE_REGION: a região do disco de origem cujo ponto de verificação quer usar para criar o instantâneo.
    • SOURCE_DISK_NAME: o nome do disco de origem cujo ponto de verificação quer usar para criar a captura de ecrã.
    • STORAGE_LOCATION: Opcional: A multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar a sua captura de ecrã. Só pode especificar uma localização de armazenamento.
      Use o parâmetro storageLocations apenas se quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo.
    • SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE. Se não for especificado um tipo de instantâneo, é criado um instantâneo STANDARD.

    Pode usar o ponto de verificação de recuperação de réplicas para criar um resumo apenas em discos degradados. Se tentar criar uma imagem instantânea a partir de um ponto de verificação de recuperação de réplica quando o dispositivo estiver totalmente replicado, é apresentada a seguinte mensagem de erro:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

  2. Crie um novo Quando cria o novo disco, recupera todos os dados do ponto de verificação de recuperação da réplica mais recente restaurando os dados para o novo disco a partir da captura de ecrã. Para ver passos detalhados, consulte o artigo Crie uma nova instância com um disco de arranque regional.

  3. Migre todas as cargas de trabalho de VMs para o disco recém-criado e valide se estas cargas de trabalho de VMs estão a ser executadas corretamente. Para mais informações, consulte o artigo Mova uma VM entre zonas ou regiões.

Depois de recuperar e migrar os dados do disco e as VMs para o o disco de alta disponibilidade equilibrado do Hyperdisk criado recentemente, pode retomar as suas operações.

Determinar o RPO fornecido pelo ponto de verificação de recuperação da réplica

Esta secção explica como determinar o RPO fornecido pelo ponto de verificação de recuperação da réplica mais recente de um volume de alta disponibilidade equilibrado do Hyperdisk.

As réplicas zonais estão totalmente sincronizadas

O Compute Engine atualiza o ponto de verificação de recuperação da réplica do seu volume de alta disponibilidade equilibrado do Hyperdisk aproximadamente a cada 15 minutos. Como resultado, quando as réplicas zonais estão totalmente sincronizadas, o RPO é de aproximadamente 15 minutos.

As réplicas zonais não estão sincronizadas

Não pode ver as datas/horas exatas de criação e atualização de um ponto de verificação de recuperação de réplica. No entanto, pode estimar o RPO aproximado que o seu ponto de verificação mais recente oferece através dos seguintes dados:

  • Data/hora mais recente do estado do disco totalmente replicado: pode obter estas informações através dos dados do Cloud Monitoring para a métrica replica_state do disco regional. Verifique os replica_statedados das métricas da réplica dessincronizada para determinar quando a réplica ficou dessincronizada. Uma vez que o Compute Engine atualiza o ponto de verificação do disco a cada 15 minutos, a atualização do ponto de verificação mais recente pode ter ocorrido aproximadamente 15 minutos antes desta data/hora.
  • Data/hora da operação de gravação mais recente: pode obter estas informações através dos dados do Cloud Monitoring para a métrica write_ops_count do disco regional. Verifique os dados das métricas write_ops_count para determinar a operação de gravação mais recente do disco.

Depois de determinar estas indicações de tempo, use a seguinte fórmula para calcular o RPO aproximado fornecido pelo ponto de verificação de recuperação da réplica do seu disco. Se o valor calculado for inferior a zero, o RPO é efetivamente zero.

Approximate RPO provided by the latest checkpoint =
(Most recent write operation timestamp - (Most recent timestamp of the fully
replicated disk state - 15 minutes))

O que se segue?