Creare pianificazioni per gli snapshot dei dischi


Crei una pianificazione di snapshot per eseguire backup regolari e automatici disco permanente a livello di zona e di regione e Google Cloud Hyperdisk. Usa le pianificazioni di snapshot come best practice per eseguire il backup di Compute Engine carichi di lavoro con scale out impegnativi.

Se vuoi creare una pianificazione di snapshot che acquisisca lo stato i dati dell'applicazione al momento del backup, noto anche come conforme all'applicazione, guest-flush o snapshot VSS, consulta Crea snapshot di dischi coerenti con le applicazioni Linux oppure Crea uno snapshot del disco coerente con l'applicazione Windows.

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

Prima di iniziare

  • Consulta la sezione Limitazioni per le pianificazioni degli snapshot.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli e autorizzazioni richiesti

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

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

Autorizzazioni obbligatorie

Per creare una pianificazione snapshot sono necessarie le seguenti autorizzazioni:

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

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Panoramica della creazione di pianificazioni snapshot

Quando crei una pianificazione di snapshot, crei un criteri relativi alle risorse che puoi applicare a uno o più Persistent Disk o Hyperdisk come i bilanciatori del carico e i volumi di archiviazione.

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 di quel disco, tutte le vengono criptati automaticamente con la stessa chiave.

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

Crea pianificazione snapshot

Puoi creare una pianificazione di snapshot per i tuoi dischi utilizzando la console Google Cloud, Google Cloud CLI o REST. Devi creare lo snapshot pianificazione 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 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. Clic 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 posizione di archiviazione degli snapshot. La località predefinita o personalizzata definita nelle impostazioni dello snapshot è viene selezionata automaticamente. Facoltativamente, puoi eseguire l'override delle impostazioni dello snapshot e archiviare di snapshot in una posizione di archiviazione personalizzata:

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

      • Scegli Più regioni per una maggiore disponibilità a un costo superiore.
      • Scegli gli snapshot regionali per un maggiore controllo sulla località fisica dei dati a un costo inferiore.
    2. Nel campo Seleziona località, seleziona una o più regioni specifiche che vuoi utilizzare. Per utilizzare la regione o le regioni più vicine al tuo disco di origine, seleziona In base alla posizione 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 degli snapshot per un disco, utilizza il comando gcloud compute resource-policies create snapshot-schedule. Imposta la frequenza della pianificazione 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 degli snapshot.
  • SCHEDULE_DESCRIPTION: una descrizione del la pianificazione di snapshot. Racchiudi tra virgolette la descrizione.
  • MAX_RETENTION_DAYS: il numero di giorni per conservare lo snapshot.

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

  • START_TIME: ora di inizio nel fuso orario UTC zona di destinazione. L'ora deve iniziare in base all'ora.

    Ad esempio:

    • Le 14:00 PST devono essere specificate come 22:00.
    • Se imposti l'ora di inizio 22:13, ricevi un errore.

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

  • SNAPSHOT_INTERVAL: l'intervallo tra la creazione di snapshot successivi. Gli indicatori della frequenza degli snapshot hourly-schedule, daily-schedule, weekly-schedule e weekly-schedule-from-file sono esclusivi l'uno dell'altro. Puoi utilizzarne solo uno per la pianificazione di snapshot.

    • Imposta un programma giornaliero includendo il flag --daily-schedule senza alcun valore.
    • Imposta una pianificazione ogni ora 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 di ore diviso uniformemente in 24. Ad esempio, se imposti --hourly-schedule su 12, significa che viene creato ogni 12 ore.
    • Imposta una programmazione settimanale con il flag --weekly-schedule impostato su giorno della settimana in cui vuoi creare lo snapshot. Devi indicare il giorno della settimana; I valori non sono sensibili alle maiuscole. Ad esempio, per eseguire il backup del disco ogni venerdì, il comando includerà --weekly-schedule=friday.
    • Impostare una programmazione settimanale avanzata, specificando i diversi giorni della settimana e con ore di inizio diverse includendo --weekly-schedule-from-file flag. Sostituisci FILE_NAME con il nome del file che contiene la pianificazione degli snapshot settimanali. Anche se puoi specificare giorni diversi della settimana e ore di inizio diverse utilizzando un file, non puoi specificare più programmazioni settimanali direttamente dalla riga di comando. Ad esempio: il tuo file potrebbe specificare due programmazioni settimanali, il lunedì e ma non puoi duplicare questa impostazione nella riga di comando:

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

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

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

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

