Bibliographische Beschreibung: Molch, David:
Virtualisierungstechnologien. - 2007.- 85 S.
Mittweida, Hochschule Mittweida (FH) - University of Applied Sciences, Fachbereich Informationstechnik & Elektrotechnik, Bachelorarbeit, 2007
Referat:
Die vorliegende Bachelorarbeit untersucht die mannigfaltigen Konzepte der Virtualisierung. Nach einer Einführung in die Geschichte der Virtualisierungstechnologie werden allgemein gültige Grundlagen und formale Definitionen aufgeführt. Anschließend wird ein Überblick zu den Entwürfen und Funktionsweisen der Virtualisierung gegeben. Es folgt eine Beschreibung der Anwendungsgebiete sowie einige praktische Verwirklichungen, die im Detail beleuchtet werden. Danach werden in der Zusammenfassung die Erkenntnisse dieser Bachelorarbeit und des Komplexversuches diskutiert. Zuletzt erfolgt der Bedarf und Ausblick zur Virtualisierung wobei die zukünftigen Entwicklungen betrachtet werden.
Einen Schwerpunkt dieser Bachelorarbeit bildet der Entwurf eines Komplexversuches für Studenten der Hochschule Mittweida. Der Versuch soll die Studenten in das Konzept der Virtualisierung einführen und ihnen elementares Wissen über Funktionen und Vorgehensweisen des Themenkomplexes vermitteln. Dabei bildet die Virtualisierungslösung „VMware Workstation“ die Grundlage für den Komplexversuch. Die im Versuch gewonnenen Erkenntnisse über die Realisierung und Einrichtung einer virtuellen Maschine eignen sich, um den Studenten der Hochschule das Prinzip der Virtualisierung zu veranschaulichen.
Vorwort
Die vorliegende Bachelorarbeit bildet den Abschluss meines Studiums im Fachbereich Informationstechnik & Elektrotechnik an der Hochschule Mittweida. Ich bedanke mich ganz herzlich bei Herrn Prof. Dr. Wilfried Schmalwasser, der mir als Betreuer mit Rat und Tat hilfreich zur Seite stand. Ohne ihn hätte ich dieses Thema in dieser Form nicht realisieren können und mir wäre einige wichtige Literatur versagt geblieben. Ebenfalls großen Dank schulde ich meiner Freundin, Angela Eubisch, für die Unterstützung, die sie mir bei der Anfertigung der vorliegenden Bachelorarbeit in jeder Weise gewährt hat. Trotz eigenen Studiums an der Hochschule Mittweida engagierte sie sich über die gesamte Dauer des Studiums unermüdlich und stand mir mit Rat und Tat bei der Erstellung der Bachelorarbeit zur Seite. Des Weiteren möchte ich allen danken, vor allem meinen Eltern, Elke und Thomas Molch, meiner Großmutter Ursula Molch, und meinem Großvater Helmut Langhoff, die mich bei meinem Studium unterstützt und ermutigt haben.
Mittweida, Februar 2007 David Molch
Inhaltsverzeichnis
Abbildungsverzeichnis I
Tabellenverzeichnis V
Abk ürzungsverzeichnis. VI
1 Einleitung 1
1.1 Wahl der Thematik 2
1.2 Ziel der Bachelorarbeit 2
2 Grundlagen der Virtualisierung 3
2.1 Historische Betrachtung der Virtualisierung 3
2.2 Charakteristik einer virtuellen Maschine. 7
2.3 Prinzip der Virtualisierung 8
2.4 Arten von Virtualisierungen 8
2.4.1 Emulation 9
2.4.2 Para-Virtualisierung 10
2.4.3 Vollständige Virtualisierung 12
2.4.4 Pre-Virtualisierung 13
2.4.5 Rekursive Virtualisierung. 13
2.5 Virtualisierung auf Hardwareebene. 16
2.5.1 Virtualisierung der x86-Architektur 16
2.5.1.1 Virtualisierung auf Prozessorebene. 17
2.5.1.2 Intel Vanderpool. 21
2.5.1.3 AMD Pacifica. 24
2.5.2 Speichervirtualisierung. 26
2.6 Problematik der Softwarevirtualisierung. 28
2.7 Architektur einer virtuellen Maschine. 30
2.7.1 Typ I: Native Architektur 30
2.7.2 Typ II: Host Architektur. 32
2.7.3 Typ III: Hybride Architektur 33
2.8 Funktionsweise der Virtualisierung. 34
2.8.1 Funktionsweise des Hypervisors 34
2.8.2 Virtualisierung am Beispiel VMware. 36
2.9 Vor- und Nachteile der Virtualisierung. 41
2.9.1 Vorteile der Virtualisierung. 41
2.9.2 Nachteile der Virtualisierung 43
2.10 Stand der Entwicklung 43
2.11 Validität der Virtualisierung. 48
3 Anwendungsbereiche der Virtualisierung 51
3.1 Einsatzmöglichkeiten und Einsatzgebiete 51
3.2 Praktische Anwendungen in der Industrie. 53
4 Komplexversuch zur Virtualisierung 55
4.1 Ziel des Versuches. 55
4.2 Voraussetzungen. 56
4.3 Versuchsvorbereitung. 58
4.4 Beschreibung der Aufgaben 60
4.5 Ausblick. 67
5 Zusammenfassung 68
6 Bedarf und Ausblick. 70
Literaturverzeichnis 72
Glossar 80
Anhang A Komplexversuch zur Virtualisierung. A 1
Anhang B Versuchsauswertung B 1
Anhang C Virtualisierungslösungen im Überblick C 1
Anhang D Programmierung der Automatismen D 1
Abbildungsverzeichnis
Abbildung 2-1: Darstellung einer API-Emulation. URL:
Abbildung 2-2: Darstellung der Emulation einer kompletten Rechnermaschine.
Abbildung 2-3: Para-Virtualisierung mit „Hypervisor“ und modifizierten Betriebssystem-
Abbildung 2-4: Vollständige Virtualisierung mittels „Hypervisor“. URL:
Abbildung 2-5: Exponentieller Slowdown durch die Emulation privilegierter Befehle in einer
Abbildung 2-6: Vergleich des konventionellen Prozessmodells mit dem rekursiven Prozessmodell. Quelle: eigene Darstellung, verfasst am am 29.12.06...................... 15 Abbildung 2-7: Privilegierungsstufen der x86-Architektur. URL:
Abbildung 2-8: Zeitliche Betrachtung eines „Exception Handlings“. Bearbeitet aus:
Abbildung 2-9: Gegenüberstellung des „Goldberg-Popek Theorems“ und einer nicht-
Abbildung 2-10: Darstellung der „Virtual Machine Control Structur“. Bearbeitet aus:
Abbildung 2-11: Kontextwechsel auf Prozessorebene unter zeitlichem Gesichtspunkt.
Abbildung 2-12: Schematische Darstellung des Konzepts zur Virtualisierung des Speichers.
Abbildung 2-13: Privilegierungsstufen nach der Virtualisierung. URL:
Abbildung 2-14: „Typ I Architektur“ einer Virtualisierungsumgebung mit „Hypervisor“.
Abbildung 2-15: „Typ II Architektur“ einer Virtualisierungsumgebung mit Host-System
Abbildung 2-16: „Typ III Architektur“ mit Host-System und „Hypervisor“.
Abbildung 2-17: Bestandteile des „Hypervisors“. URL:
Abbildung 2-18: Temperaturregulierung infolge der Verteilung von Instruktionen auf die
Abbildung 2-19: Energiemanagement mittels VM Scheduler. URL:
Abbildung 2-20: Methodik der Pre-Virtualisierungstechnik. URL:
Abbildung A-1: Darstellung des Bildschirmaufbaus der „VMware Workstation“. Quelle:
Abbildung A-3: Verzeichnisstruktur des Shared Folder im Explorer.
Abbildung A-4: Anzeige der Informationen über das erstellte Laufwerk. Quelle:
Tabellenverzeichnis
Tabelle B-1: Gegenüberstellung der Systemkomponenten des Host- und Gast-Systems ...... B 1 Tabelle B-2: Vergleich des virtuellen Systems vor und nach der Installation
der „VMware-Tools“........................................................................................ B 2 Tabelle B-3: Gegenüberstellung der Leistung des realen und des virtuellen Systems........... B 4 Tabelle B-4: Speicherbedarf der konzipierten virtuellen Festplatten..................................... B 5 Tabelle C-1: Virtualisierungslösung im Überblick ................................................................ C 2
- V -
Abkürzungsverzeichnis
ABI Application Binary Interface AG Aktiengesellschaft AMD Advanced Micro Devices API Application Programming Interface BIOS Basic Input Output System CPL Current Privilege Level CPU Central Processing Unit CPUID Central Processing Unit Identification CR4 Control Register 4 DDR Double Data Rate DHCP Dynamic Host Configuration Protocol DMA Direct Memory Access DMTF Distributed Management Task Force DMZ Demilitarized Zone DVD Digital Versatile Disc EAX Extended Accumulator Register ECX Extended Count Register EFER Extended Feature Enable Register ERP Enterprise Ressource Planning GB Gigabyte GDT Globale Deskriptor Tabelle GHz Gigahertz HP Hewlett-Packard IA Intel Architecture IBM International Business Machines IDE Integrated Device Electronics IDT Interrupt Deskriptor Table INT3 Interrupt 3 IPVMM In-Place Virtual Machine Monitor ISA Instruction Set Architecture JVM Java Virtual Machine
- VI -
LAN Local Area Network LDT Lokale Deskriptor Tabelle MB Megabyte MIT Massachusetts Institute of Technology MMU Memory Management Unit MSR Machine Specific Register NAT Netzwerkadressübersetzung (Network Address Translation) NPT Nested Page Tables NTFS New Technology File System PM Protected Mode QoS Quality of Service RAM Random Access Memory ROM Read Only Memory RM Real Mode SAN Storage Area Network SBE Scan Before Execution SMP Virtual Symmetrisches Multiprozessorsystem SUN Stanford University Network SVM Secure Virtual Machine TCO Total Cost of Ownership TLB Translation Lookaside Buffer UML User Mode Linux USA United States of America USB Universal Serial Bus VM Virtuelle Maschine VM86 Virtual Mode 8086 VMCB Virtual Machine Control Block VMCS Virtual-Machine Control Structur VMHI VMware Hypercall Interface VMI Virtual Machine Interface VMM Virtueller Maschinen Monitor VMX Virtual Machine Extensions VT Virtualization Technology VT-i Virtualization Technology for Itanium-Architecture VT-x Virtualization Technology for IA-32 x86-Architecture
- VII -
1 Einleitung
Zitat:
„If it's there and you can see it - it's REAL If it's there and you can't see it - it's TRANSPARENT If it's not there and you can see it - it's VIRTUAL If it's not there and you can't see it - it's GONE!“ Roy Wilks, 1983
Die Entwicklung der Menschheit wird signifikant von der Entwicklung des technologischen Fortschritts beeinflusst. Betrachtet man dabei den Menschen unter dem Aspekt der technologischen Entwicklung, so kann man feststellen, dass diese immer schneller voranschreitet. Folglich tangiert der Bereich der realisierbaren Lösungen immer öfters mit dem Grenzgebiet des verfahrenstechnisch Möglichen.
Besonders im Bereich der Informationstechnologie, wo der technologische Fortschritt außer-ordentlich schnell voranschreitet, erfährt man immer öfters die Grenzen von Physik und Informatik. Infolge dessen wurden Überlegungen getätigt, um diese Probleme auf alternativen Wegen zu lösen. Einer dieser Wege führt über die Virtualisierung. Diese eigentlich recht alte Disziplin der Informationstechnologie entwickelt sich seit kürzester Zeit zum Anziehungspunkt für Problemerkennung, Problemlösung und Optimierung. Die Probleme der Informationstechnologie sind durch die ständig schnellere Entwicklung des technologischen Fortschritts mannigfaltig. Sie reichen von Fragen über das optimale Sizing, Migration bis hin zur optimalen Ausnutzung der Rechnerkapazität. Dabei birgt die Virtualisierung Vorteile wie Desaster-Recovery-Backups, Migrationsautomatisierungen, Speichervirtualisierung im Storage Area Network (SAN), Applikationsvirtualisierung, Plattformunabhängigkeit, Kosten- und Platzersparnis, um nur einige Vorteile zu nennen. Dieses Potential der Virtualisierung wurde erkannt und aus diesem Grund entwickelten sich rasant Ansätze, die durch verschiedenste Hersteller realisiert werden.
- 1 -
Die Virtualisierung ist sicherlich ein Konzept, welches die Entwicklung in vielen Bereichen der Informationstechnologie beschleunigen wird. Man spricht sogar davon, dass die Virtualisierung die Informationstechnologie revolutionieren könnte. Sie wird aber sicherlich die nächsten Jahre das bestimmende Thema sein. Das Konzept der Virtualisierung macht sich dabei das Know-how von Gebieten der Informatik, Informationstechnologie und Kommunikationstechnik zunutze, wobei mehrere Bereiche der genannten Gebiete ineinander übergehen.
1.1 Wahl der Thematik
Der Abschluss des Bachelorstudiums im Bereich Informationstechnologie und Elektrotechnik erfordert die Anfertigung einer Bachelorarbeit. Schon im Vorfeld wurden Gedanken und Forderungen hinsichtlich Realisierung der Systemstabilität, Automatisierung und Optimierung geäußert. Gründe für die Wahl dieser Thematik waren zum einen die Beeinflussung durch die aktuellen Entwicklungen und Trends in der Informationstechnologie. Zum anderen aber auch längerfristige Überlegungen in welche Richtung sich die Informationstechnologie in Zukunft verändern wird. Ein weiterer Beweggrund war, dass im Praktikumssemester verschiedenste Aufgaben zur Realisierung der Sicherheit, Automatisierung und Vermeidung von Suboptimierung in Netzwerken verwirklicht wurden. Dabei wurden hinreichende Kenntnisse im Umgang mit der Optimierung und Datensicherheit erlangt. Folglich kam man mit der Virtualisierung und ihren Auswirkungen in Kontakt. Mit dem Konzept der Virtualisierung ließ sich die Anforderung im Praktikum wesentlich effizienter und kostengünstiger realisieren. Aus den oben genannten Aspekten wird offensichtlich, dass die Wahl der Thematik im Vorfeld geprägt und durch aktuelle Ereignisse angeregt wurde. In Anbetracht dessen, wurde die Thematik „Virtualisierung“ für die Bachelorarbeit gewählt und verfasst, um die Realisierung der genannten Forderungen zu erfüllen.
1.2 Ziel der Bachelorarbeit
Zunächst soll die Virtualisierungstechnologie, ihre mannigfaltigen Konzepte sowie die damit verbundenen Auswirkungen untersucht werden. Daraus resultierend ist ein Überblick zu den Grundlagen und der Funktionsweise der Virtualisierung zu erstellen. Die dazugehörigen Aspekte werden klar definiert und in einem gemeinsamen Kontext verglichen. Nach einer Übersicht zu den mannigfaltigen Arten einer solchen Konzeption werden die Vor- und
- 2 -
Nachteile der Virtualisierung fokussiert. Es erfolgt eine Diskussion über die rechtlichen Grundlagen sowie die resultierenden Lizenzierungsbestimmungen. Im Anschluss daran werden einige Einsatzmöglichkeiten und Einsatzgebiete sowie praktische Anwendungen in der Industrie erläutert. Dabei ist dieses Konzept vor allem in der Industrie bedeutend, wo wichtige Einflussfaktoren wie System-Sizing, Capacity-Management und System-Services-Limiting-Performance eine tragende Rolle spielen. Diese Aspekte sollen verdeutlichen, in wie weit die Entwicklungen und Einsatzmöglichkeiten in einer praxisnahen Umgebung bisher forciert wurden.
Eine signifikante Relevanz dieser Bachelorarbeit bildet der Entwurf eines Komplexversuches für Studenten der Hochschule Mittweida. Dazu ist es erforderlich eine Anforderungsanalyse über die Durchführung und Realisierung zu erstellen. Der entworfene Komplexversuch für Studenten soll einen entsprechenden praktischen Bezug zur Thematik herstellen und dient gleichzeitig dazu, die Axiome der Virtualisierung zu veranschaulichen. Des Weiteren ist die Gestaltung der Aufgaben so zu entwerfen, dass die Praxistauglichkeit anhand einiger Problemstellungen im Komplexversuch gezeigt werden kann. Darauf folgt eine Auseinandersetzung zwischen einem realen und einem virtualisierten System. Später soll den Studenten das Konzept und dessen Auswirkung dadurch demonstriert und Rückschlüsse auf verschiedene Konzeptionen ermöglicht werden.
Abschließend erfolgt eine Zusammenfassung, in der nochmalig alle dazugehörigen Aspekte konkretisiert werden. Es soll mit dieser Bachelorarbeit belegt werden, wie weit der aktuelle Stand der Virtualisierung ist und welches Potential noch zu erwarten sein dürfte. Dies sollte vor allem für die Firmen der Informationstechnologie, den Rechenzentren der Hochschulen aber auch für den konventionellen Computer-Nutzer von Interesse sein.
2 Grundlagen der Virtualisierung
2.1 Historische Betrachtung der Virtualisierung
Im Folgenden werden die verschiedenen Stufen der Entstehungsgeschichte der Virtualisierung bis hin zur heutigen technologischen Entwicklung vorgestellt und dabei die Konzepte und Besonderheiten der Virtualisierung angesprochen.
- 3 -
Die Idee von der Virtualisierung begann am 20. Juni 1959 mit der Abhandlung „Time Sharing in Large Fast Computers" von Christopher Strachey, einem englischen Pionier auf dem Gebiet der Computerwissenschaft [1]. In der Publikation wird ein System beschrieben, welches aus einem Prozessor besteht und Programme linear folgend bearbeitet. Greift ein Programm auf die Peripherie des Computers zu, so wird ein Kontextwechsel durchgeführt und das nächste Programm wird bis zu einem erneuten Zugriff auf die Peripherie abgearbeitet. Strachey schildert in der Abhandlung einen logischen Prozessor, auf dem Programme wie auf einem realen Prozessor gestartet werden können. Ein Scheduler ordnet dann den logischen dem physikalischen Prozessor zu.
Drei Jahre später, am 7. Dezember 1962 wurde in Manchester der ATLAS Computer als rechenstärkster Computer der Welt eingeweiht. Dieser beinhaltete einen einstufigen virtuellen Speicher mit „Demand Paging“. Bei Letzterem handelt es sich um eine Technologie, bei der ein Zugriff auf eine Speicherseite erfolgt, die nicht im Hauptspeicher, sondern im Auslagerungsspeicher abliegt. Zudem werden die Seiten nur dann in den Speicher geladen, insofern diese benötigt werden. Wenn sich auf einer virtuellen Maschine ein Betriebssystem befindet, welches selber „Paged“, entsteht eine zweite Stufe des „Paging“, was Verzögerungen mit sich führt. Durch das einfache „Demand Paging“ konnte der Hauptspeicher virtualisiert werden, was bei dem ATLAS Computer zu einer Kosteneinsparung führte. Später in den 60er Jahren folgte der Entwurf des M44/44X-Projektes, welches im IBM Watson Research Center (Cambridge, USA) durchgeführt wurde. Dabei dient eine IBM 7044 als Hauptrechner, auf dem mehrere virtuelle Maschinen (VM) des Typs IBM 7044 ausgeführt wurden. Weitere Entwicklungen zu virtualisierten Maschinen wurden auf der Mainframe-Ebene mit dem CP/CMS-40 und dem VM/370 (offiziell: Virtual Machine Facility/370) von IBM (Armonk, USA) verfolgt, wobei „CP“ für „Control Program“ und „CMS“ für „Console Monitor System“ steht [11]. Dieses am Massachusetts Institute of Technology (MIT) realisierte Projekt stellt, geschichtlich betrachtet, die erste virtuelle Maschine dar. Dabei lehnte sich das Prinzip an ein Multi-User-System an, welches mehrere Kopien von Single-User-Systemen in virtuellen Maschinen ausführt. Die darunter liegende Hardware wurde damit in den virtuellen Maschinen abstrahiert. Der Befehlssatz, ein weiteres essentielles Axiom der Virtualisierungsarchitektur, konnte in privilegierte und unprivilegierte Instruktionen differenziert werden. Ein weiterer Bestandteil dieser Architektur war das Aufteilen der Hardwareressourcen. Hierzu musste eine Instanz die Kontrolle übernehmen, welche dem heutigen „Virtuellen Maschinen Monitor“ (VMM), auch „Hypervisor“ genannt, gleichsteht.
- 4 -
Die Abstrahierung von physischen auf virtuelle Speicheradressen wurde durch die Implementierung einer virtuellen Speicherverwaltung realisiert. Die beschriebene Vorgehensweise findet auch heute noch in modernen Betriebssystemen Anwendung.
Eine der ersten theoretischen Arbeiten zur Virtualisierung stellte Robert P. Goldberg mit seiner Doktorarbeit „Architectural Principles of Virtual Machines“ im Februar 1972 vor [2]. Darin wurden die grundsätzlichen Elemente einer virtuellen Maschine definiert und als effizientes Duplikat einer realen Maschine beschrieben. Die Verteilung der Ressourcen wird durch den „VMM“ reguliert. Darüber hinaus wurde zum Beispiel die Trennung der Befehlssätze in sensitive und nicht-sensitive Instruktionen differenziert. Diese werden als solche vom „Virtuellen Maschinen Monitor“ behandelt oder direkt von der Hardware ausgeführt. Einen wichtigen Punkt bildet dabei die Isolation zwischen den virtuellen Maschinen. Es ist ungewiss, ob sich die Entwicklung der Virtualisierung ohne den formalen Beweis von Robert P. Goldberg ebenso vollzogen hätte. Ansätze zu dieser Konzeption finden sich auch in Auszügen der Arbeit „The evolution of virtual machine architecture“ von Ugo O. Gagliardi und J. P. Buzen, welche im Jahr 1972 verfasst wurde [3]. Weitere theoretische wissenschaftliche Arbeiten zur Thematik Virtualisierung folgten im Juli 1974 von Gerald J. Popek und Robert P. Goldberg mit der Ausarbeitung „Formal Requirements for Virtualizable Third Generation Architectures” [4].
Bis zum Jahr 1977 war eine virtuelle Maschine üblicherweise eine Kopie einer realen Maschine. Die von Kenneth Bowles entwickelte Pseudo-Maschine (P-Maschine) änderte diesen Zustand. Allerdings ist anzuführen, dass diese Maschine nie konzipiert wurde, jedoch theoretisch existieren kann. Das Prinzip der P-Maschine gründet sich auf die Entwicklung eines Emulators, der die Funktionalität anderer Rechenmaschinen nachbildet. Dabei konnten die Programme auf der Emulation ausgeführt werden. Zudem kann durch dieses Konzept Portabilität erreicht werden, womit solche Emulatoren für verschiedene Plattformen zur Verfügung stehen.
„Java Virtual Machine“ (JVM) agiert ähnlich der P-Maschine. Die JVM wird auf einem realen Rechner emuliert, arbeitet aber direkt mit dem Java-Bytecode. Mit „Java Virtual Machine“ konnten erstmals die Vorteile des Maschinencodes mit dem Aspekt der interpretierten Sprachen verbunden werden. Dieses Konzept stellt heutzutage eine sehr effiziente und schnelle Emulation sowie eine sehr gute Portabilität dar. Konträr zur JVM konnte das 1997
- 5 -
entwickelte Konzept des JEM1-Mikroprozessors den Java-Bytecode ohne Emulation direkt verarbeiten. Dabei stellt die von Rockwell Collins Inc. (Cedar Rapid, USA) konzipierte Methode eine so genannte „Java Real Machine“ dar. In Zukunft könnte es möglich sein, gänzlich auf Java Interpreter und Compiler zu verzichten, wodurch die Geschwindigkeit erheblich verbessert wird [50].
Den nächsten entscheidenden Punkt in der Entwicklung der Virtualisierung stellt die im Jahr 1993 von Sun Microsystems Inc. vorgestellte Software „Wabi“ dar. Durch das „Windows Application Binary Interface“ konnte erstmalig Software ohne Veränderungen auf einem nicht proprietären Betriebssystem verwendet werden. Weiterhin war es möglich, Programme auf einer anderen Architektur als der ursprünglich geplanten einzusetzen. Dieser völlig neuartige Virtualisierungsansatz konnte dabei Windows-Programme direkt unter dem Betriebssystem Solaris sowohl auf der x86- als auch auf der SPARC-Plattform (Scalable Processor ARChitecture) ausführen. Dazu war eine Zwischenschicht erforderlich, die Windows-Systemaufrufe interpretieren konnte. Auch wenn auf einem SPARC-Prozessor ein x86-Emulator verwendet wurde, konnte in einer x86-Architektur der restliche Code direkt ausgeführt werden. Es war folglich keine Emulation in der x86-Architektur erforderlich. Einen ähnlichen Schritt in diese Richtung setze das im Jahr 1993 formierte Wine-Projekt (WINE Is Not an Emulator), welches ursprünglich unter der MIT-Lizenz veröffentlicht wurde. Dabei war der Ansatz, Windows 3.1 Programme unter Linux auszuführen. Ein signifikanter Unterschied zu dem Konzept der Software Wabi ist die hier als Prämisse benötigte x86-Architektur. Diese ist ein Erfordernis, da keine Emulatorschicht verwendet wird. Inzwischen hat sich die Software so weit entwickelt, dass selbst Aufrufe in speziellen Bibliotheken unter Linux ohne Performanceverlust ausgeführt werden können. Zudem besteht in diesem Konzept die Möglichkeit, auf freigegebene Verzeichnisse oder Geräte zuzugreifen. Dabei ist eine Speichervirtualisierung notwendig, um Konflikte im gleichen Speicherraum zu verhindern sowie das unerlaubte Zugreifen in diesem zu unterbinden. Der Programmierer Jeff Dike machte im Jahr 1999 mit seinem Linux Patch einen weiteren bedeutenden Schritt. Mit einem modifizierten Kernel des Linux-Betriebssystems war es nun möglich, diesen als unprivilegierten Prozess zu gestalten. Seine Entwicklung nannte er anschließend „User Mode Linux“ (UML). Mit UML konnten folglich mehrere Instanzen eines Linux-Betriebssystems gleichzeitig auf derselben Architektur ausgeführt werden. Dabei bietet diese Methode mehrere Vorteile. Zum einen entfällt eine umständliche Migration auf
- 6 -
einen dedizierten Testrechner und die Fehlersuche bei der Kompilierung von Programmen ist nun wesentlich einfacher zu gestalten. Zum anderen ist ein weiterer positiver Aspekt der Kostenfaktor, da UML lizenzkostenfrei verwendet werden kann. Im Jahr 1999 präsentierte „VMware“ (Palo Alto, USA) die „VMware Workstation“. Dies stellt einen weiteren Abschnitt in der Entwicklung der Virtualisierung dar. Dabei sorgte die von „VMware“ vorgestellte Virtualisierungslösung für große Aufregung in der Öffentlichkeit, da bis zum damaligen Zeitpunkt die Virtualisierung einer x86-Architektur als undenkbar galt. Dem sollte hinzugefügt werden, dass erstmalig unter dem Aspekt einer performanten Umgebung ein vollständiger x86-Computer auf einem anderen x86-System virtualisiert werden konnte. Neben einem BIOS (Basic Input Output System) kann die Virtualisierungslösung eigene virtuelle Hardware bereitstellen, die unter dem Einfluss bestimmter Restriktionen Verwendung findet. Es handelt sich bei diesem Programm um eine kommerzielle geschlossene Virtualisierungslösung.
2.2 Charakteristik einer virtuellen Maschine
In diesem Abschnitt werden die signifikanten Eigenschaften einer virtuellen Maschine zum besseren Verständnis gegliedert. Die Charakteristiken basieren auf den Entwicklungen der VM/370, der ersten virtuellen Maschine der Welt. Zudem werden einige der hier vorgestellten theoretischen Ansätze in der Arbeit „Architectural Principles of Virtual Machines“ von Robert P. Goldberg beschrieben [3].
N Eine virtuelle Maschine ist das Abbild eines realen Systems. Der „Hypervisor“ generiert dabei die Umgebung der virtuellen Systeme. Das in einer virtuellen Maschine befindliche Programm soll sich ebenso verhalten wie in einem äquivalenten realen System [23].
N Der auf dem realen System eingesetzte „Hypervisor“ besitzt die Kontrolle über die virtuelle Maschine.
N Zwei Systeme sind identisch, wenn von diesen eine bijektive isomorphe Abbildung besteht. Von einer Kongruenz der Systeme (Duplikat) spricht man, wenn diese strukturgleich und umkehrbar eindeutig sind.
2.3 Prinzip der Virtualisierung
Das Axiom der Virtualisierung ist das Emulieren von identischen Ausführungsumgebungen. Mittels der Simulation werden alle internen Zustände eines Systems abgebildet. Emulation und Simulation beschreiben dabei völlig konträre Methoden [58]. Ein Simulator imitiert möglichst genau den internen Zustand des Systems, wie beispielsweise einen Algorithmus zur Abarbeitung von Instruktionen oder ein taktzyklengenaues Verhalten. Ein Emulator hingegen beachtet den internen Vorgang eines Systems nur soweit wie erforderlich [4]. Das heißt, für einige Funktionen sind Abkürzungen möglich, da dieser ergebnisorientiert arbeitet. Die Ausführungsumgebung kann aus mannigfachen Systemkomponenten wie Prozessoren, Festplatten oder Netzwerkkarten bestehen [48]. Die virtuell erzeugten Systeme existieren isoliert voneinander. Das Ziel einer Disjunktion ist das Ausführen von mannigfaltigen Betriebssystemen auf einer realen Rechnerarchitektur. Die virtualisierten Systeme existieren ohne die Erkenntnis virtualisiert zu werden.
2.4 Arten von Virtualisierungen
In der Virtualisierung existieren mannigfaltige Verfahren auf Softwareebene. In dem folgenden Kapitel wird in einem ersten Punkt auf die artverwandten Technologien eingegangen. Dies soll zum besseren Verständnis beitragen. Danach werden die essentiellen Ausprägungen der Virtualisierungstechnologie definiert. Eine in den Konzeptionen der Virtualisierung inhärente Unterteilung ist die Unterscheidung in Para-Virtualisierung, vollständige Virtualisierung, Pre-Virtualisierung und Rekursive Virtualisierung. Aus dem Spektrum der Virtualisierung auf Softwareebene finden derzeit zwei Arten vermehrt Anwendung in den Virtualisierungslösungen und in der Industrie. Hier kann die Para-Virtualisierung und die vollständige Virtualisierung genannt werden.
- 8 -
2.4.1 Emulation
Grundsätzlich kann man die Emulation in zwei Teilbereiche differenzieren. Ein erstes Gebiet stellt dabei die Emulation einer „Application Programming Interface“ (API) dar, wobei der Sektor der Anwendungsprogramme fokussiert wird [6]. Gleichzeitig hat das Betriebssystem eine eher untergeordnete Existenz bei dieser Methode. Besteht also die Notwendigkeit, keine weiteren Betriebssysteme einzusetzen, ist nur die Emulation der API des zu verwendenden Betriebssystems erforderlich. Hierbei können die Anwendungsprogramme unter artfremder Architektur zum Einsatz kommen. Das Verfahren der Emulation einer API ist sehr per-formant, da nur Systemrufe übersetzt werden und eventuell erforderliche Bibliotheken verfügbar sind. Ein weiterer Vorteil ist, dass eine Kopie eines weiteren Betriebssystems entfällt, wodurch der Bedarf an Speicherressourcen minimiert wird. Ebenfalls ist der Erwerb von zusätzlichen Lizenzen weiterer Betriebssysteme nicht erforderlich. Diesen Vorteilen steht der Nachteil gegenüber, dass eine API-Übersetzung für jede Kombination von Host- und Gastsystemen existent sein muss. Weiterhin müssen die spezifischen Voraussetzungen der API Berücksichtigung finden. Das heißt, eventuelle Fehler in der API werden mit imitiert. Ein Vertreter für die Emulation einer API stellt das Programm „WINE“ dar. Dieses kann eine Win32 API unter Unix-Derivaten, wie beispielsweise Solaris, Linux und Irix implementieren. Dabei können unveränderte Win32 Codes mittels eines Program Loader, welcher sich in den Programmbibliotheken von „WINE“ befindet, ausgeführt werden.
Abbildung 2-1: Darstellung einer API-Emulation
Einen zweiten Punkt bildet die Emulation einer kompletten Rechnermaschine. Dieses Konzept der Emulation korreliert dabei nahezu analog mit den Ansätzen zur Virtualisierung. Dabei wird mittels dieser Technik ein vollständiger Rechner in einer Datenstruktur imitiert und von der Emulationssoftware geeignet modifiziert. Einzig die Ein- und Ausgaben greifen auf
- 9 -
die Ressourcen des Host Rechners zurück. Die emulierte Architektur kann dabei eine völlig andere sein als die, auf der die Emulation läuft, was einen weiteren Vorteil dieses Verfahren offenbart. Dazu werden alle Instruktionen der virtuellen Maschine durch einen eigenen Simulationscode in einer Emulationsumgebung ersetzt. Daraus folgt, dass die Hardwarekomponenten in Datenstrukturen abgebildet und mit Wirkung auf diese ausgeführt werden. Ziel einer solchen Emulation ist die Ausführung mannigfaltiger Betriebssysteme, sowie deren inhärente Anwendungsprogramme auf den unterschiedlichsten „Instruction Set Architecture“ (ISA) Schnittstellen [34]. Bei dem Vorgang der Emulation sind jedoch hohe Leistungsverluste zu erwarten, da das Verfahren sehr langsam und aufwendig ist und jeder Befehl emuliert wird. Im Gegensatz dazu stellt dieses Verfahren höchstmögliche Flexibilität her. Als Beispiel hierzu ist die Software Java zu erwähnen, welche über die Laufzeitumgebungen mittels kompilierten Binärcodes ähnliche Flexibilität erzielt. Ein weiteres Beispiel dieser Art ist die portable x86-PC-Emulationssoftware Bochs [12]. Dieses in „C++“ geschriebene „Open-Source-Programm“ emuliert eine komplette Rechnerarchitektur, um beispielsweise Windows oder andere Betriebssysteme ausführen zu können.
Abbildung 2-2: Darstellung der Emulation einer kompletten Rechnermaschine
2.4.2 Para-Virtualisierung
Bei der Thematik der Para-Virtualisierung wird sich eines Verfahrens bedient, welches Modifikationen am Gast-System vornimmt. Bei dieser Methode wird durch Anpassungen am Gast-Betriebssystemkernel und der Kompensierung von Schwachstellen der Virtualisierung der Leistungsverlust, der bei einer vollständigen Virtualisierung entsteht, gemindert [16]. Dabei werden das Einfügen von Emulations-Code zur Laufzeit, sowie das Erkennen sensitiver
- 10 -
Instruktionen konträr zur vollständigen Virtualisierung vermieden. Das Gast-Betriebssystem kann bei dem Verfahren der Para-Virtualisierung den Emulations-Code benutzen, welcher der „Hypervisor“, der dabei als Interface dient, zur Verfügung stellt. Dazu ist es erforderlich den Betriebssystemkernel des Gast-Systems so zu portieren, dass dieses den zugehörigen Emulations-Code des „Hypervisors“ aufrufen kann. Dies erfolgt beispielsweise, wenn in einem Gast-Betriebssystem auf ein Gerät zugegriffen wird. Als einen weiteren Aspekt unter der Optimierung, erlaubt es die Para-Virtualisierung, bestimmte Teile des „Hypervisors“ in den Adressraum des Gast-Betriebssystems zu verlagern. Somit kann der performance beanspruchende Wechsel von Gast zum „Hypervisor“ gemindert werden. Hinsichtlich dieser Methodik ist der Verlust der Leistungsfähigkeit von virtualisierten Systemen gegenüber den realen Systemen nur als sehr gering zu bezeichnen. Diesen Vorteilen stehen aber auch Nachteile gegenüber, die im Folgenden ersichtlich werden. Obgleich man bei einer vollständigen Virtualisierung ein bestehendes System unverändert verwenden und konzipieren kann, ist bei der Para-Virtualisierung eine Portierung des Gast-Betriebssystemkernel auf eine virtuelle Maschine erforderlich. Die Modifizierung des Kernel stellt ein komplexes Verfahren dar, welches sehr zeit- und kostenintensiv ist. Abschließend ist anzuführen, dass die Systeme nur dann portiert werden können, wenn ein erforderlicher Quellcode vorhanden ist. Der bedeutendste Vertreter einer solchen Virtualisierungstechnologie ist „XEN“ [14].
Abbildung 2-3: Para-Virtualisierung mit „Hypervisor“ und modifizierten Betriebs-
2.4.3 Vollständige Virtualisierung
Die vollständige Virtualisierung, auch unter dem Namen „native Virtualisierung“ bekannt, ist derzeit die essentielle Determinante der Virtualisierung. Diese Konzeption korreliert weitestgehend mit der Definition einer virtuellen Maschine nach Robert P. Goldberg. Weiterhin kann aufgeführt werden, dass Modifikationen an bestehenden Betriebssystemen nicht erforderlich sind. Das Gast-Betriebssystem eines Host-Systems kann unverändert und ohne jegliche Restriktionen im Hinblick auf die Virtualisierung eingesetzt werden. Einerseits werden bei dem Konzept der vollständigen Virtualisierung die Befehle nur partiell direkt auf der Hardware ausgeführt. Andererseits werden aber die Instruktionen auf der Virtualisierungsebene verarbeitet und tangieren somit nicht direkt mit der Hardware. Grundlegend müssen die „sensitiven Instruktionen“ als Erstes erfasst und ausgewertet werden. Danach erfolgt eine Generierung des Emulationscodes zur Laufzeit, welcher an Stelle der „sensitiven Instruktion“ ausgeführt wird. Durch diese Vorgehensweise können auf dem Host-System Betriebssysteme und deren inhärente Anwendungen ohne adaptive Modifikation in einer virtuellen Umgebung realisiert werden. Konträr dazu gestaltet sich die Thematik in Bezug auf die Integration einer neuen Hardware-Plattform. Um hierbei die Instruktionen sowie die Fähigkeiten einer neuen Hardware-Plattform zu unterstützen, müssen Modifikationen am „Hypervisor“ durchgeführt werden.
Abbildung 2-4: Vollständige Virtualisierung mittels „Hypervisor“
Ein signifikanter Nachteil der vollständigen Virtualisierung ist die zu erwartende Per-formanceeinbuße, die sich durch die Erkennung, Auswertung von Instruktionen sowie dem Generieren und Einfügen von Emulationscode zur Laufzeit ergibt. Da das Erstellen und Integrieren vom Emulationscode durch den „Hypervisor“ realisiert wird, bewirkt dies einen
- 12 -
permanenten Wechsel im Hinblick auf dem „VMM“ und dem Gast-System. Die Konzeption der vollständigen Virtualisierung hält Einzug in der wohl bekanntesten Virtualisierungssoftware welche von „VMware“ [15] distributiert wird.
2.4.4 Pre-Virtualisierung
In diesem Abschnitt wird die Pre-Virtualisierung nur kurz angesprochen. Eine ausführliche Beschreibung findet sich im Kapitel „2.10 Stand der Entwicklung“. Die Pre-Virtualisierung stellt derzeit eine Verbreiterung der am Markt bestehenden Konzeptionen dar. Dieser neuartige Ansatz der Virtualisierung verspricht Erfolge hinsichtlich der Verbesserung der Per-formance und einem weniger komplexen Aufwand zur Portierung von Systemen. Die Forschungen für diese Art der Virtualisierung konzentrieren sich unter der Projektbezeichnung „L4Ka-Projekt“ der Universität Karlsruhe, welches gegenwärtig den Entwicklungsstand der Pre-Virtualisierung in der Welt definiert. Bei der Pre-Virtualisierung werden in einem halbautomatisierten Prozess die privilegierten Befehle vorab markiert und mit zusätzlichen Instruktionen versehen. Hierzu ist der Einsatz eines neu entwickelten Compilers notwendig.
2.4.5 Rekursive Virtualisierung
Die rekursive Virtualisierung beschreibt das Abbilden einer virtuellen Maschine auf sich selbst. Eine solche Konzeption ist nur dann möglich, wenn ein virtualisiertes System vollständig emuliert wird. Das Verfahren ist bei „QEMU“ (Paris, Frankreich), einem CPU-Emulator, durchaus denkbar, während es bei „VMware“ hinsichtlich der rekursiven Virtualisierung zu Problemen kommen kann. Die Rekursion einer Maschine kann auch als Virtualisierung einer virtuellen Maschine aufgefasst werden. Man spricht hier von einer „n-fachen“ Virtualisierung nach den rekursiven „f-Abbildungen“ von Robert P. Goldberg [24]. Die „f-Abbildungen“ beschreiben die Darstellung einer virtuellen Maschine mit ihren inhärenten Systemkomponenten auf der ihr unterliegenden Stufe. Die Abbildung der Systemressourcen sollte so trivial wie möglich konzipiert sein, um eine effiziente Ausführung bei n-facher Abbildung von virtuellen Maschinen zu gewährleisten. Diese Prämisse ergibt sich durch die rekursive Darstellung der Systemkomponenten und des Prozessablaufs, welcher unikal je Durchführung angewendet wird. Im Gegensatz zur Betriebsmittelabbildung kann die Prozessabbildung aufgrund der Einmaligkeit dynamisch komplexer anwachsen. Die Betriebsmittelabbildung beschreibt die Darstellung von Systemkomponenten wie Prozessor, Speicher, Ein- und Ausgabegeräten durch Emulation. Die Prozessabbildung hingegen wird
- 13 -
als Prozess für die Durchführung der Virtualisierung definiert. Zwischen den virtuellen Maschinen werden bei der Abbildung der Systemkomponenten einzelne Stufen der Betriebsmittelverteilung zur Verfügung gestellt. Im Gegensatz dazu werden bei dem Prozessablauf Privilegierungsstufen innerhalb einer einzelnen virtuellen Maschine verfügbar. Dieses Verfahren der rekursiven Virtualisierung unterscheidet signifikant zwischen der Abbildung der Systemkomponenten und dem Prozessablauf. Die größte Leistungsausbeute auf jeder Stufe der virtuellen Maschine ist das definierte Ziel einer solchen rekursiven Maschine. Als die wesentlichsten Charakteristiken bei der Entwicklung der rekursiven virtuellen Maschine werden die Flexibilität, Modularität und die Erweiterbarkeit der virtuellen Systeme fokussiert. Um die Problematik besser verstehen zu können und um die Bedeutung einer rekursiven Virtualisierung zu veranschaulichen, werden in den nachfolgenden Punkten einige Nachteile der konventionellen virtuellen Maschinen dargestellt.
N In den konventionellen virtuellen Maschinen gibt es nur Vater- und Sohnprozesse, die miteinander kommunizieren können. Im Unterschied dazu ist bei der rekursiven Virtualisierung die Möglichkeit der Kommunikation zwischen Großvater- und Enkelprozessen gegeben.
Abbildung 2-5: Exponentieller Slowdown durch die Emulation privilegierter
Befehle in einer konventionellen virtuellen Maschine
N Die Verringerung der Performance stellt sich in jeder Stufe der Rekursion ein, da sämtliche privilegierten Befehle aus der höheren Schicht empfangen und gleichzeitig emuliert werden. Dieser Slowdown steigt exponentiell zur Anzahl der verwendeten Stufen an. So muss zum Beispiel auf der n-ten Stufe der Virtualisierung, wie in Abbildung 2-5 zu sehen ist, der Befehl 2n-1 mal iteriert werden.
- 14 -
N Nicht alle Befehle eines Prozessors in der virtuellen Maschine können mit akzeptablem Einsatz zur Verfügung gestellt werden.
Die Architektur der rekursiven Virtualisierung ist angesichts der genannten Nachteile der konventionellen Virtualisierung bestimmten Änderungen unterworfen. Die exponentiell verlaufenden Leistungseinbrüche werden vermieden, indem in jeder Stufe der rekursiven Virtualisierung die vollständige Umgebung einer übergeordneten Stufe simuliert wird. Die Umgebung umfasst alle Instruktionen, den Zugriff auf den Speicher sowie die Ein- und Ausgabegeräte. Dabei haben die Funktionen der rekursiven Virtualisierung „Border Control“ und „State Encapsulation“ einen exorbitant großen Einfluss [60]. Diese Eigenschaften sind wichtig, um die Kontrolle über die Aktivitäten aller Sohnprozesse und deren Nachfolger zu bekommen.
Abbildung 2-6: Vergleich des konventionellen Prozessmodells mit dem rekursiven
Prozessmodell
Einen weiteren wichtigen Bestandteil des Konzeptes bilden die rekursiv virtualisierbaren Prozesse. Diese können im Vergleich zu den konventionellen Prozessen, wie in Abbildung 2-6 dargestellt, als logisch inhärent geschachtelte Objekte angesehen werden. So ist es zu verstehen, das man hier ebenfalls von einem Vater- und Sohnprozess spricht. Es ergibt sich eine rekursive Vorgänger-Nachfolger-Beziehung. Es sei zu erwähnen, dass ein Sohnprozess nicht mehr Zugriffsrechte als sein Erzeuger haben kann, sondern der Vaterprozess kann die Privilegien seiner Nachkommen weiter begrenzen. Ein Beispiel, bei dem die rekursive Virtualisierung zur Anwendung kommt, ist das von der Universität Utah entwickelte Betriebs-
- 15 -
system „Flux“ (Salt Lake City, USA). Das System verwendet als Basis einen Mikrokernel und bedient sich der vertikalen und horizontalen Schichtung von virtuellen Maschinen [37].
2.5 Virtualisierung auf Hardwareebene
In diesem Kapitel erfolgt die Differenzierung der mannigfachen Konzepte der Hardwarevirtualisierung. In dem ersten Unterpunkt wird die Virtualisierung auf Prozessorebene besprochen und es wird auf die dafür notwendige Ringproblematik eingegangen. Danach werden die Konzeptionen des „Vanderpools“ von Intel und des „Pacificas“ von AMD besprochen. Die Speichervirtualisierung bildet den letzen Punkt dieses Kapitels.
2.5.1 Virtualisierung der x86-Architektur
In der x86-Architektur existieren verschiedene Modi, in denen der Zugriff auf spezifische Speicherbereiche erfolgt und spezielle Instruktionen ausgeführt werden. Der Modus mit den meisten Privilegien des Prozessors besitzt eine Vielzahl von Bezeichnungen. So ist dieser als „Supervisormodus“, „Current Privilege Level 0“ (CPL 0), „Kernel Mode“ oder auch „Ring 0“ bekannt. In dieser höchsten Privilegierungsstufe befinden sich die konventionellen Betriebssysteme und die Gerätetreiber, wobei diese Zugriff auf alle Speicherbereiche erhalten [8]. Im „Supervisormodus“ dürfen die „privilegierten Befehle“ ausgeführt werden. Die Privilegierungsstufen „Ring 1“ und „Ring 2“ finden in den Betriebssystemen nur wenig Verwendung und werden daher nicht weiter besprochen. Im wichtig zu betrachtenden „Nutzermodus“ respektive „User Mode“ befinden sich die immanenten Applikationen der Betriebssysteme. In diesem „nicht privilegierten Modus“, der auch als „Ring 3“ bezeichnet wird, verfügen die Anwendungsprogramme über sehr wenige Rechte, was in Abbildung 2-7 dargestellt wird. So ist es zu erklären, dass ein „privilegierter Befehl“, der von einem Programm ausgeführt werden soll, an das Betriebssystem im „Ring 0“ weitergereicht wird. Würden mehrere Betriebssysteme parallel zueinander ausgeführt, käme es zu erheblichen Problemen. Aus den genannten Gründen ist die Virtualisierung in der x86-Architektur nur sehr schwer möglich.
- 16 -
Abbildung 2-7: Privilegierungsstufen der x86-Architektur
2.5.1.1 Virtualisierung auf Prozessorebene
Die Virtualisierung der Prozessoren bildet den wichtigsten Bestandteil der Hardwarevirtualisierung. Gründe für die Entwicklung waren die negativen Aspekte der Virtualisierung auf Softwareebene, die nachfolgend aufgeführt werden. Aus den ständigen Kontextwechseln bei Systemaufrufen zwischen dem „Hypervisor“ und den virtuellen Maschinen resultieren Performanceverluste. Ein weiterer signifikanter Nachteil ist, dass sich die Gast-Systeme und deren Anwendungen auf derselben Ebene der Priorität befinden. Außerdem sind die Betriebssysteme auf den „Supervisormodus“ programmiert worden, welche sich jedoch nach der Softwarevirtualisierung im „Ring 1“ oder „Ring 3“ der Privilegierung befinden. Aus den genannten Nachteilen wurde die Virtualisierung auf Basis des Prozessors fokussiert. Als einen wichtigen Grund dafür kann die immense Effizienzsteigerung der Virtualisierung auf Prozessorebene gegenüber der Softwarevirtualisierung genannt werden. Einen weiteren Vorteil bilden die Betriebssysteme, welche sich nun im „Supervisormodus“ befinden. Zudem können die virtuellen Maschinen ohne Retardation ausgeführt werden. Isoliert voneinander ist es möglich, virtuelle Systeme auszuführen. Bei einem Schaden oder bei einem Virenbefall der Systeme können diese einfach entfernt werden ohne andere Betriebssysteme zu beein-
- 17 -
Arbeit zitieren:
B.Sc. David Molch, 2007, Virtualisierungstechnologien, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Virtualisierung - Geschichte, Techniken und Anwendungsfälle
Seminararbeit, 33 Seiten
Server-Virtualisierung und Konsolidierung im Rechenzentrumsbetrieb unt...
Dargestellt am Beispiel des pr...
Informatik - Angewandte Informatik
Diplomarbeit, 109 Seiten
Total Cost of Ownership-basierte Kosten-Nutzen-Analyse bei Virtualisie...
Informatik - Wirtschaftsinformatik
Hausarbeit, 37 Seiten
Kostenvorteile mit VMware Virtual Infrastructure 3
Informatik - Wirtschaftsinformatik
Diplomarbeit, 66 Seiten
Internationale Wettberwerbsordnung als Rahmen für 'Global Players&...
VWL - Wettbewerbstheorie, Wettbewerbspolitik
Hausarbeit (Hauptseminar), 24 Seiten
Sicherheit von Systemen - Ausfallsicherheit, Redundante Systeme, Notfa...
Informatik - Wirtschaftsinformatik
Studienarbeit, 37 Seiten
Hochverfügbare Virtuelle Maschinen mit DRBD-mirrored Shared-Storage un...
Bachelorarbeit, 79 Seiten
Virtualisierung von IT-Infrastrukturen am Beispiel von VMware
Informatik - Wirtschaftsinformatik
Diplomarbeit, 83 Seiten
Formulierung internationaler Mindeststandards für Arbeitsbedingungen d...
BWL - Wirtschafts- und Sozialgeschichte
Hausarbeit, 22 Seiten
Konsolidierung, Zentralisierung & Virtualisierung von Rechenzentre...
Informatik - Wirtschaftsinformatik
Hausarbeit, 21 Seiten
IT-Sicherheit in KMU - Umsetzung von IT-Sicherheit in KMU gem. IT-Grun...
Informatik - Wirtschaftsinformatik
Wissenschaftliche Studie, 73 Seiten
Storage Area Network - Grundlagen und Basistechnologie
Informatik - Technische Informatik
Hausarbeit, 27 Seiten
Virtualisierungstechnologien in einem pharmazeutischen Unternehmen
Eine Analyse der Motivation, P...
Informatik - Wirtschaftsinformatik
Diplomarbeit, 131 Seiten
Evaluierung von Content Management Systemen (Open Source)
Informatik - Wirtschaftsinformatik
Seminararbeit, 36 Seiten
Globalisierungsprozesse und Internationalisierungsstrategien - "P...
Seminararbeit, 17 Seiten
Konzeption, Evaluierung und exemplarische Implementierung von WLAN-Lös...
Informatik - Wirtschaftsinformatik
Diplomarbeit, 125 Seiten
Die International Labour Organization (ILO) und ihre Kernarbeitsnormen
Bringt ihre Umsetzung wirtscha...
Politik - Internationale Politik - Thema: Int. Organisationen u. Verbände
Seminararbeit, 22 Seiten
Projektmarketing - Partizipation und Projekterfolg
Ingenieurwissenschaften - Wirtschaftsingenieurwesen
Diplomarbeit, 180 Seiten
Die Internationale Arbeitsorganisation
Politik - Internationale Politik - Thema: Int. Organisationen u. Verbände
Seminararbeit, 20 Seiten
David Molch's Text Virtualisierungstechnologien ist nun auf dem Buchmarkt erhältlich
David Molch hat den Text Virtualisierungstechnologien veröffentlicht
David Molch hat einen neuen Text hochgeladen
Microsoft Office PowerPoint 2007 on Demand
Steve Johnson, Perspection Inc, First_unknown Perspection Inc
On-Demand Supply Management: World Class Strategies, Practices, and Te...
Douglas A. Smock, Robert A. Rudzki, Stephen C. Rogers
Enterprise Collaboration: On-Demand Information Exchange for Extended ...
On-Demand Information Exchange...
Cheng Hsu, David M. Levermore, David Levermore
Automotive Technology: Principles, Diagnosis & Service Value Pack (Inc...
James D. Halderman
Automotive Technology: Principles, Diagnosisd Service Value Package (I...
James D. Halderman
0 Kommentare