Backup mit PowerCLI, Skripts und PowerShell VMs in ESXi/vSphere mit kostenlosem Skript sichern
Gerade bei virtuellen Maschinen (VMs) ist es sinnvoll Datensicherungen zu automatisieren. Praktischerweise lassen sich VMs in vSphere/ESXI, aber auch in Hyper-V mit Skripten sichern. Dazu stehen verschiedene Schnittstellen zur Verfügung, auf deren Basis auf die Server zugegriffen werden kann. Wir zeigen die Vorgehensweise.
Anbieter zum Thema

Um vSphere/ESXi mit einem Skript zu sichern stehen verschiedene Möglichkeiten zur Verfügung. Im Internet sind verschiedene Skripte zu finden, und auch viele Sicherungslösungen bieten Skripte an, die eine Sicherung auf Basis der PowerCLI oder anderer Schnittstellen bieten. Im ersten Schritt sollte dazu getestet werden, dass die PowerCLI funktioniert und eine Verbindung herstellen kann.
Mit der PowerCLI eine Verbindung zu vSphere/ESXi aufbauen
Mit „Connect-VIServer“ wird mit der PowerCLI zunächst eine Verbindung zum Host oder einem vCenter-Server aufgebaut. Der Befehl „Connect-VIServer -Server <IP-Adresse> -Protocol https -User <Benutzername> -Password <Kennwort>“ baut die Verbindung auf. Funktioniert die Verbindung, lassen sich Skripte auf diesem Weg umsetzen. Mit „Get-VM“ werden die Daten von VMs angezeigt. Durch dieses CMDlet kann getestet werden, ob die PowerShell-Verbindung erfolgreich hergestellt wurde. Die hier angezeigten Server und VMs können über die PowerCLI anschließend gesichert und auch wiederhergestellt werden.
Vor allem bei der Verwendung von Skripten zur Datensicherung ist es notwendig auf die Sicherheit zu achten. Entweder wird hier auf ein selbstsigniertes Zertigikat gesetzt, oder die Zertifikatewarnung wird ignoriert. Das erfolgt über den Befehl
„Set-PowerCLIConfiguration -InvalidCertificateAction ignore“
Um Skripte zu erstellen, können Befehle verwendet werden, die in der PowerCLI verfügbar sind. Diese werden mit dem Befehl „Get-VICommand“ angezeigt. Skripte für vSphere lassen sich auch über eine Batch-Datei auf einem Windows-Rechner starten. Ein Weg besteht zum Beispiel darin die PowerShell über eine Batchdatei starten, das VMware-Modul zu laden und anschließend das Skript zu starten:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -command "<Pfad zur ps1-Datei"
:quality(80)/images.vogel.de/vogelonline/bdb/1355400/1355465/original.jpg)
Hyper-V-Hosts und VMs mit Skripten starten
Patch-Management unter Hyper-V mit PowerShell Direct
Snapshots und Co mit der PowerShell erstellen
Um vSphere/ESXi zu sichern, oder Aktionen mit VMs zu erstellen, sind nicht immer Skripte notwendig. Es lassen sich auch mit einfachen CMDLets aus der PowerCLI Sicherungsmaßnahmen durchführen, zum Beispiel Skripts erstellen. Hier unterstützt die PowerCLI auch Pipelines. Das heißt, Befehle können Daten aus vSphere über die PowerCLI auslesen und an Skripte zur Sicherung weitergeben. Ein Beispiel dafür ist der Befehl „get-vm | get-snapshot | format-list“. Der Befehl liest zunächst alle VMs in der Umgebung ein, und danach die Snapshots der VMs. Hier lassen sich aber auch die Daten filtern, in dem angegeben wird, welche Daten angezeigt werden sollen:
get-vm | get-snapshot | format-list VM,SizeGB
Auf Basis dieser Befehle können Snapshots auch erstellt werden. Dazu steht das CMDlet „New-Snapshot“ zur Verfügung:
New-Snapshot -vm server1 -Memory:$false -confirm:$false -name "Ticket number 12345
Snapshots können dabei nicht nur für einen Server, sondern gleich für mehrere Server erstellt werden:
New-Snapshot -vm server1,server2,server3 -Memory:$false -confirm:$false -name "Ticket number 12345
:quality(80)/images.vogel.de/vogelonline/bdb/1501900/1501959/original.jpg)
Tools für Updates und Installationspakete
Windows-Updates mit kostenlosen Tools im Griff
VMs mit Zusatzskript sichern
Wie bereits eingangs erwähnt, finden sich im Internet Skripte, mit denen VMs in vSphere/ESXi gesichert werden können. Der Vorteil bei der Verwendung von fertigen Skripten besteht darin, dass diese bereits über einen gewissen Funktionsumfang verfügen und gleichzeitig erweiter- und änderbar sind. Ein Beispiel für ein solches Skript ist die Open Source „GhettoVCB“.
Das Skript ermöglicht die Anpassung an die eigenen Anforderungen. So ist es zum Beispiel möglich E-Mail-Benachrichtigungen zu aktivieren. Das Skript muss zunächst an die eigenen Anforderungen angepasst werden. GhettoVCB wird direkt auf ESXi-Hosts gespeichert und führt von da die Sicherung der VMs aus. Es sind also keine Verwaltungs-Arbeitsstationen notwendig, um die Sicherung durchzuführen. Die Bearbeitung des Skriptes lässt sich mit SSH oder Linux-Editoren durchführen.
Die Bearbeitung des Skriptes erfordert keine Kenntnisse in der Skriptsprache. Der Entwickler hat über Kommentare Optionen eingebaut, die Administratoren nur anpassen müssen. In den Optionen wird zum Beispiel festgelegt, wo das Skript die gesicherten Daten speichern soll. Dazu kann das Skript auch Datastores in ESXi nutzen. Idealerweise sollten hier Speicherbereiche verwendet werden, in denen keine VMs gespeichert werden.
Im Skript werden alle wichtigen Optionen gesteuert, zum Beispiel auch das Starten oder Herunterfahren von VMs. Die Option „VM_BACKUP_ROTATION_COUNT“ legt zum Beispiel die Anzahl der Sicherungen fest, die gespeichert werden sollen. Das Starten des Skriptes kann auch manuell über SSH erfolgen. Dabei muss beim Aufrufen des Skriptes der komplette Pfad mit angegeben werden:
“/vmfs/volumes/DatastoreBackup/ghettoVCB/ghettoVCB.sh”
Beim Verwenden des Skriptes muss auch auf die Berechtigungen geachtet werden. Teilweise kann es passieren, dass Fehler erscheinen, wenn das Sicherungsskript gestartet wurde. In diesem Fall hilft teilweise der Befehl „chmod 777 ghettoVCB.sh“. Neben den Optionen innerhalb des Skriptes, kann GhettoVCB selbst mit Optionen gestartet werden.
Mit der Option „-a“ sichert das Tool alle Server auf einem ESXi-Host. Die Option „-e“ ermöglicht das Erstellen einer Liste, um verschiedene VMs auf einem Host zu sichern. Mit „-f“ kann eine Liste erstellt werden und „-m“ sichert einzelne VMs.
GhettoVCB bietet die Möglichkeit eine gemeinsame Konfigurationsdatei zu nutzen, wenn mehrere ESXi-Hosts in einem Netzwerk gesichert werden sollen. Dabei wird die Datei an einem Speicherort abgelegt, der für alle GhettoVCB-Installationen zugreifbar ist, zum Beispiel auf einer Dateifreigabe. Erfolgt der Start von GhettoVCB mit der Option „-g“ kann der Pfad Pfad zur globalen Konfigurationsdatei angegeben werden. Die Option „-l“ erstellt eine Protokolldatei der Sicherung.
:quality(80)/images.vogel.de/vogelonline/bdb/1298100/1298112/original.jpg)
Updates, Aktualisierungen und Migrationen automatisieren
Mit dem Update-Manager vSphere 6.5 aktuell halten
Automatische Sicherung von VMs mit GhettoVCB
Natürlich ist es sinnvoll Datensicherungen zu automatisieren. Dazu kann GhettoVCB mit Cron-Jobs auf Linux-Servern oder direkt auf dem ESXi-Host automatisiert werden. Ein Beispiel dafür ist:
00 22 * * * /root/bin/backupesx/backupscript.sh & > /dev/null 2>&1
Wir der Job auf dem ESXi-Host gespeichert kann die Aufgabe über „/var/spool/cron/crontabs/root” eingelesen werden.
(ID:45950168)