Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
KVM , Kernel-based Virtual Machine ist eine Virtualisierungstechnik für Linux auf x86-Hardware. Sie wurde im Oktober 2006 der Öffentlichkeit vorgestellt. Seit der Version 2.6.20 des Linux-Kernels ist das Kernelmodul von KVM bereits in Linux enthalten. Entwickelt wird KVM von dem israelischen Unternehmen Qumranet . Das Unternehmen wurde im September 2008 vom amerikanischen Linux-Distributor Red Hat übernommen. Seit Ubuntu 8.04 ist KVM die offiziell unterstützte (und im Serverbereich bevorzugte) Virtualisierungslösung von Ubuntu.
Ein Vorteil von KVM ist, dass die Gastsysteme fast mit nativer Geschwindigkeit laufen, d.h. das Gastsystem reagiert nahezu so schnell wie ein natives System.
Um KVM unter Ubuntu zu nutzen, ist es zwingend erforderlich, dass man einen Prozessor hat, der Hardwarevirtualisierung direkt unterstützt. Dies kann man herausfinden, indem man cat /proc/cpuinfo in der Konsole eingibt. Ist dort unter flags
entweder der Eintrag vmx
oder svm
vorhanden, beherrscht der Prozessor diese Technik. Dies erledigt auch der folgende Befehl [3]:
grep -E '^flags.*\b(vmx|svm)\b' /proc/cpuinfo
Alternativ kann man natürlich auch in das Datenblatt für den Prozessor schauen; eine (nicht zwingend aktuelle) Übersicht findet man auch bei Wikipedia für Intel-Prozessoren und AMD-Prozessoren.
Unterstützt der Prozessor Hardwarevirtualisierung, so werden in der Regel die beiden benötigten Kernel-Module beim Start des Systems automatisch geladen. Dies kann man mit folgendem Befehl prüfen [2]:
lsmod | grep kvm
Die Ausgabe sollte dann so aussehen:
## für Intel-Prozessoren kvm kvm_intel ## für AMD-Prozessoren kvm kvm_amd
Sollten die Module nicht geladen sein, kann man sie mit den folgenden Befehlen laden:
## für Intel-Prozessoren sudo modprobe kvm sudo modprobe kvm_intel ## für AMD-Prozessoren sudo modprobe kvm sudo modprobe kvm_amd
Sollten dabei Fehler auftreten, dann liefert
dmesg | grep kvm
meist die Fehlerursache.
Bei manchen Rechnern ist die Hardwarevirtualisierung im BIOS deaktiviert. Diese muss dann natürlich erst aktiviert werden, damit man KVM nutzen kann.
Ab Ubuntu 14.04 muss für die Emulation von x86-Maschinen (32 und 64 bit) nur das Paket
qemu-kvm
mit apturl
Paketliste zum Kopieren:
sudo apt-get install qemu-kvm
sudo aptitude install qemu-kvm
installiert werden. Dies installiert auch das Paket qemu-system-x86 und weitere Abhängigkeiten automatisch.
Falls man andere CPU-Architekturen als x86 emulieren möchte, benötigt man zusätzlich das Paket qemu-system.
Nach der Installation der Pakete sollte überprüft werden, ob man selber Mitglied in der Gruppe kvm
ist. Wenn nicht, muss man sich dieser Gruppe hinzufügen [4]:
sudo adduser $USER kvm
Die Änderung der Gruppenzugehörigkeit wird bei der nächsten Anmeldung wirksam.
Bis einschließlich Ubuntu 12.10 muss nur noch das Paket
qemu-kvm
mit apturl
Paketliste zum Kopieren:
sudo apt-get install qemu-kvm
sudo aptitude install qemu-kvm
installiert werden [1].
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
, also würde z.B. [2]
kvm -hda /home/otto/virtuelle_laufwerke/ubuntu.img -cdrom /dev/cdrom -m 384 -boot c
eine virtuelle Maschine aus dem Image ubuntu.img
booten, zusätzlich das CD-ROM Laufwerk einbinden und der virtuellen Maschine 384 MB RAM zur Verfügung stellen.
Weiteres Beispiel, Booten von einer ISO Datei ohne Festplatte:
kvm -cdrom lubuntu-14.04-desktop-amd64.iso -m 512 -boot d
Alle Parameter und Optionen von KVM sind identisch mit denen von QEMU, daher sei an dieser Stelle auf den QEMU-Artikel verwiesen. KVM ist nur ein Script, dass QEMU aufruft mit dem Parameter -enable-kvm.
Die Unterstützung der Gastsysteme variiert nach der eingesetzten KVM-Version. In Ubuntu 8.04 LTS kommt KVM 62 zum Einsatz, unter Ubuntu 10.04 wird KVM 84 eingesetzt.
Eine umfangreiche Übersicht über alle möglichen Gastsysteme findet man auf dieser Seite im KVM-Wiki.
virsh ist eine Konsolenanwendung, die auf libvirt basiert. Sie eignet sich für die skriptbasierte Administration von KVM-VMs
AQEMU - grafische Oberfläche für QEMU/KVM
QEMU - Grundlagen von QEMU
KVM-Eintrag im englischen Ubuntu-Community-Wiki mit vielen zusätzlichen Tipps und Infos
KVM im englischen Ubuntu-Wiki, recht kurzer Eintrag
Einführungsvortrag über QEMU und KVM Youtube-Video von der Ubucon 2011
Multiheaded NVIDIA Gaming using Ubuntu 14.04+KVM - Beispiel wie man eine oder mehrere Grafikkarten an ein virtuelle Maschine durchschleift
Diese Revision wurde am 6. September 2016 18:39 von jms3000 erstellt.