Snapshots löschen in Hyper-V


    Tags: ,

    Snapshots im Hyper-V-ManagerSnapshots sind sehr hilf­reich, wenn man mit einer VM experi­mentieren möchte, weil man mit ihrer Hilfe leicht wieder auf einen brauchbaren Zustand zurückkehren kann. Wenn solche Prüfpunkte ihre Aufgabe erfüllt haben, dann möchte man sie aber wieder loswerden. Das ist jedoch nicht ganz unkompliziert.

    Für den Befehl Löschen im Hyper-V Manager sowie für das äquivalente Cmdlet Remove-VMSnapshot in PowerShell gilt, dass ihr Verhalten davon abhängt, an welcher Position sich ein Snapshot befindet. Microsoft-Manager Ben Armstrong hat dazu vor längerer Zeit einen längeren Beitrag veröffentlicht (What happens when I delete a snapshot?).

    Ergebnis für die verschiedenen Kontexte

    Die wesentliche Regel beim Löschen von Snapshots lautet dabei:

    • Diese werden nur dann entfernt, wenn von ihnen weder ein weiterer Snapshot noch die aktuelle VM (Position Jetzt im Hyper-V Manager) abhängt.
    • Trifft diese Bedingung nicht zu, dann führt Hyper-V den Snapshot mit dem übergeordneten Snapshot zusammen (seit Windows 8 und Server 2012 ohne Reboot der VM). Alle Einstellungen des "gelöschten" Checkpoints bleiben damit erhalten. Im Fall einer durch Tests zugerichteten VM ist das zumeist ein unerwünschtes Ergebnis.
    • Hängen von einem Snapshot nicht nur ein, sondern mehrere Snapshots ab, dann bleibt dessen differenzielle Disk (avhdx) beim Löschen unverändert und nur die Konfiguration wird konsolidiert. Damit verschwindet er aus dem Hyper-V Manager.

    Besteht das Ziel also darin, zu einem intakten Zustand der VM zurückzukehren, dann muss man den Befehl Anwenden für diesen früheren Snapshot ausführen. Ist die VM während dieser Aktion eingeschaltet, dann gehen alle nicht gespeicherten Daten verloren.

    Nach dem Zurücksetzen bleiben die Dateien des verlassenen Prüfpunkts auf der Platte, so dass man in der Zeit wieder nach vorne springen könnte. Meistens will man jedoch den Platz dieses nicht mehr benötigten Prüfpunkts freigeben.

    Zu diesem Zweck führt man nun den Befehl Löschen für die Snapshots unterhalb von Jetzt aus, und zwar entweder für jeden einzeln von unten nach oben oder mit dem Befehl Prüfpunktunterstruktur löschen für alle auf einmal.

    Beispiel für das Löschen ohne Datenübernahme

    Angenommen eine VM hat 3 Snapshots und ihr aktueller Zustand befindet sich am Ende der Kette. Man möchte nun zum Zustand von Prüfpunkt-2 zurückkehren und den Speicherplatz des nachfolgenden Snapshots (Prüfpunkt-3) freigeben.

    Ausgangssituation ist eine VM mit 3 Prüfpunkten, an deren Ende die aktuelle VM steht.

    In diesem Fall führt man aus dem Kontextmenü von Prüfpunkt-2 den Befehl Anwenden aus.

    Um zu Snapshot-2 zurückzukehren, führt man den Befehl "Anwenden" aus.

    Anschließend verschiebt sich der Jetzt-Marker nach oben, so dass sich Prüfpunkt-3 nun am Ende des Zweigs befindet.

    Prüfpunkt-3 befindet sich nun am Ende der Kette und hat keine von ihm abhängigen Snapshots mehr.

    Daher kann man ihn mit dem Befehl Löschen entfernen, ohne dass er mit den Vorgängern zusammengeführt wird.

    Nun kann man den Speicherplatz von Prüfpunkt-3 zurückgewinnen, ohne dass dieser Status der VM übernommen wird.

    Hätte man stattdessen gleich den Löschen-Befehl auf Snapshot-3 angewandt, dann würde Hyper-V alle in ihm gespeicherten Änderungen in Snapshot-2 übertragen und anschließend die Dateien von Snapshot-3 entfernen.

    5 Kommentare

    Bild von jaw
    jaw sagt:
    1. Januar 2016 - 10:48

    Herzlichen Dank für die Hinweise!
    frohes Neues!

    Bild von hma
    hma sagt:
    16. Februar 2017 - 17:17

    Vermutlich habe ich einen Denkfehler, hoffe Sie können mir helfen: Hyper-V 2012 R2, es wurde von einer VM in der Frühe genau ein Prüfpunkt erstellt und nach misslungenem Update der Prüfpunkt wieder angewendet. Der Jetzt-Marker befindet sich (weiterhin) unterhalb des Prüfpunkts, dieser dümpelt also weiterhin in der Liste. Kann der Prüfpunkt nun am Nachmittag sicher gelöscht werden ohne den Jetzt-Zustand zu gefährden?

    Bild von Marcel Küppers
    17. Februar 2017 - 8:45

    Also:

    - Prüfpunkt ohne Update erstellt -> avhdx wird erstellt.
    - Update angewendet -> ohne Erfolg
    - Zurück zum Zeitpunkt des Prüfpunkts
    - Änderungen gehen verloren, falls kein neuer Checkpoint
    - avhdx wird neu erstellt und es wird weiter hinein geschrieben
    - Prüfpunkt löschen, avhdx wird gemerged ohne "Jetzt" zu gefährden.

    Prüfpunkte sollten möglichst gelöscht werden, da die Differenzdateien Performance und Übersichtlichkeit kosten.

    Wenn Du den Checkpoint nicht löscht, besteht immer die Möglichkeit des Fallback hin zu diesem Zeitpunkt. Die vhdx bleibt an diesem Punkt "eingefroren" (nur lesend).

    Bild von Dominik Schütz
    Dominik Schütz sagt:
    20. August 2017 - 11:36

    Hallo, wenn ich alle VHD vereinigt habe! und alles so weit läuft, wie bekomme ich dann die Anzeige der prüfpunkte die es dann nicht mehr gibts aus dem HyperV Manager?

    Bild von Marcel Küppers
    22. August 2017 - 11:41

    Was meinst Du mit vereinigt? Die Prüfpunkte müssten dann gelöscht werden.