Hypervisor herunterfahren, wenn VM herunterfährt

glacios

Lt. Commander
Registriert
Feb. 2008
Beiträge
1.274
Hallo,

ist es irgendwie möglich den Hypervisor (in dem Fall Server 2012 mit Hyper-V) herunterzufahren, wenn sich eine bestimmte VM ausschaltet?
Bzw. ist es möglich aus einer bestimmten VM heraus den Hypervisor direkt oder indirekt abzuschalten?

Mag ja eine total primitive Frage sein, ich hab dazu aber nirgends was gefunden.
 
Ich glaube der Weg dass eine virtuelle Maschine runterfährt wenn der Hypervisor runterfährt ist der üblichere Weg.
Und wenn es eine virtuelle Maschine schafft den Ast abzusägen auf dem sie selbst sitzt würde ich mir Sorgen machen.
 
Ohne Hyper-V an dieser Stelle wirklich zu kennen könntest du für Szenario A (Host runterfahren, sobald keine VM mehr läuft) per Scheduler regelmäßig prüfen, ob noch eine VM läuft. Falls alle aus sind, den Host runterfahren lassen.

Für Szenario B (aus einer VM den Host herunterfahren) kannst du mal nach "Windows remote herunterfahren" suchen oder hier im Technet nachlesen: http://technet.microsoft.com/de-de/library/cc770416.aspx

Allerdings wird die VM dann wahrscheinlich gekillt und nicht ordnungsgemäß heruntergefahren. Vielleicht bietet Hyper-V an dieser Stelle aber noch Möglichkeiten.
 
@DocWindows
Genau das ist ja das Problem. Deswegen habe ich dazu auch noch nix gefunden.

@KillerCow
Szenario A: Das Problem ist, dass es für eine virtuelle Maschine nicht explizit einen Prozess gibt (zumindest wäre mir das dann entgangen) und ich nicht wüsste, welchen Scheduler ich dafür benutzen sollte.

Szenario B: Das wäre zumindest eine Lösung, müsste sogar klappen. Im Hyper-V selbst kann man ja dann wiederum einstellen, was passiert, wenn das Hostsystem herunterfährt. Von daher müsste rein theoretisch auch das funktionieren:

VM sendet Remoteshutdown -> Hypervisor erhält den Befehl und möchte sich ausschalten -> schaltet zuerst die VM aus und dann sich selbst.
Zumindest in der Theorie.

Jetzt werde ich das Ganze mal testen.
Ergänzung ()

So habs mal getestet. Funktioniert wunderbar. Danke für die Hilfe @Killercow.

Das ganze geht übrigens noch etwas schneller über "psshutdown.exe" der PsTools.
 
Ich finds immer wieder schön, wenn meine wirren Ideen auch mal funktionieren ;)

Zu Szenario A, hier könnte man ganz primitiv z.B. mittels Ping prüfen, ob die VM noch läuft. Außerdem bin ich davon überzeugt, dass man dem Hyper-V per Skript irgendwie entlocken kann, ob noch VMs laufen. Was den Scheduler für ein passendes Skript angeht, da hatte ich an den Windows Taskplaner gedacht.

Aber wenn die andere Variante zufriedenstellend funktioniert, ist ja alles gut.
 
Du musst ja nur schauen, ob die entsprechenden LCK-Dateien zur entsprechenden VM noch existieren. Sind diese vorhanden, läuft die VM wohl noch, wenn nicht, kann der Host den Shutdown einleiten, evola, fertisch...;-).

Alternativ könnte man innerhalb der VM, wenn es nur eine ist, auch ein Shutdownscript mit einem einfachen shutdown-Befehl und dem Parameter -t absetzen. Hierbei dann als Zeitspanne 5-10 Minuten wählen, in der die VM runterfahren kann, dann geht der Server hinterher;-). Sind es mehrere VMs, muss das Script entsprechend angepasst werden.
 
Knusperfloete schrieb:
Du musst ja nur schauen, ob die entsprechenden LCK-Dateien zur entsprechenden VM noch existieren. Sind diese vorhanden, läuft die VM wohl noch, wenn nicht, kann der Host den Shutdown einleiten, evola, fertisch...;-).

Eleganter ist es aber, den Status der VM abzufragen.

cls
$vms = Get-VM

$count=0

ForEach ($vm in $vms)
{
if ($vm.state -eq "Running")
{write-host VM $vm.name läuft noch...
$count = $count +1
}
}

if ($count -gt 0)
{
Write-Host
Write-Host Es laufen noch $count VMs!
}
 
Zurück
Oben