Crea pianificazioni per gli snapshot dei dischi

Creerai una pianificazione di snapshot per eseguire regolarmente e automaticamente il backup di disco permanente a livello di zona e di regione e di Google Cloud Hyperdisk. Utilizza le pianificazioni di snapshot come best practice per il backup dei carichi di lavoro di Compute Engine.

Se vuoi creare una pianificazione di snapshot che acquisisca lo stato dei dati dell'applicazione al momento del backup, denominata anche coerente con l'applicazione, guest-flush o snapshot VSS, consulta Creare snapshot del disco coerenti con l'applicazione Linux o Creare uno snapshot del disco coerente con l'applicazione Windows.

Per ulteriori informazioni sulle proprietà della pianificazione degli snapshot, consulta Proprietà della pianificazione degli snapshot.

Prima di iniziare

  • Esamina le Limitazioni per le pianificazioni di snapshot.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Autorizzazioni e ruoli richiesti

Per ottenere le autorizzazioni necessarie per creare una pianificazione di snapshot, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare una pianificazione di snapshot. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare una pianificazione di snapshot sono necessarie le autorizzazioni seguenti:

  • Per creare una pianificazione di snapshot: compute.resourcePolicies.create sul progetto o nell'organizzazione
  • Per collegare una pianificazione di snapshot a un disco:
    • compute.disks.addResourcePolicies sul disco
    • compute.resourcePolicies.use sul criterio delle risorse
  • Per creare un disco con una pianificazione di snapshot:
    • compute.disks.create sul progetto
    • compute.resourcePolicies.create sul progetto
    • compute.disks.addResourcePolicies sul disco

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Panoramica della creazione delle pianificazioni di snapshot

Quando crei una pianificazione di snapshot, crei un criterio delle risorse che puoi applicare a uno o più volumi Persistent Disk o Hyperdisk.

Puoi creare pianificazioni di snapshot nei seguenti modi:

Utilizzo della crittografia con le pianificazioni di snapshot

Se un disco utilizza una chiave di crittografia gestita dal cliente (CMEK), quando utilizzi una pianificazione di snapshot per creare snapshot del disco, tutti gli snapshot creati vengono automaticamente criptati con la stessa chiave.

Non puoi utilizzare le pianificazioni di snapshot con dischi che utilizzano una chiave di crittografia fornita dal cliente (CSEK).

Crea pianificazione snapshot

Puoi creare una pianificazione di snapshot per i dischi utilizzando la console Google Cloud, Google Cloud CLI o REST. Devi creare la pianificazione degli snapshot nella stessa regione in cui si trova il disco. Ad esempio, se il disco si trova nella zona us-west1-a, devi creare la pianificazione di snapshot nella regione us-west1. Tuttavia, puoi scegliere di archiviare gli snapshot generati dalla pianificazione di snapshot in una posizione diversa.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM
    I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.

  2. Seleziona il progetto che contiene le istanze VM.
  3. Nella colonna Nome, fai clic sul nome della VM con il disco permanente per cui vuoi creare la pianificazione di snapshot.
  4. In Spazio di archiviazione, fai clic sul nome del disco di avvio o del disco aggiuntivo per cui vuoi creare la pianificazione di snapshot.
  5. Fai clic su Modifica. Potresti dover fare clic sul menu Altre azioni e poi su Modifica.
  6. In Pianificazione di snapshot, scegli Crea una pianificazione.
  7. In Nome, inserisci uno dei seguenti nomi per la pianificazione di snapshot:
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. Nella sezione Località, scegli la località di archiviazione degli snapshot. La posizione predefinita o personalizzata definita nelle impostazioni dello snapshot viene selezionata automaticamente. Facoltativamente, puoi eseguire l'override delle impostazioni degli snapshot e archiviare gli snapshot in una posizione di archiviazione personalizzata seguendo questi passaggi:

    1. Scegli il tipo di posizione di archiviazione per lo snapshot.

      • Scegli Più regioni per una disponibilità maggiore a un costo superiore.
      • Scegli gli snapshot regionali per un maggiore controllo sulla posizione fisica dei dati a un costo inferiore.
    2. Nel campo Seleziona località, seleziona una o più regioni specifiche che vuoi utilizzare. Per utilizzare una o più regioni più vicine al disco di origine, seleziona In base alla località del disco.

  9. Per completare la creazione della pianificazione di snapshot, fai clic su Crea.
  10. Per collegare questa pianificazione di snapshot al disco permanente, fai clic su Salva.

