Inhaltsverzeichnis
Virtualisierung Gast-Systeme Shutdown
Standardmäßig werden unter CentOS ab der Version 6.0 beim
- Beenden / Herunterfahren des Wirt-Systems bzw. Beenden des
libvirtd
die virtuellen Maschinen / Gast-Systeme in den sogenannten
suspend
-Modus (Einfrieren des Gast-System zur Laufzeit, ohne dieses herunterzufahren) versetzt!
Unter Umständen kann aber auch das Herunterfahren / Shutdown der Gast-System beim Beenden des Wirt-Systems bzw. des libvirtd
gewünscht sein.
Um dies zu erreichen sind einige Anpassungen am
- Wirt-System und ggf. am
- Gast-System
erforderlich.
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Vorbereitungen
Um beim Herunterfahren des Wirt-Systems die jeweiligen Gast-Systeme ebenfalls herunterfahren zu können, muss auf allen Gast-Systemen der
acpid
-Daemon/Dienst
gestartet sein, da über dessen Fähigkeit, auf bestimmte SIGnale reagieren zu können, das Herunterfahren des Gast-Systems durchgeführt wird.
HINWEIS - Bei CentOS ab der Version 6.0 und der Installationsmethode - Minimal ist der acpid
-Daemon/Dienst standardmäßig nicht installiert!!!
Ob der acpid
-Daemon/Dienst installiert und vor allem gestartet ist, kann mit nachfolgenden Befehlen überprüft werden:
# chkconfig --list | grep .:on | grep acpid acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
WICHTIG - Falls hier KEINE Ausgabe erfolgt, ist der acpid
-Daemon/Dienst NICHT installiert !!!
bzw.
# service acpid status acpid (pid 4950) is running...
Der Auslöser der beim Herunterfahren des Wirt-Systems auch das Versetzen der Gast-Systeme in den
suspend
-Modus
oder das Ausführen eines
shutdown
anstößt ist ein Script in nachfolgendem Verzeichnis, mit nachfolgendem Namen
/etc/init.d/libvirt-guests
acpid-Dienst/Daemon
Installation
Zum Herunterfahren der Gast-Systeme durch das Script /etc/init.d/libvirt-guests
, muss der acpid
-Daemon/Dienst auf allen Gast-Systemen installiert und gestartet sein.
HIWNEIS - Falls der acpid
-Daemon/Dienst bereits installiert und beim Gast-Systemstart mit gestartet wird, ist KEINE Installation, wie nachfolgend beschrieben, notwendig!!!
Zur Installation des acpid
-Daemon/Dienst auf einem Gast-System, kann nachfolgender Befehl ausgeführt werden:
# yum install acpid Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.atrpms.net * extras: mirror.atrpms.net * updates: mirror.atrpms.net base | 3.7 kB 00:00 extras | 3.0 kB 00:00 updates | 3.5 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package acpid.x86_64 0:1.0.10-2.1.el6 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: acpid x86_64 1.0.10-2.1.el6 base 36 k Transaction Summary ================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total download size: 36 k Installed size: 73 k Is this ok [y/N]: y Downloading Packages: acpid-1.0.10-2.1.el6.x86_64.rpm | 36 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : acpid-1.0.10-2.1.el6.x86_64 1/1 Installed: acpid.x86_64 0:1.0.10-2.1.el6 Complete!
Der Inhalt des rpm
-Pakets mit dem Namen acpid
, kann mit nachfolgendem Befehl aufgelistet werden:
# rpm -qil acpid Name : acpid Relocations: (not relocatable) Version : 1.0.10 Vendor: CentOS Release : 2.1.el6 Build Date: Wed 18 Aug 2010 10:39:10 PM CEST Install Date: Fri 30 Sep 2011 02:53:22 PM CEST Build Host: c6b3.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: acpid-1.0.10-2.1.el6.src.rpm Size : 74381 License: GPLv2+ Signature : RSA/8, Sun 03 Jul 2011 06:01:31 AM CEST, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://acpid.sourceforge.net/ Summary : ACPI Event Daemon Description : acpid is a daemon that dispatches ACPI events to user-space programs. /etc/acpi /etc/acpi/actions /etc/acpi/actions/power.sh /etc/acpi/events /etc/acpi/events/power.conf /etc/acpi/events/video.conf /etc/rc.d/init.d/acpid /usr/bin/acpi_listen /usr/sbin/acpid /usr/share/doc/acpid-1.0.10 /usr/share/doc/acpid-1.0.10/COPYING /usr/share/doc/acpid-1.0.10/Changelog /usr/share/doc/acpid-1.0.10/README /usr/share/doc/acpid-1.0.10/TODO /usr/share/man/man8/acpi_listen.8.gz /usr/share/man/man8/acpid.8.gz
Start überprüfen
Eine Überprüfung, ob beim Neustart des Server der acpid
-Dienst/Daemon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# chkconfig --list | grep .:on | grep acpid acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Falls die oben dargestellte Anzeige nicht erscheinen sollte, kann der acpid
-Dienst/Daemon, welcher später als Hintergrundprozess läuft, und auch nach einem Neustart des Servers zur Verfügung stehen sollte, mit nachfolgendem Befehl zum automatischen Systemstart hinzugefügt werden:
# chkconfig acpid on
Erster Start
Mit nachfolgendem Befehl kann überprüft werden, ob der acpid
-Dienst/Daemon bereits gestartet ist:
# service acpid status acpid is stopped
Falls dies, wie oben dargestellt der Falls ein sollte, kann der acpid
-Dienst/Daemon mit nachfolgendem Befehl gestartet werden:
# service acpid start Starting acpi daemon: [ OK ]
Eine erneute Überprüfung, ob der acpid
-Dienst/Daemon bereits gestartet ist, sollte dann in etwa nachfolgende Ausgabe liefern:
# service acpid status acpid (pid 1250) is running...
/etc/sysconfig/libvirt-guests
Das standardmäßige Versetzen der Gast-Systeme in den suspend
-Modus der durch das Script
/etc/init.d/libvirt-guests
z.B. beim Herunterfahren des Wirt-Systems ausgeführt.
Um jetzt die Gast-System NICHT in den suspend
-Modus zu versetzen, sondern diese ebenfalls z.B. beim herunterfahren des Wirt-Systems - herunterzufahren, sind folgende Anpassungen an der Konfigurationsdatei
/etc/sysconfig/libvirt-guests
erforderlich.
Änderungen und persönliche Anpassungen sind mit einem voranstehenden Kommentar, welche wie nachfolgend dargestellt aussieht
# Tachtler
gekennzeichnet.
/etc/sysconfig/libvirt-guests
:
# URIs to check for running guests # example: URIS='default xen:/// vbox+tcp://host/system lxc:///' #URIS=default # Tachtler # default: #URIS=default URIS=default # action taken on host boot # - start all guests which were running on shutdown are started on boot # regardless on their autostart settings # - ignore libvirt-guests init script won't start any guest on boot, however, # guests marked as autostart will still be automatically started by # libvirtd #ON_BOOT=start # Tachtler # default: #ON_BOOT=start ON_BOOT=start # number of seconds to wait between each guest start #START_DELAY=0 # action taken on host shutdown # - suspend all running guests are suspended using virsh managedsave # - shutdown all running guests are asked to shutdown. Please be careful with # this settings since there is no way to distinguish between a # guest which is stuck or ignores shutdown requests and a guest # which just needs a long time to shutdown. When setting # ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a # value suitable for your guests. #ON_SHUTDOWN=suspend # Tachtler # default: #ON_SHUTDOWN=suspend ON_SHUTDOWN=shutdown # number of seconds we're willing to wait for a guest to shut down #SHUTDOWN_TIMEOUT=0 # Tachtler # default: #SHUTDOWN_TIMEOUT=0 SHUTDOWN_TIMEOUT=60 # If non-zero, try to bypass the file system cache when saving and # restoring guests, even though this may give slower operation for # some file systems. #BYPASS_CACHE=0
Dabei sind nachfolgend dargestellte Änderungen durchgeführt worden:
ON_SHUTDOWN=shutdown
... # Tachtler # default: #ON_SHUTDOWN=suspend ON_SHUTDOWN=shutdown ...
* Ausführen des Befehls shutdown
beim Herunterfahren des Wirt-Systems
SHUTDOWN_TIMEOUT=60
... # Tachtler # default: #SHUTDOWN_TIMEOUT=0 SHUTDOWN_TIMEOUT=60 ...
* Wartezeit, wie lange auf die erfolgreiche Beendigung eines Gast-Systems gewartet wird!!!
HINWEIS - Mit oben gesetzten Einstellungen, sollten
- max. 600 Sekunden (10 Minuten) vergehen, wenn
- 10 Gast-Systeme
heruntergefahren werden.
Manuelles Herunterfahren der Gast-Systeme
Durch nachfolgenden Befehl, können alle Gast-Systeme, wie beim Herunterfahren des Wirt-Systems, ebenfalls heruntergefahren werden:
# service libvirt-guests shutdown Running guests on default URI: rechner20, rechner40, rechner10, rechner30 Shutting down guests on default URI... Shutting down rechner20: done Shutting down rechner40: done Shutting down rechner10: done Shutting down rechner30: done
Eine Überprüfung, ob alle Gast-Systeme tatsächlich heruntergefahren wurden, kann mit nachfolgendem Befehl erfolgen:
# virsh list Id Name State ----------------------------------
HINWEIS - Es sollten keine Gast-Systeme mehr aufgelistet werden!!!
Manuelles Hochfahren der Gast-Systeme
Durch nachfolgenden Befehl, können alle Gast-Systeme, wie beim Hochfahren des Wirt-Systems, ebenfalls hochgefahren werden:
# service libvirt-guests start Resuming guests on default URI... Resuming guest rechner20: done Resuming guest rechner40: done Resuming guest rechner10: done Resuming guest rechner30: done
Eine Überprüfung, ob alle Gast-Systeme tatsächlich hochgefahren wurden, kann mit nachfolgendem Befehl erfolgen:
# virsh list Id Name State ---------------------------------- 5 rechner20 running 6 rechner40 running 7 rechner10 running 8 rechner30 running