PowerCLI-Tipps

vSphere Snapshot-Dateien finden

| Autor: Thomas Drilling

Drillings Open-Source-Eck
Drillings Open-Source-Eck (Bild: Thomas Drilling)

Nahezu alle Virtualisierungslösungen unterstützen Snapshots, eigentlich ein Feature, das aus der Storage-Ecke kommt. Snapshots sind zweifelsohne nützlich, allerdings kann bei mehreren hundert VMs in einer Virtualisierungsumgebung wie vSphere schon mal die Übersicht verloren gehen. Folgender Tipp hilft beim Lokalisieren von Snapshots.

VMware vSphere unterstützt seit Ewigkeiten Snapshots. Diese frieren den Festplattenzustand einer virtuellen Maschine ein. Änderungen werden nach Erstellen des Snapshots nicht mehr in die originale VMDK-Datei geschrieben, sondern nur noch in eine dazu neu erstellte Delta-Datei. Neuere vSphere-Versionen können beim Snapshotting neben dem Festplatteninhalt auch den Hauptspeicherinhalt einfrieren.

Wozu Snapshots ?

Snapshots sind nützlich, wenn man in einer VM möglicherweise kritische Änderungen vornehmen muss, etwa eine neue Software oder Patches einspielen. Geht dabei etwas schief, kann der Nutzer dank des Snapshots jederzeit zum Zustand „vor“ der kritischen Aktion zurückkehren. Verläuft dagegen alles glatt, kann man den neuen Zustand persistieren, also den Snapshot auflösen.

Verwechselungsgefahr

Hier muss man allerdings bei den Begrifflichkeiten aufpassen. Mit Revert to, bzw. Wechseln zu wechselt vSphere zum Zustand beim Erstellen des Snapshots zurück mit der Konsequenz, dass alle seitdem vorgenommenen Änderungen verloren gehen. Dabei werden sämtliche inkrementellen VMDK-Dateien vom Datastore gelöscht. Revert to ist also das eigentlich kritischere Kommando, weil es effektiv ein Lösch-Befehl ist.

Mit der Schaltfläche Delete oder Löschen im Snapshot Manager meint VMware dagegen das Löschen des Snapshots, was gleichbedeutend mit dem "Persistentmachen" der seit Erstellen des Snapshots erstellten Änderungen ist. Beim Löschen des oder der Snapshots (falls es mehrere gibt) werden sämtliche im Snapshots enthaltenen Änderungen zurück in die Ursprungs-VMDK-Datei geschrieben.

Snapshot-Liste

Zwar sind Snapshots an sich eine prima Sache, vSphere-Administratoren sollten aber nur dosiert von der Technologie Gerbrauch machen, um insbesondere in sehr großen Umgebungen nicht die Übersicht zu verlieren. Immerhin können die Snapshot-Delta-Dateien in ungünstigen Fall bis zur Größe der Ursprungs-VMDK anwachsen.

Außerdem behindern vorhandene Snapshots das Verwenden von erweiterten Technologien. „Vor“ vSphere 5.0 war es beispielsweise nicht möglich, VMs mit vorhandenen Snapshots „hot“ zu mirgrieren (vMotion).

In jedem Fall ist es wichtig, sich stets über die in der eigenen Umgebung vorhandene Snapshots auf dem Laufenden zu halten. Die ist zwar pro VM mithilfe des Snapshots Managers möglich, in sehr großen Umgebungen braucht es dagegen effizientere Lösungen. Hier kommt die Kommandozeile zur Hilfe.

Eine Variante ist z. B. das Verwenden von PowerCLI, der VMware-erweiterten PowerShell-Version

1.Hier verbindet man sich nach dem Start der PowerShell zunächst mit dem gewünschten vCenter:

Connect-VIServer <vCenter Server> 

… und gibt nach dem gelb angezeigten Hinweis zum verwendeten SSL-Zertifikat in einem Popup die für den Zugriff auf das vCenter benötigten Credentials ein.

2. Die objektorientierte Arbeitsweise der Powershell erlaubt das „Pipen“ von Teilbefehlen. Zum Ermitteln vorhandene Snapshots kann man daher einen PowerCLI-Befehl aus den drei Komponenten get-vm, get-snapshot und format-list zusammenbauen:

get-vm | get-snapshot | format-list

3. Die Ausgabe ist allerdings noch etwas unübersichtlich, weil sämtliche Eigenschaften der betreffenden Snapshots ausgegeben werden, also Created, Quiesced, PowerState, VM, VMId, Parent, ParentSnapshotId, ParentSnapshot, Children, SizeMB, SizeGB, IsCurrent, IsReplaySupported, ExtensionData,Id, Name und Uid.

Wer es also übersichtlicher mag, sucht sich nur eine oder wenige der passenden Properties aus, z. B.:

get-vm | get-snapshot | format-list VM,SizeGB