Gerenciar programações de snapshot para discos


Neste documento, descrevemos como gerenciar programações de snapshot do Persistent Disk regional e zonal e do Google Cloud Hyperdisk.

É possível gerenciar as programações de snapshot da seguinte maneira:

  • Ver programações de snapshot
  • Alterar programações de snapshot
  • Excluir programações de snapshot

Também é possível configurar alertas para snapshots programados.

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

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    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

Papéis e permissões necessárias

Para receber as permissões necessárias a fim de criar uma programação de snapshot, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para criar uma programação de snapshot. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar uma programação de snapshot:

  • Para ver as programações de snapshot: compute.resourcePolicies.list no projeto ou na organização
  • Para atualizar uma programação de snapshot:
    • compute.resourcePolicies.update na política de recursos
    • compute.resourcePolicies.get na política de recursos
  • Para substituir uma programação de snapshot:
    • compute.resourcePolicies.use na política de recursos
    • compute.disks.addResourcePolicies no disco
    • compute.disks.removeResourcePolicies no disco
  • Para excluir uma programação de snapshot:
    • compute.resourcePolicies.delete na política de recursos
    • compute.disks.removeResourcePolicies no disco

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Ver programações de snapshot

Para acessar uma lista de programações de snapshots, use o console, o comando gcloud ou o método da API Compute Engine. Essa solicitação mostra o nome, a descrição e a região de todas as programações de snapshot em um projeto.

Console

  1. No Console do Google Cloud, acesse a página Snapshots.

    Acessar a página "Snapshots"

  2. Selecione a guia Programações de snapshot.
  3. Use o campo Filtro para restringir a lista de programações de snapshot.
  4. Clique no nome de uma programação de snapshot para ver os detalhes.

gcloud

Para ver uma lista das suas programações de snapshot, use o comando resource-policies list.

 gcloud compute resource-policies list

Para ver a descrição de uma programação de snapshot específica, use o comando resource-policies describe.

gcloud compute resource-policies describe SCHEDULE_NAME

Substitua SCHEDULE_NAME pelo nome da programação de snapshot.

REST

Faça uma solicitação GET a resourcePolicies.aggregatedList para retornar uma lista de programações de snapshot de um projeto.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/resourcePolicies

Substitua PROJECT_ID pelo nome do projeto.

Ver programações de snapshot por região

Para ver as programações de snapshot de um projeto em uma determinada região, use o console do Google Cloud, a gcloud CLI ou REST.

Console

  1. No Console do Google Cloud, acesse a página Snapshots.

    Acessar a página "Snapshots"

  2. Selecione a guia Programações de snapshot.
  3. Use o campo Filtro para listar as programações de snapshot de uma região específica.

gcloud

Para ver as programações de snapshot de um projeto em uma região específica, use o comando resource-policies list.

gcloud compute resource-policies list PROJECT_ID --filter REGION

Substitua:

  • PROJECT_ID: o nome do projeto
  • REGION: a região, por exemplo, us-west1

REST

Faça uma solicitação GET ao método resourcePolicies.list para recuperar as programações de snapshot criadas em uma região.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

Substitua:

  • PROJECT_ID: o nome do projeto
  • REGION: a região, por exemplo, us-west1

Alterar uma programação de snapshot

Depois de criar uma programação de snapshot, é possível modificar os campos a seguir dinamicamente usando o procedimento Atualizar uma programação de snapshot:

  • Descrição
  • Programação de snapshots
  • Rótulos aplicados aos snapshots gerados
  • Política de exclusão do disco de origem para processar snapshots gerados automaticamente se o disco de origem for excluído
  • Política de retenção para definir por quanto tempo os snapshots gerados com base na programação serão mantidos.

Para atualizar outros valores de uma programação de snapshot, exclua a programação de snapshot e crie uma nova, conforme descrito em Substituir uma programação de snapshot.

As atualizações da programação de snapshot entram em vigor no primeiro snapshot após as atualizações. Se um snapshot estiver em execução enquanto você atualiza a programação, as alterações entrarão em vigor no próximo snapshot.

Atualizar uma programação de snapshot

É possível usar a CLI do Google Cloud ou a API Compute Engine para alterar algumas propriedades da sua programação de snapshot, conforme descrito em Alterar uma programação de snapshot.

Para alterar outras propriedades da sua programação de snapshot, use o método descrito em Substituir uma programação de snapshot.

