Zeitpläne für Laufwerk-Snapshots erstellen


Sie erstellen einen Snapshot-Zeitplan, um in regelmäßigen Abständen zonale und regionale Persistent Disk sowie Google Cloud Hyperdisk automatisch zu sichern. Snapshot-Zeitpläne sind eine bewährte Methode zum Sichern von Compute Engine-Arbeitslasten.

Wenn Sie einen Snapshot-Zeitplan erstellen möchten, der den Status der Anwendungsdaten zum Zeitpunkt der Sicherung erfasst (auch als Anwendungskonsistenz , Gastbereinigung oder VSS-Snapshot bezeichnet), siehe Snapshots von konsistenten Laufwerken für Linux-Anwendungen erstellen oderSnapshot eines konsistenten Laufwerks für Windows-Anwendungen erstellen

Weitere Informationen zu den Attributen des Snapshot-Zeitplans finden Sie unter Attribute für Snapshot-Zeitpläne.

Hinweise

  • Prüfen Sie die Einschränkungen für Snapshot-Zeitpläne.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Snapshot-Zeitplans benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen eines Snapshot-Zeitplans erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um einen Snapshot-Zeitplan zu erstellen:

  • Zum Erstellen eines Snapshot-Zeitplans: compute.resourcePolicies.create für das Projekt oder die Organisation
  • Snapshot-Zeitplan mit Laufwerk verknüpfen:
    • compute.disks.addResourcePolicies für das Laufwerk
    • compute.resourcePolicies.use für die Ressourcenrichtlinie
  • Laufwerk mit Snapshot-Zeitplan erstellen:
    • compute.disks.create für das Projekt
    • compute.resourcePolicies.create für das Projekt
    • compute.disks.addResourcePolicies für das Laufwerk

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Snapshot-Zeitpläne erstellen

Wenn Sie einen Snapshot-Zeitplan erstellen, erstellen Sie eine Ressourcenrichtlinie, die Sie auf ein oder mehrere Persistent Disk- oder Hyperdisk-Volumes anwenden können.

So erstellen Sie einen Snapshot-Zeitplan:

Verschlüsselung mit Snapshot-Zeitplänen verwenden

Wenn ein Laufwerk einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) verwendet und Sie einen Snapshot-Zeitplan zum Erstellen von Snapshots dieses Laufwerks verwenden, werden alle erstellten Snapshots automatisch mit demselben Schlüssel verschlüsselt.

Sie können keine Snapshot-Zeitpläne mit Laufwerken verwenden, die einen vom Kunden bereitgestellten Verschlüsselungsschlüssel (CSEK) verwenden.

Snapshot-Zeitplan erstellen

Sie können einen Snapshot-Zeitplan für Ihre Laufwerke mit der Google Cloud Console, der Google Cloud CLI oder REST erstellen. Sie müssen den Snapshot-Zeitplan in derselben Region erstellen, in der sich das Laufwerk befindet. Wenn sich das Laufwerk beispielsweise in der Zone us-west1-a befindet, müssen Sie den Snapshot-Zeitplan in der Region us-west1 erstellen. Sie können die vom Snapshot-Zeitplan generierten Snapshots jedoch an einem anderen Speicherort speichern.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen”
    Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.

  2. Wählen Sie das Projekt aus, das Ihre VM-Instanzen enthält.
  3. Klicken Sie in der Spalte Name auf den Namen der VM mit dem nichtflüchtigen Speicher, für den Sie einen Snapshot-Zeitplan erstellen möchten.
  4. Unter Speicher klicken Sie auf den Namen des Bootlaufwerks oder des zusätzlichen Laufwerks, um dafür einen Snapshot-Zeitplan zu erstellen.
  5. Klicken Sie auf  Bearbeiten. Möglicherweise müssen Sie auf das Menü  Weitere Aktionen und dann auf  Bearbeiten klicken.
  6. Wählen Sie unter Snapshot-Zeitplan die Option Zeitplan erstellen aus.
  7. Geben Sie unter Name einen der folgenden Namen für den Snapshot-Zeitplan ein:
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. Wählen Sie im Bereich Standort den Snapshot-Speicherort aus. Der vordefinierte oder benutzerdefinierte Standardspeicherort, der in Ihren Snapshot-Einstellungen definiert ist, wird automatisch ausgewählt. Optional können Sie die Snapshot-Einstellungen überschreiben und die Snapshots an einem benutzerdefinierten Standort speichern. Gehen Sie dazu so vor:

    1. Wählen Sie die Art des gewünschten Speicherorts für den Snapshot aus.

      • Wählen Sie Multiregional aus, um eine höhere Verfügbarkeit zu höheren Kosten zu erreichen.
      • Wählen Sie Regionale Snapshots aus, um den physischen Standort Ihrer Daten zu geringeren Kosten besser steuern zu können.
    2. Wählen Sie im Feld Standort auswählen die Region oder Multiregion aus, die Sie verwenden möchten. Wählen Sie Je nach Standort des Laufwerks aus, um die Region bzw. Multiregion mit der geringsten Entfernung zu Ihrem Quelllaufwerk zu verwenden.

  9. Klicken Sie auf Erstellen, um die Erstellung des Snapshot-Zeitplans abzuschließen.
  10. Klicken Sie auf Speichern, um diesen Snapshot-Zeitplan an den nichtflüchtigen Speicher anzuhängen.

