HyperV - Checkpoints

Der in früheren Hyper-V Versionen verwendete Terminus Snapshot sorgte bei einigen Microsoft Kunden für Verwirrung, da damit in anderen Einsatzgebieten teils nicht die gleichen Aufgaben erfüllt oder der Begriff nicht konsistent eingesetzt wurde. So sind beispielsweise im System Center Virtual Machine Manager (SCVMM) anstelle von Snapshots Checkpoints zu finden.

Mit Windows Server 2012 R2 reagierte Microsoft auf das Problem der Namensgebung und der in Hyper-V bis dato genutzte Snapshot musste nun auch endlich dem Checkpoint weichen.

Was sind Checkpoints?

Beim Erstellen eines Checkpoints werden der Status, die Datenträgerdaten und die Konfiguration, d.h. unter anderem Informationen zur eingesetzten Hardware, eines virtuellen Computers zum momentanen Zeitpunkt erfasst.

Verwendungszweck von Checkpoints

Durch das Erstellen von Checkpoints können virtuelle Maschinen auf den Zustand des Erstellens zurückgesetzt werden. Deshalb werden sie häufig zum Testen oder Entwickeln verwendet. So kann beispielsweise vor dem Aktualisieren des Betriebssystems oder einer Anwendung ein neuer Checkpoint eingerichtet werden. Wirkt sich die Aktualisierung nun negativ auf die virtuelle Maschine aus, kann diese einfach mithilfe des zuvor erstellten Checkpoints auf den Zustand vor der Aktualisierung wiederhergestellt werden.

Auch das Verwenden mehrerer Hardwarekonfigurationen auf einer virtuellen Maschine lässt sich so mithilfe von Checkpoints verwalten. Dazu erstellt man einfach von jeder gewünschten Konfiguration einen Checkpoint und kann dann beliebig wechseln. Wird dann aber z.B. das Betriebssystem aktualisiert, ist darauf zu achten, dass die erstellten Checkpoints diese Aktualisierung nicht beinhalten und ggf. neu erstellt werden müssen.

Neuen Checkpoint anlegen

Ab Hyper-V 2012 kann jederzeit, d.h. ohne die virtuelle Maschine zuvor zu beenden, ein neuer Checkpoint angelegt werden. Dies kann, wie in der folgenden Grafik zu sehen ist, per Rechtsklick auf die virtuelle Maschine und dann mit Linksklick auf Checkpoint vorgenommen werden.

Unter Checkpoints findet man nun eine hierarchische Auflistung aller bis dato erstellten Checkpoints, wobei der älteste Checkpoint ganz oben in der Liste steht. Das grüne Dreieck mit dem Zusatz Now symbolisiert den Checkpoint, der als letztes angewendet wurde.

Doch was passiert im Hintergrund? Erstellt man einen neuen Checkpoint wird eine sog. Differencing Disk erstellt. Deren Name stellt sich aus dem Namen der ursprünglichen Festplatte und einer Erweiterung aus Zahlen und Buchstaben zusammen. Als Dateiendung besitzt sie .AVHD. Alle Änderungen, die nach der Erstellung stattfinden, werden in dieser .AVHD- Datei übernommen. Die ursprüngliche Festplatte, die das .VHD-Dateiformat besitzt, wird nicht verändert. Erstellt man wiederum einen weiteren Checkpoint wird nur noch in dessen Differencing Disk geschrieben. Zu beachten ist dabei, dass die Dateien von Hyper-V verwaltet werden und NIEMALS manuell umbenannt, verschoben oder sogar gelöscht werden sollten.

Verwaltung von Checkpoints