gcloud

Per creare una pianificazione di snapshot per un disco, utilizza il comando gcloud compute resource-policies create snapshot-schedule. Imposta la frequenza della programmazione su oraria, giornaliera o settimanale.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "SCHEDULE_DESCRIPTION" \
    --max-retention-days MAX_RETENTION_DAYS \
    --start-time START_TIME \
    --hourly-schedule SNAPSHOT_INTERVAL \
    --daily-schedule \
    [--weekly-schedule SNAPSHOT_INTERVAL or \
    --weekly-schedule-from-file FILE_NAME] \
    --on-source-disk-delete DELETION_OPTION \
    --storage-location=STORAGE_LOCATION

Sostituisci quanto segue:

  • SCHEDULE_NAME: il nome della pianificazione di snapshot.
  • SCHEDULE_DESCRIPTION: una descrizione della pianificazione degli snapshot. Racchiudi la descrizione tra virgolette.
  • MAX_RETENTION_DAYS: il numero di giorni in cui conservare lo snapshot.

    Ad esempio, il valore 3 indica che gli snapshot vengono conservati per tre giorni prima di essere eliminati. Devi utilizzare un valore pari o superiore a 1.

  • START_TIME: l'ora di inizio nel fuso orario UTC. L'ora deve iniziare all'ora.

    Ad esempio:

    • 14:00 PST deve essere specificato come 22:00.
    • Se imposti 22:13 come ora di inizio, riceverai un errore.

    Se utilizzi il flag --weekly-schedule-from-file e specifichi un'ora di inizio nel file, non è necessario includere questo flag.

  • SNAPSHOT_INTERVAL: l'intervallo tra la creazione di snapshot successivi. I flag di frequenza degli snapshot hourly-schedule, daily-schedule, weekly-schedule e weekly-schedule-from-file sono esclusi reciprocamente. Puoi utilizzarne solo uno per la pianificazione di snapshot.

    • Imposta una pianificazione giornaliera includendo il flag --daily-schedule senza alcun valore.
    • Imposta una pianificazione oraria con il flag --hourly-schedule impostato su un valore intero compreso tra 1 e 23. Per generare snapshot alla stessa ora ogni giorno, scegli un numero orario diviso uniformemente in 24. Ad esempio, se imposti --hourly-schedule su 12, viene creata un'istantanea ogni 12 ore.
    • Imposta una pianificazione settimanale con il flag --weekly-schedule impostato sul giorno della settimana in cui vuoi creare lo snapshot. Devi specificare il giorno della settimana; i valori non fanno distinzione tra maiuscole e minuscole. Ad esempio, per eseguire il backup del disco ogni venerdì, il comando includerà --weekly-schedule=friday.
    • Imposta una pianificazione settimanale avanzata, specificando giorni della settimana diversi e con ore di inizio diverse includendo il flag --weekly-schedule-from-file. Sostituisci FILE_NAME con il nome file che contiene la pianificazione settimanale degli snapshot. Sebbene sia possibile specificare giorni della settimana e ore di inizio differenti utilizzando un file, non puoi specificare più pianificazioni settimanali direttamente dalla riga di comando. Ad esempio, nel file potrebbero essere specificate due pianificazioni settimanali, il lunedì e il mercoledì, ma non puoi duplicare questa impostazione nella riga di comando:

      [
        {"day": "MONDAY", "startTime": "04:00"},
        {"day": "WEDNESDAY", "startTime": "02:00"}
      ]
      

      Se nel file includi un'ora di inizio, non è necessario impostare il flag --start-time sulla riga di comando. La pianificazione utilizza il fuso orario UTC.

  • DELETION_OPTION: determina cosa succede agli snapshot se il disco di origine viene eliminato. Se vuoi conservare tutti gli snapshot generati, puoi omettere questo flag. In caso contrario, specifica apply-retention-policy per utilizzare le impostazioni in un criterio di conservazione.

  • STORAGE_LOCATION: (facoltativo) la località di archiviazione. Se ometti questo flag, viene utilizzata la posizione di archiviazione predefinita.