gcloud

Verwenden Sie zum Erstellen eines Snapshot-Zeitplans für ein Laufwerk den Befehl gcloud compute resource-policies create snapshot-schedule. Legen Sie die Häufigkeit des Zeitplans auf stündlich, täglich oder wöchentlich fest.

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 \
    --weekly-schedule-from-file FILE_NAME \
    --on-source-disk-delete DELETION_OPTION

Ersetzen Sie Folgendes:

  • SCHEDULE_NAME ist der Name des Snapshot-Zeitplans
  • SCHEDULE_DESCRIPTION: eine Beschreibung des Snapshot-Zeitplans. Setzen Sie die Beschreibung in Anführungszeichen.
  • MAX_RETENTION_DAYS: die Anzahl der Tage, für die der Snapshot aufbewahrt werden soll.

    Der Wert 3 bedeutet beispielsweise, dass die Snapshots 3 Tage lang aufbewahrt werden, bevor sie gelöscht werden. Sie müssen einen Wert von 1 oder höher verwenden.

  • START_TIME: der Beginn in der Zeitzone UTC. Sie müssen die Uhrzeit als volle Stunde angeben.

    Beispiel:

    • 14:00 Uhr PST muss als 22:00 angegeben werden.
    • Wenn Sie als Beginn 22:13 festlegen, erhalten Sie eine Fehlermeldung.

    Wenn Sie das Flag --weekly-schedule-from-file verwenden und eine Startzeit in der Datei angeben, müssen Sie dieses Flag nicht angeben.

  • SNAPSHOT_INTERVAL: Das Intervall zwischen den aufeinanderfolgenden Snapshots. Die Flags der Snapshot-Häufigkeit hourly-schedule, daily-schedule, weekly-schedule und weekly-schedule-from-file schließen sich gegenseitig aus. Sie können nur eins für den Snapshot-Zeitplan verwenden.

    • Legen Sie einen täglichen Zeitplan fest, indem Sie das Flag --daily-schedule ohne Wert angeben.
    • Legen Sie einen stündlichen Zeitplan fest, wobei das Flag --hourly-schedule auf eine Ganzzahl zwischen 1 und 23 gesetzt ist. Wählen Sie eine Stundenzahl aus, die ein Teiler von 24 ist, um jeden Tag zur selben Zeit Snapshots zu generieren. Beispiel: Wenn Sie --hourly-schedule auf 12 setzen, bedeutet das, dass alle 12 Stunden ein Snapshot erstellt wird.
    • Legen Sie einen wöchentlichen Zeitplan fest, wobei das Flag --weekly-schedule auf den Wochentag festgelegt ist, an dem der Snapshot erstellt werden soll. Wochentag muss ausgeschrieben werden; die Groß-/Kleinschreibung wird nicht berücksichtigt. Wenn Sie beispielsweise Ihr Laufwerk jeden Freitag sichern möchten, enthält der Befehl --weekly-schedule=friday.
    • Legen Sie einen erweiterten Wochenplan fest, der verschiedene Wochentage und unterschiedliche Startzeiten angibt, indem Sie das Flag --weekly-schedule-from-file angeben. Ersetzen Sie FILE_NAME durch den Dateinamen, der den wöchentlichen Snapshot-Zeitplan enthält. Sie können zwar mit einer Datei verschiedene Wochentage und unterschiedliche Startzeiten angeben, aber nicht mehrere wöchentliche Zeitpläne direkt in der Befehlszeile. Beispiel: Sie können in der Datei zwei wöchentliche Zeitpläne für Montag und Mittwoch festlegen, diese Einstellung kann aber in der Befehlszeile nicht dupliziert werden:

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

      Wenn Sie in der Datei eine Startzeit angeben, müssen Sie das Flag --start-time nicht in der Befehlszeile festlegen. Der Zeitplan verwendet die UTC-Zeitzone.

  • DELETION_OPTION: legt fest, was mit den Snapshots geschieht, wenn das Quelllaufwerk gelöscht wird. Wenn Sie alle generierten Snapshots beibehalten möchten, können Sie dieses Flag weglassen. Geben Sie andernfalls apply-retention-policy an, um die Einstellungen in einer Aufbewahrungsrichtlinie zu verwenden.

