Configurar replicação assíncrona do Persistent Disk


Neste documento, descrevemos como configurar a replicação assíncrona do Persistent Disk (replicação assíncrona do DP). A replicação assíncrona de DP é útil para recuperação de desastres de baixo RPO e RTO.

Para ativar a replicação de disco assíncrona, siga estas etapas:

  1. Configure um par de replicação de disco para configurar a replicação assíncrona de DPs.
  2. Iniciar manualmente a replicação para começar a replicar dados entre o disco principal e o secundário.

Limitações

Os discos secundários precisam estar em branco quando criados. Eles não podem ser criados com base em imagens, snapshots ou outros discos.

Antes de começar

  • Escolha um par de regiões.
  • Como opção, crie um grupo de consistência.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Configurar um par de replicação de disco

Antes de replicar dados entre discos, configure a replicação concluindo as seguintes tarefas:

  1. Escolha um par de regiões e suas regiões primárias e secundárias.
  2. Opcional: se você precisar coordenar a replicação em um grupo de discos, crie um grupo de consistência na região principal. É preciso adicionar discos principais a um grupo de consistência antes de iniciar a replicação.
  3. Crie ou selecione os discos primários. Se quiser, adicione esses discos ao grupo de consistência.
  4. Criar novos discos secundários em branco.

Requisitos de disco

Os discos precisam atender aos seguintes requisitos para serem usados como discos primários ou secundários para a replicação assíncrona do DP:

Criar ou selecionar um disco principal

O disco primário é a inicialização ou o disco de dados anexado à VM em que a carga de trabalho é executada. É possível usar qualquer disco preexistente que atenda aos requisitos de disco como principal ou criar um novo. Se você quiser usar um disco atual como disco principal, não será necessário executar outras configurações nele. Prossiga para criar um disco secundário para concluir a configuração de replicação assíncrona de DPs.

Criar um disco principal

Crie um disco primário usando os métodos descritos em um dos documentos a seguir.

  • Crie um disco de inicialização principal ao criar uma VM. Se quiser, adicione o disco a um grupo de consistência criando a VM usando a CLI gcloud ou REST e especificando uma das seguintes opções:

    • Se você criar a VM usando a CLI gcloud, especifique a sinalização --create-disk:

      --create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Se você criar a VM usando REST, especifique a propriedade resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      
  • Crie um disco de dados principal ao criar uma VM. Se quiser, adicione o disco a um grupo de consistência criando a VM usando a CLI gcloud ou REST e especificando uma das seguintes opções:

    • Se você criar a VM usando a CLI gcloud, especifique a sinalização --create-disk:

      --create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Se você criar a VM usando REST, especifique a propriedade resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      
  • Crie um disco de dados principal sem gerar uma VM. Se quiser, adicione o disco a um grupo de consistência criando a VM usando o console do Google Cloud, a CLI gcloud ou a REST e especificando uma das seguintes opções:

    • Se você criar o disco usando o console do Google Cloud, selecione o grupo de consistência no menu suspenso Consistência de grupos.

    • Se você criar o disco usando a CLI gcloud, especifique a sinalização --resource-policies:

      --resource-policies=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Se você criar o disco usando REST, especifique a propriedade resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      

    Substitua:

    • PROJECT: o projeto que contém o grupo de consistência.
    • REGION: a região em que o grupo de consistência está localizado.
    • CONSISTENCY_GROUP_NAME: o nome do grupo de consistência a que o disco vai ser adicionado.

Criar um disco secundário

O disco secundário é um disco de dados em uma região separada do disco principal, que recebe e grava dados replicados do disco principal. Ao configurar a replicação assíncrona do DP, é necessário criar um novo disco secundário em branco que faça referência ao disco principal.

Para criar um disco secundário com as mesmas propriedades do disco principal, siga as etapas em Criar um disco secundário idêntico ao principal.

Para criar um disco secundário diferente do disco principal, consulte Criar um disco secundário personalizado.

Criar um disco secundário idêntico ao principal

Confira nesta seção como criar um disco secundário idêntico ao principal.

É possível criar um disco secundário com o console do Google Cloud, a gcloud CLI ou a REST.

Console

Crie um disco secundário e inicie a replicação da seguinte forma:

  1. No console do Google Cloud, acesse a página Discos.

    Acessar "Discos"

  2. Clique no nome do disco principal. A página Gerenciar disco é aberta.

  3. Clique em Criar disco secundário.

  4. No campo Nome, insira um nome para o disco.

  5. Na seção Local, siga um destes procedimentos:

  6. Clique em Criar. O Compute Engine cria o disco e inicia a replicação.

gcloud

Crie um disco secundário usando o comando gcloud compute disks create:

gcloud compute disks create SECONDARY_DISK_NAME \
    --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \
    --size=SIZE \
    --primary-disk=PRIMARY_DISK_NAME \
    --PRIMARY_DISK_LOCATION_FLAG=PRIMARY_LOCATION \
    --primary-disk-project=PRIMARY_DISK_PROJECT

Para criar um disco secundário regional, especifique também a sinalização --replica-zones:

--replica-zones=ZONE_1,ZONE_2

