Im Folgenden werden die Grundlagen der Virtualisierung dargelegt, um ein ganzheit-liches Verständnis für die in dieser Arbeit beschriebenen Technologien zu vermitteln. Neben einer Definition des Begriffs der Virtualisierung wird ein historischer Überblick der Virtualisierung, deren Ausprägungsformen, der derzeit verfügbaren Technologien und entsprechender Produkte gegeben.
Virtualisierung ist ein zeitgenössisches Schlagwort, welches einen großen Bekanntheits-grad und eine hohe Popularität sowohl im Kreise von IT-Spezialisten als auch bei leitenden IT-Verantwortlichen genießt. Sie hat sich „im x86-Rechnerumfeld in den letzten zehn Jahren von einem Experiment im universitären Umfeld zu einer nicht mehr wegzudenkenden Technologie in der professionellen IT entwickelt.“[12] Virtualisierung ist keine neue Erfindung, keine konkrete Technologie, sondern ein Konzept, welches bereits in den 1960er Jahren entwickelt wurde und im Wesentlichen der Partitionie-rung[13] großer Mainframes zur effizienteren Nutzung der teuren Hardware diente. Die ursprüngliche „Idee wurde lediglich auf .. [die in dieser Zeit] populäre .. [x86-Architektur] portiert.“[14] Seit mittlerweile drei Dekaden in der Entwicklung, ist die Virtualisierung heute in vielen Ausprägungen präsent und deckt bereits mehrere Aspekte der modernen IT ab, vom einzelnen Desktop bis hin zur gesamten Organisation. Viele Hersteller und Anbieter haben den Begriff der Virtualisierung aufgegriffen, um ihre Produkte zu kategorisieren und ihren Kunden den Aufbau einer umfassenden virtuellen Infrastruktur zu ermöglichen. Dabei wurde schnell deutlich, „dass hinter dieser Technologie ein enormes Potenzial zur Optimierung der Rechnernutzung steckt“[15], denn „Virtualisierung scheint gleichzeitig Trend, Hype, Ver-heißung und Wundermittel in Sachen Kostenersparnis zu sein.“[16]
Um den Begriff „Virtualisierung“ und das dazugehörige Konzept ganzheitlich zu definieren, müssen die zahlreichen Aspekte der Virtualisierung identifiziert und dargestellt werden. Zahlreiche Definitionen sind in der Literatur und im Internet zu finden. Demzufolge ist die Definition stark vom verwendeten Kontext des Begriffs abhängig. Folgende Definitionsansätze verdeutlichen den Facettenreichtum des Virtualisierungskonzepts und lauten wie folgt:
„Virtualisierung ist eine Methode, um Hardware innerhalb einer Software-Plattform zu emulieren.“[17]
„Mit Hilfe der Virtualisierungstechnik lassen sich mehrere, gegeneinander abgeschottete Anwendungsumgebungen auf einer Plattform betreiben.“[18]
Virtualisierung ist „ein Sammelbegriff für eine Vielzahl unterschiedlicher software- und hardware-basierter Methoden, die es erlauben, Ressourcen eines Computers aufzuteilen und mehrere, voneinander unabhängige Systeme der gleichen Prozessorarchitektur auf einem leistungsfähigen Host-System zu betreiben.“[19]
„In der Informatik bezeichnet man mit dem Begriff Virtualisierung ein Verfahren, das eine Aufteilung oder Verteilung verfügbarer Ressourcen auf mehrere Systeme ermöglicht.“[20]
Bestimmte Konzepte wiederholen sich in allen aufgeführten Definitionen und kristallisieren sich heraus:[21]
Abstraktion
Simulation / Emulation
Sharing
Partitionierung
Isolation / Kapselung
Aggregation
Daraus abgeleitet bedeutet Virtualisierung die parallele Ausführung von mehreren virtuellen Maschinen (VM) mit heterogenen Eigenschaften, d.h. inklusive ihrer jeweiligen Betriebssysteme und ihrer Anwendungen, auf ein und derselben Hardware (dem sog. Host). Eine Virtualisierungsschicht (synonym: Virtualisierungslayer[22]) realisiert diese Abstraktion, indem sie sich zwischen den virtuellen Maschinen und der physischen Hardware eingliedert und als Mittler zwischen beiden Welten fungiert. Die VMM täuscht dem Betriebssystem in der VM eine eigene Hardware mit eigenem BIOS vor, einen eigenen kompletten Rechner. Zudem sorgt die VMM für die erforderliche Isolation der VMs untereinander, um einen gegenseitige Beeinflussung auf Programmebene zu verhindern. „Virtualisierung kann … als eine logische Schicht zwischen Anwendung und Ressource definiert werden, die die physikalischen Gegebenheiten versteckt.“[23] Diesen Vorgang bezeichnet man als Abstraktion (siehe Abbildung 1).
Abbildung 1 - Konzept der Virtualisierung mittels VMM und virtualisierter Hardware[24]
Heute wird der Themenkomplex Virtualisierung vielfach mit den Produkten aus dem Bereich der Servervirtualisierung von VMware, Microsoft und Xen-basierten Lösungen in Verbindung gebracht. Abseits des ‚Klassikers‘ Servervirtualisierung erscheinen weitere, innovative Virtualisierungslösungen für viele Bereiche der IT, wie z.B. Storage-, Netzwerk-, Applikations- und Desktopvirtualisierung.
Dieses Kapitel gibt einen chronologischen Überblick der bedeutendsten Ereignisse in der Evolution der Virtualisierung. Die Auflistung umfasst lediglich die signifikantesten technologischen Errungenschaften und die wesentlichen Fortschritte in den letzten 50 Jahren, die im Zuge der Virtualisierung erzielt wurden. Im allgemeinen Bewusstsein ist die Virtualisierung noch ein junges Teilgebiet der IT. Ein Blick in die Literatur und auf den Zeitstrahl im Anhang verdeutlicht jedoch, dass das Konzept schon früh geboren und stets weiter entwickelt wurde. Jedoch konnte erst der technologische Fortschritt der jüngsten Vergangenheit dazu beitragen, das Virtualisierungskonzept voranzutreiben und die für ein breites Einsatzszenario erforderliche Akzeptanz zu fördern.
In ihrer konzeptionellen Form war die Virtualisierung in den 1960er Jahren eher bekannt unter dem Begriff des „Time Sharing“. Christopher Strachey, welcher als erster Professor im Bereich der Computerwissenschaft an der Universität von Oxford lehrte und mit seiner Abhandlung „Time Sharing in Large Fast Computers“ am 20. Juni 1959 den Start für die Virtualisierungstechnologie initiierte, ist als Namensgeber und Pionier zu betrachten. In seiner Publikation beschreibt er einen logischen Prozessor, auf welchem Programme wie auf einem realen Prozessor ausgeführt werden können. Ein ‚Scheduler‘ ordnet den logischen dem realen Prozessor zu. Damit führte er den Vorläufer des heute bekannten Konzepts der Multiprogrammierung ein und ermöglichte damit die maximale Ausnutzung von Rechnerressourcen. Auf diese Weise konnten die zu seiner Zeit kostbaren Rechenzeiten effizienter genutzt werden. Diese Art der Multiprogrammierung fungierte zugleich als Vorläufer des heute üblichen Multi-tasking.[25]
Im Dezember 1962 wurde in Manchester der zu dieser Zeit rechenstärkste Computer namens ATLAS der Weltöffentlichkeit präsentiert. Dieser bot eine Technologie, welche den Zugriff auf eine Speicherseite ermöglichte, die sich nicht im Hauptspeicher, sondern im Auslagerungsspeicher befand. Dieser einstufige virtuelle Speicher ermöglichte erstmals das sog. „Demand Paging“. Damit konnte der Hauptspeicher virtualisiert werden, was beim ATLAS zu einer Kosteneinsparung führte.[26] Im Jahr 1965 folgte das Experiment M44/44X, welches von IBM am Thomas J. Research Center durchgeführt wurde und der ATLAS-Architektur sehr ähnlich war. Es basierte auf dem IBM 7044 als Hauptrechner (alias M44), auf welchem mehrere virtuelle Maschinen simuliert wurden (alias 44X). Dieses Projekt kreierte den Begriff der „virtuellen Maschine“ und diente der Erforschung der Auslagerung von Arbeitsspeicher, dem Konzept der virtuellen Maschinen und der Messung der Rechenleistung. Es wurde IBM’s Beitrag zum aufstrebenden Time Sharing Konzept.[27]
IBM stellte weiterführende Forschungen auf dem Gebiet virtueller Maschinen an, indem sie das CP/CMS-System am Cambridge Scientific Center entwickelte. Es war ein weiteres Time Sharing System, welches aus zwei Komponenten bestand: dem „Control Program“ (CP) und dem „Cambridge Monitor System“ (CMS). Das Projekt sollte die Realisierbarkeit vollständiger Virtualisierung beweisen. In Anlehnung an ein Multi-User-System wurden beim CP/CMS-Konzept mehrere Kopien von Single-User-Systemen in virtuellen Maschinen (VM) ausgeführt. Dabei wurde die physikalische Hardware innerhalb der VMs abstrahiert. Das erste CP/CMS-Systeme namens CP-40 war die Geburtsstunde des Hypervisor und ermöglichte erstmals die vollständige Virtualisierung eines Betriebssystems. ATLAS und M44/44X von IBM stellen die evolutionären Generationen der Virtualisierung da.
Robert P. Goldberg stellte im Februar 1972 die erste theoretische Abhandlung zum Thema virtueller Maschinen vor. In seiner Promovation „Architectural Principles of Virtual Machines“ definierte er die grundsätzlichen Elemente...