V dobi ra­ču­nal­ni­štva v oblaku so hi­per­vi­zor­ji, kot sta KVM in Xen, postali po­memb­nej­ši kot kdaj koli prej. Toda v čem se ti dve vir­tu­a­li­za­cij­ski teh­no­lo­gi­ji raz­li­ku­je­ta? V pri­mer­ja­vi med Xen in KVM bomo pogledali po­dob­no­sti in razlike med njima.

Xen na kratko

Xen je od­pr­to­ko­dna vir­tu­a­li­za­cij­ska pro­gram­ska oprema, ki omogoča sočasno izvajanje več go­stu­jo­čih ope­ra­cij­skih sistemov na enem go­sti­telj­skem ra­ču­nal­ni­ku. Xen upravlja do­de­lje­va­nje strojne opreme na go­sti­telj­skem ra­ču­nal­ni­ku.

Kakšen tip hi­per­vi­zor­ja je Xen?

Xen je hi­per­vi­zor tipa 1 (ali bare metal). Ta tip hi­per­vi­zor­ja se namesti ne­po­sre­dno na fizični sistem in ko­mu­ni­ci­ra s strojno opremo prek lastnih go­nil­ni­kov. Go­sti­telj­ski in gostujoči ope­ra­cij­ski sistemi so nameščeni nad hi­per­vi­zor­jem Xen. Da bi raz­li­ko­val med raz­lič­ni­mi ravnmi pri­vi­le­gi­jev, Xen razvršča nameščene ope­ra­cij­ske sisteme v dve različni domeni: dom0 in domU. Go­sti­telj­ski ope­ra­cij­ski sistem pripada domeni dom0 in ima najvišjo raven pri­vi­le­gi­jev, medtem ko so vsi gostujoči ope­ra­cij­ski sistemi raz­vr­šče­ni kot sistemi brez pri­vi­le­gi­jev in pripadajo domeni domU.

Go­sti­telj­ski ope­ra­cij­ski sistem ne ko­mu­ni­ci­ra ne­po­sre­dno s strojno opremo prek svojih go­nil­ni­kov, ampak prek hi­per­vi­zor­ja, ki uporablja spe­ci­a­li­zi­ra­no Xen API. Ta globoka in­te­gra­ci­ja za­go­ta­vlja učin­ko­vi­tej­šo rabo strojne opreme, manjše stroške in manjšo površino za napade.

Kako Xen uporablja pa­ra­vir­tu­a­li­za­ci­jo za povečanje učin­ko­vi­to­sti

Xen uporablja tehniko vir­tu­a­li­za­ci­je, imenovano pa­ra­vir­tu­a­li­za­ci­ja, za povečanje učin­ko­vi­to­sti. S to tehniko hi­per­vi­zor ne emulira strojne kom­po­nen­te, gostujoči sistemi pa se zavedajo, da delujejo v vir­tu­a­li­zi­ra­nem okolju. To omogoča veliko hitrejšo ko­mu­ni­ka­ci­jo med go­stu­jo­či­mi ope­ra­cij­ski­mi sistemi in Xenom, kar vodi do povečane zmo­glji­vo­sti.

Vendar pa ta pristop temelji na spe­ci­a­li­zi­ra­nih go­nil­ni­kih in posebnih vgrajenih zmo­glji­vo­stih v jedru ope­ra­cij­ske­ga sistema. Mnoga široko upo­ra­blja­na jedra ope­ra­cij­skih sistemov, kot sta Linux in BSD, že več let podpirajo pa­ra­vir­tu­a­li­za­ci­jo.

Če upo­ra­blja­te ope­ra­cij­ski sistem, v katerem pa­ra­vir­tu­a­li­za­ci­ja ni mogoča ali ni zaželena, Xen podpira tudi popolno vir­tu­a­li­za­ci­jo (kjer so strojne kom­po­nen­te virtualno emulirane). Čeprav to upočasni vir­tu­a­li­za­ci­jo, za­go­ta­vlja visoko zdru­žlji­vost, kar omogoča, da ope­ra­cij­ski sistemi, ki ne podpirajo pa­ra­vir­tu­a­li­za­ci­je, delujejo pod Xen.

Kakšne so ključne zna­čil­no­sti KVM?

Tako kot Xen je tudi KVM (Kernel-based Virtual Machine) od­pr­to­ko­dni hi­per­vi­zor, ki upo­rab­ni­kom omogoča zagon več go­stu­jo­čih ope­ra­cij­skih sistemov na enem fizičnem ra­ču­nal­ni­ku. Čeprav oba hi­per­vi­zor­ja služita istemu osnovnemu namenu, se njuna ar­hi­tek­tur­na zasnova razlikuje, zato je vsak hi­per­vi­zor primeren za različne primere uporabe.

Kakšen tip hi­per­vi­zor­ja je KVM?

V pre­te­klo­sti se je KVM pogosto imenoval hi­per­vi­zor tipa 2, ker je lahko ko­mu­ni­ci­ral s strojno opremo le prek go­nil­ni­kov go­sti­telj­ske­ga ope­ra­cij­ske­ga sistema. KVM je moral emulirati vse strojne kom­po­nen­te za gostujoče sisteme, kar je one­mo­go­ča­lo pa­ra­vir­tu­a­li­za­ci­jo.

