Como restaurar e excluir snapshots de disco permanente

Use snapshots para fazer backup incremental de dados dos discos permanentes. Para aprender a criar snapshots, consulte Como criar snapshots de disco permanente. Depois de criar um snapshot, será possível usá-lo para restaurar seu disco permanente (seja ele de inicialização ou não) para um estado anterior capturado por um snapshot pontual.

Fazer backup de seus dados com uma programação de snapshot é uma prática recomendada eficaz para gerenciar cargas de trabalho e minimizar os efeitos da perda de dados.

Se não precisar mais de um snapshot específico, exclua-o para reduzir os custos de armazenamento.

Para ver uma lista de snapshots disponíveis para um projeto, use o comando gcloud compute snapshots list:

gcloud compute snapshots list

Para listar informações sobre um determinado snapshot, use o comando gcloud compute snapshots describe:

gcloud compute snapshots describe [SNAPSHOT_NAME]

[SNAPSHOT_NAME] é o nome do snapshot que você quer descrever.

Antes de começar

Como usar um snapshot para restaurar um disco permanente

Restaure um snapshot em um disco permanente, seja ele de inicialização ou não.

Como restaurar um snapshot do disco de inicialização

Use o console do Compute Engine, a gcloud ou a API para restaurar um snapshot de disco permanente de inicialização.

Console

  1. Acesse a página Instantâneos no Console do Google Cloud Platform.

    Acessar a página "Instantâneos"

  2. Encontre o nome do snapshot que você quer restaurar.
  3. Acesse a página "Instâncias de VM".

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

  4. Clique no nome da instância em que quer restaurar o disco de inicialização.
  5. Pare a instância clicando em Parar. Pode levar alguns segundos para a instância parar.
  6. Quando a instância for interrompida, clique nela para fazer alterações.
  7. No início da página de detalhes da instância, clique em Editar.
  8. Em Disco de inicialização, clique em X para desanexar o disco de inicialização atual.
  9. Em Disco de inicialização, clique em Adicionar item.
  10. No menu suspenso Nome, clique em Criar disco.
  11. Especifique os seguintes parâmetros de configuração:
    • Um nome para o disco.
    • Um tipo para o disco. O tipo selecionado precisa corresponder ao usado no snapshot.
  12. Em Tipo de origem, clique em Instantâneo.
  13. Selecione o nome da captura instantânea que você quer restaurar para o disco de inicialização.
  14. Opcional: selecione um tamanho em GB para o disco. Esse número precisa ser igual ou maior que o tamanho do snapshot. Se não for especificado, o tamanho definido será igual ao do snapshot.
  15. Clique em Criar para criar o disco.
  16. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância e anexar o novo disco de inicialização.

gcloud

  1. Use o comando gcloud compute snapshots list para encontrar o nome do snapshot que você quer restaurar:

    gcloud compute snapshots list
    
  2. Use o comando gcloud compute snapshots describe para saber o tamanho do snapshot que você quer restaurar:

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    [SNAPSHOT_NAME] é o nome do snapshot que está sendo restaurado.

  3. Use o comando gcloud compute instances stop para parar a instância.

    gcloud compute instances stop [INSTANCE_NAME] \
        --zone [INSTANCE_ZONE]
    

    em que:

    • [INSTANCE_NAME] é o nome da instância que você quer parar;
    • [INSTANCE_ZONE] é a zona da instância que você quer parar.
  4. Use o comando gcloud compute instances detach-disk para desanexar o disco de inicialização da instância:

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

    em que:

    • [INSTANCE_NAME] é o nome da instância;
    • [DISK_NAME] é o nome do disco de inicialização.
  5. Use o comando de gcloud compute disks create para criar um novo disco permanente zonal a partir do snapshot que não é de inicialização. Se você precisar de um disco permanente SSD para ter capacidade extra ou IOPS, inclua a sinalização --type e especifique pd-ssd.

    gcloud compute disks create [DISK_NAME] \
        --size [DISK_SIZE] \
        --source-snapshot [SNAPSHOT_NAME] \
        --type [DISK_TYPE]
    

    em que:

    • [DISK_NAME] é o nome do novo disco.
    • [DISK_SIZE] é o tamanho do novo disco em GB. Esse número precisa ser igual ou maior que o tamanho do snapshot;
    • [SNAPSHOT_NAME] é o nome do snapshot que está sendo restaurado;
    • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.
  6. Use o comando gcloud compute instances attach-disk para anexar o disco permanente a uma instância: É preciso adicionar a sinalização --boot para anexar este disco como um disco de inicialização.

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

    em que:

    • [INSTANCE_NAME] é o nome da instância;
    • [DISK_NAME] é o nome do disco criado a partir do snapshot.

