VMware ESX(i)-Maschinen mit GhettoVCB sichern

Wenn man virtuelle Maschinen mit VMware ESXi  betreibt, kann es sein, dass man irgendwann vor der Frage steht, wie man die VMs möglichst im laufenden Betrieb und kostengünstig weggesichert bekommt. Für Abhilfe sorgen die Schnappschussfunktion von VMware ESXi und ein Shellscript namens ghettoVCB.

Vorbemerkung:

Für diesen Guide setze ich einige VMware- und Linux-Kenntnisse voraus. Per SSH kann man auf einem VMware ESXi System einiges kaputt machen. Daher die ausdrückliche Warnung: Geht aufmerksam und vorsichtig bei Änderungen an den VMware-Konfigurationen vor!

Ich beziehe mich hier außerdem ausdrücklich nur auf VMware ESXi 5.0 und 5.1. Vor allem im Unterbau hat sich im Laufe der Zeit bei VMware einiges geändert, daher der Fokus auf die beiden aktuellen Versionen.

SSH-Zugriff erlangen:

SSH einschaltenDer Großteil der Konfiguration findet per SSH statt. Daher benötigt man natürlich erst einmal SSH-Zugriff auf den VMware ESXi Host.

Um SSH-Zugriff auf eine VMware ESXi zu bekommen, muss man den entsprechenden Dienst über den VMware vSphere Client aktivieren. Den Eintrag findet man in der Konfiguration des VMware Host unter „Sicherheitsprofil“. Dort kann man die Start- und Stop-Optionen der verschiedenen Dienste steuern und Firewallregeln verwalten.

GhettoVCB herunterladen und konfigurieren:

DatenspeicherDas Script GhettoVCB ist für das Verwalten der Sicherungen, das Erstellen der Snapshots und das Wegkopieren der virtuellen Maschinen zuständig. Es ist das Herzstück der Sicherung und muss zu allererst irgendwie auf den VMware Host gebracht werden.

  • Die aktuelle Version von GhettoVCB gibt es bei Github.
  • Eine ausführliche Doku findet sich bei VMware.

Am einfachsten lassen sich Dateien über den VMware vSphere Client hochladen:

Konfiguration des Host -> Speicher -> Entsprechenden Datenspeicher durchsuchen.

Alternativ kann man die Datei auch per SCP oder WGET auf den Server laden.

Nach dem Upload findet sich die Datei per SSH auf dem VMware-Host irgendwo unterhalb von:

/vmfs/volumes/

Die ghettoVCB.sh muss ausführbar gemacht werden, also:

chmod +x ghettoVCB.sh

Wenn man die Datei mit ./ghettoVCB.sh ausführt, bekommt man eine erste Befehlsübersicht. Die Datei kann mit vi bearbeitet werden. Hier steht auch die wesentliche Konfiguration (zum Beispiel Zielpfad, Mailserver, Exportformat, usw.). Weitere Informationen hierzu lassen sich in der Doku nachlesen.

Sobald die ghettoVCB.sh je nach Bedarf konfiguriert worden ist, kann die Sicherung im Grunde schon durchgeführt werden. Um eine sinnvolle, regelmäßige Sicherung durchführen zu können, werden allerdings noch einige Dinge benötigt.

Konfiguration eines Cronjobs:

Um ghettoVCB zeitgesteuert ausführen zu können, wird ein Cronjob benötigt. Die Crontab von root findet sich bei VMware 5.x hier:

/var/spool/cron/crontabs/root

Die Crontab kann mit vi bearbeitet werden. Hier gilt das übliche Format für Crontabs. Zu beachten ist, dass in der Crontab immer vollständige Pfade angegeben werden müssen. Wenn ich also meine Datensicherung täglich um 0:00 Uhr ausführen möchte, erstelle ich zum Beispiel folgenden Eintrag in der Crontab:

0 0 * * * /vmfs/volumes/ghettoVCB.sh -f /vmfs/volumes/vm_liste.txt

Nachdem wir die Crontab bearbeitet haben, können wir sie speichern und schließen. Da die Datei hier von Haus aus schreibgeschützt ist, müssen wir das Überschreiben in vi mit :wq! erzwingen.

Um die neue Crontab zu übernehmen, muss der Cron-Dienst einmal neugestartet werden. Das geht am besten mit folgenden zwei Befehlen:

/bin/kill $(cat /var/run/crond.pid)
/usr/lib/vmware/busybox/bin/busybox crond

Cronjob rebootsicher machen:

Die meisten Änderungen an den VMware ESXi Konfigurationen werden bei einem Neustart wieder zurückgesetzt. Das lässt sich jedoch umgehen, indem man die Einstellungen bei jedem Reboot neu schreiben lässt.

Dazu muss die Datei /etc/rc.local/local.sh bearbeitet werden. Am Ende der Datei vor Exit 0 fügt ihr im Grunde lediglich eure Änderung an der Crontab und den Neustart des Cronjobs hinzu:

/bin/echo "0  0  *  *  *  /vmfs/volumes//ghettoVCB.sh -f /vmfs/volumes//vm_liste.txt"
/bin/kill $(cat /var/run/crond.pid)
/usr/lib/vmware/busybox/bin/busybox crond

Port 25 in der Firewall aufmachen:

Falls ihr euch die Logs von GhettoVCB per Mail zuschicken möchtet, kann es sein, dass euch die Firewall der VMware ESXi im Weg steht. Die Firewall ist nämlich auch bei ausgehenden Verbindungen sehr restriktiv.

In der VMware Knowledge Base gibt es eine ausführliche Erläuterung, wie man eigene Firewallregeln definiert. Um ausgehende SMTP-Verbindungen auf Port 25 zuzulassen, muss dafür folgende Datei bearbeitet werden:

/etc/vmware/firewall/service.xml

Hier müsst ihr am Ende der Datei zwischen dem letzten schließenden </service> und </ConfigRoot> Tag folgenden Eintrag erstellen:

 
  smtp
 
    outbound
    tcp
    dst
    25
 
  true
  false

Quelle(n):

Bei diesem Guide habe ich mich ganz stark an der Anleitung von Stor IT Back orientiert.

Weitere Linkempfehlungen zu dem Thema sind:

Schreibe einen Kommentar

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