Linux-kernel krijgt ingebouwde virtualisatiesoftware

Een van de nieuwe features in versie 2.6.20 van de Linux-kernel is de virtualisatiesoftware KVM. Een groot verschil met concurrerende software van onder meer XenSource en VMware is dat KVM onderdeel is van de kernel, wat een performancevoordeel kan bieden.

De KVM-software bestaat uit twee delen: een kernelmodule en een userspacecomponent. De kernelmodule zorgt ervoor dat geheugen- en I/O-aanroepen vanuit de gevirtualiseerde omgeving op de juiste wijze worden afgehandeld. Het andere KVM-onderdeel is een wat aangepaste versie van de Qemu-virtualisatiesoftware, die nodig is om de gevirtualiseerde omgeving op te starten. Iedere virtuele machine heeft, net als bij de VMware en Xen, toegang tot gevirtualiseerde hardware, zoals een netwerkkaart en een grafische kaart, zodat ze als een 'volwaardige' pc kan functioneren. Wie gebruik wil maken van KVM moet beschikken over een processor met ondersteuning voor de hardwarematige virtualisatietechnieken van Intel en AMD, respectievelijk Intel Virtualization Technology en AMD Virtualization genoemd.

Een groot verschil tussen KVM enerzijds en bijvoorbeeld VMware en Xen anderzijds is dat eerstgenoemde een onderdeel is van de Linux-kernel en de andere niet. Op het eerste oog mag dit misschien een klein verschil lijken, dit betekent tegelijkertijd dat virtualisatiesoftware die zich niet in de kernel bevindt ook geen gebruik kan maken van bepaalde kernelfeatures. Zo kan KVM wel gebruikmaken van de scheduler en de geheugenmanager, die beide al jarenlang in ontwikkeling zijn, van de kernel. De virtualisatiesoftware hoeft zich daar dus verder niet meer mee bezig te houden, wat een performancevoordeel kan opleveren. Daarnaast gedragen via KVM gevirtualiseerde omgevingen zich als gewoon Linux-proces, waardoor het beheer eenvoudiger zou moeten zijn, aldus een white paper van de KVM-site.

Tux (linux logo)De met KVM concurrerende bedrijven zijn aangewezen op eigen ontwikkelaars om kernelmodules van hun software te ontwikkelen, als ze op vergelijkbare wijze als KVM toegang willen krijgen tot de kernel. Dat vergt echter grote aanpassingen in de code. Overigens is met het toevoegen van KVM aan de Linux-kernel geen antwoord gegeven op de vraag of Xen dan wel VMware onderdeel worden van de kernel, waar medio 2006 en eind oktober 2005 al over gesproken werd. Het is namelijk nog steeds mogelijk dat een van beide stukken software al dan niet geheel geïntegreerd wordt in de kernel. Versie 2.6.20 van de Linux-kernel zal naar verwachting over enkele weken gereleased worden.

Door Harm Hilvers

Freelance nieuwsposter

09-01-2007 • 19:04

43

Bron: KernelTrap

Lees meer

XenSource lanceert XenEnterprise 4
XenSource lanceert XenEnterprise 4 Nieuws van 13 augustus 2007
Fedora 6 krijgt uitstel te verduren
Fedora 6 krijgt uitstel te verduren Nieuws van 10 oktober 2006

Reacties (43)

43
41
19
2
0
18
Wijzig sortering
KVM heeft echter wel een klein nadeeel t.o.v. Xen, Xen draait namelijk ook op andere os'en (zoals NetBSD en FreeBSD) en is verder in staat om deze OS'en ook als guest te draaien - verder kun je met de hardware virtualisatie van Intel/AMD zo'n beetje ider x86 OS onder Xen draaien.
Het bied niet zoveel extra om code in de Linux-kernel op te nemen die ook op andere OS'en draait :+ Bovendien draait kvm ook alle OS'en (WIndows incluis), dus een behoorlijk krachtig stukje kernel mag ik wel zeggen. Dat *BSD er niets aan heeft, maar het voor gebruik in Linux niet minder nuttig natuurlijk...
Xen kan genoemde OS'en draaien op alle hardware (vanaf P3 oid, anders wordt het te traag), omdat men kleine wijzigingen aanbrengt in de kernels van deze OS'en.

Als ik jouw reactie zo lees dan begrijp ik hieruit dat KVM gebruik maar van de Intel VT en AMD (Pacifica?) oplossingen om zo op hardware niveau te virtualiseren.
Xen kan dit ook hoor! Hij heeft alleen wijzigingen in de Guest-OS'en nodig als er geen VT beschikbaar is.
Juist?
Dus iemand die een linux machine draait gaat geen KVM gebruiken. omdat hij Xen ook kan gebruiken als hij geen linux machine heeft?

