Containervirtualisierung kann eine interessante und ressourcensparende Alternative zu Vollvirtualisierung sein. ZDNet hat dazu Virtuozzo für Windows in der Version 3.5.1 unter die Lupe genommen.
Containervirtualisierungs-Lösungen arbeiten wesentlich ressourcensparender als Vollvirtualisierungen. Allerdings muss man sich mit der Einschränkung zufrieden geben, dass sämtliche Container unter demselben Betriebssystem laufen müssen. Ein Mischbetrieb von virtualisierten Linux- und Windows-Maschinen ist somit auf einer Plattform nicht möglich.
Für Windows steht mit Virtuozzo nun auch eine Containervirtualisierungs-Lösung zur Verfügung. Der Hersteller Swsoft[1] konzentriert sich mit Virtuozzo rein auf die Servervirtualisierung. Für Desktop-Betriebssysteme sind keine Lösungen im Angebot. Ein einzelner Container, der einer virtuellen Maschine bei Vollvirtualisierung entspricht, wird daher bei Virtuozzo "Virtual Private Server" (VPS) genannt.
Da eine Containervirtualisierung sehr viel enger mit dem Hostbetriebssystem verzahnt ist als eine Vollvirtualisierung, muss man auch auf die Prozessorplattform und die Sprachversion achten. Da Virtuozzo für Windows noch relativ neu ist, steht zurzeit nur eine Version für Windows 2003 Server zur Verfügung. Sowohl das Original-Release, als auch das Release 2 werden unterstützt. In der 32-Bit-Variante gibt es deutsche und englische Versionen. In der 64-Bit-Variante für AMD64 und Intel EM64T gibt es nur eine englische Version. Für Itanium steht keine Windows-Version von Virtuozzo zur Verfügung.
Ferner ist zu beachten, dass Virtuozzo nur installiert werden kann, wenn Windows tatsächlich in C:\Windows installiert ist (Bild 1). Eine Limitierung, die trotz der Systemnähe vermeidbar gewesen wäre. Zur Verwaltung der VPSe stehen eine Microsoft Management Console (Bild 2) und ein Web-Interface zur Verfügung (Bild 3). Beide Verwaltungstools lassen wenige Wünsche offen. Die Funktionen sind sehr umfangreich. Hier zeigt sich, dass Virtuozzo von den Machern von Plesk kommt, die etwas von professioneller Fernwartung verstehen.
Backup, Server Move, Platten- und Dateiverwaltung sind integriert. Hinzu kommen umfangreiche Log- und Monitorfunktionen. Beide Verwaltungstools sind so gestaltet, dass getrennte Administratoren für jede VPS definiert werden können. Somit können auf einer physikalischen Maschine mehrere VPSe angelegt werden und die Verwaltung kann an einzelne Administratoren delegiert werden.
Ein VPS ist im Gegensatz zu einer virtuellen Maschine bei einer Vollvirtualisierung nach seiner Erstellung in ein bis zwei Minuten bereit zum Einloggen. Anders als bei Virtualisierungslösungen üblich, gibt es keine Remotesteuerung der VPSe durch Virtuozzo. Ein Einloggen muss über den Microsoft Terminal Server oder Citrix Metaframe erfolgen.
Dies stellt prinzipiell kein Problem dar, da Windows Server mit Terminal Server ausgeliefert wird. Allerdings können mit dem Standard Terminal Server maximal zwei Sessions gleichzeitig geöffnet werden. Da dies nicht pro VPS, sondern pro physikalischer Maschine gilt, müssen eventuell Terminal-Server-Client-Lizenzen nachgekauft werden.
Im Test auf einer Intel-Quad-Core-Maschine mit 3 GByte RAM wurde ein VPS mit einem Limit von 512 MByte RAM und 1 GByte Festplatte erstellt. Die Zeit für das Erstellen und Hochfahren des VPS betrug exakt eine Minute und 22 Sekunden. Dem Hostcomputer fehlten danach 1,17 GByte an Plattenplatz. Damit wird pro VPS nur circa 183 MByte Festplattenplatz benötigt. Das sind Werte, die bei Vollvirtualisierung nicht annähernd erreicht werden.
Der erste Blick auf den VPS zeigt die Vorteile einer Containervirtualisierung (Bild 4): Der Windows-Task-Manager zeigt, dass von den zugeteilten 512 MByte RAM noch 424 MByte übrig sind. Außerdem kann man sehr schön sehen, dass dem VPS alle vier Prozessoren zur Verfügung stehen.
Ein kleines Wunderwerk ist das Dateisystem von Virtuozzo. Von dem zugeteilten Platz von 1 GByte sind noch 980 MByte übrig. Die 8869 Dateien von Windows 2003 Server bringt Virtuozzo in knapp 29 MByte unter. Dies dürfte auf den ersten Blick das Interesse der Hersteller von Kompressionssoftware wecken. Allerdings handelt es sich beim Virtuozzo-Filesystem um eine raffinierte Mischung aus Disk-Image und Links. Die Betriebssystemdateien sind in Wahrheit Links auf die Dateien im Hostbetriebssystem. Anders als bei Vollvirtualisierung müssen diese nicht mehrfach vorhanden sein.
Trotzdem wird dem VPS ein vollständiges NTFS-Filesystem präsentiert und das mit allen Features, wie Security, Kompression, Verschlüsselung und so weiter. Dies zeigt das ZDNet-Tool MKLINK[3] in Bild 4.
Diese Traumwerte müssen ein wenig relativiert werden. Das Betriebssystem besteht nicht nur aus EXE- und DLL-Dateien, die nicht modifiziert werden, sondern auch aus jeder Menge Konfigurations- und Logdateien. Sobald in einem VPS diese Konfigurationsdateien geschrieben werden, wird der Link auf das Pendant des Hostbetriebssystem gelöscht und durch eine Platz verbrauchende Kopie im VPS ersetzt.
Virtualisierte Systemdatenbank
Die Registry ist komplett virtualisiert. Das heißt, im VPS ist keine Systemregistrierung vorhanden, sondern nur ein Link auf die Registry des Hostbetriebssystems gelegt (siehe Bild 5). Da die Registry im Laufe der Zeit naturgemäß wächst, nimmt sie auch mehr Platz in Anspruch, was jedoch im Plattenplatz des VPS nicht sichtbar ist, sondern nur auf der Hostmaschine.
Virtuozzo versteht sich als Multi-Plattform-Virtualisierungslösung für Linux und Windows. Dafür sind in der Windows-Version erstaunlich viele native Anpassungen an das Betriebssystem realisiert worden. Die Windows-Services eines VPS sind per Management Console (MMC) oder Web-Interface zu verwalten (Bild 6), Benutzer und Gruppen nur per MMC (Bild 7). Nimmt man einen VPS allerdings in eine Active Directory Domain, so können über die MMC nur noch lokale Benutzer verwaltet werden.
Auch das Filesystem von Virtuozzo ist tief mit dem Windows-Kernel verwurzelt. Virtuelle Laufwerke der VPSe bestehen aus einer public und einer private Area. Die public Area besteht aus Links zu Dateien auf der Hostmaschine, die private Area gehört nur dem VPS selbst.
Mit diesem Modell kann nicht nur das Betriebssystem für fast 0 Bytes Festplattenplatz pro VPS realisiert werden, sondern auch Anwendungen, die mehreren VPSen zur Verfügung stehen, belegen nur einmal Platz auf der Hostmaschine.
Jede virtuelle Virtuozzo-Platte ist als echtes Windows NT Device in der Hostmaschine realisiert. Mit entsprechenden Tools, wie MKLINK von ZDNet[3], MNT oder DOSDEV aus älteren Windows Resource Kits, können die virtuellen Platten der einzelnen VPSe im Hostbetriebssystem sichtbar gemacht werden.
Neben den virtuellen Virtuozzo-Festplatten können auch Disk-Images gemountet werden und komplette Laufwerke des Hostcomputers an einen VPS durchgereicht werden. Letzteres ist jedoch ein echtes Durchreichen auf Device-Ebene und beeinträchtigt die Security erheblich. So kann ein Administrator eines VPS neben Löschen und Formatieren auch den ganzen Tag zum Spaß CHKDSK /F durchführen, um die Platte für den Hostcomputer und andere VPSe zu sperren.
Disk-Images sollten aus Sicherheitsgründen nur einem einzigen VPS zur Verfügung gestellt werden, da ansonsten die gleiche Problematik auftritt, wie bei den Laufwerken des Hostcomputers. Auch hier wird wieder ein großer Vorteil der Containervirtualisierung deutlich. Bei Vollvirtualisierung ist nicht daran zu denken, dass der Hostcomputer Zugriff auf das Filesystem der Gastmaschinen hat, außer als vergleichbar langsames Netzwerklaufwerk.
Virtuelle Laufwerke
Virtuelle Laufwerke können auch im deaktivierten Zustand eines VPS durch die Hostmaschine genutzt werden. Dies hat den konkreten Vorteil, dass alle Dateien zugreifbar sind. Der Fehler "Das System kann auf die Datei nicht zugreifen, da sie von einem anderen Prozess verwendet wird." entfällt.
So können in einem VPS im deaktivierten Zustand einzelne Dateien ausgetauscht werden, die im laufenden Betrieb normalerweise gesperrt sind. Dazu kann ein VPS drei Zustände annehmen: Running, Stopped und Mounted. Im Zustand Mounted ist ein VPS deaktiviert, aber der Hostcomputer kann auf das Dateisystem zugreifen.
Im Beispiel von Bild 8 ist der VPS MARIO mit der VPS-ID 102 gemountet, aber deaktiviert. Standardmäßig befindet sich die komplette virtuelle Platte in C:\vzoot\102\C der Hostmaschine.
Wer es gerne einfacher mag, kann beispielsweise "MKLINK /J C:\MARIO \??\VzfsMPVolume102" verwenden. Wer einen eigenen Laufwerksbuchstaben bevorzugt oder benötigt, verwendet "MNT X: \??\VzfsMPVolume102" oder "DOSDEV /r X: \??\VzfsMPVolume102".
Um zu ermöglichen, dass Anwendungen nur einmal auf der Hostmaschine präsent sein müssen und keinen Plattenplatz in den VPSen verbrauchen, müssen diese als Template im Virtuozzo-Filesystem installiert werden.
Bei Anwendungen, die ein automatisiertes Setup mit vorkonfigurierten Parametern ganz ohne Benutzereingaben unterstützen, ist die Erstellung eines Templates recht einfach. Fehlt ein Setup mit diesen Möglichkeiten, muss der mitgelieferte "Template Creation Wizard" verwendet werden.
Dieser erlaubt zwei Modi: Einmal können manuell Dateien und Registry-Einträge ausgewählt werden, die zu installieren sind, was nur bei sehr einfach strukturierten Anwendungen sinnvoll ist. Zum Anderen kann eine Installation "aufgezeichnet" werden, so dass alle Datei- und Registry-Änderungen protokolliert werden. Hier wird im Test Microsoft Office 2007 Enterprise Edition ausgewählt.
Es handelt sich hierbei zwar nicht um eine typische Serveranwendung, dafür ist jedoch der Setup-Prozess sehr komplex, so dass Office 2007 für den Test eines "Installations-Rekorders" gut geeignet ist. Das erhaltene Paket, welches nachträglich modifiziert werden kann, funktionierte mit fast allen Office Produkten. Lediglich Office Groove 2007 ließ sich nicht starten.
Ist ein Application Template erst einmal korrekt erstellt, so bereitet die Arbeit damit Freude. Per Mausklick kann ein Template auf mehrere physikalische Rechner transportiert werden, so dass Cluster und Serverfarmen mit den Paketen "betankt" werden können.
Ebenfalls per Mausklick werden die Templates dann in einen VPS "injiziert". Bild 9 zeigt dabei, dass für VPSe, die mit Windows 2003 R2 betrieben werden, eine Warnung erscheint, da das Paket für Windows 2003 SP1 erstellt wurde. Die Installation des gesamten Office 2007 Enterprise Paketes mit allen Komponenten in Vollausstattung in einem VPS mittels vorkonfiguriertem Paket dauerte im Test zwei Minuten und 25 Sekunden.
Die Gesamtperformance eines VPS ist ausgezeichnet. Bei der CPU-Leistung sind keine Unterschiede zu einem nicht-virtualisierten System messbar. Beim Festplatten-I/O war mittels Iometer lediglich ein Performanceverlust von circa 1,25 Prozent durch das Virtuozzo-Filesystem festzustellen.
Etwas deutlicher war der Performanceverlust im Netzwerk-I/O. Hier konnte 12,6 Prozent gemessen werden. Die für den Test verwendete Intel-Netzwerkkarte bietet eine hardwareseitige Unterstützung für das Ein- und Auspacken von TCP-Paketen. Durch die Virtualisierung des Netzwerkinterfaces geht dieser Hardwarevorteil verloren.
Die Werte sind gegenüber Vollvirtualisierung jedoch ganz ausgezeichnet. Unter ansonsten gleichen Bedingungen verzeichnet Vmware Virtual Server 1.0.1 einen Performanceverlust von 32,4 Prozent beim Festplatten-I/O und gar 50,3 Prozent beim Netzwerk-I/O. Das sind typische Werte für Vollvirtualisierung.
Fazit
Virtuozzo für Windows ist die ideale Virtualisierungslösung, wenn mehrere virtuelle Server unter Windows 2003 benötigt werden. Neue Server können in weniger als drei Minuten erstellt werden, ohne Festplattenplatz zu verbrauchen. Dies macht Virtuozzo auch in Test- und Schulungsumgebungen sehr interessant.
Der Ressourcenbedarf pro VPS ist um ein vielfaches geringer als der einer virtuellen Maschine bei Vollvirtualisierung. Die Performance, insbesondere bei Platten- und Netzwerk-I/O, ist deutlich höher. Das macht Virtuozzo häufig zu einer besseren Alternative im Vergleich zu einer Vollvirtualisierung.
Die Verwaltungstools via Management Console und Web-Interface sind sehr gut durchdacht und leicht und übersichtlich in der Bediehung. Die Funktionalität ist sowohl für Hoster, als auch für Intranet-Serveradministratoren ausgelegt. Das Virtuozzo-Filesystem sorgt dafür, dass Betriebssystem und Anwendungen nur einmal pro Hostcomputer installiert werden müssen und dann von den VPSen mitbenutzt werden können.
Als Schwachstellen sind zu nennen, dass zum einen das Erstellen von Templates für Anwendungen sehr aufwendig und kompliziert ist, zum anderen ist es nicht möglich in verschiedenen VPSen unterschiedliche Releasestände von Windows Server zu betreiben. Mit der Linux-Version von Virtuozzo[4] ist letzteres problemlos möglich.
Virtuozzo für Windows
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/