VMs sichern mit GhettoVCB

Was ist GhettoVCB?

GhettoVCB ist ein von William Lam entwickeltes Script zur Sicherung von Virtuellen Maschinen unter VMWares‘ ESX. Da es kostenlos zum Download verfügbar ist und genau das tut was es verspricht ist GhettoVCB eine herrvoragende Ergänzung zu bestehenden Backup-Lösungen.
Das Script bietet zwei Möglichkeiten eine VM zu sichern; entweder die VM wird heruntergefahren um das Backup anzulegen, oder es erstellt einen Snapshot und sichert die VM im laufenden Betrieb. Ghetto VCB klont die jeweilige VMDK-Datei einer VM, diese enthält alle Notwendigen Informationen um die VM zu Betreiben. Das heißt eine Wiederherstellung ist sehr schnell möglich. Da das Script die Funktionen des ESX verwendet ist sichergestellt, dass die angelegten Kopien auch nutzbar sind. Vor der Installation ist wichtig, dass der SSH-Zugang auf dem ESX aktiviert ist, da das Script sonst nicht funktionieren würde. In der Weboberfläche klicken Sie dazu mit der rechten Maustaste auf Host und wählen Sie unter Dienste „Secure Shell aktivieren“.

Anschließend sollten Sie unter Verwalten -> Dienste den SSH-Dienst mit der rechten Maustaste anklicken und unter Richtlinie „Mit dem Host starten und beenden“ auswählen. Damit stellen Sie sicher, dass das Script auch nach einem reboot des Servers ausgeführt werden kann.

GhettoVCB installieren