Wenn man einen Checkpoint auswählt, stehen einem mehrere Optionen zur Auswahl. Die Wichtigsten werden im Folgenden kurz zusammengefasst.

  • Settings – Hiermit kann der Namen oder die Beschreibung eines Checkpoints geändert und seine Hardwarekonfiguration angezeigt werden.

  • Apply – Hier wird ein Checkpoint angewendet, d.h. die virtuelle Maschine wird auf den Zustand zum Zeitpunkt des Checkpoints gesetzt. Da alle seit diesem Zeitpunkt vollzogenen Veränderungen, u.a. auch von Benutzerdatendateien, verloren wären, wird zuvor jedoch gefragt, ob wiederum ein Checkpoint des aktuellen Zustands angelegt wird.

  • Delete Checkpoint – Hiermit wird ein nicht mehr benötigter Checkpoint entfernt.

  • Delete Checkpoint Subtree – Entfernt den ausgewählten und alle darunter liegenden Checkpoints.

Checkpoint entfernen

Wie oben beschrieben kann mittels Delete Checkpoint ein Checkpoint entfernt werden. Doch wieso sollte man Checkpoints löschen und welche Auswirkungen hat das womöglich auf die virtuelle Maschine? Für jeden neuen Checkpoint wird eine neue Differencing Disk erstellt. Da diese unter Umständen einen enormen Speicherplatz belegen können und die maximale Anzahl an Checkpoints beschränkt ist, ist es sinnvoll von Zeit zu Zeit nicht mehr benötigte zu löschen. Dabei können im Hintergrund, abhängig von der hierarchischen Struktur der Checkpoints, verschiedene Vorgänge stattfinden. Löscht man einen Checkpoint, auf den weitere aufbauen, ist ein Merge notwendig, d.h. die Differencing Disks des gelöschten Checkpoints wird mit darunterliegenden Differencing Disks zusammengefasst.

Früher musste dafür noch die virtuelle Maschine abgeschaltet werden, bei Hyper-V 2012 R2 geht dies aber auch automatisch während einer laufenden Sitzung. Ob Checkpoints noch benötigt werden oder nicht, sollte mit Bedacht entschieden werden, da gelöschte Checkpoints nicht wiederhergestellt werden können, das Löschen also endgültig ist.

Checkpoints im Netzwerk

Besitzt man mehrere virtuellen Maschinen, die über ein gemeinsames Netzwerk verbunden sind, ist das Benutzen von Checkpoints mit Vorsicht zu genießen. Ähnlich wie Benutzerkonten gibt es in Active Directory auch Computerkonten, die Optionen für die Authentifizierung und die Überwachung des Netzwerkzugriffs seitens des Computers bieten. Diese Konten besitzen Passwörter, die je nach gewünschter Einstellung automatisch geändert werden. Mithilfe dieser Passwörter kann zwischen Computer und Active Directory ein sicherer Kanal hergestellt werden, über den kommuniziert werden kann. Wendet man also nun bei einer virtuellen Maschine einen Checkpoint an, der zu weit in der Vergangenheit liegt, kann es sein, dass das auf der Maschine gespeicherte Passwort nicht mit dem des Active Directory übereinstimmt und die Maschine aus dem Netzwerk ausgeschlossen wird. Das ist aber nicht das einzige Problem, das auftreten kann. Es kann auch passieren, dass nach dem Zurücksetzen eines Domain Controllers (DC), die Replikation mit anderen DCs aussetzt, da die Versionen ihrer NTDS.dit-Dateien nicht mehr zueinander passen. Diese Probleme dann wieder zu beheben ist sehr mühselig und um ihnen aus dem Weg zu gehen, ist es zu empfehlen, alle in der Umgebung befindlichen virtuellen Maschinen gleichzeitig zurückzusetzen.

Checkpoints nicht als Backup verwenden

Checkpoints dienen nur als temporäre Sicherung und sollten niemals als Ersatz für richtige Backups gesehen werden. Sie werden zusammen mit der virtuellen Maschine auf dem Host gespeichert und sind deshalb bei einem möglichen Fehler seitens des Hosts nicht sicher. Außerdem werden beim Erstellen von neuen Checkpoints nur Differencing Disks erstellt, d.h. die virtuelle Festplatte der Maschine wird nicht vervielfacht und die virtuelle Maschine ist daher auch nicht vor möglichen Festplattenfehlern geschützt. Um wirklichen Schutz zu gewährleisten, sollte daher auf Sicherungsanwendungen wie z.B. den System Center Data Protection Manager zurückgegriffen werden.