Criar e gerenciar snapshots de disco

Crie snapshots para fazer backup periódico de dados dos discos permanentes zonais ou regionais.

É possível criar snapshots com base em discos, mesmo quando estão anexados a instâncias em execução. Os snapshots são recursos globais. Por isso, podem ser usados para restaurar dados em um novo disco ou instância no mesmo projeto. Também é possível compartilhar snapshots entre projetos.

Antes de começar

Preparar para a criação de snapshots

Para se preparar para a criação de snapshots de discos permanentes, faça o seguinte:

Crie um instantâneo de um disco permanente zonal

Console

  1. Acesse a página Criar um snapshot no Console do Google Cloud.
    Acessar a página "Criar um snapshot"
  2. Digite um Nome de snapshot.
  3. Como opção, digite uma Descrição para o snapshot.
  4. Selecione o Disco de origem no menu suspenso.
  5. Determine o local de armazenamento de snapshots. Use o local de armazenamento padrão ou um local de armazenamento personalizado.

    1. Em Local, selecione se quer armazenar seu instantâneo em um local Multirregional ou em um local Regional.
    2. Selecione qual região ou multirregião específica você quer usar. Para usar a região ou a multirregião mais próxima de seu disco de origem, selecione Com base no local do disco (padrão).
  6. Clique em Criar para criar o snapshot.

gcloud

Crie o snapshot no local de armazenamento padrão ou selecionado. É necessário especificar um nome de snapshot. O nome precisa ter de 1 a 63 caracteres e estar de acordo com o RFC 1035.

  • Para criar um snapshot de um disco permanente zonal no local de armazenamento padrão, use o comando gcloud compute snapshots create:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-zone SOURCE_DISK_ZONE
    

    Substitua:

    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_DISK: o nome do disco permanente do qual você quer criar um snapshot.
    • SOURCE_DISK_ZONE: a zona do disco permanente da qual você quer criar um snapshot.
  • Se preferir, para criar um snapshot em um local de armazenamento personalizado, use a sinalização --storage-location para indicar o local a armazenar o snapshot:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-zone SOURCE_DISK_ZONE \
        --storage-location STORAGE_LOCATION
    

    Substitua:

    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_DISK: o nome do disco permanente do qual você quer criar um snapshot.
    • SOURCE_DISK_ZONE: a zona do disco permanente da qual você quer criar um snapshot.
    • STORAGE_LOCATION: a multirregião do Cloud Storage ou a região do Cloud Storage em que você quer armazenar o snapshot. É possível especificar apenas um local de armazenamento.

O CLI gcloud aguarda até que um status READY ou FAILED seja retornado pela operação ou até o tempo limite ser atingido e os últimos detalhes conhecidos do instantâneo serem retornados.

API

Crie o snapshot no local de armazenamento padrão ou selecionado.

  • Para criar um snapshot no local de armazenamento padrão, crie uma solicitação POST para o método snapshots.insert:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": SNAPSHOT_NAME
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto em que você quer criar o snapshot.
    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • SOURCE_ZONE: a zona do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco permanente do qual você quer criar um snapshot.
  • Se preferir, crie um snapshot em um local de armazenamento personalizado fazendo uma solicitação POST para o método snapshots.insert e especifique o local de armazenamento:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": SNAPSHOT_NAME
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME
      "storageLocations": STORAGE_LOCATION
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto em que você quer criar o snapshot.
    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • SOURCE_ZONE: a zona do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco permanente do qual você quer criar um snapshot.
    • STORAGE_LOCATION: a multirregião do Cloud Storage ou a região do Cloud Storage em que você quer armazenar o snapshot. É possível especificar apenas um local de armazenamento.

Criar um instantâneo de um disco permanente regional

Depois de preparar o disco, você pode criar um instantâneo. Ao criar um instantâneo de um disco permanente regional, você precisa indicar a região onde o disco está localizado.

