Linux und Xen

Diesen Beitrag wollte ich schon eine ganze Weile schreiben, aber bisher existierte er nur in Form einiger Stichworte und Links... ;)

Da mein neuer Rechner eine CPU hat, die Virtualisierungsfunktionen unterstützt, habe ich mir den Luxus gegönnt Xen zu installieren. Xen ist ein Hypervisor, der es erlaubt, mehrere Betriebssysteme parallel auszuführen. Dabei wird zwischen zwei unterschiedlichen Gästen, den sogenannten Domains, unterschieden: Der privilegierten Domain 0 (dom0), die sich u.a. um den Hardwarezugriff kümmert und diese den anderen (unprivilegierten) Gästen - eine sog. domU - zur Verfügung stellt.

Um in der dom0 unter Linux eine nVidia-Grafikkarte mit den proprietären Treibern zum Laufen zu kriegen, ist ein kleiner Patch nötig, um dem Treiber zu erlauben, auch auf einem xen-Kernel zu laufen - nVidia hat dies mit einer Abfrage im Anpassungsmodul unterbunden... Diese Seite erklärt, wie man es dennoch zum Laufen bringt.

Mit einem angepassten System in einer domU ist die Hardware-Virtualisierungsunterstützung des Prozessors noch nicht nötig. Diese wird erst erforderlich, wenn man ein nicht angepasstes System (z.B. Windows) in einer DomU laufen lassen möchte. Dass dies möglich ist, habe ich direkt zu Anfang mal mit Windows Vista ausprobiert: Vista im Fenster: PartitionierenVista im Fenster: Installation abgeschlossenVista im Fenster: Installieren

Da entweder Vista nicht so recht mit Xens emulierter Netzwerkkarte (oder andersrum?) zusammenarbeiten wollte, ist auch hier ein kleiner Workaround nötig: Anstelle der standardmäßig genutzten ioemu-Treiber in Xen nutzt man eine NE2k-PCI Emulation, die leider nur 10MBit/s erreicht. Wie das geht, kann man hier nachlesen. Eine Ergänzung zu dieser Anleitung: Um den Treiber auf Vistas Partition transportieren zu können, kann man entweder den beschriebenen Weg über ein ISO-Image gehen oder die Partition direkt unter Linux mounten. Dies ist mit dem Tool lomount und dem ntfs-3g Treiber leicht möglich:

lomount -diskimage /dev/vg/vista -partition 1 /mnt/vista -t ntfs-3g

Dabei ist /dev/vg/vista die Partition (oder Datei) in der Vistas Festplattenimage liegt, /mnt/vista der Mountpoint und mit -partition 1 wird angegeben, dass die erste Partition aus der virtuellen Festplatte gemountet werden soll. Danach kann man die Treiberdatei ganz bequem an die gewünschte Stelle kopieren.

Möchte man die Konfiguration der domU erstmal nur schnell testen, kann man die Domain mittels

xm create configfile.cfg

starten. Mit dem optionalen Parameter -c kann man die aktuelle Konsole direkt mit der Textkonsole der domU verbinden, um alle Ausgaben mitzukriegen - dies funktioniert bei Windows nicht. Die Konsolenbindung löst man mittels STRG + ALT GR + 9 (bzw. ^]). Ist man mit der Konfiguration zufrieden und plant sie häufiger zu nutzen, kann man sie mittels

xm new configfile.cfg

dauerhaft zu Xens Konfiguration hinzufügen und von nun an mit

xm start DOMAINNAME

starten. (DOMAINNAME ist der Name, den man der Domain in der Konfigurationsdatei gegeben hat - er muss eindeutig sein.)

Einige sehr nützliche Anleitungen zur Einrichtung und Nutzung von Xen unter Gentoo finden sich hier im Gentoo-Wiki.

Bleibt am Schluss nur zu sagen, dass das Ganze bei mir bisher recht gut funktioniert: Ich hatte vor dem neuen Rechner hier einen Desktop-Rechner und einen Server laufen. Auf dem Server liefen ein Mailserver samt Spam- und Virenscanner, ein Webserver, DHCP, DNS und noch einige kleinere Dienste. Dieser ganze Server ist dann als Xen-domU auf den neuen Rechner umgezogen und verrichtet seitdem hier seine Dienste :)