Como adicionar ou redimensionar discos permanentes regionais

Nesta página, você aprende a adicionar e gerenciar recursos de armazenamento do disco permanente regional. Ao redimensionar um disco permanente regional, é possível apenas aumentar o tamanho dele, mas não reduzir.

Os discos permanentes regionais têm qualidades semelhantes aos discos permanentes zonais, mas são diferentes em vários aspectos:

  • Não é possível usá-los como discos de inicialização.
  • Eles são compatíveis com a anexação forçada a outra instância de máquina virtual (VM, na sigla em inglês) no caso de falha da zona.
  • É possível criar um disco permanente regional a partir de um snapshot, mas não de uma imagem.
  • Há diferenças no desempenho, descritas no documento Opções de armazenamento.

O disco permanente regional oferece replicação síncrona de dados entre duas zonas em uma mesma região. No caso improvável de uma falha de zona, a carga de trabalho pode sofre um failover para outra instância de VM na mesma zona ou em uma zona secundária. Nesse caso, é possível forçar a anexação do seu disco permanente regional a essa instância. A anexação forçada leva menos de um minuto para ser concluída.

É recomendado fazer o backup dos discos permanentes regionais usando snapshots para evitar a perda de dados não intencional.

O disco permanente regional é adequado para projetar sistemas robustos e para serviços de banco de dados com estado, como MySQL e Postgres, que exigem alta disponibilidade.

Leia Opções de armazenamento do Compute Engine para comparar os recursos e o desempenho deles.

Cada disco permanente criado tem um tamanho padrão de bloco físico de 4 KB. Se o aplicativo de banco de dados exige um tamanho de bloco físico maior, selecione 16 KB ao criar o disco. Esse recurso não é compatível com discos de inicialização. Se você quiser alterar o tamanho do bloco físico de um disco atual, capture um snapshot e crie um novo disco. Não edite diretamente o tamanho do bloco físico do disco.

Antes de começar

Limitações

Os discos permanentes regionais têm as seguintes limitações:

  • Não é possível usá-los como discos de inicialização.
  • É possível criar um disco permanente regional com base em um snapshot, mas não em uma imagem.
  • O tamanho mínimo de um disco permanente padrão regional é 200 GB.
  • Não é possível usar um disco permanente regional com um tipo de máquina com otimização de memória.

Como adicionar um disco permanente regional à instância.

Crie um disco permanente padrão regional ou um disco permanente SSD regional e anexe-o a uma instância. Se você não tem nenhuma instância, primeiro é necessário criar e iniciar uma instância nova. É preciso criar a instância na mesma região em que estão os seus discos.

Console

É preciso criar primeiro um disco permanente regional para anexá-lo a uma instância 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.

Crie um disco permanente regional.

  1. Acesse a página Discos.

    Acessar a página "Discos"

  2. Selecione o projeto.
  3. Clique em Criar disco.
  4. Especifique um nome para o disco.
  5. Escolha um tipo de disco.
  6. Marque a caixa Replicar este disco dentro da região.
  7. Selecione a região.

    Anote a região. É preciso selecionar a mesma região ao criar sua instância.

  8. Selecione duas zonas nessa região e clique em OK.

    É preciso selecionar duas zonas. Anote as zonas selecionadas. Você precisa anexar o disco à sua instância em uma dessas zonas.

  9. Escolha o Tipo de origem.
  10. Se quiser, escolha o Tamanho do bloco físico (KB). O padrão é 4 KB. No entanto, é possível selecionar 16 KB no menu suspenso para aumentar o tamanho do bloco físico do disco. Esse recurso está na versão Beta.
  11. Selecione a Criptografia.
  12. Clique em Criar para concluir a criação do disco.

Depois de criar um disco permanente regional, anexe-o à instância.

Ao anexar um disco a uma instância, você pode receber uma mensagem de erro se o disco já estiver conectado a outra instância. Talvez seja necessário forçar a anexação do disco à instância, marcando a caixa Forçar anexação do disco depois de clicar em Anexar disco existente.

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

gcloud

