Innovationsschub für die Hardware

Wie Virtualisierung die x86-Welt erneuert

26.05.2009
Von 
Wolfgang Sommergut ist Betreiber der Online-Publikation WindowsPro.

Ein- und Ausgabe als nächster Schritt

Während Xen und Hyper-V I/O-Operationen über ein Service-Betriebssystem laufen lassen, verlangt VMware ESX eigene Gerätetreiber, Mit VMDirectpath können Gastsysteme auch direkt auf Rechnerkomponenten zugreifen.
Während Xen und Hyper-V I/O-Operationen über ein Service-Betriebssystem laufen lassen, verlangt VMware ESX eigene Gerätetreiber, Mit VMDirectpath können Gastsysteme auch direkt auf Rechnerkomponenten zugreifen.

Mit der Virtualisierung von Ein- und Ausgabeoperationen (I/O) steht der Umbau der x86-Plattform vor einer weiteren großen Aufgabe. Bis dato regelt der Hypervisor den Zugriff auf Geräte wie Netzwerkadapter (NIC) oder Massenspeicher. Wenn mehrere Gastsysteme über das Netz kommunizieren möchten, dann kann nicht jedes von ihnen beliebig Daten in die Adressbereiche schreiben, die für die Interaktion mit dem NIC genutzt werden (Ports oder DMA). Sie würden sich dabei in kürzester Zeit in die Quere kommen und falsche Informationen übermitteln.

Die gängigsten Hypervisor verfolgen derzeit zwei verschiedene Ansätze, um die Kommunikation über Ein- und Ausgabegeräte zu regeln:

  • VMware ESX sieht vor, dass Anbieter von PC-Komponenten eigene Treiber für den Hypervisor entwickeln, durch die der Zugriff aus allen Gastsystemen erfolgt.

  • Hyper-V und XenServer dagegen leiten alle Zugriffe aus den VMs durch ein privilegiertes Service-Betriebssystem, das in einer eigenen Partition läuft. Damit der Datentransfer direkt und entsprechend schnell mit dem Hypervisor abgewickelt werden kann, kommen im Gastsystem bei beiden Modellen bevorzugt paravirtualisierte Treiber zum Einsatz ("synthetische Treiber" im Microsoft-Jargon).

Die Hersteller von CPUs können ihre Unterstützung auch auf I/O ausweiten, indem sie etwa DMA-Puffer nach dem Muster von Nested Pages so einrichten, dass sie von allen VMs direkt angesprochen werden könnten. Dieses Ziel verfolgen Intel mit VT-d (erstmals in Nehalem umgesetzt) und AMD mit IOMMU.

Vielfalt als Bremse

Allerdings bleibt die wichtigste Aufgabe dann immer noch bei den Anbietern der betreffenden Komponenten, weil diese die parallelen Anfragen in ihren Bauteilen entgegennehmen, sortieren und verarbeiten müssten. Damit würden sie ebenfalls den Hypervisor entlasten und die Ausführungsgeschwindigkeit verbessern. Angesichts der zahlreichen Komponenten für Intel-Rechner lässt sich absehen, dass eine solche Umstellung länger dauern dürfte.

In der Zwischenzeit behelfen sich die Hersteller von Virtualisierungssoftware bei Performanceengpässen etwa damit, dass sie den direkten Zugriff einer VM auf eine I/O-Komponente erlauben. Ein Beispiel dafür ist VMwares "VMDirectPath", das allerdings Intels VT-d benötigt. Dieses Vorgehen hat indes auch Nachteile, weil jede VM eine eigene dedizierte Hardware benötigt und zudem die Migration auf andere physikalische Maschinen erschwert wird, wenn diese nicht identisch ausgestattet sind.

Fazit

Im Fall der Virtualisierungsunterstützung zeichnet sich eine Transformation von Standardhardware ab, die noch mehrere Jahre dauern wird. Die Anbieter von Virtualisierungssoftware können die neuen Features von CPUs und anderen Komponenten nur von Version zu Version integrieren. Mit der Anschaffung neuer Maschinen muss auch bald die Software nachgezogen werden, weil ein veralteter Hypervisor die Möglichkeiten moderner Hardware nicht ausreizen kann. Eine weitergehende RZ-Automatisierung wird zudem eine halbwegs homogene Infrastruktur voraussetzen, besonders auf der Ebene des VMM.

Ein wesentlicher Unterschied zum virtualisierten Mainframe besteht auch darin, dass es bei diesem um die bessere Auslastung einer einzelnen Maschine ging. Die x86-Virtualisierung hingegen schließt mehrere oder viele physikalische Systeme zu einem großen Computer-Pool zusammen, in dem diese harmonieren müssen. Das scheitert jedoch an der Inkompatibilität zwischen AMD und Intel-Prozessoren, die eine Live Migration von VMs zwischen Hosts mit CPUs verschiedener Hersteller verhindert. Eine Lösung für solche gemischten Umgebungen ist noch nicht in Sicht.