Console

  1. Acesse a página Criar um snapshot no Console do Google Cloud.
    Acessar a página "Criar um snapshot"
  2. Digite um Nome de snapshot.
  3. Como opção, digite uma Descrição para o snapshot.
  4. Em Disco de origem, selecione um disco atual a partir do qual você quer criar um snapshot.
  5. Como opção, é possível especificar um local de armazenamento personalizado:

    1. Em Local, selecione se quer armazenar seu snapshot em um local Multirregional ou Regional.
    2. Selecione qual região ou multirregião específica você quer usar. Para usar a região ou a multirregião mais próxima de seu disco de origem, selecione Com base no local do disco.
  6. Clique em Criar para criar o snapshot.

gcloud

Crie o snapshot no local de armazenamento padrão ou selecionado.

  • Para criar um snapshot de um disco permanente regional no local de armazenamento padrão, use o comando gcloud compute snapshots create:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-region=SOURCE_DISK_REGION
    

    Substitua:

    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_DISK: o nome do disco permanente do qual você quer criar um snapshot.
    • SOURCE_DISK_REGION: a região do disco permanente regional do qual você quer criar um snapshot
  • Como opção, é possível especificar um local de armazenamento personalizado:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-region=SOURCE_DISK_REGION
        --storage-location STORAGE_LOCATION
    

    Substitua:

    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_DISK: o nome do disco permanente do qual você quer criar um snapshot.
    • SOURCE_DISK_REGION: o nome do disco permanente regional do qual você quer criar um snapshot
    • STORAGE_LOCATION: a multirregião do Cloud Storage ou a região do Cloud Storage em que você quer armazenar o snapshot. É possível especificar apenas um local de armazenamento.

    A Google Cloud CLI aguarda até que a operação retorne um status READY, FAILED ou atinja o tempo limite e retorne os últimos detalhes conhecidos do snapshot.

API

  • Para criar um snapshot no local de armazenamento padrão, crie uma solicitação POST para o método snapshots.insert:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": SNAPSHOT_NAME
      "sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto em que você quer criar o snapshot.
    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • SOURCE_REGION: a região do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco permanente do qual você quer criar um snapshot.
  • Se preferir, crie um snapshot em um local de armazenamento personalizado fazendo uma solicitação POST para o método snapshots.insert e especifique o local de armazenamento:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": SNAPSHOT_NAME
      "sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
      "storageLocations": STORAGE_LOCATION
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto em que você quer criar o snapshot.
    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • SOURCE_REGION: a região do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco permanente do qual você quer criar um snapshot.
    • STORAGE_LOCATION: a multirregião do Cloud Storage ou a região do Cloud Storage em que você quer armazenar o snapshot. É possível especificar apenas um local de armazenamento.

Excluir um snapshot

No Compute Engine, é usado cada instantâneo diferencial que contém somente dados alterados desde o instantâneo anterior. Como os snapshots subsequentes talvez precisem de informações armazenadas em um snapshot anterior, lembre-se de que excluir um snapshot não necessariamente exclui todos os dados dele. Para saber mais sobre a exclusão de snapshots, consulte Exclusão de snapshot.

Para excluir um snapshot:

Console

  1. Acesse a página Snapshots no Console do Google Cloud.

    Acessar a página "Snapshots"

  2. Selecione um ou mais snapshots que você quer excluir.
  3. Na parte superior da página Instantâneos, clique em Excluir.

gcloud

Para excluir um snapshot, use o comando gcloud compute snapshots delete:

gcloud compute snapshots delete SNAPSHOT_NAME

em que SNAPSHOT_NAME é o nome do snapshot que está sendo excluído.

API

Faça uma solicitação DELETE para o método compute.snapshots.delete para excluir snapshots.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME

onde:

  • PROJECT_ID é o nome do projeto;
  • SNAPSHOT_NAME é o nome do snapshot a ser excluído.

Excluir vários snapshots com base em um filtro

