Sichern und Wiederherstellen der VMware ESXi Host-Konfiguration: Eine Schritt-für-Schritt-Anleitung
On Dezember 3, 2021 by adminBackup ist eine der wichtigsten Maßnahmen für den kontinuierlichen Betrieb jeder IT-Infrastruktur. Die Ausführung von Servern als virtuelle Maschinen (VMs) auf ESXi-Hosts in vSphere bietet Ihnen größere Vorteile bei der Sicherung von VM-Daten. Mit dem Backup auf Host-Ebene können Sie hilfreiche Funktionen wie agentenloses Backup, komplettes VM-Backup (VM-Daten + VM-Konfiguration), Snapshots zur Erstellung von Backups laufender VMs und geringe Serverlast nutzen. Gesunde ESXi-Hosts sind ein Schlüssel zum Erfolg beim Betrieb virtueller Maschinen. Aus diesem Grund ist es besser, die ESXi-Konfiguration zu sichern. Wenn mit einem ESXi-Host etwas schief läuft, kann seine Konfiguration in wenigen Minuten wiederhergestellt werden, ohne dass man viel Zeit aufwenden muss, um einen ESXi-Server von Grund auf neu zu konfigurieren. Der heutige Blog-Beitrag befasst sich mit der ESXi-Backup-Konfiguration und untersucht, wie man ESXi-Hosts mit verschiedenen Methoden sichert.
Verwendung der ESXi-Befehlszeile zur Sicherung von ESXi-Hosts
Die Verwendung der ESXi-Befehlszeile ist die kostengünstigste Methode zur Sicherung der ESXi-Host-Konfiguration. Sie brauchen keine zusätzliche Software zu installieren, um die ESXi-Befehlszeile zu verwenden. Sie müssen die ESXi-Shell und den SSH-Remotezugriff auf einen ESXi-Host aktivieren. Dieser Vorgang wird in dem Blogbeitrag über ESXCLI erläutert. Sobald Sie sich über SSH mit Ihrem ESXi-Host verbunden haben, können Sie die Befehle ausführen.
Die ESXi-Konfiguration wird jede Stunde automatisch in der Datei /bootblank/state.tgz gespeichert. Aus diesem Grund sollten Sie sicherstellen, dass die aktuelle ESXi-Konfiguration gerade jetzt in die ESXi-Konfigurationsdateien geschrieben wird, um sicherzustellen, dass alle seit der letzten automatischen Speicherung an der ESXi-Konfiguration vorgenommenen Änderungen gespeichert werden:
vim-cmd hostsvc/firmware/sync_config
Sichern Sie die ESXi-Konfiguration:
vim-cmd hostsvc/firmware/backup_config
Als Ergebnis erhalten Sie einen Link zum Download des configBundle.tgz-Archiv vom ESXi-Host herunterzuladen. Sie sollten das Sternchen durch die IP-Adresse Ihres ESXi-Hosts ersetzen. Die Archivdatei, die die Sicherung der ESXi-Konfiguration enthält, wird für einen kurzen Zeitraum (einige Minuten) im Verzeichnis /scratch/downloads gespeichert. Die Scratch-Partition wurde im Blogbeitrag über die Installation von ESXi auf einem USB-Flash-Laufwerk erwähnt.
Die IP-Adresse Ihres ESXi-Hosts kann in der direkten Konsolenschnittstelle von ESXi oder mit dem folgenden Befehl überprüft werden:
esxcli network ip interface ipv4 get
Die IP-Adresse des im aktuellen Beispiel verwendeten ESXi-Hosts lautet 192.168.101.208.
Laden Sie das ESXi-Backup-Archiv so bald wie möglich herunter und bewahren Sie es an einem sicheren Ort auf.
Wie man das Backup der ESXi-Konfiguration in der ESXi-Befehlszeile automatisiert
Der Vorteil einer Befehlszeilenschnittstelle ist die Möglichkeit, Aufgaben zu automatisieren, die sie bietet; das Backup der ESXi-Konfiguration ist keine Ausnahme. Schauen wir uns an, wie man das macht:
1. Erstellen Sie ein Verzeichnis zum Speichern von Sicherungsdateien auf Ihrem ESXi-Datenspeicher.
mkdir /vmfs/volumes/datastore1/ESXi_backup
2. Erstellen Sie ein Skript zum Sichern der ESXi-Konfiguration:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
3. Fügen Sie dem Skript die folgenden Zeilen hinzu:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +’%Y%m%d_%H%M%S‘).tgz \;
4. Speichern Sie die Datei und beenden Sie vi:
:wq
Hinweis: Der Einfachheit halber können Sie auch den Namen des ESXi-Hosts oder die IP-Adresse in den Namen der Sicherungsdatei aufnehmen. Dies hilft Ihnen, Verwechslungen zu vermeiden, wenn Sie mehrere ESXi-Hosts verwenden.
5. Machen Sie das Skript ausführbar:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
6. Gehen Sie in das Verzeichnis, in dem sich das Skript befindet:
cd /vmfs/volumes/datastore1/ESXi_backup/
7. Führen Sie das Skript aus:
./esxi_backup.sh
8. Überprüfen Sie, ob eine Sicherungsdatei erstellt wurde:
ls -al
9. Stellen Sie sicher, dass das Skript für die Sicherung des ESXi-Hosts nach Plan (automatisch) ausgeführt wird. Bearbeiten Sie zu diesem Zweck die Scheduler-Konfiguration:
vi /var/spool/cron/crontabs/root
10. Fügen Sie die folgende Zeichenfolge hinzu, um jeden Tag um 02:10 Uhr ein Backup der ESXi-Konfiguration durchzuführen.
10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
11. Speichern Sie die Änderungen in der Datei. Um Änderungen in der schreibgeschützten Datei zu speichern, geben Sie ein:
:wq!
Alternativ können Sie die Dateiberechtigungen vor dem Bearbeiten der Datei ändern:
chmod +w /var/spool/cron/crontabs/root
Danach wird die ESXi-Konfiguration automatisch jede Nacht um 02:10 Uhr in der Datei ESXi_config_bakup_date_time.tgz
Wiederherstellung der ESXi-Konfiguration über die ESXi-Befehlszeile
Auf dem Rechner, auf dem Sie die ESXi-Konfiguration wiederherstellen möchten, sollte ESXi mit der gleichen Version und Build-Nummer installiert sein. Diese Regel gilt für alle in diesem Blogbeitrag behandelten Methoden zur Wiederherstellung der ESXi-Konfiguration. Wenn Sie die ESXi-Konfiguration auf einem ESXi-Host wiederherstellen möchten, der von Grund auf neu installiert wurde (eindeutig installiert), müssen Sie die IP-Adresse für die Netzwerkschnittstelle festlegen, die für das ESXi-Verwaltungsnetzwerk verwendet wird, und den SSH-Zugang aktivieren. Die anfängliche ESXi-Konfiguration wird in diesem Blogbeitrag erläutert. Die UUID muss sowohl auf dem ESXi-Server, von dem ein Backup erstellt wurde, als auch auf dem ESXi-Server, auf dem die Konfiguration wiederhergestellt werden soll, identisch sein. Lesen Sie weiter unten in diesem Abschnitt, was zu tun ist, wenn die UUID-Werte unterschiedlich sind.
Wenn Sie Ihren frisch installierten ESXi-Host für die Wiederherstellung der ESXi-Konfiguration aus einem Backup vorbereitet haben, verbinden Sie sich über SSH mit dem ESXi-Host und versetzen Sie den Host in den Wartungsmodus.
esxcli system maintenanceMode set -enable yes
oder
vim-cmd hostsvc/maintenance_mode_enter
Kopieren Sie das Archiv, das die Sicherung der ESXi-Konfiguration enthält, mit einem SCP-Client, zum Beispiel WinSCP, in ein Verzeichnis auf dem ESXi-Host. Kopieren wir das Archiv configBundle-xxxx.tgz von einem lokalen Rechner in das Verzeichnis /tmp/ auf dem Ziel-ESXi-Server.
Benennen Sie die Datei configBundle-xxxx.tgz in configBundle.tgz um, bevor Sie einen Befehl zur Wiederherstellung der ESXi-Konfiguration eingeben. Andernfalls erhalten Sie eine Fehlermeldung: „File /tmp/configBundle.tgz was not found“.
Sie können die Datei in der ESXi-Shell umbenennen, mit der Sie sich über SSH verbunden haben:
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz
Wiederherstellung der ESXi-Konfiguration:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Nach dem Ausführen dieses Befehls wird ein ESXi-Host automatisch neu gestartet.
Nach dem Neustart des ESXi-Servers sollten Sie den Wartungsmodus beenden, danach können Sie den Host wie gewohnt verwenden.
esxcli system maintenanceMode set -enable no
oder
vim-cmd hostsvc/maintenance_mode_exit
Wie ändert man die UUID, um die ESXi-Konfiguration wiederherzustellen
Die UUID des ESXi-Servers kann in der ESXi-Befehlszeilenschnittstelle mit dem Befehl überprüft werden:
esxcfg-info -u
Der UUID-Wert des gesicherten ESXi-Hosts ist in der Manifest.txt-Datei im Sicherungsarchiv configBundle.tgz, das Sie mit den oben erläuterten Befehlen erstellt haben.
Sie können die UUID des ESXi-Servers nicht ändern, da die Kennung hardwareabhängig generiert wird. Sie können jedoch die ESXi-Konfiguration des ESXi-Hosts A auf dem ESXi-Host B wiederherstellen, nachdem Sie die UUID in der Datei „Manifest.txt“ geändert haben, die im ESXi-Konfigurations-Backup-Archiv „configBundle.tgz“ gespeichert ist.
Lassen Sie uns den Algorithmus untersuchen, der verwendet werden kann, um die UUID zu ändern, um die gesicherte Konfiguration auf einem anderen physischen Server anzuwenden. Der Server A ist ein Server, dessen Konfiguration gesichert wird, und der Server B ist ein Server, auf den die Konfiguration angewendet werden muss.
Stufe 1
Prüfen Sie die UUID auf dem ESXi-Host, auf den Sie die gesicherte Konfiguration anwenden möchten (Server B). Dies kann mit mindestens zwei Methoden erfolgen, wobei die zweite Methode auch die Überprüfung der ESXi-Version ermöglicht.
1. Führen Sie esxcfg-info -u
2.1 Sichern Sie die Konfiguration des ESXi-Servers B
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
2.2 Kopieren Sie das Sicherungsarchiv in das temporäre Verzeichnis und gehen Sie zu diesem Verzeichnis
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
2.3 Entpacken Sie die Dateien aus dem Archiv
tar zxvf configBundle.tgz
2.4 Öffnen Sie die Datei Manifest.txt mit vi und überprüfen Sie den UUID-Wert (Sie werden eine separate Zeile mit der UUID sehen). Schreiben Sie die UUID auf.
vi Manifest.txt
In unserem Fall lautet die UUID 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
2.5 Sie können temporäre Dateien im Verzeichnis /tmp/ löschen:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Stufe 2
1. Kopieren Sie das Konfigurations-Backup-Archiv configBundle.tgz des ESXi-Servers A auf den Server B, z. B. in das Verzeichnis /tmp/, und wechseln Sie in dieses Verzeichnis.
2. Extrahieren Sie Dateien aus dem configBundle.tgz archive
tar zxvf configBundle.tgz
3. Öffnen Sie die Datei Manifest.txt mit vi und aktualisieren Sie den UUID-Wert von Server A auf die UUID von Server B.
vi Manifest.txt
In unserem Fall müssen wir 9EA94D56-7E39-96A8-AB45-DF31EF0971EC in 1E9E4D56-B724-DFBE-D19D-4C2D827E0188 ändern.
Speichern Sie die Datei und beenden Sie den Texteditor :wq
4. Benennen Sie die Quelldatei configBundle.tgz-Datei beispielsweise in configBundle1.tgz um (wenn der Name Ihrer ESXi-Konfigurationssicherungsdatei von configBundle.tgz abweicht, können Sie diesen Schritt überspringen).
mv configBundle.tgz configBundle1.tgz
5. Tar Manifest.txt, state.tgz und jumpstrt.gz Dateien in ein neues configBundle.tgz Archiv:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
6. Versetzen Sie den ESXi-Host in den Wartungsmodus und stellen Sie die Konfiguration wieder her
esxcli system maintenanceMode set -enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Sichern von ESXi-Hosts mit vSphere CLI
Eine weitere von VMware bereitgestellte Befehlszeilenschnittstelle zur Verwaltung von ESXi-Hosts ist vSphere CLI (nicht zu verwechseln mit VMware PowerCLI). Sie sollten vSphere CLI auf einem Rechner mit Linux oder Windows installieren, um ESXi-Hosts per Fernzugriff zu verwalten. Für die Installation von vSphere CLI ist Perl erforderlich. Der Vorteil der Verwendung von vSphere CLI ist die Möglichkeit, die Bequemlichkeit und die Leistungsfähigkeit von bash in Linux zu nutzen. In den heutigen Beispielen wird Ubuntu Linux verwendet.
Installation und Konfiguration von vCLI
Laden Sie vSphere CLI von der VMware-Website herunter.
Gehen Sie zu dem Verzeichnis, in dem sich die heruntergeladene Datei befindet, und extrahieren Sie die Dateien aus dem Archiv.
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
Installieren Sie die erforderlichen Pakete:
Die offizielle Empfehlung von VMware lautet, diese Pakete zu installieren:
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
Gehen Sie in das Verzeichnis, in dem sich die extrahierten Dateien befinden und führen Sie das Installationsprogramm aus:
./vmware-install.pl
Lesen und akzeptieren Sie die Lizenzvereinbarung. Wenn das Installationsprogramm Sie auffordert, einige erforderliche Module zu installieren, geben Sie y ein und installieren Sie die Module.
In unserem Fall müssen einige Module manuell installiert werden. Sie können über die interaktive Shell von Perl installiert werden.
Geben Sie die interaktive Shell von Perl ein:
perl -MCPAN -e shell
Starten Sie den Befehl, um das benötigte Perl-Modul zu installieren:
installieren Sie Devel::StackTrace
In ähnlicher Weise installieren Sie andere Module.
Hinweis: In unserem Fall konnte ein Modul nicht in der interaktiven Perl-Shell installiert werden, aber wir können dieses Modul mit dem Befehl in der Ubuntu-Konsole installieren:
apt-get install libcrypt-ssleay-perl
Nach der Installation der Perl-Module führen Sie den VMware vSphere CLI-Installer erneut aus.
Die Installation wurde erfolgreich abgeschlossen und Sie können in diesem Fall den folgenden Bildschirm sehen:
Nun lassen Sie uns versuchen, vSphere CLI zu verwenden und einen Befehl in die Linux-Konsole einzugeben, um eine Liste der Geräte des ESXi-Servers anzuzeigen (192.168.101.208 ist die IP-Adresse des ESXi-Servers).
esxcli -server 192.168.101.208 storage core device list
Der SHA-1-Thumbprint des Servers ist nicht vertrauenswürdig, und die Verbindung zum ESXi-Host ist fehlgeschlagen. Dies bedeutet, dass Sie den Thumbprint aus Sicherheitsgründen definieren sollten. Versuchen wir es mit einem anderen Befehl:
esxcli -server 192.168.101.208 -thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
Der Benutzername und das Passwort werden in der Konsole im interaktiven Modus abgefragt.
Versuchen Sie, keine Befehle zu verwenden, bei denen Benutzername und Passwort als Klartext eingegeben werden, wie z.B. so:
Dies geschieht aus Sicherheitsgründen. Die ausgeführten Befehle werden in Linux gespeichert, bis Sie den Befehl history -c ausführen, um den Verlauf zu löschen. Wenn Sie den interaktiven Modus und die manuelle Eingabe von Login und Passwort vermeiden wollen, können Sie die ESXi-Sitzung in einer Datei speichern und diese Datei bei der Ausführung von Befehlen verwenden. Das Speichern von Sitzungen ist sicher, im Gegensatz zur Eingabe eines Kennworts als Klartext in den Befehl. Das Speichern von Sitzungen wird weiter unten in diesem Blog-Beitrag erläutert.
Speichern eines Thumbprints für die Verbindung zu ESXi-Hosts
Die Eingabe eines ESXi-Thumbprints für die Ausführung eines Befehls ist nicht bequem. Glücklicherweise ist es möglich, den Thumbprint zu speichern und weitere Befehle mit vSphere CLI auszuführen, ohne einen Thumbprint zu definieren.
Gehen Sie in das Verzeichnis:
cd /usr/lib/vmware-vcli/apps/general/
Sie müssen den Befehl ausführen wie:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint
In unserem speziellen Beispiel lautet der Befehl:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA
Jetzt können Sie Befehle in vSphere CLI ausführen, ohne jedes Mal einen Thumbprint einzugeben.
esxcli -server 192.168.101.208 system maintenanceMode get
Allerdings ist die Notwendigkeit der Eingabe von Login und Passwort nicht verschwunden – Sie müssen immer noch Login/Passwort eingeben. Wie können Sie vSphere CLI so konfigurieren, dass Befehle ausgeführt werden, ohne jedes Mal ein Kennwort einzugeben? Die Antwort auf diese Frage finden Sie in den folgenden Abschnitten.
Verwenden einer Sitzungsdatei für die Verbindung zu ESXi-Hosts
Die Verwendung einer gespeicherten Sitzungsdatei ist eine der Methoden, um die Eingabe eines Benutzernamens und eines Kennworts zu vermeiden, wenn ein Befehl auf einem entfernten ESXi-Host mithilfe von vSphere CLI ausgeführt wird.
Erstellen Sie zunächst ein Verzeichnis zum Speichern von Sicherungsdateien der ESXi-Konfiguration, z. B. /backup/.
mkdir /backup
Gehen Sie zu diesem Verzeichnis:
cd /usr/lib/vmware-vcli/apps/session
Speichern Sie Ihre autorisierte ESXi-Host-Sitzung in dieser Datei, indem Sie ein Perl-Skript mit dem Befehl:
perl save_session.pl -savesessionfile /backup/192-168-101-208session -server 192.168.101.208 -username root -password TestPass_555
Wobei:
-savesessionfile /backup/192-168-101-208session ist der Name der erstellten Sitzungsdatei
-server 192.168.101.208 ist der Name des ESXi-Hosts, dessen Sitzung gespeichert wird (dieser ESXi-Host wird in mehreren Beispielen verwendet)
-Benutzername root ist der Name des Benutzers, der mit dem ESXi-Host verbunden ist
-Passwort TestPass_555 ist das Passwort für den Benutzer, der mit dem ESXi-Host verbunden ist
Nun können Sie Befehle ausführen, ohne ein Passwort einzugeben, aber Sie sollten den Schlüssel -sessionfile (Option) eingeben und den Pfad zur Sitzungsdatei definieren. Zum Beispiel:
esxcli -sessionfile /backup/192-168-101-208session system maintenanceMode get
Verwendung einer Konfigurationsdatei für die Verbindung zu ESXi-Hosts
Die Idee hinter dieser Methode ist es, Anmeldeinformationen in der Konfigurationsdatei als reinen Text zu speichern und auf diese Datei zu verweisen, wenn ESXi-Befehle in vSphere CLI ausgeführt werden. Erstellen Sie zunächst eine Konfigurationsdatei:
vim /backup/vcli-config
Geben Sie die Anmeldedaten in folgendem Format ein:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
Speichern Sie die Datei.
Führen Sie einen Befehl auf einem entfernten ESXi-Server mithilfe von vSphere CLI aus:
esxcli -server 192.168.101.208 -config vcli-config system maintenanceMode get
Da die Anmeldeinformationen als Klartext gespeichert werden, ist diese Methode nicht sicher.
Verwenden eines Anmeldeinformationsspeichers für die Verbindung mit ESXi-Hosts
Ein Anmeldeinformationsspeicher ist die xml-Datei, die sich im Benutzerverzeichnis im vmware-Unterverzeichnis ~/.vmware/credstore/vicredentials.xml befindet. Der Vorteil der Verwendung des Anmeldeinformationsspeichers zum Ausführen von Befehlen auf entfernten ESXi-Hosts besteht darin, dass ein Kennwort nicht im Klartext gespeichert wird, weshalb diese Methode eine höhere Sicherheit bietet.
Um Anmeldeinformationen zum Anmeldeinformationsspeicher hinzuzufügen, führen Sie den Befehl:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -server 192.168.101.208 -username root
Listen Sie die im Anmeldeinformationsspeicher gespeicherten Anmeldeinformationen auf, um sicherzustellen, dass die benötigten Anmeldeinformationen vorhanden sind:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
Führen Sie den Befehl auf dem entfernten ESXi-Host aus, ohne ein Passwort einzugeben, indem Sie den Anmeldeinformationsspeicher verwenden.
# esxcli -server 192.168.101.208 -credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Wenn Sie einen Nicht-Root-Benutzer verwenden, wird die Anmeldeinformationsdatei in /home/user_name/.vmware/credstore/vicredentials.xml
Auf dem Screenshot unten können Sie sehen, wie die Anmeldeinformationen in der Anmeldeinformationsdatei gespeichert werden.
Verwenden von vSphere CLI zum Sichern der ESXi-Hostkonfiguration
Nachdem Sie vSphere CLI auf dem Ubuntu-Linux-Rechner konfiguriert haben, können Sie die Befehle ausführen und die ESXi-Konfiguration sichern.
Gehen Sie zum Verzeichnis /usr/bin/
cd /usr/bin
Jetzt können Sie eine Sicherung der ESXi-Konfiguration erstellen, ohne einen Benutzernamen und ein Kennwort einzugeben, nachdem Sie die Anmeldeinformationen im Anmeldeinformationsspeicher gespeichert haben:
Oder nach dem Speichern einer Sitzung in der Sitzungsdatei:
vicfg-cfgbackup -sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
Hinweis: Die vicfg-Befehle sind veraltet. Es ist besser, ESXCLI-Äquivalente Befehle in der Befehlszeilenschnittstelle zu verwenden, wenn Sie mit ESXi-Hosts arbeiten.
Hinweis: Der Nachteil der Verwendung der Option -sessionfile ist die Zeitüberschreitung von 30 Minuten im Leerlauf nach der Ausführung des letzten Befehls in vSphere CLI. Danach müssen Sie sich erneut authentifizieren und eine Sitzungsdatei erstellen.
Wenn Sie ein Backup der ESXi-Konfiguration erstellen möchten, während Sie im interaktiven Modus ein Passwort eingeben, können Sie den folgenden Befehl ausführen:
vicfg-cfgbackup -server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
Wie Sie die Sicherung der ESXi-Konfiguration automatisieren
Wenn Sie eine dynamisch veränderte Umgebung haben und sich die Konfiguration der ESXi-Hosts häufig ändert, ist eine manuelle Sicherung der ESXi-Hosts möglicherweise nicht sinnvoll. In diesem Fall können Sie die Sicherung der ESXi-Konfiguration automatisieren, indem Sie einen Sicherungsbefehl oder ein Sicherungsskript, das mehrere Befehle enthält, dem Scheduler hinzufügen.
Crontab ist ein Scheduler in Linux. Bearbeiten Sie die Scheduler-Konfiguration in Linux, um den Sicherungsbefehl für die ESXi-Konfiguration regelmäßig und automatisch auszuführen.
crontab -e
Hinweis: Wenn Sie die crontab-Konfiguration zum ersten Mal bearbeiten, sollten Sie den Standard-Texteditor auswählen, der zum Bearbeiten der crontab-Konfiguration verwendet werden muss. In unserem Beispiel verwenden wir /usr/bin/vim.basic für diesen Zweck.
Das Format der crontab-Konfiguration ist das folgende:
Minuten Stunden Tag_des_Monats Monat Tag_der_Woche Befehl
Lassen Sie uns die ESXi-Host-Konfiguration jede Nacht um 03:25 Uhr sichern:
25 03 * * * /usr/bin/vicfg-cfgbackup -server 192.168.101.208 -config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz
Schreiben Sie die Konfiguration des crontab-Schedulers und beenden Sie den Texteditor vim.
:wq
Warten wir auf 03:25 AM, um das Verzeichnis zu prüfen, in dem die ESXi-Backup-Konfigurationsdateien gespeichert werden müssen.
ls -al
Wie Sie auf dem Screenshot unten sehen, wurde die Sicherungsdatei der ESXi-Hostkonfiguration um 03:25 Uhr automatisch erstellt.
Nun wurde die Sicherung der ESXi-Konfiguration automatisch erstellt, was großartig ist, aber es gibt einen Nachteil. Jedes Mal, wenn crontab einen geplanten Befehl zum Erstellen der ESXi-Konfigurationssicherung ausführt, wird die vorherige tgz-Datei durch die neue tgz-Datei überschrieben. Dies kann zu Problemen führen, wenn die gestern erstellte Sicherung mit der korrekten ESXi-Konfiguration durch eine heute erstellte Datei überschrieben wird, die die falsche ESXi-Konfiguration enthält. Der richtige Weg, um ein solches Problem zu vermeiden, ist die Sicherung der ESXi-Konfiguration in verschiedenen Dateien.
Lassen Sie uns ein einfaches Skript erstellen, um die ESXi-Konfiguration jedes Mal als separate Datei mit einem eindeutigen Dateinamen zu speichern, der das Datum und die Uhrzeit der Erstellung der ESXi-Konfigurations-Sicherungsdatei im Namen der Datei enthält. Durch die Erstellung eines Skripts können Sie Befehle für die Sicherung mehrerer ESXi-Hosts hinzufügen, indem Sie ein einziges Skript ausführen.
1. Erstellen Sie die Datei esxi_backup.sh im Verzeichnis /backup/:
vim /backup/esxi_backup.sh
2. Fügen Sie der Datei folgende Zeilen hinzu:
#!/bin/bash
ESXI101_208_BACKUP_NAME=“192-168-101-208-$(date +’%Y%m%d_%H%M%S‘)esxi-cfg.tgz“
vicfg-cfgbackup -server 192.168.101.208 -config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME
3. Schreibe die Änderungen in die Datei und beende den Texteditor vim.
:wq
4. Machen Sie die Datei ausführbar:
chmod +x /backup/esxi_backup.sh
5. Bearbeiten Sie die Scheduler-Konfiguration:
crontab -e
6. Fügen Sie die folgende Zeile hinzu:
50 06 * * * /backup/esxi_backup.sh
Lassen Sie crontab so einstellen, dass das Skript zur Sicherung der ESXi-Konfiguration um 06:50 Uhr ausgeführt wird. Deaktivieren Sie die zuvor hinzugefügte geplante Aufgabe, indem Sie das Zeichen # am Anfang der Zeile hinzufügen.
7. Warten Sie die eingestellte Zeit ab und prüfen Sie dann, ob das ESXi-Konfigurationssicherungsarchiv erstellt wurde.
Dies ist ein einfaches Skript, das die Idee der Automatisierung veranschaulicht. Sie können komplexe Skripte erstellen, um mehrere ESXi-Hosts zu sichern.
Hinweis: Nach jedem ESXi-Neustart oder 30 Minuten Leerlaufzeit wird die ESXi-Sitzung nicht mehr authentifiziert. Beachten Sie diese Funktion, wenn Sie ein Skript für ein automatisiertes ESXi-Backup erstellen.
Wiederherstellung der ESXi-Konfiguration in vSphere CLI
Die Anforderungen für die Wiederherstellung der ESXi-Konfiguration mithilfe von vSphere CLI ähneln den Anforderungen, die für andere Methoden gelten. Um die ESXi-Konfiguration wiederherzustellen, stellen Sie sicher, dass der Fernzugriff über SSH aktiviert und die IP-Adresse des ESXi-Servers bekannt ist (es wird empfohlen, dieselbe IP-Adresse wie die IP-Adresse des gesicherten ESXi-Hosts zu verwenden), und führen Sie dann den Befehl wie folgt aus:
vicfg-cfgbackup -server=ESXi_host_IP_address -username=root -l backup_file
In unserem speziellen Beispiel lautet der Befehl:
vicfg-cfgbackup -server=192.168.101.208 -username=root -l /backup/192-168-101-208-esxi-cfg.tgz
Wenn die UUID des Ziel-ESXi-Hosts, auf dem Sie die Konfiguration wiederherstellen möchten, eine andere UUID hat als die UUID des gesicherten ESXi-Servers (dessen UUID in der Datei „Manifest.txt“ im tgz-Sicherungsarchiv definiert ist), können Sie den Schlüssel -f (force) verwenden, um die UUID außer Kraft zu setzen.
Sie können die UUID des laufenden ESXi-Hosts mit dem Befehl überprüfen, wie Sie sich erinnern:
esxcfg-info -u
Verwenden von Power CLI zum Sichern des ESXi-Hosts
Benutzer, die Windows mögen, können PowerCLI verwenden, bei dem es sich um eine Reihe von PowerShell-Cmdlets zum Sichern der ESXi-Konfiguration handelt. Einige grundlegende PowerCLI-Befehle werden in diesem Blogbeitrag erläutert. Zunächst müssen Sie PowerCLI auf Ihrem Betriebssystem installieren. Der Algorithmus ist der folgende:
1. Starten Sie PowerCLI als Administrator unter Windows.
2. Verbinden Sie sich mit Ihrem ESXi-Server:
Connect-VIServer ESXi_IP_address -user user_name -password your_password
In unserem Fall verwenden wir die Befehle:
Connect-VIServer 192.168.101.208 -user root -password TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath „C:\backup ESXi host“
Wenn Ihre ESXi-Hosts von vCenter Server verwaltet werden, können Sie zuerst eine Verbindung zu vCenter herstellen und dann die ESXi-Konfiguration auf Ihren Hosts in PowerCLI sichern, ohne sich jedes Mal vor dem Sichern der einzelnen Hostkonfigurationen authentifizieren zu müssen.
VIServer verbinden 10.10.10.16
Geben Sie Ihr administratives Login und Passwort für den Zugriff auf vCenter Server ein. Zu diesem Zweck erscheint ein Popup-Fenster.
Sichern Sie die ESXi-Konfiguration jedes Hosts:
Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath „C:\backup ESXi host“
Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath „C:\backup ESXi host“
So stellen Sie die ESXi-Konfiguration in PowerCLI wieder her
Führen Sie VMware PowerCLI als Administrator aus. Verbinden Sie sich mit einem ESXi-Host, auf dem Sie die Konfiguration wiederherstellen möchten (in unserem Beispiel werden wir die Konfiguration auf dem ESXi-Host wiederherstellen, dessen IP-Adresse 192.168.101.208 lautet). Versetzen Sie den Host dann in den Wartungsmodus:
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
Stellen Sie sicher, dass die auf diesem ESXi-Host befindlichen VMs ausgeschaltet oder auf einen anderen ESXi-Host migriert sind, bevor Sie die ESXi-Konfiguration wiederherstellen. Beachten Sie, dass der ESXi-Host nach dem Ausführen eines Befehls zum Wiederherstellen der Konfiguration automatisch neu gestartet wird. Stellen Sie die Konfiguration mit dem Befehl Set-VMHostFirmware restore wieder her:
Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath „C:\backup ESXi host\configBundle-192.168.101.20
8.tgz“ -HostUser root -HostPassword TestPass_555
Die Version, Build-Nummer und UUID eines ESXi-Hosts, auf dem die Konfiguration wiederhergestellt wird, muss mit der Version, Build-Nummer und UUID eines ESXi-Hosts übereinstimmen, dessen Backup Sie zur Wiederherstellung der Konfiguration verwenden. Verwenden Sie den Schlüssel -force im Befehl, um die UUID-Prüfung zu überspringen.
Manuelle Sicherung und Wiederherstellung der ESXi-Konfiguration
Sie sollten auch auf eine Situation vorbereitet sein, in der Sie sich nicht bei Ihrem ESXi-Host anmelden können oder wenn ein ESXi-Host nicht booten kann und Sie die Befehlszeilenschnittstelle nicht verwenden können, um den Befehl zum Sichern oder Wiederherstellen der ESXi-Konfiguration auszuführen. Dies kann aufgrund von Hardwarefehlern oder Softwareproblemen geschehen. In diesem Fall ist es besser zu wissen, wie Sie die ESXi-Konfiguration manuell sichern und wiederherstellen können.
Hinweis: Wie Sie aus der Standard-Crontab-Konfiguration auf einem ESXi-Host wissen, wird das Skript /sbin/auto-backup.sh jede Stunde und beim Neustart oder Herunterfahren eines ESXi-Hosts ausgeführt. Dieses Skript dient dazu, die im Speicher gespeicherte ESXi-Konfiguration in der Datei /bootbank/state.tgz zu sichern (zu speichern).
Die ESXi-Konfiguration wird im RAM des Computers gespeichert, wenn ein ESXi-Server ausgeführt wird (die entsprechende RAM-Disk ist im Verzeichnis /etc/ eingebunden). Beim Booten von ESXi werden die Systemdateien aus dem Archiv /bootbank/state.tgz in das Verzeichnis /etc/ extrahiert. Sie können die Datei /bootbank/state.tgz manuell kopieren, wenn Ihr ESXi-Host läuft, indem Sie einen SCP-Client wie WinSCP verwenden (der SSH-Remote-Zugriff muss aktiviert sein). Alternativ können Sie von der Live-DVD booten und die Datei state.tgz manuell kopieren, wenn Ihr ESXi-Host nicht bootfähig ist (z. B. aufgrund eines Hardwarefehlers).
Manueller Wiederherstellungsablauf
1. Bereiten Sie das Sicherungsarchiv vor, das Sie zuvor mit der ESXi-Shell, vSphere CLI oder PowerCLI erstellt haben. Der Name dieser Datei ist in unserem Fall configBundle-192-168-101-208.tgz. Sie können die Datei zum Beispiel auf ein USB-Flash-Laufwerk kopieren und dieses Flash-Laufwerk in einen USB-Port des ESXi-Servers einstecken, auf dem Sie die Systemkonfiguration wiederherstellen müssen.
2. Booten Sie von der Live-CD/DVD auf dem Rechner, auf dem ESXi installiert ist. Sie können die Ubuntu-Installationsdiskette als Live-CD/DVD verwenden.
3. Öffnen Sie die Konsole (Terminal) in Linux
4. Listen Sie die Partitionen auf:
ls -al /dev/sd*
fdisk -l | grep /dev/sda
In diesem Fall benötigen wir die Partition /dev/sda5/, die als Microsoft-Basisdaten markiert ist.
ESXi-Festplattenpartitionen wurden im Blogbeitrag über das Booten von ESXi von einem USB-Stick und die Wiederherstellung des ESXi-Kennworts erwähnt.
In diesem Fall sind wir an der Partition /dev/sda5 interessiert.
5. Erstellen Sie das Verzeichnis, in das die Partition /dev/sda5 eingehängt werden soll:
mkdir /mnt/sda5
6. Hängen Sie die Festplattenpartition in dieses Verzeichnis ein:
mount /dev/sda5 /mnt/sda5
7. Im Verzeichnis /mnt/sda5 finden Sie die Datei state.tgz, die die ESXi-Konfiguration enthält. Dieses Verzeichnis (in dem state.tgz gespeichert ist) heißt /bootblank/, wenn ein ESXi-Host gebootet wird.
8. Kopieren Sie das ESXi-Konfigurationssicherungsarchiv von einem USB-Stick in das Verzeichnis /tmp/directory von Ubuntu, das von einer Live-DVD geladen wurde. In unserem Beispiel kopieren wir:
cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
9. Entpacken Sie die Dateien aus dem Backup-Archiv:
tar zxvf /tmp/configBundle.tgz
10. Sie können sehen, dass die Datei state.tgz aus dem Archiv extrahiert wird.
ls -al /tmp/
11. Benennen Sie die ursprüngliche Datei state.tgz um, die sich auf der Partition /dev/sda5 befindet, die auf /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
12. Kopieren Sie die Datei state.tgz, die Sie aus dem ESXi-Konfigurationssicherungsarchiv (configBundle.tgz) extrahiert haben, in das Verzeichnis /tmp/
cp /tmp/state.tgz /mnt/sda5/
13. Gemountete Partitionen aushängen
umount /dev/sda5/
14. Starten Sie den Server neu. Werfen Sie die Ubuntu Live DVD aus und booten Sie von der Festplatte, auf der ESXi installiert ist.
init 6
15. Jetzt sollte Ihre ESXi-Konfiguration wiederhergestellt sein.
Abschluss
Im heutigen Blog-Beitrag haben wir vier Methoden zum Sichern und Wiederherstellen der ESXi-Konfiguration behandelt. Die Verwendung der ESXi-Befehlszeilenschnittstelle ist vorteilhaft, da Sie keine zusätzliche Software installieren müssen; die Vorteile von vSphere CLI sind die Möglichkeit, Befehle per Fernzugriff über Linux-Maschinen auszuführen, und die Möglichkeit, die Sicherung der ESXi-Konfiguration zu automatisieren; PowerCLI kann von Windows-Benutzern geschätzt werden. Wenn Ihr ESXi-Host nicht in Ordnung ist und Sie den Host nicht booten können, besteht die Möglichkeit, die Konfiguration manuell zu sichern und wiederherzustellen. Beachten Sie, dass Bootblank-Informationen und Informationen über VMs nicht in der ESXi-Konfigurationssicherungsdatei gespeichert werden. Nachdem Sie die ESXi-Konfiguration wiederhergestellt haben, müssen Sie möglicherweise virtuelle Maschinen in Ihrem Inventar registrieren.
Nun wissen Sie, wie Sie den ESXi-Host sichern, aber vergessen Sie nicht, Ihre virtuellen Maschinen zu sichern. NAKIVO Backup & Replication ist eine universelle Backup-Lösung, die Ihre VMware VMs, Hyper-V VMs, Amazon EC2 Instanzen sowie physische Linux und Windows Server sichern kann. Laden Sie die kostenlose Testversion mit vollem Funktionsumfang herunter, um zu sehen, wie zuverlässig die Sicherung in Ihrer Umgebung sein kann.
Schreibe einen Kommentar