Die Kernel-based Virtual Machine (KVM) ist eine Linux-Kernel-Infrastruktur für Virtualisierung und läuft auf x86-Hardware mit den Hardware-Virtualisierungstechniken von Intel (VT) oder AMD (AMD-V). KVM wurde im Oktober 2006 veröffentlicht und ist ab Version 2.6.20 des Linux-Kernels enthalten. Entwickelt wird es von dem israelischen Unternehmen Qumranet und steht dort unter Beaufsichtigung von Avi Kivity. Qumranet wurde im September 2008 von Red Hat gekauft.
Bestandteile der KVM sind die Kernel-Module kvm.ko (das aber auch unter älteren Linux-Versionen laufen soll) sowie die hardwarespezifischen Module kvm-intel.ko oder kvm-amd.ko. KVM selbst nimmt keine Emulation vor, sondern stellt nur die Infrastruktur dazu bereit; ein modifiziertes QEMU ist derzeit die einzige Möglichkeit, diese zu nutzen. Nach dem Laden des Moduls arbeitet der Linux-Kernel selbst als Hypervisor für virtuelle Maschinen. Als Gastsysteme unterstützt KVM Linux (32 und 64 Bit), Windows (32 Bit), Haiku OS, AROS, ReactOS, FreeDOS, Solaris und diverse BSD-Derivate. KVM läuft auch auf SMP-Hostsystemen, SMP-Gastsysteme sind ebenfalls möglich. Die Unterstützung für Paravirtualisierung ist mittlerweile in KVM vorhanden.
KVM an sich stellt „nur“ die direkte Schnittstelle zum Linux-Kernel zur Verfügung, als Virtualisierungsumgebung kommt Qemu zum Einsatz. Lediglich der Aufruf erfolgt nicht mit „qemu“ sondern stattdessen mit „kvm“.
KVM unterstützt CPU-Erweiterungen, wie zum Beispiel
KVM und diese CPU-Erweiterungen ermöglichen die Nested Virtualization. Das heißt, in einer virtuellen Umgebung laufen wiederum Virtualisierungslösungen. Eine Kernel-based Virtual Machine kann also unter einer Kernel-based Virtual Machine gestartet werden und virtuelle Maschinen beinhalten.
Quelle (die beiden letzten Absätze): Die Kernel-based Virtual Machine im Aufwind aus dem quemu-Buch Lizenz: GNU-FDL 1.2
Die Bestandteile von KVM sind Open-Source-Software und stehen unter verschiedenen Varianten der GPL-Lizenz zur Verfügung:
aus Wikipedia, der freien Enzyklopädie.
Folgende Pakete müssen installiert werden:
aptitude install kvm qemu
Damit die Gäste Netzwerkanbindung erhalten wird hier eine bridge mit dem Namen „br_inet“ erstellt.
Eine bridge ist eine Art virtueller Switch, der auf eine physikalische Netzwerkkarte gesetzt wird:
apt install bridge-utils
Beispiel-Konfiguration: Das physikalische Interface ist hier „enp3s0“:
iface enp3s0 inet manual auto br_inet iface br_inet inet static address 1.2.3.3 netmask 255.255.255.0 gateway 1.2.3.2 up route add -net 1.2.3.0 netmask 255.255.255.0 gw 1.2.3.0 dev br_inet bridge_ports enp3s0 bridge_fd 9 bridge_hello 2 bridge_maxage 12
open /dev/kvm: Permission denied
)lsmod | grep kvm
Die Ausgabe sollte dann so aussehen:
kvm kvm_intel
kvm kvm_amd
Sollten die Module nicht geladen sein, so muss man dies von Hand nachholen.
libvirt-daemon
) und virsh:virsh --connect qemu:///system
echo 1 > /sys/kernel/mm/ksm/run
for ii in /sys/kernel/mm/ksm/* ; do echo -n "$ii: " ; cat $ii ; done
Links: