KVM (kompilace QEMU)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Jaderný modul pro práci s KVM, je dnes již běžně součástí distribučního jádra. Podporuje-li procesor fyzického stroje hardwarovou virtualizaci, stačí pouze zavést příslušný modul do spuštěného jádra. Zda-li má procesor podporu hardwarové virtualizace lze zjistit poměrně snadno výpisem z /proc/cpuinfo. Je pouze nutné vědět, že flag udávající podporu hardwarové virtualizace v procesoru je jiný u procesorů fy. Intel než u AMD.

Na procesorech od Intelu je to flag vmx

Poznámka
user@strojA:~$ grep vmx /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64
monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm dts tpr_shadow

Kdežto u AMD strojů flag svm

Poznámka
user@strojB:~$ grep svm /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb
rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid
pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a
misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
Poznámka Zatím co u AMD procesorů mají hardwarovou podporu virtualizace všechny 64 bitové procesory, u Intelu tomu tak není. Starší 64 bitové procesory buď podporu hardwarové virtualizace nemusí mít dostupnou vůbec, nebo u nich musí být zapnuta před zavedením systému v BIOSu.

Pokud má procesor příslušný flag, může být do jádra zaveden příslušný modul. Na procesorech od Intelu (s flagem vmx) se natahuje modul kvm-intel, kdežto u strojů s procesory od AMD modul kvm-amd

Poznámka
root@strojB:~$ lsmod | grep kvm-amd

root@strojB:~$ modprobe -i kvm-amd
root@strojB:~$ lsmod | grep kvm-amd
kvm_amd                44407  0 
kvm                   219917  1 kvm_amd

Aby však bylo možné KVM virtualizaci používat, musí být k dispozici QEMU.

Instalace QEMU z distribuční repozitory

Instalace distribuční verze QEMU je v Debianu naprosto triviální

Poznámka
root@strojB:~$ apt-get install qemu
Upozornění Vemte však na vědomí, že tímto jste závislí na libovůli maintainera distribučního balíku s jakou konfigurací vám tuto binárku sestavil. Takže některé funkcionality, o kterých je řeč na následujících stránkách nemusíte mít k dispozici, přesto že s nimi jinak QEMU bez problémů funguje.

Kompilace a instalace vývojové verze QEMU z git repozitory

Důvody proč si kompilovat vlastní verzi QEMU jsou v podstatě dva:

  1. Distribuční verze je zastaralá
  2. Distribuční verze neobsahovat funkcionality, které chcete používat
Poznámka U QEMU je výhodné, že po kompilaci je výsledkem pro každou emulovanou architekturu jeden binární soubor, který sám o sobě žádné další knihovny nemá, takže není žádný problém mít v systému paralelně několik různých verzí QEMU, zkompilovaných s jinou konfigurací.

Oficiální vývojová repository QEMU je verzovaná v gitu a lze ji naklonovat z

git://git.qemu.org/qemu.git

případně z mirroru

git://repo.or.cz/qemu.git
Poznámka Původně byl repozitář QEMU verzován v SVN repository do níž první commit odeslal Fabrice Bellars 18. února 2003. Poslední commit do této repozitory byl proveden 24. dubna 2009. Další vývoj kódu (od verze 0.11.0-rc0) již byl již udržován v git repositoráři, umístěném na serveru savannah.nongnu.org
git://git.savannah.nongnu.org/qemu.git

Z tohoto repozitáře jej lze sice stále naklonovat, ovšem je nutné upozornit, že poslední commit byl do tohoto repozitáře proveden 22. listopadu 2010. Od verze 0.13.0 byla git repozitory přemístěna na server kernel.org

git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git

Protože však byl tento stroj po relativně nedávném incidentu z ... dlouhodobě odstaven, byla vývojová repozitory opět přesunuta, a to na na výše uvedené stroje. Přesto se můžete na webu stále setkat na starších neaktualizovaných stránkách o KVM s odkazem na - dnes již nefunkční - repository na kernel.org

Kromě této oficiální repozitory však existuje ještě jeden veřejně dostupný repozitář QEMU. Je to repozitory na serveru freedesktop.org, která je primárně určena pro vývojové práce při intergraci SPICE protokolu do QEMU. Ten byl sice zařazen do hlavní vývojové větve QEMU od verze 1.14.0, ale jelikož jeho vývoj ještě není ani zdaleka u konce, je tato repozitory stále živá.

Hlavní větev, vůči níž se pravděpodobně dělají patche, které se následně importují do oficiální repository QEMU je

git clone git://git.freedesktop.org/git/spice/qemu

Ovšem vývojové větve jsou verzovány v samostatných větvích, pojmenovaných spice.vXX (aktuální číslo vývojové větve je 42), takže poslední aktuální kód QEMU s vývojovou podporou poslední verze SPICE lze získat z

git clone git://git.freedesktop.org/git/spice/qemu
Poznámka Integrace SPICE protokolu do oficiální repository QEMU od verze 0.15.0 již pokročila do takové míry, že pro běžné uživatele je kompilace QEMU z tohoto zdroje zbytečná, neboť vše co je nezbytně nutné pro běžné použití SPICE již bylo implementováno. Ovšem je dobré vědět, že QEMU kompilované z tohoto zdroje má uvedené číslo verze 0.15.50. Zatím co v oficiální repozitory je poslední číslo verze 0.15.0