Console

  1. No Console do Google Cloud, acesse a página Snapshots.

    Acessar a página "Snapshots"

  2. Selecione Programações de snapshot para ver uma lista das programações.
  3. Clique no nome da programação de snapshot que você quer modificar.
  4. Na página de detalhes da programação de snapshot, clique no botão Editar programação.

gcloud

Use o comando compute resource-policies update para atualizar a descrição, a programação, a política de retenção ou os rótulos de uma programação de snapshot.

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
   --region=REGION \
   --description="DESCRIPTION" \
   --snapshot-labels="KEY=VALUE" \
   --max-retention-days=DAYS \
   --on-source-disk-delete=DELETE_OPTION \
   --start-time=START_TIME \
   SCHEDULE_FLAG

Substitua:

  • SCHEDULE_NAME: o nome da programação de snapshot.
  • REGION: a região em que a programação do snapshot reside.
  • DESCRIPTION: uma descrição da programação de snapshot. Coloque a descrição entre aspas;
  • KEY e VALUE: um par de chave-valor que pode ser usado para agrupar recursos relacionados ou associados.
  • DAYS: o número máximo de dias em que o snapshot fica retido antes de ser excluído.
  • DELETE_OPTION: comportamento de retenção de snapshots automáticos após a exclusão do disco original. O valor precisa ser um destes:
    • apply-retention-policy: quando o disco de origem for excluído, continue aplicando a janela de retenção a todos os snapshots criados pela programação de snapshot.
    • keep-auto-snapshots: (padrão) se o disco de origem for excluído, mantenha os snapshots criados pela programação de snapshot, independentemente da janela de retenção.
  • START_TIME: o horário de início em UTC. O horário precisa ser uma hora redonda. Por exemplo:
    • 14h PST é 22:00.
    • Se você definir o horário de início como 22:13, receberá um erro.
  • SCHEDULE_FLAG: uma das seguintes flags:

    • --hourly-schedule=HOURLY_INTERVAL: o número de horas entre cada snapshot. É preciso que HOURLY_INTERVAL seja um número inteiro entre 1 e 23 Por exemplo, defina --hourly-schedule como 12 para que o snapshot seja gerado a cada 12 horas.
    • --daily-schedule: executa um snapshot diariamente às START_TIME
    • --weekly-schedule==WEEKLY_INTERVAL: define o dia em que você quer que a captura de snapshot ocorra. Escreva o dia da semana por extenso. Os valores não diferenciam maiúsculas de minúsculas.

    • --weekly-schedule-from-file=FILE_NAME: especifica um arquivo que contém a programação de snapshot semanal. É possível especificar programações semanais em dias diferentes da semana e em diferentes horários usando um arquivo. Por exemplo, seu arquivo pode especificar uma programação de snapshot às segundas e quartas-feiras: none [{"day": "MONDAY", "startTime": "04:00"}, {"day": "WEDNESDAY", "startTime": "02:00"}]. Se você incluir um horário de início no arquivo, não será necessário definir a flag --start-time. A programação usa o fuso horário UTC. O horário precisa ser uma hora redonda. Exemplo:

      • 14h PST é 22:00.
      • Se você definir o horário de início como 22:13, receberá um erro.

    As flags de frequência do snapshot hourly-schedule, daily-schedule, weekly-schedule e weekly-schedule-from-file são mutuamente exclusivas. É possível usar apenas uma para a programação de snapshot.

Exemplos:

Para alterar uma programação de snapshot para uma programação diária:

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --daily-schedule --start-time=START_TIME

Para alterar um snapshot para uma programação por hora e também atualizar a descrição e o identificador do snapshot:

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --description="DESCRIPTION" \
    --hourly-schedule=HOURLY_INTERVAL --start-time=START_TIME \
    --snapshot-labels="KEY=VALUE"

Para alterar as políticas de retenção de snapshots e de exclusão de discos de origem de uma programação de snapshot:

gcloud compute resource-policies update snapshot-schedule SCHEDULE_NAME \
    --region=REGION --max-retention-days=DAYS \
    --on-source-disk-delete=DELETE_OPTION

REST