Beispiele

Für alle folgenden Beispiele gilt:

  • Die Regel für gelöschtes Laufwerk ist enthalten. Das Flag --on-source-disk-delete wird auf den Standardwert keep-auto-snapshots gesetzt, damit alle automatisch generierten Snapshots dauerhaft gespeichert werden. Alternativ können Sie dieses Flag auf apply-retention-policy festlegen, um Ihre Snapshot-Aufbewahrungsrichtlinie zu verwenden.
  • Der Speicherort ist manuell auf US gesetzt, sodass alle generierten Snapshots am multiregionalen Standort "US" gespeichert werden.
  • Die Labels env=dev und media=images werden auf alle generierten Snapshots angewendet.
  • Die Aufbewahrungsrichtlinie ist auf 10 Tage festgelegt.

Stündlicher Zeitplan: In diesem Beispiel beginnt der Snapshot-Zeitplan um 22:00 Uhr UTC (14:00 Uhr PST) und wird alle vier Stunden ausgeführt.

  gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
      --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

Täglicher Zeitplan: In diesem Beispiel beginnt der Snapshot-Zeitplan um 22:00 Uhr UTC (14:00 Uhr PST) und wird jeden Tag zur selben Zeit ausgeführt. Das Flag --daily-schedule muss vorhanden sein, aber ohne einen zugehörigen Wert.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --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

Wöchentlicher Zeitplan: In diesem Beispiel beginnt der Snapshot-Zeitplan um 22:00 Uhr UTC (14:00 Uhr PST) und wird jeden Dienstag und Donnerstag ausgeführt.

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

REST

Erstellen Sie für einen Snapshot-Zeitplan eine POST-Anfrage an resourcePolicies.insert. Sie müssen den Namen des Snapshot-Zeitplans und die Snapshot-Häufigkeit angeben.

Sie können auch den Snapshot-Speicherort manuell angeben und der Anfrage Ressourcenlabels hinzufügen.

Standardmäßig ist der Parameter onSourceDiskDelete auf keepAutoSnapshots eingestellt. Diese Einstellung gibt an, dass die automatisch generierten Snapshots für dieses Laufwerk auf unbestimmte Zeit beibehalten werden, wenn das Quelllaufwerk gelöscht wird. Alternativ können Sie das Flag auf applyRetentionPolicy setzen, um die Aufbewahrungsrichtlinie anzuwenden.

Im folgenden Beispiel wird ein täglicher Snapshot-Zeitplan festgelegt, der um 12:00 UTC (04:00 Uhr PST) beginnt und täglich wiederholt wird. In diesem Beispiel wird außerdem eine Aufbewahrungsrichtlinie von 5 Tagen festgelegt. Nach 5 Tagen werden die Snapshots automatisch entfernt.

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"
       }
     }
    }

Ersetzen Sie Folgendes:

  • PROJECT_ID: der Projektname
  • REGION: der Speicherort der Ressourcenrichtlinie für den Snapshot-Zeitplan
  • SCHEDULE_DESCRIPTION: die Beschreibung des Snapshot-Zeitplans
  • SCHEDULE_NAME: der Name des Snapshot-Zeitplans
  • STORAGE_LOCATION: der Speicherort

