Sie sind auf Seite 1von 4

Grundlagen

Virtualisierung
Backstage
Wie funktioniert Virtualisierung und was eint
oder trennt die zahlreichen Angebote? Welches
eignet sich für welchen Zweck? Ein Blick hinter
die Kulissen. Jens-Christoph Brendel

Heute tummelt sich auf dem Markt für Virtu-


alisierungslösungen eine Vielzahl an Techniken
und Produkten und es herrscht ein ziemliches
Begriffsgewirr. So unterscheidet man nach dem
Gegenstand Server-, Speicher- und Netzwerk-
Virtualisierung. Allerdings überschneiden sich
diese Formen häufig. Nach dem Einsatzzweck
wird zuweilen Desktop- von Server-Virtualisie-
rung getrennt, aber auch diese Grenze ist un-
scharf. Ein weiteres Kriterium ist, ob die Virtu-
alisierung eher durch Hardware oder Software
bewerkstelligt wird. Je nachdem, ob sie an eine
Plattform gebunden oder plattformunabhängig
ist, sprechen manche auch von In-the-Box- und
Out-of-the-Box-Virtualisierung.
Ordnung tut Not. Bester Ausgangspunkt dafür
ist ein ganz normaler Rechner, der mit Virtua-
lisierung nichts zu schaffen hat. Bei ihm kann
man ganz grob drei Komponenten unterschei-
den: Hardware, Betriebssystem und Anwen-
dungen. Hard- und Software verbindet eine
Schnittstelle, die als Instruction Set
Architecture (ISA) bezeichnet wird
(Abbildung 1).
Die ISA definiert die Eigen-
schaften eines Rechners,
die für den Programmie-
rer nutzbar sind, beispiels-
weise den Befehlssatz der

10 www.linuxtechnicalreview.de
Grundlagen

CPU oder die zen, während sie das Betriebssystem tatsächlich


Applikationen verfügbaren Re- in ihrem Adressenraum gefangen hält und in
gister des Pro- der Regel nur über sein Ressourcenmanagement
zessors. Man auf Hardware zugreifen lässt. Damit leben sie im
OS kann sie sich als Alltag immer in einem virtuellen Raum. Dabei
ISA eine Art Ver- ist implizit jedes Mal auch Speicher-Virtu-
trag vorstellen, alisierung im Spiel, die in modernen Pro-
der dem Ent- zessoren die MMU erledigt.
Hardware
wickler und sei- Auch Prozess-Virtualisierung mit unter-
nem Compiler schiedlicher ISA kennt jeder aus ei-
ein bestimmtes gener Erfahrung, etwa von Java
Abbildung 1: Die Instruction Verhalten der und seiner virtuellen Maschine
Set Architecture (ISA) bildet Hardware zusi- oder von Pascals P-Code. Das
die Schnittstelle zwischen chert. Java-Programm rechnet mit
Soft- und Hardware und ver- Virtualisierung Funktion und Befehlssatz der
einbart, was ein Compiler fügt in dies Mo- JVM, die ihrerseits auf der ISA
voraussetzen darf. dell in jedem der Hardware aufbaut. Die Gat-
Fall eine Schicht tungsbezeichnung dafür lautet High Le-
oberhalb der ISA ein. Zuerst ist wesentlich, ob vel Language Virtual Machine (HLL VM).
diese Virtualisierungsschicht sowohl Anwen-
dung wie Betriebssystem des Gastes unterkel- System-Virtualisierung
lert, dann spricht man von System-Virtualisie- Interessanter wird es bei der Virtualisierung
rung, oder nur unter der Anwendungsschicht ganzer Systeme, die sich genau so differenzieren
liegt, dann ist von Prozess-Virtualisierung die lässt. Im ersten und häufigsten Fall verwenden
Rede. Beide Klassen gliedern sich in einem zwei- alle Betriebssysteme – der Host wie seine Gäste
ten Schritt danach, ob die Komponenten unter- – dieselbe ISA. Der Virtualisierungslayer ver-
und oberhalb der Virtualisierungsschicht die- vielfältigt diese Schnittstelle lediglich und fängt
selbe ISA verwenden oder nicht. In einem drit- gleichzeitig die privilegierten Operationen der
ten Schritt schließlich ist nach der Lage dieser Gast-Betriebssysteme ab. Das ist nötig, weil die
Schicht (Abbildung 2)
zu unterscheiden.
Gleiche ISA Verschiedene ISA
Prozess-Virtuali-
sierung Classic Hypervisors System Emulators
System VMs

