Criar e gerenciar volumes do Persistent Disk regional


O Persistent Disk regional é uma opção de armazenamento que permite implementar serviços de alta disponibilidade (HA, na sigla em inglês) no Compute Engine. O Persistent Disk regional replica de maneira síncrona dados entre duas zonas na mesma região e garante alta disponibilidade para dados de disco em até uma falha zonal. É possível usar o Persistent Disk regional com sua máquina virtual (VM) de uma das seguintes maneiras:

Neste documento, explicamos como fazer as seguintes tarefas no Persistent Disk regional:

  • Criar e gerenciar volumes do Persistent Disk regional
  • Adicionar um Persistent Disk regional às VMs

Antes de começar

  • Revise as diferenças entre os diferentes tipos de disco permanente.
  • Revise os conceitos básicos do Persistent Disk regional.
  • Leia sobre failover de disco permanente 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 da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    Terraform

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

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. Crie as credenciais de autenticação para sua Conta do Google:

      gcloud auth application-default login

    Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.

    REST

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

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Limitações

  • Só é possível anexar Persistent Disk regionais a VMs que usam tipos de máquina E2, N1, N2 e N2D.
  • Não é possível criar um Persistent Disk regional com base em 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 de um volume do Persistent Disk regional. Não é possível diminuir o tamanho dele.
  • Os volumes de disco permanente regional têm características de desempenho diferentes dos volumes zonais. Para mais informações, consulte Desempenho do armazenamento em blocos.
  • Se você criar um disco permanente regional 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 Persistent Disk regional está totalmente replicado.

Criar uma nova VM com disco permanente regional

Ao criar uma VM, você tem a opção de incluir volumes regionais de discos permanentes como discos adicionais.

Para criar e anexar um volume regional de disco permanente a uma VM durante a criação da VM, consulteCriar uma instância de VM com discos extras que não sejam de inicialização ou Criar um novo modelo de instância do Google Analytics.

Adicione um Persistent Disk regional à VM

Crie um Persistent Disk regional e o anexe a uma VM. A VM precisa estar na mesma região dos discos.

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 CLI gcloud ou REST, o tipo de disco padrão será pd-standard.

Console

Primeiro, é preciso criar o volume regional de discos permanentes e, em seguida, anexá-lo a uma instância de VM atual. Não é possível criar discos permanentes regionais como discos de inicialização porque eles não podem ser anexados à força durante um failover.

Criar um volume regional de discos permanentes

  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 VM.

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

  8. Selecione o Tipo de origem do disco.

  9. Selecione o Tipo de disco e o Tamanho. O padrão é um disco permanente equilibrado de 100 GiB.

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

Anexar o volume regional do disco permanente à VM

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

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da VM.

  3. Clique em Editar .

  4. Clique em Anexar disco atual.

  5. Escolha o Persistent Disk regional para adicionar à VM.

  6. Se você vir 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 à VM em que você está editando.

    Para mais informações sobre casos de uso da anexação forçada de volumes de disco permanente regional, consulte Failover de disco permanente regional.

  7. Clique em Save.

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

gcloud

Crie e anexe um disco permanente regional usando a Google Cloud CLI:

  1. Crie um volume de disco permanente regional usando o comando compute disks create. Se você precisar de um disco permanente SSD regional para ter capacidade 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
    

    Substitua:

    • DISK_NAME: o nome do novo disco
    • DISK_SIZE: o tamanho do novo disco em GB.
    • DISK_TYPE: o tipo do disco permanente O valor padrão é pd-standard.
    • 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
  2. Anexe o disco a uma VM em execução ou parada usando o comando compute instances attach-disk com a sinalização --disk-scope definida como regional.

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

    Substitua:

    • VM_NAME: o nome da VM a que você está adicionando os novos volumes regionais de disco permanente.
    • DISK_NAME: o nome do novo disco que você está anexando à VM.

Terraform

