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

Inhaltsverzeichnis
Vorwort
Einleitung
1 Was ist Ubuntu?
2 Die Versionen im Detail
3 Die Shell
4 Migration und Synchronisation
5 Die Installation
6 Erste Schritte
7 Ubuntu mobil
8 Derivate
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia und Spiele
13 Programmierung und Design
14 Hardware-Konfiguration
15 Software- und Paketverwaltung
16 Architektur
17 Backup und Sicherheit
18 Server-Installation
19 Datei- und FTP-Server
20 Weitere Server-Dienste
21 Kontrolle und Monitoring
22 Desktop-Virtualisierung
23 Server-Virtualisierung mit KVM
24 Server-Virtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz Ubuntu Linux
A Übersicht: Software für (K)Ubuntu
B Mark Shuttleworth
C Glossar
D Häufig gestellte Fragen
Stichwort

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

Spacer
<< zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 9.04 - Jaunty Jackalope
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
4., aktualisierte und erweiterte Auflage, geb.
1.120 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1439-1
Pfeil 22 Desktop-Virtualisierung
Pfeil 22.1 Überblick
Pfeil 22.2 Konzepte
Pfeil 22.2.1 Paravirtualisierung
Pfeil 22.2.2 Hardware-unterstützte Virtualisierung
Pfeil 22.3 Die Ringe
Pfeil 22.3.1 Grundsätzlicher Aufbau
Pfeil 22.3.2 Generelles Problem bei der x86-Virtualisierung
Pfeil 22.3.3 Möglichkeiten der x86-Virtualisierung
Pfeil 22.3.4 Machtmissbrauch
Pfeil 22.3.5 Ungenutzte Ringe
Pfeil 22.4 Intel VT-x und AMD-V
Pfeil 22.4.1 Welche Prozessoren bieten diese Technik?
Pfeil 22.4.2 Gründe für Performance-Probleme
Pfeil 22.4.3 Pacifica und Vanderpool sind inkompatibel
Pfeil 22.5 Allgemeines
Pfeil 22.6 VirtualBox
Pfeil 22.6.1 Installation
Pfeil 22.6.2 USB-Einrichtung
Pfeil 22.7 VMware Player
Pfeil 22.7.1 Installation unter Windows
Pfeil 22.7.2 Installation unter Linux
Pfeil 22.7.3 Nutzung der virtuellen Maschine
Pfeil 22.7.4 Tipps für Windows-Anwender
Pfeil 22.8 VMware Workstation
Pfeil 22.8.1 Voraussetzungen
Pfeil 22.8.2 Installation
Pfeil 22.9 VMware Server
Pfeil 22.9.1 VMware Server 1.x
Pfeil 22.9.2 VMware Server 2.x
Pfeil 22.10 VMware Tools
Pfeil 22.10.1 Installation der VMware Tools
Pfeil 22.10.2 Konfiguration
Pfeil 22.11 QEMU
Pfeil 22.11.1 Installation
Pfeil 22.11.2 Start des Gastsystems
Pfeil 22.11.3 Tastenkombinationen


Galileo Computing - Zum Seitenanfang

22.2 Konzepte Zur nächsten ÜberschriftZur vorigen Überschrift

Wie Sie wahrscheinlich schon bemerkt haben, gibt es unterschiedliche Kozepte und Möglichkeiten der Virtualisierung. Um den umfassenden und verallgemeinernden Begriff »Virtualisierung« näher definieren zu können, müssen wir uns kurz mit Begriffen wie »virtuelle Maschine«, »virtueller Server«, »virtuelle Laufzeitumgebung« und »Virtualisierungssoftware« beschäftigen.

Virtuelle Maschinen, Server und Laufzeitumgebungen

Um diese Begriffe fassen zu können, müssen wir gar nicht in die Weiten des Internets eintauchen. Auch Sie sind garantiert schon einmal einer virtuellen Maschine begegnet, spätestens wenn Sie Java auf Ihrem Computer installiert haben. Bei der Programmiersprache Java haben Sie es mit sogenannten »Java Virtual Machines« (JVM) zu tun, die Ihnen eine hypothetische Maschine zur Verfügung stellen. Hierbei handelt es sich um eine virtuelle Ausführungsumgebung mit einem virtuellen Prozessor und emulierten Schnittstellen.