Esempi

In tutti i seguenti esempi:

  • È inclusa la regola di eliminazione dei dischi. Il flag --on-source-disk-delete è impostato sul valore predefinito keep-auto-snapshots per conservare definitivamente tutti gli snapshot generati automaticamente. L'alternativa è impostare questo flag su apply-retention-policy per utilizzare il criterio di conservazione degli snapshot.
  • La località di archiviazione è impostata manualmente su US, pertanto tutti gli snapshot generati vengono archiviati in più regioni degli Stati Uniti.
  • Le etichette env=dev e media=images vengono applicate a tutti gli snapshot generati.
  • Il criterio di conservazione è impostato su 10 giorni.

Pianificazione oraria: in questo esempio, la pianificazione di snapshot inizia alle 22:00 UTC (14:00 PST) e si verifica ogni 4 ore.

  gcloud compute resource-policies create snapshot-schedule hourly-schedule1 \
      --description "MY HOURLY SNAPSHOT SCHEDULE" \
      --max-retention-days 10 \
      --start-time 22:00 \
      --hourly-schedule 4 \
      --region us-west1 \
      --on-source-disk-delete keep-auto-snapshots \
      --snapshot-labels env=dev,media=images \
      --storage-location US

Pianificazione giornaliera: in questo esempio, la pianificazione degli snapshot inizia alle 22:00 UTC (14:00 PST) e si verifica ogni giorno alla stessa ora. Il flag --daily-schedule deve essere presente, ma senza un valore associato.

gcloud compute resource-policies create snapshot-schedule daily-schedule2 \
    --description "MY DAILY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --daily-schedule \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

Pianificazione settimanale: in questo esempio, la pianificazione di snapshot inizia alle 22:00 UTC (14:00 PST) e si verifica ogni settimana di martedì.

gcloud compute resource-policies create snapshot-schedule weekly-schedule3 \
    --description "MY WEEKLY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --weekly-schedule tuesday \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

REST

Per creare una pianificazione di snapshot, crea una richiesta POST per resourcePolicies.insert. Devi includere il nome della pianificazione degli snapshot e la frequenza degli snapshot.

Puoi anche specificare manualmente una località di archiviazione degli snapshot e aggiungere etichette delle risorse nella richiesta.

Per impostazione predefinita, il parametro onSourceDiskDelete è impostato su keepAutoSnapshots. Ciò significa che se il disco di origine viene eliminato, lo snapshot generato automaticamente per quel disco viene conservato per un periodo indeterminato. In alternativa, puoi impostare il flag su applyRetentionPolicy per applicare il criterio di conservazione.

L'esempio seguente imposta una pianificazione giornaliera di snapshot a partire dalle ore 12:00 UTC (04:00 PST) e si ripete ogni giorno. L'esempio imposta anche un criterio di conservazione di 5 giorni; dopo 5 giorni, gli snapshot vengono rimossi automaticamente.

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

    {
     "name": "SCHEDULE_NAME",
     "description": "SCHEDULE_DESCRIPTION",
     "snapshotSchedulePolicy": {
       "schedule": {
         "dailySchedule": {
           "startTime": "12:00",
           "daysInCycle": "1"
         }
       },
       "retentionPolicy": {
         "maxRetentionDays": "5"
       },
       "snapshotProperties": {
         "guestFlush": "False",
         "labels": {
           "env": "dev",
           "media": "images"
         },
         "storageLocations": "STORAGE_LOCATION"
       }
     }
    }

