Hyper-V: Was sind Snapshots? | Hyper-V Server Blog

Hyper-V: Was sind Snapshots?

Unter Hyper-V ist es möglich, Snapshots von virtuellen Maschinen zu erstellen. Um sinnvoll und verantwortungsvoll mit den Snapshots umzugehen, muss man die Funktionsweise und die möglichen Risiken kennen. In diesem Artikel werden unterschiedliche Themen in Zusammenhang mit Snapshots besprochen.

Definition:

Ein Snapshot ist, wie der Name schon sagt, ein Schnappschuss, eine Momentaufnahme, einer virtuellen Maschine. Ein Snapshot erlaubt es einem, bestimmte Einstellungen oder Installationen zu testen, ohne die Sorge haben zu müssen, irreparable oder nur schwer rückgängig zu machende Schritte zu tun. Bei einem Snapshot wird nicht nur der Dateistand gesichert, sondern auch die Hardware-Konfiguration.

Anwendung:

was-sind-snapshots-01

Virtuelle Maschine mit zwei Snapshots

Wir sehen hier eine virtuelle Maschine mit zwei Snapshots. Gehen wir mal davon aus, das ein Windows Server 2008 installiert wurde, der als Terminal Server verwendet werden soll. Snapshots 1 wurde direkt nach der Installation gemacht, ist quasi der “Gold-Status”. Nach der Installation wurde die Maschine auf den aktuellen Patchstand gebracht. Nach dem erfolgreichen Patchen und einem Neustart wurde wieder ein Snapshot erstellt. Nun wird die erste Anwendung auf dem Server installiert, und während der Installation kommen mehrere Fehlermeldungen, die Maschine bekommt einen Bluescreen, startet neu und kommt nicht mehr hoch (Horror-Szenario :) ). Normalerweise müsste man nun entweder einen Reparaturversuch unternehmen, ein Backup zurückspielen oder die Installation von vorne beginnen. Bei Hyper-V hat man nun aber die Möglichkeit, sowohl auf den Stand direkt nach der Installation als auch auf den Stand nach dem patchen zurückzukehren. Dazu geht man im Hyper-V Manager auf die Maschine, und wählt bei dem gewünschten Snapshot “Anwenden…”

was-sind-snapshots-02

Die Festplatten-Dateien:

Wichtig bei Snapshots: Pro Snapshot wird eine eigene Festplatte(n-Datei) angelegt. Erklären kann man das wieder an dem ersten Bild:

was-sind-snapshots-03Wie man erkennen kann, hat die “ursprüngliche” Festplatte die Endung .vhd. Pro Snapshot wird eine weitere Festplattendatei angelegt, allerdings mit der Endung .avhd. Die Dateo heißt so wie die ursprüngliche Festplatte, allerdings mit einer Erweiterung aus Zahlen, Buchstaben und Strichen. Die Dateien werden von Hyper-V verwaltet, NIEMALS diese Dateien (einer produktiven Maschine) umbenennen, verschieben oder löschen.

Performance:

Wenn Sie einen Snapshot erstellen, werden alle Änderungen, die nach der Erstellung gemacht werden, in die .avhd-Datei geschrieben. Je mehr Snapshots man anlegt, desto weniger Performance hat man bei der virtuellen Maschine.

Entfernen eines Snapshots:

Entfernen kann man Snapshots, indem man in dem oben gezeigten Menü “Snapshot löschen” auswählt. Das Löschen geht recht schnell, und der Snapshot ist dann auch verschwunden, es wird allerdings weiter in die .avhd-Datei geschrieben. Der Inhalt der .avhd-Datei(en) wird erst in die .vhd-Datei integriert, wenn die virtuelle Maschine pausiert oder heruntergefahren wird. Wichtig: Je nach Größe der .avhd-Datei(en) kann der Integrationsvorgang recht lange dauern. Während der Integration kann die Maschine zur Not auch wieder gestartet werden, allerdings wird der Vorgang dann abgebrochen und muss erneut (von vorne) begonnen werden.