Hier liegt auch das Geheimnis, warum Applikationen, die in Java geschrieben sind, auf jedem beliebigen Betriebssystem ausführbar sind, auf dem die virtuelle Java-Laufzeitumgebung installiert ist. Die Applikationen werden in einer virtuellen Maschine vom darunterliegenden Betriebssystem separiert und agieren so unabhängig von diesem.

Virtuelle Server hingegen bilden ein vollständiges Computersystem nach und nicht nur eine Laufzeitumgebung für einzelne Applikationen. Virtuelle Server können somit ganze Betriebssysteme beherbergen. Der virtuelle Server ist für das darunterliegende Betriebssystem, den sogenannten Host, nur eine Anwendung und läuft damit unabhängig von der verwendeten Hardware.

Virtuelle Maschinen teilen einen Computer in mehrere parallele Einheiten auf. Hierbei kann eine virtuelle Maschine entweder einen virtuellen Server oder eine virtuelle Laufzeitumgebung darstellen. Virtuelle Server sind vollständig nachgebildete Computersysteme, die ein Betriebssystem beherbergen können. Virtuelle Laufzeitumgebungen sind demgegenüber nur Umgebungen für einzelne Anwendungen.

Wir wollen uns im Folgenden der Virtualisierung von ganzen Betriebssystemen (virtuelle Server) zuwenden und die virtuelle Laufzeitumgebung außer Acht lassen.


Galileo Computing - Zum Seitenanfang

22.2.1 Paravirtualisierung Zur nächsten ÜberschriftZur vorigen Überschrift

Die Technik der Paravirtualisierung kann man sich vereinfacht als Kompromiss zwischen einer vollständigen Virtualisierung und derjenigen auf Betriebssystemebene vorstellen. Dies bedeutet explizit, dass mehrere voneinander getrennte virtuelle Maschinen mit eigenen Betriebssystemen auf eine gemeinsame Hardware zugreifen. Gesteuert und verwaltet wird dies durch einen Hypervisor. Das Wort Para stammt aus dem Griechischen und bedeutet u. a. »nebenher«.

Im Unterschied zur vollständigen Virtualisierung muss bei einer Paravirtualisierung das Gastsystem angepasst werden, da es nicht direkt mit der Hardware, sondern durch den Hypervisor mit ihr kommuniziert. Dies geschieht durch separat bereitgestellte Schnittstellen. In Abbildung ist die grundsätzliche Wirkungsweise der Paravirtualisierung schematisch dargestellt.

Der Host besteht aus einem angepassten Kernel und einem privilegierten Betriebssystem zur Verwaltung der virtuellen Maschinen. Die Paravirtualisierung setzt hierbei unter dem eigentlichen Kernel an.

VMware hat angekündigt, dass in naher Zukunft einige seiner Produkte wie beispielsweise der ESX Server um die Technik der Paravirtualisierung erweitert werden sollen. Dies setzt in diesem Fall selbstverständlich eigens angepasste Gastsysteme voraus.

Eine zusätzliche Schicht, der sogenannte Hypervisor, sitzt zwischen der eigentlichen Hardware und dem Kernel des Hosts. Dieser wiederum stellt im Regelfall alle notwendigen Treiber für die virtuellen Maschinen zur Verfügung. Dies hat den entscheidenden Vorteil, dass eine Virtualisierung auf jeder Hardware möglich ist, auf der auch der Host läuft.

Vor- und Nachteile

Paravirtualisierung ist höchst effizient: Von allen Hypervisor-Ansätzen ist diese Technik die leistungsstärkste. Die virtuellen Maschinen kommunizieren quasi direkt mit der Hardware, und dadurch entsteht ein sehr geringer Overhead. Allerdings müssen die Gastsysteme angepasst werden. Dies erfordert Zugriff auf den Quelltext des Betriebssystems und erklärt die Fokussierung auf Open-Source-Systeme wie beispielsweise Linux.

Dieser Nachteil wird durch die hardware-basierte Virtualisierung wettgemacht. Auf diese Technik gehe ich in Abschnitt auf Seite ein.

Beispiel: Xen

Xen ist der bekannteste Vertreter der Paravirtualisierung. Da ich im weiteren Verlauf des Buches detailliert auf die Funktionsweise von Xen eingehe, verzichte ich an dieser Stelle auf eine genauere Beschreibung. Sie erfahren mehr über Xen in Kapitel »Xen« ab Seite .

Abbildung 22.1 Paravirtualisierung


Galileo Computing - Zum Seitenanfang

