Service Computing Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010
Themenüberblick Historische Entwicklung Warum braucht man Virtualisierung? Rechnervirtualisierung Speichervirtualisierung Netzwerkvirtualisierung Ausblick in die Zukunft
Historische Entwicklung Erste Forschungen in den 50er OS/360 für IBM System/360 (1964) Multiprogramming: OS/360 MVS OS/390 z/OS Java VM, VPNs, Storage Plattformvirtualisierung: VMware, Xen, KVM, … Virtualisierung gibt es sehr lange für viele Anwendungen starke Zunahme in den letzten 5 (?) Jahren Warum?
Warum nutzt man Virtualisierung? Auslastung: Serverkonsolidierung Isolation: Auswirkung von Fehlern auf virtuelle Ressource beschränkt Flexibilität: unterschiedliche Anwendungen/Betriebssysteme teilen sich Hardware; gleichzeitige Nutzung; Konfiguration On-demand: virtuelle Ressource wird bei Bedarf “erzeugt” oder “entfernt” Migration: Fehlertoleranz; Live-Updates; Leistungsoptimierung Research & Development: Forschung an Betriebssysteme; Testen/Debugging neuer Funktionalität
Begriff Virtualisierung … bedeutet Abstraktion von Computer-Ressourcen Virtueller Hauptspeicher: einheitlicher Zugriff auf / kontinuierliche Adressierung von physisch getrennten Speichern Speichervirtualisierung: Disks, Bänder Netzwerkvirtualisierung: VPNs, … Datenbankvirtualisierung Virtual Machine: Implementierung eines Computers in Software Plattformvirtualisierung (später mehr) & Applikationsvirtualisierung
Plattformvirtualisierung Abstraktionsschicht “zwischen” Betriebssystem und “physischen” (genauer Plattform-) Ressourcen Full virtualization: Übersetzung von Instruktionen, HW-Traps Unmodifiziertes Gast-OS lauffähig Erste Implementierung IBM CP-40 / CP-67 (1966) Weitere Bsp.: VirtualBox, VMware Workstation, Parallels, QEMU, …
Plattformvirtualisierung (Fortsetzung) Hardware-assisted virtualization: CPU-Traps für Virtual Machine Monitor unmodifiziertes Gast-OS Erstes System: IBM System/370 (1972) mit VM/370 OS Weitere Bsp.: Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox and Parallels Workstation
Plattformvirtualisierung (Fortsetzung) Partial virtualization: Teilweise Abstraktion der Hardware (insbesondere Adressraumvirtualisierung) für ausgewählte Applikationen (nicht für mehrere parallele Gast-OSes) Nicht so bedeutend, aber wichtiger Schritt in Historie Bsp.: IBM M44/44X, MVS, Commodore 64
Plattformvirtualisierung (Fortsetzung) Paravirtualization: Abstraktion nur ähnlich zu phys. Ressourcen bzw. API erfordert modifiziertes Gast-OS (welches API nutzt) Bsp.: frühe Versionen von Xen, IBM LPAR, Win4Lin 9x, z/VM, … OS-level virtualization: Host-OS erlaubt mehrere User Space-Instanzen OS-Instanzen nutzen meist dasselbe OS wie der Host Erste Implementierung: FreeBSD jails Bsp.: Solaris Containers, OpenVZ, Linux-Vserver, AIX Workload- Partitions, Parallels Virtuozzo Containers, iCore Virtual Accounts