Para criar um disco permanente regional, 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

  1. Para criar um volume regional de disco permanente, crie uma solicitação POST para o método compute.regionDisks.insert. Para criar um disco vazio, não especifique nenhuma fonte de imagem ou 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"
    }
    

    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: o tipo do disco permanente O valor padrão é pd-standard.
  2. Para anexar o disco, crie uma solicitação POST para o método compute.instances.attachDisk e inclua o URL no disco permanente que você criou.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk
    {
     "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto
    • ZONE: o local da VM.
    • VM_NAME: nome da VM a que você está adicionando o volume do novo disco permanente.
    • REGION: a região em que o disco está localizado
    • DISK_NAME: o nome do novo disco

Depois de criar e anexar um novo disco a uma VM, é preciso formatá-lo e ativá-lo para que o sistema operacional possa usar o espaço de armazenamento disponível.

Usar o Persistent Disk regional como um disco de inicialização da VM

Anexe um Persistent Disk regional 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. O Persistent Disk regional não é destinado a espera ativa, porque os discos de inicialização regionais não podem ser anexados simultaneamente a duas VMs.

Só é possível criar um Persistent Disk regional com base em snapshots. não é possível criar um Persistent Disk regional usando uma imagem.

Para usar um Persistent Disk regional como um disco de inicialização de VM:

  1. Crie um disco regional com base em um snapshot.
  2. Anexe o disco como um de inicialização usando as instruções a seguir.

Criar uma nova VM com discos de inicialização de Persistent Disk regionais

Ao configurar uma VM altamente disponível, é possível criar a VM principal com discos de inicialização regionais do Persistent Disk. Isso permite que você reinicie a VM em caso de uma interrupção zonal.

Em uma configuração de alta disponibilidade, em que o dispositivo de inicialização é um Persistent Disk regional, o Google recomenda não pré-criar e pré-executar 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 VM com um disco de inicialização que seja um Persistent Disk regional:

gcloud

gcloud compute instances create PRIMARY_INSTANCE_NAME  \
 --zone=ZONE  \
 --create-disk=^:^name=REPD_DISK_NAME:scope=regional:boot=true: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 por um nome para a VM
  • ZONE pelo nome da zona em que você quer criar a VM.
  • REPD_DISK_NAME por um nome para o Persistent Disk regional
  • SNAPSHOT_NAME pelo nome do snapshot que você criou para o disco de inicialização
  • REMOTE_ZONE pela zona alternativa do Persistent Disk regional

REST

Para criar uma nova VM com disco regional durante a criação da VM, especifique boot: 'true' e replicaZones. Exemplo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
 "name": "VM_NAME",
 "disks": [{
    "boot": true,
    "initializeParams": {
      "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
      "replicaZones": [
           "projects/PROJECT_ID/zones/ZONE",
           "projects/PROJECT_ID/zones/REMOTE_ZONE"]
   }
  }],
}

Substitua:

  • PROJECT_ID: ID do projeto;
  • ZONE: o nome da zona em que você quer criar a VM
  • VM_NAME: um nome para a VM
  • BOOT_SNAPSHOT_NAME: o nome do snapshot do disco de inicialização
  • REMOTE_ZONE: a zona remota do Persistent Disk regional

Para criar uma segunda VM na zona de failover e recuperar uma VM principal que use o Persistent Disk regional para o disco de inicialização, faça o seguinte:

gcloud

gcloud compute instances create STANDBY_VM_NAME  \
 --zone=ZONE  \
 --disk=boot=yes,name=DISK_NAME,scope=regional,force-attach=true

Substitua:

  • STANDBY_VM_NAME pelo nome da VM em espera
  • ZONE pelo nome da zona em que o Persistent Disk regional é replicado
  • DISK_NAME pelo nome do Persistent Disk regional que você quer anexar

Opcional: se não for possível remover o disco de inicialização do Persistent Disk regional da VM à qual ele foi originalmente anexado devido a uma interrupção ou falha, inclua force-attach=true.

Anexar um Persistent Disk regional como um disco de inicialização a uma VM atual

Use as etapas a seguir para fazer o failover para uma VM secundária que esteja em execução na zona de backup. Para isso, anexe o disco permanente regional à VM como o disco de inicialização. Para estas etapas, supomos que você já tenha criado o Persistent Disk regional a partir de um snapshot padrão.

