Snapshots unter VMware

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche

Ein wesentlicher Vorteil von virtuellen Maschinen besteht im Vergleich zu reiner Hardware darin, dass der Zustand des Systems zu jedem beliebigen Zeitpunkt in einem Snapshot festgehalten werden kann - und das völlig unabhängig davon, ob der Gast selbst derartige Funktionen zur Wiederherstellung eines früheren Systemzustands besitzt. Allerdings hat das Snapshot-Feature von VMware auch unerwünschte Nebenwirkungen und kann bei unsachgemäßer Anwendung zu Datenverlusten führen.

Snapshot Prinzip

Von Snapshots beanspruchter Festplattenplatz und dessen Wachstumsrate

Falls man mehr als nur einen Snapshot von einer virtuellen Maschine (VM) erstellt, stehen einem mehrere Wiederherstellungspunkte (restore points) zur Verfügung, auf die man zurückgreifen kann. Wenn Sie einen Snapshot erstellen, wird alles, was bis dahin beschreibbar war, gegen Überschreiben geschützt. Mit Hilfe der „In-File Delta Technology“ erstellt man neue Dateien, die alle Änderungen (Delta) gegenüber den ursprünglich gespeicherten Dateien enthalten.

Die Größe eines Snapshots kann niemals die Größe der ursprünglichen VM-Datei übersteigen. Jedes Mal wenn ein Block auf der Festplatte verändert wird, wird hiervon eine Momentaufnahme, eben ein Snapshot, erstellt und in der Delta-Datei aufgezeichnet; bei weiteren Änderungen wird diese Momentaufnahme nur noch aktualisiert. Selbst wenn man nach dem Erstellen eines Snapshots jeden einzelnen Festplattenblock eines Servers verändern würde, wäre der Snapshot immer noch nicht größer als die ursprüngliche Datei auf der Festplatte. Snapshot-Dateien sind anfänglich klein (16 MB), wachsen aber mit den Schreibzugriffen auf die VM-Datei.

Snapshots werden in Schritten von je 16 MB vergrößert, um SCSI reservation conflicts möglichst zu vermeiden. Wenn Anforderungen erfolgen, einen Block auf der Original-Festplatte zu ändern, wird dieser stattdessen in der Delta-Datei geändert. Falls ein bereits einmal in der Delta-Datei veränderter Festplatten-Block erneut verändert wird, erhöht sich dadurch nicht die Größe der Delta-Datei, da lediglich der bestehende Block in der Delta-Datei aktualisiert wird.

Die Wachstumsrate eines Snapshots ergibt sich aus der Menge der schreibenden Zugriffe auf den Server. Bei Servern mit schreibintensiven Anwendungen wie SQL oder Exchange werden sich die Snapshot-Dateien schnell vergrößern. Bei Servern wie etwa Web- und Anwendungsservern werden die Snapshots sich wesentlich weniger schnell vergrößern, da deren Festplatteninhalte größtenteils statisch sind und weniger schreibende Zugriffe stattfinden. Erstellt man mehrere Snapshots, werden neue Delta-Dateien angelegt und auf die alten Delta-Dateien kann nicht mehr schreibend zugegriffen werden (Read-Only). Falls mit mehreren Snapshots gearbeitet wird, kann jede einzelne Delta-Datei potenziell so groß werden wie die ursprüngliche VM-Datei.

*.vmsn Datei: Hierbei handelt es sich um die Snapshot-Zustandsdatei, in der der genaue Betriebszustand einer virtuellen Maschine zu dem Zeitpunkt aufgezeichnet wird, zu dem der Snapshot erstellt wird. Je nachdem ob sie sich dafür entscheiden, den Arbeitsspeicher der Maschine als Teil des Snapshots zu speichern oder nicht, wird diese Datei groß oder klein sein. Falls sie sich dafür entscheiden, den Arbeitsspeicher der VM aufzuzeichnen, wird die Datei einige Megabyte größer sein als der Arbeitsspeicher, der der VM als Maximum zugewiesen wurde.

Diese Datei ähnelt der VMware suspended state (.vmss) Datei. Eine .vmss-Datei wird für jeden Snapshot einer VM erzeugt; wird der Snapshot gelöscht, werden auch diese Dateien automatisch entfernt.


Was wird gesnapshotet:

Ein Snapshot hält alle Teile einer VM fest. Dazu zählen der aktuelle Zustand aller mit ihr verbundenen virtuellen Festplatten, die Konfiguration der VM sowie der Inhalt des Arbeitsspeichers. Sobald man einen Snapshot anlegt, speichert der Hypervisor (VMware Workstation, ESX(i)) alle folgenden Änderungen in separaten Dateien, der Snapshot bzw. die ursprüngliche VM, von dem ein Snapshot abstammt, wird nicht mehr verändert.


Nebenwirkungen einer VM

Die Speicherung des RAM-Zustands kann in produktiven Umgebungen ebenfalls zu unerwünschten Nebenwirkungen führen. Wenn etwa eine Anwendung in der VM während der Snapshot-Erstellung gerade mit einem Datenbank-Server kommuniziert, dann führt die Rückkehr zu diesem Snapshot zu unvorhersehbaren Folgen, wenn eine Transaktion erneut ausgeführt wird. Deshalb sollte beim Anlegen eines Snapshots darauf geachtet werden, dass der Gast zu diesem Zeitpunkt nicht mit externen Systemen kommuniziert. Der Befehl Wechseln zu im vSphere Client führt dazu, dass alle nach dem Snapshot erfolgten Änderungen verloren gehen.Führt man den Befehl Revert oder Wechseln zu in der VMware Workstation bzw. im vSphere Client aus, dann gehen alle Änderungen verloren, die seit dem Anlegen dieses Snapshots an der VM vorgenommen wurden. Insofern handelt es sich bei der harmlos aussehenden Rückkehr zu einem vorherigen Zustand um einen Löschbefehl, der alle zeitlich folgenden inkrementellen vmdk-Dateien von der Platte entfernt. Aus diesem Grund gibt es keine undo-Funktion für ein Revert to Snapshot. Wenn man eine VM versehentlich auf einen früheren Zustand zurückgesetzt hat, dann hilft daher nur mehr ein Backup, um die verlorenen Änderungen wiederherzustellen.


Löschen eines Snapshots

Löschen eines Snapshots verändert nicht den aktuellen Zustand. Umgekehrt jedoch führt der Befehl Löschen im Snapshot Manager gerade nicht dazu, dass Informationen in den virtuellen Festplatten verloren gehen. Vielmehr entfernt er einen oder mehrere Snapshots und schreibt alle darin enthaltenen Änderungen zurück in die vmdk, von der sie erstellt wurden. Das Löschen von Snapshots verändert also nicht den aktuellen Status von VMs. Verloren gehen nur das RAM-Abbild und die VM-Konfiguration des betroffenen Snapshots.


Snapshots NIE über das Dateisystem löschen

Da der Löschvorgang die in Snapshots gespeicherten Änderungen konsolidiert, liegt es auf der Hand, dass es keinenfalls eine Alternative ist, im Windows Explorer die zu einem Snapshot gehörenden Dateien manuell zu entfernen. Damit gingen nicht nur die darin enthaltenen Informationen verloren, sondern würde auch die Verkettung der Snapshots untereinander zerstören. Da der Snapshot Manager die Änderungen konsolidiert, überrascht es nicht, dass dieser Vorgang einige Zeit in Anspruch nimmt und in der Regel länger dauert als das Anlegen eines Snapshots.


Quelle: [windowspro.de]