17.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 15.6.2007
Wiederholung vom letzten Mal Verschiedene Dateisysteme Minix, ext2, FAT12/16/32, NTFS Journaling Dateisysteme ext3, ext4, ReiserFS Defragmentierung 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 2
Heute Virtualisierung Vorteile von Virtualisierung Nachteile und Grenzen von Virtualisierung Konzepte der Virtualisierung Applikationsvirtualisierung Hardware-Emulation Virtual Machine Monitor Paravirtualisierung Userland-Virtualisierung (Container) Hardware-Virtualisierung 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 3
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 der Hardwarekomponenten des Computers kann eine virtuelle Maschine direkt zugreifen. Beispiele sind hier die CPU und der Hauptspeicher. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 4
Virtualisierung Andere Hardwarekomponenten, wie beispielsweise die Netzwerkkarten, werden komplett emuliert. 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 unbemerkt von der Virtualisierungssoftware abgefangen und auf die real vorhandene oder emulierte Hardware umgesetzt. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 5
!!! Brainstorming!!! Was sind die Gründe bzw. Vorteile der Virtualisierung? 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 6
Gründe für Virtualisierung (1) Vorteile der Virtualisierung sind immer eine bessere Ausnutzung der Hardware und maximale Flexibilität, sowie eine höhere Sicherheit, denn die virtuellen Maschinen sind gegenüber anderen virtuellen Maschinen und dem Host-System isoliert. Im Falle eines Ausfalls einer virtuellen Maschine bleiben die übrigen virtuellen Maschinen und die Host-Maschine davon unberührt. Da die gesamte virtuelle Maschinenumgebung in einer Datei gespeichert wird, können virtuelle Maschinen leicht bei Bearf vervielfältigt und gesichert werden. Es ist auch möglich Snapshots vom aktuellen Zustand einer virtuellen Maschine zu erzeugen und zu einem späteren Zeitpunkt zu diesem Zustand zurückzukehren. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 7
Gründe für Virtualisierung (2) Im Desktop-Bereich wird Virtualisierung hauptsächlich zum gleichzeitigen Betrieb mehrerer Betriebssysteme auf einem Rechnersystem eingesetzt, was zu Platzersparnis und geringeren Verbrauchskosten (Stromverbrauch) führt. Im Server-Bereich wird Virtualisierung hauptsächlich zur Serverkonsolidierung eingesetzt. Dadurch können Kosten u.a. für Hardware, Verbrauchskosten (Strom, Külung), Stellplätze, Administration eingespart werden. Mit virtuellen Maschinen können Betriebssysteme, für die keine Hardware mehr zu bekommen ist, reanimiert werden. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 8
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. Gerade bei der Serverkonsolidierung können virtuelle Maschinen einen Single Point of Failure darstellen. Beim Ausfall eines Hosts würden mehrere virtuelle Server ausfallen. Hier sind Ausfallkonzepte und Redundante Installationen notwendig. Zusätzliches Know-how ist notwendig um sicher und stabil mit virtuellen Maschinen arbeiten zu können. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 9
Virtualisierungskonzepte Ist von Virtualisierung die Rede, ist immer mindestens eines der folgenden Konzepte gemeint: Applikationsvirtualisierung Hardware-Emulation Virtueller Maschinen-Monitor Paravirtualisierung Userland-Virtualisierung bzw. Container Hardware-Virtualisierung 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 10
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. Der große Vorteil der Applikationsvirtualisierung ist Plattformunabhängigkeit. Nachteilig ist die geringere Ausführungsgeschwindigkeit gegenüber nativer Programmausführung. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 11
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. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 12
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, dass keine Hardware, sondern nur die Schnittstellen eines Windows-Betriebssystems emuliert. 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, Microsoft Virtual PC (ist in der Version für MacOS-X ein x86-emulator). 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 13
Eine Auswahl an Emulatoren Name Lizenz Host Emulierte Architektur Gast-System Bochs v2.3 LGPL Linux, Solaris, MacOS x86 Linux, DOS, Windows, IRIX, BeOS Windows QEMU v0.9.0 GPL Linux x86, PowerPC, ARM, Linux, MacOS-X, MIPS, Sparc DOSBox v0.7.0 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 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.116 MAME-Lizenz Linux, Windows, DOS, diverse Arcade diverse Arcade BeOS, BSD, OS/2 BSD Diese Tabelle erhebt keinen Anspruch auf Vollständigkeit! 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 14
Schema der Emulation Anwendung Gast-Betriebssystem Hardware-Emulation Host-Betriebssystem Hardware 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 15
Virtual Machine Monitor Bei der Verwendung eines Virtuellen Maschinen-Monitors (VMM) werden die Hardwareressourcen des Rechners durch Hardware-Emulation oder Hardware-Virtualisierung an die virtuellen Maschinen intelligent verteilt. Jedem Gast-Betriebssystem wird ein eigener, kompletter Rechner mit CPU, Hauptspeicher, Laufwerken, Netzwerkkarten, usw. vorgegaukelt. Die großen Vorteile der Virtualisierung mittels VMM sind: Kaum Änderungen an Host- und Gast-Betriebssystemen erforderlich. Zugriff auf die wichtigesten Ressourcen wird nur durchgereicht. Das führt zu einer fast nativen Verarbeitungsgeschwindigkeit der Gast- Betriebssysteme. Hohe Flexibilität, da die Gast-Betriebssysteme alle ihren eigenen Kernel laufen haben. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 16
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 KVM MoL 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 17
Nachteil des Virtual Machine Monitor Auf Intel-kompatiblen Prozessoren führt das Konzept des VMM zu (im Vergleich zur Emulation geringen) Geschwindigkeitseinbußen. Intel-kompatible CPUs enthalten Mechanismen zum Speicherschutz und zur Kontrolle, die die Stabilität und Sicherheit bei der Programmausführung erhöhen sollen. Die Architektur Intel-kompatibler CPUs enthält vier Privilegienstufen. Nur der sogenannte Ring 0 (Supervisor Modus) hat vollen Zugriff auf alle vorhandenen Ressourcen. In Ring 0 läuft nur der Betriebssystemkern. In Ring 3 (User Modus) laufen den Anwendungs-Programme. Wenn eine Applikation im Gast-Betriebssystem, das die Ausführung eines priviligierten Befehls anfordert, liefert die VMM eine Ersatzfunktion und diese weist die Ausführung des Befehls über die Kernel-API des Host- Betriebssystems an. Das führt zu den Geschwindigkeitseinbußen. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 18
Schema des Virtual Machine Monitor Anwendung Anwendung Gast-Betriebssystem Gast-Betriebssystem Virtual Machine Monitor Host-Betriebssystem Hardware 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 19
Paravirtualisierung Bei der Paravirtualisierung wird keine Hardware virtualisiert oder emuliert. So sollen die Geschwindigkeitseinbußen, die beim Konzept des Virtual Machine Monitor entstehen vermieden werden. Virtuell gestartete Betriebssysteme verwenden eine abstrakte Verwaltungsschicht um auf die physischen Ressourcen wie Speicherplatz, Ein-/Ausgabegeräte und Netzwerkinterfaces zuzugreifen. Bei Paravirtualisierung steht den Gast-Betriebssystemen keine emulierte Hardwareebene zur Verfügung, sondern eine API. Nachteil: Die Kernel der Gast-Betriebssysteme müssen speziell für den Betrieb in einem paravirtualisierten Kontext angepasst sein. Beispiel: Xen, Xen Enterprise 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 20
Schema der Paravirtualisierung Anwendung Anwendung Modifiziertes Gast-Betriebssystem Modifiziertes Gast-Betriebssystem Hypervisor Hardware 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 21
Userland-Virtualisierung bzw. Container (1) Bei der Userland-Virtualisierung, die auch als Container oder Virtualisierung auf Betriebssystemebene bezeichnet wird, laufen unter einem Kernel mehrere voneinander abgeschottete Systemumgebungen, sogenannte Container oder Partitionen. Es wird kein zusätzliches Betriebssystem, sondern eine komplette, isolierte Laufzeitumgebung virtuell innerhalb eines geschlossenen Containers erzeugt. Alle laufenden Anwendungen verwenden den gleichen Kernel. Der virtuelle Kontext innerhalb der Userland-Virtualisierung erscheint den Gast-Betriebssystemen als isolierte Prozesshierarchie. Vorteile der Userland-Virtualisierung ist ein geringer Ressourcenbedarf und eine hohe Performance, da der Kernel in gewohnter Weise die Hardware des Systems verwaltet. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 22
Userland-Virtualisierung bzw. Container (2) Der Nachteil ist, dass alle virtuellen Umgebungen den gleichen Kernel verwenden. So können nur mehrere unabhängige Instanzen eines einzigen Betriebssystemes verwendet werden. Es ist nicht möglich verschiedene Betriebssysteme auf einem Rechnersystem gleichzeitig zu verwenden. Beispiele für Userland-Virtualisierung sind: Containertechnologie von SUN Solaris OpenVZ für Linux Linux-VServer FreeBSD Jails. Virtuozzo (kommerzielle Variante von OpenVZ) FreeVPS Besonders bei Internet-Service-Providern, die (virtuelle) Root-Server anbieten, ist diese Art und Weise der Server-Virtualisierung beliebt, da praktisch keine Performance verloren geht. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 23
Schema der Userland-Virtualisierung Anwendung Anwendung Virtuelles Betriebssystem Virtuelles Betriebssystem Host-Betriebssystem Hardware 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 24
Hardware-Virtualisierung (1) Aktuellste CPU-Generationen von Intel und AMD implementieren Virtualisierungstechnologien, die unter dem Begriff Hardware- Virtualisierung zusammengefasst werden kann. Kern der Neuerung ist eine Überarbeitung der Privilegienstruktur in der Prozessarchitektur. Die Ringstruktur des Speicherzugriffsschutzes wurde durch ein Aufsplitten von Ring 0 (Supervisor Modus) um eine Ebene, die neue Hypervisor- Schicht, erweitert. Virtuellen Betriebssysteminstanzen steht so der gewohnte Zugriff auf die Befehle von Ring 0 zur Verfügung. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 25
Hardware-Virtualisierung (2) Intel bezeichnet die Technologie als Intel Virtualization Technology oder kurz Intel VT. In der Entwicklung hatte sie den Namen Vanderpool. In allen aktuellen Intel-CPUs ist die Vanderpool- Unterstützung implementiert. AMD bezeichnet die Technologie als Pacifica oder 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. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 26
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. Paravirtualisierung ist durch die neuen CPU-Generationen und Xen stark im kommen. Virtualisierung bietet ein großes Einsparpotential, führt aber auch zu einen Bedarf an verläßlichen Hochverfügbarkeitslösungen und eröffnet 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. 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 27
Nächste Vorlesung: 21.6.2007 17.VorlesungBetriebssysteme (BTS) Hochschule Mannheim Folie 28