Xen 3 wird zur VMware-Alternative

12.01.2006
Von 
Andrej Radonic ist Experte für Virtualisierung, Cloud-Technologien und Open Source Anwendungen. Der Fachbuchautor ist Vorstand der interSales AG und entwickelt für mittelständische Unternehmen anspruchsvolle E-Commerce Lösungen.
Die freie Software unterstützt die Virtualisierungsfunktionen der neuen Prozessorgeneration und kann damit beliebige Gastsysteme ausführen.
Xen ist ein "Virtual Machine Monitor", der eine Abstraktionsschicht zwischen Gast, Betriebssystem und der Hardware einzieht.
Xen ist ein "Virtual Machine Monitor", der eine Abstraktionsschicht zwischen Gast, Betriebssystem und der Hardware einzieht.

Angesichts der allgemein geringen Server-Auslastung liegt der Gedanke nahe, mehrere Systeme parallel auf einer Hardware zu betreiben. Ein einfaches, häufig praktiziertes Beispiel ist das Aufteilen von Mail-, Web- und Datenbank-Servern auf einzelne virtuelle Maschinen.

Steckbrief

Xen wird von der University of Cambridge entwickelt und unterliegt der GNU General Public License (GPL). Das Projekt kooperiert seit Anbeginn eng mit der IT-Industrie, insbesondere mit Intel, Sun, HP, Novell, Red Hat, AMD und IBM.

Xen ist ein "Virtual Machine Monitor" (VMM), dessen Kernkomponente der Hypervisor ist. Dieser fungiert als eine Art Meta-Betriebssystem und bildet eine abstrahierende Softwareschicht zwischen der Hardware und den Gast-Betriebssystemen. Diese Architektur wird als Paravirtualisierung bezeichnet: Der Kernel des Xen-Betriebssystems muss angepasst werden, damit der Gast fortan mit der Hypervisor-Schicht und nicht direkt mit der Hardware kommuniziert.

Xen unterstützt derzeit die Gast-Betriebssysteme Linux, FreeBSD, NetBSD und Plan 9, eine Portierung auf Solaris soll bald abgeschlossen sein. Die Software läuft auf 32- und 64-Bit-Prozessoren der x86-Familie und soll in naher Zukunft auch für Power-PC und ARM verfügbar sein.

Pro und Kontra

-- Keine Lizenzkosten, da Open Source;

- sehr performant

- breite Unterstützung durch die Industrie;

- zahlreiche Produktiv- szenarien

- Auf herkömmlichen Prozessoren ohne Hardwarevirtualisierung ist eine Anpassung des Gastsystems notwendig;

- bisher nur für x86 Prozessoren verfügbar.

Mehr zum Thema

www.computerwoche.de/go/

569334: VMware versus Virtual Server und Xen;

569582: Open-Source- Virtualisierung Xen zielt auf Unternehmen;

550481: Virtual Server fordert VMware heraus.

Weitere Links

Xen-Homepage:

http://xensource.com;

Installations-How-tos: http://wiki.xensource.com/xenwiki/HowTos;

Installations-Script: http://www.xensource.com/xen/downloads/dl_x30isb.html;

Suse-Pakete: http://www.suse.de/~garloff/linux/xen;

Live Migration Guide: http://cosi.clarkson.edu/xen/documentation/live-migration.

Neuerungen in Xen 3

• Unterstützung virtualisierender Intel- und AMD-Prozessoren;

• Unterstützung von SMP im Gast-OS;

• Unterstützung für 64-Bit-Prozessoren;

• Gastsysteme können dynamisch auf Prozessoren verteilt werden;

• Cluster-Management, etwa für dynamische Lastenverteilung innerhalb eines Clusters;

• verbesserte Quality-of- Service-Features;

• erweiterte Administrationsmöglichkeiten.

Für eine derartige Server-Konsolidierung sind Performance sowie ein hoher Isolationsgrad der einzelnen virtuellen Maschinen von entscheidender Bedeutung. Denn Hardware- und Administrationskosten können durch die Server-Virtualisierung nur dann reell und effektiv gesenkt werden, wenn möglichst viele Gast-Betriebssysteme ohne Geschwindigkeitsverlust pro Hardwareeinheit laufen können, wenn die Stabilität der Gäste auch dann gewährleistet ist, falls eine der virtuellen Maschinen ausfällt oder instabil wird, und wenn die verarbeiteten Daten effektiv voneinander abgeschottet werden können - im Arbeits- und Festspeicher wie auch im Netzwerk.

