Contact Projects Teaching LRR TUM Info

Hauptseminar

Virtualisierungstechnologien

Dr. rer. nat. Josef Weidendorfer
Dipl. Inf. Daniel Stodden
Dr. rer. net. Georg Acher

Vorbesprechung:
Mittwoch, 25.1.06, um 14:15h in Raum 01.06.020.
Vortragstermin:
Ab dem 26.4.2006, jeweils Mittwoch, um 15:00h in Raum 01.06.020.

Mittwoch, 26.5.06: Die Termine am 3.5.06 (Emulation) und am 17.06 (Same-ISA Process VMs) wurden jeweils um eine Woche verschoben. Somit findet der zweite Termin, Emulation + Process VMs, erst am 10.6.06 statt.

Weiterhin wurde der Terminbeginn auf 15:00h verlegt.

Inhalt

Einsatz virtueller Systemumgebungen (System VMs) hat vor allem bei den Serversystemen in den letzten Jahren wieder zugenommen. Mit steigender Leistung der Prozessoren sind mittlerweile auch sehr kostengünstige Maschinen prinzipiell in der Lage, mehrere vollständige Betriebssysteminstanzen (Gastsysteme) als eine Form virtueller Maschinen (VMs) auf einem einzigen Rechner gleichzeitig zu betreiben. Aus Sicht der Benutzer, respektive auf Gastsystemen laufender Prozesse, ist dieser Umstand praktisch transparent.

Derzeit noch weiter verbreitet sind Process VMs. Neben allgegenwärtigen Verfahren wie präemptivem Multitasking spielen hier insbesondere High-Level-Language VMs wie Sun Java oder Microsoft .net eine Rolle, die mittels dynamischer Übersetzung portabilität über Plattformgrenzen hinweg sichern.

Taxonomie Virtueller Maschinen

Ansätze und Varianten virtueller Plattformen sind praktisch so vielfältig die Systemschnitte in modernen Informationssystemen. Prinzipiell gibt es rein hard- und rein softwarebasierte, oder aber hybride Systeme, die beide Ansätze verbinden.

Die Seminarthemen decken einen möglichst breiten Anteil der wichtigsten Virtualisierungstechnologien ab:

Process VMs
System VMs

Themen

Die folgende Themenliste ist bis auf weiteres im Aufbau befindlich. Teile werden noch überarbeitet. Weitere Themen werden bis zum Vorbesprechungstermin noch eingefügt. Wer eine bestimmte Software oder bestimmte Konzepte kennt oder vermisst, kann auch gerne Vorschläge an mich schicken. Die Reihenfolge entspricht noch nicht immer der zu erwartenden Reihenfolge der Vortragstermine.

26.4.2006: Von Real Machines zu Virtual Machines

Themen
Prozessoren und Betriebssysteme und deren Organisation und Architektur sind Grundlage jeder Virtualisierung. Begriffsklärung: ISA, System ISA, User ISA, Syscalls, ABI, Processor- und Memory Management, Virtual Memory, Process VMs, System VMs, VM Monitore und Hypervisors, Hosted System VMs.
Fallstudien
Intel IA-32 (CISC): Befehlssatz, Privilege Levels, Paging
RISC: evtl. IBM PowerPC.
Bearbeiter
Gerd Kainz
Betreuer
Daniel Stodden
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

3.5.2006: Emulation

Themen
Interpretation, Predecoding, Code Discovery and Code Location, Static vs. Dynamic Binary Translation von RISC und CISC ISAs.
Fallstudien
Bochs, Shade
Bearbeiter
Periklis Tsirakidis
Betreuer
Josef Weidendorfer
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

3.5.2006: Process VMs

Fallstudien
Digital FX!32
Bearbeiter
Periklis Tsirakidis
Betreuer
Josef Weidendorfer
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

24.5.2006: Same-ISA Process VMs und Binäre Optimierung

