Criar e gerenciar discos regionais


Disco permanente regional e Alta disponibilidade do hiperdisco equilibrada são opções de armazenamento que permitem implementar serviços de alta disponibilidade (HA) no Compute Engine. O Persistent Disk regional e Hyperdisk Balanced High Availability replicam dados de maneira síncrona entre duas zonas na mesma região e garantem a alta disponibilidade para dados de disco de até uma falha na zona. O disco regional pode ser um disco de inicialização ou um disco não de inicialização.

Neste documento, explicamos como fazer as seguintes tarefas em discos regionais:

Antes de começar

  • Analise as diferenças entre os diferentes tipos de opções de armazenamento em disco.
  • Revise os conceitos básicos da replicação síncrona de discos.
  • Leia sobre o failover de disco regional.
  • 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. Terraform

      Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Confira mais informações em Set up authentication for a local development environment.

      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.

Papéis e permissões necessárias

Para receber as permissões necessárias e criar um disco regional, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar um disco regional. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar um disco regional:

  • compute.disks.create
  • compute.instances.attachDisk
  • compute.disks.use
  • Crie um snapshot de um disco: compute.disks.createSnapshot
  • Confira os detalhes de um disco: compute.disks.get
  • Receba uma lista de discos: compute.disks.list
  • Mudar o tamanho de um disco: compute.disks.update

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Limitações

  • No México, em Montreal e em Osaka, temos três zonas instaladas em um ou dois data centers físicos. A destruição de um data center é um evento raro, mas os dados armazenados nessas regiões podem ser perdidos se isso acontecer. Por isso, considere fazer o backup dos dados mais importantes da sua empresa em uma segunda região para aumentar a proteção.
  • Só é possível anexar Persistent Disk regionais a VMs que usam tipos de máquina E2, N1, N2 e N2D.
  • Você pode anexar o Hyperdisk Balanced High Availability somente a arquivos tipos de máquina compatíveis.
  • Não é possível criar um Persistent Disk regional a partir de uma imagem ou de um disco criado a partir de uma imagem.
  • Ao usar o modo somente leitura, é possível anexar um Persistent Disk equilibrado regional a, no máximo, 10 instâncias de VM.
  • O tamanho mínimo de um disco permanente regional padrão é 200 GB.
  • Só é possível aumentar o tamanho do volume do Disco permanente regional ou do Hyperdisk Balanced High Availability; não é possível diminuir o tamanho.
  • Os volumes do Disco permanente regional e do Hyperdisk Balanced High Availability têm desempenhos diferentes do que os discos zonais correspondentes. Para mais informações, consulte Desempenho do armazenamento em blocos.
  • Não é possível usar um volume do Hyperdisk Balanced High Availability que esteja no modo de vários gravadores como um disco de inicialização.
  • Se você criar um disco replicado clonando um disco zonal, as duas réplicas zonais não estarão totalmente sincronizadas no momento da criação. Após a criação, é possível usar o clone de disco regional em média em até três minutos. No entanto, talvez seja necessário aguardar diversos minutos até que o disco atinja um estado totalmente replicado e o objetivo de ponto de recuperação (RPO) esteja próximo de zero. Saiba como Verificar se o disco replicado foi totalmente replicado.

Sobre o uso de um disco regional como um disco de inicialização para uma instância

É possível anexar um Persistent Disk regional ou um disco de alta disponibilidade do hiperdisco equilibrada como um disco de inicialização para cargas de trabalho com estado provisionadas com antecedência, antes de provisionar uma carga de trabalho de produção. Os discos de inicialização regionais não são destinados a espera ativa, porque não podem ser anexados simultaneamente a duas instâncias de computação.

Só é possível criar Persistent Disk regional ou volumes do Hyperdisk Balanced High Availability a partir de snapshots. Não é possível criar um disco regional usando uma imagem.

Para usar um disco regional como o disco de inicialização de uma instância, use um destes métodos:

  1. Crie uma nova instância com um disco de inicialização regional.
  2. Crie um disco de inicialização regional e anexe-o a uma instância:
    1. Crie um disco regional com base em um snapshot de um disco de inicialização.
    2. Anexar um disco de inicialização regional a uma instância.

Se você precisar fazer o failover de um disco de inicialização regional para uma instância de espera em execução na zona de réplica, siga as etapas descritas em Anexar um disco de inicialização regional a uma instância.

Criar um disco regional

Crie um Persistent Disk regional ou um volume do Hyperdisk Balanced High Availability. O disco precisa estar na mesma região da instância de computação a que você planeja anexá-lo.

Se você criar um volume do Hyperdisk Balanced High Availability, também poderá permitir que diferentes instâncias acessem o disco simultaneamente definindo o modo de acesso ao disco. Para mais informações, consulte Compartilhar um disco entre instâncias.

