KVM

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

KVM je zkratkou z anglického názvu této virtualizační metody Kernel-based Virtual Machine, neboli česky: "Virtualizační stroj založený na [linuxovém] kernelu". Jeho vývoj iniciovali vývojáři z fy. Red Hat prakticky ihned poté, co se ukázalo, že vývojáři Xenu nejsou příliš ochotni začlenit kód hypervizoru přímo do linuxového jádra. Red Hat, který z velké části vývoj linuxového jádra financuje, tím pádem neměl do budoucna zajištěno, že nemůže dojít k uzavření kódu hypervizoru Xenu. Tato hrozba se stala reálnou zvláště po odkoupení fy. XenSource Citrixem.

Když začal Microsoftu usilovat o rozhodující podíl v Citrixu, Red Hat - pro který byla tato akvizice přímým ohrožením ochodních zájmů - odkoupil 4. července 2008 za 107 miliónů dolarů firmu Qumramnet, která těsně předtím oznámila vývoj protokolu SPICE, který by se měl stát open source alternativou ICA protokolu. Tímto krokem Red Hat do budoucna zabránil ev. uzavření jeho vývoje.

V praxi jde o stejný virtualizační princip jako používá VMware ESX server či Xen, kdy mezi fyzickým hardware a virtuálními stroji běží tzv. hypervizor, který se stará o rozdělování fyzických prostředků hostitele mezi jednotlivé virtuály.

Upozornění Na rozdíl VMware ESX serveru či Xenu, KVM nepoužívá paravirtualizaci proto procesor hostitele musí mít hardwarovou podporou virtualizace. Tuto podmínku splňují všechny 64-bitové procesory fy. AMD (včetně mobilních), ovšem u procesorů fy. INTEL to až tak jednoznačné není. Také je třeba dávat pozor na nastavení biosu, ve kterém lze podporu virtualizace vypnout (AMD), nebo naopak zapnout (INTEL)


Samotný KVM hypervizor však řeší pouze virtualizaci na úrovni procesoru, nikoliv na úrovni zařízení. Proto bylo využito možností jiného virtualizačního nástroje - QEMU.

QEMU

QEMU bylo původně navrženo jako virtualizační nástroj, který umí emulovat nejenom hardwarové vybavení virtuálního stroje, ale také architekturu virtuálního procesoru. To je sice výhodné z hlediska vývojářů, neboť tak mají možnost vyvíjet a testovat software v izolovaném prostředí virtuálního stroje, ale velmi náročné na výkon hostitelského stroje. Oproti nativnímu prostředí hostitele je totiž zpomalení virtuálu 5 až 10 násobné. Proto původní vývojář QEMU - Fabrice Bellard - vyvíjel také jaderný modul kqemu, s nímž bylo zpomalení pouze poloviční, ovšem ten na rozdíl od QEMU nebyl open source.

Paralelně s kqemu byl po jistou dobu vyvíjen také alternativní jaderný modul qvm86, ale jeho vývoj umřel r. 2005. Oficiálně jeho vývoj skončil poté, co v lednu 2007 firma SUN uvolnila pod GPL2 licencí VirtualBox Open Source Edition (OSE). Fabrice Bellard na tuto akci reagoval tím, že v únoru 2007 uvolnil jako open source i svůj modul kqemu. Ovšem od QEMU verze 0.12.0 (uvolněné v srpnu 2009) je tento modul nepoužitelný, neboť jeho fungování je neslučitelné s možností mapování velkého množství paměti. A tak byl jeho další vývoj ukončen. V té době se však začaly začaly masově šířit stroje s podporou virtualizace přímo v procesoru.

Aby bylo možné této možnosti virtualizace využít, musel být vytvořen v linuxovém jádře tzv. hypervizor - což je vlastně jaderný modul kvm (Kernel-based Virtual Machine). Virtualizace procesoru ale sama o sobě nestačí, protože virtuální stroje se musí dělit o další fyzický hardware - bloková zařízení, síťové karty aj. A to byl okamžik, kdy se využilo možností QEMU a tak se tento nástroj od verze O.10.1 začal pozvolna měnit z pouhého emulátoru v administrační nástroj pro hypervizory. Nejprve pro hypervizor KVM a posléze (od verze 0.11.0) i pro hypervizor XEN. Využilo se takjeho rozvinutých možností řízení a monitorování virtuálního stroje, a především toho, že bylo schopné emulovat reálný hardware, který zatím nebylo možné virtualizovat na nižší úrovni. QEMU v kombinaci s KVM se pozvolna stává vážnou konkurencí vůči komerčním virtualizačním nástrojům.


Virtio ovladače

Emulace hardware u QEMU vyřešila řadu otázek s kompatibilitou hardware u virtuálních strojů, ovšem každá emulace jde vždy na úkor výkonu. QEMU sice umožňuje používat i virtuální ovladače z VMware, ovšem na straně hostitele musí i v takovém případě prováděl do určité míry emulaci.

Proto se v linuxovém jádře objevily speciální ovladače, jak pro virtuální, tak virtualizační stroje, díky kterým lze dosáhnout lepší úrovně virtualizace i na úrovni IO zařízení (disky, síťové rozhraní, aj.), neboť jsou přímo součástí linuxového jádra. Za jejich vývojem stojí rovněž firma Red Hat, která nabízí i ovladače pro virtuální systémy od firmy Microsoft.

Obsah manuálu

(Vpravo je uveden aktuální stav zpracování kapitoly)

KVM (konfigurace sítě)  
 
00%
KVM (spuštění virtuálního stroje)  
 
00%
KVM (řízení přes konzole QEMU)  
 
00%
KVM (konfigurace CRM)  
 
00%

Doplňky

Tisková verze
Diskuze k tomuto materiálu