KVM und virsh shutdown

Wenn man virtuelle Maschinen betreibt will man diese auch beim Beenden des Host Betriebssystems sauber herunterfahren oder deren Zustand persitieren. KVM bietet das leider nicht direkt, aber es gibt eine Reihe von Management Tools die dabei helfen.

Ich bevorzuge libvirt für die Verwaltung meiner virtuellen Maschinen. Leider ist dort aktuell aber nur ein automatisches Hochfahren der virtuellen Maschinen möglich. Will man jedoch beim Beenden des Host Betriebssystems auch die virtuellen Maschinen stoppen oder persitieren ist man noch auf sich selbst gestellt.

Grundlegend ist zu sagen, dass man die virtuelle Maschine mit dem folgenden Befehl herunterfahren könnte:

virsh shutdown {MASCHINE}

Dabei ist {MASCHINE} der Name der virtuellen Maschine. Leider funktioniert dies nur dann, wenn das Gast Betriebssystem auf den ACPI Shutdown Befehl reagiert. Dazu benötigt man unter Linux ACPI Pakete – unter Debian installiert man dies so:

apt-get update
apt-get install acpi-support acpid

Damit Windows Server auf den ACPI Shutdown reagieren muss man Änderungen an der Lokalen Sicherheitsrichtlinie vornehmen. Windows Client Betriebssysteme reagieren normalerweise ohne Modufikation auf den ACPI Shutdown.

Änderungen bei Windows Servern – man startet den Richtlinieneditor z.B. mit Start/Ausführen:

gpedit.msc

Dort findet man in einem deutschen Windows – Computerkonfiguration/Windows-Einstellungen/Sicherheitseinstellungen/Sicherheitsoptionen – den Eintrag „Herunterfahren: Herunterfahren des Systems ohne Anmeldung zulassen“ – dieser muss aktiviert werden:

In einem englischen Windows – Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options – den Eintrag „Shutdown: Allow system to be shut down without having to log on“:

Die gezeigte Modfikation erlaubt ersteinmal das Herunterfahren, um jedoch auch ein automatisches Herunterfahren zu erreichen muss man noch ein Skript verwenden. Ein Kollege und ich habe dazu das Skript kvm-machines geschrieben. Dieses Skript wird in /etc/init.d abgelegt und je nach System in den init Prozess eingbunden. Hinweise dazu sind am Anfang des Skripts zu finden. Das Skript fährt alle auf ACPI Event reagierenden Maschinen sauber herunter. Für diejenigen Maschinien, die nicht sauber herunterfahren, haben wir noch keine endgültige Lösung – man müsste ja auch die Start Links in /etc/libvirt/qemu/autostart entfernen wenn man eine Maschine persitieren musste und dann mit dem Skript wieder starten und ggf. wieder den Autostart aktivieren.

Eine andere Lösung ist in Debian enthalten:

/usr/share/doc/libvirt-bin/examples/libvirt-suspendonreboot

Diese Lösung hat aber das angesprochene Problem mit dem Autostart auch. So wie es scheint wird aber irgendwann eine Lösung zu erwarten sein.

Share

Ein Gedanke zu „KVM und virsh shutdown

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

BdOJyV

Bitte geben Sie den Text vor: