VMware VM-Snapshots automatisch löschen
VMware VM-Snapshots mit vRealize Operations Manager (vROPs) automatisch zu löschen ist einfach umzusetzen.
Dieser Beitrag ist von 2022. Er bleibt online, weil er nach wie vor nachgefragt wird, beschreibt aber einen Produktstand von damals.
VMware VM-Snapshots mit dem vRealize Operations Manager (vROPs) automatisch zu löschen ist einfach umzusetzen. Unser Engineering-Team bekommt diesen Wunsch oft, deshalb zeigen wir hier, wie es geht.
Die Anforderung: Snapshots automatisch löschen
In einem unserer letzten Projekte war eine Lösung gefragt, die veraltete VMware Snapshots nach einer bestimmten Zeit automatisch entfernt. Der Kunde wollte das, weil Snapshots in der Vergangenheit oft zweckentfremdet und ebenso oft vergessen wurden. In der Folge belegte eine VM doppelt so viel Speicher wie vorgesehen, und die Performance ging ebenfalls in die Knie.
Die Anforderung des Kunden:
- Aufmerksam werden, wenn ein VM-Snapshot 5 Tage alt ist
- Deutlicher werden, wenn ein VM-Snapshot 10 Tage alt ist
- Einen VM-Snapshot von 15 Tagen automatisch löschen
Die Lösung: den vRealize Operations Manager dafür einsetzen
Im erwähnten Projekt war VMware Cloud Foundation im Einsatz, wir hatten also die vollständige VMware vRealize Suite zur Verfügung. Wegen der geforderten Warnungen nach 5 und 10 Tagen haben wir uns für vRealize Operations entschieden.
Dafür legen wir in vRealize Operations eigene Elemente an:
- Eigene Symptom Definitions
- Hier wird das Alter der Snapshots gesetzt, damit darauf reagiert werden kann
- Eine eigene Recommendation
- Hier wird die Automatisierung, also die Action, hinterlegt
- Eigene Alerts
- Hier werden die beiden oben genannten Elemente zu einem Alert zusammengeführt
Danach müssen wir auf den Appliances eine Datei anpassen, die die automatisierte Action erlaubt, und vRealize Operations unsere Änderung bekannt machen.
Der Reihe nach.
Eigene Symptom Definitions anlegen
Für die drei Snapshot-Alter legen wir drei Symptome an.
Geh auf Alerts .. Configuration .. Symptom Definitions

Filtere rechts nach «snapshot».

Klone das Symptom «Virtual machine has disk snapshots for a long time».

Gib deinem Symptom einen Namen und setz den Property-Wert für das Alter. Wir haben «[soulTec] Virtual machine has disk snapshot for 5 days» genommen und die Property auf 5 gesetzt.
Wiederhol diese Schritte für so viele Alter, wie du als Symptome brauchst. Wir haben drei Symptome für 5, 10 und 15 Tage angelegt und dafür «Warning», «Immediate» und «Critical» verwendet.
Eine eigene Recommendation anlegen
Damit auf 15 Tage alte Snapshots automatisch reagiert wird, brauchen wir eine eigene Recommendation mit der passenden Action.
Geh auf Alerts .. Configuration .. Recommendations

Klick auf «ADD», um eine neue Recommendation anzulegen.

Gib ihr eine passende Beschreibung, damit du sie später wiederfindest. Unten konfigurierst du den «vCenter Adapter» und wählst die Action «Delete Unused Snapshots for VM Express». Es gibt eine ohne «Express», pass also auf: Die Automatisierung funktioniert nur mit der Express-Action, weil diese keine Parameter braucht.
Eigene Alerts anlegen
In diesem Schritt setzen wir die beiden Elemente zu neuen Alerts zusammen, die vROPs an die VM-Objekte hängt, die unsere Symptom Definitions erfüllen.
Geh auf Alerts .. Configuration .. Alert Definitions

Filtere rechts nach «snapshot».

Klick auf die drei Punkte neben der Alert Definition «Virtual Machine is running on snapshots for more than 2 days» und wähl «Clone».

Unter «1 – Alert» gibst du einen Namen ein, der beschreibt, worum es geht. Wir haben «[soulTec] Virtual Machine is running on snapshots for more than 5 days» genommen.