Crie uma solicitação PATCH ao método resourcePolicies para atualizar a descrição, a programação, a política de retenção, a política de exclusão de disco de origem ou os rótulos de uma programação de snapshot. No corpo da solicitação, basta especificar o name e os campos que você quer atualizar.

  • Mude a descrição e o identificador:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "description": "DESCRIPTION",
        "snapshotProperties": {
            "labels": {"KEY": "VALUE"}
        }
    }
    
  • Altere a programação de snapshot para horária:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "hourlySchedule": {
                  "hoursInCycle": HOURLY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • Altere a programação de snapshot para diária:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "dailySchedule": {
                  "daysInCycle": DAILY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • Altere a programação de snapshot para semanal:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
               "weeklySchedule": {
                  "dayOfWeeks": [
                     {
                        "day": WEEKLY_INTERVAL,
                        "startTime": START_TIME
                     }
                  ]
               }
            }
        }
    }
    
  • Altere a política de retenção de snapshots:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "retentionPolicy": {
                "maxRetentionDays": DAYS,
                "onSourceDiskDelete":"DELETE_OPTION"
            }
       }
    }
    

Substitua:

  • PROJECT_ID: o nome do projeto
  • REGION: a região em que a programação de snapshot está localizada.
  • SCHEDULE_NAME: o nome da programação de snapshot.
  • DESCRIPTION: uma descrição da programação de snapshot. Coloque a descrição entre aspas;
  • KEY e VALUE: um par de chave-valor que pode ser usado para agrupar recursos relacionados ou associados.
  • HOURLY_INTERVAL: define o intervalo da captura do snapshot. Defina a programação para horária usando um número inteiro entre 1 e 23. Para que os snapshots sejam criados no mesmo horário todos os dias, escolha um número que divida igualmente em 24 (1, 2, 3, 4, 6, 8 ou 12). Por exemplo, defina --hourly-schedule como 12 para que o snapshot seja gerado a cada 12 horas.
  • DAILY_INTERVAL: define o número de dias entre cada snapshot. Para criar um snapshot todos os dias, use o valor 1.
  • WEEKLY_INTERVAL: define uma programação que é executada em dias específicos da semana. Especifique um ou mais dias. As seguintes opções estão disponíveis: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY e SUNDAY. Escreva os dias da semana por extenso. Eles não diferenciam entre letras maiúsculas e minúsculas. É possível definir até sete intervalos para dayOfWeeks, um para cada dia da semana.
  • START_TIME: o horário de início em UTC. O horário precisa ser uma hora redonda. Por exemplo:
    • 14h PST é 22:00 UTC.
    • Se você definir o horário de início como 22:13, receberá um erro.
  • DAYS: o número máximo de dias em que o snapshot fica retido antes de ser excluído.
  • DELETE_OPTION: comportamento de retenção de snapshots automáticos após a exclusão do disco original. O valor precisa ser um destes:
    • APPLY_RETENTION_POLICY: quando o disco de origem for excluído, continue aplicando a janela de retenção a todos os snapshots criados pela programação de snapshot.
    • KEEP_AUTO_SNAPSHOTS: (padrão) se o disco de origem for excluído, mantenha os snapshots criados pela programação de snapshot, independentemente da janela de retenção.

Substituir uma programação de snapshot

Siga estas etapas para excluir a programação de snapshot e criar uma nova. Use este método para modificar as propriedades da programação de snapshot que não podem ser alteradas usando o procedimento Atualizar uma programação de snapshot.

Se você estiver substituindo uma programação de snapshot que já está anexada a um disco, será necessário desanexá-la e excluí-la. Em seguida, crie uma nova e anexe-a ao disco.

Os snapshots gerados a partir da programação de snapshot removida não serão gerenciados pela nova política. Esses snapshots serão mantidos indefinidamente até que você os exclua.

Use o console do Google Cloud, a gcloud CLI ou REST para remover e substituir a programação de snapshot.

Console

  1. No Console do Google Cloud, acesse a página Discos.

    Acesse a página Discos

  2. Selecione o disco que tem a programação que você quer desanexar.
  3. Na página Gerenciar disco, clique em Editar. Talvez seja necessário clicar no menu Mais ações primeiro.
  4. Abra o menu suspenso Programação de snapshot.
  5. Clique em Sem programação para desanexar a programação do disco.
  6. É possível criar uma nova programação ou trocá-la enquanto estiver editando as opções de disco.
  7. Clique em Salvar para concluir a tarefa.