API

Use um snapshot para restaurar um disco permanente de inicialização.

  1. Construa uma solicitação GET para snapshots.list para exibir a lista de snapshots em seu projeto.

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

    [PROJECT_ID] é o ID do projeto.

  2. Construa uma solicitação POST para instances.stop para parar sua instância de VM.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/stop
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que a instância está armazenada;
    • [INSTANCE_NAME] é o nome da instância.
  3. Construa uma solicitação POST para instances.detachDisk para desanexar o disco de inicialização da sua instância de VM.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/detachDisk/[DISK_NAME]
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que a instância está armazenada;
    • [INSTANCE_NAME] é o nome da instância;
    • [DISK_NAME] é o nome do seu disco de inicialização.
  4. Construa uma solicitação POST para criar um disco permanente zonal usando o método disks.insert. Inclua as propriedades name, sizeGb e type. Para restaurar um disco usando um snapshot, é preciso incluir a propriedade sourceSnapshot.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
     "name": "[DISK_NAME]",
     "sizeGb": "[DISK_SIZE]",
     "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]"
     "sourceSnapshot": "[SNAPSHOT_NAME]"
    }
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que sua instância e o novo disco estão localizados;
    • [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;
    • [SNAPSHOT_NAME] é o snapshot de origem do disco que você está restaurando.
  5. Crie uma solicitação POST para o método instances.attachDisk e inclua o URL do disco permanente zonal que você acabou de gerar: Como é um disco de inicialização, defina o parâmetro de boot como true.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "boot": true,
     "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]
    }
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que sua instância e o novo disco estão localizados;
    • [INSTANCE_NAME] é o nome da instância em que você está adicionando o novo disco permanente;
    • [DISK_NAME] é o nome do novo disco;
    • boot:true.

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.

Como alternativa, use um snapshot de um disco permanente de inicialização para criar uma nova instância de VM. Consulte Como criar uma instância a partir de um snapshot.

Como restaurar um snapshot de disco não inicializável

É possível restaurar um snapshot de disco permanente não inicializável para um disco permanente que seja maior que o snapshot original. Para isso, é preciso executar outros comandos na instância a fim de reconhecer o espaço extra.

Dependendo do seu sistema operacional e do tipo de sistema de arquivos, pode ser preciso usar uma ferramenta de redimensionamento de sistema de arquivos diferente. Consulte a documentação do sistema operacional para mais informações.

Para restaurar um snapshot de disco permanente não inicializável:

Console

  1. Acesse a página Instantâneos no Console do Google Cloud Platform.

    Acessar a página "Instantâneos"

  2. Encontre o nome do snapshot que você quer restaurar.
  3. Acesse a página "Instâncias de VM".

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

  4. Clique no nome da instância em que você quer restaurar o disco não inicializável.
  5. No topo da página de detalhes da instância, clique em Editar.
  6. Em Discos adicionais, clique em Adicionar item.
  7. No menu suspenso Nome, clique em Criar disco.
  8. Especifique os seguintes parâmetros de configuração:
    • Um nome para o disco.
    • Um tipo para o disco. O tipo selecionado precisa corresponder ao usado no snapshot.
  9. Em Tipo de origem, clique em Instantâneo.
  10. Selecione o nome do snapshot que você quer restaurar.
  11. Opcional: selecione um tamanho em GB para o disco. Esse número precisa ser igual ou maior que o tamanho do snapshot. Se não for especificado, o tamanho definido será igual ao do snapshot.
  12. Clique em Criar para criar o disco.
  13. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância e anexar o disco novo.

