Einordnung der Virtualisierungssysteme: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=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“ (<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
+
*Nativer oder Bare-Metal-Hypervisor.
−
*wird direkt auf der Host-Hardware ausgeführt
+
*Wird direkt auf der Host-Hardware ausgeführt.
−
*Guest-Betriebssysteme zu verwalten
+
*Verwaltet die Gast-Betriebssysteme.
−
*Er hat die Rolle des Host-Betriebssystems
+
*Übernimmt selbst die Rolle des Host-Betriebssystems.
−
*VM-Ressourcen werden direkt von der Hardware abberufen.  
+
*VM-Ressourcen werden direkt von der Hardware abgerufen.
 +
*Einsatz in Rechenzentren von Unternehmen und anderen serverbasierten Umgebungen.
 +
{{#drawio:kvm-hyper-1}}
 +
;Beispiele
 +
*VMware ESXi
 +
*Microsoft Hyper-V
  
−
[[Datei:kvm-102.jpg|400px]]
 
 
==Typ-2-Hypervisor==
 
==Typ-2-Hypervisor==
−
*gehosteter Hypervisor bezeichnet,
+
*Wird auch gehosteter Hypervisor genannt.
−
*wird als Softwareschicht oder Anwendung ausgeführt.
+
*Läuft als Anwendung auf einem normalen Host-Betriebssystem.
−
*Abstraktion des Guest-Betriebssysteme vom 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}}
 +
;Beispiele
 +
*VMware Workstation
 +
*Oracle VirtualBox
  
 +
==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}}
 +
;Beispiele
 +
*KVM mit QEMU
 +
*Proxmox VE
  
−
[[Datei:kvm-103.jpg|400px]]
 
−
*Von Qingqing Chen - Eigenes Werk, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=1354683
 
−
==Typ 1 Hypervisor==
 
−
*VMware ESXI
 
−
*HyperV
 
−
==Typ 2 Hypervisor==
 
−
*VMware Workstation
 
−
*Oracle VirtualBox
 
−
*KVM
 
 
=Anmerkung=
 
=Anmerkung=
−
*RedHat verortet KVM als Type 1 Hypervisor
+
*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=
 +
*https://hedgedoc.xinux.net/p/Fts3cYoYx#/
  
 
=Quellen=
 
=Quellen=
 
*https://www.redhat.com/de/topics/virtualization/what-is-a-hypervisor
 
*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

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_intel bzw. 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