Para o Persistent Disk regional, se você criar um disco no console do Google Cloud, o tipo de disco padrão será pd-balanced. Se você criar um disco usando a gcloud CLI ou REST, o tipo de disco padrão será pd-standard.

Console

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

    Acessar "Discos"

  2. Selecione o projeto necessário.

  3. Clique em Criar disco.

  4. Especifique um Nome para o disco.

  5. Em Local, escolha Regional.

  6. Selecione a Região e a Zona. É preciso selecionar a mesma região ao criar a instância.

  7. Selecione a Zona de réplica na mesma região. Anote as zonas selecionadas porque você precisa anexar o disco à instância em uma delas.

  8. Selecione o Tipo de origem do disco.

  9. Selecione o Tipo de disco e o Tamanho.

  10. Clique em Criar para concluir a criação do disco.

gcloud

Crie um disco regional usando o comando compute disks create.

Se você precisar de um disco permanente SSD regional para ter capacidade de processamento ou IOPS extras, inclua a sinalização --type e especifique pd-ssd.

gcloud compute disks create DISK_NAME \
   --size=DISK_SIZE \
   --type=DISK_TYPE \
   --region=REGION \
   --replica-zones=ZONE1,ZONE2
   --access-mode=DISK_ACCESS_MODE

Substitua:

  • DISK_NAME: o nome do novo disco
  • DISK_SIZE: o tamanho do novo disco em GB.
  • DISK_TYPE: Para o Persistent Disk regional, esse é o tipo do disco regional. O valor padrão é pd-standard. Para o Hyperdisk, especifique o valor hyperdisk-balanced-high-availability.
  • REGION: a região do disco regional, por exemplo, europe-west1.
  • ZONE1, ZONE2: as zonas dentro da região em que as duas réplicas de disco estão localizadas, por exemplo: europe-west1-b,europe-west1-c
  • DISK_ACCESS_MODE: opcional: como as instâncias podem acessar os dados no disco. Os valores aceitos são:

    • READ_WRITE_SINGLE, para acesso de leitura e gravação de uma instância. Esse é o padrão.
    • READ_WRITE_MANY, para acesso de leitura e gravação de várias instâncias.

    Só é possível definir o modo de acesso para discos do Hyperdisk Balanced High Availability.

Terraform

Para criar um disco permanente regional ou um volume do Hyperdisk Balanced High Availability, use o recurso google_compute_region_disk.

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

REST

Para criar um Disco permanente regional ou volume do Hyperdisk Balanced High Availability, crie uma solicitação POST para o método compute.regionDisks.insert.

Para criar um disco vazio, não especifique uma origem de snapshot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
  "name": "DISK_NAME",
  "region": "projects/PROJECT_ID/regions/REGION",
  "replicaZones": [
    "projects/PROJECT_ID/zones/ZONE1",
    "projects/PROJECT_ID/zones/ZONE2"
  ],
  "sizeGb": "DISK_SIZE",
  "type": "projects/PROJECT_ID/regions/REGION/diskTypes/DISK_TYPE",
  "accessMode": "DISK_ACCESS_MODE"
}

Substitua:

  • PROJECT_ID: ID do projeto
  • REGION: a região do disco regional, por exemplo, europe-west1.
  • DISK_NAME: o nome do novo disco
  • ZONE1, ZONE2: as zonas em que as réplicas do novo disco precisam estar localizadas.
  • DISK_SIZE: o tamanho do novo disco em GB.
  • DISK_TYPE: Para o Hyperdisk Balanced regional, este é o tipo de Hyperdisk Balanced. Para o Hyperdisk, especifique o valor hyperdisk-balanced-high-availability.
  • DISK_ACCESS_MODE: como as instâncias podem acessar os dados no disco. Os valores aceitos são:

    • READ_WRITE_SINGLE, para acesso de leitura e gravação de uma instância. Esse é o padrão.
    • READ_WRITE_MANY, para acesso de leitura e gravação de várias instâncias.

    Só é possível definir o modo de acesso para discos do Hyperdisk Balanced High Availability.

Anexar um disco regional à instância

Para discos que não são de inicialização, depois de criar um Persistent Disk regional ou um volume do Hyperdisk Balanced High Availability, é possível anexá-lo a uma instância. A instância precisa estar na mesma região que o disco.

Para anexar um disco de inicialização regional a uma instância, consulte Anexar um disco de inicialização regional a uma instância.

Para anexar um disco a várias instâncias, repita o procedimento desta seção para cada instância.

