Grundlagen

Virtualisierung

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.
5.07.2010/jp

Nachrichten

Prozessoptimierung [5.02.2020]

Die Prozessmanagement-Software "Consol CM" des gleichnamigen Herstellers ist ab sofort auch in der Cloud verfügbar und steht somit als Software-as-a-Service (SaaS) zur Verfügung. Das neue Angebot umfasst die vollständig verwaltete Bereitstellung des Systems in der Cloud sowie ein subskriptionsbasiertes Pay-per-Use- Preismodell. [mehr]

Komfortableres Cloudmanagement [13.01.2020]

Zyxel stellt die neu gestaltete, achte Version der Nebula Cloud Networking Solution vor. Neben einer überarbeiteten Benutzeroberfläche, die eine Reihe ästhetischer und benutzerfreundlicher Optimierungen verspricht, verfügt Nebula nun über intelligente Management-Tools und eine größere Gerätekompatibilität. [mehr]

Tipps & Tools

Der aktuelle Stand der E-Mail-Verschlüsselung [20.02.2020]

Vertrauliche Informationen müssen geschützt werden, damit sich die Inhalte verschickter Nachrichten nicht im Klartext auslesen lassen. Der Fachartikel stellt den aktuellen Stand der PGP-Verschlüsselung und der damit verbundenen Bestandteile vor – einschließlich des kryptografischen Protokolls, der Schlüsselerzeugung und -übertragung, der Verschlüsselungsverfahren und der Integritätsprüfung. [mehr]

2020: Neue Trainings [6.01.2020]

Auch im neuen Jahr möchten wir Sie mit unseren Trainings wieder mit praxisgerechtem IT-Know-how versorgen. Allein im Februar finden vier Veranstaltungen statt, unter anderem ein Intensiv-Seminar zum Thema "Cyberabwehr" und das Training "Windows 10 richtig aktualisieren". Im Frühjahr schauen wir uns dann an, was KMUs beim Aufbau einer PKI unter Windows Server zu beachten haben. Und im Mai erfahren Sie das Wichtigste zum Thema "Linux- und Active-Directory-Integration". Buchen Sie wie immer frühzeitig – für Abonnenten gilt ein Sondertarif. [mehr]

Buchbesprechung

Technik der IP-Netze

von Anatol Badach und Erwin Hoffmann

Anzeigen