Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:virtualisierung_gast-systeme_shutdown

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
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/virtualisierung_gast-systeme_shutdown.txt · Zuletzt geändert: 2012/05/08 22:38 von klaus