btw ik dacht er al over na om een thin-linux op mijn laptop te zetten om daar overheeft VM's te draaien. Dit maakt de keuze stukken makkelijker
Voor zover ik het begrijp wordt de kvm door qemu aangesproken. Die ook op bijvoorbeeld FreeBSD os X en zelfs windows draait.

Dit is nog een performance test van de kvm module.

En de werking van KVM en whitepaper voor kvm.

En nog verklaringen van types en historie van virtualisatie (interessant).

De officiele webpagina van kvm.

[toegevoegd]
Persoonlijke note: Ik denk dat kvm heel erg goed als desktop virtualisatie (is heel gemakkelijk op te zetten vergelijkbaar met vmware workstation etc) maar xen weer beter is als server virtualisatie (heel snel maar grafisch guest os nog redelijk complex). Ik hoop dat de xen code ook in de kernel komt.
Xen draait op andere OSen? wist niet dat je Xen net als vmware workstation/player als applicatie kan draaien.

Maar als je xen server (of hoe dat ook maar heet) draait, is dat gewoon een linux kernel meen ik (de domain 0)

zelfde met ESX (van vmware), die start gewoon een linux kernel tezamen met een redhat als 'console' (volgens mij dus hetzelfde princiepe, domain0 de redhat, de guests alles andere)


Als je op guest OSen doelde, en je post niet helemaal klopt mss, KVM draait alles native (als je een CPU met Virtualizatie techniek hebt). Inc. windows (x32 op et moment enkel) en ze gaan straks ook Mac OS X laten draaien meen ik. Dus KVM is heel mooi iets.

Persoonlijk denk ik trouwens dat KVM is gekomen, omdat vmware en xen het niet eens konden worden over een hypervisor voor de kernel. Linus wilde dr wel 1 in hebben, maar wel maar 1, niet 2 verschillende.
Anoniem: 204053 9 januari 2007 19:40
Sorry maar volgens mijn weten gebruik het VMware ESX product ook zijn eigen kernel om dezelfde performantie redenen:

ESX Server 2.x - Red Hat Linux 7.2.
ESX Server 3.x - Red Hat Enterprise Linux 3

zodus zou het hele artikel beetje rond de pot draaien zijn en het warm water opnieuw uitvinden
Sterker nog Vmware ESX IS een eigen kernel. Die linux versies die jij door noemt zijn geen OSen waar ESX op draait maar het OS wat gebruikt wordt door het Service Console (SC).

ESX zelf is dus z'n eigen OS. Heeft niks met linux te maken. Het beheer wordt alleen via een linux virtuele machine gedaan (draait dus OP de virtualisatie laag).

KVM is dus niks nieuws. Wel nieuw is natuurlijk dat het in de Linux kernel zit en dus waarschijnlijk op alle hardware wel wil draaien. Dat is met ESX niet zo, die draait alleen op machines die op de HCL staan.
Ik heb het net geinstallert op m'n pc, en het draait wel lekker :)

Het is overigens idioot simpel om het aan de praat te krijgen, installeren en draaien.
Anoniem: 188035 @elleP9 januari 2007 21:07
Heb je misschien een howto gevolgd, en zo ja heb je een linkje voor me?
http://popey.com/Compiling_kvm_Under_Ubuntu_Edgy_i386
http://kvm.sourceforge.net/howto.html
http://linux.inet.hr/fina...ualization-for-linux.html

Het gemak van installatie is volgens mij ook de belangrijkste troef. Ik heb ooit nog met Xen geknoeid, maar heb het opgegeven. KVM aan de praat krijgen daarentegen is een kwestie van minuten.
Heel fijn nieuws: twee maanden geleden was ik nog aan het spelen met Qemu onder linux en ik was erg onder de indruk toen ik MS server 2k3 onder linux op een P3@733MHz had draaien, snel ging het niet, maar het werkte en wat verwachtte ik dan ook van die oude server? :+
Tegelijkertijd ben ik een laptop uit gaan zoeken en die heb ik nu 2 weken. De keuze als processor voor de laptop is een C2D geworden, niet alleen om die extra instructies die virtualisatie zouden 'helpen'. Ik was dan ook zeer benieuwd wanneer er vm-software zou uitkomen die deze features in de proc zou uitbuiten.
Maar natuurlijk, linux gaat het ondersteunen vannuit de kernel zelf, fantastisch!
Mijn voorspelling is dat virtualisatie een belangrijke rol gaat spelen in de toekomst, naast stroomverbruik. Denk aan de schaalbaarheid, veiligheid en het makkelijke onderhoud van een serverpark.
Maar thuis spelen met virtualisatie mag gelukkig ook nog steeds ;)
Ben met je eens dat Virtualisatie geen buzzword is maar een feit waar je niet langer omheen kunt.

