# Virtualisierung > Technologie, die es ermöglicht mehrere virtuelle Instanzen auf einem einzigen > physischen System auszuführen > > Spielt eine entscheidende Rolle bei der effizienten Nutzung von Ressourcen, der Erhöhung von > Flexibilität und Skalierbarkeit sowie der Verbesserung der Verfügbarkeit von Anwendungen und Daten ## Vorteile der Virtualisierung - **Ressourceneffizienz** - mehrere VMs können auf einem physischen Server laufen - **Isolation** - VMs sind voneinander isoliert - verbessert Stabilität und Sicherheit - **Snapshot- und Wiederherstellungsfunktion** - **Portabilität** - VMs können auf verschiedenen physischen Servern verschoben und ausgeführt werden ## Virtualisierungstypen ### Hypervisor-basierte Virtualisierung - [Hypervisor](https://www.youtube.com/watch?v=LMAEbB2a50M) (~Virtual Machine Monitor) - wird direkt auf Hardware ausgeführt - ermöglicht Ausführung mehrerer Betriebssysteme als VMs #### Typ 1 (Bare-Metal-Hypervisor) - direkte auf Hardware installiert - benötigt kein Host-Betriebssystem - _bspw.: VMware ESXi, Microsoft Hyper-V_ #### Typ 2 (Hosted-Hypervisor) - Läuft auf Host-Betriebssystem - _bspw: VMware Workstation, Oracle VirtualBox_ ### Container-Virtualisierung - Container teilen sich Kernel des Host-Betriebssystems - bieten leichtgewichtige Möglichkeit Anwendungen zu isolieren und auszuführen ## Partitionierung von VMs - Aufteilung einer _physischen oder virtuellen Ressource_ in mehrere logische Einheiten (Partitionen) - ![image_248.png](image_248.png) - können unterschiedliche Betriebssysteminstanzen/Anwendungen beherbergen - Vorteile u.a. Ressourcenisolierung, verbesserte Sicherheit, bessere Verwaltbarkeit ## Hardware-Emulation - Nachbildung oder Simulation von Hardware auf einer anderen Hardware- oder Softwareplattform - Replikation von Hardware-Komponenten, Geräten oder ganzen Systemen auf einer virtuellen Ebene - ![image_249.png](image_249.png) - **Entwicklung neuer Hardware** - Simulation von Hardware-Designs bevor tatsächliche Hardware erstellt wird - **Fehlerbehebung und Debugging** - Identifizierung von Fehlern in Hardware-Komponenten oder -Systemen - **Testen von Software** ### Hardware-Emulator vs. Simulator | **Emulator** | **Simulator** | |-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------| | Reproduziert Verhalten der tatsächlichen Hardware genau | Ahmt Verhalten von Hardware nach | | arbeitet auf niedriger Ebene, indem er Hardwarekomponenten genau nachbildet | Arbeitet auf höherer Ebene, Konzentration auf Funktionalität statt exakter Nachbildung | ## Anwendungsvirtualisierung - Einzelne anwendung in virtueller Umgebung ausführen, die alle benötigten Komponenten bereitstellt - ![image_250.png](image_250.png) - virtuelle Maschine befindet sich zwischen Anwendung und Betriebssystem - _bspw.: Java Virtual Machine (JVM)_ ## Betriebssystem-Virtualisierung - [Container](https://www.youtube.com/watch?v=TvnZTi_gaNc) laufen unter ein und demselben BS-Kern - mehrere abgeschottete, identische Systemumgebungen - ![image_251.png](image_251.png) - bei Start einer VM wird im Gegensatz kein zusätzliches BS gestartet - Erzeugung isolierte Laufzeitumgebung ## Vollständige Virtualisierung - Hypervisor bietet einer VM eine komplette virtuelle PC-Umgebung inkl. eigenem BIOS - ![image_252.png](image_252.png) - Gast-BS erhält eigene VM mit virtuellen Ressourcen - Prozessor(en) - Hauptspeicher - Laufwerke - Netzwerkkarten - etc. - Kern der Lösung ist Virtueller Maschinen-Monitor (VMM) - Aufgabe ist Zuweisung der Hardwareressourcen an VMs ## Virtualisierungslösungen - [docker](https://www.docker.com) - [vmware](https://www.vmware.com) - [virtualbox](https://www.virtualbox.org) - [getutm (mac)](https://mac.getutm.app)