KVM Grundlagen
Version vom 11. Oktober 2026, 17:46 Uhr von Thomas.will (Diskussion | Beiträge)
KVM Grundlagen
Übersicht
- Kernel-based Virtual Machine (KVM) ist die Virtualisierungslösung im Linux-Kernel.
- Nutzt Hardware-Virtualisierung (Intel VT-x, AMD-V).
- Besteht aus Kernelmodulen (
kvm.ko,kvm_intel.kobzw.kvm_amd.ko) und setzt für die Geräteemulation auf QEMU auf. - Fester Bestandteil des Linux-Kernels seit Version 2.6.20 (Februar 2007).
Webseiten
Geschichte
- Entwickelt von Avi Kivity bei Qumranet in Israel, vorgestellt im Oktober 2006.
- Aufgenommen in Kernel 2.6.20, veröffentlicht im Februar 2007.
- 2008 Übernahme von Qumranet durch Red Hat, das die Entwicklung seitdem maßgeblich vorantreibt.
- Heute Grundlage vieler Plattformen, z. B. Proxmox VE, OpenStack und großer Cloud-Anbieter.
- Portierungen existieren für FreeBSD und Illumos.
Unterstützte Architekturen
- x86-64 mit Intel VT-x oder AMD-V
- ARM64 (AArch64)
- IBM Z (s390x)
- PowerPC
- RISC-V
Architektur von KVM
- KVM virtualisiert CPU und Arbeitsspeicher, emuliert aber selbst keine Geräte.
- Die Geräte der VM (Festplatte, Netzwerkkarte, Grafik) emuliert QEMU.
- Jede VM ist ein normaler QEMU-Prozess auf dem Host, den der Kernel wie jeden anderen Prozess einplant.
- KVM + QEMU zusammen ergeben ein vollständiges Virtualisierungssystem.
Übersichtsgrafik
KVM Architektur: KVM übernimmt CPU/RAM Virtualisierung, QEMU emuliert Geräte.
Gastsysteme
- Unterstützt zahlreiche Betriebssysteme:
- Linux (32/64 Bit)
- Windows (32/64 Bit)
- BSD-Derivate, Solaris/Illumos, Haiku, ReactOS, FreeDOS u. a.
Paravirtualisierung mit VirtIO
- Emulierte Geräte (z. B. Netzwerkkarte e1000, IDE-Platte) bilden echte Hardware nach. Der Gast-Treiber spricht mit ihnen wie mit echter Hardware, das erzeugt viele VM-Exits.
- VirtIO-Geräte sind für VMs entworfen: Gast und Host tauschen Daten über gemeinsame Warteschlangen (virtqueues) aus, mit wenigen VM-Exits.
- Wichtige VirtIO-Geräte:
virtio-blk/virtio-scsifür Festplattenvirtio-netfür Netzwerkvirtio-balloonfür dynamischen Arbeitsspeicher
- Linux bringt die Treiber mit, für Windows gibt es die ISO
virtio-win. - Animation: https://labs.xinux.net/kvm-praxis.html#virtio-1
Verwaltungswerkzeuge
qemu-system-x86_64 -accel kvm(direkter Start ohne Verwaltung)virsh(Kommandozeile von libvirt)virt-install(VMs per Kommandozeile anlegen)- Virtual Machine Manager (
virt-manager, grafisch) - Cockpit mit
cockpit-machines(Weboberfläche) - Proxmox VE (eigene Verwaltung, nutzt kein libvirt)
VT Modell (CPU Privilegienstufen)
Zeigt die CPU-Modi: VMX Root (Hypervisor, „Ring -1“) und VMX Non-Root (Gast mit eigenem Ring 0 und Ring 3).
- Ausführlich: X86-Virtualisierung
Libvirt Übersicht
- Libvirt ist eine einheitliche Schnittstelle zur Verwaltung von KVM/QEMU und anderen Hypervisoren.
- Werkzeuge wie
virshundvirt-managersprechen mit dem Dienstlibvirtd, der die QEMU-Prozesse startet und verwaltet. - Die Beschreibung einer VM liegt als XML-Datei unter
/etc/libvirt/qemu/.
VM Lifecycle
Lebenszyklus einer virtuellen Maschine (erstellt, gestartet, gestoppt, gelöscht).
| Befehl | Wirkung |
|---|---|
virsh define vm.xml |
VM anlegen (Zustand: ausgeschaltet) |
virsh start vm |
VM starten |
virsh suspend vm / virsh resume vm |
VM anhalten / fortsetzen |
virsh shutdown vm |
sauber herunterfahren (ACPI) |
virsh destroy vm |
hart ausschalten (Stecker ziehen), löscht nichts |
virsh undefine vm |
VM-Definition löschen (Platten bleiben) |
Folien
Quellen
- https://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine
- https://de.wikipedia.org/wiki/Hypervisor
- https://www.computerwoche.de/a/virtualisierung-ist-kvm-das-bessere-xen,1937585
- https://mrpointy.wordpress.com/2009/05/12/is-kvm-a-type-1-or-a-type-2/
- http://tuxthink.blogspot.de/2011/12/kvm-introduction.html
