PowerCLI – Snapshots monitoren

Snapshotkette in vSphere
Auf einer VM sind mehrere Snapshots vorhanden

Snapshots sind in vSphere eine tolle Möglichkeit einen Stand einer VM einzufrieren. Allerdings ist es ratsam so wenige Snapshots wie möglich auf einer VM zu halten und so kurz wie möglich. Um dies zu erreichen sollte man die Snapshots monitoren.
Oft sieht eine Snapshotkette wie folgt aus:

Snapshotkette in vSphere
Auf einer VM sind mehrere Snapshots vorhanden

Oft werden in virtuellen Infrastrukturen aber auch Backups über Snapshots gehandelt. Manchmal bleiben hierbei Snapshots aber liegen und werden nicht gelöscht. Ein Grund dafür ist beispielsweise eine etwas zu lange Reaktionszeit des vCenters oder ein Fehler in der Backupprozedur.

Doch warum ist dies nicht ratsam? Die Funktionsweise von Snapshots ist relativ schnell erklärt: Für jeden Snapshot wird eine eigene Delta-Disk erstellt, welche die neue Basis-Disk für die jeweilige VM darstellt. Alle Write-IOs werden nun auf diese Delta-Disk umgeleitet. Weitere Informationen dazu sind in diesem KB-Artikel verfügbar: https://kb.vmware.com/s/article/1015180

Um diesem Problem entgegen zu treten, habe ich einen Snapshotdetector geschrieben. Dieser basiert auf der PowerCLI und sucht sich alle VMs raus die “unrechtmäßig” einen Snapshot besitzen.
Die “rechtmäßigen” VMs selektiere ich dabei mit Hilfe von einem Tag:

Der Tag "allow Snapshots" aus der Kategorie "snapshots" selektiert VMs welche Snapshots besitzen dürfen.
Der Tag “allow Snapshots” aus der Kategorie “snapshots” selektiert VMs welche Snapshots besitzen dürfen.

Diesen Tag habe ich nun allen VMs angehangen, welche Snapshots haben dürfen.
Doch nun zu dem Script. Das Script erwartet eine aktive Verbindung auf eine vSphere-Umgebung bspw. mittels Connect-VIserver -Server vcsa01.vclass.lab

Das Script speichert standardmäßig im Pfad C:\Scripts\Snapshotdetector\Logs\snaphots.txt welche VMs einen Snapshot besitzen.
Der Pfad wird in der Variable $logPath festgelegt und der Dateiname ist fix. Die Daten lassen sich natürlich von anderen Systemen weiterverwenden. So habe ich dieses Script in einen PRTG-Sensor integriert, welcher mir mehrmals täglich die aktuellen VMs sucht und meldet.
Wie immer kann das Script an die eigenen Bedürfnisse angepasst werden und bietet so eine flexible Möglichkeit Snapshots monitoren zu können.

René Gessinger

Ich arbeite seit einigen Jahren als Infrastructure Architect in einem Systemhaus und Cloud Provider und betreibe vorwiegend vSphere-Umgebungen. Meine Kenntnisse und Interessen reichen von vSphere und NSX über Networking und VMware Horizon auch bis tief in Windows und Linux. Mit der Zeit kamen auch Lösungen für die Automatisierung hinzu, so z.B. Powershell, vRealize Orchestrator und Ansible. Darüber hinaus arbeite ich intern als Trainer für die Produkte vSphere, vSAN, Horizon und NSX.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.