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 incluem estas diferenças:

  • 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 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 limitações a seguir:

  • 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 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, você receberá uma mensagem de erro se o disco estiver conectado a outra instância. Talvez seja necessário forçar a anexação. Para isso, marque a caixa Anexar à força no menu suspenso Mais discos.

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://www.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://www.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 de 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ções incorretas da VM, uma atualização de sistema operacional inválida ou outros modos de falha.

Console

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

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

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

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

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

  6. Clique em Gerenciamento, discos, rede, chaves SSH.
  7. Clique em Discos.
  8. Em Mais discos, clique em + Anexar disco atual.
  9. Selecione o disco permanente regional na lista suspensa.
  10. Marque a caixa para forçar a anexação do disco.
  11. Clique em Concluir.
  12. 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://www.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 redimensionar um disco permanente regional é idêntico ao redimensionamento de um disco permanente padrão. No entanto, há uma sinalização extra para a região.

Console

Como redimensionar 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 extra.

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://www.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 extra.

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 você tiver um disco permanente com dados que 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. Na coluna Nome, clique no nome da instância a que você quer anexar o disco. A página de detalhes da instância é aberta.
  3. No topo da página de detalhes da instância, clique em Editar.
  4. Na seção Discos adicionais, clique em Adicionar item para adicionar um item de disco à lista de discos permanentes anexados que não são de inicialização.
  5. Na coluna Nome, clique em Selecionar um disco e no nome do disco que você quer anexar. Se você criar um novo disco que não seja de inicialização, configure as propriedades dele e clique em Criar para aplicar as alterações.
  6. Na coluna Modo, clique em Leitura/gravação e mude para Somente leitura.
  7. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância.
  8. Conecte a instância e ative o disco.
  9. Repita esse processo para adicionar o disco a outras instâncias no 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 esse comando para cada instância em que você 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://www.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 essa solicitação para cada instância em que você quer adicionar o disco no modo somente leitura.

Migrar um disco permanente zonal para regional

Para converter os discos permanentes zonais atuais em discos permanentes regionais, faça um snapshot do disco atual e crie um regional a partir dele.

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 criado;
  • [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 snapshot de origem.

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://www.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://www.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
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine