Snapshot eines konsistenten Laufwerks für Windows-Anwendungen erstellen


In Compute Engine können Sie mithilfe von Snapshots Daten Ihrer Laufwerke sichern. Da Snapshots inkrementell sind, können Sie sie im Vergleich zu vollständigen Images von Laufwerken mit einer höheren Leistung erstellen, wobei zugleich geringere Gesamtspeichergebühren fällig werden.

Anwendungskonsistente Snapshots erfassen den Status von Anwendungsdaten zum Zeitpunkt der Sicherung, wenn alle Anwendungstransaktionen abgeschlossen sind und alle ausstehenden Schreibvorgänge auf das Laufwerk geleert wurden. Auf Windows-VMs verwenden Sie den Volumeschattenkopie-Dienst (Volume Shadow Copy Service, VSS), um anwendungskonsistente Snapshots zu erstellen, ohne zuerst die Instanz zu beenden oder das Laufwerk von der VM zu trennen.

Hinweise

  • Erstellen Sie eine Windows-Instanz.
  • Sehen Sie sich die Best Practices zum Erstellen von Snapshots an.
  • 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 wie folgt 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

Beschränkungen

Für Laufwerk-Snapshots unter Windows gelten folgende Einschränkungen:

  • VSS-Snapshots funktionieren nur für Windows-Instanzen mit Image-Version v20160810 und höher. Wenn es um Instanzen mit älteren Images geht, erstellen Sie einen Snapshot ohne VSS.
  • Das angehängte Laufwerk muss ein NTFS-, exFAT- oder ReFS-Dateisystem verwenden.
  • VSS-Snapshots unterstützen die Datenaufbewahrung nur dann, wenn Sie VSS-fähige Anwendungen ausführen, die die Erstellung einer konsistenten Sicherung der Daten koordinieren können.
  • Wenn der VSS-Snapshot-Vorgang nicht innerhalb von 300 Sekunden abgeschlossen ist, schlägt der Snapshot mit einem Zeitüberschreitungsfehler fehl.

Windows-VSS-Snapshot erstellen

Sie können Volumeschattenkopie-Dienst (VSS)-Snapshots erstellen, ohne die Instanz beenden oder das Laufwerk von der VM trennen zu müssen. VSS-Snapshots sind für die Sicherung und Wiederherstellung auf Systemen mit VSS-fähigen Anwendungen vorgesehen.

Der Preis für VSS-Snapshots ist mit dem Preis für normale Snapshots von Persistent Disks oder Hyperdisks identisch. Außerdem wird nur die Gesamtgröße des Snapshots in Rechnung gestellt.

Snapshot erstellen

Console

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

    Zur Seite "Snapshot erstellen"
  2. Geben Sie einen Namen für den Snapshot ein.
  3. Wählen Sie einen Snapshot-Typ aus. Die Standardeinstellung ist ein STANDARD-Snapshot, der die beste Option für eine langfristige Sicherung und Notfallwiederherstellung ist.

    Wählen Sie Archiv-Snapshot aus, um eine kostengünstigere Datenaufbewahrung zu ermöglichen.

  4. Optional: Geben Sie eine Beschreibung des Snapshots ein.
  5. Wählen Sie unter Quelllaufwerk das vorhandene Laufwerk aus, von dem Sie einen Snapshot erstellen möchten.
  6. 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.
  7. Klicken Sie auf die Option Anwendungskonsistenten Snapshot aktivieren.
  8. Klicken Sie auf Erstellen, um den Snapshot zu erstellen.

gcloud

Verwenden Sie zum Erstellen eines VSS-Snapshots den Befehl gcloud compute snapshots create und fügen Sie das Flag --guest-flush ein.

