Ein Blog über Code, Hardware und Co

Technik und Hardware, NAS, Server und Co

Tutorial: ESXi-Host sichern

Zuletzt aktualisiert am 14. Januar 2023.

Wie du die Konfiguration deines ESXi-Hosts sicherst.

ESXi ist ein ausgereifter Hypervisor, der sich sowohl im privaten, als auch im kommerziellen Umfeld einer weiten Verbreitung erfreut.
Kein Wunder, ist die Installation eines Hosts doch in wenigen Minuten erledigt.
Trotzdem darf man das Backup der Systemkonfiguration nicht vergessen, um ein böses Erwachen zu vermeiden.

Situation: Der Strom fällt aus, eine Ransomware schlägt zu, Hardwaredefekt. Es gibt zahlreiche Ursachen, die zu einem plötzlichen Ausfall eines ESXi-Hosts führen und zu einem Verlust der Konfiguration führen können. Während der Host selbst schnell wieder aufgesetzt ist, kann das Wiederaufsetzen der Konfiguration zum Suchen der Nadel im Heuhaufen werden – es sei denn, man ist vorbereitet.

Was ist eigentlich ESXi?
ESXi ist ein Hypervisor, der zum Hosten virtueller Maschinen verwendet wird. Es handelt sich um eine Bare-Metal-Software, d. h. sie läuft direkt auf der Hardware, ohne weitere Software oder Betriebssystem.

ESXi lässt sich über eine CD-ROM, einen USB-Stick oder einen Netzwerkadapter auf den meisten auf dem Markt erhältlichen Hardware installieren und über eine Weboberfläche konfigurieren.

Welche Möglichkeiten, einen ESXi-Host zu sichern gibt es?

Variante 1: Backup über vCLI (vSphere CLI)

Update 2022: Seit ESXi 7 ist vCLI im End of Life Status. Ab hier sollte das Replacement "exscli" genutzt werden. 

VMWare bietet mit vCLI ein klasse Tool, das die Konfiguration einen ESXi.-Hosts ermöglicht. Unter anderem ist damit auch ein bequemes Backup der Konfiguration möglich.

Schritt 1: vCLI herunterladen und installieren