Substitua:

  • SECONDARY_DISK_NAME: o nome do disco secundário.
  • SECONDARY_LOCATION_FLAG: a sinalização de localização do disco secundário. Para criar um disco secundário regional, use --region. Para criar um disco secundário zonal, use --zone.
  • SECONDARY_LOCATION: a região ou zona do disco secundário.
  • SIZE: o tamanho do novo disco em GB. O tamanho precisa ser igual ao do disco principal. Os tamanhos aceitáveis variam, em incrementos de 1 GB, de 10 GB a 2.000 GB.
  • PRIMARY_DISK_NAME: o nome do disco principal do qual o disco secundário recebe dados.
  • PRIMARY_LOCATION_FLAG: a sinalização de localização do disco principal.
    • Para um disco primário regional, use --primary-disk-region.
    • Para um disco principal zonal, use --primary-disk-zone.
  • PRIMARY_LOCATION: a região ou zona do disco principal.
    • Para um disco regional, use a região.
    • Para uma zona, use a zona.
  • PRIMARY_PROJECT: o projeto que contém o disco principal.
  • ZONE_1: uma das zonas em que o disco regional é replicado. Precisa ser uma zona na região especificada e ser diferente de ZONE_2.
  • ZONE_2: uma das zonas em que o disco regional é replicado. Precisa ser uma zona na região especificada e ser diferente de ZONE_1.

REST

Crie um disco secundário zonal ou regional usando um dos seguintes métodos:

  • Para criar um disco secundário zonal, use o método disks.insert:

    POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/zones/SECONDARY_DISK_LOCATION/disks
    
    {
    "name": "SECONDARY_DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "DISK_TYPE"
    "asyncPrimaryDisk": {
      "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME"
      }
    }
    
  • Para criar um disco secundário regional, use o método regionDisks.insert:

    POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/regions/SECONDARY_DISK_LOCATION/disks
    
    {
    "name": "SECONDARY_DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "DISK_TYPE"
    "asyncPrimaryDisk": {
      "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME"
      }
    }
    

Substitua:

  • SECONDARY_DISK_PROJECT: o projeto para o disco secundário.
  • SECONDARY_DISK_LOCATION: a região ou zona do disco secundário.
    • Para um disco regional, use a região.
    • Para um disco zonal, use a zona.
  • SECONDARY_DISK_NAME: o nome do disco secundário.
  • DISK_SIZE: o tamanho do disco secundário. Precisa ser igual ao tamanho do disco principal.
  • SECONDARY_DISK_TYPE: o tipo de disco. Precisa ser pd-ssd ou pd-balanced.
  • PRIMARY_DISK_PROJECT: o projeto que contém o disco principal.
  • PRIMARY_DISK_LOCATION_PARAMETER: o parâmetro de localização do disco principal.
    • Para um disco primário regional, use regions.
    • Para um disco principal zonal, use zones.
  • PRIMARY_DISK_LOCATION: a região ou zona do disco principal. Para discos regionais, use a região. Para discos zonais, use a zona.
  • PRIMARY_DISK_NAME: o nome do disco principal do qual o disco secundário recebe dados.

Criar um disco secundário personalizado

Confira nesta seção como criar um disco secundário personalizado, ou seja, um disco secundário com propriedades diferentes do disco principal.

Se o disco principal for um disco de inicialização, não será possível alterar ou remover os recursos do SO convidado do disco principal. Só é possível adicionar mais recursos do SO convidado. Para mais informações, consulte Personalização do disco secundário.

É possível criar um disco secundário personalizado com a gcloud CLI ou a REST. Não é possível personalizar o disco secundário no console do Google Cloud.

gcloud

Para criar um disco secundário personalizado, use o comando gcloud compute disks create, conforme descrito em Criar um disco secundário idêntico ao principal. Use flags adicionais para personalizar as propriedades do disco secundário.

Confira abaixo exemplos de como personalizar o disco secundário:

  • Para especificar outros recursos do SO convidado, use o parâmetro --guest-os-features.

     --guest-os-features=UEFI_COMPATIBLE,GVNIC,MULTI_IP_SUBNET
     

  • Para atribuir outros rótulos ao disco secundário, use o parâmetro --labels.
      --labels=secondary-disk-for-replication=yes
      

REST

Para criar um disco secundário personalizado, use o mesmo método descrito em Criar um disco secundário idêntico ao principal. Especifique campos adicionais para personalizar as propriedades do disco secundário.

Confira abaixo exemplos de como personalizar o disco secundário:

  • Para especificar outros recursos do SO convidado, use o campo guestOsFeatures. Só é possível especificar outros recursos do SO convidado. Não é possível mudar ou remover nenhum dos recursos do SO convidado copiados do disco principal.
    "guestOsFeatures": [
      {
        "type": "NEW_FEATURE_ID_1"
      },
      {
        "type": "NEW_FEATURE_ID_1"
      }
    ]
    
  • Para atribuir outros rótulos ao disco secundário, use o campo labels.
      "labels": [
        {
          "key": "value"
        },
      ]
    

Iniciar replicação

Depois de criar um disco primário e um secundário, inicie a replicação para começar a replicar dados do disco principal para o secundário.

A seguir