Hardware effizient nutzen

Mehrkern-CPUs und Virtualisierung

21.10.2008
Von 
Uli Ries ist freier Journalist in München.

Spezielle CPU-Funktionen beschleunigen die Virtualisierung

Egal, welche Produkte in der Praxis eingesetzt werden, um Virtualisierung zu ermöglichen, eines ist allen Lösungen gemeinsam: Sämtliche Anfragen der virtuellen Maschine an die zugrunde liegende Hardware müssen erst vom Hypervisor (HV) – manchmal auch Virtual Machine Monitor genannt – verarbeitet werden. Der HV ist ein Stück Software, dass zwischen Gast- und virtuellem Betriebssystem läuft und somit quasi die Hardware emuliert. Diese Emulation kostet ein gutes Stück Performance. Auch Bare-Metal-Hypervisor wie VMwares ESX, die direkt auf der Hardware laufen und kein Host-Betriebssystem mehr brauchen, erzeugen einen Reibungsverlust.

Um die Leistungseinbußen zu minimieren, haben die Prozessorhersteller AMD und Intel jeweils eigene Erweiterungen für die Befehlssätze ihrer x86-CPUs entwickelt: AMD nennt seine Technik "AMD-V", Intel "IVT" (Intel Virtualization Technology). Die neuen Befehle sind nicht kompatibel, so dass die Anbieter von Virtualisierungssoftware ihre Produkte an AMD-V und IVT anpassen müssen. Die Platzhirsche Microsoft, VMware, Parallels und Xen haben dies schon vor längerem erledigt. Dank der Erweiterungen können deutlich mehr Befehle direkt vom Gastbetriebssystem an den ansonsten vom Hypervisor abgeschirmten Prozessor geschickt werden, so dass die zeitraubende Umsetzung durch den HV entfällt.

Erweiterte Zugriffsrechte

Intel hat darüber hinaus noch weitere Änderungen an seinen Produkten vorgenommen, um diese an die Anforderungen der Virtualisierung anzupassen. Die Funktionen sind zum großen Teil nicht nur in den hochgezüchteten Xeon-Server-Prozessoren zu finden, sondern auch in den für Notebooks und Desktop-PCs konzipierten Core-2-Duo-CPUs. So sorgt beispielsweise Intels VT-x-Technik unter anderem dafür, dass das virtualisierte Betriebssystem mit genau den gleichen Zugriffsrechten auf die CPU versehen wird, als würde es direkt auf der Hardware laufen (Ring aliasing).

Ohne VT-x straucheln die Betriebssysteme, da sie eigentlich den Ring mit den meisten Privilegien (Ring 0) direkt ansprechen können, dies aber bei gleichzeitig laufendem Hypervisor nicht können, da dieser den Ring 0 exklusiv für sich beanspruchen muss. VT-x gaukelt dem Betriebssystem vor, im Ring 0 zu laufen, so dass herkömmliche Betriebssysteme ohne Modifikation auch auf virtualisierten Maschinen genauso zuverlässig laufen wie auf physikalischen. Auch Hauptspeicherzugriffe werden durch diese Hardwareergänzung zuverlässiger.