KVM (Kernel-based Virtual Machine) und QEMU sind zwei Komponenten, die zusammen auf Linux vollständige virtuelle Maschinen bereitstellen. Sie sind freie Software und bilden die Grundlage praktisch jeder Linux-Virtualisierungsplattform – von Proxmox VE über oVirt bis zu Cloud-Anbietern.
Aufgabenteilung
Die Namen werden oft in einem Atemzug genannt, sind aber klar getrennt:
- KVM ist ein Modul im Linux-Kernel. Es nutzt die Virtualisierungsbefehle der CPU (Intel VT-x, AMD-V) und erlaubt dem Kernel, selbst als Hypervisor zu arbeiten. KVM beschleunigt die Ausführung der Gast-CPU, indem Gastcode direkt auf dem Prozessor läuft.
- QEMU ist ein Emulator und Gerätemodell. Es stellt der VM die virtuelle Hardware bereit – Chipsatz, Netzwerkkarte, Festplattencontroller, Grafik – und steuert den Speicher. Ohne KVM emuliert QEMU auch fremde Architekturen in Software, was deutlich langsamer ist.
Zusammen entsteht hardwarebeschleunigte Virtualisierung: KVM liefert die Geschwindigkeit, QEMU die Flexibilität. Läuft der Gast mit derselben Architektur wie der Host, spricht man von Hardware-Virtualisierung; bei fremder Architektur (etwa ARM-Gäste auf x86) von Emulation.
Typ 1 oder Typ 2?
KVM wird häufig als Typ-1-Hypervisor bezeichnet, weil der Kernel direkt auf der Hardware arbeitet. Genau genommen ist die Einordnung unscharf: KVM ist ein Kernelmodul innerhalb eines vollständigen Betriebssystems, das seinerseits Gerätetreiber, Dateisysteme und Netzdienste bereitstellt. Für die Praxis ist wichtiger, dass keine zweite Betriebssystemschicht dazwischenliegt – der Verwaltungsaufwand bleibt gering, die Leistung hoch.
Werkzeuge und Betrieb
# Prüfen, ob die CPU Virtualisierung bietet und KVM geladen ist
grep -E 'vmx|svm' /proc/cpuinfo
lsmod | grep kvm
kvm-ok
# Virtuelle Maschine direkt mit qemu-system-x86_64 starten
qemu-system-x86_64 -enable-kvm -m 4096 -smp 2 \
-drive file=disk.qcow2,if=virtio \
-netdev user,id=n0 -device virtio-net-pci,netdev=n0 \
-nographic
Die Parameter verdienen Aufmerksamkeit: -enable-kvm schaltet die Hardwarebeschleunigung ein, virtio-Geräte sind paravirtualisiert und deutlich schneller als emulierte IDE- oder e1000-Geräte, -smp legt die vCPU-Anzahl fest. Ohne -enable-kvm emuliert QEMU alles – praktisch, um fremde Architekturen zu testen, aber unbrauchbar für den Produktivbetrieb.
Virtio: der eigentliche Geschwindigkeitsfaktor
Emulierte Hardware ist langsam, weil jeder Zugriff im Hypervisor abgefangen und nachgebildet werden muss. Virtio löst das durch eine schlanke, gemeinsame Schnittstelle: Gast und Host sprechen über gemeinsam genutzte Speicherbereiche (Ringpuffer) und verständigen sich über Interrupts. Virtio-Netzwerk, Virtio-Block und Virtio-GPU sind deshalb in jeder ernsthaften Umgebung Standard. Wer bei einem langsamen Gast die Ursache sucht, findet sie oft in einer emulierten Netzwerkkarte statt einer Virtio-Karte.
Verwandte Grundlagen: Virtualisierung, Hypervisor, Proxmox VE, LXC.