22.2.2 Hardware-unterstützte Virtualisierung topZur vorigen Überschrift

Virtualisierung kann nicht nur durch Emulation erreicht werden. Mit der geeigneten Hardware lässt sich noch viel mehr erreichen. Wie die gesamte Virtualisierung, so ist auch die hardware-unterstützte Virtualisierung eine sehr alte Technik. Die Geschichte reicht mehr als 40 Jahre zurück. Allerdings kam diese Technik nur auf großen Servern und Mainframes zum Einsatz, auf Desktop-PCs spielte sie nie eine große Rolle.

Dies hat sich in den letzten Jahren massiv verändert, und so ist auch hier die Virtualisierung massiv auf dem Vormarsch. Die Nachfrage steigt und so ist es nicht verwunderlich, dass die großen Prozessorhersteller, z. B. Intel und AMD, ihr Stück vom Kuchen haben möchten. So gab es seit Ende 2005 zuerst von Intel und ein Jahr später vom AMD eine neue Generation von Prozessoren, die einen Teil der Virtualisierungsfunktionalität auf CPU-Ebene abbilden.

Abbildung 22.2 Zwei verschiedene Arten der Virtualisierung: links durch eine Virtualisierungs-Software(z. B. VMware), rechts durch Virtualisierung auf Hardware-Ebene (z. B. Intel mit Vanderpool) (Bildquelle: Wikipedia).

Vor- und Nachteile

Die Vorteile dieser Funktionsverlagerung in die Hardware sind vielfältig:

  • Die virtuellen Maschinen haben eine wesentlich höhere Leistung mit geringerem Overhead.
  • Aufgrund der Unterstützung durch den Prozessor ist die Architektur der Virtualisierungslösung schlanker. Die Unzulänglichkeiten der Prozessorarchitektur müssen nicht mehr berücksichtigt werden, und somit wird eine höhere Stabilität erreicht.
  • Die Gastsysteme müssen nicht mehr angepasst werden. Somit können auch proprietäre Betriebssysteme wie Microsoft Windows in einer virtuellen Umgebung installiert werden.
  • Die Separierung der virtuellen Maschinen untereinander ist konsequenter umgesetzt, da diese Trennung bereits im Prozessor umgesetzt wird.
  • Die Erweiterung der Virtualisierungsbefehlssätze in die CPU ist bei Intel und AMD ähnlich. Dadurch existiert eine gewisse Standardisierung, die unter Umständen zu einer Interoperabilität der Virtualisierungslösungen führen wird. Die ersten Anzeichen für diese Austauschbarkeit und Vereinfachung kann man zurzeit bei Parallels beobachten, die ihre Consumer- und Firmenlösungen zusammenlegen.

Nachteile lassen sich bei dieser Virtualisierungstechnik nicht entdecken, wenn man einmal davon absieht, dass die Anwender oder Administratoren teilweise neue Hardware brauchen, wenn sie auf diese Technik umsteigen wollen.

Die Prozessoren tragen folgende Bezeichnung:

  • Intel VT (Virtualization Technology) – Codename »Vanderpool«
  • AMD SVM (Secure Virtual Machine) – Codename »Pacifica«

Die Vorteile einer hardware-seitigen Virtualisierungslösung liegen auf der Hand:

  • Virtualisierungslösungen wie Xen sind paravirtualisierende Systeme, die mithilfe hardware-seitiger Unterstützung durch die eben genannten Prozessoren beliebige unmodifizierte Betriebssysteme als virtuelle Maschinen ausführen können.
  • wesentlich höhere Leistungsfähigkeit der virtuellen Maschinen
  • höhere Stabilität durch geringere Notwendigkeit der Emulation
  • mehr Sicherheit durch höhere Isolation zwischen Host und VM
  • Hardware-bedingte Standardisierung

Neben der höheren Geschwindigkeit bei den neuen Prozessoren, wovon natürlich jede Anwendung und auch Virtualisierung profitiert, kann Xen hier seine Stärken voll ausspielen.

Um herauszufinden, ob der Prozessor in Ihrem PC die nötige PAE-Erweiterung (Physical Address Extension) besitzt, die Sie für die hardware-beschleunigte Virtualisierung benötigen, führen Sie das folgende Kommando in einem Terminal aus:

user$ grep pae /proc/cpuinfo 
flags: fpu vme de pse tsc msr pae mce cx8 apic sep 
mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr 
sse sse2 ss ht tm pbe nx lm pni monitor ds_c pl vmx 
est tm2 cx16 xtpr lahf_lm