Mit Prozess-Virtuali- z.B.: Xen, VMware ESX z.B.: Bochs, Qemu


sierung – von der dann
im Folgenden nicht
Hosted VMs Co-Designed VMs
weiter die Rede sein
soll – hat man es ei- z.B.: VMware Workstation z.B. AS/400 Memory Management
gentlich laufend zu tun. Unit (MMU):
Besonders die Multi- Multiprogramming Dynamic Translation
Funktionseinheit mo-
Prozess VMs

programming getaufte derner Prozessoren, die


z.B.: Linux, Windows z.B. FX!32, Transmeta
Unterart mit gleicher logische in physische
ISA ist so häufig, dass Binary Recoding HLL VMs Adressen übersetzt. Der
sie kaum noch auffällt. z.B.: Valgrind z.B. Java VM
logische Adressraum wird
Denn dieser Technik dabei in Gruppen aufein-
bedient sich eigentlich ander folgender Adressen
jedes normale Betriebs- (Seiten) aufgeteilt, der
system, indem es den Umsetzungsprozess durch
Prozessen vorspiegelt, Abbildung 2: Die verschiedenen Arten virtueller Maschinen bilden vier Caches (Translation
sie könnten einen kom- große Klassen, unter denen die ersten drei der linken Seite die größte An- Lookaside Buffer, TLB)
pletten Rechner benut- hängerschar gefunden haben. beschleunigt.
.hu
sxc
w w.
: w
ine
oste
Leg

www.linuxtechnicalreview.de 2
Grundlagen

