KVM

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index

KVM bedeutet Kernel based Virtual Machine und ist eine auf QEmu basierende Virtualisierungslösung für CPUs mit HVM-Unterstüzung (derzeit Intel VT oder AMD-V). Durch den Einsatz der Hardwarefunktionen muss das Gastsystem nicht angepasst werden, daher ist z.B. auch der Betrieb von Microsoft Windows möglich. Eine genaue Liste der derzeit unterstützten Systeme findet sich in auf einer Wiki-Seite des Projektes.

Inhaltsverzeichnis

[Bearbeiten] Hardwarecheck

Wie bereits erwähnt muss die CPU eine HVM-Unterstützung besitzen. Ob ihr System die Voraussetzungen erfüllt erkennen sie an diesem Befehl:

Code: CPU-Flags prüfen
egrep '^flags.*(vmx|svm)' /proc/cpuinfo


Sollte hier keine Ausgabe erfolgen ist ihr PC nicht in der Lage KVM zu verwenden.

Vorsicht: Einige Mainboardhersteller sperren die Nutzung der HVM im BIOS!

[Bearbeiten] Installation

[Bearbeiten] Kernelmodule

KVM benötigt Kernelmodule um die Verbindung zwischen Gastsystem und Hardware zu verwalten. Das Kernelmodul ist ab Kernel 2.6.20 fester Bestandteil des Linux Kernels. In dieser Version jedoch noch maskiert.

[Bearbeiten] Module im Kernel (Kernel 2.6.20 oder höher)

Die KVM-Optionen sollten sich bei make menuconfig auswählen lassen.

[Bearbeiten] Module einzel (Kernel 2.6.16 oder höher)

Hier werden die Module zusammen mit den Userspace-Tools erstellt - weitere Informationen sind dort aufgeführt.

[Bearbeiten] Userspace-Tools

Vorsicht: Um die grafische Oberfläche nutzen zu können muss SDL installiert sein!
Vorsicht: KVM lässt sich nur mit GCC 3 zuverlässig kompilieren

Als erstes muss (sofern nicht bereits getan) GCC 3 installiert werden.

Code: GCC 3 installieren

# emerge =sys-devel/gcc-3.4.6*

Mir ist nicht bekannt, ob neuere Installationen das 3.4er GCC-Ebuild finden. Sollte Jemand das testen können bitte hier ergänzen. Das Ebuild sollte es noch auf den Mirrors geben.

Nach der Installation den Standardcompiler vorübergehend wechseln:

Code: Auf GCC 3 wechseln

# gcc-config x86_64-pc-linux-gnu-3.4.6
# source /etc/profile


Derzeit gibt es noch kein Ebuild, daher muss man sich die Software per Hand bauen. Die Pakete finden sich bei SF. Sollte der 2.6.20er Kernel verwendet werden muss Version 12 kompiliert werden. Personen, welche externe Module nutzen möchten können die neueste Version laden.

Code: KVM Installieren

# tar xzf kvm-*.tar.gz
# cd kvm-*
# ./configure --prefix=/opt/kvm --with-patched-kernel
# make
# make install

Will man die Module erstellen, lässt man den --with-patched-kernel-Parameter weg. Vorsicht: Wenn der Kernel mit GCC 4 erstellt wurde müssen die Module ebenfalls mit GCC 4 erstellt werden.

Note: Die aktuelle Version 59 hat einen kleinen Bug und compilier nicht unter ia64
Loesung: ./configure --kerneldir=`pwd`/kernel --prefix=/opt/kvm --with-patched-kernel

Code: Module erstellen
# ./configure --prefix=/opt/kvm


Diese lassen sich dann mit

Code: Module laden (Intel)
modprobe kvm-intel

bzw.

Code: Module laden (AMD)
modprobe kvm-amd

laden.


Vorsicht: Nach der Installation analog zu oben wieder auf GCC 4 wechseln!

[Bearbeiten] Umgang mit VMs

[Bearbeiten] Erstellung einer VM

Hier folgt eine kurze Anleitung zur Erstellung einer minimalen VM-Umgebung. Weitere Funktionen wie LAN, Sound, etc lassen sich den unzähligen KVM bzw QEmu-Howtos entnehmen.

Code: Erstellung einer Festplattendatei
/opt/kvm/bin/qemu-img create -f qcow hdd.img 10G

Dies erstellt eine virtuelle Festplatte mit maximal 10GB Größe. Die Datei ist im Anfangsstadium nur wenige KB groß und wächst bei Bedarf.

Code: Starten der installation (64Bit-System)
/opt/kvm/bin/qemu-system-x86_64 -hda hdd.img -cdrom /pfad/zur/installation.iso -boot d  -m 384


Code: Starten der installation (32Bit-System)
/opt/kvm/bin/qemu -hda hdd.img -cdrom /pfad/zur/installation.iso -boot d  -m 384


-m gibt dabei die Größe des virtuellen RAMs an. Statt einer ISO kann auch eine Gerätedatei wie z.B. /dev/cdrom verwendet werden.

Vorsicht:
  • Sollte es bei Windows zu Problemen kommen könnte -no-acpi helfen.
  • Die derzeitige Version hat Probleme mit grafischen Bootmenüs.
  • Das KVM-Device /dev/kvm ist im Normalfall nur mit root nutzbar. Für normale User müssen die Rechte entsprechend angepasst werden

Die VM lässt sich später mit -boot c starten.

Code: Starten der installation (64Bit-System)
/opt/kvm/bin/qemu-system-x86_64 -hda hdd.img -boot c  -m 384


Code: Starten der installation (32Bit-System)
/opt/kvm/bin/qemu -hda hdd.img -boot c  -m 384


[Bearbeiten] Übernahme aus anderen Programmen

Da KVM auf QEmu basiert können QEmu-VMs ohne Änderungen verwendet werden. Wie QEmu selber können auch RAW- oder VMWare-Festplatten geladen werden.

[Bearbeiten] Fortgeschrittene Optionen

[Bearbeiten] Migration

Mit savevm und loadvm kann eine VM sowohl offline als auch live auf andere Rechner verschoben werden. Die funktioniert auch, wenn sich die Hosts unterscheiden (AMD/Intel). Einzige Einschränkung: 64Bit-VMs laufen natürlich nicht auf 32Bit-Systemen.

Ein Kleines Howto ist in der Projekt-Wiki zu finden.

'Persönliche Werkzeuge