ESXi-Backup: Einstellungen sichern mit vicfg-cfgbackup und PowerCLI


    Tags: ,

    PowerCLI, vSphere CLIWä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

    Besonders ratsam ist dieses Vorgehen dann, wenn der Hypervisor von einem USB-Stick startet. Geht dieser verloren oder wird er beschädigt, dann ist auch die Konfiguration dahin. Sie enthält neben den Unix-typischen Dateien im /etc-Verzeichnis alle Einstellungen zu den verwendeten Datastores, virtuellen Netzwerken oder zum automatischen Start von VMs, sowie Passwörter und den eingegebenen Lizenzschlüssel.

    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-cfgbackup mit 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.

    Die Wiederherstellung einer ESXi-Konfiguration ist nur im Maintenance Mode möglich und bewirkt einen Reboot des Hosts.

    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.

    Der Restore einer ESXi-Konfiguration mit PowerCLI erfordert, dass der Host explizit in den Wartungsmodus geschickt wird.

    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 mit Set-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 Duffy verwenden, das eine grafische Oberfläche für die beiden benötigten Cmdlets bereitstellt.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links

    5 Kommentare

    Danke für die Anleitung.
    Bei mir gibt es folgende Probleme:
    Bei der Eingabe vicfg-cfgbackup.pl .....
    geht immer das Loginfenster vom vSphere Client auf und nix passiert, keine Sicherung möglich. (Alles unter Win 7 x64)

    beim Aufruf ohne installierten bekomme ich die Meldung:
    Error connecting to server at 'https://localhost/sdk/webService': Perhaps host is not a vCenter or ESX server

    Bis jetzt habe ich keine Lösung.
    Vielleicht weiß hier jemand Rat, danke im voraus...

    Host--> Konfiguration-->Dienste-->Eigeschaften-->ESXi-Shell starten

    unter XP bekomme ich folgende Meldung:
    Server version unavailable at 'https://localhost:443/sdk/vimService.wsdl' at C:/Program Files/VMware/VMware vSphere CLI/Perl/lib/VMware/VICommon.pm line 545, line 2.

    Mich würde gerne interessieren, was passiert wenn ich eine Konfiguration auf zwei ESX Hosts wiederherstelle?
    Natürlich würde ich entsprechend die IP-Adresse sowie den Hostnamen abändern. Gibt es in ESX bzw. Linux auch sowas wie SSID unter Windows? Kann hier etwas passieren?
    Ich würde mir das Konfigurieren, der iSCSI Ports usw. ersparen.

    Bekomme ein
    Restore failed: A general system error occurred: Internal error

    Wenn ich den Backup Befehl ausführe. (Wundert mich, weil da auch "Restore" steht)

    Liegt das möglicherweise daran, dass die HDD defekt ist?
    Der ESXi läuft bei mir mit dem Hinweis, dass der Datastore1 nicht mehr verbunden ist. Da liegt in dem Sinne aber das Root-Dateisystem drauf.