Gäste in der Regel nichts davon wis- Dabei kann zusätzlich die ISA emuliert wer-
Apps Apps sen, dass sie die Hardware nicht wie den, was beispielsweise passiert, wenn Micro-
erwartet exklusiv besitzen, sondern softs Virtual PC unter einem Mac-Betriebssys-
teilen müssen (Abbildung 3). tem Windows startet (Abbildung 4). Alternativ
Win Linux Im zweiten Fall unterscheiden sich stützen sich alle Gäste gemeinsam auf den Be-
die ISA von Gast und Hypervisor, triebssystem-Kern des Hosts. Diese Technik
VMM Letzterer muss auch die Übersetzung heißt Betriebssystem-Virtualisierung. Vertreter
der Gast-Befehle in die Sprache sei- dafür sind etwa die BSD Jails [7], die Zonen in
ner Hardware übernehmen (Emula- Solaris [8], außerdem Virtuozzo [9] beziehungs-
Hardware tion). Das beherrschen unter Linux weise dessen freier Ableger OpenVZ [10] oder
etwa Bochs [2] oder Qemu [3] (auf das Vserver-Projekt [11] (mehr dazu bietet ein
Qemu geht ein weiterer Beitrag in Workshop in diesem Heft).
Abbildung 3: Der häufigste Fall diesem Heft ausführlich ein). Als Spezialfall des klassischen Hypervisor er-
eines klassischen Hypervisor, der Eine andere Gruppe aus dieser Klasse langte ein Modell große Beliebtheit, bei dem
direkt auf der Hardware läuft, virtueller Maschinen – die Co-Desig- sich die Gäste im Klaren darüber sind, dass sie
deren ISA-Schnittstelle für seine ned Virtual Machines (CVM) – wird in einer virtuellen Umgebung laufen. Dafür
Gäste repliziert und außerdem gemeinsam mit der Hardware entwi- müssen sie allerdings gepatcht werden, was nur
noch ihre privilegierten Opera- für quelloffene Systeme einfach zu bewerkstelli-
ckelt. Ein häufiges Ziel dabei ist es,
tionen abfängt und stellvertre- neue Hardware mit einer verbreite- gen ist. Dann allerdings kann durch die Koope-
tend erledigt. ten und etablierten ISA kompatibel ration von Gast und Gastgeber bei der Behand-
zu halten. Ein Beispiel für die Nütz-lung sensitiver Operationen ein beachtlicher
lichkeit liefert IBMs System/​38, ein Vorläufer Performancevorteil erreicht werden. Dieser Fall
der AS/​400 (heute I-Series), bei dem sich in denheißt Paravirtualisierung und sein prominentes-
90er Jahren dank dieser Technik die komplette ter Vertreter heutzutage ist Xen [12]. (Mit Xen
Hardwareplattform transparent ersetzten ließ beschäftigen sich mehrere Beiträge in diesem
(IPMI-CPUs gegen PowerPC-Prozessoren). Heft en detail.)
Von allen diesen Spielarten ist keine a priori
Eine Welt die beste, stattdessen entsprechen ihnen unter-
Die System-VMs mit gleicher ISA lassen sich schiedliche Einsatzszenarien. Emulation kostet
weiter danach unterscheiden, wo der Virtuali- zwar Performance, eröffnet aber die Möglichkeit,
sierungslayer liegt, denn dafür gibt Software einer fremden
es verschiedene Möglichkeiten. Setzt Win Apps Welt zum Laufen zu brin-
er direkt auf der Hardware auf (Ab- gen. Paravirtualisierung
bildung 3), spricht man von einem Win ist schnell, verlangt dafür
klassischen Hypervisor oder einer aber modifizierbare Gast-
vollständigen Virtualisierung. Hier VMM Mac A betriebssysteme, scheidet
wäre etwa der ESX-Server von VM- p also etwa für Windows da-
ware einzuordnen (mehr über dieses
p her praktisch aus.
Mac OS s
Produkt in einem weiteren Beitrag). Die Virtualisierung des
Befindet sich der Virtualisierungs- Betriebssystems ist beson-
layer dagegen oberhalb eines Host- ders Ressourcen-schonend
Betriebssystems, heißt das Modell und daher beispielsweise
Hosted Virtualization (ein Beispiel PowerPC bei Providern auch beson-
zeigt Abbildung 4). ders beliebt, sie beschränkt
Der VMware Server [4] (ehemals die Gäste allerdings auf das
GSX-Server), die Workstation aus Abbildung 4: Eine System- Operating System ihres
gleichem Haus oder auch Par- VM, die innerhalb eines Hosts.
allels [5] stehen für diesen Typ, Betriebssystems ausgeführt Die Hardware-Unterstüt-
ebenso User Mode Linux [6] wird und eine fremde ISA zung ist zwar effektiv, aber
(dessen Schöpfer und Maintai- emuliert, hat dagegen noch nicht mit jeder CPU
ner, Jeff Dike, einen Workshop diese, schon etwas kompli- und jeder Virtualisierungs-
für dieses Heft beigesteuert hat). ziertere Architektur. lösung nutzbar.

3 www.linuxtechnicalreview.de
Grundlagen