gcloud

  1. Use o comando gcloud disks remove-resource-policies para remover a programação de snapshot do disco com a programação que você quer alterar.

    gcloud compute disks remove-resource-policies DISK_NAME \
        --resource-policies SCHEDULE_NAME \
        --region REGION \
        --zone ZONE
    

    Substitua:

    • DISK_NAME: o nome do disco com a programação de snapshot anexada
    • SCHEDULE_NAME: o nome da programação de snapshot que você quer remover desse disco
    • REGION: a região onde a programação do snapshots reside
    • ZONE: a zona onde reside o disco zonal
  2. Use o comando gcloud disks add-resource-policies para adicionar a nova programação de snapshot ao disco.

    gcloud compute disks add-resource-policies DISK_NAME \
         --resource-policies SCHEDULE_NAME \
         --zone ZONE
    

    Substitua:

    • DISK_NAME: o nome do disco com a política de recursos da programação de snapshot.
    • SCHEDULE_NAME: o nome da programação de snapshot que você quer adicionar a esse disco
    • ZONE: a zona onde reside o disco

REST

  1. Remova a programação de snapshot atual de um disco criando uma solicitação POST a disks.removeResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/removeResourcePolicies
    
    {
      "resourcePolicies": [
         "regions/REGION/resourcePolicies/SCHEDULE_NAME"
      ]
    }
    

    Substitua:

    • PROJECT_ID: o nome do projeto
    • ZONE: a zona onde o disco reside
    • DISK_NAME: o nome do disco com a programação de snapshot associada
    • REGION: o local da programação de snapshot
    • SCHEDULE_NAME: o nome da programação de snapshot que você está removendo desse disco
  2. Anexe a nova programação de snapshot ao disco criando uma solicitação POST ao método disks.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "regions/REGION/resourcePolicies/SCHEDULE_NAME"
      ]
    }
    

    Substitua:

    • PROJECT_ID: o nome do projeto
    • ZONE: o local do disco
    • DISK_NAME: o nome do disco.
    • REGION: o local da programação de snapshot
    • SCHEDULE_NAME: o nome da programação de snapshot que você está aplicando a esse disco.

Excluir uma programação de snapshot

Se você excluir uma programação de snapshot, todos os snapshots gerados automaticamente associados à programação serão mantidos de modo permanente. No entanto, a programação não poderá mais gerar snapshots após a exclusão.

A política de retenção faz parte da programação de snapshot. Depois que a programação for excluída, a política de retenção não será mais aplicada. Os snapshots que já foram gerados serão mantidos de modo permanente até você excluí-los manualmente.

Para excluir uma programação de snapshot, use o Console do Google Cloud, a Google Cloud CLI ou o método da API Compute Engine. Se a programação já estiver anexada a um disco, será necessário desanexá-la antes de excluí-la. Não é possível excluir uma programação de instantâneo anexada a um disco.

Console

  1. No Console do Google Cloud, acesse a página Snapshots.

    Acessar a página "Snapshots"

  2. Selecione Programações de snapshot para ver uma lista das programações.
  3. Selecione qualquer programação não associada a um disco.
  4. Clique em Excluir.

gcloud

Para excluir uma programação de snapshot, use o comando resource-policies delete.

gcloud compute resource-policies delete SCHEDULE_NAME \
    --region REGION

Substitua:

  • SCHEDULE_NAME: o nome da programação de snapshot
  • REGION: o local da programação de snapshot

REST

Para excluir uma programação de snapshot, faça uma solicitação DELETE ao método resourcePolicies.delete. Se a programação de snapshot já estiver anexada a um disco, você receberá um erro.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME

Substitua:

  • PROJECT_ID: o nome do projeto
  • REGION: o local da programação de snapshot
  • SCHEDULE_NAME: o nome da programação de snapshot

Geração de registros e monitoramento

Todo snapshot programado associado a um disco cria continuamente um evento do sistema, que é sempre monitorado e registrado. Os registros de auditoria de evento do sistema estão sempre ativados.

Esses registros fornecem informações comportamentais sobre os snapshots programados para cada disco associado. Veja seus registros no menu "Logging" do console do Google Cloud.

Para mais informações sobre como usar a Análise de registros, consulte Ver registros usando a Análise de registros.

Console

  1. No Console do Google Cloud, acesse a página do Explorador de registros.

    Acessar a página Análise de registros

  2. Na lista suspensa Recurso auditado, aponte para Disco e selecione Todos os disk_id.

  3. Na lista suspensa Todos os registros, selecione cloudaudit.googleapis.com/system_event e clique em OK.

  4. Na lista suspensa Qualquer nível de registro, selecione o tipo de registro.

A seguir