Ofdat de integratie met de kernel het succes zal bepalen , durf ik te betwijfelen. Het zullen toch de management tools en high availabilty features zijn die gaan bepalen of bedrijven gaan kiezen voor dit soort platform.

En net als Xen is dit nu net hetgene waar nog zwaar aangesleuteld moet worden.

Voordeel van VMWare is toch wel dat je overal hetzelfde platform gaat vinden, het de linux wereld betekend dit weer honderden mogelijke varianten en naar mijn bescheiden mening is dat nu net hetgene wat bedrijven niet willen. Die willen 1 platform, overal hetzelfde, overal hetzelfde supportmodel etc.
VB bij VMware weet je precies welke hardware gaat werken, bij KVM ga je nu weer afhankelijk zijn van datgene wat in de kernel gecompileerd werd voor out-of-the-box config, maw stop je extra hardware in je server zul je eerst moeten checken of jou kernel hiervoor ook gecompileerd is (dit lijkt me niet zo makkelijk) terwijl je bij VMware gewoon effe compatibility lijst moet aflopen en meteen weet of je hardware gesupporteerd is.

Maar we zijn natuurlijk blij met al deze "virtuele " weelde
Que?

Ik ben het absoluut met je eens dat bedrijven support willen. Maar dat 2de voordeel ...

Bij VMWare heb je een compatibilty lijst van hardware, dus je koopt alleen ondersteunde hardware, logisch, zou het zelf niet anders doen.

En dan bij KVM gooi je random wat hardware bijelkaar, en dan moet je maar hopen dat het door KVM ondersteund word? Beetje kromme manier van redeneren.

Ten eerste koop je een KVM-ed server dan in zn geheel lijkt me, maar als een geheel product via een supplier die support, hardware en software leverd.

Een tweede optie zou zijn, dat je supplier dan ook een Compatibility list heeft van zijn packet (software +support, denk dus aan voor gecompilede kernel met apps etc, ala debian, redhat oid, waar ook niet alle hardware out of the box support word (wel veel natuurlijk)).

Een derde optie is dat je je eigen kernel bakt, om dan op je eigen hardware te draaien. Maar ook hier zul je een linux compatibility lijst voor controleren of je hardware supported is. En dan natuurlijk een support contract afsluiten, maar denk dat dat wat lastiger is voor je zelfgebouwde systeem, al zal het wel degelijk bestaan.

Dus om op die manier KVM met VMWare te gaan vergelijken is niet alleen maar oneerlijk, maar ook gewoon apples met grapefruits vergelijken.
Dat van die ungesupporteerd hardwae schrijf ik helemaal nergens.

Ik zeg dat wanneer je nu een IBM server hebt en een HP je niet met zekerheid weet of de netwerkkaart die in de IBM server zit ook gaat werken in de HP server en dat je steeds moet weten hoe de kernels gecompileerd werden maw gigantisch veel mogelijkheden , daar waar je bij VMWare enkel naar VMWare hun HCl moet kijken zul je nu moeten rekening houden met custom build kernels en dat maakt de zaak niet makkelijker wanneer je bv een groo aantal vMWares onderhoudt bij honderden verschillende klanten.
Anoniem: 195425 9 januari 2007 20:18
Lijkt mij zelfde integratie zoals virutuozo doet, ook via gemeenschappelijke kernel. http://www.virtuozzo.com
k ben heel benieuwd hoe de reacties hier eruit zouden zien als Linux vervangen was door Windows ?
k ben heel benieuwd hoe de reacties hier eruit zouden zien als Linux vervangen was door Windows ?
Is Windows al open source dan?
Of heeft Linux al een monopoliepositie?
Bij windows lijkt me dit ook lang niet zosnel aan de orde, omdat de enige die iets met de kernel doet Microsoft zelf is.
De reactie die jij geeft is dan ook 1 die dat altijd naar voren komt, net zoals er bij windows altijd dezelfde opmerkingen komen, enkel is het nu nogal vroeg om zo te reageren aangezien er nog maar 1 andere post is.
Ieder bedrijf kan een kernelmodule schrijven voor de Linux kernel en dus gebruik maken van dezelfde voordelen die KVM nu heeft.
Bij de windows kernel ligt dat net even anders.
Anoniem: 15322 10 januari 2007 06:00
Persoonlijk denk ik trouwens dat KVM is gekomen, omdat vmware en xen het niet eens konden worden over een hypervisor voor de kernel. Linus wilde dr wel 1 in hebben, maar wel maar 1, niet 2 verschillende.
Het is wel grappig om te zien dat Linux discussies vaak postings hebben waar een gemiddelde HT&K gebruiker geen touw aan kan vastknopen. Windows discussies hebben dat veel minder. Zo blijft Linux natuurlijk het imago van nerdware houden en zullen Piet en Bep het nooit op hun Aldi PC installeren.
Als je niet begrijpt wat er gezegd wordt, betekent dat niet dat de poster dommer moet worden, maar dat jij slimmer moet worden.
Wat ik nou niet helemaal begrijp:
Iedere virtuele machine heeft, net als bij de VMware en Xen, toegang tot gevirtualiseerde hardware, zoals een netwerkkaart en een grafische kaart, zodat ze als een 'volwaardige' pc kan functioneren.
Bedoelen ze daar nou mee dat ik dus mijn videokaart kan gebruiken in de VM? want dat zou wel een handig alternatief voor cedega/wine zijn :)