Fallstudien
Valgrind
Bearbeiter
Michael Fink
Betreuer
Josef Weidendorfer
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

31.5.2006: High-Level Language Virtual Machines

Themen
Virtual ISAs und Stackmaschinen. Objektorientierte Metadata-Architekturen. Interpretation, Just-In-Time-Compilation.
Fallstudien
Sun Java VM, Jikes, MS CLI und IL
Bearbeiter
Sebastian Wegener
Betreuer
Georg Acher
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

14.6.2006: System VMs

Themen
Virtualisierung von Systemressourcen: Prozessoren, Speicher und I/O. Performanceimplikationen und Optimierung.
Fallstudien
VMWare ESX Server, VMWare Workstation
Eventuell weitere: IBM zSeries, iSeries, etc.
Bearbeiter
Thomas Klitzing
Betreuer
Daniel Stodden
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

21.6.2006: Paravirtualisierung

Themen
Portierung nativen Betriebssytemcodes in virtuelle Softwareumgebungen. Design software-basierter Schnittstellen für System-VMs (Hypercalls), sowie deren Architektur.
Fallstudien
Xen, User Mode Linux
Betreuer
Daniel Stodden
Bearbeiter
Christian Kern
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]
Anmerkungen
1 Vortrag

7.6.2006: Codesigned Virtual Machines

Themen
ISA-Emulation in Software und Hardware: Code Morphing und -Caching. Hardware-realisierte virtuelle ISAs.
Fallstudien
Intel P6 oder Pentium 4, Transmeta Crusoe, IBM AS/400
Betreuer
Josef Weidendorfer
Bearbeiter
Stefan Kiendl
Dokumentation
Ausarbeitung: [PDF] , Folien: [PDF]

21.6.2006: Intel VT-x (Vanderpool) und AMD Pacifica

Themen
Aktuelle und kommende Hardwareunterstützung für die Partitionierung von IA-32, EM64-T und AMD64-Systemen.
Betreuer
Daniel Stodden
Bearbeiter
Christian Kern
Links
Intel VT-x Homepage, AMD Server Virtualization
Dokumentation
Ausarbeitung: , Folien:

Hintergrund

Allen Varianten ist gemein, daß Gastsysteme in voller Isolation ausgeführt werden. Weder auftretende Fehler noch erhöhter Resourcenbedarf im einen Gastsystem sollten die Funktion eines anderen beeinträchtigen. Der Gedanke eines Betriebsystems als Gastsystem auf einer virtuellen Abstraktionsschicht ist leicht vergleichbar mit dem Prozessmodell unter Betriebssytemen mit präemptivem Multitasking.

Tatsächlich ist bereits die Laufzeitumgebung eines Prozesses auf einer Workstation nichts anderes als eine virtuelle Maschine. Reine Process VMs, wie die Java VM oder der Microsoft .net zugrunde liegende intermediate layer ergänzen diesen Gedanken um plattformneutralen Bytecode als Befehlssatz. Mit durchgehender Objektorientierung bis in den Zwischencode bieten sie außerdem deutlich verbesserte Unterstützung für moderne Methoden der Softwaretechnik.

Durch Einsatz virtualisierter Plattformschnittstellen in Hardware, in ihrer binärform (ABIs), können damit über Jahrzehnte und eine entsprechende Anzahl von Prozessorgenerationen hinweg gepflegt werden, ohne Kompatibilität zu Vorversion einzubüßen und kostspielige und riskante Anpassungen an der Anwendung zu erfordern. Ein bekanntes Beispiel sind kostspielige Mainframe wie die IBM zSeries. Sie sind teuer, unterstützen aber dafür Teilung aller Hardwareresourcen, wie zum Beispiel auch von I/O Subsystemen, in virtuelle Partitionen. Die Vorteile sind hohe Skalierbarkeit, leichtere Konsolidierung von Einzelsystemen, geringe Wartungskosten und, bei entsprechend aufwändiger Systemarchitektur, eine erheblich höhere Ausfallsicherheit bei mit der Verfügbarkeit moderner Fertigungstechnologien trotzdem wachsender Performance.