gcloud

  1. Use o comando gcloud compute snapshots list para encontrar o nome do snapshot que você quer restaurar:

    gcloud compute snapshots list
    
  2. Use o comando gcloud compute snapshots describe para saber o tamanho do snapshot que você quer restaurar:

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    [SNAPSHOT_NAME] é o nome do snapshot que está sendo restaurado.

  3. Use o comando gcloud compute disks create para criar um novo disco permanente regional ou zonal a partir do seu snapshot que não seja de inicialização. Se você precisar de um disco permanente SSD para ter capacidade extra ou IOPS, inclua a sinalização --type e especifique pd-ssd.

    gcloud compute disks create [DISK_NAME] \
        --size [DISK_SIZE] \
        --source-snapshot [SNAPSHOT_NAME] \
        --type [DISK_TYPE]
    

    em que:

    • [DISK_NAME] é o nome do novo disco.
    • [DISK_SIZE] é o tamanho do novo disco em GB. Esse número precisa ser igual ou maior que o tamanho do snapshot;
    • [SNAPSHOT_NAME] é o nome do snapshot que está sendo restaurado;
    • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.
  4. Use o comando gcloud compute instances attach-disk para anexar o disco permanente a uma instância:

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

    em que:

    • [INSTANCE_NAME] é o nome da instância;
    • [DISK_NAME] é o nome do disco criado a partir do snapshot.

API

Use um snapshot para restaurar um disco permanente que não seja de inicialização.

  1. Construa uma solicitação GET para snapshots.list para exibir a lista de snapshots em seu projeto.

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

    [PROJECT_ID] é o ID do projeto.

  2. Construa uma solicitação POST para criar um disco permanente zonal usando o método disks.insert. Inclua as propriedades name, sizeGb e type. Para restaurar um disco usando um snapshot, é preciso incluir a propriedade sourceSnapshot.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
     "name": "[DISK_NAME]",
     "sizeGb": "[DISK_SIZE]",
     "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]"
     "sourceSnapshot": "[SNAPSHOT_NAME]"
    }
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que sua instância e o novo disco estão localizados;
    • [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;
    • [SNAPSHOT_NAME] é o snapshot de origem do disco que você está restaurando.
  3. Crie uma solicitação POST para o método instances.attachDisk e inclua o URL do disco permanente zonal que você acabou de gerar:

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]"
    }
    

    em que:

    • [PROJECT_ID] é o ID do projeto;
    • [ZONE] é a zona em que sua instância e o novo disco estão localizados;
    • [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 formatar e ativar o disco para que o sistema operacional possa usar o espaço de armazenamento disponível.

Se o disco for maior que o tamanho do snapshot, será necessário redimensionar o sistema de arquivos nesse disco permanente para incluir o espaço em disco adicional.

Já é possível usar a instância para acessar os dados restaurados e usar o espaço em disco permanente extra para armazenar novos dados.

Como excluir um snapshot

O Compute Engine usa snapshots incrementais para que cada snapshot contenha apenas os dados que mudaram desde o snapshot anterior. Para dados inalterados, os snapshots referenciam os dados em snapshots anteriores. Custos de armazenamento para snapshots de disco permanente só são cobrados com base no tamanho total do snapshot.

Quando você exclui um snapshot, ele é imediatamente marcado como DELETED no Compute Engine. Se esse snapshot não tem itens subordinados, ele é excluído. Mas, caso ele tenha:

  1. Os dados necessários para restaurar outros snapshots são movidos para o próximo snapshot, aumentando o tamanho dele.
  2. Os dados desnecessários para restaurar outros snapshots são excluídos. Isso diminui o tamanho total de todos os snapshots.
  3. O próximo snapshot já não faz mais referência ao snapshot marcado para exclusão, mas sim ao snapshot antes dele.

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. Se os dados em um snapshot que é marcado para exclusão forem necessários para restaurar os snapshots subsequentes, esses dados serão movidos para o próximo snapshot correspondente. Para excluir completamente os dados, é necessário excluir todos os snapshots.

Se seu disco tiver um agendamento de snapshot, será preciso desanexar o agendamento de snapshot do disco antes de poder excluir o agendamento. Remover a programação do snapshot do disco impede que ocorra mais atividade de snapshot. Não é possível excluir uma programação anexada a um disco. Você tem a opção de excluir snapshots manualmente a qualquer momento.

Neste diagrama, é ilustrado o processo descrito acima:

Diagrama do processo de exclusão de um snapshot

Para excluir um snapshot:

Console

  1. Acesse a página Instantâneos no Console do Google Cloud Platform.

    Acessar a página "Instantâneos"

  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]

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

API

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

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

em que:

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

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine