Linux ist durch seinen modularen Aufbau ein ideales Betriebssystem für Containervirtualisierung, das vor allem bei Webhostern sehr gefragt ist. ZDNet hat Virtuozzo in der aktuellen Version 3.0 ausführlich getestet.
Eine Containervirtualisierung bietet gegenüber einer Vollvirtualisierung wie der von Vmware Vorteile in Sachen Performance. Immer dann, wenn mehrere Versionen eines Betriebssystems virtualisiert werden sollen, ist eine Containerlösung[1] die beste Wahl. Daher setzen viele Webhoster auf diese Form der Virtualisierung.
Für Unix gibt es eine ganze Reihe von Containervirtualisierungslösungen. So hat Sun in Solaris 10 Containervirtualisierung bereits integriert. Unter Linux stehen einige Open-Source-Projekte zur Wahl.
Die kommerzielle Lösung Virtuozzo[2] für Linux von Swsoft ist seit 2001 erhältlich. Die Software basiert auf der Open-Source-EntwicklungOpen VZ[3], das aus einem Linux-Kernel besteht, der die nötigen APIs für die Virtualisierung liefert, etwa Isolation, Checkpointing, Ressourcen-Management und das Dateisystem . Darüber hinaus gibt es User Level Tools, die auf dem modifizierten Kernel aufsetzen und das Erstellen und Verwalten von Virtual-Private-Servern (VPS) erlauben.
Anders als bei Virtuozzo für Windows gestattet die Linux-Variante die Installation von verschiedenen Linux-Distributionen auf einem einzigen Hardware-Node, sofern diese auf einem Kernel gleicher Version basieren. Es gibt daher auch nur eine einzige Virtuozzo-Version pro Architektur (x86, AMD64/EM64T und Itanium).
Die Liste der unterstützten Hostbetriebssysteme wirkt auf den ersten Blick etwas "angestaubt". So gehören Fedora Core 4 und Suse 9 zu den neuesten Distributionen, die unterstützt werden. Allerdings ist in einer virtualisierten Umgebung das Hostbetriebssystem nur Mittel zum Zweck. Swsoft bringt etwa ein Mal pro Monat einen neuen Virtuozzo-Kernel heraus, so dass hier mit aktueller Hardwareunterstützung gerechnet werden kann. Auf der Testmaschine erkennt der aktuelle Virtuozzo-Kernel die Soundkarte nicht. Auch fehlen Dateisystemtreiber für hfsplus (Macintosh) und NTFS. Ansonsten erhält man einen modernen 2.6.9-Kernel.
Während die Dateisystemtreiber und die Soundkarte im Hostbetriebssystem leicht verzichtbar sind, liegen vor demjenigen, dessen Ethernetkarte nicht unterstützt wird, die üblichen Prozeduren zur Einbindung von Linux-Treibern.
Die Unterstützung der Gastbetriebssysteme für die virtuellen Server ist hingegen auf dem aktuellen Stand. So gehören unter anderem Fedora Core 6 und Suse 10.1 dazu. Virtuozzo für Linux ist diesem Punkt deutlich flexibler als die Windows-Version. Es bietet sich die Möglichkeit, verschiedene Anwendungen auf einem einzigen Hardware-Node zu betreiben, die nur mit einer bestimmten Linux-Distribution zusammenarbeiten.
So kann beispielsweise eine Anwendung unter Red Hat EL AS 4.0 und eine andere unter Suse SLES 10 auf demselben Rechner betrieben werden, während in der Windows-Version auf einem Rechner nicht einmal virtuelle Windows-Server mit unterschiedlichen Service-Packs möglich sind. Zudem gibt es unter Linux die Möglichkeit, für einzelne VPS einen Betriebssystemupgrade durchzuführen, zum Beispiel von Fedora Core 5 zu Fedora Core 6. Wie auch die Windows-Version wird Virtuozzo unter Linux mittels einer Management-Konsole oder eines Web-Interfaces verwaltet. Dabei ist die Management-Konsole im Look and Feel exakt der Microsoft-Management-Konsole nachempfunden (siehe Bild 1[4]).
Da Linux im Vergleich zu Windows wesentlich modularer aufgebaut ist, hält sich der Ressourcenbedarf für einen Linux-VPS in Grenzen. Ein init-Prozess und ein ssh-Daemon reichen aus, um den VPS in Betrieb zu nehmen. Hinzu kommt noch eine Shell, wenn sich ein Benutzer anmeldet (Bild 2[5]).
Unter Windows muss hingegen für jeden VPS mindestens das Windows-Subsystem (csrss.exe) und das Security-System (lsass.exe) laufen. Hinzu kommt explorer.exe, damit ein angemeldeter Benutzer Windows bedienen kann. Zwar ist auch unter Windows ein Anmelden mit ssh möglich, aber die eingebaute Shell cmd.exe ist damit nur schwer zu bedienen. Schließlich kommen noch Hilfsprozesse wie winlogon.exe dazu. Daher ist mit weniger als 80 MByte RAM für Windows keine sinnvolle Konfiguration möglich.
Niedriger Speicherbedarf unter Linux
Unter Linux reichen tatsächlich 5 bis 6 MByte Speicher aus, um einen VPS sinnvoll zu betreiben. Dabei wird es in der Praxis natürlich nicht bleiben. Serverapplikationen wie Apache, My SQL und Skriptsprachen wie Perl[6] und PHP[7] machen sich im Speicher genauso breit wie ihre Pendants unter Windows.
Auch unter Linux bildet das Virtuozzo-Filesystem eine wesentliche Komponente und sorgt dafür, dass Betriebssystem und Anwendungen mittels Templates nur einmalig Plattenplatz benötigen.
Für die einfache Installation von Betriebssystemen stehen unter Virtuozzo Standard- und EZ-Templates zur Verfügung. Standard-Templates bieten eine einfache Installation lokal vorhandener Linux-Versionen. EZ-Templates schaffen die Möglichkeit, direkt per yum von den Linux-Distributionsservern und deren Mirrors Pakete zu installieren und von dort auch Updates zu beziehen (Bild 3 und 4[9]). Damit ist es möglich, verschiedene Linux-Distributionen im Original zu beziehen und Updates einzuspielen, sobald sie verfügbar sind.
Schaut man sich die Templates in Bild 4 ein wenig näher an, so sieht man sofort, dass Virtuozzo für Linux in erster Linie für Web-Hosting konzipiert ist. Für den typischen Intranet-Serverbetrieb fehlen in den Templates Komponenten für unternehmensweites Login wie NIS, LDAP oder Kerberos (Bild 8[10]). Bei Bedarf können diese aber manuell in den VPS oder als Application Templates installiert werden.
Generell sind die angebotenen Standard- und EZ-Templates ganz auf den Serverbetrieb ausgelegt. Während Windows im Wesentlichen komplett installiert werden muss, so dass auch Desktop-Anwendungen unter Terminal-Server denkbar sind, ist diese Möglichkeit bei Virtuozzo für Linux zumindest in den Templates nicht vorgesehen.
Es ist genauso wenig möglich, Netzwerk-Filesysteme innerhalb eines VPS zu mounten. Die Filesysteme nfs und smbfs stehen in einem VPS nicht zur Verfügung (Bild 5[11]). Unter Virtuozzo für Windows ist diese Funktion vorhanden. In der Management-Konsole können einem VPS lediglich lokale Partitionen zur Verfügung gestellt werden (Bild 6[12]).
Für die nächste Version ist die Unterstützung von Netzwerk-Filesystemen angekündigt und auch im aktuellen Build des Open-VZ-Kernels bereits implementiert. Virtuozzo ist nur eine von mehreren Containervirtualisierungslösungen, die für Linux zur Verfügung stehen. Es definiert sich im Wesentlichen durch die hervorragenden Verwaltungs- und Tuningmöglichkeiten der Management Console und durch sein Web-Interface.
Server Move, Backup und Server-Upgrade, zum Beispiel von Suse 10.0 auf Suse 10.1, sind einfach und problemlos durchführbar. Das Virtuozzo-Filesystem ermöglicht, dass Betriebssystem und Anwendungen nur einmal physikalisch im Hardware-Node vorhanden sein müssen.
Die Performance-Optimierung der einzelnen VPS ist sehr granular. Neben Netzwerktraffic-Limit und CPU-Leistungslimitierung in Stück und Prozent können alle Kernelparameter pro VPS eingestellt werden. Disk-Cache und maximale I-Nodes im Filesystem sind nur einige wenige Beispiele (Bild 7[13]).
Dies alles macht Virtuozzo für Linux zu einer idealen Containervirtualisierungs-Lösung im professionellen Bereich. Es lässt sich jederzeit überwachen, ob ein VPS noch die nötigen Ressourcen hat oder ein anderes VPS mit überflüssigen Ressourcen ausgestattet ist. Für Parameteränderung ist der Neustart eines VPS nicht erforderlich. Solche Dinge können im laufenden Betrieb erledigt werden.
Die angebotenen Templates sind für Web- und Datenbankhosting ideal. Für Intranet-Server fehlen allerdings einige Komponenten, etwa die Einbindung in ein firmenweites Benutzerverwaltungssystem und die Möglichkeit, auf Netzwerklaufwerke zuzugreifen. Während ersteres vom Anwender nachinstalliert werden kann, muss letzteres vom Hersteller unterstützt werden.
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/
[5] = http:/
[6] = http:/
[7] = http:/
[8] = http:/
[9] = http:/
[10] = http:/
[11] = http:/
[12] = http:/
[13] = http:/