Use um disco permanente como um disco de inicialização de uma instância de máquina virtual (VM, na sigla em inglês) ou como um disco de dados anexado a uma VM. Ao criar um disco permanente, é possível criar um disco permanente em branco ou um disco de uma origem para que o novo disco contenha dados dessa origem.
Fonte de dados
É possível criar discos permanentes a partir das seguintes fontes de dados:
Discos atuais: Clone um disco permanente atual. Use essa opção se precisar de uma cópia instantaneamente de um disco permanente atual que não seja de inicialização.
Snapshots: crie um disco que não seja de inicialização a partir de um snapshot padrão ou de um instant snapshot. Use essa opção para restaurar dados de um disco permanente armazenado em backup usando snapshots.
Imagens: crie um disco de inicialização a partir de uma imagem de origem. Use essa opção para criar um disco de inicialização para uma nova VM ou criar um disco permanente de inicialização independente.
Antes de começar
-
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
-
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
- 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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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.
Go
Para usar as amostras de Go 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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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.
Java
Para usar as amostras de Java 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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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.
Python
Para usar as amostras de Python 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.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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
-
Como criar um clone de disco a partir de um disco atual
É possível criar um novo clone de disco permanente a partir de um disco permanente, mesmo que ele esteja anexado a uma instância de VM. Quando você clona um disco, você cria um novo disco que contém todos os dados no disco de origem. É possível modificar as propriedades nesse clone, como o tamanho. Também é possível excluir o disco de origem sem o risco de excluir o clone.
A capacidade de clonar discos é útil para duplicar dados de produção para depuração sem perturbar a produção, duplicar discos ao escalonar suas VMs horizontalmente e criar réplicas para verificação de backup de banco de dados. Também é possível clonar discos para mover dados de disco que não são de inicialização em um novo projeto. Para cenários em que a proteção de dados seja necessária para maior resiliência, como backup e recuperação de desastres, recomendamos o uso de snapshots em vez de clones de disco.
Se você quiser capturar o estado de um disco em intervalos diferentes, mas não precisar de um novo disco anexável todas as vezes, considere o uso de snapshots instantâneos.
Embora não sejam adequados para recuperação de desastres, os snapshots instantâneos podem ser mais eficientes em termos de armazenamento do que criar vários clones do mesmo disco. Isso ocorre porque os snapshots instantâneos são backups incrementais.
Se você precisar replicar um disco rapidamente, como para fazer uma depuração rápida, use um clone de disco.
Conheça outras opções de backup de dados no Compute Engine.
Restrições
- O tipo de disco do clone precisa ser igual ao do disco de origem.
- Não é possível criar um clone de disco zonal a partir de um disco regional.
- Não é possível criar um clone de disco zonal de um disco zonal existente em uma zona diferente.
- O tamanho do clone precisa ser pelo menos do tamanho do disco de origem. Se você criar um clone usando o console do Google Cloud, não será possível especificar um tamanho de disco e o clone será do mesmo tamanho do disco de origem.
- Se você usar uma chave de criptografia fornecida pelo cliente ou uma chave de criptografia gerenciada pelo cliente para criptografar o disco de origem, será necessário usar a mesma chave para criptografar clone. Para obter mais informações, consulte Como criar um clone de um disco de origem criptografado.
- É possível criar no máximo um clone de um determinado disco de origem ou os clones dele a cada 30 segundos.
- É possível ter no máximo 1.000 clones de disco simultâneos de um determinado disco de origem ou os clones dele.
Exceder esse limite retorna um
internalError
. No entanto, se você criar um clone de disco e excluí-lo mais tarde, o clone de disco excluído não será incluído nesse limite. - Depois que um disco é clonado, qualquer clone subsequente desse disco ou dos respectivos clones é contabilizado no limite de 1.000 clones de disco simultâneos no disco de origem original e contabilizados no limite da criação de no máximo um clone a cada 30 segundos.
Mensagens de erro
Se você exceder os limites de frequência de clonagem, a solicitação falhará com o seguinte erro:
RATE LIMIT: ERROR: (gcloud.compute.disks.create) Could not fetch resource: - Operation rate exceeded for resource RESOURCE. Too frequent operations from the source resource.
Criar um clone do disco
É possível clonar um disco atual em um novo disco usando o console do Google Cloud, a Google Cloud CLI ou a API Compute Engine.Console
No console do Google Cloud, acesse a página Discos.
Na lista de discos permanentes zonais, localize o disco que você quer clonar.
Clique no botão de menu em Ações e selecione Clonar disco.
No painel Clonar disco, especifique um nome para o novo disco.
Em Propriedades, revise outros detalhes do novo disco.
Clique em Salvar.
gcloud
Na gcloud CLI, use o comando disks create
e especifique o --source-disk
. No exemplo a seguir,
um disco de origem é clonado para um novo disco em um projeto diferente.
gcloud compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME
Substitua:
TARGET_PROJECT_ID
: o ID do projeto do novo disco;ZONE
: a zona da origem e o novo disco;TARGET_DISK_NAME
: o nome do novo disco.SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;SOURCE_DISK_NAME
: o nome do disco de origem.
Terraform
Para criar um clone de disco, use o recurso google_compute_disk
.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Go
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Na API, crie uma solicitação POST
para o método
compute.disks.insert
. No corpo da solicitação,
especifique os parâmetros name
e sourceDisk
. O clone herda todas
as propriedades omitidas do disco de origem. No exemplo a seguir,
um disco de origem é clonado para um novo disco em um projeto diferente.
POST https://compute.googleapis.com/compute/v1/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" }
Substitua:
TARGET_PROJECT_ID
: o ID do projeto do novo disco;ZONE
: a zona da origem e o novo disco;TARGET_DISK_NAME
: o nome do novo disco.SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;SOURCE_DISK_NAME
: o nome do disco de origem.
Como criar um clone de disco regional a partir de um disco zonal
É possível clonar um disco zonal existente para criar um novo. Para migrar um disco zonal para um disco regional, o Google recomenda essa opção em vez de criar um snapshot do disco zonal e restaurar o snapshot para um novo disco regional.
Restrições
Para criar um clone de disco regional a partir de um disco zonal de origem, uma das zonas de réplica do clone precisa corresponder à zona do disco de origem.Após a criação, o clone do disco regional pode ser usado em três minutos, em média. No entanto, o disco pode levar dezenas de minutos para se tornar totalmente replicado e chegar a um estado em que o objetivo do ponto de recuperação (RPO, na sigla em inglês) está perto de zero.
A taxa em que é possível clonar o espaço em disco é limitada. É possível criar no máximo 1 TB de disco clonado a cada 15 minutos, com um limite de solicitação de burst de 257 TB.
Console
No console do Google Cloud, acesse a página Discos.
Na lista de discos permanentes zonais, localize o disco que você quer clonar.
Clique no botão de menu em Ações e selecione Clonar disco.
No painel Clonar disco, especifique um nome para o novo disco.
Em Local, selecione Regional e selecione duas zonas de réplica para o novo disco regional.
Em Propriedades, revise outros detalhes do novo disco.
Clique em Salvar.
gcloud
Crie um clone de disco regional a partir de um disco zonal e forneça o disco de origem e duas zonas de réplica para o novo disco regional usando o seguinte comando gcloud
compute disks create
.
O exemplo a seguir supõe que os discos de origem e de destino estejam no mesmo projeto.
gcloud compute disks create TARGET_DISK_NAME \ --description="zonal to regional cloned disk" \ --region=REGION_1 \ --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=REGION_1_ZONE_1 \ --replica-zones=REGION_1_ZONE_1,REGION_1_ZONE_2 \ --project=PROJECT_ID
Substitua:
TARGET_DISK_NAME
: o nome do novo disco regional;REGION_1
: a região do novo disco regional;SOURCE_DISK_NAME
: o nome do disco zonal que será clonado;REGION_1_ZONE_1
: uma das duas zonas de réplica do novo disco regionalREGION_1_ZONE_2
: a outra zona de réplica para o novo disco regionalPROJECT_ID
: o ID do projeto
Terraform
Para criar um clone de disco regional a partir de um disco zonal, é possível criar um snapshot do disco zonal e depois clonar o snapshot. Para isso, siga estes recursos:
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Go
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Forneça o disco de origem e duas zonas de réplica para o novo disco regional. O exemplo a seguir supõe que os discos de origem e de destino estejam no mesmo projeto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_1/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/REGION_1_ZONE_1/disks/SOURCE_DISK_NAME" "replicaZone": "REGION_1_ZONE_1,REGION_1_ZONE_2" }
Substitua:
PROJECT_ID
: o ID do projetoREGION_1
: a região do novo disco regional;TARGET_DISK_NAME
: o nome do novo disco regional;REGION_1_ZONE_1
: uma das duas zonas de réplica do novo disco regionalSOURCE_DISK_NAME
: o nome do disco zonal que será clonado;REGION_1_ZONE_2
: a outra zona de réplica para o novo disco regional
Como criar um clone de um disco de origem criptografado
Se você usar uma chave de criptografia fornecida pelo cliente para criptografar seu disco de origem, também será necessário usar a mesma chave para criptografar o clone.Console
No console do Google Cloud, acesse a página Discos.
Na lista de discos permanentes zonais, localize o disco que você quer clonar.
Clique no botão de menu em Ações e selecione Clonar disco.
No painel Clonar disco, especifique um nome para o novo disco.
Forneça a chave de criptografia do disco de origem em Descriptografia e criptografia.
Em Propriedades, revise outros detalhes do novo disco.
Clique em Salvar.
gcloud
Forneça a chave de criptografia do disco de origem usando a sinalização --csek-key-file
ao criar o clone do disco. Se você estiver usando uma chave incorporada por RSA, utilize o componente gcloud beta
:
gcloud beta compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --csek-key-file example-key-file.json
Substitua:
TARGET_PROJECT_ID
: o ID do projeto do novo disco;ZONE
: zona da origem e do novo disco;TARGET_DISK_NAME
: nome do novo disco;SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;SOURCE_DISK_NAME
: nome do disco de origem.
Go
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Forneça a chave de criptografia do disco de origem usando a propriedade diskEncryptionKey
.
POST https://compute.googleapis.com/compute/beta/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, }
Substitua:
TARGET_PROJECT_ID
: o ID do projeto do novo disco;ZONE
: a zona da origem e o novo disco;TARGET_DISK_NAME
: o nome do novo disco.SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;SOURCE_DISK_NAME
: o nome do disco de origem.
Se você usar uma chave de criptografia gerenciada pelo cliente para criptografar seu disco de origem, também será necessário usar a mesma chave para criptografar o clone.
Console
O Compute Engine criptografa automaticamente o clone usando a chave de criptografia do disco de origem.
gcloud
Forneça a chave do disco de origem usando a sinalização --kms-key
ao criar o clone do disco. Se você estiver usando uma chave incorporada por RSA, utilize o componente gcloud beta
:
gcloud beta compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Substitua:
TARGET_PROJECT_ID
: o ID do projeto do novo disco;ZONE
: a zona da origem e o novo disco;TARGET_DISK_NAME
: o nome do novo disco.SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;SOURCE_DISK_NAME
: o nome do disco de origem.KMS_PROJECT_ID
: o ID do projeto da chave de criptografiaREGION
: a região da chave de criptografiaKEY_RING
: keyring da chave de criptografiaKEY
: o nome da chave de criptografia
Go
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Compute Engine: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Compute Engine.
Para autenticar-se no Compute Engine, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Forneça a chave do disco de origem usando a propriedade kmsKeyName
ao criar o clone do disco.
POST https://compute.googleapis.com/compute/beta/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, }
Substitua:
TARGET_DISK_NAME
: o nome do novo disco.SOURCE_PROJECT_ID
: o ID do projeto da origem do disco;ZONE
: a zona da origem e o novo disco;SOURCE_DISK_NAME
: o nome do disco de origem.KMS_PROJECT_ID
: o ID do projeto da chave de criptografiaREGION
: a região da chave de criptografiaKEY_RING
: o keyring da chave de criptografiaKEY
: o nome da chave de criptografia
A seguir
- Saiba mais sobre como trabalhar com discos permanentes.
- Saiba como fazer backup dos discos usando snapshots regularmente para evitar perda não intencional de dados.
- Saiba mais sobre o uso de discos permanentes regionais para replicação síncrona entre duas zonas.