In het tijdperk van cloud computing zijn hy­per­vi­sors zoals KVM en Xen be­lang­rij­ker dan ooit geworden. Maar waarin ver­schil­len deze twee vir­tu­a­li­sa­tie­tech­no­lo­gie­ën van elkaar? In onze ver­ge­lij­king tussen Xen en KVM bekijken we de over­een­kom­sten en ver­schil­len tussen beide.

Xen in een oogopslag

Xen is open-source vir­tu­a­li­sa­tie­soft­wa­re waarmee meerdere gast­be­stu­rings­sys­te­men te­ge­lij­ker­tijd op één host­ma­chi­ne kunnen worden uit­ge­voerd. Xen beheert de toe­wij­zing van de hard­wa­re­bron­nen op de host­ma­chi­ne.

Wat voor soort hy­per­vi­sor is Xen?

Xen is een Type 1 (of bare metal) hy­per­vi­sor. Dit type hy­per­vi­sor wordt recht­streeks op een fysiek systeem ge­ïn­stal­leerd en com­mu­ni­ceert met hardware via zijn eigen stuur­pro­gram­ma’s. Host- en gast­be­stu­rings­sys­te­men worden bovenop de Xen-hy­per­vi­sor ge­ïn­stal­leerd. Om on­der­scheid te maken tussen ver­schil­len­de privilege-niveaus, ca­te­go­ri­seert Xen de ge­ïn­stal­leer­de be­stu­rings­sys­te­men in twee ver­schil­len­de domeinen: dom0 en domU. Het host­be­stu­rings­sys­teem behoort tot het dom0-domein en geniet het hoogste privilege-niveau, terwijl alle gast­be­stu­rings­sys­te­men worden ge­clas­si­fi­ceerd als niet-be­voor­rech­te systemen en tot het domU-domein behoren.

Het host­be­stu­rings­sys­teem com­mu­ni­ceert niet recht­streeks met de hardware via zijn stuur­pro­gram­ma’s, maar via de hy­per­vi­sor met behulp van een ge­spe­ci­a­li­seer­de Xen API. Deze diep­gaan­de in­te­gra­tie zorgt voor een ef­fi­ci­ën­ter gebruik van de hardware, minder overhead en een kleiner aan­vals­op­per­vlak.

Hoe Xen pa­ra­vir­tu­a­li­sa­tie gebruikt om de ef­fi­ci­ën­tie te verhogen

Xen maakt gebruik van de vir­tu­a­li­sa­tie­tech­niek pa­ra­vir­tu­a­li­sa­tie om de ef­fi­ci­ën­tie te verhogen. Bij deze techniek emuleert de hy­per­vi­sor geen hard­wa­re­com­po­nen­ten en zijn gast­sys­te­men zich ervan bewust dat ze in een ge­vir­tu­a­li­seer­de omgeving werken. Dit zorgt voor een veel snellere com­mu­ni­ca­tie tussen gast­be­stu­rings­sys­te­men en Xen, wat leidt tot betere pres­ta­ties.

Deze aanpak is echter af­han­ke­lijk van ge­spe­ci­a­li­seer­de stuur­pro­gram­ma’s en spe­ci­fie­ke in­ge­bouw­de mo­ge­lijk­he­den in de kernel van het be­stu­rings­sys­teem. Veel veel­ge­bruik­te be­stu­rings­sys­teem­ker­nels, zoals Linux en BSD, on­der­steu­nen al jaren pa­ra­vir­tu­a­li­sa­tie.

Als u een be­stu­rings­sys­teem gebruikt waarop pa­ra­vir­tu­a­li­sa­tie niet mogelijk of gewenst is, on­der­steunt Xen ook volledige vir­tu­a­li­sa­tie (waarbij hard­wa­re­com­po­nen­ten virtueel worden ge­ë­mu­leerd). Hoewel dit de vir­tu­a­li­sa­tie vertraagt, biedt het een hoge com­pa­ti­bi­li­teit, waardoor be­stu­rings­sys­te­men die geen pa­ra­vir­tu­a­li­sa­tie on­der­steu­nen, onder Xen kunnen draaien.

Wat zijn de be­lang­rijk­ste kenmerken van KVM?

Net als Xen is KVM (Kernel-based Virtual Machine) ook een open-source hy­per­vi­sor waarmee ge­brui­kers meerdere gast­be­stu­rings­sys­te­men op één fysieke machine kunnen draaien. Hoewel beide hy­per­vi­sors hetzelfde fun­da­men­te­le doel dienen, is hun ar­chi­tec­to­ni­sche ontwerp ver­schil­lend, waardoor elke hy­per­vi­sor geschikt is voor ver­schil­len­de ge­bruiks­si­tu­a­ties.

Wat voor soort hy­per­vi­sor is KVM?

In het verleden werd KVM vaak aangeduid als een Type 2-hy­per­vi­sor, omdat het alleen via de stuur­pro­gram­ma’s van het host­be­stu­rings­sys­teem met hardware kon com­mu­ni­ce­ren. KVM moest alle hard­wa­re­com­po­nen­ten voor de gast­sys­te­men emuleren, waardoor pa­ra­vir­tu­a­li­sa­tie on­mo­ge­lijk was.

KVM is sindsdien uit­ge­breid met pa­ra­vir­tu­a­li­sa­tie. De manier waarop het werkt, verschilt echter van Xen. In te­gen­stel­ling tot Xen wordt KVM niet onder het host­be­stu­rings­sys­teem ge­ïn­stal­leerd, maar recht­streeks in de Linux-kernel ge­ïn­te­greerd. KVM gebruikt de soft­wa­re­com­po­nen­ten van het Linux-systeem om ge­vir­tu­a­li­seer­de systemen en hun processen te beheren.

