Virtualisierung
📝❗ FiSi AP2 Analyse Winter 2023 Aufgabe 1b
Einführung
Virtualisierung erlaubt mehrere Systeme auf des selben physischen Host-Hardware gleichzeitig auszuführen. Aus Sicht des Gast-Systeme verhält sich die virtualisierte Umgebung gleich oder zumindest ähnlich wie die physische Hardware.
Virtuelle Maschinen (VMs) basieren auf der Virtualisierung (Multiplexing) jeder einzelnen Hardwarekomponente (Prozessorvirtualisierung, Speichervirtualisierung, Netzwerkvirtualisierung, …).
Die Implementierung kann jeweils als Emulation in Software (flexibel aber ineffizient), in Hardware oder einer Kombination von beidem erfolgen. Moderne Prozessoren verfügen über geeignete Erweiterungen um Virtualisierung in Hardware effizient zu unterstützen. Die Kontrolle erfolgt üblicherweise in Software durch den sogenannten Hypervisor (auch Virtual-Machine-Monitor genannt), welcher das Betriebssystems des Hosts ergänzt (Typ-2) oder ersetzt (Typ-1).
Für viele Anwendungsfälle ist eine Isolation von Systemen erwünscht, jedoch keine Virtualisierung von vollständigen Maschinen notwendig.Für diesen Fall können leichtgewichtige Virtual Environments (VE) verwendet werden, deren Funktionalität direkt vom Betriebssystem ohne zusätzlichen Hypervisor bereitgestellt wird. Historisch sind Jails wichtig. Heute sind Container nach dem OCI-Standart, insbesondere Docker sehr verbreitet.
Hypervisor-Typen und Container-Arten
flowchart TB Virtualisierung --> VirtualMachine VirtualMachine --> Typ-1-Hypervisor VirtualMachine --> Typ-2-Hypervisor Virtualisierung --> VirtualEnvironment VirtualEnvironment --> Systemcontainer VirtualEnvironment --> Anwendungscontainer
Typ-1-Hypervisor | Typ-2-Hypervisor | Systemcontainer | Anwendungscontainer | |
---|---|---|---|---|
Hypervisor | (native/bare-metal: Hypervisor ersetzt/ist Host-Kernel) | (hosted: Hypervisor läuft auf dem Host-OS) | Teil der Host-OS-Funktionalität | Host-OS + Container-Dienst |
Gast | Als Gast-Betriebssystem muss ein speziell angepasster Kernel verwendet werden, der vom Hypervisor weiß und diesen nutzt. | Beliebiges OS kann als Gast verwendet werden. Aus Sicht des Gast-Kernels sieht die VM wie Hardware aus. | Linux-Distribution in chroot-Umgebung auf Host-Kernel (Ohne Gast-Kernel) | einzelne isolierte Anwendung |
Eigenes Init-System | Ja | Ja | Ja | Nein |
Isolation | ++ | +++ | + | + |
Performance | ++ | + | +++ | +++ |
Leichtgewichtig | + | + | ++ | +++ |
Beispiel | XEN, Hyper-V | KVM, VirtualBox | LXC, FreeBSDjail | Docker, Podman |
Einsatzgebiete | dedizierter Virtualisierungsserver | VMs auf bestehendem OS ermöglichen | leichtgewichtige VEs für viele parallele Linux-Systeme | leichtgewichtige VEs für isolierte Anwendungen |
📝❗ FiSi AP2 Analyse Sommer 2022 Aufgabe 4
Einsatzzwecke
- Isolation
- => Administrierbarkeit durch Modularisierung (divide and conquer)
- Sicherheit (*💬)
- Hardware-Einsparung (bessere Auslastung der Server durch dynamische Lastverteilung)
- Wirtschaftlichkeit
- Green-IT
- Migration / Live migration
- Während geplanter Wartung
- Wenn mehr Ressourcen benötigt werden => dynamische Skalierung
- Failover bei Ausfällen
- günstiger Betrieb von Diensten im Cluster
- Verfügbarkeit durch Redundanz
- Skalierbarkeit
Potentielle Nachteile
- Effizienzverlust durch Virtualisierungsoverhead
- Lastspitzen in einer VM können je nach Ressourcentrennung Einfluss auf andere VMs haben
- Herausforderung für Datenschutz/-sicherheit => Sandbox escape
- Fragen bezüglich Lizenzierung
- Zusatzaufwand (wenn kein geeignetes Automatiserungskonzept vorhanden)