KVM je bil kasneje razširjen, da vključuje tudi pa­ra­vir­tu­a­li­za­ci­jo. Način delovanja se razlikuje od Xen. Za razliko od Xen, KVM ni nameščen pod go­sti­telj­skim ope­ra­cij­skim sistemom, ampak je ne­po­sre­dno in­te­gri­ran v jedro Linux. KVM uporablja pro­gram­ske kom­po­nen­te sistema Linux za upra­vlja­nje vir­tu­a­li­zi­ra­nih sistemov in njihovih procesov.

V okviru KVM ima vsak gostujoči ope­ra­cij­ski sistem svoj vir­tu­a­li­zi­ran nabor strojne opreme, vključno z omrežnimi vmesniki, diskovnim po­mnil­ni­kom in drugimi vrstami strojne opreme. Za po­spe­ši­tev popolne vir­tu­a­li­za­ci­je KVM uporablja vir­tu­a­li­za­ci­jo s podporo strojne opreme, ki je že prisotna v večini sodobnih pro­ce­sor­jev.

V KVM ni vsaka kom­po­nen­ta popolnoma vir­tu­a­li­zi­ra­na. Da bi iz­bolj­ša­li zmo­glji­vost delujočih sistemov in aplikacij, KVM ponuja pa­ra­vir­tu­a­li­zi­ra­ne vmesnike, ki lahko ne­po­sre­dno ko­mu­ni­ci­ra­jo s hi­per­vi­zor­jem prek Virtio API. KVM uporablja pa­ra­vir­tu­a­li­za­ci­jo predvsem za vhodne in izhodne naprave, kot je omrežni vmesnik. Zato ljudje pri razpravi o KVM pogosto opisujejo, da uporablja delno pa­ra­vir­tu­a­li­za­ci­jo.

KVM proti Xen, pri­mer­ja­va njune zmo­glji­vo­sti

Glavna razlika med tema dvema hi­per­vi­zor­je­ma je v tem, kje delujeta znotraj pro­gram­ske opreme. KVM je in­te­gri­ran v jedro Linux in uporablja vir­tu­a­li­za­ci­jo s pomočjo strojne opreme za vir­tu­a­li­za­ci­jo številnih strojne opreme brez večjih izgub zmo­glji­vo­sti. Primarni IO vmesniki so pa­ra­vir­tu­a­li­zi­ra­ni, kar je za večino stre­žni­ških aplikacij verjetno najbolj pomemben vidik.

Xen pa se tra­di­ci­o­nal­no namesti pod ope­ra­cij­skim sistemom kot hi­per­vi­zor tipa 1. To pomeni , da hi­per­vi­zor sam upravlja z raz­po­re­di­tvi­jo strojne opreme. Te­o­re­tič­no to omogoča Xenu učin­ko­vi­tej­šo in zmo­glji­vej­šo ko­mu­ni­ka­ci­jo s strojno opremo. Vendar pa Virtio gonilniki KVM in vir­tu­a­li­za­ci­ja s podporo strojne opreme njegovo zmo­glji­vost po­sta­vlja­jo na enako raven kot Xen.

Pri­tr­di­tev pro­ce­sor­ja

Kljub podobnim ravnem zmo­glji­vo­sti, oba hi­per­vi­zor­ja ne delujeta enako v vseh sce­na­ri­jih. Kar zadeva CPU pinning, KVM svojim upo­rab­ni­kom ponuja več moči. S CPU pinningom lahko KVM dodeli fizični procesor (ali pro­ce­sor­sko jedro) vir­tu­a­li­zi­ra­ne­mu pro­ce­sor­ju, s čimer zagotovi izključno uporabo za ta virtualni sistem. Od obeh hi­per­vi­zor­jev samo KVM ponuja to funkcijo, ki je še posebej koristna za apli­ka­ci­je, ki in­ten­ziv­no upo­ra­blja­jo CPU.

Zmo­glji­vost omrežja

Glede zmo­glji­vo­sti omrežja je Xen v vodstvu. Čeprav oba hi­per­vi­zor­ja za­go­ta­vlja­ta pa­ra­vir­tu­a­li­zi­ra­ne omrežne vmesnike, ima vsak sistem, vir­tu­a­li­zi­ran pod KVM, svojo lastno omrežno napravo. Pri Xenu vsi gostujoči sistemi delijo en sam virtualni omrežni vmesnik, kar poveča učin­ko­vi­tost.

Povzetek

Vprašanje, kateri hi­per­vi­zor je boljši, je odvisno od vaših zahtev. Vodilni na trgu KVM je in­te­gri­ran v jedro Linux in ponuja možnost popolne vir­tu­a­li­za­ci­je. Ti vidiki ga bistveno olajšajo uporabo.

Vendar pa Xenove polne zmo­glji­vo­sti pa­ra­vir­tu­a­li­za­ci­je pomenijo, da lahko te­o­re­tič­no zagotovi boljšo zmo­glji­vost. Ključni dejavniki, ki jih morate upo­šte­va­ti pri izbiri hi­per­vi­zor­ja, so apli­ka­ci­je, ki jih želite vir­tu­a­li­zi­ra­ti, in raven izkušenj, ki jih imate.

Tip

Iščete al­ter­na­ti­vo za hi­per­vi­zor, da bi lahko svojo IT in­fra­struk­tu­ro preselili v oblak? Uporabite storitev selitve v oblak od IONOS in uživajte v cenovno dostopnih ka­ko­vo­stnih storitvah in najvišji ravni varnosti.

Go to Main Menu