Virtualisierungsansätze mit Schwerpunkt Xen Markus Gerstel Hauptseminar: Ansätze für Betriebssysteme der Zukunft, WS 2005/06 Betreuer: Dipl.-Inf. Tobias Landes Technische Universität München November 10, 2005
Vortragsinhalt 1 Geschichte, Definition und Ziele der Virtualisierung Konzepte Von der Virtualisierung zur virtuellen Maschine Software-Virtualisierung 2 Systemvirtualisierung UML VMWare XEN Vergleich der Systemvirtualisierungslösungen 3 Ausblick
Vortragsinhalt 1 Geschichte, Definition und Ziele der Virtualisierung Konzepte Von der Virtualisierung zur virtuellen Maschine Software-Virtualisierung 2 Systemvirtualisierung UML VMWare XEN Vergleich der Systemvirtualisierungslösungen 3 Ausblick
Vortragsinhalt 1 Geschichte, Definition und Ziele der Virtualisierung Konzepte Von der Virtualisierung zur virtuellen Maschine Software-Virtualisierung 2 Systemvirtualisierung UML VMWare XEN Vergleich der Systemvirtualisierungslösungen 3 Ausblick
Der Virtualisierungsgedanke I Time Sharing in Large Fast Computers - Christopher Strachey, Juni 1959 Idee: Programme werden nacheinander abgearbeitet Bei Pheripherie-Zugriff Kontextwechsel Ziel: Möglichst hohe CPU-Ausnutzung Heute bekannt als Multiprogrammierung
Der Virtualisierungsgedanke I Time Sharing in Large Fast Computers - Christopher Strachey, Juni 1959 Idee: Programme werden nacheinander abgearbeitet Bei Pheripherie-Zugriff Kontextwechsel Ziel: Möglichst hohe CPU-Ausnutzung Heute bekannt als Multiprogrammierung
Der Virtualisierungsgedanke I Time Sharing in Large Fast Computers - Christopher Strachey, Juni 1959 Idee: Programme werden nacheinander abgearbeitet Bei Pheripherie-Zugriff Kontextwechsel Ziel: Möglichst hohe CPU-Ausnutzung Heute bekannt als Multiprogrammierung
Der Virtualisierungsgedanke I Time Sharing in Large Fast Computers - Christopher Strachey, Juni 1959 Idee: Programme werden nacheinander abgearbeitet Bei Pheripherie-Zugriff Kontextwechsel Ziel: Möglichst hohe CPU-Ausnutzung Heute bekannt als Multiprogrammierung
Der Virtualisierungsgedanke II Christopher Strachey erdachte die logische CPU, die von einem Scheduler einer physikalischen CPU zugeordnet wird CPU CPU Scheduler Prozess Prozess Prozess Stapelverarbeitung CPU Prozess CPU Prozess Konzept Identische Vervielfachung: Parallelisierung, Multitasking
Der Virtualisierungsgedanke II Christopher Strachey erdachte die logische CPU, die von einem Scheduler einer physikalischen CPU zugeordnet wird CPU CPU Scheduler Prozess Prozess Prozess Stapelverarbeitung CPU Prozess CPU Prozess Konzept Identische Vervielfachung: Parallelisierung, Multitasking
Der Virtualisierungsgedanke III ATLAS Computer, Manchester, 1962 Neben Multiprogrammierung: Druckerspooler - Umleitung Druckausgabe Datei Konzept Substitution: Drucker kann benutzt werden, wenn er beschäftigt oder aktuell nicht am Rechner angeschlossen ist
Der Virtualisierungsgedanke III ATLAS Computer, Manchester, 1962 Neben Multiprogrammierung: Druckerspooler - Umleitung Druckausgabe Datei Konzept Substitution: Drucker kann benutzt werden, wenn er beschäftigt oder aktuell nicht am Rechner angeschlossen ist
Der Virtualisierungsgedanke III ATLAS Computer, Manchester, 1962 Neben Multiprogrammierung: Druckerspooler - Umleitung Druckausgabe Datei Konzept Substitution: Drucker kann benutzt werden, wenn er beschäftigt oder aktuell nicht am Rechner angeschlossen ist
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke IV ATLAS Computer, Manchester, 1962 Einstufiger virtueller Speicher 96 KB Hauptspeicher 576 KB Hintergrundspeicher Grund: Aber: Daher: Kosten - 1 Bit Hauptspeicher ˆ= 6 Bit Hintergrundspeicher Programmierer sollten keine zusätzliche Arbeit haben Demand Paging Ein- und Auslagerung von Speicherseiten im Hintergrund
Der Virtualisierungsgedanke V Drittes wichtiges Konzept: Klassenbildung dd kann auf allen blockorientierten Geräten arbeiten Keine Anpassung oder Rekompilation notwendig
Der Virtualisierungsgedanke V Drittes wichtiges Konzept: Klassenbildung dd kann auf allen blockorientierten Geräten arbeiten Keine Anpassung oder Rekompilation notwendig
Der Virtualisierungsgedanke V Drittes wichtiges Konzept: Klassenbildung dd kann auf allen blockorientierten Geräten arbeiten Keine Anpassung oder Rekompilation notwendig
Virtualisierung auf einer anderen Ebene Identische Vervielfachung, Substitution, Klassenbildung heutzutage Grundbausteine Interessanter: Virtuelle Maschinen
Virtualisierung auf einer anderen Ebene Identische Vervielfachung, Substitution, Klassenbildung heutzutage Grundbausteine Interessanter: Virtuelle Maschinen
Virtuelle Maschinen I - M44/44X Mitte der 60er Jahre: IBM Watson Research Center M44/44X Ziel: Mittel: Erforschung der Eigenschaften von Timesharingkonzepten Ein IBM 7044 (M44) Mehrere virtuelle Maschinen des Typs IBM 7044 (44X)
Virtuelle Maschinen I - M44/44X Mitte der 60er Jahre: IBM Watson Research Center M44/44X Ziel: Mittel: Erforschung der Eigenschaften von Timesharingkonzepten Ein IBM 7044 (M44) Mehrere virtuelle Maschinen des Typs IBM 7044 (44X)
Virtuelle Maschinen I - M44/44X Mitte der 60er Jahre: IBM Watson Research Center M44/44X Ziel: Mittel: Erforschung der Eigenschaften von Timesharingkonzepten Ein IBM 7044 (M44) Mehrere virtuelle Maschinen des Typs IBM 7044 (44X)
Virtuelle Maschinen I - M44/44X Mitte der 60er Jahre: IBM Watson Research Center M44/44X Ziel: Mittel: Erforschung der Eigenschaften von Timesharingkonzepten Ein IBM 7044 (M44) Mehrere virtuelle Maschinen des Typs IBM 7044 (44X)
Virtuelle Maschinen II - M44/44X Ermöglichte Einsicht mit einem Computer in ein laufendes System Erfolge: Entdeckung der FIFO-Anomalie Eigenschaften des virtuellen Speichers IBM bis heute im Virtualisierungsgeschäft bei Großrechnern
Virtuelle Maschinen II - M44/44X Ermöglichte Einsicht mit einem Computer in ein laufendes System Erfolge: Entdeckung der FIFO-Anomalie Eigenschaften des virtuellen Speichers IBM bis heute im Virtualisierungsgeschäft bei Großrechnern
Virtuelle Maschinen II - M44/44X Ermöglichte Einsicht mit einem Computer in ein laufendes System Erfolge: Entdeckung der FIFO-Anomalie Eigenschaften des virtuellen Speichers IBM bis heute im Virtualisierungsgeschäft bei Großrechnern
Virtuelle Maschinen II - M44/44X Ermöglichte Einsicht mit einem Computer in ein laufendes System Erfolge: Entdeckung der FIFO-Anomalie Eigenschaften des virtuellen Speichers IBM bis heute im Virtualisierungsgeschäft bei Großrechnern
Virtuelle Maschinen III - p-maschine Erste virtuelle Maschine: Pseudo-Maschine (p-maschine) Kenneth Bowles, 1977 Programmiersprache: Pascal existierte nur auf Papier Ausführung der Programme durch Emulatoren Neues Ziel: Portabilität
Virtuelle Maschinen III - p-maschine Erste virtuelle Maschine: Pseudo-Maschine (p-maschine) Kenneth Bowles, 1977 Programmiersprache: Pascal existierte nur auf Papier Ausführung der Programme durch Emulatoren Neues Ziel: Portabilität
Virtuelle Maschinen III - p-maschine Erste virtuelle Maschine: Pseudo-Maschine (p-maschine) Kenneth Bowles, 1977 Programmiersprache: Pascal existierte nur auf Papier Ausführung der Programme durch Emulatoren Neues Ziel: Portabilität
Virtuelle Maschinen III - p-maschine Erste virtuelle Maschine: Pseudo-Maschine (p-maschine) Kenneth Bowles, 1977 Programmiersprache: Pascal existierte nur auf Papier Ausführung der Programme durch Emulatoren Neues Ziel: Portabilität
Virtuelle Maschinen III - p-maschine Erste virtuelle Maschine: Pseudo-Maschine (p-maschine) Kenneth Bowles, 1977 Programmiersprache: Pascal existierte nur auf Papier Ausführung der Programme durch Emulatoren Neues Ziel: Portabilität
Virtuelle Maschinen IV - JVM Java Virtual Machine, 1991 Programmiersprache: Java existierte nur auf Papier Ausführung der Programme durch Emulatoren
Virtuelle Maschinen IV - JVM Java Virtual Machine, 1991 Programmiersprache: Java existierte nur auf Papier Ausführung der Programme durch Emulatoren
Virtuelle Maschinen IV - JVM Java Virtual Machine, 1991 Programmiersprache: Java existierte nur auf Papier Ausführung der Programme durch Emulatoren
Virtuelle Maschinen IV - JVM Java Virtual Machine, 1991 Programmiersprache: Java existierte nur auf Papier Ausführung der Programme durch Emulatoren
Virtuelle Maschinen V - JVM Java Virtual Machine, 1991 Ähnlich, aber mit kleinen Änderungen: Effizientere Emulationsmethoden (Just-In-Time-Compiler) Rockwell-Collins Inc. zeigt 1997 den JEM1-Mikroprozessor: Java Real Machine
Virtuelle Maschinen V - JVM Java Virtual Machine, 1991 Ähnlich, aber mit kleinen Änderungen: Effizientere Emulationsmethoden (Just-In-Time-Compiler) Rockwell-Collins Inc. zeigt 1997 den JEM1-Mikroprozessor: Java Real Machine
Virtuelle Maschinen V - JVM Java Virtual Machine, 1991 Ähnlich, aber mit kleinen Änderungen: Effizientere Emulationsmethoden (Just-In-Time-Compiler) Rockwell-Collins Inc. zeigt 1997 den JEM1-Mikroprozessor: Java Real Machine
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Software-Virtualisierung Wine Is Not an Emulator, 1993 Ziel: Weg: Vorteile: Aber: Nachteile: Windows 3.1-Programme unter Linux auszuführen Windows-Systemaufrufe werden in X-Windows-Systemaufrufe übersetzt Betriebssystemunabhängig Kein Emulator - Plattformabhängig Windows API sehr umfangreich, kaum dokumentiert Keine vollständige Unterstützung
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
Linux auf Linux - UML User Mode Linux, 1999 Jeff Dike portiert Linux auf Linux Ausführung des Gast-Kernels als unprivilegierter Prozess Seit 2.6 im Mainstream-Kernel enthalten Ziel: Kernelprogrammierung vereinfachen Normale Debugging- und Profilingtools Isolation (Kernel Dump)
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux Architektur User Mode Linux, 1999 Generische arch-schnittstelle wird um um (User Mode) erweitert Keine eigenen Pheripherie-Geräte Hardwarespezifische Befehle werden durch Software emuliert Bei Bedarf Systemaufrufe an den Host-Kernel Für diesen erscheint der UML-Kernel als Prozess.. und jeder andere Prozess innerhalb des UML-Systems ebenfalls
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux - SKAS Patch für den Host-Kernel: UML-SKAS Seperate Kernel Address Space bessere Speicherisolation billigere Kontextwechsel, da nicht vom Host-Kernel durchgeführt bessere Performance keine Prozesskopplung noch nicht im Mainstream-Kernel enthalten
User Mode Linux init ls ps firefox init ls ps firefox UML-Kernel UML-Kernel UML arch Treiber init ps firefox UML arch Treiber init ps Kernel User BlockDev SIG I/O Host Linux-Kernel (nicht UML-spezifisch) Architekturschicht Hardware Host-System CPU, Festplatten, Netzwerk,... Treiber Prozessarchitektur eines UML-Systems Prozesse im UML-Bereich sind für den Host-Kernel sichtbar Host Linux-Kernel (mit SKAS-Patch) Architekturschicht Treiber Hardware Host-System CPU, Festplatten, Netzwerk,... Prozessarchitektur eines UML-Systems mit SKAS- Patch UML-Bereich wird hinter vier Prozessen verborgen: Kernel- und User-Bereich, Blockgerätetreiber und Signalvermittlung für Ein-/Ausgabe
Virtualisierungshindernis x86 x86 galt bis 1999 als ineffizient bzw. nicht virtualisierbar Hauptursache: Nicht alle relevanten Befehle sind abfangbar Befehle, die den Systemzustand ändern oder abhängig vom Ring andere Auswirkungen haben
Virtualisierungshindernis x86 x86 galt bis 1999 als ineffizient bzw. nicht virtualisierbar Hauptursache: Nicht alle relevanten Befehle sind abfangbar Befehle, die den Systemzustand ändern oder abhängig vom Ring andere Auswirkungen haben
Virtualisierungshindernis x86 x86 galt bis 1999 als ineffizient bzw. nicht virtualisierbar Hauptursache: Nicht alle relevanten Befehle sind abfangbar Befehle, die den Systemzustand ändern oder abhängig vom Ring andere Auswirkungen haben
VMWare I VMWare Workstation, 1999 kompletter x86-pc mit in Grenzen frei wählbarer Hardware und ansehnlicher Geschwindigkeit
VMWare I VMWare Workstation, 1999 kompletter x86-pc mit in Grenzen frei wählbarer Hardware und ansehnlicher Geschwindigkeit
VMWare I VMWare Workstation, 1999 kompletter x86-pc mit in Grenzen frei wählbarer Hardware und ansehnlicher Geschwindigkeit
VMWare I VMWare Workstation, 1999 kompletter x86-pc mit in Grenzen frei wählbarer Hardware und ansehnlicher Geschwindigkeit
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare II - Technik Idee: Lösung: Führe möglichst viel (x86) Programmcode direkt aus Aber keine abzufangenden Befehle Virtual Machine Monitor (VMM) überprüft Programmcode vor Ausführung Folgt konditionalen Sprüngen bis zu - einem abzufangenden Befehl - einer maximaler Suchtiefe - einem Befehl, dessen Bedeutung noch nicht feststeht Ersetze dann den diesen Befehl mit einem Breakpoint
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare III - Der PreScan PreScan oder Scan-Before-Execution Löst Instruktionsproblem Durch Caching sehr effizient Probleme: Auslesen des Programmspeichers, Selbstmodifizierender Code Zugriffe werden auf Kopie des Originalcodes umgeleitet
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare IV - Komponenten Zusätzliche VMWare Komponenten: VMDriver: VMApp: Tools: Assistiert bei Speicherverwaltung Kommunikation VMApp VMM Benutzerinteraktion I/O zwischen virtueller Maschine und Host-System Treiber und Programme für Gast-System
VMWare V User Mode Applikation User Mode Applikation VMWare Tools User Mode Applikation User Mode Applikation VMWare Workstation (VMApp) Betriebssystem Treiber Betriebssystem Treiber VMDriver Virtual Machine Monitor Hardware Host-System CPU, Festplatten, Netzwerk,... Architektur eines VMWare-Systems mit eingezeichnetem Kommunikationsweg
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Para-Virtualisierung Bei VMWare muss das Gastsystem nicht modifiziert werden Was wäre wenn? Keine vollständige Virtualisierung mehr nötig Weniger Umsetzungsarbeiten Bessere Performance Konzept Para-Virtualisierung: Biete Gastsystem eine Architektur, die nicht gleich der eigenen ist aber sehr ähnlich
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen - and the Art of Virtualization Xen - Universität von Cambridge Design-Prinzipien: Anwendungen müssen unverändert lauffähig bleiben Gastsystem (DomU) weiss von Virtualisierung effizientere Kommunikation Kontrolle durch möglichst schlanken VMM (Hypervisor) Ziel: Bis zu 100 VMs auf einem Server parallel und isoliert
Xen-Architektur I - Speicherzugriffe Speicherzugriffe Translation Lookaside Buffer = Cache von Speicheradressen sorgt für schnelle Zugriffe Codebereichswechsel bedeutet klassischerweise TLB-Flush für jeden Systemaufruf (Hypercall)
Xen-Architektur I - Speicherzugriffe Speicherzugriffe Translation Lookaside Buffer = Cache von Speicheradressen sorgt für schnelle Zugriffe Codebereichswechsel bedeutet klassischerweise TLB-Flush für jeden Systemaufruf (Hypercall)
Xen-Architektur I - Speicherzugriffe Speicherzugriffe Translation Lookaside Buffer = Cache von Speicheradressen sorgt für schnelle Zugriffe Codebereichswechsel bedeutet klassischerweise TLB-Flush für jeden Systemaufruf (Hypercall)
Xen-Architektur I - Speicherzugriffe Speicherzugriffe Translation Lookaside Buffer = Cache von Speicheradressen sorgt für schnelle Zugriffe Codebereichswechsel bedeutet klassischerweise TLB-Flush für jeden Systemaufruf (Hypercall)
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur II - Speicherzugriffe Xen: Betriebssystem soll Seitentabellen selbst verwalten Lesezugriffe werden direkt ausgeführt Schreibzugriffe werden vom Hypervisor geprüft Für Hypervisor werden obere 64 MB reserviert Einfache Systemaufrufe damit ohne TLB-Flush möglich Zusammenfassen vieler Schreibzugriffe zu einem Systemaufruf
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur III - Speicherzugriffe Problem: Schreibanfragen werden verspätet bearbeitet Lesezugriffe aber direkt ausgeführt = Seitenzugriffsfehler DomU-Betriebssystem prüft ob noch Schreibanfragen vorliegen, führt diese aus und versucht wieder Lesezugriff Segmenttabellen funktionieren ähnlich
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur IV - CPU Virtualisierung der CPU x86: Ring 0 (Kernel) - 3 (User) Xen führt DomU-Systeme im (fast) ungenutzten Ring 1 aus Abfangen vieler Befehle nun leicht möglich Ausnahmen: Seitenfehler per Umweg über Ring 0 Systemaufrufe aus DomU-Programmen per Exceptionhandler
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur V - I/O Virtualisierung von I/O I/O-Operationen über gemeinsame Ringpuffer Asynchrone Nachrichtenübermittlung ähnlich Interrupts Gastsystem kann entscheiden, wann und wie oft es unterbrochen werden will Festplattenzugriffe über virtuelle blockorientierte Geräte Xen kann Anfragen umordnen - Alternativ: reorder barriers
Xen-Architektur VI Kontroll-System Dom0 Gast-System DomU Gast-System DomU App Xen Verwaltungssoftware App App App App Betriebssystem Betriebssystem Treiber Betriebssystem Control Interface Safe Hardware Interface Event Channel Xen Virtual Machine Monitor Hardware Host-System CPU, Festplatten, Netzwerk,... Architektur eines Xen-Systems: Hypervisor/VMM stellt x86/xen-architektur zur Verfügung, auf die das Kontroll-Betriebssystem sowie die Gast-Systeme portiert wurden.
Xen-Architektur VII - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time Kenneth J. Duda und David R. Cheriton, 1999 Ziele: Hoher Durchsatz und Fairness Externe Vorgaben erfordern schnelle Reaktion: z.b. TCP-Timing BVT weicht daher von einem strikt fairen Scheduling ab
Xen-Architektur VII - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time Kenneth J. Duda und David R. Cheriton, 1999 Ziele: Hoher Durchsatz und Fairness Externe Vorgaben erfordern schnelle Reaktion: z.b. TCP-Timing BVT weicht daher von einem strikt fairen Scheduling ab
Xen-Architektur VII - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time Kenneth J. Duda und David R. Cheriton, 1999 Ziele: Hoher Durchsatz und Fairness Externe Vorgaben erfordern schnelle Reaktion: z.b. TCP-Timing BVT weicht daher von einem strikt fairen Scheduling ab
Xen-Architektur VII - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time Kenneth J. Duda und David R. Cheriton, 1999 Ziele: Hoher Durchsatz und Fairness Externe Vorgaben erfordern schnelle Reaktion: z.b. TCP-Timing BVT weicht daher von einem strikt fairen Scheduling ab
Xen-Architektur VIII - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time t ex 7 6 5 4 3 2 1 0-1 -2-3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 t R t ex 7 6 5 4 3 2 1 0-1 -2-3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 t R P1 P2 P3 Standard-Zeitscheibenverfahren (Round Robin) P1 P2 P3 Möglicher Ablauf mit BVT
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Xen-Architektur IX - Scheduling Exkurs: Scheduling mit Borrowed Virtual Time In der Praxis: Zwei Benchmarksysteme Ein System, das die Festplatten auslastet Ein System mit Fork-Bomb und Speicherallokation = Benchmarks geben um 2-4% gegenüber Vergleichstest nach (in anderen Fällen sogar besser als Linux)
Vergleich der Systemvirtualisierungslösungen 110 % 100 % Relative Geschwindigkeit gegenüber Linux 90 % 80 % 70 % 60 % 50 % 40 % 30 % 20 % 10 % 0 % L X V U SPEC INT2000 L X V U Kernelkompilation L X V U OSDB-IR L X V U OSDB-OLTP L X V U dbench L X V U SPEC WEB99
Ausblick: Xen 3 Xen 3 Unterstützung für SMP, x86 64. IA64 Clustering und bessere Managementsoftware QoS für Limits und Garantien z.b. Netzwerkbandbreite und CPU-Auslastung etwa Dezember 2005
Ausblick: Xen 3 Xen 3 Unterstützung für SMP, x86 64. IA64 Clustering und bessere Managementsoftware QoS für Limits und Garantien z.b. Netzwerkbandbreite und CPU-Auslastung etwa Dezember 2005
Ausblick: Xen 3 Xen 3 Unterstützung für SMP, x86 64. IA64 Clustering und bessere Managementsoftware QoS für Limits und Garantien z.b. Netzwerkbandbreite und CPU-Auslastung etwa Dezember 2005
Ausblick: Xen 3 Xen 3 Unterstützung für SMP, x86 64. IA64 Clustering und bessere Managementsoftware QoS für Limits und Garantien z.b. Netzwerkbandbreite und CPU-Auslastung etwa Dezember 2005
Ausblick: Xen 3 Xen 3 Unterstützung für SMP, x86 64. IA64 Clustering und bessere Managementsoftware QoS für Limits und Garantien z.b. Netzwerkbandbreite und CPU-Auslastung etwa Dezember 2005
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Ausblick: x86 x86 im Wandel - Pacifica und VT/Vanderpool Erweiterung der Rechtestruktur: Ring 0-3 root mode, non-root mode Xen 3 Hypervisor im Ring 0 root mode, Windows XP im Ring 0 non-root mode = Portierung nicht mehr notwendig Prozessoren etwa 2006 verfügbar
Vielen Dank für die Aufmerksamkeit Fragen?