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 nabízí mnoho možností jak vyřešit u virtualizovaných strojů problémy a kompatibilitou původního fyzického hardware. Ovšem každá emulace fyzického hardware jde na úkor výkonu, proto byly navrženy virtio ovladače, které u linuxové verze QEMU umožňují dosahovat lepšího výkonu díky virtualizaci na úrovni linuxového jádra.

Tyto ovladače jsou normální jaderné moduly. Jsou-li zavedeny, tak je QEMU využije, pokud ne, tak provádí plnou emulaci. Za vývojem těchto modulů stojí rovněž firma Red Hat (hlavní tahoun vývoje KVM), která nabízí i ovladače pro virtualizované operační systémy firmy Microsoft.

virtio

virtio_ring

virtio-rng

virtio_console

virtio_blk

virtio_net

virtio_pci

virtio_balloon

9pnet_virtio

IO zařízení (disky, síťové rozhraní, aj.)

Obsah manuálu

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

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

Doplňky

Tisková verze
Diskuze k tomuto materiálu