Zunächst laden wir uns das Tool von der Herstellerseite herunter (https://developer.vmware.com/web/tool/7.0/esxcli).
Nach der Installation steht uns vCLI bzw. esxcli in der Konsole zur Verfügung.

Schritt 2: Konsole öffnen und Backup ausführen

Wir können nun ganz einfach im Betriebssystem die Konsole öffnen, zur exscli wechseln und mit dem folgenden Kommando einen beliebigen ESXi-Host bzw. dessen Konfiguration sichern:

vicfg-cfgbackup.pl -server "esxi-host" -s "lokaler/pfad"

Für die Variablen “esxi-host” muss der entsprechende Host angegeben werden. Für “lokaler/pfad” wird der Pfad auf deinem lokalen Rechner angegeben, unter dem das Backup gespeichert werden soll.

VorteileNachteile
– Einfache Nutzung– Bei der Wiederherstellung muss das gleiche Tool verwendet werden (vCLI bzw. vicfg-cfgbackup)
– Backup wird als tar-Archiv bereitgestellt– Bei der Wiederherstellung muss der Host zunächst mit der selben ESXi-Version (selbes Patchlevel!) installiert werden – auch die Hardware des Hoszts muss identisch sein
– Backup wird direkt verschlüsselt zum Client übertragen– keine Automatisierung des Backups
– Verfügbar für Linux und Windows
Tabelle 1: Vor- und Nachteile des Backups einer EXSi-Hostkonfiguration mittels vCLI.

Erklärung im Video:

https://youtube.com/watch?v=DPlVSlhfb-0

Variante 2: Backup direkt über die ESXi-Shell (KVM oder SSH)

Diese Variante ist mit Bordmitteln des ESXi-Hosts möglich und zugleich automatisierbar. Sie ist sowohl über den direkten Anschluss einer Tastatur und Maus (KVM) oder aber über SSH möglich.

Schritt 1: Über SSH mit dem ESXi-Host verbinden
Wenn du mittels KVM verbunden bist oder direkt vor dem Host sitzt, musst du dich natürlich nicht mittels SSH verbinden. Ansonsten musst du zunächst den SSH Zugang auf deinem ESXi-Host aktivieren und dich dann per SSH mit dem Host verbinden:

ssh username@host

Schritt 2: Backup durchführen
Dann musst du auf der Konsole mit folgendem Befehl das Backup ausführen:

/bin/firmwareConfig.sh --backup /tmp/

Ganz am Ende musst du (in diesem Fall “/tmp/” angeben, wo das Backup (lokal auf dem Host) abgelegt werden soll.

Schritt 3: Backup an gewünschtes Ziel kopieren

Zu guter Letzt wird das Backup dann z.B. mittels SCP an ein gewünschtes Ziel transferiert. Fertig.

VorteileNachteile
– Einfache Nutzung– Backup liegt auf dem Host und muss manuell kopiert werden
– Komplette Automatisierung möglich– Bei SSH-Variante: SSH-Schnittstelle muss offen sein (potentielles Sicherheitsrisiko)
– Mit Bordmitteln möglich
Tabelle 2: Vor- und Nachteile des Backups eines EXSi-Hosts über die EXSi-Shell.

Variante 3: Kopie des USB-Sticks (Sofern per USB-Stick installiert)

Sofern der ESXi-Host auf einem USB-Stick läuft (im privaten Umfeld eine gerne genutzte Konfiguration), so kann der dieser Stick selbstverständlich einfach 1:1 kopiert und an einem sicheren Ort verwahrt werden. So werden auch nicht nur die Konfiguration-Files gesichert, sondern gleich die ganze ESXi-Instanz (natürlich ohne die virtuellen Maschinen) gesichert und ist im Falle eines Falles mit dem kopierten USB-Stick direkt wieder einsetzbar.

VorteileNachteile
– Backup_Stick ist direkt wieder einsetzbar, es wird nicht nur die Konfiguration gesichert– Kein automatisiertes Backup
– Einfache Durchführung– physischer Stick, der irgendwo liegen muss
Tabelle 3: Vor- und Nachteile des Backups eines EXSi-Hosts durch die 1:! Kopie des Start-USB-Sticks.

Automatisches Backup des ESXi-Hosts

Für ein automatisches Backup eines ESXi-Hosts bzw. dessen Konfiguration eignet sich in meinen Augen optimal die SSH-Variante, die man problemlos über ein entsprechendes Shell-Skript durchführen kann.

Das geht sowohl “von außen”, als auch “von innen”.

Von Außen:
Das Backup wird von einem Client von Außerhalb initiiert und auf diesen kopiert.

Der Ablauf sieht wie folgt aus:

  • Per SSH mit dem ESXi-Host verbinden
  • Backup-Script oder Kommando (siehe oben) ausführen
  • Lokales Backupfile an Bestimmungsort kopieren (z:B. per SFTP)

Von “Innen”:
Das Backup wird direkt auf dem ESXi-Host getrigger und angefertigt. Es wird dann vom Host auf ein beliebiges Speichermedium oder einen anderen Server kopiert. Der Vorteil ist, dass hierfür kein SSH-Zugang geöffnet sein muss.

Der Ablauf sieht wie folgt aus:

  1. Backupskript erstellen.
    Zum Beispiel als Shellskript. Das Backupskript enthält den Befehl zum Erstellen des Backupfiles (siehe oben) sowie den Prozess des Kopierens des erzeugten lokalen Files an den gewünschten Zielort (z.B: über SFTP).
  2. Das Backupskript tragen wir in die Crontab des ESXi-Hosts ein und lassen es im gewünschten Turnus durchführen.

Achtung: Es ist durchaus sinnvoll das eigene Backupskript in diesem Fall mit zu sichern, da es im Falle eines Neuaufsetzens des Hosts und des Einspielens einer gesicherten Konfiguration natürlich NICHT mit gesichert bzw. eingespielt wird.

Letztlich muss man sich natürlich auch fragen, wie oft man die Konfiguration eines ESXi-Hosts ändert und ob ein regelmäßiges bzw. automatisiertes Backup notwendig ist, oder ob ein manuelles Backup (z.B. nach der Einrichtung und vor Updates) nicht ggf. ausreichend ist.

Restore: Wiederherstellung eines Backups

Ein Backup ist nichts wert, wenn man nicht weiß, wie man es wiederherstellen kann 😉
Natürlich sollte das nicht so oft vorkommen, aber im Falle eines Falles, wenn du z.B: deinen ESXi-Host neu aufgesetzt hast, kannst du die Einstellungen über die ESXi-Shell mit folgendem Befehl wiederherstellen:

/bin/firmwareConfig.sh --restore /tmp/backupfile.tgz

Das jeweilige Backupfile musst du natürlich zunächst von der Backuplocation in den entsprechenden Pfad kopieren.

Schreibe eine Antwort