Xen sieht sich aufgrund seiner effektiven Systemarchitektur als Vorreiter in Sachen Performance. Studien bescheinigen ihm mit zwei bis fünf Prozent eine sehr geringe Verlustrate gegenüber dem "blanken Eisen". Software auf Basis von Emula- tionstechnik (beispielsweise "VMware GSX", "MS Virtual Server") muss hier Overhead-bedingte Einbußen von 20 bis 25 Prozent hinnehmen. Andere Systeme wie "Denali" bringen es zwar auf eine ähnliche Geschwindigkeit, setzen aber die Anpassung sämtlicher Appli- kationen voraus und errichten damit für einen breiten Einsatz eine kaum unüberwindbare Hürde.

Das erst kürzlich veröffentlichte Xen 3 verkörpert das letzte Ziel aller Virtualisierungsansätze: die vollständige Virtualisierung, die direkt im Prozessor stattfindet und somit Anpassungen im Kernel des Betriebssystems überflüssig macht. Dies ist nur möglich im Zusammenspiel mit den Virtualisierungstechniken der Prozessorfamilien von Intel (Virtualization Technology VT beziehungweise "Vanderpool") und AMD (Pacifica). Damit ist Xen 3 in der Lage, unmodifizierte Gastsysteme, darunter auch Microsoft Windows, als Gast auszuführen. Derzeit sind die Chips aber noch nicht in Stückzahlen verfügbar, so dass man auf erste eigene Tests noch ein wenig wird warten müssen.

Linux-Unterstützung

Zahlreiche Distributionen wie Suse 9.3 und 10, Red Hat, Fedora Core 4, Debian, NetBSD und Ubuntu verfügen inzwischen über Xen-Support und ermöglichen das Einrichten virtueller Maschinen, wobei zu wünschen und wohl auch zu erwarten ist, dass künftige Versionen dieser Produkte komfortablere Techniken für die Installation von Gastsystemen bieten werden. Derzeit umfasst nur Suse 10 das aktuelle Xen 3 (allerdings in der inzwischen veralteten Preview-Fassung), die übrigen Distributionen liefern noch die Vorversionen 2.06 oder 2.07 mit.

Testlauf von der Live-CD

Um einen ersten schnellen Eindruck zu bekommen, kann man auf eine zeitraubende Installation sogar ganz verzichten: die Xen-Demo-CD bootet einen Linux-Wirt in der Domain0 (oder dom0, auch "privilegierte Domain" genannt, da sie die Steuerung der Gastsysteme übernimmt) und erlaubt die parallele Ausführung diverser Gastsysteme wahlweise unter Debian, NetBSD und FreeBSD in der domU ("Unprivileged Domain"). Ohne Installation kommt man auch mit Xenoppix zum Multi-OS-Server. Dabei handelt es sich um ein modifiziertes Knoppix als 4 GB großes DVD-Image, welches Gastsysteme unter NetBSD und Plan9 ausführen kann.

Unter Suse 9.3 Professional sind hierzu die Xen-Pakete mit Yast zu installieren. Alsdann bootet man den Rechner neu und wählt als Bootkernel "Xen". Suse startet dabei den Xen-Microkernel, welcher wiederum den modifizierten Linux-Kernel lädt, sowie den "xend"-Prozess, der für das Management der virtuellen Maschinen zuständig ist. Als nächstes muss das Gast-Betriebssystem in einem eigenen Root-Filesystem auf dem Host installiert und für die Nutzung als Xen-domU konfiguriert werden.

Der erste Start eines Gastes erstaunt sodann durch die Schnelligkeit des Systems, die sich zumindest subjektiv nicht von der des darunter liegenden Betriebssystems unterscheidet. Eine korrekte Konfiguration vorausgesetzt, ist das Gastsystem ohne weiteres Zutun bereits ins Netz eingebunden - über das virtuelle VIF Interface und die Bridge xen-br0.

Feinschliff erforderlich

Trotzdem kommt man beim Einsatz in Produktionsumgebungen nicht umhin, das System in Hinblick auf den Ressourcenbedarf sowie die Sicherheitsaspekte zu optimieren, beispielsweise durch Generierung eines für den Gast angepassten schlankeren Kernels. Dabei ist zu beachten, dass dem Gast-Kernel die be- nötigten Module bereitgestellt werden müssen, beispielsweise über den "initrd"-Mechanismus. Die beste Konfiguration des Kernels für die Gastmaschine zu finden bedarf unter Umständen einiger Experimente - so kann beispielsweise das Vorhandensein von AGP-Treibern zum Absturz der virtuellen Maschine führen. Außerdem empfiehlt das Handbuch, die TLS-Bibliotheken (/lib/tls) zu deaktivieren, da diese zu Xen inkompatibel sind und sich sehr ungünstig auf die Performance auswirken können.