Esempi

In tutti gli esempi seguenti:

  • La regola di eliminazione del disco è inclusa; il flag --on-source-disk-delete è impostato sul valore predefinito keep-auto-snapshots per conservare definitivamente tutti gli snapshot generati automaticamente. In alternativa, imposta questo flag su apply-retention-policy per utilizzare i criteri di conservazione degli snapshot.
  • La località di archiviazione è impostata manualmente su US, quindi tutti gli snapshot generati sono archiviati in più regioni degli Stati Uniti.
  • Le etichette env=dev e media=images vengono applicate a tutti gli screenshot generati.
  • Il criterio di conservazione è impostato su 10 giorni.

Programmazione 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 istantanei inizia alle 22:00 UTC (14:00 PST) e viene eseguita 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

Programmazione 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 snapshot e la frequenza.

Puoi anche Specificare manualmente una posizione di archiviazione degli snapshot e aggiungi le etichette delle risorse nella tua 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 a tempo indeterminato. In alternativa, puoi impostare il flag su applyRetentionPolicy per applicare il criterio di conservazione.

Nell'esempio seguente viene impostata una pianificazione giornaliera degli snapshot che inizia alle 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: località della pianificazione di snapshot criterio delle risorse
  • SCHEDULE_DESCRIPTION: il descrizione della pianificazione di snapshot
  • SCHEDULE_NAME: il nome dello snapshot programmazione
  • STORAGE_LOCATION: Facoltativo: il campo posizione di archiviazione. Se ometti questo flag, viene utilizzata la posizione di archiviazione predefinita.

Analogamente, puoi creare una pianificazione settimanale o mensile. Esamina il Metodo resourcePolicies.insert per informazioni dettagliate sull'impostazione di una programmazione settimanale o mensile.

Ad esempio, la seguente richiesta crea una pianificazione settimanale che viene eseguita di 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"
      }
  }
}

Collegare una pianificazione di snapshot a un disco

Dopo aver creato una pianificazione, collegala a un disco esistente. Utilizza 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 associare una pianificazione degli snapshot. Viene visualizzata la pagina Gestisci disco.

  3. Nella pagina Gestisci disco, fai clic su Modifica. Potrebbe essere necessario fare prima clic sul menu Altre azioni.

  4. Utilizza il menu a discesa Pianificazione degli snapshot per aggiungere la pianificazione al disco. In alternativa, crea una nuova pianificazione.

  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 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 dello snapshot programmazione
  • ZONE: la posizione del disco

REST

Crea una richiesta POST per 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 viene pianificata la pianificazione di snapshot è stato creato
  • DISK_NAME: il nome del disco
  • SCHEDULE_NAME: il nome dello snapshot la pianificazione che applichi a questo disco

Crea un disco con una pianificazione di snapshot

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

Console

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

    Vai a dischi

  2. Fai clic su Crea disco.

  3. Compila i campi obbligatori per creare un disco a livello di zona o di regione.

  4. Crea il disco nella stessa regione della pianificazione delle istantanee.

  5. Compila i campi della pianificazione 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

Utilizza il comando gcloud disks create per creare un disco Hyper o un disco permanente a livello di zona o di regione e associa una pianificazione degli 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 degli snapshot
  • ZONE: la posizione in cui stai creando l'elemento disco. Il disco deve trovarsi in una zona nella stessa regione la pianificazione di snapshot.

Passaggi successivi