Hyper-V Sicherung mittels Powershell Skript für Windows Server 2016 (Update 2)

Nach dem großen Erfolg von dem Backup-Skript für ein Backup von VMs unter Windows Server 2012 mit Hilfe der PowerShell und einem Export der virtuellen Maschine sowie der stetigen Nachfrage nach einem Nachfolger für Windows Server 2016 habe ich nun (nach langer Zeit) das Skript angepasst und für Windows Server 2016 optimiert. Grundsätzlich ist es mit dem Skript möglich, eine virtuelle Maschine (manuell oder zeitgesteuert per geplantem Task) zu exportieren. Dieser Export kann online gemacht werden, alternativ kann die VM dabei gespeichert oder vollständig heruntergefahren werden. Der Vorgang wird protokolliert, auf Wunsch kann dieses Protokoll auch noch per Mail versandt werden.

Update auf Version 0.4.1 – 06. Mai 2017

 

Ich habe heute das Script so umgeschrieben, dass das interne PowerShell-Logging genutzt wird. Dies bewirkt ein paar Zeilen weniger Code und ein sauberes Logging inkl. möglicher Fehler und weiteren Informationen. Man lernt nie aus :)

Wichtig: An der Funktion hat sich nichts geändert, v0.4.1 funktioniert technisch genau so wie v0.4. Wird das Script ausgetauscht, muss keine Syntax angepasst oder geändert werden.

Update auf Version 0.4 – 17. Dezember 2016

Ich habe heute das Skript mit einer weiteren Funktion ausgestattet. Auf Wunsch kann nun ein Checkpoint erstellt werden, nach der Erstellung wird dieser Checkpoint exportiert. Nach dem Export wird der Checkpoint wieder entfernt.

Grund für diese Erweiterung ist die Tatsache, dass ein direkter Export einer VM im Livebetrieb kein Production Checkpoint erstellt, sondern einen „gewöhnlichen“. Dies ist daran erkennbar, dass die VM nach einem Export und einem erneuten Import im gespeicherten Zustand vorliegt. Würde ein Production Checkpoint erstellt, ist die VM nach dem erneuten Import ausgeschaltet, da das OS in der VM per VSS-Technik benachrichtigt wird.

Weitere Informationen zum Thema Production Checkpoint

Das Skript selbst überprüft nicht, ob ein Production Checkpoint gemacht werden kann, dies müssen Sie selbst überprüfen!

Am einfachsten können Sie dies manuell machen. Bei einem erfolgreichen Production Checkpoint bekommen Sie dies angezeigt.

Das Archiv enthält das eigentliche Skript sowie eine Hilfe-Datei mit Informationen zur Nutzung. Achten Sie unbedingt darauf, dass Sie das Skript nach dem Download entsperren. Dies geschieht über die Eigenschaften des Dokuments, im unteren Bereich finden Sie ggf. eine Warnung, dass es sich um eine Datei aus dem Internetz handelt und Sie diese erst manuell freigeben müssen.

Wichtiger Hinweis: Es handelt sich bei virtuellen Systemen meist um wichtige Daten. Prüfen Sie die Nutzung des Scripts vorab an Test- oder Demo-Daten. Wir übernehmen keine Haftung für verlorene oder inkonsistente Dateien oder VMs sowie sonstigen Fehlern oder Problemen. Sie können sich jederzeit den Quelltext des Scripts anschauen und nachvollziehen, was mit den einzelnen Befehlen bewirkt wird. Die Nutzung dieses Scripts erfolgt auf eigene Gefahr!

Beschreibung der Funktion

Dieses Script exportiert manuell oder per Taskplaner jeweils eine VM. Standardmäßig wird die VM online exportiert. Die VM wird alternativ je nach Wunsch gespeichert oder heruntergefahren, die Möglichkeit eines sauberen Shutdown wird getestet, indem die Integrationskomponente „Herunterfahren“ bzw „Shutdown“ abgefragt wird. Dies ist jedoch keine 100%ige Gewährleistung auf einevollständige und zuverlässige Unterstützung von einem Shutdown-Vorgang von außerhalb.Weiterhin kann ein Production Checkpoint erstellt und exportiert werden. Bei diesem Vorgang wird neben einem Checkpoint noch in der VM einVSS-Snapshot erzeugt. Dies setzt die VM in einen konsistenten Zustand, die Daten der VM sollten so konsistent gesichert werden.Wichtig: Die Funktion des Production Checkpoints wird nicht überprüft, dies muss von Ihnen aus konfiguriert werden!Wenn die Shutdown-Funktion nicht verfügbar ist und kein Speichern der VM ausgewählt wurde, wird das Script beendet. Falls die Komponente aktiviert ist kann die VM versucht werden, per „Herunterfahren“ von außen sauber heruntergefahren zu werden. Hierbei wird per Parameter ein Herunterfahren erzwungen, zum Zeitpunkt offene Dateien verzögern den Vorgang, die VM wird nach einer gewissen Zeit aber trotzdem heruntergefahren.Sie können einen Pfad auswählen, in dem die Logdatei der Sicherung erstellt wird. Wenn kein Parameter angegeben wird, werden die Logfiles im Windows-Log-Verzeichnis (per Standard C:WindowsLogs) im Unterordner „HyperVExport“ erstellt. Falls dieser Ordner nicht vorhanden ist, wird der Ordner erstellt, falls er bereits vorhanden ist wird die Logdatei hier angelegt und gespeichert. Pro Tag wird ein eigenes Logfile erstellt, wenn an einem Tag mehrere Aktionen stattfinden werden die Ereignisse in diesem einem Log hintereinander protokolliert, es wird kein Log überschrieben. Auf Wunsch kann ein anderer Pfad für die Datei angegeben werden.Wichtig: Standardmäßig werden die vorhandenen Export-Datei vor einem erneuten Export gelöscht.Auf Wunsch können Sie sich das Logfile nach der Sicherung per Email schicken lassen. Hierzu ist eine Anpassung des Scripts notwendig, siehe unten.

Die Funktionsweise des Skripts wurde mit einem englischen Windows Server 2016 mit dem Dezember 2016 Patchlevel getestet.

Beispiele

Einfacher Export einer VM ohne weitere Optionen:

Export.ps1 -VM -Exportpfad D:Exports

Speichern einer VM und Export:

Export.ps1 -VM -Exportpfad D:Exports -Speichern

Erzeugen von Checkpoint, Export des Checkpoints und Löschen von Checkpoint

Export.ps1 -VM -Exportpfad D:Exports -ProductionCheckpoint

Herunterfahren einer VM und Export:

Export.ps1 -VM -Exportpfad D:Exports -Herunterfahren

Export einer VM und Umlenkung des Logs an einen anderen Speicherort:

Export.ps1 -VM -Exportpfad D:Exports -Logpfad „E:LogfilesHyper-V Export“

!!! Weitere Informationen in der ReadMe-Datei und im Skript selbst !!!

Probleme / Fehler

Falls Probleme oder Fehler auftreten, bitte einen kurzen Kommentar hier hinterlassen. Ich habe einige Exports gemacht, kann aber natürlich nicht jeden Fall testen bzw. berücksichtigen.

Download: 

Exportscript_Server2016_v0.3 (veraltet, verbleibt aber online)

Exportscript_Server2016_v0.4 (veraltet, verbleibt aber online)

Exportscript_Server2016_v0.4.1

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.

Comments are closed