Virtualisierung (Informatik)
aus Wikipedia, der freien Enzyklopädie
In der Informatik ist die eindeutige Definition des Begriffs Virtualisierung schwierig zu verfassen. Es gibt viele Konzepte und Technologien im Bereich der Hardware und Software, die diesen Begriff verwenden. Ein sehr offener Definitionsversuch könnte wie folgt lauten: Virtualisierung bezeichnet Methoden, die es erlauben, Ressourcen eines Computers aufzuteilen.
Primäres Ziel ist, dem Benutzer eine Abstraktionsschicht zur Verfügung zu stellen, die ihn von der eigentlichen Hardware – Rechenleistung und Speicherplatz – isoliert. Eine logische Schicht wird zwischen Anwender und Ressource eingeführt, um die physischen Gegebenheiten der Hardware zu verstecken. Dabei wird jedem Anwender (so gut es geht) vorgemacht, dass er (a) der alleinige Nutzer einer Ressource sei, bzw (b) werden mehrere (heterogene) Hardwareressourcen zu einer homogenen Umgebung zusammengefügt. Die für den Anwender unsichtbare bzw. transparente Verwaltung der Ressource ist dabei in der Regel die Aufgabe des Betriebssystems.
Inhaltsverzeichnis |
[Bearbeiten] Softwarevirtualisierung
Die Softwarevirtualisierung kann für mehrere Zwecke eingesetzt werden. z. B. zum Simulieren eines Betriebssystems oder nur einer Anwendung.
[Bearbeiten] Erzeugung virtueller Betriebsumgebungen
[Bearbeiten] Betriebssystemvirtualisierung mittels OS-Container
Bei Virtualisierung auf Betriebssystemebene wird anderen Computerprogrammen eine komplette Laufzeitumgebung virtuell innerhalb eines geschlossenen Containers oder „jails“ zur Verfügung gestellt, es wird kein zusätzliches Betriebssystem gestartet. Die OS-Container stellen eine Teilmenge des Wirtbetriebssystems dar. Vorteil dieses Konzepts liegt in der guten Integration der Container an das Gastbetriebssystem. Der Nachteil dieses Konzepts liegt in den Containern. Aus den Containern heraus können keine Treiber geladen bzw. andere Kernel geladen werden. Bei der OS-Virtualisierung läuft immer nur ein Kernel.
z. B.: OpenSolaris Zoning, BSD jails, Mac-on-Linux
[Bearbeiten] Systemvirtualisierung mittels Virtual Machine Monitor (VMM)
Bei Virtualisierung mittels eines Virtuelle Maschinen-Monitors werden die bereitstehenden nativen Ressourcen intelligent verteilt. Dies kann durch Hardware-Emulation, Hardware-Virtualisierung oder Virtualisierung mittels Hypervisors stattfinden. Den einzelnen Gast-Systemen wird dabei jeweils ein eigener kompletter Rechner mit allen Hardware-Elementen (Prozessor, Laufwerke, Arbeitsspeicher, usw.) vorgegaukelt.
Der Vorteil ist, dass an den Betriebssystemen selbst (fast) keine Änderungen erforderlich sind und die Gast-Systeme alle ihren eigenen Kernel laufen haben, was eine gewisse Flexibilität im Ggs. zur Betriebssystemvirtualisierung mit sich bringt.
Wenn weder diese Hardware-Elemente, noch die Betriebssysteme der Gastsysteme diese Form der Virtualisierung unterstützen, muss die Virtualisierungssoftware eine Emulationsschicht benutzen, um jedem Gast-System vorzugaukeln, es hätte die Hardware für sich allein. Diese Emulation ist oft weniger effizient als direkter Zugriff auf die Hardware, was dann zu einer verringerten Geschwindigkeit führen kann.
Bsp.: VMware Workstation, Microsoft Virtual PC, VirtualBox, Parallels Workstation[1]
[Bearbeiten] Hardware-Emulation (fälschlicherweise auch Full Virtualization genannt)
Die Virtuelle Maschine simuliert die komplette Hardware und ermöglicht einem nichtmodifizierten Betriebssystem, das für eine andere CPU ausgelegt ist, den Betrieb.
(z. B. Bochs (hier anstatt Emulation Simulation), PPC-Version von Microsoft Virtual PC)
[Bearbeiten] Hardware-Virtualisierung (Native Virtualization, Full Virtualization)
Die Virtuelle Maschine stellt dem Gastbetriebssystem nur Teilbereiche der physischen Hardware in Form von virtueller Hardware zur Verfügung. Diese reicht jedoch aus, um ein unverändertes Betriebssystem darauf in einer isolierten Umgebung laufen zu lassen. Das Gast-System muss hierbei für den gleichen CPU-Typ ausgelegt sein.
(z. B. VMware, x86-Version von Microsoft Virtual PC, Xen 3.0 auf Prozessoren mit Hardware-Virtualisierungstechnologien: Intel VT-x oder AMD Pacifica)
[Bearbeiten] Paravirtualisierung
Bei Paravirtualisierung wird zwar ein zusätzliches Betriebssystem virtuell neu gestartet, jedoch wird keine Hardware virtualisiert oder emuliert, sondern die virtuell gestarteten Betriebssysteme verwenden eine abstrakte Verwaltungsschicht um auf gemeinsame Ressourcen (Netzanbindung, Festplattenspeicher, Benutzerein/-ausgaben) zuzugreifen.
z. B.: Red Hat Fedora Core 5 mit Xen 3.0, Suse Linux Enterprise Server mit Xen
[Bearbeiten] Applikationsvirtualisierung
Applikationsvirtualisierung ist das lokale Ausführen von Desktop- oder Server-Anwendungen, ohne dass diese installiert werden müssen (vergleiche dazu Softwareinstallation und Terminal Services). Der virtualisierten Anwendung wird dazu eine virtuelle Umgebung generiert, die alle Registry-Einträge, Dateien und andere Komponenten enthält, die das Programm zur Ausführung benötigt. Diese virtuelle Umgebung wirkt dabei wie eine Puffer-Lage zwischen der Anwendung und dem Betriebssystem und verhindert Konflikte mit anderen Applikationen oder dem Betriebssystem.
z. B. Java VM
[Bearbeiten] Hardware-Virtualisierung
Hierfür können entweder das ganze System (Partitioning mit LPAR, Domaining) oder einzelne seiner Komponenten wie z. B. CPU (Intels Vanderpool oder AMDs Pacifica) virtualisiert werden.
[Bearbeiten] Systemvirtualisierung auf physischer Hardwareebene
[Bearbeiten] Partitionierung
Partitionierung bezeichnet das Splitten einer einfach vorhandenen, gewöhnlich großen Ressource (wie z. B. Festplattenspeicher oder Netzbandbreite) in eine kleinere handlichere Anzahl von System des gleichen Typs. Dies wird häufig auch als Zoning bezeichnet, in z. B. Storage Networks.
z. B. IBM LPAR
[Bearbeiten] Domaining
[Bearbeiten] Prozessorvirtualisierung
z. B. Intels Vanderpool, AMDs Pacifica
[Bearbeiten] Speichervirtualisierung
z. B. Ardence, Cassatt
siehe auch Adaptive Computing
[Bearbeiten] Weblinks
- What is Virtualization? – Ein zehnminütiger Webcast der Grundlegendes über Virtualisierungs-Technologien und deren Möglichkeiten zur Problemlösung bietet. Für technisch Versierte wie auch für Laien.
- Virtualization Industry Roadmap – Das erste umfassende Verzeichnis aller Virtualisierungsprodukte von 2005 bis 2008.
- virtualization.info – Das Blog über Technologien, Produkte und Markt-Trends in der Virtualisierung. Seit 2003.
- About Virtualization
- Seite zu DataSynapse – Virtualisierung von rechenintensiven Anwendungen und Application Servern - Virtualization
- Seite zu Vanderpool (Virtualisierung von Intel CPUs)
- Audio Interview mit Tom Schwaller über Virtualisierung und aktuelle Trends
- Artikel "Das große Virtualisierungschaos" von Oliver Diedrich