Sie können den Snapshot in der Richtlinie für den Speicherort erstellen, die in Ihren Snapshot-Einstellungen festgelegt ist, oder indem Sie einen alternativen Speicherort Ihrer Wahl verwenden. Weitere Informationen finden Sie unter Snapshot-Speicherort für Snapshots auswählen.

  • Verwenden Sie den Befehl gcloud compute snapshots create, um einen Snapshot am vordefinierten oder benutzerdefinierten Standardspeicherort zu erstellen, der in Ihren Snapshot-Einstellungen konfiguriert ist.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --guest-flush
    
  • Alternativ können Sie die Snapshot-Einstellungen überschreiben und einen Snapshot an einem benutzerdefinierten Speicherort erstellen. Geben Sie dazu das Flag --storage-location an, um festzulegen, wo der Snapshot gespeichert werden soll:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION \
        --guest-flush
    

    Ersetzen Sie Folgendes:

    • SNAPSHOT_NAME: Ein Name für den Snapshot.
    • SOURCE_ZONE: Die Zone des Quelllaufwerks.
    • SOURCE_DISK_NAME: Der Name des Laufwerk-Volumes, von dem Sie einen Snapshot erstellen möchten.
    • SNAPSHOT_TYPE: Der Snapshot-Typ, entweder STANDARD oder ARCHIVE. Wenn kein Snapshot-Typ angegeben ist, wird ein STANDARD-Snapshot erstellt.
    • STORAGE_LOCATION: Optional: Der multiregionale Cloud Storage-Speicherort oder die Cloud Storage-Region, in der Sie den Snapshot speichern möchten. Sie können nur einen Speicherort angeben.

      Verwenden Sie den Parameter --storage-location nur, wenn Sie den vordefinierten oder benutzerdefinierten Standardspeicherort überschreiben möchten, der in Ihren Snapshot-Einstellungen konfiguriert ist.

    Zum Erstellen eines VSS-Snapshots eines regionalen Persistent Disk ersetzen Sie in den vorherigen Beispielen --source-disk-zone= durch --source-disk-region= und geben Sie die Region an, in der sich der regionale Persistent Disk befindet.

    Die Google Cloud CLI wartet, bis der Vorgang den Status READY oder FAILED zurückgibt oder die maximale Zeitüberschreitung erreicht und gibt die letzten bekannten Details des Snapshots zurück.

REST

Geben Sie beim Erstellen eines Snapshots an, dass Sie einen VSS-Snapshot erstellen möchten, indem Sie das Attribut guestFlush in den Anfragetext für die POST-Anfrage an compute.snapshots.insert-Methode einfügen.

Sie können den Snapshot in der Richtlinie für den Speicherort erstellen, die in Ihren Snapshot-Einstellungen festgelegt ist, oder indem Sie einen alternativen Speicherort Ihrer Wahl verwenden. Weitere Informationen finden Sie unter Snapshot-Speicherort für Snapshots auswählen.

  • Zum Erstellen eines Snapshots am vordefinierten oder benutzerdefinierten Standardspeicherort, der in Ihren Snapshot-Einstellungen konfiguriert ist, senden Sie eine POST-Anfrage an die Methode snapshots.insert:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "guestFlush": true,
    }
    
  • Wenn Sie alternativ die Snapshot-Einstellungen überschreiben und einen Snapshot an einem benutzerdefinierten Speicherort erstellen möchten, senden Sie eine POST-Anfrage an die snapshots.insertMethode und fügen Sie das Attribut storageLocations in Ihre Anfrage ein:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "storageLocations": [
          "STORAGE_LOCATION"
      ],
      "guestFlush": true,
    }
    

Ersetzen Sie Folgendes:

  • DESTINATION_PROJECT_ID: Die ID des Projekts, in dem Sie den Snapshot erstellen möchten.
  • SNAPSHOT_NAME: Ein Name für den Snapshot.
  • SOURCE_PROJECT_ID: Die ID des Projekts des Quelllaufwerks.
  • SOURCE_ZONE: Die Zone des Quelllaufwerks.
  • SOURCE_DISK_NAME: Der Name des Laufwerk-Volumes, von dem Sie einen Snapshot erstellen möchten.
  • SNAPSHOT_TYPE: Der Snapshot-Typ, entweder STANDARD oder ARCHIVE. Wenn kein Snapshot-Typ angegeben ist, wird ein STANDARD-Snapshot erstellt.
  • STORAGE_LOCATION: Optional: Der multiregionale Cloud Storage-Speicherort oder die Cloud Storage-Region, in der Sie den Snapshot speichern möchten. Sie können nur einen Speicherort angeben.

    Verwenden Sie den Parameter storageLocations nur, wenn Sie den vordefinierten oder benutzerdefinierten Standardspeicherort überschreiben möchten, der in Ihren Snapshot-Einstellungen konfiguriert ist.

