Virtualisierung ist zurzeit der Megatrend in den Unternehmen. Aber wie verhält es sich mit der Leistung von virtualisierten Servern im Vergleich zur „echten“ Hardware? Tests von Host Europe zeigen: Fast jede Anwendung ist für den Einsatz in einer VM gleich gut geeignet.
Seit sich die Vorteile von Virtualisierung in den Unternehmen herum gesprochen haben, entwickelt sich das ehemals als technische Nische von Hosting-Spezialisten angesehene Konzept zum absoluten Trendthema. Zunächst klang es so, als könnten die virtualisierten Geräte alle Probleme der IT lösen, angefangen von der einfacheren Verwaltung der Server bis hin zum reduzierten Stromverbrauch. Einige Produktgenerationen später zeigt sich, dass davon zwar ein gut Teil Marketing war, Virtualisierung aber dennoch viele Versprechen einlösen kann. Der reduzierte Stromverbrauch wurde weitgehend umgesetzt, durch die deutlich bessere Ressourcenauslastung eines Virtualisierungshosts spart man mehrere Server mit deren Netzteilen ein. Ein enormer Kostenfaktor, denn die Stromaufnahme der Netzteile wird von der tatsächlichen CPU-Last nur bedingt beeinflusst, ein großer Teil fällt schon im Leerlauf an. Wenn die Infrastruktur stimmt, können die Administratoren auch vom einfacheren Management profitieren. Weniger eindeutig ist es, wenn die Leistung der virtuellen Maschinen beurteilt werden soll. Je nach Anwendung und verwendeter Virtualisierungstechnik reichen die Leistungseinbußen durch den virtuellen Overhead von kaum merkbar bis drastisch.
Zunächst bestimmt die Art der eingesetzten Virtualisierungstechnik, mit welchen Vor- und Nachteilen, auch in punkto Leistung, der Anwender rechnen muss. Die so genannte Hardware-Virtualisierung oder auch Systemvirtualisierung hat in dieser Hinsicht den schwarzen Peter. Dort läuft die Virtualisierungssoftware als eigene Applikation unter dem Betriebssystem des Hosts. Die virtuellen Maschinen bilden eine völlig autarke Einheit, sie akzeptieren jedes Betriebsystem, unabhängig vom Host-OS. Das Gast-Betriebssystem kommt in seiner ursprünglichen Form zum Einsatz, muss also nicht modifiziert werden. Das macht die Nutzung im Hinblick auf die Lizenz des Herstellers unproblematisch. Auch die physikalischen Schnittstellen werden meist sehr detailliert nachgebildet. Allerdings geht durch den hohen Abstraktionsgrad auch die meiste Leistung verloren. Systemvirtualisierung wird meist nur im kleinen Rahmen genutzt, Microsofts Virtual PC gehört dazu und VMware Workstation. Deutlich schneller läuft die Virtualisierung, wenn Hypervisor-basierte Lösungen zum Einsatz kommen. Dabei liegt die Virtualisierungssoftware als isolierende Schicht zwischen der Hardware und dem Betriebssystem des Hosts, in einigen Fällen stellt der Hypervisor auch gleich das eigentliche Betriebssystem dar. Zugriffe auf die Hardware, egal ob CPU, Netzwerkkarte oder Massenspeicher, laufen ausschließlich durch den Hypervisor. Der hat die direkte Kontrolle, muss sich nicht erst mit dem Host-Betriebssystem abstimmen und liefert daher gute Performancewerte für die Gast-VMs. Ideal für den flexiblen Einsatz: die Gast-Betriebssysteme müssen nicht modifiziert werden, theoretisch läuft jedes OS in einer Gast-VM. Noch besser wird die Leistung, wenn die Gäste wissen, dass sie sich in einer virtuellen Maschine bewegen und Hardwareaufrufe mittels spezieller Treiber optimiert an den Hypervisor weiterreichen. Die Treiber werden von den Virtualisierungsanbietern zum Teil kostenlos mitgeliefert, bei einigen Herstellern sind diese Driver-Packs kostenpflichtig.
Die nächste Variante nennt man Paravirtualisierung. Bei ihr wird, technisch ausgedrückt, das Betriebssystem des Gasts so modifiziert, dass es ohne Befehlsausführungen im besonders geschützten Ring 0 auskommt. Dank der Virtualisierungserweiterungen in den aktuellen Prozessoren von Intel (Intel-VT) und AMD (AMD-V) ist Paravirtualisierung mittlerweile ohne Änderungen am Kernel-Code des Gast-OS möglich. Vorher musste dazu die Speicherverwaltung des Gasts angepasst werden, um mit der Speicherschnittstelle des Hypervisors zusammenzuarbeiten. In gewisser Weise sind die Driver-Packs ebenfalls eine Form der Paravirtualisierung, da sie die Art des I/O-Zugriffs verändern. Das ist allerdings nicht so aufwändig und verursacht auch keine Probleme mit den Lizenzen der proprietären Betriebssystemhersteller, die zum Teil Änderungen des Kernels verboten hatten.
Die letzte Variante ist ebenfalls sehr effizient, was die Leistung angeht: Containervirtualisierung wie mit Parallels Virtuozzo Containers oder Sun Solaris Containers. Dabei nutzen alle Gastpartitionen große Teile des Host-Betriebssystems, sind aber in ihren jeweiligen „Container“ eingeschlossen und gegeneinander abgeschottet. Sowohl der Overhead bei der Speichernutzung als auch bei der Prozessorbelastung ist hier minimiert, da die Gast-VMs deutlich weniger Ressourcen des Hosts belegen. Der offensichtliche Nachteil ist, dass alle Gäste auf das Host-Betriebssystem festgelegt sind. Für den Einsatz bei Webhostern, die Wünsche nach unterschiedlichen Betriebssystemen bündeln können, kein wirkliches Problem und deshalb in dieser Branche überaus beliebt.
Früher waren es immer schnellere CPUs, mittlerweile steigt die Anzahl der Kerne rasant an. Beides führte dazu, dass kein Mangel an CPU-Zyklen besteht. Eigentlich ist genau diese inflationäre Rechenleistung der Grund dafür, dass Virtualisierung so schnell an Bedeutung gewonnen hat. Praktisch keine Applikation im normalen Business-Umfeld ist in der Lage, die Rechenleistung einer aktuellen Mehr-Kern-CPU auszulasten. Das wird sich in Zukunft kaum ändern, Mitte September 2008 stellte Intel seine Xeon 7400 Prozessoren mit sechs Kernen pro Chip vor. Bei so viel purer Leistung nimmt es kaum Wunder, dass sehr CPU-lastige Anwendungen am besten in einer virtuellen Maschine aufgehoben sind. Natürlich gibt es auch hier Unterschiede zwischen den einzelnen Hypervisoren, doch absolut gesehen sind die Einbußen von allen Anwendungen am geringsten. Dazu gehören unter anderem Verschlüsselungsaufgaben, wie das SSL-Processing bei geschützten Websites. Etwas schwieriger wird es bei häufigen Zugriffen auf den Arbeitsspeicher. Hier haben Hypervisor noch Probleme, je nach technischer Umsetzung und eingesetzter Hardware. Die Speicherverwaltung der virtuellen Maschine ist zwangsläufig nicht mit der des „echten“ Host identisch, der Hypervisor muss also ständig virtuelle in physikalische Adressen umsetzen und umgekehrt. Das führt bei den heute üblichen, mehrstufigen Speicherkonzepten mit ihren extrem optimierten Cache-Algorithmen schnell zu sehr hohen Leistungsverlusten. Durch die virtuellen Adressen werden Cache-Blöcke geleert, auch wenn die gewünschten Daten eigentlich noch für weitere Zugriffe im schnellen Cache-Speicher verbleiben sollten.
Die CPU-Hersteller kennen das Problem und haben sich die bessere Unterstützung von Hypervisoren schon vor einiger Zeit auf die Fahnen geschrieben. So gibt es von Intel und AMD entsprechende Technologien auf CPU-Ebene, die zu einem effizienteren Umgang mit dem Arbeitsspeicher führen sollen. Bei Intel heißt das Extended Page Tables (EPT). EPT macht das ständige Hin- und Herwechseln zwischen VMs und Hypervisor weitgehend überflüssig, indem die CPU intern eine Tabelle mit virtuellen und physikalischen Speicheradressen verwaltet. Das bedeutet zwar enormen Aufwand für den Prozessor und macht auch viel Speicherplatz für die Tabelle notwendig, entlastet den Hypervisor aber enorm. Rechenleistung steht bei den neuesten CPUs ohnehin mehr als genug zur Verfügung. Der Xeon 7400 mit sechs Kernen enthält bereits EPT, alle großen Anbieter von Virtualisierungslösungen wie VMware, Microsoft und Xen arbeiten an dessen Unterstützung in ihren Hypervisoren. Bei AMD nannte sich die äquivalente Lösung Nested Page Tables –NPT. Mittlerweile firmiert die Technik unter „Rapid Virtualization Indexing“ (RVI). Mit RVI bekommt eine virtuelle Maschine ihren eigenen Adressraum im physikalischen Speicher und kann diesen selbst verwalten. Der Hypervisor hat damit (fast) nichts mehr zu tun, die VM kann beinahe wie in einem physikalischen Host nach Gutdünken über den ihr zugeteilten Arbeitsspeicher verfügen. Aktuell verbringen Hypervisor fast drei Viertel ihrer Zeit mit der Speicherverwaltung, eine Entlastung an dieser Front hat hohe Performancegewinne zur Folge. Als Folge bekommen Hypervisor eine Bewährungschance selbst im Hostingumfeld: Host Europe darf hier als Vorreiter gelten.
Wer sich um die Leistung seiner virtuellen Maschinen sorgt, sollte nie den Überblick über deren Aufgaben verlieren. Selbst wenn ein virtueller Server nichts tut, stellt er für die Virtualisierungsschicht eine Last dar. Auch als „Idle-VM“ nehmen sie am Scheduling von CPU-Zyklen und Arbeitsspeicher teil. Meist fällt zusätzlich ein geringer Netzwerkverkehr an, der gehandhabt werden muss. Diese Lastanteile stehen den produktiv laufenden VMs nicht zur Verfügung. Test von Fujitsu Siemens Computern zeigten, dass sechs Idle-VMs den Durchsatz pro aktiver VM, je nach Virtualisierungskonzept, zwischen 0,11 und 0,98 Prozent reduzierten. Solche Bremsfaktoren muten allerdings geradezu vernachlässigbar an, wenn es um Anwendungen geht, die hohe Ansprüche an den I/O-Verkehr stellen. Die Physik lässt sich nicht überlisten, egal wie viele virtualisierte Server auf einem Host laufen –am Ende müssen sie sich die vorhandenen Schnittstellen mit der Außenwelt teilen. Netzwerk- und Massenspeicherinterface gelten im Moment als größte Nadelöhre für den Hypervisor. Bis zu 30 Prozent können die Durchsatzwerte unter denen eines vergleichbaren physikalischen Servers liegen. Datenbanken zum Beispiel, die praktisch ununterbrochen Schreib- und Leseoperationen ausführen, leiden besonders unter dieser Einschränkung. Aber auch Webserver können hinter der erwarteten Performance zurückbleiben, weil auch sie oft nicht ohne einen hohen Anteil von Festplattenzugriffen auskommen.
In jedem Fall müssen die Add-On-Packs der Virtualisierungshersteller auf den Gast-Betriebssystemen installiert werden. Deren optimierte Treiber für Netzwerk- und Massenspeicherzugang sorgen meist für –um Größenordnungen –bessere Durchsatzwerte, als wenn man sich auf die Emulation der Treiber durch den Hypervisor verlässt. Die ist bestenfalls eine Annäherung an die wahren Fähigkeiten der Hardware. Weil die physikalischen Netzwerk- und Massenspeicheradapter durch generische und, der besseren Erkennbarkeit wegen, sehr alte Pseudoadapter ersetzt werden, sind die erzielbaren Leistungen erbärmlich gering. Das gilt für fast alle Hypervisor, wird aber umso dramatischer, je aktueller die Virtualisierungsplattform ist. Microsofts Hyper-V beispielsweise kann mit den speziell auf den Hypervisor abgestimmten, synthetischen Treibern sehr gute Performancewerte erzielen. Muss die Software hingegen auf die „Ältere Netzwerkkarte“ auf Basis eines DEC 21140 Chips zurückgreifen, zum Beispiel weil PXE-Boot benötigt wird, reduziert sich der Durchsatz auf nicht einmal ein Viertel.
Nichts desto trotz bleibt der I/O-Bereich ein Schwachpunkt des Virtualisierungskonzepts. Immerhin arbeiten die Hersteller an Wegen, um dieses Nadelöhr aufzubohren. Multipath I/O, die Kombination von mehreren Kanälen über unterschiedliche Hardware hinweg, ist eines der Konzepte. In einer Umsetzung lässt sich beispielsweise ein physikalischer Fibre-Channel Adapter in 256 Einzelkanäle aufteilen, die man bestimmten VMs zuweisen kann. Damit steht zwar nur eine Untermenge der Gesamtbandbreite zur Verfügung, die ist aber garantiert, so dass eine Art Quality-of-Service erzielt wird. Weitere Ansätze gehen so weit, komplette physikalische Adapter fest einer VM zuzuordnen. Damit wird zwar die Leistung maximiert, allerdings ist das mühelose Verschieben einer VM auf einen anderen Host, ein wichtiges Feature in einer hoch verfügbaren Umgebung, nicht mehr möglich.
Neben der optimalen Treiberanpassung helfen auch andere Maßnahmen bei der Leistungsoptimierung. So steigt der Festplatten-Durchsatz einer virtuellen Maschine, wenn sie parallel auf unterschiedlichen virtuellen Festplatten (VHD) arbeitet und dadurch indirekt mehrere VHD-Threads bedient. Die VHDs dürfen auf derselben physikalischen Disk liegen. Am einfachsten lässt sich so etwas durch die Konfiguration der VHDs mit Hilfe eines Software-RAID als Striping-Set, also RAID-0, umsetzen.
Das Thema Virtualisierungsperformance wird durch das Fehlen von hersteller- und systemübergreifenden Benchmarks nicht einfacher. Es existieren zwar diverse Tools zum Beurteilen der Performance-Aspekte virtueller Maschinen, doch sind sie in der Regel auf einen Hersteller zugeschnitten. So hat VMware seinen VMmark mittlerweile bis zur Version 1.1 weiterentwickelt. VMmark nutzt verschiedene „echte“ Anwendungen wie eine Datenbank, einen Web- und einen Exchange-Server sowie verschiedenen Java-Komponenten, um unterschiedliche Lastprofile zu simulieren. Jede dieser Anwendungen wird als „Tile“ also als Kachel bezeichnet, die kombinierte Leistung der Kacheln ergibt den VMmark Score. Ganz ähnlich machen es die Entwickler bei Fujitsu Siemens, die auf der Basis des Intel Benchmarks vConsolidate eine eigene Lösung namens vServCon entwickelt haben. Auch vServCon nutzt das Kachelmodell, mit ganz ähnlichen Bestandteilen wie VMmark. Beiden gemein ist der enorme Aufwand, der für die Benchmarks getrieben werden muss. Alle Anwendungen müssen installiert und eingerichtet werden, als ob sie in einer realen Umgebung laufen. Für einige der Lastprofile, zum Beispiel den Webserver, sind darüber hinaus noch große Mengen von Clients notwendig, die die Abfragen simulieren. Das gilt auch für Dells DVD Store 2, eine Sample-Anwendung, die einen e-Commerce Shop simuliert. Der Automatisierungsrad ist gering, das meiste muss in Handarbeit erledigt werden. Für einen Endanwender, auch in einer größeren Firma, ist das kaum zu bewältigen. Die Hersteller, sowohl von Serverhardware als auch von Virtualisierungslösungen, sind in einer besseren Position. Sie verfügen sowohl über das Know-how als auch über die notwendigen Ressourcen, kämpfen aber mit rechtlichen Problemen. So ist meist die Veröffentlichung der Testergebnisse ohne Zustimmung des Virtualisierungsanbieters untersagt, in anderen Fällen laufen die Benchmarks nur mit einer Virtualisierungslösung, so dass ein Cross-Plattform-Vergleich unmöglich ist.
Abhilfe verspricht erst ein Virtualisierungsbenchmark der SPEC-Organisation. SPEC ist eine gemeinnützige Organisation, die standardisierte Benchmarks einführt und weiterentwickelt, um die Leistungsfähigkeit der neuesten Hardware-Generation zu messen. SPEC-Benchmarks gibt es für zahlreiche Anwendungen, sie sind ebenfalls komplex und zweitaufwändig in der Anwendung, haben aber den Vorteil allgemein anerkannt zu sein. Praktisch alle namhaften Hersteller sind Mitglied, angefangen bei AMD bis hin zu XenSource/Citrix. Mit einem vSPEC könnte der Vergleich zwischen Hardware und Virtualisierungslösungen einfacher werden, doch es soll erst in ferner Zukunft so weit sein. Bislang existiert nur eine Untergruppe, die Standards für den Vergleich definieren soll.
Mit den vier großen Anbietern VMware, Citrix/Xen, Microsoft und Parallels sind genügend Schwergewichte im Markt versammelt, um allen Kunden, von KMU über Hosting bis Enterprise, ein passendes Produkt anbieten zu können. Doch ob und welche Virtualisierungslösung in Frage kommt, hängt von einer ganzen Reihe von Faktoren ab, die sich nur schwer quantifizieren lassen. Klar ist, dass alles, was aus Selbstzweck CPU-Zyklen verbraucht, nicht die volle Geschwindigkeit des Hosts bringen kann. Eine VM muss Einbußen bei der Leistung im Vergleich zum physikalischen Server hinnehmen, die Frage ist nur wie viele und in welchen Bereichen. Geht man davon aus, dass im Enterprise-Bereich nur Hypervisor-basierte Lösungen zum Einsatz kommen, hängt die Leistungsfähigkeit einer VM viel mehr als bei einem nativen System von der Art des Anwendungsszenarios ab, ganz besonders im Hinblick auf den I/O-Bereich.
So ist die Serverkonsolidierung von älteren Bestandssystemen eine Paradedisziplin für Hypervisor, während die Virtualisierung von aktuellen Hochlastservern, vor allem mit einem großen Disk-Anteil, eine Einzelfallbetrachtung der Virtualisierungsmethode verlangt. Hier könnte auch die bei Hostern so beliebte Containervirtualisierung à la Parallels oder Sun eine willkommene Alternative darstellen: Weil sie die Gäste auf das Host-Betriebsssystem festlegt, empfiehlt sie sich für bestimmte Einsatzfälle, wie bei großen Rechenzentren oder professionellen Hosting-Anbietern, die sehr große Mengen von VMs einfach verwalten und mit hoher Leistung bereit stellen müssen.
Sie benötigen weitere Informationen zu unseren Managed Hosting-Lösungen?
Unsere Vertriebsmitarbeiter helfen Ihnen gerne weiter:
Serviceline: 0800 467 8387
E-Mail: vertrieb@hosteurope.de