Dazwischen liegen sogenannte codesigned VMs. Das sind Prozessoren, deren Schnittstelle nicht als Zielplattform für die Anwendungsentwicklung mit Hilfe eines Compilers entworfen wurde, sondern lediglich Basis einer vollständig oder teilweise virtualisierten ISA ist. Deren Umsetzung kann im Extremfall vollständig in Software implementiert werden. Ein prominentes Beispiel für eine reine Software-ISA sind die Crusoe- und Efficeon-Prozessorfamilien von Transmeta, auf denen ein sogenannter Code-Morphing Layer x86-Instruktionen zur Laufzeit auf einen VLIW-orientierten Befehlssatz übersetzt.

Im Kontrast zu den hardwarebasierten Lösungen stehen zunächst reine Software-Monitore, die schon auf Commodity-Hardware wie IA32- oder AMD-Prozessoren brauchbare Ergebnisse liefern. Die Mehrheit davon sind sogenannte System-VMs, d.h. vollständige Betriebsysteme in Kombination mit der darauf aufbauenden Benutzersoftware. Reine Plattformemulationen, z.B. Bochs oder VirtualPC von Connectix (mittlerweile Microsoft) emulieren im Bedarfsfall gleich den gesamten Befehlssatz, allerdings bei entsprechendem Resourcenbedarf.

Deutlich effizientere System VMs emulieren lediglich privilegierte Operationen und erlauben damit bereits den Betrieb weitgehend unmodifizierter Systemsoftware. Sie setzen im Gegensatz zur Emulation allerdings zunächst voraus, daß der eingesetzte Code auf der zugrunde liegenden Hardwarearchitektur lauffähig ist. Gastsystemen werden dabei keine, oder nur unkritische privilegierte Operationen zugestanden – die Vergabe der Betriebsmittel erfolgt in erster Linie durch das VM-System und erst in zweiter Instanz durch das Gastsystem.

Paravirtuelle System-VMs wie a Xen abstrahieren alle Hardwareschnittstellen in Software und werden damit effizienter, setzen aber eine Portierung des Betriebssystems voraus. Der Ansatz funktioniert auch für hosted System-VMs: User Mode Linux (UML) ist eine Portierung des Linux Kernels auf sich selbst, d.h. ein Linux-Kernel wiederum auf dem Linux-ABI. Der UML-Kern läuft damit als regulärer Benutzerprozeß auf dem Host-Betriebsystem.

Alternative, aber auch deutlich komplexere Methoden erlauben den Betrieb von zunächst unmodifiziertem Code. Sie erschließen damit einen breiteren Anwendungsbereich, allerdings auch bei entsprechendem Aufwand: Bekannte Virtualisierungspakete wie VMWare modifizieren dynamisch Teile des Gastsystems um die damit einhergehenden Perfomancenachteile zu minimieren.

Während deren Transparenz auf Prozessoren, die ursprünglich für den klassischen Desktop- und Workstationbestrieb entwickelt wurden, z.B. der x86-Architektur, Grenzen gesetzt sind, hat Intel hat im Rahmen seiner Vanderpool-Initiative bereits entsprechende Spezifikationen für die IA32-Architektur vorgestellt. Aktuelle Prozessorgeneration bieten damit breitere Virtualisierungsunterstützung in Prozessor- und Systemarchitektur. AMD entwickelt derzeit unter der Bezeichnung Pacifica eine vergleichbare Technik.

Anforderungen

Vorkenntnisse

