Benutzer mit den meisten Antworten
Hyper-V: VMs herunterfahren - auch wenn's mal länger dauert

Frage
-
Hallo,
.
Ich habe ein Hyper-V laufen (derzeit auf Win2016 zum Testen) und darin 2 VMs (ein 2016 und ein 2012 R2). Alles als Testsystem.
Beide VMs haben als "Automatische Stoppaktion" herunterfahren eingestellt.
.
Normalerweise macht der Host das auch vernünftig. Nur wenn Windows-Updates installiert werden - dann nur bedingt.
.
In der 2012er VM waren nach der Installation über 150 Updates verfügbar. Nach dem herunterladen habe ich innerhalb der VM auf "Herunterfahren" gedrückt. Nach der Benutzerabmeldung kam wie erwartet der Bildschirm "Update 1 von 150 wird installiert - Schalten Sie den Computer nicht aus.".
Währenddessen habe ich dann den Hyper-V Host heruntergefahren - eben genau um zu sehen, ob der Hyper-V wartet bis der Gast mit seinen vielen Updates fertig ist. Er tut es nicht!
Das Herunterfahren des Hyper-V Host hat zwar merklich länger gedauert (ich schätze 3-5 Minuten länger als sonst). Die VM mit den Updates wurde aber "nicht ordnungsgemäß heruntergefahren". Die andere VM (die auch lief) wurde korrekt beendet.
Ich hab es nicht mehr sehen können aber ich behaupte einfach mal, dass er noch bis "Update 50 von 150 wird installiert" gekommen ist - und dann wurde der Stecker gezogen. :(
.
Kann ich diese Wartezeit des Hyper-V Hosts ändern? Kann ich ihm also sagen: warte bis zu 30 Minuten auf Shutdown der Gäste?
Das wäre ein Traum...
.
Grüße
Thomas
Antworten
-
Hallo Thomas,
Die Guest Services sind für den Austausch von Dateien zwischen Host und VM gedacht. Hierbei werden WMI APIs benutzt, was die Netzwerkkomponenten nicht belastet. Für das Timeout gibt es soweit ich weiß keine Einstellungsmöglichkeit. Ein Powershell Script, um das zu realisieren, könnte z.B. so aussehen:
$OFS =’; ’
$Job = {Get-VM|Stop-VM}
Start-Job $Job
While((Get-VM|? State -NE 'Off').Count -gt 0) {Write-Host 'VMs' ([string](Get-VM|? State -ne 'Off').Name) 'shutting down...';Start-Sleep 1}
Stop-Computer -Force
Hier werden alle VMs als Job heruntergefahren und dir wird angezeigt, welche VMs aktuell noch nicht den Status "Off" erreicht haben. Sobald alle VMs auf "Off" stehen, wird der Computer heruntergefahren.
- Bearbeitet Jan-Henrik DamaschkeMVP Donnerstag, 18. Februar 2016 13:30
- Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 18. Februar 2016 13:59
- Als Antwort markiert Thomas Raasch Donnerstag, 18. Februar 2016 16:14
-
Hallo Thomas,
während des Starts einer VM oder im Updatefall sind die Integrationsdienste in der VM nicht aktiv. Daher kann dein Host nicht erkennen dass die VM noch arbeitet und Updates installiert.
Eine kleine Frage zuerst, hast du die Gastdienste in der VM aktiviert? (siehe Screenshot)
Kind regards, Flo
- Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 18. Februar 2016 13:59
- Als Antwort markiert Thomas Raasch Donnerstag, 18. Februar 2016 16:14
Alle Antworten
-
Hallo Thomas,
während des Starts einer VM oder im Updatefall sind die Integrationsdienste in der VM nicht aktiv. Daher kann dein Host nicht erkennen dass die VM noch arbeitet und Updates installiert.
Eine kleine Frage zuerst, hast du die Gastdienste in der VM aktiviert? (siehe Screenshot)
Kind regards, Flo
- Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 18. Februar 2016 13:59
- Als Antwort markiert Thomas Raasch Donnerstag, 18. Februar 2016 16:14
-
Kann ich diese Wartezeit des Hyper-V Hosts ändern? Kann ich ihm also sagen: warte bis zu 30 Minuten auf Shutdown der Gäste?
Das wäre ein Traum...
.
Grüße
Thomas
Hi,
bau Dir ein PS Script und frage den Zustand der VMs ab bevor der Host herunterfährt, Bestandteil adhoc:
Get-VM -ComputerName HOST | where state -eq 'running'Gruß,
Marcelhttp://www.windowspro.de/marcel-kueppers
-
Hallo,
.
also zuerst zu den "Gastdiensten" - nein da ist kein Haken drin. Aber alles andere ist angehakt (auch Zeitsynchronisierung).
Was bringen denn die "Gastdienste"?
Ganz oben ist aber vor allem der Haken drin bei "Herunterfahren des BS".
.
.
Und dann zum PS Script: wann soll denn durch wen dieses Script starten? Wenn ich auf Ein/Aus -> Herunterfahren drücke kommt doch kein Script mehr?!
Oder soll ich zum herunterfahren in Zukunft immer eine Desktop-Verknüpfung nehmen, die vorher das Script startet?
.
Grüße
-
Hallo Thomas,
Die Guest Services sind für den Austausch von Dateien zwischen Host und VM gedacht. Hierbei werden WMI APIs benutzt, was die Netzwerkkomponenten nicht belastet. Für das Timeout gibt es soweit ich weiß keine Einstellungsmöglichkeit. Ein Powershell Script, um das zu realisieren, könnte z.B. so aussehen:
$OFS =’; ’
$Job = {Get-VM|Stop-VM}
Start-Job $Job
While((Get-VM|? State -NE 'Off').Count -gt 0) {Write-Host 'VMs' ([string](Get-VM|? State -ne 'Off').Name) 'shutting down...';Start-Sleep 1}
Stop-Computer -Force
Hier werden alle VMs als Job heruntergefahren und dir wird angezeigt, welche VMs aktuell noch nicht den Status "Off" erreicht haben. Sobald alle VMs auf "Off" stehen, wird der Computer heruntergefahren.
- Bearbeitet Jan-Henrik DamaschkeMVP Donnerstag, 18. Februar 2016 13:30
- Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 18. Februar 2016 13:59
- Als Antwort markiert Thomas Raasch Donnerstag, 18. Februar 2016 16:14
-
> Oder soll ich zum herunterfahren in Zukunft immer eine> Desktop-Verknüpfung nehmen, die vorher das Script startet?Genau. Oder Du baust das als Shutdown-Skript (per GPO) ein undkonfigurierst für Skripts einen Timeout von 3.600 Sekunden - damit würdees auch beim einfachen "Herunterfahren" gestartet und darf bis zu einerStunde auf die letzte VM warten.
- Als Antwort vorgeschlagen Florian Klaffenbach Donnerstag, 18. Februar 2016 13:59