13.Vorlesung Systemsoftware (SYS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Robotik 11.1.2008
Heute Virtualisierung Vorteile von Virtualisierung Nachteile und Grenzen von Virtualisierung Konzepte der Virtualisierung Applikationsvirtualisierung Hardware-Emulation Virtual Machine Monitor Paravirtualisierung Hardware-Virtualisierung Betriebssystem-Virtualisierung (Container) 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 2
Virtualisierung Bei der Virtualisierung werden die Ressourcen eines Rechnersystems aufgeteilt und können von mehreren unabhängigen Betriebssystem- Instanzen genutzt werden. Es gibt in der Virtualisierung mehrere grundsätzlich verschiedene Konzepte und Technologien, die den Begriff Virtualisierung verwenden. Eine virtuelle Maschine ist ein nachgebildeter Rechner, der in einer abgeschotteten Umgebung auf einer realen Maschine läuft. Jede virtuelle Maschine verhält sich wie ein vollwertiger Computer mit eigenen Komponenten, wie CPU, Hauptspeicher, Festplatten, Grafikkarte, Netzwerkkarten, usw. Auf einige Hardwarekomponenten des Computers kann eine virtuelle Maschine direkt zugreifen. = CPU und der Hauptspeicher 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 3
Virtualisierung Andere Hardwarekomponenten (= komplett emuliert. u.a. Netzwerkkarten) werden In einer virtuellen Maschine kann ein Betriebssystem mit Applikationen genau wie auf einem realen Computer installiert werden. die Software merkt nicht, dass Sie sich in Wirklichkeit in einer virtuellen Maschine befindet Anforderungen des Gast-Betriebssystems werden von diesem unbemerkt von der Virtualisierungssoftware abgefangen und auf die real vorhandene oder emulierte Hardware umgesetzt. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 4
Gründe für Virtualisierung (1) Bessere Ausnutzung der Hardware. Serverkonsolidierung. Zusammenlegen vieler virtueller Server auf möglichst wenigen physikalischen Servern. Kostensenkung bei Hardware, Verbrauchskosten (Strom, Külung), Stellplätze, Administration, usw. Vereinfachte Administration Anzahl der physischen Server reduziert sich. Ausgereifte Managementwerkzeuge können eingesetzt werden. Vereinfachte Bereitstellung Neue Infrastrukturen und Server können innerhalb Minuten manuell oder automatisch erzegt werden. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 5
Gründe für Virtualisierung (2) Maximale Flexibilität. Die gesamte virtuelle Maschinenumgebung wird in einer Datei gespeichert. Dadurch können virtuelle Maschinen leicht vervielfältigt und gesichert werden. Snapshots vom aktuellen Zustand einer virtuellen Maschine können erzeugt und zu einem späteren Zeitpunkt wieder hergestellt werden. Höhere Sicherheit Virtuelle Maschinen sind gegenüber anderen virtuellen Maschinen und dem Host-System isoliert. Unternehmenskritische Anwendungen können in einer virtuellen Maschine gekapselt und so in einer sicheren Umgebung laufen. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 6
Gründe für Virtualisierung (3) Service Levels Neue Möglichkeiten zur Vereinbarung garantierter Verfügbarkeit von Ressourcen oder Diensten. Beim Ausfall einer virtuellen Maschine bleiben die übrigen virtuellen Maschinen und der Host davon unberührt Optimierung von Software-Tests und Software-Entwicklung Gleichzeitiger Betrieb mehrerer Betriebssysteme auf einem Rechnersystem. Zusätzliche Testumgebungen können ohne zusätzliche Hardware schnell aufgesetzt werden. Unterstützung alter Anwendungen Legacy-Betriebssysteme oder Legacy-Anwendungen, für die keine Hardware mehr zu bekommen ist, können reanimiert werden. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 7
Nachteile und Grenzen virtueller Maschinen Virtuelle Maschinen bieten eine geringere Performance als reale Maschinen. Nicht jede reale Hardware kann aus einer virtuellen Maschine angesprochen werden oder von dieser emuliert werden. Hardwaredongles sind beispielsweise ein Problem. Bei der Serverkonsolidierung können virtuelle Maschinen einen Single Point of Failure darstellen. Beim Ausfall eines Hosts würden mehrere virtuelle Server ausfallen. Ausfallkonzepte und Redundante Installationen sind notwendig. Virtualisierung ist komplex. Zusätzliches Know-how ist notwendig. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 8
Virtualisierungskonzepte Ist von Virtualisierung die Rede, ist immer mindestens eines der folgenden Konzepte gemeint: Applikationsvirtualisierung Hardware-Emulation Virtueller Maschinen-Monitor Paravirtualisierung Hardware-Virtualisierung Betriebssystem-Virtualisierung bzw. Container 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 9
Applikationsvirtualisierung Bei der Applikationsvirtualisierung werden Anwendungen lokal, unter Verwendung lokaler Ressourcen in einer virtuellen Umgebung ausgeführt, die alle Komponenten bereitstellt, die die Anwendung benötigt. Eine Virtuelle Maschine befindet sich zwischen der auszuführenden Anwendung und dem Betriebssystem. Das populärste Beispiel für Applikationsvirtualisierung ist die Java Virtual Machine (JVM). Diese ist der Teil der Java-Laufzeitumgebung (JRE), der für die Ausführung des Java-Bytecodes verantwortlich ist. Die JVM ist für die Java-Programme die Schnittstelle zum Rechnersystem und dessen Betriebssystem. Vorteil: Plattformunabhängigkeit. Nachteil: Geringere Ausführungsgeschwindigkeit gegenüber nativer Programmausführung. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 10
Prinzip der Java Virtual Machine (JVM) Java VM 01001011... Programm.java Programm.class Linux/UNIX Compiler Java VM MacOS 01011100... Java VM Windows 01101001... Der Java-Compiler javac übersetzt den Quellcode in architekturunabhängige.class-dateien, die Bytecode enthalten, der in der Java Virtual Machine lauffähig ist. Das java-programm startet eine Java- Applikation in einer Instanz der Java Virtual Machine. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 11
Hardware-Emulation Die Hardware-Emulation hat nur wenig mit Virtualisierung gemein. Bei der Emulation wird in den meisten Fällen versucht, die komplette Hardware eines Rechnersystems nachzubilden und so einem unveränderten Betriebssystem, das für eine andere Hardwarearchitektur (CPU) ausgelegt ist, den Betrieb zu ermöglichen. Eine Ausnahme ist das Projekt Wine. Wine emuliert keine Hardware, sondern nur die Schnittstellen eines Windows-Betriebssystems. Der große Nachteil der Emulation ist, dass die Entwicklung sehr aufwendig ist und die Ausführungsgeschwindigkeit in der Regel deutlich geringer ist, gegenüber Virtualisierungslösungen. Beispiele für Emulatoren: Bochs, QEMU, PearPC, Wabi, DOSBox, Microsoft Virtual PC (ist in der Version für MacOS-X ein x86-emulator). 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 12
Schema der Emulation 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 13
Eine Auswahl an Emulatoren Name Lizenz Host Emulierte Architektur Gast-System Bochs v2.3.6 LGPL Linux, Solaris, MacOS x86 Linux, DOS, BSD, Windows, IRIX, BeOS Windows, BeOS QEMU v0.9.0 GPL Linux x86, PowerPC, ARM, Linux, MacOS-X, MIPS, Sparc DOSBox v0.72 GPL Linux, Windows, OS/2, x86 DOS BSD, BeOS, MacOS-X DOSEMU v1.4.0 GPL Linux x86 DOS Windows, BSD PearPC v0.4.0 GPL Linux, MacOS-X PowerPC Linux, MacOS-X, Windows Baseilisk II v0.9-1 GPL Linux, diverse UNIX, 680x0 MacOS 8.1 Windows NT4, BeOS, Mac OS, Amiga OS Wabi v2.2 proprietär Linux, Solaris x86 Windows 3.x MS Virtual PC v7 proprietär MacOS-X x86 Windows, (Linux) M.A.M.E. v0.121 MAME-Lizenz Linux, Windows, DOS, diverse Arcade diverse Arcade BeOS, BSD, OS/2 BSD Die Tabelle erhebt keinen Anspruch auf Vollständigkeit! 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 14
Virtual Machine Monitor Beim Virtuellen Maschinen-Monitors (VMM) werden die Hardwareressourcen des Rechners durch Hardware-Emulation oder Hardware-Virtualisierung an die virtuellen Maschinen intelligent verteilt. Jedes Gast-Betriebssystem hat einen eigenen virtuellen Rechner mit CPU, Hauptspeicher, Laufwerken, Netzwerkkarten, usw. zur Verfügung. Vorteile der Virtualisierung mittels VMM: Kaum Änderungen an Host- und Gast-Betriebssystemen erforderlich. Zugriff auf die wichtigesten Ressourcen wird nur durchgereicht. Dadurch fast native Verarbeitungsgeschwindigkeit der Gast- Betriebssysteme. Hohe Flexibilität. Jedes Gast-Betriebssystem hat seinen eigenen Kernel. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 15
Schema des Virtual Machine Monitor 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 16
Nachteil des Virtual Machine Monitor (1) Auf x86-kompatiblen Prozessoren führt das Konzept des VMM zu (im Vergleich zur Emulation geringen) Geschwindigkeitseinbußen. x86-kompatible CPUs enthalten vier Privilegienstufen zum Speicherschutz, um Stabilität und Sicherheit zu erhöhen. Die verbreiteten Betriebssysteme nutzen nur Ring 0 und 3. Nur Ring 0 hat vollen Zugriff auf die Hardware. In Ring 0 läuft nur der Betriebssystemkern. In Ring 3 laufen die Applikationen. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 17
Nachteil des Virtual Machine Monitor (2) Wechsel zwischen den Ringen erfordern einen Kontextwechsel, der Rechenzeit verbraucht. Wenn eine Applikation im Gast-Betriebssystem die Ausführung eines priviligierten Befehls anfordert, liefert der VMM eine Ersatzfunktion und diese weist die Ausführung des Befehls über die Kernel-API des Host- Betriebssystems an. = Geschwindigkeitseinbußen 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 18
Beispiele für den Virtual Machine Monitor Die bekanntesten Beispiele für Virtualisierungslösungen, die auf dem Konzept des Virtual Machine Monitor basieren gehören: VMware Server, VMware Workstation und VMware Fusion Microsoft Virtual PC (in der Version für x86) Parallels Desktop und Parallels Workstation VirtualBox Kernel Virtual Machine (KVM) Mac-on-Linux (MoL) 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 19
Paravirtualisierung Bei der Paravirtualisierung wird keine Hardware virtualisiert oder emuliert. Virtuell gestartete Betriebssysteme verwenden eine abstrakte Verwaltungsschicht, den Hypervisor, um auf die physischen Ressourcen wie Speicherplatz, Ein-/Ausgabegeräte und Netzwerkinterfaces zuzugreifen. Der Hypervisor ist quasi ein auf ein Minimum Metabetriebssystem, das die Hardwareressourcen unter den Gastsystemen verteilt, so wie ein Betriebssystem dieses unter den laufenden Prozessen tut. Bei Paravirtualisierung steht den Gast-Betriebssystemen keine emulierte Hardwareebene zur Verfügung, sondern eine API. Beispiel: Xen, Xen Enterprise, VMware ESX Server 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 20
Paravirtualisierung Nachteil: Die Kernel der Gast-Betriebssysteme müssen speziell für den Betrieb in einem paravirtualisierten Kontext angepasst sein. Die Rechteinhaber proprietärer Betriebssysteme lehnen eine Anpassung aus strategischen Gründen häufig ab. = Paravirtualisierung nur mit OpenSource-Betriebssystemen. Vorteil: Es werden die Geschwindigkeitseinbußen vermieden, die beim Konzept des Virtual Machine Monitor vermieden. Die Anpassung der Betriebssysteme vereinfacht den Aufbau der Virtuellen Maschine. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 21
Schema der Paravirtualisierung 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 22
Hardware-Virtualisierung (1) Sollen unmodifizierte Betriebssysteme (z.b. Windows) mit Xen oder VMware ESX Server paravirtualisiert laufen, muss der Prozessor die Virtualisierung unterstützen. Aktuelle CPU-Generationen von Intel und AMD implementieren Virtualisierungserweiterungen, die unter dem Begriff Hardware- Virtualisierung zusammengefasst werden können. Kern der Neuerung ist eine Überarbeitung der Privilegienstruktur in der Prozessarchitektur. Die Ringstruktur des Speicherzugriffsschutzes wurde durch ein Aufsplitten von Ring 0 um eine Ebene, die neue Hypervisor-Schicht, erweitert. Virtuellen Betriebssysteminstanzen steht so der gewohnte Zugriff auf die Befehle von Ring 0 zur Verfügung. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 23
Hardware-Virtualisierung (2) Intel bezeichnet die Technologie als Intel Virtualization Technology bzw. Intel VT. In der Entwicklung hatte sie den Namen Vanderpool. In aktuellen Intel-CPUs ist die Vanderpool-Unterstützung implementiert. AMD bezeichnet die Technologie als Pacifica bzw. AMD-V und integriert sie seit Juni 2006 in allen AMD-Prozessoren für Desktop (Athlon 64), Notebooks (Turion) und Server (Opteron). Das aktuelle Xen Version 3 nutzt Hardware-Virtualisierung. Hier können mehrere, unabhängige und unmodifizierte Instanzen von Windows 2000, 2003 Server, XP und Vista gestartet werden. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 24
Betriebssystem-Virtualisierung bzw. Container (1) Bei der Betriebssystem-Virtualisierung, die auch als Container oder Jails bezeichnet wird, laufen unter einem Kernel mehrere voneinander abgeschottete Systemumgebungen. Es wird kein zusätzliches Betriebssystem, sondern eine isolierte Laufzeitumgebung virtuell in einem geschlossenen Container erzeugt. Nach außen treten die virtuellen Umgebungen wie eigenständige Systeme auf. Alle laufenden Anwendungen verwenden den gleichen Kernel. Die Applikationen sehen nur die Applikationen, mit denen sie sich in einer virtuellen Umgebung befinden. Vorteile der Betriebssystem-Virtualisierung ist ein geringer Ressourcenbedarf und eine hohe Performance, da der Kernel in gewohnter Weise die Hardware des Systems verwaltet. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 25
Betriebssystem-Virtualisierung bzw. Container (2) Nachteil: Alle virtuellen Umgebungen nutzen den gleichen Kernel. So können nur mehrere unabhängige Instanzen eines Betriebssystemes gestartet werden. Es ist nicht möglich verschiedene Betriebssysteme gleichzeitig zu verwenden. Beispiele für Betriebssystem-Virtualisierung sind: Containertechnologie von SUN Solaris OpenVZ für Linux Linux-VServer FreeBSD Jails. Virtuozzo (kommerzielle Variante von OpenVZ) FreeVPS Besonders Internet-Service-Provider, die (virtuelle) Root-Server anbieten, nutzen diese Art der Server-Virtualisierung, da praktisch keine Performance verloren geht. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 26
Schema der Betriebssystem-Virtualisierung 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 27
Fazit zur Virtualisierung Der Einsatz von Virtualisierungstechnologien bietet viele Vorteile und kaum Nachteile. Hardware-Emulation Virtualisierung! Die Verwendung eines Virtuellen Maschinen-Monitors (VMM) ist aktuell der Standard. Die Verwendung von Paravirtualisierung wird durch die neuen Prozessor- Generationen und Xen zunehmen. Virtualisierung bietet ein großes Einsparpotential, eröffnet aber auch neue Sicherheitslücken und Angriffspunkte. Virtualisierung ist aktuell eines der goßen Hype-Themen in der Informatik und wird in den nächsten Jahren eine wachsende Rolle spielen. 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 28
Nächste Vorlesung: 18.1.2008 13.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 29