Laden Sie zunächst ds GhettoVCB (https://github.com/lamw/ghettoVCB) Script herunter. Nun müssen Sie die Zip-Datei auf den ESX-Server hochladen. Gehen Sie dazu auf die Weboberfläche und klicken auf Speicher und dann auf Datenspeicherbrowser. In dem neuen Fenster finden Sie den Button Hochladen und können die Datei auswählen.
Verbinden Sie sich nun per SSH auf den ESX-Server (zum Beispiel mit der Ubuntu 20.04 Konsole von Windows Terminal) und führen Sie die folgenden Schritte aus:

  • cd /vmfs/volumes/datastore1/
    Dieser Befehl wechselt in das Verzeichnis des Datenspeichers
  • unzip ghettoVCB-master.zip
    Entpackt die Zip-Datei. Der Name der Datei kann variieren, je nach Version. Mit dem Befehl „ls -a“ können Sie sich die Dateien und Ordner in einem Verzeichnis anzeigen lassen.
  • rm ghettoVCB-master.zip
    Damit löschen Sie die ursprüngliche Zip-Datei, da Sie sie nicht mehr benötigen
  • cd ghettoVCB-master/
    Wechseln Sie in das ghettoVCB Verzeichnis
  • chmod +x ghettoVCB.sh && chmod +x ghettoVCB-restore.sh
    Macht die Scripte für das System ausführbar
  • vi ghettoVCB.sh
    Öffnet das Script in einem Texteditor für die Konfiguration. Am wichtigsten sind der Pfad des Ordners in den die Sicherung abgelegt werden soll und die Anzahl der Sicherungen die behalten werden sollen.
    Den Pfad legen Sie in der Zeile mit „VM_BACKUP_VOLUME“ fest. Standardmäßig können Sie die Backups nur auf dem ESX selbst speichern, es ist aber möglich andere Speichergeräte einzubinden.
    Die Anzahl der zu behaltenden Versionen wird in der Zeile mit „VM_BACKUP_ROTATION_COUNT“ eingestellt.
  • vi vms_to_backup
    Damit legen Sie eine Liste der VMs an die gesichert werden sollen. Tragen Sie hier die entsprechenden Namen der VMs ein
  • mkdir logs
    Legt einen neuen Ordner für Logfiles an, dies vereinfacht die Fehlersuche, sollte etwas schief gehen.
  • date
    Zeigt ihnen die Systemzeit an, prüfen Sie ob diese mit der aktuellen Uhrzeit übereinstimmt.

Die Einrichtung abschließen

Nun müssen wir noch dafür sorgen, dass die Sicherungen automatisch und regelmäßig angelegt werden. Dazu legen Sie einen cronjob an, diese starten allerdings bei einem reboot nicht automatisch neu. Daher bedient man sich bei ghettoVCB eines Tricks:
Der Befehl vi /etc/rc.local.d/local.sh öffnet eine Datei die bei einem reboot neu geladen lädt. Hier legen wir einen Cronjob an, der dann automatisch mit dem Host gestartet wird.
Dazu müssen in der geöffneten Datei die folgenden Zeilen am Ende aber vor dem exit Befehl eingefügt werden:

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 23 * * * /bin/sh /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -f /vmfs/volumes/datastore1/ghettoVCB-master/vms_to_backup > /vmfs/volumes/datastore1/ghettoVCB-master/logs/ghettoVCB-backup-\$(date +\\%s).log" >> /var/spool/cron/crontabs/root
crond

Mit diesen Einstellungen wird das Skript jeden Tag um 23:00 ausgeführt. Sie können den Cronjob und das Script selbst nach ihren eigenen Bedürfnissen anpassen. Unter anderem können Sie eine E-Mail Benachrichtigung einrichten oder die VM für das Backup herunterfahren.
Die Konfiguration kann schnell etwas unübersichtlich werden, glücklicherweise gibt es einen Testmodus mit dem Befehl:

./ghettoVCB.sh -f vms_to_backup -d dryrun

Damit können Sie Ihre bisherigen Einstellungen sehen und bekommen eine Rückmeldung ob eine Sicherung erfolgreich abgeschlossen werden kann.

Weiteren Datenspeicher hinzufügen

Wir haben nun also Sicherungen unserer VMs, allerdings liegen sie auf dem selben Gerät. Um die VMs auf ein anderes Gerät, zum Beispiel ein NAS, zu Sichern müssen Sie zunächst dessen Datenspeicher mounten. Bei einem Synology NAS erstellen Sie einen neuen Gemeinsamen Ordner und passen in der Systemsteuerung unter Bearbeiten die NFS-Berechtigung an. Dazu tragen Sie den Hostnamen oder die IP Ihres ESX ein und erlauben das Lesen- und Schreiben.


In der Weboberfläche des ESX finden Sie unter Speicher die Option Neuer Datenspeicher. Wählen Sie bei Erstellungstyp „NFS-Datenspeicher mounten“. Geben Sie der Freigabe möglichst den selben Namen wie für den gemeinsamen Ordner auf dem NAS, damit vermeidet man später Verwirrung. Bei NFS-Server geben Sie die IP ihres NAS ein und bei NFS-Freigabe den Pfad zu dem gemeinsamen Ordner, zum Beispiel „/volume1/ghettoVCB-test“. Im Skript muss nun noch der Pfad „VM_BACKUP_VOLUME“ angepasst werden.

Fazit

Einen Preis für Benutzerfreundlichkeit gewinnt das ghettoVCB Skript wahrscheinlich nicht. Dafür ist es aber kostenlos und erfüllt seinen Zweck. Außerdem ist es sehr anpassbar und der Restore einer Sicherung geht sehr schnell. Wer bei VMs also auf Nummer Sicher gehen will hat immer ein paar ghettoVCB Sicherungen in der Hinterhand. Ein weiterer Vorteil ist das man die VMs praktisch transportabel sind, Sie können die gesicherten Dateien nutzen um die VM auf einem anderen ESX wieder herzustellen.
Haben Sie Fragen oder benötigen Unterstützung? Sprechen Sie uns an!
Oder Besuchen Sie unseren Blog für weitere interessante Artikel.