Inhaltsverzeichnis

Virtualisierung Gast-Systeme Shutdown

Standardmäßig werden unter CentOS ab der Version 6.0 beim

die virtuellen Maschinen / Gast-Systeme in den sogenannten

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

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

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

oder das Ausführen eines

anstößt ist ein Script in nachfolgendem Verzeichnis, mit nachfolgendem Namen

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

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

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

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