toch onder linux gamen! :) Daar lever ik graag 10% cpu +10% gpu overhead voor in. aangezien mn performance stukke lager ligt onder cedega/wine.
Al denk ik dat dat niet zo makkelijk gaat, todat de GPU ook support voor virtualizatie heeft (daar is ATi o.a. toch ook mee bezig?)
Je kan de kaarten IN het guest-OS gebruiken

de host heeft verder er niks mee te maken

als je buiten wine/cedega wilt gamen moet je toch windows in een VM draaien

en dat kost ook performance *praat uit ervaring*
Dat het performance kost, snap ik. Je hebt je VM overhead.

Dat je windows in een VM draait, begrijp ik ook (of react OS).

Maar ik vind een linux desktop gewoon velemalen lekkerder werken dan de windows desktop. Word al helemaal claustrophobish zonder mn virtual desktops ;p (gebruik litestep onder win dus daar heb je wel VD's)

en nog meer van die dingen, en dat continue gereboot heb je dan ook niet. Ik zit de heledag in linux, weken achtereen. de laatste keer dat ik langer dan half uurtje in windows heb gezeten is .... meer dan een jaar al geleden.
Het zal waarschijlijk een virtuele grafische kaart worden, en de kans dat zo'n aparaat hardwarematige 3d ondersteuning levert is meestal klein, maar met een beetje geluk wordt er wel softwarematige ondersteuning gegeven, hoewel de kans daarop klein is.
dat vrees ik dus ook. Aan de andere kant, als je via de kernel directe toegang hebt op de hardware, zou het dus wel mogelijk kunnen zijn denk ik.

Iig word dat de volgende stap hoop ik in virtualizatie.

Dat je door de emulatie verlies hebt op de performance snap ik, maar is mee te leven, mins het binnen acceptable perken blijft.
De virtualisatie technologie zorgt er alleen voor dat de CPU virtueel is, en dat geheugenallocaties afgebogen worden, de GPU blijft alleen en wordt dan gedeeld door de gast cpu en de host cpu.
Dit zal dan problemen opleveren met toegang tot het videogeheugen , als je teruggaat naar de host zal het videobuffer corrupt raken, en dus voor problem zorgen.
Alleen als de GPU niet gedeelt word kan virtualisatie werken. Wat ik zo lees over KVM (virtuele processen in plaats van een heel os) zou het mischien kunnen, maar verwacht geen windows games
dus nu worden er zaken aan de kernel toegevoegd die vanuit virtualisatie benaderbaar zijn. Lijkt me een fraai object voor hacks.
Als je zelf wel eens een kernel gebakken hebt, dan weet je dat een features ook kunt uitzetten.

Op dezelfde manier dat je nu via menuconfig een juiste netwerkkaart driver kunt selecteren, zal je straks waarschijnlijk virtualisatie omgevingen kunnen selecteren.

De linux kernel is een van de meest bekende stukjes open-source software met een enorme development base. Verder weten deze kernel hackers precies hoe ze elk bitje moeten zetten.

Dus als je straks kunt kiezen voor virtuele server software als KVM, OpenVz, Xen of vServer dan is dat een grote plus.
Betekent dit nou ook dat je hiermee vanuit je guest-OS hardware direct kan aanspreken in plaats van met gesimuleerde devices te zitten zoals in VMWare?

De situatie die ik wel zie zitten is om linux op mn machine te hebben draaien met Windows in een virtuele machine. Dit is natuurlijk al een tijd mogelijk, maar ik wil dan ook specifieke hardware drivers kunnen installeren voor bv de grafische kaart. Voor zover ik het heb begrepen is dit mogelijk door virtualisatie in de prcoessor in te bouwen en maakt KVM hier ook gebruik van.

Op dit item kan niet meer gereageerd worden.