Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Leitfaden für die Nutzung des Buchs und der beiliegenden DVDs
Das Terminal – sinnvoll oder überflüssig?
1 Die Wurzeln von Ubuntu
2 Was ist Ubuntu?
3 Die Versionen im Detail
4 Daten sichern, migrieren und synchronisieren
5 Die Installation
6 Erste Schritte
7 Kubuntu
8 Programme und Pakete installieren
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia
13 Programmierung und Design
14 Software- und Paketverwaltung
15 Architektur
16 Backup und Sicherheit
17 Desktop-Virtualisierung
18 Serverinstallation
19 Administration und Monitoring
20 Netzwerke
21 LAN-Server – im Firmennetzwerk oder als Multimediazentrale
22 Der Server im Internet
23 Servervirtualisierung mit KVM
24 Servervirtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz
A Mark Shuttleworth
Stichwort

Download:
- ZIP, ca. 50,6 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 11.04 »Natty Narwhal«
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
geb., mit 2 DVDs
1118 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1765-1
Pfeil 17 Desktop-Virtualisierung
  Pfeil 17.1 Überblick
  Pfeil 17.2 Konzepte
    Pfeil 17.2.1 Virtuelle Maschinen, Server und Laufzeitumgebungen
    Pfeil 17.2.2 Paravirtualisierung
    Pfeil 17.2.3 Hardwareunterstützte Virtualisierung
  Pfeil 17.3 Grundsätzlicher Aufbau
    Pfeil 17.3.1 Generelles Problem bei der x86-Virtualisierung
    Pfeil 17.3.2 Möglichkeiten der x86-Virtualisierung
    Pfeil 17.3.3 Machtmissbrauch
    Pfeil 17.3.4 Ungenutzte Ringe
  Pfeil 17.4 Intel VT-x und AMD-V
    Pfeil 17.4.1 Gründe für Performance-Probleme
    Pfeil 17.4.2 Pacifica und Vanderpool sind inkompatibel
  Pfeil 17.5 Virtualisierungssoftware
  Pfeil 17.6 VMware Player
    Pfeil 17.6.1 Installation unter Windows
    Pfeil 17.6.2 Installation unter Linux
    Pfeil 17.6.3 Nutzung der virtuellen Maschine
    Pfeil 17.6.4 Installation einer vorkonfigurierten VM
    Pfeil 17.6.5 VMware Tools
    Pfeil 17.6.6 Erstellung einer neuen VM
    Pfeil 17.6.7 Deinstallation unter Linux
  Pfeil 17.7 VMware Workstation
    Pfeil 17.7.1 Professionelle Funktionen
    Pfeil 17.7.2 Installation
    Pfeil 17.7.3 Betrieb
    Pfeil 17.7.4 VMware Tools
  Pfeil 17.8 VirtualBox
    Pfeil 17.8.1 Proprietäre Version
    Pfeil 17.8.2 VirtualBox OSE
  Pfeil 17.9 QEMU
    Pfeil 17.9.1 Installation
    Pfeil 17.9.2 Gastsysteme installieren


Galileo Computing - Zum Seitenanfang

17.4 Intel VT-x und AMD-V  Zur nächsten ÜberschriftZur vorigen Überschrift

AMD und Intel versprechen umfangreiche Virtualisierungsunterstützung durch ihre Prozessoren. In Wirklichkeit steht die Technik erst am Anfang. Ich möchte Ihnen an dieser Stelle einen Überblick über die verschiedenen Techniken geben und deren Grenzen aufzeigen.

Kompromisse

Virtualisierung bedeutet immer auch Kompromisse. Bei einer Vollvirtualisierung muss man erhebliche Performance-Nachteile in Kauf nehmen. Für eine Paravirtualisierung, die diese Nachteile an vielen Stellen ausgleicht, ist es erforderlich, das Gastbetriebssystem zu erheblichen Teilen abzuändern, und die ressourcensparende Containervirtualisierung kann überhaupt nur identische Betriebssysteme in mehreren virtuellen Instanzen ausführen.

