QEMU,KVM,libvirt: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
=QEMU=
+
= QEMU =
*Emulationsprogramm QEMU
+
* Emulator und Virtualisierer
*emuliert verschiedene CPUs und elementare Hardware Komponenten Rechners
+
* Emuliert verschiedene CPU-Architekturen und elementare Hardware-Komponenten
*kann auch fremde CPUs emulieren
+
* Unterstützt vollständige Emulation fremder Architekturen (z. B. ARM, MIPS)
*Ist dann aber sehr langsam
+
* Ohne Hardwarevirtualisierung (KVM) sehr langsam
=KVM=
 
*genau genommen nur die Kernelmodule
 
*Erst in Kombination mit anderen Komponenten wird daraus eine Virtualisierungslösung
 
*Typ 2 Hypervisor (umstritten Red Hat sagt es ist ein Typ 1)
 
*Hardware Virtualisierung INTEL-VT und AMD-V
 
*Paravirtualisierung mit virtio-Treibern
 
*Hostsystem nur Linux
 
*Guestsysteme Linux, Windows, BSD usw.
 
  
=KVM und QEMU=
+
= KVM =
*KVM ist ein relativ kleines Kernelmodul
+
* Kernel-Module zur Hardwarevirtualisierung (seit 2007 im Linux-Kernel enthalten)
*IN Kombination mit QEMU wird KVM zu einem Hardware-Virtualisierungssystem.
+
* Typ-1 Hypervisor (umstritten, Red Hat klassifiziert als Typ-1)
=KVM Detail=
+
* Nutzt Intel VT-x / AMD-V für native Ausführung von Gastbetriebssystemen
*Grundlegende Funktionen wie die Speicher-, Prozessverwaltung etc sind direkt im Virtualisierungssystem implementiert
+
* Unterstützt Paravirtualisierung über VirtIO
*KVM greift auf die im Linux Kernel vorhandenen Funktionen zurück.
+
* Läuft nur unter Linux als Host
*Besonders schlanken Virtualisierungssystem durch aufsetzen an den optimierten Linux Kernel
+
* Unterstützt Linux, Windows, BSD uvm. als Gäste
*führt standardmäßig eine vollständige Virtualisierung durch
 
*Gäste brauchen keine angepassten Treiber
 
*Unterstützt aber auch paravirtualisierte Treiber (virtio)
 
*KVM-Funktionen werden über die Device-Datei /dev/kvm genutzt
 
*Es reicht aus Mitglied der Gruppe kvm zu sein.
 
  
=Native Linux KVM Tool=
+
= KVM + QEMU =
*soll QEMU ersetzen
+
* KVM stellt die Virtualisierungsfunktionen bereit (CPU, RAM)
*schlankerer Ansatz
+
* QEMU übernimmt die Geräteemulation (Netzwerk, Grafik, Peripherie)
*https://github.com/kvmtool/kvmtool
+
* Zusammenspiel ergibt ein vollständiges Virtualisierungssystem
*Project ist scheinbar nicht mehr aktiv
+
* Kombination bietet vollständige und paravirtualisierte Virtualisierung
  
=libvirt=
+
= KVM Architekturdetails =
*Programmierschnittstelle (API) zur Ansprache der virtuellen Maschinen.
+
* KVM nutzt vorhandene Linux-Kernel-Funktionen (Speicherverwaltung, Scheduler)
*Man kann diese steuern und verwalteten werden.
+
* Sehr schlankes Virtualisierungssystem durch Integration in den Kernel
*Kommandozeilen und grafische Werkzeuge
+
* Gäste benötigen keine angepassten Kernel
*Mit libvirt kann man auch andere VM System steuern (XEN, VMware ...)
+
* Optional: VirtIO-Treiber verbessern die Performance
=VirtIO-Treiber=
+
* Zugriff auf KVM über die Device-Datei /dev/kvm
*Spezielle Treiber für Gastsysteme
+
* Nutzer in der Gruppe "kvm" dürfen virtuelle Maschinen starten
*Abgestimmt auf den Hypervisor
+
 
