Einordnung der Virtualisierungssysteme: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 1: | Zeile 1: | ||
=Grundlagen= | =Grundlagen= | ||
*Hypervisor bildet | *Ein Hypervisor bildet eine abstrahierende Schicht zwischen der tatsächlich vorhandenen Hardware und den Gast-Betriebssystemen. | ||
* | *Er erlaubt es, eine virtuelle Umgebung zu definieren. | ||
*Diese dient | *Diese dient unabhängig von der tatsächlich vorhandenen Hardware als Basis für die Installation von (Gast-)Betriebssystemen. | ||
*Zwei Arten sind möglich | *Zwei Arten sind möglich: | ||
**Typ-1-Hypervisoren | **Typ-1-Hypervisoren | ||
**Typ-2-Hypervisoren | **Typ-2-Hypervisoren | ||
**Es gibt Mischformen. | **Es gibt Mischformen. | ||
= | =Emulation vs. Virtualisierung= | ||
== | ==Emulation== | ||
* | *Bei der Emulation baut das Hostsystem die Plattform des Gastes vollständig in Software nach. | ||
* | *Das umfasst die Hardware, die CPU-Befehle und die Firmware. | ||
* | *Jeder Befehl des Gastes wird gelesen und in mehrere Befehle für die echte CPU übersetzt. | ||
* | *Vorteil: Host- und Gastplattform sind unabhängig, z. B. ein ARM-Gast auf einem x86-Host. | ||
== | *Nachteil: Dieser Ansatz ist sehr langsam und ressourcenintensiv. | ||
* | *Beispiel: '''QEMU''' (Quick Emulator) ohne KVM emuliert alles, auch die CPU. | ||
*Die | ==Virtualisierung (hardwareunterstützt)== | ||
*Der | *Der Gast-Code läuft direkt auf der echten CPU und wird nicht übersetzt. | ||
*Die CPU muss dies unterstützen: Intel VT-x oder AMD-V. | |||
*Dadurch ist sie fast so schnell wie ein System ohne VM. | |||
*Nachteil: Gast und Host müssen dieselbe Plattform verwenden. | |||
*Beispiel: '''QEMU-KVM''' reicht die CPU an den Gast durch, QEMU emuliert nur noch die Geräte (Festplatte, Netzwerkkarte, Grafik). | |||
==Ablauf: VM-Entry und VM-Exit== | |||
*'''VM-Entry:''' QEMU sagt zu KVM „Starte meine VM“ (<code>ioctl(KVM_RUN)</code> auf <code>/dev/kvm</code>). KVM richtet die CPU ein und übergibt ihr den Gast-Code. | |||
*'''Der Gast rechnet allein:''' Millionen Befehle laufen direkt auf der CPU. KVM ist in dieser Zeit gar nicht aktiv. | |||
*'''VM-Exit:''' Will der Gast etwas, das er nicht selbst darf (z. B. Festplatte, Ports, Interrupts), stoppt die CPU ihn und springt automatisch zu KVM zurück. | |||
*KVM erledigt Timer und Interrupts selbst und gibt Gerätezugriffe an QEMU weiter. Danach folgt wieder ein VM-Entry. | |||
*'''Merke:''' KVM steht nicht zwischen jedem Befehl, das wäre wieder Emulation. KVM steht nur am Anfang und bei den Sonderfällen. | |||
;Vergleich Fahrschule | |||
*Der Fahrschüler (Gast) fährt selbst. | |||
*Der Fahrlehrer (KVM) greift nicht bei jeder Lenkbewegung ein, hat aber eine eigene Bremse und übernimmt, sobald es kritisch wird. | |||
*Bei Emulation würde der Fahrlehrer jede Lenkbewegung selbst ausführen. | |||
;Prüfen, ob die CPU Virtualisierung unterstützt | |||
grep -m1 -owE 'vmx|svm' /proc/cpuinfo | |||
*<code>vmx</code> = Intel VT-x, <code>svm</code> = AMD-V, keine Ausgabe = im BIOS/UEFI abgeschaltet oder nicht vorhanden. | |||
=Einordnung= | =Einordnung= | ||
==Typ-1-Hypervisor== | ==Typ-1-Hypervisor== | ||
* | *Nativer oder Bare-Metal-Hypervisor. | ||
* | *Wird direkt auf der Host-Hardware ausgeführt. | ||
* | *Verwaltet die Gast-Betriebssysteme. | ||
* | *Übernimmt selbst die Rolle des Host-Betriebssystems. | ||
*VM-Ressourcen werden direkt von der Hardware | *VM-Ressourcen werden direkt von der Hardware abgerufen. | ||
*Einsatz Rechenzentren von Unternehmen | *Einsatz in Rechenzentren von Unternehmen und anderen serverbasierten Umgebungen. | ||
{{#drawio:kvm-hyper-1}} | {{#drawio:kvm-hyper-1}} | ||
;Beispiele | ;Beispiele | ||
*VMware | *VMware ESXi | ||
*Hyper-V | *Microsoft Hyper-V | ||
==Typ-2-Hypervisor== | ==Typ-2-Hypervisor== | ||
*gehosteter Hypervisor | *Wird auch gehosteter Hypervisor genannt. | ||
* | *Läuft als Anwendung auf einem normalen Host-Betriebssystem. | ||
* | *Trennt die Gast-Betriebssysteme vom Host-Betriebssystem. | ||
*VM-Ressourcen werden beim Host-Betriebssystem angefordert und über die Hardware abgerufen. | *VM-Ressourcen werden beim Host-Betriebssystem angefordert und von diesem über die Hardware abgerufen. | ||
{{#drawio:kvm-hyper-2}} | {{#drawio:kvm-hyper-2}} | ||
;Beispiele | ;Beispiele | ||
*VMware Workstation | *VMware Workstation | ||
*Oracle VirtualBox | *Oracle VirtualBox | ||
==KVM | |||
*KVM Module werden zum Kernel | ==KVM (Typ 1)== | ||
*Die KVM-Module (<code>kvm</code>, <code>kvm_intel</code> bzw. <code>kvm_amd</code>) werden in den Linux-Kernel geladen. | |||
*Damit wird der Linux-Kernel selbst zum Hypervisor und sitzt direkt auf der Hardware. | |||
*Jede VM ist ein normaler QEMU-Prozess, den der Kernel wie jeden anderen Prozess einplant. | |||
*QEMU emuliert die Hardware der VM, die CPU reicht KVM durch. | |||
{{#drawio:kvm-hyper-3}} | {{#drawio:kvm-hyper-3}} | ||
;Beispiele | ;Beispiele | ||
*KVM | *KVM mit QEMU | ||
*Proxmox VE | |||
=Anmerkung= | =Anmerkung= | ||
* | *Red Hat verortet KVM als Typ-1-Hypervisor. | ||
*Weil Geräte über QEMU im Userspace laufen, wird KVM teilweise auch als Mischform gesehen. | |||
=Animation= | |||
*https://labs.xinux.net/hypervisor-schichten.html | |||
=Präsentation= | =Präsentation= | ||
*https://hedgedoc.xinux.net/p/Fts3cYoYx#/ | *https://hedgedoc.xinux.net/p/Fts3cYoYx#/ | ||
Aktuelle Version vom 11. Oktober 2026, 11:51 Uhr
Grundlagen
- Ein Hypervisor bildet eine abstrahierende Schicht zwischen der tatsächlich vorhandenen Hardware und den Gast-Betriebssystemen.
- Er erlaubt es, eine virtuelle Umgebung zu definieren.
- Diese dient unabhängig von der tatsächlich vorhandenen Hardware als Basis für die Installation von (Gast-)Betriebssystemen.
- Zwei Arten sind möglich:
- Typ-1-Hypervisoren
- Typ-2-Hypervisoren
- Es gibt Mischformen.
Emulation vs. Virtualisierung
Emulation
- Bei der Emulation baut das Hostsystem die Plattform des Gastes vollständig in Software nach.
- Das umfasst die Hardware, die CPU-Befehle und die Firmware.
- Jeder Befehl des Gastes wird gelesen und in mehrere Befehle für die echte CPU übersetzt.
- Vorteil: Host- und Gastplattform sind unabhängig, z. B. ein ARM-Gast auf einem x86-Host.
- Nachteil: Dieser Ansatz ist sehr langsam und ressourcenintensiv.
- Beispiel: QEMU (Quick Emulator) ohne KVM emuliert alles, auch die CPU.
Virtualisierung (hardwareunterstützt)
- Der Gast-Code läuft direkt auf der echten CPU und wird nicht übersetzt.
- Die CPU muss dies unterstützen: Intel VT-x oder AMD-V.
- Dadurch ist sie fast so schnell wie ein System ohne VM.
- Nachteil: Gast und Host müssen dieselbe Plattform verwenden.
- Beispiel: QEMU-KVM reicht die CPU an den Gast durch, QEMU emuliert nur noch die Geräte (Festplatte, Netzwerkkarte, Grafik).
Ablauf: VM-Entry und VM-Exit
- VM-Entry: QEMU sagt zu KVM „Starte meine VM“ (
ioctl(KVM_RUN)auf/dev/kvm). KVM richtet die CPU ein und übergibt ihr den Gast-Code. - Der Gast rechnet allein: Millionen Befehle laufen direkt auf der CPU. KVM ist in dieser Zeit gar nicht aktiv.
- VM-Exit: Will der Gast etwas, das er nicht selbst darf (z. B. Festplatte, Ports, Interrupts), stoppt die CPU ihn und springt automatisch zu KVM zurück.
- KVM erledigt Timer und Interrupts selbst und gibt Gerätezugriffe an QEMU weiter. Danach folgt wieder ein VM-Entry.
- Merke: KVM steht nicht zwischen jedem Befehl, das wäre wieder Emulation. KVM steht nur am Anfang und bei den Sonderfällen.
- Vergleich Fahrschule
- Der Fahrschüler (Gast) fährt selbst.
- Der Fahrlehrer (KVM) greift nicht bei jeder Lenkbewegung ein, hat aber eine eigene Bremse und übernimmt, sobald es kritisch wird.
- Bei Emulation würde der Fahrlehrer jede Lenkbewegung selbst ausführen.
- Prüfen, ob die CPU Virtualisierung unterstützt
grep -m1 -owE 'vmx|svm' /proc/cpuinfo
vmx= Intel VT-x,svm= AMD-V, keine Ausgabe = im BIOS/UEFI abgeschaltet oder nicht vorhanden.
Einordnung
Typ-1-Hypervisor
- Nativer oder Bare-Metal-Hypervisor.
- Wird direkt auf der Host-Hardware ausgeführt.
- Verwaltet die Gast-Betriebssysteme.
- Übernimmt selbst die Rolle des Host-Betriebssystems.
- VM-Ressourcen werden direkt von der Hardware abgerufen.
- Einsatz in Rechenzentren von Unternehmen und anderen serverbasierten Umgebungen.
- Beispiele
- VMware ESXi
- Microsoft Hyper-V
Typ-2-Hypervisor
- Wird auch gehosteter Hypervisor genannt.
- Läuft als Anwendung auf einem normalen Host-Betriebssystem.
- Trennt die Gast-Betriebssysteme vom Host-Betriebssystem.
- VM-Ressourcen werden beim Host-Betriebssystem angefordert und von diesem über die Hardware abgerufen.
- Beispiele
- VMware Workstation
- Oracle VirtualBox
KVM (Typ 1)
- Die KVM-Module (
kvm,kvm_intelbzw.kvm_amd) werden in den Linux-Kernel geladen. - Damit wird der Linux-Kernel selbst zum Hypervisor und sitzt direkt auf der Hardware.
- Jede VM ist ein normaler QEMU-Prozess, den der Kernel wie jeden anderen Prozess einplant.
- QEMU emuliert die Hardware der VM, die CPU reicht KVM durch.
- Beispiele
- KVM mit QEMU
- Proxmox VE
Anmerkung
- Red Hat verortet KVM als Typ-1-Hypervisor.
- Weil Geräte über QEMU im Userspace laufen, wird KVM teilweise auch als Mischform gesehen.
Animation
Präsentation
Quellen
- https://www.redhat.com/de/topics/virtualization/what-is-a-hypervisor
- https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/VMware_paravirtualization.pdf
- https://www.datacenter-insider.de/typ-1-versus-typ-2-kvms-und-andere-hypervisoren-a-318394/
- https://www.os-s.net/publications/thesis/Bachelor_Thesis_Ising.pdf


