Snapshots von virtuellen Maschinen löschen ohne Verschwendung von Speicherplatz
Um die Performance und den Speicherplatz der Virtual Machine optimal zu nutzen, ist das Management von VMware-Snapshots von größter Bedeutung.
Snapshots von Ihrer Virtual Machine (VM) anzufertigen, ist eine gute Methode, um VM-Konfigurationen zu sichern und gegebenenfalls zu ihnen zurückzukehren. Um allerdings dadurch auftretende Performance-Probleme zu umgehen, ist ein geschickter Umgang damit nötig. In diesem Tipp beschäftigen wir uns mit Snapshot-Management für Fortgeschrittene (Snapshot-Grundlagen und Informationen zur Funktionsweise von Snapshots finden Sie im vorigen Tipp).
Platten-Platz und Löschen mehrerer Snapshots
Wichtig ist es, vorauszuplanen und auf den Volumes Ihres VMware Virtual Machine File System (VMFS) reichlich Platz für Snapshot-Dateien vorzusehen. Als gute Daumenregel gelten hier mindestens 20 Prozent des gesamten Platten-Speicherkapazität jeder VM. Abhängig von der Art der Server, der Aufbewahrungsdauer der Snapshots und davon, ob Sie mehr als einen davon verwenden wollen, kann es jedoch zu Abweichungen kommen. Wenn Sie in Ihren Snapshots auch den Arbeitsspeicher-Zustand erfassen wollen, brauchen Sie zudem weiteren Speicherplatz; er sollte der Menge an RAM entsprechen, die der jeweiligen VM zugewiesen ist.
Eine VM, für die es nur einen Snapshot gibt, braucht beim Löschen oder Einarbeiten keinen zusätzlichen Platten-Platz (der Ausdruck Einarbeiten oder auf englisch Committing wird verwendet, weil die in den Delta-Dateien der Snapshots gespeicherten Änderungen beim Löschen des Snapshots in die ursprüngliche Disk-Datei der VM (VMDK) übernommen werden). Beim Löschen von Snapshots entsteht außerdem eine zusätzliche Delta-Helferdatei. Sie enthält alle Änderungen, die an der Platte der VM vorgenommen werden, während der Snapshot gelöscht wird. Die Größe dieser Datei hängt davon ab, wie viel Zeit das Löschen in Anspruch nimmt. Normalerweise ist sie eher klein, weil die meisten Snapshots in weniger als einer Stunde gelöscht sind.
Wenn Sie mehrere Snapshots haben und diese löschen wollen, brauchen Sie, je nachdem, welche vSphere-Version Sie einsetzen, möglicherweise zusätzlichen Platten-Platz. Dies hängt mit der Art und Weise zusammen, wie die Snapshots in die originale Disk-Datei integriert werden.
Das Vorgehen beim Löschen mehrerer Snapshots hat sich mit den vSphere-Versionen verändert. Bei älteren 4.0-Versionen von vSphere und VMware Infrastructure 3 (VI3) passiert folgendes, wenn Sie eine VM mit drei aktiven Snapshots haben und diese löschen: Snapshot 3 wird auf Snapshot 2 kopiert, der dann auf Snapshot 1 kopiert wird. Als Nächstes werden Snapshot 1 und die Delta-Hilfsdatei auf die ursprüngliche Disk-Datei kopiert.
Für diesen Prozess ist zusätzlicher Platten-Platz erforderlich, weil die Snapshots an Größe zulegen, wenn ihre Vorgänger hinzugefügt werden. Wenn nicht genügend freier Speicherplatz zur Verfügung steht, können die Snapshots nicht eingearbeitet werden.
Bei neueren 4.0-Versionen von vSphere und bei vSphere 4.1 wird jeder Snapshot statt mit dem vorigen direkt auf der originalen Festplatte integriert. Weil dies direkt und nacheinander erfolgt, ist abgesehen von der Delta-Hilfsdatei kein zusätzlicher Platten-Platz erforderlich.
Wenn Sie mit einer älteren Version von vSphere oder VI3 arbeiten, gibt es eine alternative Methode zum Löschen mehrerer Snapshots, die mit weniger Zusatz-Platzbedarf auskommt: das Löschen Snapshot für Snapshot, beginnend mit dem neuesten. Auf diese Weise wächst während des Zusammenlegens jeweils nur ein Snapshot. Dieses Vorgehen ist etwas aufwändiger, erfordert jedoch deutlich weniger Festplatten-Platz.
Wichtig: Starten Sie keine Platten-Defragmentierung unter Windows, während ein Snapshot genommen wird. Bei einer Defragmentierung werden viele Platten-Blöcke geändert, was Snapshot-Dateien sehr schnell anwachsen lassen kann.
Wie lang dauert das Löschen eines Snapshots?
Beim Löschen von Snapshots über den vSphere-Client kann die Aufgaben-Statusanzeige in die Irre führen. Meistens springt sie recht schnell auf 95 Prozent, bleibt dann aber dort, bis der gesamte Commit-Prozess beendet ist. vCcenter Server hat als Timeout-Voreinstellung für alle Aufgaben 15 Minuten, was sich aber ändern lässt. Deshalb kann es passieren, dass vCenter Server einen Timeout meldet, obwohl Ihre Dateien noch eingearbeitet werden.
Eine Möglichkeit, um herauszufinden, ob eine Aufgabe wirklich abgeschlossen ist, bietet das VM-Verzeichnis, zu sehen über den Datastore Browser im vSphere-Client: Wenn die Delta-Datei verschwindet, wissen Sie, dass die Snapshot-Löschung beendet ist. Für ESX und ESXi gibt es außerdem eine Kommandozeilen-Methode, mit der Sie den Fortschritt beim Löschen beobachten können.
Bei Snapshots, die schon sehr lange aktiv (und dadurch extren groß geworden) sind, kann die Einarbeitung beim Löschen sehr lange dauern. Die genaue Dauer hängt auch vom Aktivitätsniveau der VM ab – am schnellsten geht es, wenn sie ausgeschaltet ist. Auch das Ausmaß an Aktivität auf dem Platten-Subsystem Ihres Host-Rechners hat Einfluss darauf, wie viel Zeit das Einarbeiten erfordert.
Einen 100-GB-Snapshot auf die Original-Platte zu spielen, kann mehrere Stunden dauern und Auswirkungen auf die Performance von VM und Host haben. Aus diesem Grund sollten Sie eine zeitliche Grenze für die Aufbewahrung von Snapshots setzen und sie löschen, sobald sie nicht mehr gebraucht werden,
Snapshots und Metadaten-Sperren beeinflussen die Host-Performance
Snapshots haben in mehrerlei Hinsicht einen negativen Einfluss auf die Performance Ihres Hosts und Ihrer VMs. Bei der Erstanfertigung eines Snapshots wird Ihre VM kurz pausieren – wenn Sie versuchen, Sie anzupingen, dürften Sie Timeouts erleben. Außerdem werden beim Erzeugen eines Snapshots auch Metadaten aktualisiert; diese können zu SCSI-Reservierungskonflikten führen, die Ihre LUN kurz blockieren. Als Folge davon ist die LUN kurze Zeit lang nur für einen einzigen Host verfügbar.
Wenn Sie von einer VM einen Snapshot genommen haben und diese VM läuft, ist der Snapshot aktiv. Wenn dies der Fall ist, wird die Performance der VM beeinträchtigt: Der Host schreibt in Delta-Dateien auf andere Weise und weniger effizient als in gewöhnliche VMDK-Dateien. Außerdem wächst die Delta-Datei (wie in Teil 1 dieser Serie erwähnt) in Schritten von 16 MB und führt damit zu einer weiteren Metadaten-Sperre. Dies kann Ihre VM und Ihre Hosts beeinträchtigen – wie sehr, hängt davon ab, wie ausgelastet sie sind. In Teil 3 dieser Serie finden Sie nähere Informationen zur Problembehandlung bei VMware-Snapshots und wie Sie Performance-Einbußen vermeiden.
Hinzu kommt schließlich noch: Das Löschen/Einarbeiten eines Snapshots führt ebenfalls zu einer Metadaten-Sperre, und die zu löschenden Snapshots können während der Einarbeitung der Delta-Dateien die Performance ihrer VM deutlich belasten, insbesondere wenn sie stark ausgelastet ist. Aus diesem Grund ist es sinnvoll, große oder zahlreiche Snapshots in Nicht-Spitzenzeiten zu löschen, wenn der Host-Server weniger stark beansprucht ist.
Bei aktiven Snapshots niemals Disk-Dateien erweitern
Solange Snapshots aktiv sind, sollten Sie auf die Erweiterung einer virtuellen Festplatte dringend verzichten. Eine solche Erweiterung erfolgt über den Befehl vmfkstools –x oder den vSphere-Client. Wenn Sie unter VI3 eine Platte über den VI-Client erweitern, meldet das System, dass die Aufgabe erfolgreich abgeschlossen wurde – tatsächlich aber wird die Disk-Datei gar nicht erweitert. Und wenn Sie unter VI3 eine virtuelle Festplatte erweitern, während ein Snapshot aktiv ist, wird die VM nicht mehr starten. Stattdessen bekommen Sie die Fehlermeldung Cannot open the disk “.vmdk“ or one of the snapshot disks it depends on. Reason: The parent virtual disk has been modified since the child was created. Zum Glück gibt es eine Lösungsmöglichkeit für dieses Szenario.
In vSphere ist es gar nicht möglich, die virtuelle Festplatte einer VM zu erweitern, während ein Snapshot läuft – wenn Sie den Befehl vmkfstools verwenden, erhalten Sie die Fehlermeldung Failed to extend the disk. Failed to lock the file. Im vSphere-Client ist beim Bearbeiten der VM-Einstellungen die Option zur Größen-Veränderung der virtuellen Festplatten deaktiviert, wenn ein Snapshot läuft. Wenn Sie den Snapshot gelöscht haben, wird sie wieder wählbar.
Wenn eine VM mit einer Festplatte nach dem Prinzip Raw Device Mapping (RDM) verbunden ist, wird die Größe der Festplatte (die LUN) vom physischen Storage-System bestimmt, nicht von vSphere. Deshalb können Sie die Größe der LUN ganz ohne vSphere erhöhen, auch während ein Snapshot aktiv ist. Dadurch allerdings kann die RDM-Platte beschädigt werden. Stellen Sie also sicher, dass stets die Snapshots gelöscht sind, bevor Sie die Größe verändern.
Virtuelle Festplatten von Snapshots ausnehmen
Wenn Sie eine VM mit mehr als einer virtuellen Festplatte haben und eine davon nicht in einen Snapshot aufnehmen wollen, müssen Sie dazu die Einstellungen der VM bearbeiten. Stellen Sie den Platten-Modus um auf „Independent“ (und wählen Sie hier unbedingt „Persistent“). Diese Vorgabe gibt Ihnen die Möglichkeit, die Funktionsweise jeder Festplatte unabhängig von den anderen zu bestimmen; bei der Disk-Datei oder -Struktur ändert sich jedoch nichts. Wenn eine Festplatte als unabhängig gekennzeichnet ist, wird sie bei Snapshots nicht berücksichtigt.
Allerdings ist es bei einer VM mit einer unabhängigen Festplatte nicht möglich, auch den Arbeitsspeicher im Snapshot aufzunehmen. Dies dient dem Schutz der Festplatte für den Fall, dass Sie zu einem früheren Snapshot mit einem Speicher-Zustand zurückkehren, in dem vielleicht eine Anwendung lief, die auf die unabhängige Festplatte geschrieben hat. Weil die unabhängige Platte anders als die übrigen bei der Rückkehr-Operation nicht berücksichtigt wird, könnte es sonst zu Schäden kommen.
Für VMs mit RDM-Festplatten gilt: Wenn das RDM-Gerät im physischen Kompatibilitätsmodus konfiguriert wurde, wird es bei VM-Snapshots nicht berücksichtigt. Wenn die Konfiguration dagegen im virtuellen Kompatibilitätsmodus erfolgte, umfassen Snapshots auch diese Festplatten.
VMs mit Hilfe von Snapshots im Betrieb sichern
Snapshots bieten eine praktische Möglichkeit für Backups von rohen VMDK-Dateien, während die VM läuft. Auf der originalen Disk-Datei werden dabei alle Schreibvorgänge gestoppt, so dass sie problemlos auf ein anderes Storage-Volume kopiert werden kann: Genau so arbeiten Backup-Anwendungen wie Veeam Backup & Replication oder Quest vRanger auf der Virtualisierungsebene: Sie machen einen Snapshot der VM, sichern die Disk-Datei und löschen den Snapshot anschließend wieder.
Auch einige kostenlose Skripts und Werkzeuge von Nutzern bieten diese Funktionalität. Mit diesen Programmen können Sie Ihre VMDK-Dateien auf lokales Storage oder auf ein Netzwerk-Share kopieren und so eine weitere Wiederherstellungsmöglichkeit für Ihre wichtigen VMs schaffen.
Im dritten und letzten Teil dieser Serie geht es um Problembehandlung bei VMware-Snaphots.