Console

  1. Para anexar um disco a uma instância, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância.

  3. Clique em Editar .

  4. Clique em Anexar disco atual.

  5. Escolha o disco regional criado anteriormente para adicionar à instância.

  6. Se você receber um aviso indicando que o disco selecionado já está anexado a outra instância, marque a caixa Forçar anexação de disco para forçar a anexação do disco à instância que você está editando.

    Confira os casos de uso para anexação forçada de discos regionais em Failover de disco regional.

  7. Clique em Salvar.

  8. Na página Editar VM, clique em Salvar.

gcloud

Para anexar um disco regional a uma instância em execução ou parada, use o comando compute instances attach-disk com a flag --disk-scope definida como regional.

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

Substitua:

  • INSTANCE_NAME: o nome da instância a que você está adicionando o disco regional.
  • DISK_NAME: o nome do novo disco que você está anexando à instância.

Terraform

Para anexar um Persistent Disk regional ou um volume do Hyperdisk Balanced High Availability a uma instância, use o recurso google_compute_attached_disk.

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      # Ephemeral IP
    }
  }

  # Ignore changes for persistent disk attachments
  lifecycle {
    ignore_changes = [attached_disk]
  }


}

REST

Para anexar um disco regional a uma instância em execução ou interrompida, crie uma solicitação POST para o método compute.instances.attachDisk e inclua o URL do disco regional que você criou.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
{
  "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 a que você está adicionando o novo disco regional.
  • REGION: a região em que o disco está localizado
  • DISK_NAME: o nome do disco regional

Para discos não inicializáveis, depois de criar e anexar um disco regional em branco a uma instância, é necessário formatar e montar o disco, para que o sistema operacional possa usar o espaço de armazenamento disponível.

Mudar um disco zonal para um disco regional

Para converter seu Persistent Disk zonal atual em um Persistent Disk regional, crie um novo disco clonando um disco zonal existente. Para mais informações, consulte Como criar um clone de disco regional a partir de um disco zonal.

Para converter um Hyperdisk em um disco regional, crie um novo disco do Hyperdisk Balanced High Availability com base em um snapshot do disco atual, conforme descrito em Mudar um disco zonal para um disco do Hyperdisk Balanced High Availability}}.

Criar uma nova instância com discos regionais

Ao criar uma instância, você pode incluir Persistent Disk regional ou Hyperdisk Balanced High Availability como discos adicionais.

Para criar e anexar um Persistent Disk regional ou um volume do Hyperdisk Balanced High Availability a uma instância durante a criação da instância, consulte uma destas opções:

Criar uma nova instância com um disco de inicialização regional

Ao configurar uma instância de computação altamente disponível, é possível criar a instância principal com um disco de inicialização regional. Se ocorrer uma interrupção zonal, você poderá reiniciar a instância na zona secundária em vez de criar uma nova.

Em uma configuração de alta disponibilidade, em que o dispositivo de inicialização é um disco regional, o Google recomenda não pré-criar e iniciar a instância de espera. Em vez disso, no estágio de failover, anexe o disco regional atual ao criar a instância de espera usando a opção forceAttach.

Para criar uma instância com um disco de inicialização regional, use um destes métodos:

gcloud

Use o comando gcloud compute instances create para criar uma instância e a flag --create-disk para especificar o disco regional.

gcloud compute instances create PRIMARY_INSTANCE_NAME  \
 --zone=ZONE  \
 --create-disk=^:^name=REGIONAL_DISK_NAME:scope=regional:boot=true:type=DISK_TYPE:source-snapshot=SNAPSHOT_NAME:replica-zones=ZONE,REMOTE_ZONE

Ao especificar os parâmetros de disco, os caracteres ^:^ definem que o caractere de separação entre os parâmetros é dois-pontos (:). Isso permite usar uma vírgula (,) ao especificar o parâmetro "replica-zones".

Substitua:

  • PRIMARY_INSTANCE_NAME: um nome para a instância
  • ZONE: o nome da zona em que você quer criar a instância.
  • REGIONAL_DISK_NAME: um nome para o disco regional
  • DISK_TYPE: o tipo de disco a ser criado, por exemplo, hyperdisk-balanced-high-availability ou pd-balanced.
  • SNAPSHOT_NAME: o nome do snapshot que você criou para o disco de inicialização
  • REMOTE_ZONE: a zona alternativa do disco regional

REST

Crie uma solicitação POST para o método instances.insert e especifique as propriedades boot: 'true' e replicaZones. Por exemplo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
 "name": "INSTANCE_NAME",
 "disks": [{
    "boot": true,
    "initializeParams": {
       "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
       "replicaZones": [
           "projects/PROJECT_ID/zones/ZONE",
           "projects/PROJECT_ID/zones/REMOTE_ZONE"
       ],
       "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE"
    }
  }],
 "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Substitua:

  • PROJECT_ID: ID do projeto;
  • ZONE: o nome da zona em que você quer criar a instância.
  • INSTANCE_NAME: um nome para a instância
  • BOOT_SNAPSHOT_NAME: o nome do snapshot do disco de inicialização
  • REMOTE_ZONE: a zona remota do disco regional
  • DISK_TYPE: o tipo de disco a ser criado, por exemplo, hyperdisk-balanced-high-availability ou pd-balanced.