«2 – Symptoms» sieht ähnlich aus wie im Screenshot oben. Wir wollen das mitgelieferte Symptom entfernen und eines unserer eigenen verwenden. Klick also links im Symptom Description auf das «x» und zieh danach das passende Symptom aus der Liste rechts nach links auf «Drag a symptom in to create a new symptom set».

So sollte es danach aussehen.

Dieser Schritt ist nur bei dem Alert nötig, bei dem die Automatisierung greifen soll. Bei uns war das nur der kritische Alert für 15 Tage alte Snapshots. Im Schritt «3 – Recommendations» löschst du die Standardempfehlung und ersetzt sie durch die, die wir vorhin angelegt haben.
![]()
Nach dem Assistenten sieht dein fertiger Alert so aus. Wiederhol das für die übrigen Symptome.
Eine Datei auf dem vRealize Operations Manager anpassen
Leider lässt VMware unsere Action noch nicht automatisch ausführen. Dafür müssen wir eine Datei auf der Appliance selbst ändern. Das ist derzeit nicht offiziell unterstützt, aber wir haben mehrfach angeregt, diese Funktion künftig einzubauen. Bei einem Cluster musst du diesen Schritt auf allen Appliances des Clusters machen.
Pfad für vRealize Operations 8.x:
/usr/lib/vmware-vcops/user/plugins/inbound/vmwarevi_adapter3/conf
Pfad für vRealize Operations vor 8.x:
/usr/lib/vmware-vcops/user/plugins/inbound/PythonRemediationVcenterAdapter3/conf
Verbinde dich per SSH mit deiner vRealize Operations Appliance.

Zuerst wechseln wir ins Verzeichnis, dann legen wir eine Sicherheitskopie des Originals an und öffnen die Datei im vim.
Such in der Datei nach «Delete Unused Snapshots for VM Express», in vim mit «/» und dem Suchbegriff, gefolgt von Enter.
Und ändere die folgende Zeile von
auf
Damit ist die Automatisierung für diese Action aktiv. Speichern und schliessen mit ESC, dann «:wq» und Enter. Denk daran, das auf allen Nodes des Clusters zu machen.
Den Adapter neu beschreiben
Damit vRealize Operations unsere Änderung sieht und übernimmt, müssen wir den vCenter Adapter «redescriben». Das ist ein Klick an der richtigen Stelle.
Geh auf Administration .. Support .. Redescribe

Klick auf «REDESCRIBE». Das dauert ein paar Minuten, danach können wir die Automatisierung in der Policy aktivieren.
Die Automatisierung in der Policy aktivieren
Der letzte Schritt ist die Aktivierung in der Policy. Dafür klickst du auf demselben Bildschirm auf «Policies» (Administration … Solutions … Policies).

Wähl die Policy, die in deiner Umgebung aktiv ist.

Klick auf die drei Punkte und wähl «Edit».

Klick auf das Feld «Alerts and Symptoms», um diesen Teil der Policy zu bearbeiten.

Tipp im Filterfeld für den Object Type «Virtual Machine» und klick auf «Virtual Machine» unter dem vCenter Adapter.

In der Liste findest du deine eigenen Alerts. In der Spalte «Automate» stellst du auf «Enabled», damit VMware VM-Snapshots automatisch gelöscht werden.

Speichern, fertig.
Die Automatisierung bei bereits ausgelösten Alerts aktivieren
Wenn du schon Snapshots hast, die jetzt automatisch verschwinden sollen, wurden die zugehörigen Alarme vermutlich ausgelöst, bevor du die Automatisierung aktiviert hast, und sind deshalb nicht automatisch entfernt worden. Brich diese Alerts einfach ab. Sie werden im nächsten Zyklus neu ausgelöst, und dann greift auch die Automatisierung.
Künftige Updates von vRealize Operations
Zum Zeitpunkt, an dem ich das schreibe, funktioniert das auch mit der aktuellen Version. Bei jedem Update deines vRealize Operations Manager werden deine Änderungen an der XML-Datei aber überschrieben. Merk dir diesen Post also und mach die Anpassung samt Redescribe nach jedem Update erneut.
Anregung und mehr Informationen
Wenn du mehr über den vRealize Operations Manager und andere VMware-Themen lernen willst, schau beim Blog unseres Schweizer VMware vExpert Kollegen vMan.ch vorbei. Er hat früher schon über genau diese Funktion geschrieben und ist eine ausgezeichnete Quelle.
Wenn du mit uns arbeiten oder Ideen für deine VMware Lösungen besprechen willst, melde dich jederzeit.