Virtualisierung

Lesezeit
2 Minuten
Bis jetzt gelesen

Virtualisierung

05.07.2010 - 11:02
Veröffentlicht in:
In unserer Grundlagen-Rubrik erklären wir wichtige Aufgaben und Technologien aus dem Arbeitsalltag eines Netzwerk- und Systemadministrators. Hier erfahren Sie anhand prägnanter Erklärungen zu den wichtigsten Begriffen des jeweiligen Themenfeldes Hintergründe und Zusammenhänge in kompakter, praxisnaher Form.

Virtualisierung beschreibt Software- oder Hardware-Techniken, die eine Abstraktionsschicht zwischen dem Benutzer (oder Applikationen oder Schnittstellen) und physischen Ressourcen wie etwa Hardwarekomponenten (Hardware, Software und Netze) eines Rechners implementieren. Diese Schicht verbirgt die Implementierungsdetails des genutzten Systems und koppelt die darüber liegenden Komponenten von der darunter liegenden Hardware ab.
Auf Mainframes, etwa denen von IBM, ist die Virtualisierung ein seit Jahrzehnten etablierter Standard. Erst nachdem die Klasse der x86-basierten Server hinsichtlich Virtualisierung einiges an Fortschritten und Erweiterungen vollzog, erreichte das Thema den Massenmarkt. Grob gesprochen gibt es vier verschiedene Ansätze der Virtualisierung, die sich in der Praxis teilweise überschneiden:
- Emulation,
- Hardwaregestützte Virtualisierung,
- Paravirtualisierung und
- Resource Container.

Emulation
Bei der Emulation handelt es ich um ein in Software realisiertes, vollständiges Modell eines Computersystems auf Hardware anderen Typs. Der Emulator erlaubt die Ausführung von Software auf Systemen, für die sie ursprünglich nicht entwickelt wurde. Ein Emulator bildet Prozessoren, Devices und die Bootumgebung (Firmware, Bios) als Software nach.

Allerdings hat die Emulation einen hohen Preis, da das emulierte System nicht annähernd die Geschwindigkeit erreicht, die die Hardware, mit deren Hilfe emuliert wird, bei direkter Programmierung erreicht. Auch wenn viele Emulatoren teilweise ausgefeilte Tricks und geradezu geniale Strategien bieten, um den Performanceeinbruch zu minimieren, bleibt nicht selten ein Performanceunterschied von ganzen Größenordnungen. Als Virtualisierungsumgebung für anspruchsvolle und aktuelle Anwendungen ist die Emulation nur selten ausreichend.

Hardwaregestützte Virtualisierung
Bei der hardwaregestützten Virtualisierung handelt es sich im Prinzip um eine Emulation mit einigen Einschränkungen; dafür aber mit drastisch verbesserter Leistung. Eine Emulation verschiedener Prozessoren findet hier nicht mehr statt – die modellierte Maschine und die Host-Umgebung haben die gleiche CPU-Architektur. Emuliert werden im Prinzip nur die Devices, sowie die Bootumgebung.

Die hohe Leistung wird durch spezielle Erweiterungen der Hardware erreicht. So bieten beispielsweise die aktuellen Prozessorfamilien von Intel und AMD entsprechende Funktionen, die sich Intel-VT oder AMD-SVM nennen. Sinn dieser CPU-Erweiterungen ist es, einem Gastsystem vorzugaukeln, es hätte die alleinige Kontrolle über die Hardware.

Die eigentliche Kontrolle und damit die Ressourcenzuteilung an die Gastsysteme führt entweder ein normales Betriebssystem in der Host-Umgebung oder ein spezielles, allein für diesen Zweck entwickeltes "Mini-Betriebssystem", genannt Hypervisor, durch. Neuerdings bieten x86-Systeme neben den genannten Erweiterungen für CPU-Virtualisierung auch solche, um I/O-Devices gleichzeitig von verschiedenen Gastsystemen aus anzusprechen.

Paravirtualisierung
Der Grundgedanke der Paravirtualisierung ist, eine spezielle Softwareschicht zwischen Host-Hardware und Gast-Betriebssystemen zu schieben, um die vorhandenen Ressourcen über spezielle Schnittstellen den Gastsystemen zugänglich zu machen. Der Sinn dieser Vorgehensweise liegt darin, die aufwendige Emulation privilegierter Prozessorfunktionen sowie von I/O-Devices durch eine schlanke und schnelle Softwareschicht zu ersetzten.

Auch in paravirtualisierten Umgebungen ist die CPU-Architektur für Host und Gast gleich. Dieses Konzept setzt Hostseitig einen Hypervisor mitsamt der speziellen Softwareschicht ein, während es Gastseitig das Betriebssystem modifiziert, um anstatt auf privilegierte CPU-Funktionen auf den Hypervisor zuzugreifen. Ähnliches gilt für I/O-Devices, in denen das Gastsystem angepasste Treiber erhält, die statt realer Hardware die Hypervisor-Umgebung ansprechen. Der Hypervisor an sich enthält Treiber für die reale Hardware und "übersetzt" Aufrufe durch die angepassten Devicetreiber.

Resource Container
Die vierte Möglichkeit, virtualisierte Systeme zu betreiben, sind Resource Container. Aus Anwendungssicht besteht ein System aus laufenden Prozessen, einem Dateisystem mit installierter Software und Platz für eigene Daten, sowie Zugriff auf Geräte und Management von Zugriffsrechten. Alle laufenden Anwendungen haben gleichzeitigen und durch die Zugriffsrechte geregelten Zugriff auf dieses "Universum". Resource Container erzeugen auf einem laufenden Betriebssystemkernel mehrere "Universen" parallel – genannt Container.

In jedem Container haben Anwendungen Zugriff auf ihre Sicht des Dateisystems, die laufenden Prozesse und die verfügbaren Devices. Dabei ist jeder Container so gestaltet, dass die Anwendungen ohne Modifikationen davon ausgehen, ein komplettes Betriebsystem samt Umgebung zur Verfügung zu haben. Nur ein spezieller Container erlaubt Zugriff auf den Host-Context. Aus Sicht des Hosts sind die verschiedenen Container in unterschiedlichen Verzeichnissen abgelegt, um abweichende Versionen des Betriebssystems zu betreiben.

Allerdings teilen sich alle Gäste einen Kernel, können also nur desselben Typs sein wie dieser. Auf einer Linux Resource Container-Implementation, lassen sich also nur Linux-Gastsysteme betreiben. Allerdings haben Resource Container auch entscheidende Vorteile. Zunächst ist die Performance enorm hoch, da Resource Container keine Hardware emulieren, nicht mehrfache Kernel betreiben und keine Systemumgebung aufwendig vorgaukeln.

jp

Mehr zum Thema finden Sie in der Ausgabe August 2010 des IT-Administrator oder in unserem Sonderheft "Virtualisierung".

Ähnliche Beiträge

Vor- und Nachteile der Desktop-Virtualisierung

Die Ära des klassischen Clients mit eigener Hardware und lokaler Software geht mit dem Aufkommen verschiedenster Formfaktoren im Bereich mobiler Rechner und der gleichzeitigen Etablierung verschiedener Virtualisierungstechnologien für Client und Anwendungen seinem Ende entgegen. Dieser Artikel zeigt auf, wohin sich das Client-Management bewegt.