Ersetzen Sie in den zuvor gezeigten POST-Anfragen die folgende Zeile, um einen VSS-Snapshot eines regionalen nichtflüchtigen Speichers zu erstellen:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Verwenden Sie stattdessen diese Zeile, wenn Sie einen Snapshot eines regionalen nichtflüchtigen Speichers erstellen:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Optional: Laufwerk als für Lesen/Schreiben verfügbar markieren

Beim Erstellen eines VSS-Snapshots markiert Windows Server das Volume im Snapshot als schreibgeschützt. Wenn Sie ein neues Laufwerk aus dem VSS-Snapshot erstellen, wird für dieses Laufwerk auch der Lesemodus aktiviert.

Das kann zu Problemen führen. Wenn Sie beispielsweise eine VM-Instanz mit einem neuen Bootlaufwerk aus einem VSS-Snapshot eines vorhandenen Bootlaufwerks erstellen, verhindert das Schreibschutz-Flag auf dem neuen Bootlaufwerk, dass die VM korrekt gebootet wird.

Sie können dieses Problem umgehen, indem Sie das Schreibschutz-Flag von jedem neuen Laufwerk entfernen, das Sie mit einem VSS-Snapshot so erstellen können:

  1. Prüfen Sie, ob das Laufwerk an eine VM angehängt ist.

    • Wenn das Laufwerk, das Sie über den VSS-Snapshot erstellt haben, ein Nicht-Bootlaufwerk ist, können Sie es an eine neue oder vorhandene VM anhängen.
    • Wenn das aus dem VSS-Snapshot erstellte Laufwerk ein Bootlaufwerk ist und Sie es zum Starten einer VM verwenden möchten, müssen Sie das Laufwerk vorübergehend an eine separate vorhandene VM anhängen. Nachdem Sie die folgenden Schritte abgeschlossen haben, können Sie das Laufwerk von dieser VM trennen und zum Starten einer neuen VM-Instanz verwenden.
  2. Melden Sie sich bei der Windows-VM an, mit der das Laufwerk verbunden ist.

  3. Öffnen Sie eine PowerShell-Eingabeaufforderung und führen Sie das diskpart-Tool aus:

    PS C:\> diskpart
    
  4. Ermitteln Sie das Laufwerk, das Sie bereitstellen möchten:

    DISKPART> list disk
    
  5. Wählen Sie mit dem Befehl select disk das Laufwerk aus:

    DISKPART> select disk DISK_NUMBER
    

    Ersetzen Sie DISK_NUMBER durch die Nummer des Laufwerks, das Sie bereitstellen möchten.

  6. Stellen Sie das Laufwerk bereit.

    DISKPART> online disk
    
  7. Listen Sie alle Volumes auf dem Laufwerk auf:

    DISKPART> list volume
    
  8. Wählen Sie das neue Volume aus:

    DISKPART> select volume VOLUME_NUMBER
    

    Ersetzen Sie VOLUME_NUMBER durch die Nummer des Volumes, das als Lese- und Schreibzugriff konfiguriert werden soll.

  9. Löschen Sie das Schreibschutz-Flag:

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Schließen Sie das diskpart-Tool:

    DISKPART> exit
    
  11. Wenn es sich bei dem Laufwerk um ein Bootlaufwerk für eine andere VM handelt, synchronisieren Sie die Bootlaufwerksdateien mit der neuen Laufwerkssignatur.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Ersetzen Sie DRIVE_LETTER durch den Laufwerksbuchstaben für das Volume, das Sie synchronisieren möchten. Zum Beispiel F für F:\.

Snapshot ohne VSS erstellen

Es kann vorkommen, dass Sie Snapshots von Laufwerken erstellen möchten, die an Windows-VMs ohne VSS angehängt werden.

So erstellen Sie einen Laufwerk-Snapshot auf einer Windows-VM ohne VSS:

  1. Bereiten Sie das System für einen sauberen Snapshot vor.
  2. Erstellen Sie einen Snapshot.
  3. Stellen Sie das Laufwerk noch einmal bereit.
  4. Laufwerk als verfügbar für Lesen/Schreiben markieren

System auf einen sauberen Snapshot vorbereiten