Der Backup-Gedanke:

Snapshots sind KEIN Backup! Auch wenn man des öfteren liest das Snapshots wie Backups behandelt werden, dies ist keine Backup-Möglichkeit (und sowieso von Microsoft nicht als Backup deklariert). In einer Microsoft-Schulung wurde der Snapshot-Button liebevoll als “Drück-mich-bevor-du-was-Blödes-machst”-Button genannt. Ein Snapshot ist eine Möglichkeit, sich kurzfristig davor abzusichern, ein System irreparabel zu zerstören oder wie gesagt kritische Vorgänge durchzuführen (Software-Installation, Patch-Installation usw), da man im Falle eines Fehlers sehr schnell wieder auf den vorherigen, sauberen Stand zurück gehen kann.

Fazit:

Ich hoffe einen relativ guten Überblick über die Snapshot-Funktion im Hyper-V verschafft zu haben und einige Fragen aus der Welt geräumt zu haben. Wichtige Aspekte sind in meinen Augen das Wissen, wie Snapshots in Zusammenhang mit den Festplatten-Dateien aufgebaut sind, wie man einen Snapshot wieder sauber entfernt und das ein Snapshot kein Backup repräsentiert, sondern nur eine kurzfristige ABsicherung ist, keine Sicherung. Zum Thema “Sicherung von virtuellen Maschinen” gibt es in naher Zukunft einen eigenen Beitrag mit den Möglichkeiten, Techniken und Risiken.

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.

  • Benny sagt:

    Hallo Jan, ein toller Bericht.
    Ich frage mich aber: Warum kann der Snapshot nicht auch als Backup genutzt werden? Es IST doch ein Backup…. Bzw. andere Frage: Warum kann man nicht mit einer Backup-Software einfach täglich das komplette Verzeichnis der VHD auf ein externes Medium sichern und hat somit ein komplettes Server-Backup, welches in “SEKUNDEN” wieder am Laufen ist, wenn ein Server komplett ausfällt?

  • Jan Kappen sagt:

    Hallo Benny,

    was ist an dem Snapshot ein Backup? Ein Snapshot erzeugt bei einer laufenden Maschine einen Punkt, an den zurückgesprungen werden kann. Er bewirkt, das der Inhalt der virtuellen Festplatte in zwei Dateien gespeichert wird. Das Kopieren der vhd- und avhd-Dateien bringt wenig ohne die Konfiguration der Maschine. Ein vollständigen Stand bekommt man entweder mit einer Backup-Software (DPM, Backup Exec usw) oder mit einem Export, aber nicht durch Kopieren der Dateien auf dem Host. Ein Snapshot ist genau so wenig ein Backup wie ein RAID eine Sicherung von Dateien ist, die auf ihm liegt. Weiterhin sinkt die Performance der Maschine, je mehr Snapshots man hat und man hat immer eine Downtime, wenn man einen Snapshot zusammenführen will.

    Gruß, Jan

  • Daniel sagt:

    Hallo Jan,

    first things first: Wahnsinnig gute Seite mit nützlichen und vorallem verständlichen Tipps und Vorgehensweisen.

    Ich nutze Windows 8 und arbeite dort mit mindestens einer VM, in der ich bspw. Software testen kann. Leider hänge ich mit meinem Verständnis an den Snapshots und deren Handhabung. Ich versuche es an einem Beispiel zu beschreiben:

    Ich erstelle also einen Snapshot meiner aktuellen VM und speichere damit ihren derzeitigen Zustand – ohne die zu testende Software. Nachdem das erledigt ist, starte ich die VM, installiere die Software und teste diese.

    So, jetzt möchte ich meine ursprüngliche und saubere VM wieder haben UND danach den Snapshot wieder aus der Liste löschen – was nun? Ich habe es so verstanden, dass ich mit Rechtsklick auf den Snapshot und “Anwenden…” meine ursprüngliche Maschine wieder bekomme. Das habe ich gestestet und es scheint zu klappen. Wenn ich oben auf die VM selbst rechtsklicke und “Zurücksetzen…” wähle, wird wohl der letzte(!) Snapshot angewendet.

    Wie werde ich nun aber die Snapshots aus der Liste los? Ja, ich könnte zwar “Snapshot löschen…” verwenden, doch da werden laut meinem Verständnis avhdx und vhdx zusammengepackt. Warum wird da etwas zusammengepackt, wenn ich doch eigentlich die ursprüngliche und saubere Maschine wieder haben will? Warum kann nicht einfach die avhdx (mit den Änderungen) gelöscht und danach die ursprüngliche vhdx benutzt werden?

    War das verständlich? :-) Würde mich über Erleuchtung freuen…

    Viele Grüße und besten Dank
    Daniel

  • Benny sagt:

    Hallo Jan

    Ich bin Benny,

    Viele grüße Daniel

  • Kalle sagt:

    Hallo Jan,
    zunächst mal ein Lob auf die Erklärung. Bislang aber habe ich noch keine Seite gefunden, die richtig erklärt, was genau ein Snapshot nun wirklich ist. Da ist immer die Rede von “Momentanem Abbild” einer Platte und von einem Schnappschuss. Was genau das ist, erklärt niemand.
    Ich bin technisch orientiert und frage mich, was genau dabei gemacht wird. Wenn ich ein Abbild einer Platte erstelle, dann kann ich die 2. Platte nehmen, anschließen und einen PC damit booten. Beispiel mit der SW Acronis kann ich eine 1:1 bootfähige Platte meines PCs erstellen. Hier wird jede Datei von der Ausgangsplatte auf eine Zielplatte kopiert. Das System ist somit voll nutzbar. Ich kann die Ursprungsplatte als Sicherheit in den Schrank legen. Im Prinzip hab ich somit auch ein Backup erstellt.
    Die häufig herangezogene Erklärung mit dem Schnappschuss a la Screenshot, macht doch nur eine Bilddatei z.B. aus einer auf dem Schirm vorhandenen Exceltabelle. Wenn die Tabelle weg ist, habe ich ein JPEG oder BMP aber keine Exceltabelle. Ich müsste also erst hergehen und die Werte lesen und sie in eine neue Tabelle eintragen.
    Was also macht ein Snapshot genau ?? Wenn ich ein Betriebssystem habe und einen Snaphot betrachte, was genau von dem System ist im Snaphot vorhanden ?? Sind es alle Dateien in Ihrer zum Installationszeitpunkt bestehenden Struktur oder sind es nur Zeiger auf diese Dateien. Dann wären die Dateien als solche nicht vorhanden, sondern lediglich die Pointer darauf. Das allerdings würde bedeuten, dass ich einen Snapshot nur dann restoren kann, wenn das ursprüngliche System vorhanden ist. Das allerdings hab ich noch nirgends gelesen. Wenn es aber nur Zeiger wären, dann würde die Änderungen nicht in einen Snapshot weiter fortgeschrieben werden. Weil es sind Zeiger und keine Dateien.
    So richtig leuchtet mir das Verfahren nicht ein. Jedenfalls nicht in den Erklärungen die ich im Internet lesen kann. Das es ja zweifelsfrei funktioniert stelle ich damit ja nicht in Frage. Ich möchte nur gern verstehen, wie !
    Ich könnte dir z.B. technisch genau erklären, warum eine Datenleitung nicht länger als z.B. 90m sein darf. Diese Erklärung würdest Du nirgends im Internet finden. Das ist mein Anspruch. Allerdings hab ich vor 37 Jahren auch Nachrichtentechnik studiert und kenne die Themen wie Signalverformung, Schmitt-Trigger und Leitungstheorie. Warum also die Leitung nicht länger machen ?

    Gruß
    Kalle

  • […] Update: Zum Thema Snapshots allgemein sei auch Jan Kappens Artikel empfohlen: Hyper-V: Was sind Snapshots? […]

  • >