Sostituisci quanto segue:

  • PROJECT_ID: il nome del progetto
  • REGION: la località del criterio delle risorse di pianificazione degli snapshot
  • SCHEDULE_DESCRIPTION: la descrizione della pianificazione di snapshot
  • SCHEDULE_NAME: il nome della pianificazione di snapshot
  • STORAGE_LOCATION: (facoltativo) la località di archiviazione. Se ometti questo flag, viene utilizzata la posizione di archiviazione predefinita.

Analogamente, puoi creare una programmazione settimanale o mensile. Esamina il metodo resourcePolicies.insert per dettagli specifici sull'impostazione di una programmazione settimanale o mensile.

Ad esempio, la richiesta seguente crea una pianificazione settimanale eseguita martedì alle 09:00 UTC.

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

{
   "name": "SCHEDULE_NAME",
   "description": "SCHEDULE_DESCRIPTION",
   "snapshotSchedulePolicy": {
      "schedule": {
        "weeklySchedule": {
          "dayOfWeeks": [
          {
            "day": "Tuesday",
            "startTime": "9:00"
          }
          ]
        }
      },
      "retentionPolicy": {
          "maxRetentionDays": "5"
      },
      "snapshotProperties": {
          "guestFlush": "False",
          "labels": {
               "production": "webserver"
          },
          "storageLocations": "US"
      }
  }
}

Collega una pianificazione di snapshot a un disco

Dopo aver creato una pianificazione, collegala a un disco esistente. Usa la console, gcloud CLI o l'API Compute Engine.

Console

Collega una pianificazione di snapshot a un disco esistente.

  1. Nella console Google Cloud, vai alla pagina Dischi.

    Vai a Dischi

  2. Seleziona il nome del disco a cui vuoi collegare una pianificazione di snapshot. Viene visualizzata la pagina Gestisci disco.

  3. Nella pagina Gestisci disco, fai clic su Modifica. Potresti dover prima fare clic sul menu Altre azioni.

  4. Utilizza il menu a discesa Pianificazione snapshot per aggiungere la pianificazione al disco. Oppure crea una nuova programmazione.

  5. Se hai creato una nuova pianificazione, fai clic su Crea.

  6. Fai clic su Salva per completare l'attività.

gcloud

Per collegare una pianificazione di snapshot a un disco, utilizza il comando gcloud disks add-resource-policies.

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

Sostituisci quanto segue:

  • DISK_NAME: il nome del disco esistente
  • SCHEDULE_NAME: il nome della pianificazione di snapshot
  • ZONE: la posizione del disco

REST

Crea una richiesta POST in disks.addResourcePolicies per collegare una pianificazione di snapshot a un disco esistente.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: il nome del progetto
  • ZONE: la zona in cui si trova il disco
  • REGION: la regione in cui è stata creata la pianificazione di snapshot
  • DISK_NAME: il nome del disco
  • SCHEDULE_NAME: il nome della pianificazione di snapshot che stai applicando a questo disco

Crea un disco con una pianificazione di snapshot

Puoi utilizzare la console Google Cloud o gcloud CLI per creare contemporaneamente un disco e una pianificazione di snapshot.

Console

  1. Nella console Google Cloud, vai alla pagina Dischi.

    Vai a Dischi

  2. Fai clic su Crea disco.

  3. Completa i campi obbligatori per creare un disco di zona o di regione.

  4. Crea il disco nella stessa regione della pianificazione di snapshot.

  5. Compila i campi della pianificazione degli snapshot.

  6. Utilizza il menu a discesa e compila i campi per creare la pianificazione.

  7. Fai clic su Crea per creare la pianificazione.

  8. Fai clic su Crea per creare il disco.

gcloud

Usa il comando gcloud disks create per creare un Persistent Disk o un Hyperdisk a livello di zona o di regione e collegare una pianificazione di snapshot.

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

Sostituisci quanto segue:

  • DISK_NAME: il nome del nuovo disco
  • SCHEDULE_NAME: il nome della pianificazione di snapshot
  • ZONE: la posizione in cui stai creando il disco. Il disco deve trovarsi in una zona nella stessa regione della pianificazione degli snapshot.

Passaggi successivi