Bevor Sie einen Laufwerk-Snapshot erstellen, achten Sie darauf, dass der Snapshot mit dem gewünschten Status für das Laufwerk übereinstimmt. Wenn Sie einen Snapshot des Laufwerks in einem "unbereinigten" Status erstellen, kann dies eine Laufwerkprüfung erzwingen und möglicherweise zu einem Datenverlust führen. Sie sollten Ihr Dateisystem synchronisieren und trennen.

Dateisystem synchronisieren

Wenn die Aufhebung der Bereitstellung des Laufwerks nicht möglich ist, beispielsweise in Fällen, in denen die Anwendung Daten auf das Laufwerk schreibt, können Sie das Dateisystem synchronisieren, um die Laufwerkzwischenspeicher zu leeren. So synchronisieren Sie das Dateisystem:

  1. Melden Sie sich bei Ihrer Windows-VM an.
  2. Laden Sie das Sync-Tool von Microsoft herunter und installieren Sie es.
  3. Beenden Sie das Schreiben von Daten auf das Laufwerk für Ihre Anwendungen.
  4. Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten.
  5. Führen Sie im Befehlszeilenfenster folgenden Befehl aus:

    PS C:\> sync DRIVE_LETTER
    

    Ersetzen Sie DRIVE_LETTER durch den Laufwerksbuchstaben für das Volume, das Sie synchronisieren möchten. Zum Beispiel F für F:\.

Bereitstellung des Laufwerks aufheben

  1. Melden Sie sich bei Ihrer Windows-VM an.

  2. Öffnen Sie eine PowerShell-Eingabeaufforderung und führen Sie das diskpart-Tool aus:

    PS C:\> diskpart
    
  3. Ermitteln Sie das Laufwerk, für das Sie die Bereitstellung aufheben und einen Snapshot erstellen möchten:

    DISKPART> list disk
    
  4. Wählen Sie als Nächstes das Laufwerk anhand der gerade ermittelten Laufwerknummer aus:

    DISKPART> select disk DISK_NUMBER
    

    Ersetzen Sie DISK_NUMBER durch die Nummer des Laufwerks, das Sie wieder bereitstellen möchten.

  5. Bereitstellung des Laufwerks aufheben

    DISKPART> offline disk
    

Snapshot erstellen

Stellen Sie das Laufwerk noch einmal bereit.

  1. Melden Sie sich bei Ihrer Windows-VM an.

  2. Öffnen Sie eine PowerShell-Eingabeaufforderung und führen Sie das diskpart-Tool aus:

    PS C:\> diskpart
    
  3. Ermitteln Sie das Laufwerk, das Sie bereitstellen möchten:

    DISKPART> list disk
    
  4. Wählen Sie mit dem Befehl select disk das Laufwerk aus:

    DISKPART> select disk DISK_NUMBER
    

    Ersetzen Sie DISK_NUMBER durch die Nummer des Laufwerks, das Sie bereitstellen möchten.

  5. Stellen Sie das Laufwerk bereit.

    DISKPART> online disk
    

Schreibschutz-Flag vom Laufwerk entfernen

  1. Führen Sie bei Bedarf die folgenden Schritte aus:

    1. Melden Sie sich bei Ihrer Windows-VM an.

    2. Öffnen Sie eine PowerShell-Eingabeaufforderung und führen Sie das diskpart-Tool aus:

      PS C:\> diskpart
      
  2. Listen Sie alle Volumes auf dem Laufwerk auf:

    DISKPART> list volume
    
  3. Wählen Sie das neue Volume aus:

    DISKPART> select volume VOLUME_NUMBER
    

    Ersetzen Sie VOLUME_NUMBER durch die Nummer des Volumes, das Sie für Lese- und Schreibvorgänge konfigurieren möchten.

  4. Löschen Sie das Schreibschutz-Flag:

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  5. Schließen Sie das diskpart-Tool:

    DISKPART> exit
    
  6. Wenn es sich bei dem Laufwerk um ein Bootlaufwerk für eine andere VM-Instanz handelt, synchronisieren Sie in der PowerShell-Eingabeaufforderung die Bootlaufwerksdateien mit der neuen Laufwerkssignatur.

    PS C:\> bcdboot DRIVE_LETTER:\Windows /s DRIVE_LETTER
    

    Ersetzen Sie DRIVE_LETTER durch den Laufwerksbuchstaben für das Volume, das Sie synchronisieren möchten. Zum Beispiel F für F:\.

Nächste Schritte