Infos [8] Solaris Zones: [http://docs.sun.com/app/docs/


doc/819-4323?l=de&a=load]
[1] Robert P. Goldberg, „Architectural Principles for [9] Virtuozzo: [http://www.swsoft.com]
Virtual Computer Systems“: PhD-Thesis, Harvard [10] OpenVZ: [http://openvz.org]
University, 1972 [11] Vserver: [http://linux-vserver.org/Overview]
[2] Bochs: [http://bochs.sourceforge.net] [12] Xen: [http://www.cl.cam.ac.uk/Research/SRG/
[3] Qemu-Homepage: [http://www.qemu.com] netos/xen/]
[4] VMware Server: [http://www.vmware.com] [13] Intel VT: [http://cache-www.intel.com/cd/00/00/
[5] Parallels: [http://www.parallels.com] 23/66/236644_236644.pdf]
.hu
[6] UML: [http://user-mode-linux.sourceforge.net] [14] AMD IOMMU: [http://www.amd.com/us-en/ w.
sxc
w w
[7] BSD Jails: [http://www.freebsd.org/doc/en_US. assets/content_type/white_papers_and_tech_ ine
:
oste
ISO8859-1/books/arch-handbook/jail.html] docs/34434.pdf] Leg

Hardwarehilfe
Die x86-Architektur war lange Zeit nicht besonders virtuali- Intels VT – das viele neuere Prozessoren bereits mitbringen
sierungsfreundlich. Um mit einem Hypervisor kooperieren zu – bietet ebenfalls bestimmte Befehlserweiterungen des Pro-
können, müssen sich die Gäste einer Oberaufsicht unterwer- zessors (Virtual Machine Extensions). Sie erlauben es, die be-
fen, die sie aus ihrem Dasein als Solo-Betriebssystem nicht kannte Hierarchie von CPU-Operationen nach dem erwähn-
kennen. Alle privilegierten Befehle, die im so genannten ten Modell einer Hierarchie verschieden privilegierter Ringe
Ring 0 der CPU laufen und dem Betriebssystem vorbehalten um zwei neue Modi zu ergänzen: Root- beziehungsweise
sind, müssen jetzt eine Exception auslösen. Denn im Virtuali- Non-Root-Modus.
sierungsfall besetzt der Hypervisor die Ebene der höchsten Diese Modi kann der Hypervisor steuern, der selber im Root-
Berechtigungen. Modus läuft. Er kann das Gast-Betriebssystem in den Non-
Er würde an einer solchen Unterbrechung erkennen, dass ein Root-Modus versetzen, indem es gefahrlos Ring-0-Instrukti-
jetzt minder privilegiertes Gastbetriebssystem einen Zugriff ver- onen verwenden darf. Dabei bemerkt es selber keinen Un-
sucht, der ihm nicht mehr gestattet werden darf. So könnte er terschied zu den Abläufen, die es als Alleinherrscher eines
eingreifen, die Instruktion abfangen, ihre Ausführung emulie- Rechners kennt.
ren und das Resultat an den Gast zurückgeben. Xen 3.0 unterstützt sowohl AMDs wie auch Intels Technologie
Ältere x86-CPUs lösen allerdings nicht in jedem Fall die erfor- und kann mit VT-Unterstützung auch Windows ohne Ände-
derliche Exception aus. Auch eine Herabstufung einzelner rung neben para-virtualisierten Gästen ausführen.
Instruktionen für den Gast (De-Privileging) ist nicht möglich,
denn einige Maschinenbefehle haben im Userlevel eine an-

Non Root Mode


dere Semantik. Apps Apps
Ein Workaround, den beispielsweise VMware verwendet,
besteht darin, den gesamten Code, den eine VM auszu-
führen plant, vorher auf diese kritischen Instruktionen hin zu
durchforsten (Prescan) und die Fundstellen dann zu modifi-
zieren (Binary Translation). Selbstverständlich kostet das Per- Guest OS Guest OS
formance. Einem ähnlichen Zweck dient auch das Patchen
des Gastes à la Xen, was zwar performanter ist, aber modifi-
VM-ENTER

zierbare Gäste erfordert.


VM-EXIT

Seit kurzem unterstützen nun auch die CPU-Hersteller der x86-


Welt, Intel und AMD, aktiv die Virtualisierung. Intel mit seiner Ring 0
Intel Virtualization Technology (VT, Codename Vanderpool,
Root Mode

[13]), AMD mit der AMD I/O Virtualization Technology (Code-


name Pacifica, [14]).
Die Lösung von AMD implementiert spezielle Prozessorfunk- Virtual Machine Monitor
tionen, die den Hypervisor bei der Adressenumsetzung un-
terstützen und in seinem Auftrag außerdem kontrollieren
können, ob bestimmte Zugriffe eines Gastsystems auf Geräte Abbildung 5: Intels VT erlaubt es Gastbetriebssystemen,
überhaupt erlaubt werden dürfen. (Mehr dazu in einem wei- wie gewohnt Ring 0 zu verwenden, derweil der VMM in ei-
teren Beitrag in diesem Heft.) nem besonders privilegierten Root-Modus läuft.

www.linuxtechnicalreview.de 4

Das könnte Ihnen auch gefallen