Das Ziel einer Prozessorunterstützung für Virtualisierung muss es sein, den Komfort einer Vollvirtualisierung für den Anwender zu erreichen und gleichzeitig deren Performance-Nachteile zu eliminieren. Bei Vollvirtualisierung laufen auch die Kernel-Mode-Teile der Gastbetriebssysteme nicht in Ring 0 des Prozessors, sondern je nach Virtualisierungslösung in Ring 1 oder 3. In diesen Ringen sind nicht alle Befehle möglich.


Galileo Computing - Zum Seitenanfang

17.4.1 Gründe für Performance-Probleme  Zur nächsten ÜberschriftZur vorigen Überschrift

Die Virtualisierungssoftware fängt nun Befehle, die in Ring 0 nicht möglich sind, in Form einer Exception ab, so dass sie für das Gastbetriebssystem als privilegierte Befehle erscheinen. Im Falle der Speicherverwaltung bedeutet dies, dass die Virtualisierungssoftware aus der physischen Speichertabelle Speicher allokiert und in den Adressraum der Gastumgebung legt.

Bei der Intel-Architektur wird Speicher in einer Tabelle in Blöcken zu 4 KB verwaltet. Die Gastumgebung hat eine gleich strukturierte Tabelle, jedoch wird der Zugriff darauf abgefangen und die Tabelle in Wahrheit von der Virtualisierungssoftware mitverwaltet.

Hier liegt ein großes Performance-Hindernis für vollvirtualisierte Umgebungen. Der eigentliche Hauptspeicher eines Computers ist relativ langsam. Eine Beschleunigung ergibt sich durch den Cache. Der Cache-Speicher hängt jedoch immer komplett zusammen und wird aus Performance-Gründen nicht in Blöcken verwaltet. Bei jedem Abfangen der Speicherverwaltung muss daher der Cache komplett in den Hauptspeicher geschrieben werden, was zusätzlich zu der emulierten Speicherverwaltung viel Zeit kostet.

Nachteile beim I/O-Zugriff

Ähnlich sieht es beim I/O-Zugriff aus. Hier liest und schreibt das Gastbetriebssystem in die I/O-Ports, was allerdings von der Virtualisierungssoftware abgefangen und in entsprechende Aktionen transformiert wird. Während einfache Bausteine, etwa ein serielles oder ein paralleles Interface, mit wenigen I/O-Ports auskommen, müssen Devices, bei denen es auf Geschwindigkeit ankommt, in den Speicheradressraum des Prozessors gelegt werden.

Ein Standard-Ethernet-Paket beispielsweise kann bis zu 1.500 Bytes groß sein. Neuere Ethernet-Karten unterstützen auch Jumbo-Pakete mit bis zu 9.000 Bytes. Da immer ein ganzes Paket übertragen werden muss, benötigt eine Ethernet-Karte immer mindestens den Speicheradressraum für ein Paket. Moderne Ethernet-Karten bieten jedoch Speicheradressraum für mehrere Pakete. Der Prozessor legt dabei mindestens ein Paket in den gemeinsamen Adressraum. Danach erfolgt die Übertragung über den DMA-Baustein des Motherboards, damit der Prozessor weiterarbeiten kann und die Übertragung über I/O-Ports nicht selbst übernehmen muss.

Hier liegt das größte Performance-Problem der Vollvirtualisierung: Echte DMA-Bausteine können nur im Kernel-Mode verwaltet werden. Daher muss bei jeder Verwendung eines Peripheriegeräts – etwa Netzwerk, Festplatte oder Bildschirm – ein Taskswitch in die Virtualisierungssoftware durchgeführt werden, der dazu führt, dass der Cache invalidiert wird und der langsame Hauptspeicher bemüht werden muss.


Validierung: Der Begriff Validierung (Test auf Plausibilität) bezeichnet die Kontrolle eines konkreten Wertes darauf, ob er zu einem bestimmten Datentyp gehört oder in einem vorgegebenen Wertebereich oder einer vorgegebenen Wertemenge liegt.


