Grundlagen

Virtualisierung im x86-Rechenzentrum

31.01.2008
Von Dennis Zimmer

Komplettvirtualisierung

Technisch gesehen wird bei der Komplettvirtualisierung jedem Gastsystem, unabhängig von der realen Host-Hardware, eine angepasste standardisierte Hardware präsentiert. Letztere wird für jede aktive VM in einem eigenen unabhängigen Prozess durch die Virtualisierungsschicht bereitgestellt, also: 10 VMs = 10 x Hardwareprozess. Prozessor- und Hauptspeicherzugriffe werden direkt (jedoch nicht zwingend unverändert) an die physikalische Hardware durchgereicht, alle anderen Geräte werden "emuliert". Diese werden je nach Notwendigkeit durch die Virtualisierungsschicht angepasst.

In dieser Kategorie agieren Microsoft und VMware. Durch die Nutzung von Prozessorvirtualisierung gesellen sich Xen-basierende Produkte und Microsofts kommender Hyper-V hinzu.

Die Emulierung der Hardware (Massenspeicher, Netz und Grafik) kostet jedoch Systemleistung, die dem Gesamtsystem verloren geht ("Virtualisierungsschwund"). Der Leistungsverlust bewegt sich je nach Virtualisierungssoftware und Zugriffsart der Gastsysteme zwischen zwei und 25 Prozent.

Die VMs und damit im Gast installierte Betriebssysteme wissen nichts von der virtuellen Hardware, arbeiten also wie mit Physik und benötigen daher im einfachsten Fall keine Anpassungen.

Bei den Komplettvirtualisierern wird zwischen "Hosted" und "Hypervisor"-Produkten unterschieden: Ein Hosted Produkt (etwa VMware Server, Microsoft Virtual Server) benötigt ein auf der Hardware installiertes Betriebssystem, das heißt: Microsoft Virtual Server wird auf dem Windows 2003 Server installiert. Die Virtualisierungslösung nutzt den Hardwarezugriff des Host-Betriebssystems und greift selbst nicht direkt auf die Hardware zu.

Hypervisor-Produkte, die sich als Standard für die Virtualisierung im Rechenzentrum etabliert haben, wiederum setzen direkt auf der Hardware auf und benötigen keine vorherige Betriebssystem-Installation. Das setzt allerdings vom Hypervisor unterstützte Hardware voraus. Xen (Xen-basierende Produkte: Citrix Xen Server, Virtual Iron), VMware ESX und Microsoft Hyper-V sind Hypervisor-Produkte.

In Sachen Geschwindigkeit ist die Hosted Virtualisierungslösung dem Hypervisor-Produkt unterlegen, punktet jedoch bei der Treiberunterstützung.

Bevor die x86/x64-Prozessoren von AMD und Intel Virtualisierung unterstützten, mussten bestimmte privilegierte Anfragen ("Ring0"-Anfragen) durch das Gast-Betriebssystem an die CPU von der Virtualisierungsschicht abgefangen und manipuliert werden, um Störungen des Gesamtsystems zu vermeiden. Der Hintergrund: x86-Systeme waren ursprünglich lediglich für den Betrieb eines aktiven Betriebssystems gedacht und erwarteten daher auch nur Ring0-Anfragen eines Betriebssystems. VMware umging dieses Problem als erster Anbieter durch das Abfangen und Umbiegen dieser Anfragen über die Virtualisierungsschicht und nutzt dieses Verfahren bis heute in dem Produkt VMware ESX Hypervisor. Xen verwendete zunächst Paravirtualisierung als Gegenmittel, ist damit aber auf anpassbare Betriebssystem-Quellen angewiesen.

Dank der neuen Funktionen in AMD- und Intel-Prozessoren sind die CPUs nun in der Lage, mit privilegierten Anfragen aus mehreren gleichzeitig aktiven Betriebssystemen umzugehen. VMware nutzt dieses Verfahren nur in bestimmten Fällen (64-Bit-Gastsysteme, manuelle Aktivierung), Xen und Microsofts Hyper-V jedoch funktionieren nur bei nutzbaren Virtualisierungsfunktionen der Prozessoren, wenn nicht paravirtualisiert wird. Auch Xen-basierende Produkte wie Citrix Xen Server und Virtual Iron nutzen ausschließlich die CPU-Funktionen zur Virtualisierung der Gastsysteme und lassen sich ohne diese nicht betreiben.

Plus/Minus Komplettvirtualisierung

(nur Hypervisor)

+

Hohe Geschwindigkeit im Gast;

+

keine Anpassung der Gast-Betriebssysteme notwendig;

+

vom Host und anderen Gästen unabhängige Gastsysteme (Betriebssystem-Typ, -Version);

+

sehr vielseitige Gasthardware;

+

flexible Anpassung der Gasthardware (teilweise auch während der Laufzeit).

-

Hardware muss durch die Virtualisierungssoftware unterstützt werden;

-

manche Hardware lässt sich im Gastsystem nicht eins zu eins abbilden (etwa Faxkarten);

-

virtuelle Hardware wird für jede VM als Prozess abgebildet (Schwund);

-

Prozessorvirtualisierung erforderlich (mit Ausnahme von VMware ESX);

-

Installation von Tools im Gast notwendig, um optimale Leistung zu erzielen;

-

hohe Systemkapazitäten pro Gast benötigt.