
|
Domain 0 (Wirt) Bezeichnet den Physikalisches System, auf dem der XEN Kernel läuft und von dem die Gäste gesteuert und kontrolliert werden. |
|
Domain U (Gast) Virtuelles System, das auf derselben Hardware wie der Wirt läuft. |
|
Live-Migration Eine Funktion von XEN, bei dem ein laufender Gast online von einem physikalischen Wirt auf einen anderen migriert wird. Anwendungen und Netzwerkverbindungen werden weiterhin ausgeführt. |
|
UUID Universally Unique Identifier. Eine UUID wird genutzt, um Informationen in verteilten Systemen ohne zentrale Koordination eindeutig kennzeichnen zu können. |
Weiterführende Links
Klassischerweise legt man für jeden XEN-Gast eine textbasierte Konfigurationsdatei an, in der die für den Gast notwendigen Parameter, wie die Menge des zugewiesenen RAM, Anzahl der CPU’s, usw. festgelegt werden. Mit dem Befehl xm create <Name der Konfigurationsdatei> kann nun der Gast mit den eingetragenen Einstellungen gestartet werden.
Eine besondere Funktion von XEN ist, dass fast jeder Parameter online verändert werden kann. So kann zum Beispiel mit dem Befehl xm mem-set suse1 1024 der zugewiese Arbeitsspeicher auf 1024 MB vergrößert werden oder mit xm vcpu-set suse1 4 die Anzahl der zugewiesenen CPU’s geändert werden.
Das Problem bei dieser Art der Administration ist, dass der online zugewiesene neue Wert beim Herunterfahren des Gastes verloren geht. Soll bei zukünftigen Starts des Gastes weiterhin die höhere Menge an Arbeitsspeicher verwendet werden, muss der Administrator zusätzlich die Konfigurationsdatei des Gastes anpassen. Das Problem vervielfacht sich spätestens dann, wenn man mit mehreren XEN Servern arbeitet und die Funktion der Live-Migration nutzt. Hier müssen bei Änderungen der Konfiguration auf allen beteiligten Systemen die notwendigen Anpassungen durchgeführt werden.
| |||||||||||||
| |||||||||||||
|
Zur Beseitigung des Problems mit den Konfigurationsdateien haben die Entwickler eine Lösung programmiert und diese "XenStore“ getauft. XenStore ist eine zentrale Konfigurationsdatenbank, auf die alle XEN-Domains zugreifen können. Um XenStore nutzen zu können, benötigt man zum Anlegen des Gastes nur eine Konfigurationsdatei. Hinterher wird sie nicht mehr benötigt und kann gelöscht werden. Für die durch XenStore verwalteten Gäste haben die Entwickler einige zusätzliche Verwaltungsbefehle implementiert, mit denen diese Art von virtuellen Gästen administriert werden (siehe Abbildung 1).
Die XenStore-Datenbank könnte man mit der Registrierungsdatenbank von Windows vergleichen. Es gibt verschiedene Hauptschlüssel, unter denen sich verschiedene Informationen über die Domains auslesen und verändern lassen. Für den Zugriff auf die XenStore-Datenbank stehen Befehle zum Auslesen und Verändern von Schlüsseln und Werten zu Verfügung. Diese Datenbank enthält für die Administration 3 Hauptschlüssel, die im Folgenden beschrieben werden:
Stellt man von den bisher verwendetene Konfigurationsdateien auf die XenStore basierte Konfiguration um, gibt es noch eine Besonderheit zwischen diesen beiden Verfahren. Arbeitet man mit Konfigurationsdateien, wird ein Gast, wenn er nicht gestartet ist, mit xm list auch nicht angezeigt. Erst wenn er mit xm create suse1 gestartet wurde, bekommt er eine ID zugeordnet und wird in der Auflistung auch angezeigt. Ein XenStore-Gast wiederrum wird immer mit xm list angezeigt. Anhand der vorhandenen ID wird ersichtlich, ob der Gast gestartet ist oder nicht. Abbildung 2 zeigt die Ausgabe des Befehls xm list . Die Gäste suse2 und suse3 sind aktuell nicht gestartet, werden aber trotzdem angezeigt, da sie von XenStore verwaltet werden.
Änderungen an einem Gast können nun entweder mit den üblichen Befehlen online und dauerhaft vorgenommen werden oder aber mit XenStore-Befehlen. Ein Beispiel für eine Änderung per Befehl wäre xm rename suse1 suse11 , bei der ein Gast umbenannt wird. Für einige Konfi gurationsparameter gibt es bisher keine Möglichkeit, diese mit einem Befehl zu ändern, so dass immer eine Änderung der Konfi gura tionsdatei mit anschließendem Neustart des Gastes notwendig war. Mit den XenStore-Befehlen wiederum lassen sich alle Parameter ändern. Die Änderungen sind ohne Neustart des Gastes sofort aktiv. Im Folgenden nun die wichtigsten Befehle mit Beispielen.
Mit dem Befehl xenstore-ls (ohne weitere Argumente) wird dem Administrator die komplette XenStore-Datenbank angezeigt. Mit xenstore-ls /vm/f1fc911d-744c-70a2-f02a-60861440db16 kann dies auf eine bestimmte Domain beschränkt werden. Abbildung 3 zeigt eine gekürzte Ausgabe des Befehls.
Soll nur ein bestimmter Wert aus der Datenbank ausgelesen werden, hilft der Befehl xenstore-read , bei dem der Name des anzuzeigenden Schlüssels angegeben werden muss. Abbildung 4 zeigt zwei Beispiele, die abgefragt werden.
Zur Prüfung, ob ein bestimmter Schlüssel vorhanden ist, kann xenstore-exists (siehe Abbildung 5) ausgeführt werden. Hier wird mit Hilfe von Shell-Rückgabewerten dargestellt, ob ein Schlüssel vorhanden ist oder nicht.
Um den Wert eines Schlüssels nun zu verändern, wird der Befehl xenstore-write (siehe Abbildung 6) verwendet. Hierbei müssen der Name des Schlüssels und ein gültiger Wert bekannt sein. Ein bestehender Wert wird hierbei einfach mit einem neuen Wert überschrieben. Im ersten Beispiel wird der Name des Gastes geändert, was sofort mit xm list geprüft werden kann. Im zweiten Beispiel bewirkt ein Herunterfahren innerhalb des Gastes jetzt kein Ausschalten mehr, sondern dass der Gast automatisch wieder gestartet wird.
Der Vollständigkeit halber wurde von den Entwicklern ein Werkzeug spendiert, mit dem Einträge aus der Konfigurationsdatei entfernt werden können. In der Regel wird man Löschungen maximal im /tool-Zweig von XenStore durchführen. Abbildung 7 zeigt die Syntax des Befehls.
Mit Hilfe der XenStore-Gastverwaltung haben die Entwickler eine praktische Möglichkeit geschaffen, Gäste noch einfacher zu verwalten. Besonders in Verbindung mit Live-Migrationen muss nicht mehr geprüft werden, ob die Konfigurationsdatei auf dem Zielserver schon die aktuellen Werte besitzt, da beim Migrieren automatisch die aktuelle Konfiguration mit umgezogen wird. Mit Hilfe der Befehle xenstore-* kann jetzt praktisch jeder Wert von Hand oder per Skript geändert werden, ohne dass reboots benötigt werden. Im nächsten Teil dieser Reihe beschäftigen wir uns mit dem Thema Festplattenverwaltung unter XEN.
Christian Fertsch (info@ordix.de).