Login
Newsletter
Werbung

Mi, 23. August 2006, 00:00

Virtualisierung

Anwendung, Technologie und Forschung

Virtualisierung als Neuerung im Gebiet der Betriebssystem-Architektur ist ein momentan viel diskutiertes Thema in der Informatik. Virtualisierte Architekturen bieten die Möglichkeit, mehrere Betriebssysteme parallel auf einem Rechner auszuführen, isoliert in sogenannten virtuellen Maschinen (VM).

Einführung

Virtualisierung als Neuerung im Gebiet der Betriebssystem-Architektur ist ein momentan viel diskutiertes Thema in der Informatik. Virtualisierte Architekturen bieten die Möglichkeit, mehrere Betriebssysteme parallel auf einem Rechner auszuführen, isoliert in sogenannten virtuellen Maschinen (VM). Eine übergeordnete Instanz, der virtuelle Maschinenmonitor (VMM), übernimmt die Aufteilung der nun von den verschiedenen VMs gleichzeitig genutzten Hardwareressourcen. Die verschiedenen Ansätze, wie zum Beispiel vollständige Virtualisierung oder Para-Virtualisierung, werden durch immer mehr marktreife Produkte, wie etwa VMWare Workstation oder Xen, abgedeckt. Auch die Forschung in Deutschland befasst sich zunehmend mit dem Thema, wie unter anderem die L4-Virtualisierungsumgebung[1] der Universität Karlsruhe zeigt. Die großen Prozessor-Hersteller haben sich ebenfalls dem Thema zugewandt und mit Vanderpool (Intel) und Pacifica (AMD) Erweiterungen für ihre jeweiligen Prozessoren vorgestellt, die die Virtualisierungsarchitekturen beschleunigen und deren Entwicklung vereinfachen sollen.

Die Anfänge in den 60er- und 70er-Jahren

In den 60er-Jahren stellte IBM die VM/370 vor [2], welches ein Multi-User-System bereitstellte, indem es mehrere Kopien von Single-User-Systemen in virtuellen Maschinen ausführte. Diese virtuellen Maschinen stellten jeweils eine vollständige Nachbildung der darunterliegenden Hardware da. Essentielle Bestandteile moderner Virtualisierungsarchitekturen wie ein Befehlssatz, der privilegierte und nicht-privilegierte Instruktionen kennt, waren damals bereits bekannt. Auch das Aufteilen der Hardwareressourcen war bereits Bestandteil dieser Architektur. Dies übernahm das sogenannte Kontrollprogramm, das dem heutigen VMM entspricht. Es war auch dafür zuständig, die Speicherzuteilung durchzuführen.

Dabei wurde der »virtuelle« physische Arbeitsspeicher der Gastsysteme durch die Implementierung einer virtuellen Speicherverwaltung realisiert, die die Abbildung von physischen auf virtuelle Speicheradressen vornahm, ein Vorgehen, das auch heute in modernen Betriebsystemen Einsatz findet. Die erste theoretische Arbeit zur Virtualisierung stellte im Februar 1972 Goldberg mit seiner Doktorarbeit »Architectural Principles of Virtual Machines« vor [3]. Er beschrieb damals die grundsätzlichen Elemente einer virtuellen Maschine und definierte die Trennung des Befehlssatzes in »sensitive und nicht-sensitive« Instruktionen, also solche, die vom VMM behandelt werden, und solche, die direkt von der Hardware ausgeführt werden können. Die virtuelle Maschine beschrieb er als »effizientes Duplikat einer realen Maschine«, deren Ressourcennutzung durch den VMM geregelt wird. Dabei muss der VMM insbesondere die Isolation zwischen den VMs gewährleisten. Die virtuelle Umgebung stellt desweiteren alle notwendigen Elemente einer vollständigen Hardware-Plattform zur Verfügung, wie Prozessor, Speicher oder E/A-Ports.

Anwendungsbereiche der Virtualisierung

Natürlich interessieren sich Firmen wie Intel, AMD oder IBM für eine Technologie insbesondere dann, wenn man sie auch gewinnbringend verkaufen kann. Wo befinden sich also die Anwendungsbereiche der Virtualisierung?

Server-Konsolidierung

Das Stichwort schlechthin im Bereich der Virtualisierung. Man versteht darunter das Zusammenführen mehrerer physischer Server auf einige wenige physische Server, welche die vormals physischen Server nun in virtuellen Maschinen ausführen (hosten). Ein verbessertes Auslasten bereits bestehender Server-Hardware und damit eine steigende Effizienz der Hardware - beispielsweise auch hinsichtlich des Energieverbrauchs - ist die Folge. Durch Server-Konsolidierung kann mitunter auch die Anschaffung neuer Hardware vermieden werden, da die meisten Server in der Praxis oftmals nicht an ihrem Leistungslimit arbeiten.

Software-Entwicklung

Das Entwickeln neuer Software ist ein langwieriger und komplexer Vorgang, der daher meist von Fehlern begleitet wird. Virtualisierungsumgebungen sind für das effektive Testen von Software geeignet, welche hardwarenahe Funktionen nutzt und somit eventuell Systemabstürze provoziert. Moderne Virtualisierungsumgebungen sind in der Lage, Snapshots des Systemzustandes zu speichern und diese schnell wiederherzustellen. Somit kann man vor dem Laden eines neuen, noch fehlerhaften Software-Produktes einen Snapshot erstellen und diesen nach dem Absturz wieder laden.

Software-Zuverlässigkeit

Regelmäßige Snapshots des Systems ermöglichen es, auch vollständige Systemabstürze rückgängig zu machen, und nehmen dem Problem dadurch etwas den Schrecken. Auch lassen sich virtuelle Festplatten bei einige Produkten, zum Beispiel beim VMWare Server, problemlos kopieren und später wiederverwenden - Sicherheitskopien ganzer Systeme sind damit möglich.

Software-Verfügbarkeit

Insbesondere bei allen Betriebsystemen außer Windows klagen viele Nutzer über das Fehlen spezieller Software, zum Beispiel Banking-Software. Auch dieses Problem läßt sich durch Virtualisierung lösen. Eine installierte VMWare Workstation erlaubt dem Linux-Umsteiger, endlich die lieb gewonnene Banking-Software zu nutzen.

Erhöhen der Verlässlichkeit von Servern durch Redundanz

Abschließend lässt sich mit Virtualisierung auch die Verlässlichkeit von Systemen erhöhen. Insbesondere bei Anbietern von Hosting-Dienstleistungen kann es von Interesse sein, ein Betriebsystem durch ein weiteres, parallel laufendes Betriebsystem abzusichern und im Falle eines Absturzes das Backup-System zu aktivieren.

Zusammenfassend hat die Virtualisierung das Potential, ein breites Spektrum an Problemen mit existierenden Betriebssystemen zu lösen oder zumindest abzumildern. Mit den aktuell verfügbaren Softwareprodukten sind die oben beschriebenen Probleme in den Griff zu bekommen.

Emulation, vollständige Virtualisierung und Para-Virtualisierung

Die Virtualisierung existiert in einer Vielzahl von Ausprägungen - was sich auch in der Terminologie bemerkbar macht. Um die Virtualisierungstechniken besser erläutern zu können, werden hier zunächst der grundsätzliche Aufbau einer Virtualisierungsumgebung sowie deren Aufgaben beschrieben.

Im Folgenden wird die mit der Virtualisierung verwandte Technologie der Emulation beschrieben, um Verwechslungen vorzubeugen. Danach wird auf die beiden wichtigsten Ausprägungen der Virtualisierung eingegangen: Vollständige Virtualisierung und Para-Virtualisierung.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung