Molnár Ingo: KVM paravirtualizáció

Címkék

A KVM-ről többször beszéltem már. Egy virtualizációs technológia, amely a 2.6.20-as Linux kernelben mutatkozik majd be (egyébként önállóan már régebb óta is elérhető). A KVM jelentése "Kernel-based Virtual Machine". A stuff honlapja szerint a KVM "teljes virtualizációt" nyújt a korszerű x86 architektúrájú (Intel VT, AMD AMD-V) gépek gazdái számára. Mivel "teljes virtualizációt" valósít meg, az előnye a paravirtualizációt megvalósító megoldásokkal (például Xen) szemben, hogy rajta módosítás nélkül lehet futtatni a "guest" operációs rendszereket. A hátránya a paravirtualizációval szemben (ahol a "guest" operációs rendszer kernelét felkészítik a virtualizációra), hogy lassabb. Molnár Ingo most egy olyan patch-csel állt elő, amely felkészíti a KVM-et a paravirtualizációra.

Ingo tegnap mutatta be "paravirtualized KVM" patch-ét, mellyel paravirtualizált Linux-ot lehet Linux KVM alatt futtatni. A patch továbbá olyan szolgáltatásokat is tartalmaz, amellyel a kernel ki tudja aknázni az új Intel processzorokban levő hardware cr3-cache szolgáltatást. Ez a szolgáltatás hardveresen gyorsítja a context switch-eket és a TLB flush-öket.

A kód egyelőre kísérleti és néhol nem teljes. Használatához 2.6.20-rc3 + KVM trunk kernel szükséges. A patch elérhető innen.

Ingo levelében mellékelt néhány benchmark adatot is a context switch teljesítményről, amely a patch-csel már most 30%-nyi javulást mutat.

A bejelentés itt.

Hozzászólások

Ez a fickó tud valamit. Fene se gondolta volna, hogy fizikus...

Valaki aki jobban ismeri ezeket a virtualizacios megoldasokat felvilagositana, hogy miert kell a kernelbe egy teljesen uj virtualizacios kodot betenni. Ha jol emlekszem regen volt rola szo, hogy a Xen kerul beolvasztasra.

Olyasmire is emlekszem, hogy kesziteni akartak egy kozos kernelbeli reszt amit majd hasznalni fog a Xen es a VMWare is. Ez lenne a KVM?

Kulonben is mi kulonbseg van a VMWare/Xen/Qemu/KVM kozott?

Jó, jó. Ok.
Mit is jelent ez pontosabban?
A Kernel segítségével lehet majd pl. winfost futtatni Linux alatt? Vagy mit?