No Compute Engine, é usado cada instantâneo diferencial que contém somente dados alterados desde o instantâneo anterior. Como os snapshots posteriores talvez exijam informações armazenadas em um snapshot anterior, a exclusão de um snapshot não necessariamente exclui todos os dados dele. Para saber mais sobre a exclusão de snapshots, consulte Exclusão de snapshot.

As seções a seguir descrevem como excluir vários snapshots com base em um determinado filtro. Para mais informações sobre filtros da CLI da gcloud, consulte Filtros de tópico da CLI da gcloud.

Para excluir os snapshots, use uma combinação do comando gcloud compute snapshots list com um determinado filtro e do comando gcloud compute snapshots delete com xargs:

gcloud compute snapshots list --filter="EXPRESSION" --uri |
   xargs gcloud compute snapshots delete

Substitua EXPRESSION por um filtro de tópico gcloud.

Por exemplo, --filter="creationTimestamp>'2021-01-01'" exclui todos os snapshots criados depois de 01-01-2021.

Listar snapshots

gcloud

Para ver uma lista de snapshots disponíveis em um projeto específico, use o comando gcloud compute snapshots list.

gcloud compute snapshots list --project PROJECT_ID

em que PROJECT_ID é o ID do projeto.

API

Para ver uma lista de snapshots disponíveis para você em um projeto específico, faça uma solicitação GET para o método snapshots.list:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots

em que PROJECT_ID é o ID do projeto.

Ver informações sobre um snapshot

Para listar informações sobre um snapshot específico, como o horário de criação, o tamanho e o disco de origem, use o comando gcloud compute snapshots describe:

gcloud compute snapshots describe SNAPSHOT_NAME

em que SNAPSHOT_NAME é o nome do snapshot.

Compartilhar dados de snapshots entre projetos

Para mover dados de um disco em um projeto para um disco em um projeto diferente, use o seguinte processo:

gcloud

  1. Crie um snapshot do disco no projeto de destino usando o comando gcloud compute snapshots create. Por exemplo, para criar um snapshot de um disco permanente zonal, use o seguinte comando:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \
        --project DESTINATION_PROJECT_ID
    

    Substitua:

    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • ZONE: a zona do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco de origem.
    • DESTINATION_PROJECT_ID: o ID do projeto de destino do novo snapshot.
  2. No projeto de destino, crie um disco zonal ou regional com base no snapshot usando o comando gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
        --source-snapshot SNAPSHOT_NAME \
        --project DESTINATION_PROJECT_ID
    

    Substitua:

    • DISK_NAME: um nome para o novo disco.
    • SNAPSHOT_NAME: o nome do snapshot.
    • DESTINATION_PROJECT_ID: o ID do projeto de destino do novo disco.

API

  1. Crie um snapshot de disco no projeto de destino chamando o método snapshots.insert. Por exemplo, para capturar um snapshot de um disco permanente zonal, faça a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": SNAPSHOT_NAME
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto de destino do novo snapshot.
    • SNAPSHOT_NAME: um nome para o snapshot.
    • SOURCE_PROJECT_ID: o ID do projeto de disco de origem.
    • SOURCE_ZONE: a zona do disco de origem.
    • SOURCE_DISK_NAME: o nome do disco de origem.
  2. No projeto de destino, crie um disco zonal ou regional com base no snapshot usando o método disks.insert zonal ou o regional regionDisks.insert. Por exemplo, para criar um disco zonal, faça a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/zones/DESTINATION_ZONE/disks
    
    {
      "name": DISK_NAME
      "sourceSnapshot": SNAPSHOT_NAME
    }
    

    Substitua:

    • DESTINATION_PROJECT_ID: o ID do projeto de destino do novo disco.
    • DISK_NAME: um nome para o novo disco.
    • SNAPSHOT_NAME: o nome do snapshot.

Para ver uma lista dos snapshots disponíveis, consulte Como listar snapshots.

A seguir