Servervirtualisierung – Vmware, Xen oder Virtuozzo teilen einen Server in viele virtuelle Maschinen. Dabei setzen die Programme sehr unterschiedliche Verfahren ein. Der IT-Manager muss entscheiden, welche Technik am besten zur Infratruktur und dem Geldbeutel des Unternehmens passt.
Administratoren stellt sich nicht mehr die Frage, ob, sondern wie sie ihre Server virtualisieren. Die Rechenkraft moderner Rechner reicht locker aus, um mindestens ein Dutzend normal belasteter Server mit ein bis zwei Netzwerkdiensten zu betreiben. Die Praxis hat gezeigt, dass mehrere parallel operierende kleine Maschinen zuverlässiger arbeiten als eine mit vielen Diensten in lediglich einer Systeminstanz. Je nach Virtualisierungs-Plattform können IT-Verwalter dabei unterschiedliche Betriebssysteme parallel nutzen.
Eine Szenerie, die recht häufig anzutreffen ist, ist ein Exchange-Server unter Windows, welchem der Administrator einen Postfix-SMTP-Server unter Linux als SMTP-Smarthost vorschaltet.
Andere Unternehmen vertrauen auf homogene Netzwerke, in denen alle Server mit dem gleichen Betriebssystem operieren. Hier könnte die Virtualisierung Ressourcen verschwenden, wenn sie jede virtuelle Instanz mit einem eigenen System laufen lässt. Abhilfe schaffen da Virtualisierungstools, die auf der System- und nicht der Maschinenebene ansetzen.
Applikationen einsperren
Für homogene Serverlandschaften gibt es Virtualisierungslösungen auf Basis des Host-Betriebssystems. Die Applikationen teilen das System in einzelne Partitionen auf, welche unabhängig voneinander arbeiten und eigene Benutzerverzeichnisse verwalten. Es gibt dabei nur einen physischen Systemkern, welcher alle Hardware und den Arbeitsspeicher steuert. Mechanismen innerhalb des Kerns schotten die privaten Systeminstanzen voneinander ab und weisen ihnen definierte Ressourcen zu.
Zu den bekanntesten Lösungen dieser Kategorie gehören die Container aus Solaris 10. Unter Linux gibt es quelloffene Programme wie »OpenVZ« und den »Linux-Vserver«. Beide Projekte arbeiten daran, dass ihre Kern-Modifikationen Teil des regulären Linux-Kernel-Trees werden. Sonst muss sich jeder Anwender zuerst einmal einen neuen Kernel bauen. Die kommerzielle Variante von Open-VZ heißt Virtuozzo und stammt von der Firma Swsoft. Neben einer Linux- offeriert der Hersteller auch eine Windows-Version des Tools.
Unter Linux erlaubt Virtuozzo, verschiedene Distributionen parallel zu betreiben. Das stellt kein besonders großes Problem dar, weil Ubuntu, Suse, Fedora Core oder Centos keine strikten Anforderungen an die Kernelversion stellen. Diese Virtualisierung auf Systemebene verbraucht nur wenige Ressourcen pro Instanz und kann daher selbst auf vergleichsweise schwach ausgerüsteten Maschinen eine gute Performance erreichen. Da die einzelnen Virtual-Private-Server (VPS) sich jedoch die Kernressourcen teilen müssen, können die Instanzen einander negativ beeinflussen, wenn sie viele I/O-Zugriffe tätigen. VPS empfehlen sich daher weniger für Dienste mit hohen Anforderungen an die Systemgeschwindigkeit. In der Praxis setzen vor allem Internet-Service-Provider Virtuozzo und ähnliche Produkte ein. Die Lasten einzelner Standard Web-Server lassen sich recht gut kalkulieren und so besteht wenig Gefahr, dass die VPS einander verlangsamen. Die Software erlaubt es zudem, einzelne VPS zur Laufzeit von einem Virtuozzo-Server auf einen anderen zu verschieben. Anders als Vmware fordert Virtuozzo hierfür kein SAN. Eine Gigabit-Ethernet-Verbindung genügt, um VPS umzuziehen. Mit der passenden Option können Anwender einen Virtuozzo-Cluster mit Failover-Funktion bauen. Fällt ein Host aus, startet der zweite die VPS nach kurzer Zeit neu. Der Server-Hersteller Thomas Krenn offeriert eine fertige Cluster-Lösung, bestehend aus zwei Linux-Servern mit Virtuozzo und der Management-Applikation Plesk.
Ein wenig problematischer stellt sich die Situation unter Windows dar. Da Microsoft die Quellen des Windows-Kerns nicht publiziert, können die Swsoft-Entwickler ihr Virtuozzo nicht so direkt in den Kernel einbinden, wie das bei Linux der Fall ist. Unter Windows fallen die Performance-Verluste parallel arbeitender VPS stärker auf. Im Labor Poing betreibt Network Computing seit geraumer Zeit einen Virtuozzo-Server auf Basis von Windows-2003. Einzelne VPS mit simplen Diensten funktionieren ohne Fehler und mit guter Leistung. Sobald ein VPS jedoch unter hoher I/O-Belastung steht, geht die Leistung dieser und parallel laufender Maschinen spürbar zurück.
Im Test ließ Network Computing hierzu in einem VPS einen File-Server arbeiten, während in einem anderen Server ein Peer-to-Peer-Dienst lief. Kopieren mehrere Windows-Clients parallel große Datenbestände auf den File-Server, geht der Durchsatz des Peer-to-Peer-Clients deutlich zurück. Daran ist nicht allein die LAN-Bandbreite des Netzwerkadapters im Host Schuld. Das gleiche Setup unter Vmware zeigt deutlich geringere Leistungsverluste. Im Gegenzug erreicht die Vmware-Maschine im Peer-to-Peer-Test stets geringere Durchsätze im Vergleich zur VPS ohne Last.
Da Virtuozzo sehr tief in den Systemkern eingreift, reagiert die Software empfindlich auf kritische Systemupdates von Microsoft. Da die Gates-Company ihre Updates vor der Freigabe nicht auf Verträglichkeit mit Virtuozzo prüft, muss Swsoft dies selbst erledigen. Nach der Installation lenkt die Virtualisierungssoftware den Pfad zu Windows-Updates auf einen Swsoft-Server um. Fortan bezieht die Windows-Maschine ihre Updates nicht mehr direkt von Microsoft, sondern vom Virtuozzo-Hersteller, und erhält von dort nur geprüfte Updates.
In einem zweiten Labortest wird das allerdings einem x64-Testserver von Network Computing zum Verhängnis. Das Labor-Team richtet zunächst den Windows-2003-R2-x64-Server mitsamt allen aktuellen Updates ein. Darunter offenbar auch solche Patches, die Virtuozzo 3.51 nicht verträgt. Die anschließende Installation der Virtualisierungslösung endet im Blue-Screen. Jetzt steht eine Neuinstallation des Rechners ohne Systempatches an, gefolgt von Virtuozzo und den von Swsoft freigegebenen Updates.
Fazit: Virtuozzo macht in der Version 3.51 unter Linux eine deutlich bessere Figur als unter Windows. Die VPS kommen einander weniger in die Quere, und der Administrator behält die Freiheit, trotz auf System basierender Virtualisierung verschiedene Distributionen nutzen zu können. Die Einschränkungen unter Windows beruhen in erster Linie auf den fehlenden Kernel-Sourcen und der Tatsache, dass sich Swsoft einige Türen in den undokumentierten Windows-Kern per Re-Engeneering ergaunern muss. Laut Hersteller gibt sich Microsoft in der Zwischenzeit deutlich kooperativer. So soll Mitte dieses Jahres die Version 4 von Virtuozzo auf den Markt kommen. Die Windows-Variante des Programms soll eine stark verbesserte Kern-Integration aufweisen und daher viele der angesprochenen Probleme beheben. Im Gegenzug hat Redmond vor einigen Monaten aber die Lizenzpolitik verschärft. Früher genügte eine einzelne Windows-Lizenz für einen Virtuozzo-Server, unabhängig davon, wie viele VPS parallel darauf laufen. Das hat die Gates-Company nun dahin gehend geändert, dass jede VPS nun eine eigene Windows-Lizenz erfordert.
Maschinen fälschen
Mehr Popularität als Virtual-Private-Server genießen bei den Anwendern die virtuellen Maschinen. So genannte Hypervisors oder Virtual-Machine-Manager (VMM) erzeugen vollständig virtualisierte PCs. Daher kann der Nutzer innerhalb einer VM nahezu jedes verfügbare Betriebssystem starten, unabhängig davon, was physisch auf dem Server läuft. Der Hypervisor reicht unkritische CPU-Kommandos ohne Zeitverlust an die physische CPU weiter. Nur bei kritischen System-Calls wie Zugriffen zur Hardware oder dem Hauptspeicher wird der VMM aktiv. Dann biegt er den VM-Call um und ersetzt ihn mit den für die VM vorgegebenen Daten. Eine »brave« VM, die wenig Systemcalls ausführt, kann daher bei fast voller CPU-Geschwindigkeit operieren, da der Hypervisor nur selten eingreift. VMs, die sich jedoch schlecht benehmen und kontinuierlich versuchen, direkt auf die Hardware zuzugreifen, müssen mit Performance-Einbußen rechnen. Anwender von Lösungen wie Vmware kennen diesen Effekt. Während der Betriebssysteminstallation in einer VM kommt es oft zu Verzögerungen. Diese entsteht, wenn die Installationsroutine des Systems die Hardware-Konfiguration der VM ausgiebig untersucht und dabei zwangsläufig den Hypervisor unter Stress setzt.
Da immer mehr Anwender zum Hypervisor greifen, haben die CPU-Hersteller einige VMM-Funktionen direkt in den Prozessor übernommen. Bei einer x86- oder x86-64-Architektur arbeiten Programme in vier so genannten Ringen. Der Ring 0 ist strikt dem Betriebssystem und den Hardware-Treibern vorbehalten (Kernel-Mode). Im Ring 3 arbeiten die eigentlichen Applikationen (User-Mode). Die Ringe 1 und 2 bleiben in der Regel ungenutzt. IBMs OS/2 ließ einige Gerätetreiber aus Sicherheitsgründen im Ring 2 statt 0 laufen. Anders als bei Windows kann bei OS/2 beispielsweise der Grafikkartentreiber komplett abstürzen, ohne dass das System selbst im Blue-Screen-of-Death endet. Das führt im Gegenzug dazu, dass sich OS/2 mit nur wenigen VMMs verträgt. Diese setzen sich im Ring 0 fest und bilden den Ring 0 der VMs im Ring 1 ab. Somit können sie die kritischen CPU-Aufrufe abfangen und umbiegen.
Intel-CPUs mit VT und AMD-CPUs mit Pacifica beherrschen Virtualisierungskommandos. Dabei generieren die Prozessoren eine physischen und mehrere logische Ring-0-Umgebungen. Es bedarf nach wie vor einer Hypervisor-Software, die sich im Ring 0P ansiedelt. Diese kann dann aber mit weniger Arbeitsaufwand viele parallele Ring-0V-VMs verwalten. Ähnliche Konzepte finden sich bei IBMs Power-Prozessor. Hier stopft Big Blue den eigentlichen Hypervisor gleich in die System-Firmware, so dass sich ein AIX-Server ohne zusätzliche Software virtualisieren lässt.
Hypervisors gibt es in zwei unterschiedlichen Varianten. Die einen setzen direkt auf der Hardware auf und können damit die Ringe und auch die neuen VT-Erweiterungen der CPUs ansteuern. Zu dieser Klasse zählen der Vmware-ESX-Server und das quelloffene Xen. Andere Lösungen arbeiten innerhalb eines regulären Host-Betriebssystems wie Windows oder Linux. Hier muss sich der Hypervisor mit System-Calls des Host-OS herumschlagen, statt direkt den Speicher- und Hardware-Zugriff zu verwalten. Hosted-Products wie die Vmware-Workstation, der Vmware-Server, Microsofts Virtual-PC und Virtual-Server oder die Paralleles-Workstation arbeiten daher deutlich langsamer als Lösungen mit eigenem Systemkern.
Die Virtualisierungslösungen von Microsoft hat Network Computing derzeit nicht im Test, da die Redmonder die aktuellen Versionen nicht weiterentwickeln werden. Beide bestehenden Produkte basieren im Kern nach wie vor auf der Connectix-Virtual-Machine die Microsoft zugekauft hat. Für den Longhorn-Server als Nachfolger des Windows-2003-Servers entwickelt die Gates-Company allerdings etwas Neues. Anders als die aktuellen Hosted-Products Virtual-PC und Virtual-Server soll die Longhorn-Virtualisierung tief in den Windows-Kern eingreifen und daher auch die Virtualisierungsfunktionen der Server-CPUs nutzen.
Produkte wie die Paralleles-Workstation, Vmware-Workstation und Virtual-Box zielen auf den Client-Einsatz und spielen bei der Servervirtualisierung keine Rolle. Dennoch dürfte sich der eine oder andere Administrator dafür interessieren. Von der Virtual-Box gibt es eine kostenfreie Version für Windows oder Linux. Für einfache Systemtests oder Demo-Installationen reicht diese Software aus, und der Anwender kann sich das Geld für die Vmware Workstation sparen. Paralleles hingegen unterstützt OS/2 oder das Nachfolgesystem Ecomstation, die beide nicht unter Vmware arbeiten.
Das bekannteste Hosted-Product, die Vmware-Workstation, kommt in Kürze in der Version 6 auf den Markt. Vmware verstärkt in diesem Release die Entwicklerfunktionen. Anwender, welche die komplexen Funktionen der Workstation nicht benötigen, können Vmware dennoch umsonst Nutzen. Der freie Vmware-Player lässt bestehende Maschinen ablaufen. Dafür kann der Benutzer keine neuen erstellen. Das wiederum kann der kostenfreie Vmware-Server für Linux oder Windows, und mit dem Server erstellte VMs arbeiten im Player.
Für Hostet-Products gilt im Übrigen: Die Linux-Versionen arbeiten grundsätzlich schneller als die Windows-Pendants.
Xen wird erwachsen
Für viel Furore hat das quelloffene Xen in den vergangenen Monaten gesorgt. Dieser Hypervisor offeriert zwei Betriebsmodi: Para- und volle Virtualisierung. Bei der Paravirtualisierung muss das jeweilige VM-Betriebssystem einen modifizierten Systemkern einsetzen. Der Grund hierfür ist einleuchtend: Ein Betriebssystem, welches bewusst in einer VM arbeitet, kommt mit einem Systemkern aus, der keine kritischen Ring-0-Aufrufe tätigt. Damit kann sich der Hypervisor im Gegenzug viel Arbeit sparen, und die VM läuft recht schnell. Paravirtualsierung funktioniert aber leider nur mit quelloffenen Betriebssystemen wie BSD oder Linux, da Microsoft leider keinen Windows-2003-Server mit Xen-U-tauglichem Kern ausliefert.
Dennoch arbeitet auch Windows unter Xen. Das erfordert jedoch Xen 3.x mit dem vollen Virtualisierungsmodus und einen VT- oder Pacifia-Prozessor.
In der Praxis funktioniert Xen recht gut, aber nur dann, wenn der Administrator genau weiß, was er tut. Die Installation virtueller Maschinen erfordert Handarbeit in Config-Dateien. Um eine paravitualisierte Maschine zu bauen, muss sich der Verwalter mit Installationstools wie »debootstrap« auseinandersetzen und etliche Config-Files von Hand erstellen. Im Betrieb mit mehreren Xen-Hosts kann der IT-Manager VMs zur Laufzeit über das LAN von einem Rechner zum anderen verschieben.
Nach wie vor beurteilt Network Computing das freie Xen als »Proof-of-Conzept«-Software für Tüftler, die in der Praxis nur selten Verwendung finden wird. Negativ fallen bei Xen vor allem die starren Ressource-Zuweisungen für Platte und RAM auf, welche Vmware dynamisch vergeben kann. Dafür arbeitet Xen als Kernel-integrierter Hypervisor schneller als Hosted-Products wie der Vmware-Server oder die -Workstation. Nur der Vmware-ESX-Server ist schneller – und deutlich teurer.
Mittlerweile gibt es mehrere kommerzielle Implementierungen von Xen. Neben Xen-source offeriert auch Virtual Iron eine Komplettlösung auf Basis von Xen, und hier gibt es komfortable Management-Tools. Virtual Iron setzt, ähnlich dem Vmware-ESX-Server, eine dezidierte Virtualisierungsmaschine ein, wobei die Verwaltungssoftware auf einem anderen Rechner arbeitet. Um mehr Popularität zu erlangen, offeriert Virtual Iron eine freie Version für nicht-kommerzielle Nutzung des Servers zum Download (siehe auch First Look Seite12).
Fazit: Xen wird erwachsen, und spätestens kommerzielle Implementierungen wie Virtual-Iron 3 eignen sich für den Einsatz im Unternehmen. Dabei bleiben selbst bei kommerziellen Versionen die Preise weit hinter dem zurück, was Vmware verlangt. Interessierte Administratoren können unverbindlich die kostenfreie Virtual-Iron-Version ausprobieren.
Alles neu macht ESX 3
Die unbestritten professionellste Hypervisor-Lösung ist der Vmware-ESX-Server. Diese Software bootet ihren eigenen Kernel und hat daher die Server-Hardware absolut unter Kontrolle. Vmware setzt ein eigenes, clusterfähiges Dateisystem ein. So können mehrere ESX-Server virtuelle Maschinen sehr schnell über das SAN von einem Node zum anderen verschieben. Für Benutzer des ESX-2-Servers bringt das Upgrade auf die Version 3 viele, teils sehr gewöhnungsbedürftige Änderungen. Einzelne ESX-Server lassen sich beispielsweise nicht mehr über das Web-Interface steuern. Für die Konfiguration braucht es einen besonderen Virtual-Center-Client, der – Sstand heute – nur für Windows verfügbar ist. In der Praxis werden Unternehmen ohnehin keine einzelnen ESX-Maschinen betreiben. Für das Management eines ESX-Clusters bedarf es dann eines Management-Servers, der aber selbst innerhalb einer VM laufen darf.
ESX 3 wartet mit einem völlig überarbeiteten Netzwerk-Support auf. Dieser verwaltet virtuelle LAN-Adapter je nach Funktion und unabhängig von physischen Ports. Virtuelle Maschinen, ESX-Kernel und die Verwaltungskonsole arbeiten stets auf getrennten logischen LAN-Adaptern. Der ESX-Server unterstützt dabei VLANs, so dass auch ein einzelner physischer LAN-Adapter getrennte IP-Segmente betreiben kann, sofern es die LAN-Switches unterstützen. Der Kernel beherrscht nun iSCSI für den SAN-Zugriff. Neu ist dabei auch ein automatischer Failover- und Load-Balancing-Modus. Startet der Administrator eine virtuelle Maschine, entscheidet das Cluster-Management, welchem gering belasteten physischen Server es die VM zuweist. Fällt ein ESX-Server aus, starten andere die dabei ausgefallenen VMs neu.
Im Labor setzt Network Computing aktuell drei ESX-Server auf Maschinen von Dell, Wortmann und der Thomas Krenn AG ein. Alle drei Server arbeiten mit baugleichen Dual-Core-Xeon-CPUs und 8 GByte RAM. Als Cluster-Storage stehen sowohl Fibre-Channel als auch iSCSI-Luns zur Verfügung. Das Wissen des bisher aktiven Vmware-ESX-2.5.3-Clusters reicht für das Labor-Team allein nicht aus, um mit der neuen Plattform zurechtzukommen. Erst ein Vor-Ort-Termin mit Technikern von Vmware bringt den neuen Cluster zum Laufen. Die Performance der virtuellen Maschinen ist sehr gut, was bei der Stärke der neuen Host-Rechner auch nicht weiter verwundert. Negativ fällt hingegen die neue Management-Console auf. Alle Tasks brauchen deutlich länger als beim alten Virtual-Center. So kann es durchaus mehrere Sekunden dauern, bis eine Maschine nach dem Startkommando tatsächlich anläuft. Dafür hat Vmware an vielen Ecken Funktionen nachgerüstet, und alles läßt sich über die Konsole zentral verwalten.
Fazit: Der Vmware-ESX-Server ist nach wie vor der professionellste, schnellste und zuverlässigste Hypervisor auf der x86- und x86-64-Plattform – aber auch der teuerste. Umsteiger von ESX 2.x sollten auf jeden Fall eine Schulung besuchen oder sehr intensiv die Dokumentation der Version 3 studieren, da sich sehr vieles geändert hat. Wenn der Cluster einmal läuft und der Verwalter alle Funktionen kennt, wird das Management der virtuellen Infrastruktur zum Kinderspiel.
Schöne, virtuelle Welt
Viele Wege führen zu virtuellen Servern. Betreiber homogener Serverfarmen sollten auf jeden Fall die Entwicklung von Virtuozzo im Auge behalten. Unter Linux zeigt die Systemvirtualisierung ihre Strärken bereits recht gut. Unter Windows muss die Version 4 erst beweisen, ob die Kooperation mit Microsoft Früchte trägt und die VPS einander weniger stark ins Gehege kommen.
Xen zeigt als Open-Source-Produkt, dass auch kostenfreie Lösungen schnelle virtuelle Maschinen offerieren, selbst wenn der Verwalter sehr viel »zu Fuß« konfigurieren muss. Das nehmen ihm kommerzielle Implementierungen von Xen ab.
Der Vmware-ESX-Server bleibt die S-Klasse unter den Virtualisierungslösungen, sowohl was Performance, Funktionen als auch die Verwaltung angeht. Vmware läßt sich diesen Luxus aber entsprechend entlohnen.
ast@networkcomputing.de