Onder KVM heeft elk gast­be­stu­rings­sys­teem zijn eigen ge­vir­tu­a­li­seer­de set hardware, waaronder net­werk­in­ter­fa­ces, schijf­op­slag en andere soorten hard­wa­re­com­po­nen­ten. Om volledige vir­tu­a­li­sa­tie te ver­snel­len, maakt KVM gebruik van hardware-on­der­steun­de vir­tu­a­li­sa­tie, die al in de meeste moderne pro­ces­sors aanwezig is.

Niet elk onderdeel ondergaat volledige vir­tu­a­li­sa­tie in KVM. Om de pres­ta­ties van draaiende systemen en ap­pli­ca­ties te ver­be­te­ren, biedt KVM pa­ra­vir­tu­a­li­seer­de in­ter­fa­ces die recht­streeks met de hy­per­vi­sor kunnen com­mu­ni­ce­ren via de Virtio API. KVM maakt voor­na­me­lijk gebruik van pa­ra­vir­tu­a­li­sa­tie voor invoer- en uit­voer­ap­pa­ra­ten zoals de net­werk­in­ter­fa­ce. Daarom wordt KVM vaak om­schre­ven als een systeem dat ge­bruik­maakt van ge­deel­te­lij­ke pa­ra­vir­tu­a­li­sa­tie.

KVM versus Xen, hoe hun pres­ta­ties zich tot elkaar verhouden

Het be­lang­rijk­ste verschil tussen de twee hy­per­vi­sors ligt in waar ze binnen de soft­wa­restack opereren. KVM is ge­ïn­te­greerd in de Linux-kernel en maakt gebruik van hardware-on­der­steun­de vir­tu­a­li­sa­tie om talrijke hard­wa­re­com­po­nen­ten te vir­tu­a­li­se­ren zonder dat dit ten koste gaat van de pres­ta­ties. De primaire IO-in­ter­fa­ces zijn pa­ra­vir­tu­a­li­seerd, wat voor de meeste ser­ver­toe­pas­sin­gen waar­schijn­lijk het be­lang­rijk­ste aspect is.

Xen daar­en­te­gen wordt tra­di­ti­o­neel onder het be­stu­rings­sys­teem ge­ïn­stal­leerd als een Type 1 hy­per­vi­sor. Dit betekent dat de hy­per­vi­sor zelf de dis­tri­bu­tie van hard­wa­re­bron­nen beheert. In theorie zorgt dit ervoor dat Xen ef­fi­ci­ën­ter en beter kan com­mu­ni­ce­ren met de hardware. Dankzij de Virtio-stuur­pro­gram­ma’s en hardware-on­der­steun­de vir­tu­a­li­sa­tie van KVM presteert KVM echter even goed als Xen.

CPU-pinning

Ondanks dat ze qua pres­ta­tie­ni­veau op elkaar lijken, presteren de twee hy­per­vi­sors niet in alle scenario’s even goed. Als het gaat om CPU-pinning, biedt KVM zijn ge­brui­kers meer mo­ge­lijk­he­den. Met CPU-pinning kan KVM een fysieke processor (of een pro­cess­or­kern) toewijzen aan een ge­vir­tu­a­li­seer­de processor, waardoor exclusief gebruik voor dat virtuele systeem wordt ge­ga­ran­deerd. Van de twee hy­per­vi­sors biedt alleen KVM deze functie, wat vooral voordelig is voor CPU-in­ten­sie­ve toe­pas­sin­gen.

Net­werk­pres­ta­ties

Wat betreft net­werk­pres­ta­ties neemt Xen de leiding. Hoewel beide hy­per­vi­sors pa­ra­vir­tu­a­li­seer­de net­werk­in­ter­fa­ces bieden, heeft elk systeem dat onder KVM wordt ge­vir­tu­a­li­seerd zijn eigen net­werk­ap­pa­raat. Bij Xen delen alle gast­sys­te­men één virtuele net­werk­in­ter­fa­ce, wat leidt tot een hogere ef­fi­ci­ën­tie.

Sa­men­vat­ting

De vraag welke hy­per­vi­sor beter is, hangt af van uw vereisten. De markt­lei­der KVM is ge­ïn­te­greerd in de Linux-kernel en biedt de mo­ge­lijk­heid tot volledige vir­tu­a­li­sa­tie. Deze aspecten maken het gebruik ervan fun­da­men­teel een­vou­di­ger.

De volledige pa­ra­vir­tu­a­li­sa­tie­mo­ge­lijk­he­den van Xen betekenen echter dat het in theorie betere pres­ta­ties kan leveren. De cruciale factoren waarmee u rekening moet houden bij het kiezen van een hy­per­vi­sor zijn de ap­pli­ca­ties die u wilt vir­tu­a­li­se­ren en uw er­va­rings­ni­veau.

Tip

Op zoek naar een al­ter­na­tief voor een hy­per­vi­sor zodat u uw IT-in­fra­struc­tuur naar de cloud kunt migreren? Maak gebruik van de cloud­mi­gra­tie­ser­vi­ce van IONOS en profiteer van be­taal­ba­re kwa­li­teits­ser­vi­ces en het hoogste niveau van be­vei­li­ging.

Ga naar hoofdmenu