Praktische Einführung mit Virtualisierung
Stefan Bosse
Universität Koblenz - FB Informatik
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen ::
Abstraktion von Rechnern, Betriebssystemen und Software
Virtuelle Maschinen und Virtualisierung sind zentraler Bestandteil im Betrieb moderner Rechneranlagen und Bestandteil von Betriebssystemen
Die Virtualisierung von Rechnerressourcen bringt in verschiedener Hinsicht neue Nutzen. Sie kann auf verschiedenen Stufen erfolgen und ist bereits teilweise in den Konzepten des Prozessmodells und des virtuellen Speichers realisiert.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Anwendungsbereiche
Eine Reihe von Virtualisierungsansätzen im Umfeld des Betriebssystems:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Taxonomie der Virtuellen Maschinen
Es können zwei wesentliche Klassen unterschieden werden:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Taxonomie der Virtuellen Maschinen
VM,Smith,2005
Übersicht und Klassendiagramm der VM Architekturen und Methodem
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Virtualisierung
VM,Smith,2005
Virtualisierung. Formal ist Virtualisierung die Konstruktion eines Isomorphismus zwischen einem Gastsystem und einem Host; e' ◦ V(Si) = V ◦ e(Si). Dabei ist e eine Funktion im Gastsystem, die den Zustand Si in Sj überführt. Die Virtualisierung V "übersetzt" den Zustandsübergang in das Hostsystem. Im Host gibt es eine entsprechende Abfolge von Operationen e', die eine äquivalente Änderung des Hostzustands vornimmt (Änderungen S'i zu S'j).
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Virtualisierung
VM,Smith,2005
Implementierung virtueller Festplatten. Virtualisierung bietet eine andere Schnittstelle und / oder Ressourcen auf derselben Abstraktionsebene. Das Dateisystem ist Virtualisierung!
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Sandboxing (virtuelles Laufzeitsystem)
Jede Sandbox ist ein separater User Space, der sich mit anderen Sandboxen lediglich den geschützten Kernel Space teilt.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Sandboxing (virtuelles Laufzeitsystem)
Die im Unix-Bereich klassische Lösung der chroot-Umgebung kann nicht dieselbe Isolation gewähren wie das Sandboxing-Konzept, da die damit realisierbare Isolierung unvollständig ist.
Anwendung findet das Sandboxing bei Anbietern von Virtual Hosting, zur erhöhten Isolierung kritischer Applikationen bei sich wechselseitig nicht trauenden Systembenutzern, zur feineren Kontrolle der Ressourcenzuteilung und zur Ermöglichung einfacher Migrierungen von Applikationen.
Im Vergleich zu Lösungen mit einem Virtual Machine Monitor ist der Zusatzaufwand gering, da stets dieselbe Systemprogrammierschnittstelle genutzt wird und spezielle Hardware unnötig ist. Allerdings wird nicht dieselbe Flexibilität erreicht, da nur Applikationen für dieselbe Betriebssystemplattform lauffähig sind.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Sandboxing (virtuelles Laufzeitsystem)
Ein Schritt weiter: Ein ganzer Rechner wird aufgeteilt und wird mehreren Betriebssystemen und Betreibern (Kunden) zur Verfügung gestellt.
Beispiel: https://edu-9.de ist Virtual Private Server Hosting!
Auf einem virtuellen privaten Server wird eine eigene Kopie eines Betriebssystems (OS) ausgeführt, mit möglicherweise Zugriff auf die Superuser-Ebene dieses Betriebssysteminstanz, sodass sie nahezu jede Software installieren können, die auf diesem Betriebssystem ausgeführt wird.
Für viele Zwecke entspricht es funktional einem dedizierten physischen Server und kann softwaredefiniert einfacher erstellt und konfiguriert werden (z.B. webbasierte Installationd eines Betriebssystems).
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: Sandboxing (virtuelles Laufzeitsystem)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Eine virtuelle Systemmaschine. Virtualisierungssoftware übersetzt die von einer Hardwareplattform verwendete ISA in eine andere und bildet eine virtuelle Systemmaschine, die in der Lage ist, eine Systemsoftwareumgebung auszuführen, die u.U. auch für eine andere Hardware entwickelt wurde.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Beispiele für Anwendungen virtueller Maschinen. (a) Emulieren eines Befehlssatzes mit einem anderen; (b) Replizieren einer virtuellen Maschine, so dass mehrere Betriebssysteme gleichzeitig unterstützt werden können; (c) Komponieren von Software für virtuelle Maschinen zu einem komplexeren, flexibleren System.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Neben der Speichervirtualisierung ist heute die Bereitstellung virtueller Rechnerumgebungen durch einen Virtual Machine Monitor (VMM) bzw. Hypervisor die wichtigste Virtualisierungsform.
VMM-Typen: Ohne (bare metal) und mit zwischengeschalteten Betriebssystem
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Ein VMM kann auf zwei Arten realisiert werden, die als Typ-I- und Typ-II-VMM bezeichnet werden.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Ein VMM muss nach Popek/Goldberg (1974) drei Kerneigenschaften unterstützen:
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
In der Anfangszeit der VMM in der PC-Welt fehlte eine passende Hardwareunterstützung, sodass sich der VMM und das in der VM ablaufende Betriebssystem den Kernmodus teilten.
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Zustandsmodell für Privilegiensystem der CPU
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Was passiert nun, wenn ein Programm im Benutzermodus eine privilegierte Instruktion ausführen will? Die CPU wird in diesem Fall den Befehl nicht ausführen, sondern einen Software-Interrupt (trap) auslösen. Wird ein VMM eingesetzt, so läuft nur der VMM im privilegierten Modus. Aller restlicher Code, einschließlich irgendwelcher Betriebssysteme, läuft im Benutzermodus. Die Unterscheidung eines Betriebssystems zwischen Benutzer- und Kernmodus wird nämlich durch den VMM ebenfalls virtualisiert.
Sichere Virtualisierung mittels Privilegiensystem: KM*: virtualisiertes Privilegien-Bit (pro VM)
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Einsatz von VMM für ...
VMM für die Serverzusammenführung (Konsolidierung) auf einer Hardware
Stefan Bosse - Grundlagen der Betriebssysteme - Modul V Virtuelle Machinen :: System-VM
Einsatz von VMM für ...