Kapitel 17. Virtualisierung mit Xen

Inhaltsverzeichnis

17.1. Installation von Xen
17.2. Domäneninstallation
17.3. Starten und Steuern von Xen-Domänen mit xm
17.4. Fehlerbehebung
17.5. Weitere Informationen

Zusammenfassung

Mit Xen ist es möglich, mehrere Linux-Systeme auf einem einzigen Computer auszuführen. Die Hardware für die einzelnen Systeme wird virtuell bereitgestellt. In diesem Kapitel finden Sie einen Überblick über die Möglichkeiten und die Grenzen dieser Technologie. Sie erhalten eine Einführung in die Thematik sowie Informationen zum Installieren, Konfigurieren und Ausführen von Xen.

Virtuelle Computer müssen in der Regel die Hardware emulieren, die für das jeweilige System erforderlich ist. Der Nachteil dabei ist, dass die emulierte Hardware viel langsamer als echte Hardware ist. Xen geht daher einen anderen Weg. Es beschränkt die Emulierung auf so wenige Elemente wie möglich. Um dies zu erzielen, arbeitet Xen mit Paravirtualisierung. Hierbei handelt es sich um ein Verfahren, das virtuelle Computer der zu Grunde liegenden Hardware gegenüber ähnlich, aber nicht identisch präsentiert. Daher werden Host- und Gastbetriebssystem auf Kernel-Ebene angepasst. Anwendungen auf Benutzerebene bleiben unverändert. Xen steuert die Hardware mithilfe eines Hypervisors und eines steuernden Gastsystems, das auch als Domain-0 bezeichnet wird. Diese stellen alle erforderlichen virtuellen Block- und Netzwerkgeräte bereit. Die Gastsysteme nutzen diese virtuellen Block- und Netzwerkgeräte, um das System auszuführen und um Verbindungen zu anderen Gastsystemen oder dem lokalen Netzwerk herzustellen. Wenn mehrere physische Computer, auf denen Xen ausgeführt wird, so konfiguriert werden, dass die virtuellen Block- und Netzwerkgeräte verfügbar sind, ist es sogar möglich, ein Gastsystem im laufenden Betrieb von einem physischen Computer auf einen anderen zu migrieren. Ursprünglich wurde Xen entwickelt, um bis zu 100 Gastsysteme auf einem einzelnen Computer auszuführen. Diese Anzahl ist jedoch stark von den Systemanforderungen der laufenden Gastsysteme abhängig, insbesondere von der Arbeitspeicherauslastung.

Um die Prozessorlast so gering wie möglich zu halten, bietet der Xen-Hypervisor drei unterschiedlicher Ablaufplaner. Der Ablaufplaner kann auch geändert werden, während das Gastsystem ausgeführt wird, wodurch sich die Priorität des laufenden Gastsystems ändern lässt. Auf einer höheren Ebene kann die Nutzung der verfügbaren Prozessorleistung auch durch Migrieren eines Gastsystems optimiert werden.

Das XEN-Virtualisierungssystem hat jedoch auch einige negative Auswirkungen hinsichtlich der unterstützten Hardware. Verschiedene proprietäre Treiber, beispielsweise von Nvidia oder ATI, funktionieren nicht erwartungsgemäß. In diesen Fällen müssen Sie, soweit verfügbar, die Open-Source-Treiber verwenden, auch wenn diese ggf. nicht die volle Chip-Funktionalität unterstützen. Auch diverse WLAN-Chips und Cardbus-Bridges werden von Xen nicht unterstützt. Die Version 2 von Xen bietet keine Unterstützung für PAE (Physical Address Extension), weshalb maximal 4 GB Arbeitsspeicher unterstützt werden. ACPI wird nicht unterstützt. Die Energieverwaltung und andere Modi, die von ACPI abhängig sind, funktionieren nicht. Eine weitere Einschränkung von Xen ist, dass es zurzeit nicht möglich ist, ein Block-Gerät lediglich zu booten. Zum Booten ist es grundsätzlich erforderlich, in Domain-0 über den richtigen Kernel und die richtige initrd zu verfügen.

Abbildung 17.1. Überblick über Xen

Überblick über Xen

17.1. Installation von Xen

Die Installation von Xen umfasst die Einrichtung einer Domain-0-Domäne und die Installation von Xen-Gästen. Stellen Sie zunächst sicher, dass alle erforderlichen Pakete installiert sind. Bei diesen handelt es sich um python, bridge-utils, xen, xen-tools, xen-tools-ioemu und ein kernel-xen-Paket. Wenn Sie Xen bei der Installation auswählen, wird Xen zur GRUB-Konfiguration hinzugefügt. In anderen Fällen machen Sie einen Eintrag in boot/grub/menu.lst. Dieser Eintrag sollte in etwa folgendermaßen aussehen:

title Xen3
    kernel (hd0,0)/boot/xen.gz
    module (hd0,0)/boot/vmlinuz-xen <parameters>
    module (hd0,0)/boot/initrd-xen

Ersetzen Sie (hd0,0) durch die Partition, auf der sich Ihr /boot-Verzeichnis befindet. Weitere Informationen hierzu finden Sie in Kapitel 9, Der Bootloader. Ersetzen Sie <parameters> durch die Parameter, die normalerweise zum Booten eines Linux-Kernel verwendet werden. Booten Sie anschließend im Xen-Modus neu. Dadurch wird der Xen-Hypervisor und ein geringfügig geänderter Linux-Kernel als Domain-0 gebootet, der den größten Teil der Hardware steuert. Abgesehen von den bereits erwähnten Ausnahmen sollte alles wie gewohnt funktionieren.