gcloud

  1. Pare a VM.
    gcloud compute instances stop STANDBY_VM_NAME  --zone=ZONE
    
  2. Remova o disco de inicialização atual da VM.
    gcloud compute instances detach-disk STANDBY_VM_NAME  
    --zone=ZONE --disk=CURRENT_BOOT_DEVICE_NAME
  3. Anexe o Persistent Disk regional à VM.
    gcloud compute instances attach-disk STANDBY_VM_NAME  
    --zone=ZONE
    --disk=REPD_DISK_NAME
    --disk-scope=regional --force-attach
  4. Reinicie a VM.

    gcloud compute instances start STANDBY_VM_NAME
    

Substitua as variáveis nos comandos anteriores pelas seguintes:

  • STANDBY_VM_NAME: o nome da VM a que você quer anexar o Persistent Disk regional.
  • ZONE: a zona em que a VM está localizada
  • CURRENT_BOOT_DEVICE_NAME: o nome do disco de inicialização que está sendo usado pela VM. Geralmente, é igual ao nome da VM.
  • REPD_DISK_NAME: o nome do Persistent Disk regional que você quer anexar à VM como um disco de inicialização.

Opcional: se não for possível remover o disco de inicialização do Persistent Disk regional da VM que foi originalmente anexado devido a uma interrupção ou falha, inclua a sinalização --force-attach.

REST

  1. Pare a VM.

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/STANDBY_VM_NAME/detachDisk?deviceName=CURRENT_BOOT_DEVICE_NAME
    
  3. Anexe o Persistent Disk regional à VM.

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/STANDBY_VM_NAME/attachDisk
    {
    "source": "compute/v1/projects/PROJECT_ID/regions/REGION/disks/REPD_DISK_NAME",
    "boot": true
    }
  4. Reinicie a VM.

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

Substitua as variáveis nos comandos anteriores pelas seguintes:

  • PROJECT_ID: ID do projeto
  • STANDBY_VM_NAME: o nome da VM a que você quer anexar o Persistent Disk regional.
  • ZONE: a zona em que a VM está localizada
  • CURRENT_BOOT_DEVICE_NAME: o nome do disco de inicialização que está sendo usado pela VM. Geralmente, é igual ao nome da VM.
  • REGION: a região em que o Persistent Disk regional está localizado.
  • REPD_DISK_NAME: o nome do Persistent Disk regional que você quer anexar à VM como um disco de inicialização.

Opcional: se não for possível remover o disco de inicialização do Persistent Disk regional da VM que foi originalmente anexada devido a uma interrupção ou falha, inclua "forceAttach": true no corpo da solicitação.

Liste e descreva os volumes regionais do Persistent Disk

É possível conferir uma lista de todos os volumes de disco permanente 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 ver informações detalhadas sobre os volumes de Persistent Disk regionais, use uma das seguintes opções: REST e CLI gcloud.

  • Para conferir os detalhes de todos os volumes de disco permanente regional em uma região e um projeto específicos, use o método compute.regionDisks.list.
  • Para conferir os detalhes de um volume específico de Persistent Disk regional, execute o comando gcloud compute disks describe com a sinalização --region e especifique o nome do seu disco e a região dele (em inglês).

Redimensionar um disco permanente regional

É possível redimensionar os discos quando as VMs com discos regionais permanentes precisam de mais espaço de armazenamento, IOPS ou capacidade. Se precisar separar seus dados em volumes exclusivos, crie vários discos secundários para a VM. Você pode reescalonar discos a qualquer momento, independentemente do disco estar anexado a uma VM em execução.

O comando para reescalonar um disco permanente regional é idêntico ao reescalonamento de um disco permanente padrão, no entanto, há uma sinalização adicional para a região.

É 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.

Console

Redimensionar um disco permanente regional

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

    Acessar "Discos"

  2. Selecione o disco que você quer redimensionar.

  3. Clique em Editar no topo da página.

  4. Digite o tamanho do disco em GB.

  5. Clique em Salvar para concluir o redimensionamento do disco.

O novo tamanho do disco é exibido na lista de discos.