Grundsätzlich lässt sich jedes Linux-System, für das ein Xen-Kernel-Patch verfügbar ist, nachträglich zum Xen-Host umfunktionieren. Für viele Distributionen existieren fertige Installationspakete. Alternativ kann Xen relativ problemlos aus den Quellen kompiliert und installiert werden. Die Pakete umfassen den Xen-Kernel, die Management-Programme sowie die (sehr gute) Dokumentation. Für Red Hat 4.1 existiert eine Routine im Betastatus, welche den Installationsvorgang automatisieren soll.

Das Aufsetzen von Gastmaschinen sollte gut geplant sein. Um maximale Sicherheit sowie minimalen Verwaltungsaufwand zu gewährleisten, empfiehlt es sich, den Hypervisor auf einem weitgehend abgespeckten System aufzubauen und darauf nur unbedingt benötigte Services auszuführen. Hierzu bietet sich der Einsatz spezieller Minimaldistributionen wie eisfair.org an, die mit einem Minimum an Aufwand installiert und betrieben werden können.

Mehrere Gastsysteme

Sollen mehrere Gastsysteme auf Basis der gleichen Distribution aufgesetzt werden, lässt sich der Einrichtungsaufwand deutlich reduzieren, indem man zunächst eine virtuelle Maschine als Vorlage anlegt, die im Folgenden kopiert und durch Duplizieren der Xen-Konfigurationsdatei unter /etc/xen neu eingerichtet werden kann.

Anschließend gilt es, aus mehreren Möglichkeiten, das Gastsystem in einem Root-Filesystem unterzubringen, sinnvoll zu wählen. Der simpelste Ansatz dürfte der bereits beschriebene sein, das Gastsystem als Datei-Image anzulegen. Das I/O-Verhalten ist dabei jedoch nicht optimal, so dass mit Leistungseinbußen gerechnet werden muss, zumal kaum Flexibilität bei der Ein- und Zuteilung des Plattenplatzes gegeben ist. Besser ist es, eine real vorhandene System-Partition mit einem Root-Filesystem zu nutzen. Viele Distributionen bieten eine Bootstrap-Installation an, mit der man automatisch direkt in eine Partition oder ein Root-FS installieren kann, beispielsweise Debian mit "Debootstrap" oder Suse mit "Yast dirinstall".

Lastverteilung und Failover

Um den Plattenplatz flexibel verwalten zu können, bietet sich im Allgemeinen die Nutzung eines logischen Laufwerks (LVM) statt einer statischen Partition an - der verfügbare Speicherplatz kann nachträglich auf einfache Weise erweitert und umkonfiguriert werden. Auch das Hosting von Gastsystemen auf NFS-Servern wird von Xen unterstützt, was sehr praktisch sein kann, jedoch unter Performance-Aspekten sorgfältig abgewogen werden sollte.

Neben seiner Stabilität und Geschwindigkeit bietet Xen ausgefeilte Mechanismen für den Highend-Einsatz: Die Fähigkeit der "Live Migration" eines Gastsystems von einem Rechner auf einen anderen stellt einerseits einen einfach handhabbaren Failover-Mechanismus dar, zum anderen kann er für die dynamische Lastverteilung eingesetzt werden. Die Live Migration kann interaktiv oder aber automatisiert abhängig von Auslastungsdaten oder einer "Panic"-Situation ausgelöst werden. Sie verschiebt eine virtuelle Maschine in mehrfachen Kopiervorgängen aus dem Speicher des alten Wirtsrechners in das RAM des neuen Rechners. Das Umschalten geschieht dabei für den Anwender kaum wahrnehmbar im Hintergrund, wobei auch die (virtuelle) MAC- sowie IP-Adresse auf den neuen Rechner umzieht.

Für die Live Migration gelten strenge Vorgaben: So muss die Hardware der beteiligten Rechner ähnlich sein, sie müssen sich im gleichen Subnetz befinden, und alle Xen-Maschinen müssen Zugriff auf das gleiche Dateisystem haben, sei es über NFS, AFS, SAN oder NAS. Wenig überraschend ist, dass zudem umfangreiche Konfigurationsarbeiten notwendig sind.

Fazit

Xen schickt sich an, den Virtualisierungsmarkt aufzumischen. Zum einen scheint die Technologie vermehrt Einzug in geschäftskritische Bereiche zu finden, zum anderen geraten etablierte Marktteilnehmer unter Zugzwang. Es überrascht daher nicht, dass die zu EMC gehörende Firma VMware in kurzer Folge ein Community-Open-Source-Programm für seinen ESX-Server gegründet, den kostenlosen VMware-Player auf den Markt gebracht und angekündigt hat, in Kürze eine Paravirtualisierungs-Version seiner Produkte herausbringen zu wollen. Deren Erfolg wird systembedingt jedoch sehr stark von der Unterstützung der Betriebssystem-Hersteller abhängen. (ws)