Anexar um disco de inicialização regional a uma instância

Siga estas etapas:

  • Substitua o disco de inicialização de uma instância atual por um disco de inicialização regional.
  • Faça failover de um disco de inicialização regional para uma instância de espera ativa em execução na zona de backup. Para fazer isso, anexe o disco regional à instância como o disco de inicialização.

Estas etapas pressupõem que o disco regional e a instância já existem.

gcloud

  1. Interrompa a instância.
    gcloud compute instances stop INSTANCE_NAME  --zone=ZONE
    
  2. Remova o disco de inicialização atual da instância.
    gcloud compute instances detach-disk INSTANCE_NAME \
     --zone=ZONE --disk=CURRENT_BOOT_DEVICE_NAME
    
  3. Anexe o disco de inicialização regional à instância.
    gcloud compute instances attach-disk INSTANCE_NAME  \
     --zone=ZONE  \
     --disk=REGIONAL_DISK_NAME  \
     --disk-scope=regional --force-attach \
     --boot
    
  4. Reinicie a instância.

    gcloud compute instances start INSTANCE_NAME
    

Substitua as variáveis nos comandos anteriores pelas seguintes:

  • INSTANCE_NAME: o nome da instância a que você quer anexar o disco de inicialização regional.
  • ZONE: a zona em que a instância está localizada
  • CURRENT_BOOT_DEVICE_NAME: o nome do disco de inicialização que está sendo usado pela instância. Geralmente, é igual ao nome da instância.
  • REGIONAL_DISK_NAME: o nome do disco regional que você quer anexar à instância como um disco de inicialização.

Opcional: se não for possível remover o disco de inicialização regional da instância principal devido a uma interrupção ou falha, inclua a flag --force-attach.

REST

  1. Interrompa a instância.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
    
  2. Remova o disco de inicialização atual da instância.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=CURRENT_BOOT_DEVICE_NAME
    
  3. Anexe o disco de inicialização regional à instância.

    Crie uma solicitação POST para o método compute.instances.attachDisk e inclua o URL do disco de inicialização regional:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    {
    "source": "compute/v1/projects/PROJECT_ID/regions/REGION/disks/REGIONAL_DISK_NAME",
    "boot": true
    }
  4. Reinicie a instância.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
    

Substitua as variáveis nos comandos anteriores pelas seguintes:

  • PROJECT_ID: ID do projeto;
  • INSTANCE_NAME: o nome da instância a que você quer anexar o disco regional.
  • ZONE: a zona em que a instância está localizada
  • CURRENT_BOOT_DEVICE_NAME: o nome do disco de inicialização que está sendo usado pela instância. Geralmente, é igual ao nome da instância.
  • REGION: a região em que o disco regional está localizado.
  • REGIONAL_DISK_NAME: o nome do disco regional que você quer anexar à instância como um disco de inicialização.

Opcional: se não for possível remover o disco de inicialização regional da instância que foi originalmente anexado devido a uma interrupção ou falha, inclua "forceAttach": true no corpo da solicitação.

Listar e descrever os discos regionais

É possível conferir uma lista de todos os discos regionais configurados e informações sobre as propriedades, incluindo o seguinte:

  • ID do disco
  • Nome do disco
  • Tamanho
  • Tipo de disco
  • Região
  • Réplicas zonais

Para conferir informações detalhadas sobre os discos regionais, use o seguinte:

Redimensionar um disco regional

Se as instâncias com discos regionais precisarem de mais espaço de armazenamento, redimensione os discos. É possível redimensionar discos a qualquer momento, independentemente de o disco estar anexado a uma instância em execução. Se você precisar separar seus dados em volumes exclusivos, crie vários discos secundários para a instância. No Hyperdisk Balanced High Availability, também é possível aumentar os limites de IOPS e de capacidade de processamento do disco.

O comando para redimensionar um disco regional é muito semelhante ao comando para redimensionar um disco zonal. No entanto, é necessário especificar uma região em vez de uma zona para o local do disco.

É possível apenas aumentar, e não diminuir, o tamanho do disco. Para diminuir o tamanho do disco, crie um novo com um tamanho menor. Até excluir o disco maior e original, haverá cobrança pelos dois discos.

Para instruções sobre como modificar um disco regional, consulte:

A seguir