System mit VT-d
Auf einem PC betreibe ich mehrere Betriebssysteme in virtuellen Maschinen (VMs) unter Xen. Dabei steht in den Gastbetriebssystemen bloß magere 3D-Beschleunigung zur Verfügung. Auf Systemen mit Intel-Prozessoren, die VT-d unterstützen, sollen sich Grafikkarten mit voller Leistung an bestimmte VMs „durchreichen“ lassen. Gleiches wäre aus Sicherheitsgründen für eine Netzwerkkarte interessant. Welche Systeme unterstützen VT-d – und klappt das überhaupt?
Auf einem PC betreibe ich mehrere Betriebssysteme in virtuellen Maschinen (VMs) unter Xen. Dabei steht in den Gastbetriebssystemen bloß magere 3D-Beschleunigung zur Verfügung. Auf Systemen mit Intel-Prozessoren, die VT-d unterstützen, sollen sich Grafikkarten mit voller Leistung an bestimmte VMs „durchreichen“ lassen. Gleiches wäre aus Sicherheitsgründen für eine Netzwerkkarte interessant. Welche Systeme unterstützen VT-d – und klappt das überhaupt?
Im Prinzip schon, aber die Tücke liegt im Detail. Außer VT-d gibt es auch VT-x, womit die Virtualisierungsbefehle von Intels x86-Prozessoren gemeint sind. Intels Abkürzung VT-d steht für Vanderpool Technology beziehungsweise „Virtualization Technology for Directed I/O“. Eine wesentliche Funktion ist DMA Remapping, also die von der Hardware unterstützte Einblendung von I/O-Adressen bestimmter PCIe-Komponenten in den Speicheradressbereich einer ausgewählten VM. Auch Interrupts werden „umgebogen“. Somit ist eine PCIe-Karte exklusiv in einer bestimmten VM nutzbar, wo sich dann der passende, „native“ Hardware-Treiber installieren lässt. Bei AMD heißt die ähnliche Technik AMD-Vi und allgemeiner I/O Memory Management Unit (IOMMU) for Virtualization. Der Begriff IOMMU wird im PC-Bereich auch für ähnliche Verfahren genutzt, etwa die Graphics Address Remapping Table (GART) des veralteten Accelerated Graphics Port (AGP).
Intel erlaubt die Nutzung von VT-d nur bei gewissen Kombinationen von Prozessoren und Chipsätzen, etwa bei Server-Produkten der Baureihe Xeon. Bislang kommt VT-d vor allem bei bestimmten Servertypen zum Einsatz, etwa bei Blade-Systemen mit 10-Gigabit-Ethernet-Adaptern, die I/O-Virtualisierung gemäß der PCI-Express-Spezifikation IOV unterstützen. Da es kaum Software für Privatleute gibt, die VT-d benutzt, ist die Technik aus Sicht der Hersteller von typischen Desktop-PC-Mainboards wirtschaftlich irrelevant.
VT-d ist aber eine Komponente der vPro-Plattform für Bürocomputer, also für Prozessoren der Baureihen Core i5 und i7 auf Mainboards und in Notebooks mit Qx7-Chipsätzen wie Q57, Q67, Q77, QM67 oder QM77. Auch manche Mainboards mit P67, Z68, Z77, X68 oder X79 beherrschen prinzipiell VT-d, doch oft ist es nicht dokumentiert. Bestimmte Übertakter-Versionen von Core i5 und i7 unterstützen VT-d wiederum nicht, etwa jene mit dem Buchstaben K in der Typenbezeichnung. Auch mit Core i3, Pentium oder Celeron geht es nicht. Wenn das Mainboard-BIOS VT-d nicht ausdrücklich freischaltet, klappt es ebenfalls nicht – folglich muss es auch der Mainboard-, Notebook- oder PC-Hersteller unterstützen.
Leider ist das Vorhandensein einer VT-d-Option im BIOS-Setup kein sicheres Zeichen für korrekte Unterstützung. Und selbst auf VT-d-tauglichen Plattformen funktioniert die Technik nicht immer bei jedem einzelnen PCI-Express-Steckplatz. Außerdem lauern anscheinend Treiber-, Firmware- und BIOS-Bugs. So sichert etwa HP bei der Workstation Z800 die VT-d-Funktion nur im Verbund mit bestimmten Grafikkarten aus der teuren Quadro-Baureihe von Nvidia und mit der VM-Software Parallels Workstation Extreme zu (siehe c’t-Link unten).
Intel pflegt eine Liste mit eigenen, VT-d-tauglichen Mainboards, die Sie über den c’t-Link finden. Dort haben wir auch einige Verweise auf Internetforen zusammengetragen, in denen sich Anwenderberichte zu VT-d und Xen auf einzelnen Mainboards von Asrock, Asus, Gigabyte und MSI finden.