Während sich der Hypervisor nach einem Server-Ausfall relativ einfach installieren lässt und die virtuellen Maschinen normalerweise ohnehin auf einem separaten Storage liegen (und regelmäßig gesichert werden sollten), kann die manuelle Wiederherstellung einer verloren gegangenen Host-Konfiguration einigen Aufwand verursachen. Über vSphere CLI zw. über PowerCLI lassen sich die Einstellungen sichern und wiederherstellen.
VMware bietet seit vSphere 5 die Möglichkeit, ESXi-Hosts zustandslos zu betreiben, indem sie über PXE von einem Image über das Netz booten und die Konfiguration ebenfalls vom Server beziehen. Dieses Feature nennt sich Auto Deploy und ist der Edition Enterprise Plus vorenthalten. Kleinere Ausführungen sowie ESXi Free erlauben jedoch keine zentrale Verwaltung der Host-Konfiguration, so dass diese an die einzelnen Maschinen gebunden ist. Entsprechend empfiehlt es sich, die Einstellungen zu sichern.
Zahlreiche Informationen in der Host-Konfiguration
Die meisten Anleitungen von VMware empfehlen die Verwendung von vicfg-cfgbackup. Es handelt sich dabei um ein Dienstprogramm, das zum Lieferumfang von vSphere CLI gehört. Es umfasst eine Sammlung von Perl-Scripts, mit denen sich viele Administrationsaufgaben remote erledigen lassen. Sie können sowohl einzelne Hosts als auch einen vCenter-Server ansprechen.
Der Vorteil der Perl-Implementierung besteht darin, dass sie recht einfach auf mehreren Plattformen nutzbar ist. VMware bietet Installer für Windows und Linux an. Der Download für Windows enthält den Perl-Interpreter von ActiveState, so dass die einzelnen Scripts nach der Installation des gesamten Pakets bereits mit perl.exe verknüpft sind und sich durch Eingabe ihres Namens direkt starten lassen.
Backup mit vicfg-cfgbackup
Die Sicherung einer ESXi-Konfiguration erfolgt mit einem Aufruf nach folgendem Muster:
vicfg-cfgbackup.pl --server 192.168.0.21 -s h:\ESXi-Backup\ESXi-51-21.tgz
Dieses Beispiel sichert durch die Verwendung des Schalters -s (Kurzform für --save) die Konfiguration des Hosts mit der IP-Adresse 192.168.0.21 in die Datei ESXi-51-21.tgz, also in ein mit ZIP komprimiertes TAR-Archiv. Der Aufruf in dieser Form fordert den User zur Eingabe von Benutzername und Passwort auf. Alternative kann man die Anmeldedaten über die Parameter --username und --password mitgeben.
Restore der Einstellungen mit vSphere CLI
Für die Wiederherstellung einer Konfiguration verwendet man vicfg-cfgbackupmit dem Parameter -l (Kurzform für --load):
vicfg-cfgbackup.pl --server 192.168.0.21 -l h:\ESXi-Backup\ESXi-51-21.tgz
Zu bedenken ist bei der Restaurierung von Einstellungen, dass dieser Vorgang den Host in den Maintenance Mode versetzt, in dem die Ausführung aller VMs angehalten wird. Anschließend startet der Server neu.
Backup mit Get-VMHostFirmware
Die für Windows-Clients adäquatere Implementierung der Kommandozeilen-Tools ist PowerCLI. Sie umfasst statt der Perl-Scripts eine Vielzahl von Cmdlets für PowerShell, so dass die Installation eines eigenen Interpreters entfallen kann. Leider weichen die Namen der Programme zwischen den beiden Paketen teilweise stark voneinander ab, so dass man beim Umstieg oft nach den zuständigen Cmdlets suchen muss.
Im Fall von vicfg-cfgbackup.pl heißt der PowerShell-Gegenspieler Get-VMHostFirmware. Die Sicherung der Konfiguration erfolgt unter PowerCLI in zwei Schritten, weil erst in einem eigenen Befehl die Verbindung zum betreffenden Server aufgebaut werden muss:
Connect-VIServer 192.168.0.21
Get-VMHostFirmware -BackupConfiguration -DestinationPath h:\ESXi-Backup
Ein weiterer Unterschied zu vicfg-cfgbackup.pl besteht darin, dass kein Name für die Datei erforderlich ist, in die Get-VMHostFirmware die Einstellungen sichert, weil das Cmdlet diesen selbst generiert. Es reicht somit die Angabe des Zielverzeichnisses.
Wiederherstellung mit Set-VMHostFirmware
Die Wiederherstellung einer ESXi-Konfiguration erfolgt nicht wie bei vSphere CLI über das Kommando für das Backup, sondern der PowerShell-Konvention gemäß über Set-VMHostFirmware. Der Aufruf sieht für die im obigen Beispiel erstellte Sicherung in der einfachsten Form so aus:
Set-VMHostFirmware -Restore -SourcePath h:\ESXi-Backup
Auch hier muss erst eine Verbindung zum Host mit Connect-VIServer aufgebaut werden. Im Unterschied zu vicfg-cfgbackup.pl versetzt das Cmdlet den Server nicht automatisch in den Wartungsmodus, so dass man dies vorher explizit mit Hilfe von
Set-VMHost -State 'Maintenance'
machen muss. Nach dem Upload der Konfiguration startet der Server neu.
Auch wenn sich das Vorgehen und die Kommandos von vSphere CLI und PowerCLI unterscheiden, so sind zumindest die Formate der gesicherten Konfigurationen identisch. Daher lässt sich beispielsweise ein Backup, das mitSet-VMHostFirmware erstellt wurde, durch vicfg-cfgbackup.pl wieder zurückspielen.
GUI-Option
Wer für die Sicherung der ESXi-Konfiguration lieber ein GUI-Tool nutzen würde, wird vom vSphere Client jedoch enttäuscht. Er kann diese Aufgabe nicht übernehmen. Als Ersatz kann man das PowerShell-Script von Sean Duffyverwenden, das eine grafische Oberfläche für die beiden benötigten Cmdlets bereitstellt