Crie e anexe um disco permanente regional com a ferramenta gcloud:

  1. Use o comando compute disks create para criar novos discos permanentes regionais. Se você precisar de um disco permanente SSD regional para ter capacidade ou IOPS extras, inclua a sinalização --type e especifique pd-ssd. Se quiser, adicione a sinalização --physical-block-size para definir o tamanho do bloco físico. Se você incluir essa sinalização, será necessário usar o comando beta compute disks create. Esse recurso está na versão Beta.

    gcloud beta compute disks create [DISK_NAME] \
        --size [DISK_SIZE] \
        --type [DISK_TYPE] \
        --region [REGION] \
        --replica-zones [ZONE1],[ZONE2] \
        --physical-block-size [BLOCK_SIZE]
    

    em que:

    • [DISK_NAME] é o nome do novo disco;
    • [DISK_SIZE] é o tamanho do novo disco em GB;
    • [DISK_TYPE] é o tipo de disco permanente. pd-standard ou pd-ssd;
    • [REGION] é a região em que o disco regional ficará. Por exemplo, europe-west1;
    • [ZONE1] e [ZONE2] são as zonas da região em que as duas réplicas de disco estão localizadas.
      É preciso selecionar duas zonas. Por exemplo, europe-west1-a,europe-west1-b;
    • [BLOCK_SIZE] é 4096 (4 KB) ou 16384 (16 KB). 4 KB é o tamanho do bloco físico padrão, e 16 KB é o tamanho do bloco físico aumentado. Use o comando beta compute disks create com essa sinalização. Esse recurso está na versão Beta.
  2. Depois de criar o disco, anexe-o a qualquer instância em execução ou interrompida. Use o comando compute instances attach-disk e inclua a sinalização --disk.

    gcloud compute instances attach-disk [INSTANCE_NAME] \
        --disk [DISK_NAME]
    

    em que:

    • [INSTANCE_NAME] é o nome da instância em que você está adicionando os novos discos permanentes regionais;
    • [DISK_NAME] é o nome do novo disco que você está anexando à instância.

    Depois de criar e anexar um novo disco a uma instância, é preciso formatar e ativar o disco para que o sistema operacional possa usar o espaço de armazenamento disponível.

  3. Use o comando compute disks describe para ver uma descrição do disco. A resposta inclui o tamanho do bloco físico do disco.

API

  1. Na API, crie uma solicitação POST para gerar um disco permanente regional. No corpo da solicitação compute.regionDisks.insert, inicialize um novo disco com as propriedades name e replicaZones. Para criar um disco vazio, não especifique nenhuma fonte de imagem ou de snapshot. Se quiser, inclua a propriedade physicalBlockSizeBytes para definir o tamanho de armazenamento do bloco físico. Use o método de API na versão Beta compute.regionDisks.insert nessa propriedade. Esse recurso está na versão Beta.

    POST https://compute.googleapis.com/compute/beta/projects/[PROJECT_ID]/regions/[REGION]
    
    {
     "name": "[DISK_NAME]",
     "physicalBlockSizeBytes": "[BLOCK_SIZE]",
     "replicaZones": [
       "projects/[PROJECT_ID]/zones/[ZONE1]",
       "projects/[PROJECT_ID]/zones/[ZONE2]"
       ],
     }
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [DISK_NAME] é o nome do novo disco;

    • [BLOCK_SIZE] é 4096 (4 KB) ou 16384 (16 KB). 4 KB é o tamanho do bloco físico padrão, e 16 KB é o tamanho do bloco físico aumentado. Use o método de API na versão Beta compute.regionDisks.insert nessa propriedade. Esse recurso está na versão Beta.

    • [ZONE1] e [ZONE2] são as zonas em que estão localizadas as réplicas dos novos discos.

  2. Na 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:

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

    em que:

    • [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;
    • [DISK_NAME] é o nome do novo disco.

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

Como acessar um disco permanente regional durante uma falha na zona

No caso improvável de uma interrupção zonal, é possível transferir o disco permanente regional para uma instância de VM em outra zona por meio do comando para forçar a anexação.

Se uma zona em que a instância de VM está em execução ficar indisponível, talvez seja impossível desanexar um disco da instância. Isso acontece porque não é possível acessar a instância para executar a operação de desanexação. Com a anexação forçada, você anexa um disco permanente regional a uma instância de VM, mesmo que esse disco esteja atualmente conectado a outra instância.

Depois de concluir a operação de anexação forçada, o Compute Engine impedirá que a VM original faça gravações no disco. Com a anexação forçada, você recupera com segurança o serviço e o acesso aos seus dados.

Uma gravação é confirmada novamente em uma VM somente quando persiste de maneira durável nas duas réplicas. Se uma das réplicas não estiver disponível, o Compute Engine só gravará na réplica íntegra. Quando a réplica não íntegra é colocada em backup conforme determinado pelo Compute Engine, ela é sincronizada de maneira transparente com a réplica em bom estado, e o modo de operação totalmente síncrono é retomado. Essa operação é transparente para uma VM.

No caso raro de as duas réplicas ficarem indisponíveis ao mesmo tempo, ou a réplica íntegra ficar indisponível enquanto a outra está sendo sincronizada, o disco correspondente ficará indisponível.

Você também tem a opção de encerrar manualmente a instância depois de realizar a etapa de anexação forçada.

Falha intrazona

Também é possível forçar a anexação do seu disco permanente regional a uma instância de VM na mesma zona. Essa opção de failover intrazona está disponível para lidar com interrupções causadas por configuração incorreta da VM, uma atualização de sistema operacional incorreta ou outros modos de falha.

Console

Crie uma instância de VM no modo de espera e force a anexação de um disco a uma instância.

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VM"

  2. Selecione o projeto.
  3. Clique em Criar instância.
  4. Especifique um Nome para sua instância.
  5. Selecione a região em que seu disco permanente reside.
  6. Selecione a zona alternativa em que seu disco foi anexado à instância da VM original.

    Seus discos são listados na página Discos.

  7. Clique em Gerenciamento, discos, rede, chaves SSH.
  8. Clique em Discos.
  9. Na seção Discos adicionais, clique em Anexar disco existente.
  10. Selecione o disco permanente regional na lista suspensa.
  11. Marque a caixa para forçar a anexação do disco.
  12. Clique em Concluir.
  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".
    Quando a zona se recuperar da interrupção, execute essas mesmas etapas para forçar a anexação de um disco à 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

em que:

  • [INSTANCE_NAME] é o nome da nova instância da VM na região;
  • [DISK_NAME] é o nome do disco;

Depois de forçar a anexação do 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. O parâmetro de consulta forceAttach=true é necessário para anexar o disco à nova instância de VM, 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]"
}

