Snapshots löschen in Hyper-V


    Tags: ,

    Snapshots im Hyper-V-ManagerSnapshots erlauben es, jederzeit auf einen früheren Zustand der VM zurückzukehren. 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? [PDF]).

    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 übel 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.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links

    7 Kommentare

    Herzlichen Dank für die Hinweise!
    frohes Neues!

    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

    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).

    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

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

    Der Link zum Blog von Ben Armstrong ist leider tot.
    Hier ein funktionierender Link:
    https://web.archive.org/web/20190420020049/https://blogs.msdn.microsoft....

    Bild von Wolfgang Sommergut

    Hallo Sascha, danke für den Link! Ein ziemliches Trauerspiel, was MS mit seinen Blogs aufführt. Habe die Seite vorsichtshalber ausgedruckt ;-)