Dieser Guide betrifft ausschließlich differenzielle VMware Backups übers Virtuelle Dashboard, bei denen die automatische Aufbewahrung aktiviert ist.
Es gibt mehrere Gründe warum die ältesten differenziellen Backups nicht gemäß der festgelegten Aufbewahrungsregeln gelöscht werden. Dieser Guide erklärt auch, warum diese Backups nicht mehr neue differenzielle Backups erzeugen.
1. Grund fürs Scheitern der Backups
A) Es ist möglich, dass der Datenspeicher des ESXi- oder vSphere-Servers nicht mehr ausreichend Speicherplatz verfügbar hat um einen Snapshot einer VM zu verarbeiten. Novabackup fordert einen solchen Snapshot an, wenn es versucht eine VM übers Virtuelle Dashboard zu sichern. Das Programm erkennt es aber nicht, wenn der zuständige Server nicht mehr ausreichend Speicherplatz für einen Snapshot zur Verfügung hat und zeigt daher auch keinen entsprechenden Fehler an.
B) Im NovaBackup Temp-Verzeichnis wird die Sicherung protokolliert. Um die Gründe fürs Scheitern der differenziellen VMware Backups zu untersuchen öffnen Sie bitte folgendes Verzeichnis auf der Maschine, auf der NovaBackup installiert ist (Standardverzeichnis):
"C:\ProgramData\NovaStor\NovaStor NovaBACKUP\Temp\"
Sortieren Sie die Logs nach Änderungsdatum und öffnen Sie die neueste Datei mit dem Namen „vmbkp-error*.log“ mit dem Editor oder einem anderen Textverarbeitungsprogramm. Dort finden Sie die von ESXi/vSphere erzeugten Fehlermeldungen, die sehr viel detaillierter sind als die in der Nutzeroberfläche von NovaBackup angezeigten Fehlercodes.
Mit diesen Fehlermeldungen sollten Sie eher in der Lage sein, den tatsächlichen Grund fürs Scheitern der Backups zu ermitteln. Eine mögliche Ursache ist wie gesagt mangelnder Speicherplatz für Snapshots.
Eine kostenfreie Version des ESX wird keine Sicherungen zulassen. Die für die Sicherung erforderliche API ist nicht lizenziert. Diese ist aber Voraussetzung für die Sicherung durch NovaBACKUP.
2. Grund fürs Scheitern der Backups und ein Workaround fürs Verarbeiten der Aufbewahrung
Für jede über das Virtuelle Dashboard gesicherte VM existiert eine Datei namens „pool.db“. Dabei handelt es sich um eine Art Datenbank-Textdatei, in der alle durchgeführten Backups eingetragen werden. Der Pfad zu dieser Datei sieht beispielsweise so aus:
\\Zielverzeichnis des Backups\NovaBACKUP\50293a12-2400-f991-9f73-b46dead4e0d4\pool.db
Wenn Sie manuell Backups einer VM oder die entsprechenden Verzeichnisse löschen, wird die pool.db nicht aktualisiert. Die pool.db listet die manuell gelöschten Backups also weiterhin als vorhanden auf, was zu Fehlfunktionen bei zukünftigen Backups führen könnte.
Um dieses Problem zu beheben, legen Sie bitte eine neue Textdatei an und speichern Sie diese unter dem Namen „retent.bat“ in einem kurzen Pfad auf C:, z.B. C:\Temp. Unten finden Sie Beispiele für die Befehle, die in der „retent.bat“ ausgeführt werden. Diese Befehle müssen Sie auf Ihre eigene Umgebung anpassen, also die GUID Ihrer VMs eintragen und ggf. die Pfade ändern. Jede VM, die übers Dashboard gesichert wird, hat Ihre eigene pool.db. Für jede VM ist also auch eine eigene Reihe von Befehlen erforderlich, um die pool.db und Sicherungsaufbewahrung aufzuräumen.
In diesem Beispiel sind Befehle für zwei VMs gelistet. Dabei wird die pool.db aufgeräumt und die Sicherungsaufbewahrung durchgeführt. Dabei werden in diesem Beispiel die zwei neuesten differentiellen Backups sowie das Vollbackup aufbewahrt.
"C:\Program Files (x86)\NovaStor\NovaStor NovaBACKUP\vmware\vmware.exe" cleanup --backupfolder "C:\Testing 4\NovaBACKUP\5036f3e5-6235-7698-f127-b06dfeefa993" --retent g=2 > C:\Temp\4-retentfolder-info.log 2> C:\Temp\4-retentfolder-error.log
"C:\Program Files (x86)\NovaStor\NovaStor NovaBACKUP\vmware\vmware.exe" cleanup --backupfolder "C:\Testing 6\NovaBACKUP\5036d7bd-3fce-2624-398c-549165df5b41" --retent g=2 > C:\Temp\6-retentfolder-info.log 2> C:\Temp\6-retentfolder-error.log
Der erste Teil des Befehls ruft die vmware.exe auf. Dies muss in der Regel nicht angepasst werden, es sei denn Sie haben nicht in den Standardpfad installiert oder benutzen ein 32 bit-Betriebssystem.
"C:\Testing 4\NovaBACKUP\5036f3e5-6235-7698-f127-b06dfeefa993"
ist der Pfad, in dem Ihre VM-Backups aufbewahrt werden, also dort wo auch die pool.db (siehe oben) abgelegt ist. Dieser Pfad muss für jede VM individuell angepasst werden. Die lange Zeichenfolge am Ende des Pfads ist die GUID jeder VM. Ersetzen Sie also den vorderen Teil des Pfads durch Ihr Sicherungsverzeichnis und die Zeichenfolge durch die GUID Ihrer VMs.
"--retent g=2“
steht für die Aufbewahrung der letzten zwei differenziellen Backups und löscht die Sicherungschronik und ältere Sicherungen. Zudem editiert dieser Befehl die pool.db mit den korrekten Einträgen, so dass dort nur noch die tatsächlich aufbewahrten Sicherungen gelistet sind. Dieser Befehl wird nur die differenziellen Versionen des Backups bearbeiten. Das Vollbackup wird dadurch nicht gelöscht werden.
Der letzte Befehlsabschnitt gibt an, wo die Sicherungsaufbewahrungs-Logdateien, die bei Ausführung des vorigen Befehls erzeugt werden, abgelegt werden. Passen Sie die dort angegebenen Pfade, „C:\Temp\4-retentfolder-info.log 2“ und„C:\Temp\4-retentfolder-error.log“, also an Ihre Umgebung an. Wir empfehlen einen kurzen Pfad wie „C:\Temp“ zu verwenden und in den Dateinamen kenntlich zu machen, um welche VM es sich jeweils handelt. Die angegebenen Verzeichnisse müssen vor Ausführung der .bat-Datei existieren. Die .bat kann die Verzeichnisse nicht selbst anlegen.
Führen Sie die retent.bat bitte aus einem lokalen Verzeichnis heraus aus. Die Ausführung von einem Netzwerk-Share aus wird nicht funktionieren. Legen Sie die retent.bat also beispielsweise in C:\temp ab auf dem System, auf dem Sie das Virtuelle Dashboard verwenden. Starten Sie auf diesem Computer eine administrative Eingabeaufforderung. Wechseln Sie darin ins Verzeichnis, in dem Sie die retent.bat gespeichert haben und führen Sie die Datei durch Eingabe von „retent.bat“ aus.
Die Ausführung sollte sehr schnell gehen und die zwei oben erwähnten Logdateien erzeugen. Nach circa 30 Sekunden finden Sie die Datei „xx-retentfolder-info.log“ in dem von Ihnen in der retent.bat angegebenen Verzeichnis. Dort können Sie nachvollziehen, welche Dateien und Verzeichnisse bearbeitet/gelöscht wurden. In „xx-retentfolder-info.log“ können Sie ggf. bei der Ausführung aufgetretene Fehler sehen. Wenn es keine Fehler gab, wird eine leere Datei mit 0 Byte Größe erzeugt.
Die retent.bat ermöglicht Ihnen die Aufbewahrung trotz Defekt im Virtuellen Dashboard zu automatisieren und durch das Aufräumen der pool.db sollten neue differenzielle Backups wieder erfolgreich angelegt werden können. Wir empfehlen, die tägliche Ausführung der retent.bat über die Windows Aufgabenplanung zu automatisieren, so dass keine manuelle Aufräumarbeit erforderlich ist.