Das Seminar zielt nicht nur auf Anwendungen, sondern vor allem auf Design und Implementierung von Hardware-, Schnittstellen- und Systemvirtualisierung. Solche System stützen sich auf z.T. sehr unterschiedlichen Ebenen moderner Rechensysteme ab. Das Thema vereinigt damit Teile mehrerer Kerngebiete der technischen und angewandten Informatik:

  • Mikroprozessoren, insbesodere der Hardware-/Software-Schnittstelle
  • Rechnerachitektur
  • Betriebssyteme
  • Softwaretechnik
  • Compilerbau

Umfassende Kenntnisse in allen diesen Gebieten kann auch von Studenten im Hauptstudium kaum vorausgesetzt werden. Interesse, und damit auch die Bereitschaft sich bei Bedarf ausreichend einzuarbeiten, wird aber Voraussetzung für eine erfolgreiche Durchführung sein.

Halb so wild: In jedem Fall bietet das Seminar eine erstklassige Gelegenheit, die eigenen Kenntnisse in allen Bereichen deutlich zu Vertiefen. Und das soll natürlich auch Spaß machen -- so Don't panic. :).

Duchführung und verbindliche Termine

  • Literaturbeschaffung: ab sofort bis mindestens 5 Wochen vor dem Vortragstermin
  • Bei Problemen mit der Literaturbeschaffung sollte frühzeitig Rücksprache mit dem Betreuer erfolgen.
  • Sortieren der Literatur: bis ca. 4 Wochen vor dem Vortragstermin
  • Erstellen einer Grobgliederung: bis ca. 3 Wochen vor dem Vortragstermin. Spätestens dann erfolgt die erste Rücksprache mit dem Betreuer.
  • Erstellen der Folien: bis mindestens eine Woche vor dem Vortragstermin. Die Folien müssen dem Betreuer vor dem Vortragstermin vorgelegt werden. Gerade hier ist Verspätung i.d.R. inakzeptabel.
  • Abgabe der Ausarbeitung reicht bis zum Ende des Semesters.

Wie bei jedem Seminar, finden sich immer Gemeinsamkeiten und Berührungspunkte zwischen den einzelnen Vortragsthementhemen und -inhalten. Diese zu identifizieren ist nur teilweise Aufgabe der Betreuer. Verschafft euch regelmässig einen Überblick über den Entwicklunsstand anderer Teilnehmer und versucht euch abzusprechen, gemeinsame Arbeit sinnvoll aufteilen. In jedem Fall, konsultiert bitte die Betreuer und informiert sie über getroffene übereinfkünfte.

Ausarbeitung

Der Umfang der Ausarbeitung sollte 15 Seiten nicht unter- und 20 Seiten nicht überschreiten. Wer ein streßfreies System für den Satz sucht, dem sei LaTeX ans Herz gelegt. Gutes (nach westeuropäischen Gesichtspunkten) Seitenlayout bekommt man z.B. mit Komascript.

Für Durchsicht durch die Betreuer und die Ablage auf der Seminar-Homepage wird PDF oder PostScript benötigt. Die Speicherformate von Word oder OpenOffice sind für die Ausgabe im Rahmen des Seminars nicht akzeptabel, da nicht ausreichend standardisiert.

Vortrag

Kenntnisse in Vortragsentwicklung und -gestaltung, und Kennnisse im Einsatz geeigneter Software dazu, lassen sich beim Haupseminar eigentlich schon voraussetzen. Denjenigen, die trotzdem noch ein paar Tips und Anregungen suchen, sei ein Blick in die Seiten von z.B. Carsten Trinitis und Daniel Stodden ans Herz gelegt.

Literatur

James E. Smith and Ravi Nair, Virtual Machines: Versatile Platforms for Systems and Processes, Morgan Kaufmann Publishers, San Francisco, CA, USA, 2005, ISBN 1-55860-910-5

More to come...

Kontakt

Interessenten wenden sich bitte an:
Dr. rer. nat. Josef Weidendorfer,
Dipl. Inf. Daniel Stodden,
Dr. rer. net. Georg Acher

Valid XHTML 1.1