Como restaurar e excluir snapshots de disco permanente

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

Fazer backup dos 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.

É possível criar novos discos a partir de snapshots e imagens. As imagens são mais úteis para criar grupos de instâncias gerenciadas (MIGs) e criar muitos discos de inicialização homogêneos para novas instâncias. Os snapshots são mais úteis para fazer backup e restaurar os discos permanentes.

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

Antes de começar

Como listar snapshots

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

gcloud compute snapshots list

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

gcloud compute snapshots describe [SNAPSHOT_NAME]

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

Como criar um novo disco permanente a partir de um snapshot

É possível restaurar o conteúdo de um snapshot em um disco permanente.

O novo disco permanente precisa ter pelo menos o mesmo tamanho do disco de origem para aceitar o snapshot. Se você criar um disco permanente maior do que o disco de origem do snapshot, será necessário executar mais comandos na instância para que as partições possam usar o espaço extra.

É possível criar um novo disco permanente zonal a partir de um determinado snapshot uma vez a cada 10 minutos, no máximo. Se você quiser emitir uma sequência de solicitações para capturar snapshots dos discos, é possível enviar 6 solicitações, no máximo, em 60 minutos. Esse limite não se aplica ao criar discos permanentes regionais a partir de um snapshot. Para mais informações, consulte Limites de frequência de snapshots.

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

Restaurar um snapshot de um disco permanente para um novo disco

Console

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

    Acessar a página "Snapshots"

  2. Encontre o nome do snapshot que você quer restaurar.
  3. Acesse a página Discos no Console do Google Cloud.

    Acesse a página Discos

  4. Clique em Criar novo disco.
  5. Especifique os parâmetros de configuração a seguir:
    • Um nome para o disco.
    • Um tipo para o disco.
    • Opcionalmente, é possível modificar a seleção de região e zona padrão. É possível selecionar qualquer região e zona, independentemente do local de armazenamento do snapshot de origem.
  6. Em Tipo de origem, clique em Snapshot.
  7. Selecione o nome do snapshot que será restaurado.
  8. Opcional: selecione um tamanho de disco em GB. Esse número precisa ser igual ou maior que o disco de origem do snapshot. Se você não especificar esse valor, o novo disco terá o mesmo tamanho que o disco de origem do snapshot.
  9. Clique em Criar para criar o disco.

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 encontrar o tamanho do snapshot que você quer restaurar:

    gcloud compute snapshots describe [SNAPSHOT_NAME]
    

    em que [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 por zona a partir do snapshot. Se você precisar de um disco permanente SSD para aumentar a capacidade 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 disco de origem do snapshot.
    • [SNAPSHOT_NAME] é o nome do snapshot que está sendo restaurado.
    • [DISK_TYPE] é o tipo do disco permanente. Por exemplo, pd-ssd.

API

  1. Crie uma solicitação GET para snapshots.list para exibir a lista de snapshots no projeto.

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

    em que [PROJECT_ID] é o ID do projeto.

  2. Crie 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://compute.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 a 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 do disco permanente. Por exemplo, pd-ssd.
    • [SNAPSHOT_NAME] é o snapshot de origem do disco que você está restaurando.

Anexar o novo disco a uma instância atual (opcional)

Console

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

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

  2. Clique no nome da instância em que você quer restaurar o disco não inicializável.
  3. No início da página, clique em Editar.
  4. Em Discos extras, clique em Anexar disco atual.
  5. Selecione o nome do novo disco criado a partir do snapshot.
  6. Clique em Concluído para anexar o disco.
  7. Na parte inferior da página de detalhes da instância, clique em Salvar para aplicar as alterações à instância.

gcloud

  1. 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

  1. Crie uma solicitação POST para o método instances.attachDisk e inclua o URL para o disco permanente por zona que você acabou de criar a partir do snapshot.

    POST https://compute.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 a 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, é necessário 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 extra.

Como criar um novo disco da instância de VM com base em um snapshot

Ao criar uma nova instância, é possível usar instantâneos para criar discos de inicialização e discos de dados para essa instância. No caso de interrupção, é possível recuperar seus dados rapidamente. Basta restaurar um ou mais snapshots de discos permanentes para os novos discos permanentes em uma nova instância.

Para mais informações, consulte Como criar uma instância a partir de snapshots de disco permanente.

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. Os custos de armazenamento de 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 uma programação de snapshot, será preciso desanexá-la do disco antes de poder excluí-la. 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.

Veja no diagrama a seguir o processo descrito anteriormente:

O processo de exclusão de um 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 compute.snapshots.delete para excluir snapshots.

DELETE https://compute.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