QEMU,KVM,libvirt
Zur Navigation springen
Zur Suche springen
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
- "kvmtool" sollte QEMU ersetzen (leichtgewichtiges CLI-Tool)
- 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