Auf ähnliche Weise können Sie einen wöchentlichen oder monatlichen Zeitplan erstellen. Unter Methode resourcePolicies.insert finden Sie Informationen zum Festlegen von wöchentlichen und monatlichen Zeitplänen.

Die folgende Anfrage erstellt beispielsweise einen wöchentlichen Zeitplan, der dienstags und donnerstags um 9:00 Uhr bzw. um 2:00 Uhr UTC ausgeführt wird.

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

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

Snapshot-Zeitplan mit Laufwerk verknüpfen

Nachdem Sie einen Zeitplan erstellt haben, können Sie ihn mit einem vorhandenen Laufwerk verknüpfen. Verwenden Sie die Console, die gcloud CLI oder die Compute Engine API.

Console

So verknüpfen Sie einen Snapshot-Zeitplan mit einem vorhandenen Laufwerk:

  1. Rufen Sie in der Google Cloud Console die Seite Laufwerke auf.

    Zur Seite „Laufwerke“

  2. Klicken Sie auf den Namen des Laufwerks, an das Sie einen Snapshot-Zeitplan anhängen möchten. Dadurch wird die Seite Laufwerk verwalten geöffnet.

  3. Klicken Sie auf der Seite Laufwerk verwalten auf Bearbeiten. Möglicherweise müssen Sie zuerst auf das Menü Weitere Aktionen klicken.

  4. Verwenden Sie das Drop-down-Menü Snapshot-Zeitplan, um den Zeitplan zum Laufwerk hinzuzufügen. Alternativ erstellen Sie einen neuen Zeitplan.

  5. Wenn Sie einen neuen Zeitplan erstellt haben, klicken Sie auf Erstellen.

  6. Klicken Sie auf Speichern, um die Aufgabe abzuschließen.

gcloud

Verwenden Sie den Befehl gcloud disks add-resource-policies, um einen Snapshot-Zeitplan an ein Laufwerk anzuhängen.

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

Ersetzen Sie Folgendes:

  • DISK_NAME: der Name des vorhandenen Laufwerks
  • SCHEDULE_NAME: der Name des Snapshot-Zeitplans
  • ZONE: der Standort des Laufwerks

REST

Erstellen Sie eine POST-Anfrage an disks.addResourcePolicies, um einen Snapshot-Zeitplan an ein vorhandenes Laufwerk anzuhängen:

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

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: der Projektname
  • ZONE ist die Zone, in der sich das Laufwerk befindet
  • REGION: die Region, in der der Snapshot-Zeitplan erstellt wurde
  • DISK_NAME: Name des Laufwerks
  • SCHEDULE_NAME: der Name des Snapshot-Zeitplans, den Sie auf dieses Laufwerk anwenden

Laufwerk mit Snapshot-Zeitplan erstellen

Sie können die Google Cloud Console oder die gcloud CLI verwenden, um gleichzeitig ein Laufwerk und einen Snapshot-Zeitplan zu erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Laufwerke auf.

    Zur Seite „Laufwerke“

  2. Klicken Sie auf Laufwerk erstellen.

  3. Füllen Sie die erforderlichen Felder aus, um ein zonales oder regionales Laufwerk zu erstellen.

  4. Erstellen Sie das Laufwerk in derselben Region, in der der Snapshot-Zeitplan gespeichert ist.

  5. Füllen Sie die Felder für den Snapshot-Zeitplan aus.

  6. Verwenden Sie das Drop-down-Menü und füllen Sie die Felder aus, um den Zeitplan zu erstellen.

  7. Klicken Sie auf Erstellen, um den Zeitplan zu erstellen.

  8. Klicken Sie auf Erstellen, um das Laufwerk anzulegen.

gcloud

Erstellen Sie mit dem -Befehl gcloud disks create eine zonale oder regionale Persistent Disk oder Hyperdisk und hängen Sie daran einen Snapshot-Zeitplan an.

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

Ersetzen Sie Folgendes:

  • DISK_NAME: Name des neuen Laufwerks
  • SCHEDULE_NAME: der Name des Snapshot-Zeitplans
  • ZONE: der Ort, an dem Sie das Laufwerk erstellen. Das Laufwerk muss sich in einer Zone befinden, die sich in derselben Region wie der Snapshot-Zeitplan befindet.

Nächste Schritte