Um diese Performance-Nachteile einer virtualisierten Umgebung auszugleichen, gibt es verschiedene Ansätze. Ein softwareseitiger Ansatz ist der Austausch von Treibern nach der Installation des Gastbetriebssystems. Diese neuen Treiber versuchen nicht mehr, die Hardware zu programmieren, sondern übergeben solche Pakete, die an Netzwerkkarte, Festplattencontroller oder Videokarte gesendet werden sollen, an die Virtualisierungssoftware. Allerdings verläuft auch diese Übergabe nicht ohne Performance-Verlust. Da das Gastbetriebssystem grundsätzlich davon ausgeht, den gesamten Adressraums eines Computers allein nutzen zu können, müssen die Treiber absichtlich einen privilegierten Befehl ausführen, um eine Exception zu provozieren.

Dies hat natürlich wieder eine Invalidierung des Cache zur Folge. Erst dann kann die Virtualisierungssoftware die Pakete abholen. Lediglich die Emulation der Devices und der DMA-Bausteine fällt in diesem Fall weg.


Galileo Computing - Zum Seitenanfang

17.4.2 Pacifica und Vanderpool sind inkompatibel  topZur vorigen Überschrift

Um Abhilfe zu schaffen, bieten die Prozessorhersteller mittlerweile hardwareseitig Unterstützung an. AMD und Intel gehen hier unterschiedliche Wege – damit sind ihre Lösungen inkompatibel. Virtualisierungssoftware muss sowohl für AMD-V (Codename: Pacifica) und Intels VT-x (Codename: Vanderpool) Unterstützung bieten.

Ring minus eins

Dabei lässt sich die hardwareseitige Unterstützung in drei Bereiche unterteilen: Als Erstes sind neue privilegierte Prozessorbefehle zu nennen. Grundsätzlich wird dabei eine neue, superprivilegierte Umgebung implementiert, die Intel »Ring minus eins« nennt.

So können mehrere Gastbetriebssysteme jeweils einen eigenen Ring 0 mit den dazugehörigen privilegierten Befehlen nutzen, ohne dass eine gegenseitige Beeinflussung möglich ist. Damit laufen die Kernel-Mode-Teile eines Betriebssystems nicht mehr in Ring 1 oder 3, wo jeder privilegierte Befehl per Exception abgefangen werden muss. Die Anzahl der Taskswitches wird dadurch deutlich reduziert, was generell eine höhere Performance bedeutet.

Abbildung 17.5  Unterschiedliche Implementierung bei den CPUs

Ein moderner Prozessor ist Voraussetzung

Diese Technologie steht heute bei den modernen Prozessoren von AMD und Intel zur Verfügung. Alle namhaften Anbieter von Virtualisierungslösungen unterstützen heute beide Architekturen. Neben vollvirtualisierten Systemen können auch paravirtualisierte Systeme von der Prozessorunterstützung, insbesondere der Speicherverwaltungsunterstützung, Gebrauch machen. Durch die Einblendung von Schnittstellen der Virtualisierungslösung in den Adressraum der Gastbetriebssysteme können APIs realisiert werden, die zum Beispiel Ressourcen wie Hauptspeicher und Plattenplatz dynamisch zwischen den einzelnen Gastmaschinen verteilen. Dies würde eine Containervirtualisierung, die pro Computer nur ein Betriebssystem unterstützt, weitgehend überflüssig machen. Nötig dafür sind allerdings Schnittstellenabsprachen zwischen den Herstellern von Betriebssystemen und Virtualisierungslösungen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux

Ubuntu GNU/Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Linux-Server einrichten und administrieren






 Linux-Server
 einrichten und
 administrieren


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: Linux






 Linux


Zum Katalog: Debian






 Debian


Zum Katalog: Android 3






 Android 3


Zum Katalog: GIMP






 GIMP


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de