Virtualisierung (Informatik)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Virtualisierung bezeichnet in der Informatik die Erzeugung von virtuellen (d. h. nicht physikalischen) Dingen wie einer emulierten Hardware, eines Betriebssystems, Datenspeichers oder Netzwerkressource. Dies erlaubt es etwa, Ressourcen von Computern (insbesondere im Server-Bereich) transparent zusammenzufassen oder aufzuteilen, oder ein Betriebssystem innerhalb eines anderen auszuführen.

Zur sprachlichen Herkunft des Begriffs, siehe Virtualität.

Primäres Ziel ist, eine Abstraktionsschicht zwischen Anwender (etwa einem Betriebssystem) und Ressource (etwa die Hardware des Computers, über die ein Betriebssystem üblicherweise exklusive Kontrolle hat) bereitzustellen.

Diese erlaubt, andere physische Gegebenheiten vorzugeben, als tatsächlich vorhanden: Etwa kann einem Betriebssystem die Alleinnutzung eines Computers vorgegaukelt werden, wobei es tatsächlich innerhalb eines anderen Betriebssystems als reguläres Anwendungsprogramm läuft, auf durch die Abstraktionsschicht emulierter Hardware.

Dies ermöglicht auch das Zusammenfügen mehrerer (heterogener) Hardwareressourcen zu einer homogenen Umgebung, etwa die Bündelung mehrerer verschiedener Netzwerkadapter zu einem virtuellen vereinigten Adapter.

Da Virtualisierung zu erheblicher Einsparung von Hardware führen kann, ist sie eine wichtige Green IT-Maßnahme. Virtualisierung hat einen deutlich positiven Umwelteffekt bei richtiger Umsetzung.

Zwei verschiedene Arten der Virtualisierung, links durch eine Virtualisierungssoftware (z. B. VMware, DataSynapse Gridserver), rechts durch Virtualisierung auf Hardwareebene (z. B. AMD64 mit Pacifica)

Softwarevirtualisierung[Bearbeiten]

Die Softwarevirtualisierung kann für mehrere Zwecke eingesetzt werden, z. B. um ein Betriebssystem oder nur eine Anwendung zu simulieren.

Erzeugung virtueller Betriebsumgebungen[Bearbeiten]

Einordnung von Virtualisierungsansätzen zur Schaffung virtueller Betriebsumgebungen im Gesamtkontext der Virtualisierung.
Kategorisierung von Virtualisierungstechniken zur Schaffung virtueller Betriebsumgebungen.

Betriebssystemvirtualisierung mittels OS-Container[Bearbeiten]

Ansatz von 'OS-Containern' zur Schaffung virtueller Betriebsumgebungen.

Bei Virtualisierung auf Betriebssystemebene wird anderen Computerprogrammen eine komplette Laufzeitumgebung virtuell innerhalb eines geschlossenen Containers oder „jails“ zur Verfügung gestellt, es wird kein weiteres Betriebssystem gestartet, was zur Folge hat, dass es nicht möglich ist verschiedene OS gleichzeitig im Hostsystem zu betreiben. Die OS-Container stellen eine Teilmenge des Wirtbetriebssystems dar. Der Vorteil dieses Konzepts liegt in der guten Integration der Container in 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 Host-Kernel, wobei UML eine gewisse Sonderrolle zukommt, da dort ein spezieller User-Mode-Kernel unter der Kontrolle des Host-Kernels läuft.

Systemvirtualisierung mittels Hypervisor[Bearbeiten]

Hauptartikel: Virtuelle Maschine

Anwendungsvirtualisierung[Bearbeiten]

Anwendungsvirtualisierung (engl. application virtualization) 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 Pufferlage zwischen der Anwendung und dem Betriebssystem und verhindert Konflikte mit anderen Applikationen oder dem Betriebssystem. Auch Portable Software kann als Variante der Anwendungsvirtualisierung verstanden werden.

Hardware-Virtualisierung[Bearbeiten]

Hierfür können entweder das ganze System (Partitioning mit LPAR, Domaining) oder einzelne seiner Komponenten wie z. B. CPU virtualisiert werden.

Systemvirtualisierung auf Hardwareebene[Bearbeiten]

Hauptartikel: Serverpartitionierung

Partitionierung[Bearbeiten]

Partitionierung bezeichnet das Aufteilen einer einfach vorhandenen, gewöhnlich großen Ressource (wie z. B. Festplattenspeicher oder Netzbandbreite) in eine kleinere handlichere Anzahl von Systemen des gleichen Typs. Dies wird häufig auch als Zoning bezeichnet, in z. B. Storage Networks.

Domaining[Bearbeiten]

Domaining wird z. B. in Form von Virtual Hosts für einen HTTP-Server angewandt.

Prozessorvirtualisierung[Bearbeiten]

Bei der System- oder Betriebssystemvirtualisierung werden vom Virtual Machine Monitor Befehle von Gastsystemen (virtuellen Maschinen) entgegengenommen, die auf der nativen Hardware ausgeführt werden sollen. Vor Einführung der Prozessorvirtualisierung mussten bestimmte (evtl. sicherheitskritische) Befehle, die vom Gastsystem über den Virtual Machine Monitor an die Hardware gesendet wurden, modifiziert werden.

Durch die Prozessorvirtualisierung von AMD und Intel können nun Befehle ohne Modifikation vom Virtual Machine Monitor direkt an den Prozessor geschickt werden. Der Prozessor kümmert sich selbständig um die Abgrenzung zwischen Gastsystem-Prozessen und VMM-Prozessen. Durch den Wegfall der Modifikationen des VMMs kann eine höhere Rechenleistung des Gesamtsystems erzielt werden.

Bei virtuellen Maschinen auf Basis emulierter Hardware muss der Virtual Machine Monitor nach wie vor die Befehle vor Ausführung auf der nativen Hardware modifizieren.

Speichervirtualisierung[Bearbeiten]

Hauptartikel: Speichervirtualisierung

Virtuelle-Netze[Bearbeiten]

Durch Virtual Local Area Networks werden Geräte in einem lokalen Netzwerk in Gruppen aufgeteilt, zwischen denen Verbindungen grundsätzlich unterbunden sind, aber gezielt ermöglicht werden können.

Ein Virtual Private Network bildet ein nach außen abgeschirmtes Netzwerk über fremde oder nicht vertrauenswürdige Netze.

Software für den gleichzeitigen Betrieb mehrerer virtueller Betriebssysteme auf einem Computer kann ein virtuelles Netzwerk bereitstellen, über das diese kommunizieren. Es können auch mehrere Netze simuliert werden, über die beispielsweise zur Erprobung wiederum ein Virtual Private Network aufgebaut wird.

Siehe Auch[Bearbeiten]

Weblinks[Bearbeiten]