em que:

  • [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 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.

Como redimensionar um disco permanente regional

É possível redimensionar os discos quando as instâncias 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 instância. Você pode reescalonar discos a qualquer momento, independentemente de o disco estar anexado a uma instância 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.

Console

Como reescalonar um disco permanente regional.

  1. Acesse a página Discos.

    Acessar a página "Discos"

  2. Selecione o disco que você quer reescalonar.
  3. Clique em Editar no topo da página.
  4. Digite o tamanho do disco em GB.

    É possível aumentar o tamanho de um disco. Não é possível diminuí-lo.

  5. Clique em Salvar.
  6. Depois de redimensionar o disco, é preciso redimensionar o sistema de arquivos para que o sistema operacional possa acessar o espaço extra.

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

gcloud

Na ferramenta gcloud, use o comando compute disks resize. Especifique a sinalização --size com o tamanho de disco pretendido em GB e --region com a região em que o disco está localizado.

gcloud compute disks resize [DISK_NAME] \
    --region [REGION]  \
    --size [DISK_SIZE]

em que:

  • [DISK_NAME] é o nome do disco que você está redimensionando;
  • [REGION] é a região em que o disco está localizado;
  • [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 agregado.

API

Na API, crie uma solicitação POST para o método compute.regionDisks.resize. No corpo da solicitação, especifique o parâmetro sizeGb e defina-o como o tamanho de disco pretendido em GB.

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

{
 "sizeGb": "[DISK_SIZE]"
}

em que:

  • [PROJECT_ID] é o ID do projeto;
  • [REGION] é a região em que o 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 agregado.

Como compartilhar um disco permanente regional entre várias instâncias

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

Se você anexar um disco permanente a várias instâncias, é necessário fazê-lo em modo somente leitura para todas. Não é possível anexar o disco permanente a várias instâncias em modo de leitura e gravação. Se for necessário compartilhar espaço de armazenamento dinâmico entre várias instâncias, use uma destas opções:

Se o disco permanente tem dados que você quer compartilhar entre várias instâncias, desanexe-o de todas as instâncias de leitura e gravação e anexe-o a uma ou mais instâncias no modo somente leitura.

Console

  1. Acesse a página Instâncias para ver a lista de instâncias no projeto.

    Acessar a página "Instâncias"

  2. Clique no nome da instância em que você quer anexar o disco. A página de detalhes da instância será aberta.
  3. Na parte superior da página de detalhes da instância, clique em Editar.
  4. Na seção Discos adicionais, clique em Anexar disco existente.
  5. Selecione o disco permanente regional na lista suspensa.
  6. Na seção Modo, selecione Somente leitura.
  7. Clique em Concluir.
  8. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância.
  9. Conecte a instância e ative o disco.
  10. Repita este processo para adicionar o disco a outras instâncias em modo somente leitura.

gcloud

Na ferramenta gcloud, use o comando compute instances attach-disk e especifique a sinalização --mode com a opção ro.

gcloud beta compute instances attach-disk [INSTANCE_NAME] --disk [DISK_NAME] \
    --disk-scope regional --mode ro

em que:

  • [INSTANCE_NAME] é o nome da instância a que você quer anexar o disco permanente;
  • [DISK_NAME] é o nome do disco que você quer anexar.

Depois de anexar o disco, conecte-se à instância e ative o disco.

Repita este comando para cada instância onde quer adicionar esse disco no modo somente leitura.

API

Na API, 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/[INSTANCE_NAME]/attachDisk

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

em que:

  • [PROJECT_ID] é o ID do projeto;
  • [ZONE] é a zona da instância;
  • [INSTANCE_NAME] é o nome da instância a que você quer anexar o disco permanente;
  • [REGION] é a região em que o disco está localizado;
  • [DISK_NAME] é o nome do disco que você está anexando.

Depois de anexar o disco, conecte-se à instância e ative o disco.

Repita esta solicitação para cada instância onde você quer adicionar esse disco no modo somente leitura.

Migrar um disco permanente zonal para um disco permanente regional

Para converter seus discos permanentes zonais existentes em discos persistentes regionais, faça um instantâneo do disco permanente atual e crie um regional a partir do instantâneo.

gcloud

Na ferramenta gcloud, use o comando compute disks snapshot e especifique as sinalizações --zone e --snapshot-name.

gcloud compute disks snapshot [DISK_NAME] \
    --zone [ZONE] \
    --snapshot-name [SNAPSHOT_DISK_NAME]

em que:

  • [DISK_NAME] é o nome do disco que terá o snapshot capturado;
  • [ZONE] é onde o disco zonal de origem está localizado;
  • [SNAPSHOT_DISK_NAME] é o nome do disco com o snapshot recém-criado.

Use o comando compute disks create para criar um disco regional a partir de um snapshot do disco zonal. Especifique o nome do disco e as sinalizações --region, --replica-zones e --source-snapshot.

gcloud compute disks create [DISK_NAME] \
    --region [REGION] \
    --replica-zones [ZONE1],[ZONE2] \
    --source-snapshot [SNAPSHOT_DISK_NAME]

em que:

  • [DISK_NAME] é o nome do novo disco;
  • [REGION] é a região em que o disco ficará;
  • [ZONE1] e [ZONE2] são as zonas em que ficarão as réplicas dos novos discos permanentes regionais;
  • [SNAPSHOT_DISK_NAME] é o nome do disco de origem do snapshot.

Use o mesmo método para migrar discos regionais para discos zonais.

API

Na API, crie uma solicitação POST para o método compute.disk.createSnapshot para gerar um snapshot de um disco. No corpo da solicitação, especifique a zone em que o disco está localizado, o nome do disk usado para gerar o snapshot e createSnapshot.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/disks/[DISK_NAME]/createSnapshot

em que:

  • [PROJECT_ID] é o ID do projeto;
  • [ZONE] é a zona em que o disco está localizado;
  • [DISK_NAME] é o nome do disco usado para gerar o snapshot.

Na API, crie uma solicitação POST para gerar um disco permanente regional. No corpo da solicitação compute.regionDisks.insert, inicialize um novo disco e especifique o nome dele e as propriedades das zonas de réplica. Como este é um disco de dados, não inclua a propriedade sourceImage, que cria um disco em branco:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/disks

{
 "name": "[DISK_NAME]",
 "sourceSnapshot": "global/snapshots/[SNAPSHOT_NAME]",
 "replicaZones": [
 "projects/[PROJECT_ID]/zones/[ZONE1]",
 "projects/[PROJECT_ID]/zones/[ZONE2]"
 ],
}

em que:

  • [PROJECT_ID] é o ID do projeto;
  • [REGION] é a região em que o disco ficará;
  • [DISK_NAME] é o nome do novo disco;
  • [SNAPSHOT_NAME] é o snapshot a ser restaurado;
  • [ZONE1] e [ZONE2] são as zonas em que ficarão as réplicas dos novos discos permanentes regionais; A seguir