Wenn Sie wie in der oben stehenden Ausgabe die Abkürzung pae finden, dann unterstützt Ihr Prozessor die hardware-beschleunigte Virtualisierung. Einem grenzenlosen Xen-Vergnügen steht also nichts im Wege.

Um ein vollständig virtualisiertes Gastsystem zu betreiben, ist die Unterstützung von Gastprozessoren zwingend erforderlich. Wenn Sie nicht wissen, ob Ihr Prozessor dies unterstützt, hilft ebenfalls ein Blick in die oben ausgegebenen CPU-Flags. Suchen Sie bei Pozessoren von Intel nach der Abkürzung vmx, bei AMD-Prozessoren nach svm.

Wenn Sie diese Bezeichnung finden, wird die vollständige Virtualisierung von Ihrem Prozessor unterstützt. Allerdings ist die Option zur vollständigen Virtualisierung in vielen PCs standardmäßig abgeschaltet. Sie müssen diese erst im BIOS Ihres PCs einschalten.

Sie können aktuelle Versionen von Windows nur als Gastsysteme installieren, wenn Ihr Prozessor die vollständige Virtualisierung unterstützt. Der Grund besteht darin, dass ein Betriebssystem sonst angepasst werden muss, damit es als Gast auf Xen läuft. Damit scheiden normalerweise Betriebssysteme wie Windows aus, da sie nicht in Form von veränderbarem Quelltext vorliegen.

Um ein Betriebssystem zu virtualisieren, müssen einige Bedingungen zwingend erfüllt sein. Man begann relativ früh in der Geschichte der Computer mit der Virtualisierung von Prozessoren. Die Konzepte des Time-Sharing und Multiprogramming revolutionierten die Verwendung einer CPU und veränderten unsere Vorstellung von einer CPU. Erstmals trennte man die Funktion einer CPU von der zugrunde liegenden Hardware. Man unterschied ab dem Zeitpunkt zwischen physikalischer und virtueller CPU.

Zur Erinnerung: Ein physikalischer Prozessor kann nur eine Aufgabe (Operation) auf einmal ausführen. Dies kann sich auch mit größter Anstrengung nicht ändern, aber es gibt einen Trick: Man unterbricht regelmäßig die Arbeit des Prozessors, speichert den aktuellen Bearbeitungsstand und gibt dem Prozessor damit die Gelegenheit, eine andere Aufgabe auszuführen, bevor auch diese Arbeit wieder unterbrochen wird. Diese Unterbrechungen geschehen beispielsweise alle zehn Millisekunden und sind so kurz, dass der Anwender davon nichts bemerkt.

Der grundlegende Unterschied besteht darin, dass jede Anwendung jetzt »denkt«, sie hätte einen eigenen Prozessor, der die ihm gestellten Aufgaben exklusiv bearbeitet. Wenn mehrere Anwendungen ihre Aufgaben an die CPU geben, entstehen auf diese Art mehrere »virtuelle Prozessoren«.

Die physikalische CPU und die virtuelle CPU sind nicht identisch!

Wenn das Betriebssystem läuft, befindet sich die CPU im privilegierten Modus. Dieser Modus ermöglicht die eben beschriebene Virtualisierung der CPU und erlaubt beispielsweise den Anwendungen den Zugriff auf realen Speicher.

Nach dieser Übersicht möchte ich jetzt detaillierter auf die eben angesprochene Architektur eingehen. Ich beginne mit einer präzisen Beschreibung der x86-Architektur. Dies hat zwei Gründe: Zum einen ist Xen primär für diese Architektur[Inzwischen gibt es aber auch Portierungen auf andere Architekturen wie beispielsweise IBM PowerPC, SUN UltraSparc usw.] entwickelt worden, zum anderen möchte ich die Hintergründe darstellen, die eine Virtualisierung prinzipiell erschweren.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux





Ubuntu GNU/Linux
Jetzt bestellen


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

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


Zum Katalog: Xen






 Xen


Zum Katalog: VirtualBox






 VirtualBox


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Einstieg in Ubuntu 8.10 »Intrepid Ibex«





 Einstieg in Ubuntu
 8.10 »Intrepid Ibex«


Zum Katalog: Einstieg in Ubuntu Linux - Videotraining





 Einstieg in Ubuntu
 Linux - Videotraining


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
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