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.