zusammenfassungen/Writerside/topics/BS/12_Virtualisierung.md
David Schirrmeister 5a2ce97a55 update
2024-05-22 07:50:20 +02:00

91 lines
4.0 KiB
Markdown

# 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)