*Eine Art Paravirtualisierung
+
= Native Linux KVM Tools =
*Ermöglicht schnelleren Zugriff auf Resouren
+
* "kvmtool" sollte QEMU ersetzen (leichtgewichtiges CLI-Tool)
*Treiber, wenn nicht vorhanden, eventuell auf dem Gastsystem einspielen
+
* Entwicklung scheint nicht mehr aktiv
 +
* https://github.com/kvmtool/kvmtool
 +
 
 +
= libvirt =
 +
* Verwaltungsschicht und API für Virtualisierungssysteme
 +
* Unterstützt verschiedene Backends (KVM, QEMU, Xen, VMware...)
 +
* Ermöglicht Steuerung über CLI und GUI (z. B. virt-manager)
 +
* Standardlösung für viele KVM-basierte Virtualisierungsumgebungen
 +
 
 +
= VirtIO =
 +
* Paravirtualisierte Treiber für Gäste
 +
* Ermöglicht schnellen Zugriff auf Netzwerk, Speicher und weitere Ressourcen
 +
* Gäste ohne VirtIO-Unterstützung müssen die Treiber nachinstallieren
 +
 
 +
=Präsentation=
 +
*https://hedgedoc.xinux.net/p/an_TShg2i#/8
 +
[[Kategorie:Virtualisierung]]

Aktuelle Version vom 5. Mai 2025, 05:33 Uhr

QEMU

  • Emulator und Virtualisierer
  • Emuliert verschiedene CPU-Architekturen und elementare Hardware-Komponenten
  • Unterstützt vollständige Emulation fremder Architekturen (z. B. ARM, MIPS)
  • Ohne Hardwarevirtualisierung (KVM) sehr langsam

KVM

  • Kernel-Module zur Hardwarevirtualisierung (seit 2007 im Linux-Kernel enthalten)
  • Typ-1 Hypervisor (umstritten, Red Hat klassifiziert als Typ-1)
  • Nutzt Intel VT-x / AMD-V für native Ausführung von Gastbetriebssystemen
  • Unterstützt Paravirtualisierung über VirtIO
  • Läuft nur unter Linux als Host
  • Unterstützt Linux, Windows, BSD uvm. als Gäste

KVM + QEMU

  • KVM stellt die Virtualisierungsfunktionen bereit (CPU, RAM)
  • QEMU übernimmt die Geräteemulation (Netzwerk, Grafik, Peripherie)
  • Zusammenspiel ergibt ein vollständiges Virtualisierungssystem
  • Kombination bietet vollständige und paravirtualisierte Virtualisierung

KVM Architekturdetails

  • KVM nutzt vorhandene Linux-Kernel-Funktionen (Speicherverwaltung, Scheduler)
  • Sehr schlankes Virtualisierungssystem durch Integration in den Kernel
  • Gäste benötigen keine angepassten Kernel
  • Optional: VirtIO-Treiber verbessern die Performance
  • Zugriff auf KVM über die Device-Datei /dev/kvm
  • Nutzer in der Gruppe "kvm" dürfen virtuelle Maschinen starten

Native Linux KVM Tools

libvirt

  • Verwaltungsschicht und API für Virtualisierungssysteme
  • Unterstützt verschiedene Backends (KVM, QEMU, Xen, VMware...)
  • Ermöglicht Steuerung über CLI und GUI (z. B. virt-manager)
  • Standardlösung für viele KVM-basierte Virtualisierungsumgebungen

VirtIO

  • Paravirtualisierte Treiber für Gäste
  • Ermöglicht schnellen Zugriff auf Netzwerk, Speicher und weitere Ressourcen
  • Gäste ohne VirtIO-Unterstützung müssen die Treiber nachinstallieren

Präsentation