gcloud

Na CLI gcloud, redimensione o disco permanente regional usando o comando compute disks resize.

gcloud compute disks resize DISK_NAME \
    --region=REGION  \
    --size=DISK_SIZE

Substitua:

  • DISK_NAME: o nome do disco que você está redimensionando
  • REGION: a região onde o disco está localizado.
  • DISK_SIZE: o novo tamanho do disco em GB.

Terraform

Para alterar o tamanho de um disco permanente regional, use o recurso google_compute_region_disk e o parâmetro size.

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"]
}

Se você incluir o parâmetro size com o parâmetro image ou snapshot, o valor size precisa ser igual ou maior que o tamanho da imagem ou do snapshot.

Se você omitir os parâmetros image e snapshot, poderá definir o parâmetro size como menor que o tamanho do disco atual. Se você fizer isso, o Terraform destruirá o disco e criará um novo disco permanente vazio. Durante a recriação, o Terraform não copia outros dados que também não estejam incluídos na configuração do Terraform, como rótulos ou programações de snapshot. Para impedir que o Terraform destrua e recrie um disco, adicione a configuração lifecycle.prevent_destroy = true à configuração do Terraform.

REST

Para redimensionar o Persistent Disk regional, crie uma solicitação POST para o método compute.regionDisks.resize.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize

{
  "sizeGb": "DISK_SIZE"
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • REGION: a região onde seu disco está localizado.
  • DISK_NAME: o nome do disco que você está redimensionando
  • DISK_SIZE: o novo tamanho do disco em GB.

Depois de redimensionar o disco, é preciso redimensionar o sistema de arquivos para que o sistema operacional possa acessar o espaço extra.

Compartilhar um disco permanente somente leitura entre várias VMs

É possível anexar um disco permanente que não seja de inicialização a mais de uma VM no modo somente leitura. Isso permite o compartilhamento de dados estáticos entre várias VMs. O compartilhamento de dados estáticos entre várias VMs de um disco permanente é mais barato do que replicar os dados em discos únicos para VMs individuais.

Se for necessário compartilhar espaço de armazenamento dinâmico entre várias VMs, use uma das seguintes opções:

Se o disco permanente tiver dados que você quer compartilhar entre múltiplas VMs, remova-o de todas as VMs de leitura/gravação e o anexe a uma ou mais VMs no modo somente leitura.

Console

Compartilhar um disco permanente somente leitura entre várias VMs

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

    Acessar instâncias de VM

  2. Clique no nome da VM em que você quer anexar o disco. A página de detalhes da instância de VM será aberta.

  3. Na parte superior da página, clique em Editar.

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

  5. Selecione o disco permanente regional na lista.

  6. Na seção Modo, selecione Somente leitura.

  7. Clique em Concluído.

  8. Na parte inferior da página, clique em Salvar para aplicar as alterações à VM.

gcloud

Na CLI gcloud, compartilhe um disco permanente somente leitura entre várias VMs usando o comando compute instances attach-disk com a sinalização--disk-scope definida como regional e a sinalização --mode definida como ro

gcloud beta compute instances attach-disk /VM_NAME \
    --disk=DISK_NAME \
    --disk-scope=regional \
    --mode=ro

Substitua:

  • VM_NAME: o nome da VM à qual você quer anexar o disco permanente.
  • DISK_NAME: o nome do disco que você quer anexar.

REST

Para compartilhar um disco permanente somente leitura entre várias VMs, crie uma solicitação POST para o método compute.instances.attachDisk. No corpo da solicitação, especifique o parâmetro mode como READ_ONLY.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk

{
  "source": "regions/REGION/disks/DISK_NAME",
  "mode": "READ_ONLY"
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • ZONE: a zona da VM
  • VM_NAME: o nome da VM à qual você quer anexar o disco permanente.
  • REGION: a região onde seu disco está localizado.
  • DISK_NAME: o nome do disco que você está anexando

Depois de anexar o disco, conecte-se a cada VM à qual quer anexar o disco no modo somente leitura e ative o disco.

Migrar um disco permanente zonal para regional

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

A seguir