Pil­vi­pal­ve­lu­jen ai­ka­kau­del­la KVM- ja Xen -tyyppiset hy­per­vi­so­rit ovat tulleet entistä tär­keäm­mik­si. Mutta miten nämä kaksi vir­tua­li­soin­ti­tek­no­lo­gi­aa eroavat toi­sis­taan? Xen vs. KVM -ver­tai­lus­sam­me tar­kas­te­lem­me näiden kahden tek­no­lo­gian yh­tä­läi­syyk­siä ja eroja.

Xen yhdellä sil­mäyk­sel­lä

Xen on avoimen läh­de­koo­din vir­tua­li­soin­tioh­jel­mis­to, joka mah­dol­lis­taa useiden vie­ras­käyt­tö­jär­jes­tel­mien sa­ma­nai­kai­sen käytön yhdellä isän­tä­ko­neel­la. Xen hallinnoi isän­tä­ko­neen lait­teis­to­re­surs­sien al­lo­koin­tia.

Minkä tyyppinen hy­per­vi­sor Xen on?

Xen on tyypin 1 (tai bare metal) hy­per­vi­sor. Tä­män­tyyp­pi­nen hy­per­vi­sor asen­ne­taan suoraan fyysiseen jär­jes­tel­mään ja kom­mu­ni­koi lait­teis­ton kanssa omien ohjainten kautta. Isäntä- ja vie­ras­käyt­tö­jär­jes­tel­mät asen­ne­taan Xen-hy­per­vi­so­rin päälle. Eri käyt­tö­oi­keus­ta­so­jen erot­ta­mi­sek­si Xen luo­kit­te­lee asennetut käyt­tö­jär­jes­tel­mät kahteen eri toi­mia­lu­ee­seen: dom0 ja domU. Isän­tä­käyt­tö­jär­jes­tel­mä kuuluu dom0-toi­mia­lu­ee­seen ja nauttii kor­keim­mas­ta käyt­tö­oi­keus­ta­sos­ta, kun taas kaikki vie­ras­käyt­tö­jär­jes­tel­mät luo­ki­tel­laan käyt­tö­oi­keuk­set­to­mik­si jär­jes­tel­mik­si ja kuuluvat domU-toi­mia­lu­ee­seen.

Isän­tä­käyt­tö­jär­jes­tel­mä ei kom­mu­ni­koi suoraan lait­teis­ton kanssa ajurien kautta, vaan hy­per­vi­so­rin kautta käyttäen eri­kois­tu­nut­ta Xen-so­vel­lus­liit­ty­mää. Tämä sy­väl­li­nen in­tegraa­tio takaa lait­teis­ton te­hok­kaam­man käytön, pienemmät yleis­kus­tan­nuk­set ja pienemmän hyök­käys­pin­nan.

Kuinka Xen käyttää pa­ra­vir­tua­li­soin­tia te­hok­kuu­den pa­ran­ta­mi­sek­si

Xen käyttää vir­tua­li­soin­ti­tek­niik­kaa, pa­ra­vir­tua­li­soin­tia, te­hok­kuu­den pa­ran­ta­mi­sek­si. Tällä tek­nii­kal­la hy­per­vi­sor ei emuloi lait­teis­to­kom­po­nent­te­ja, ja vie­ras­käyt­tö­jär­jes­tel­mät ovat tietoisia siitä, että ne toimivat vir­tua­li­soi­dus­sa ym­pä­ris­tös­sä. Tämä mah­dol­lis­taa paljon nopeamman vies­tin­nän vie­ras­käyt­tö­jär­jes­tel­mien ja Xenin välillä, mikä parantaa suo­ri­tus­ky­kyä.

Tämä lä­hes­ty­mis­ta­pa perustuu kuitenkin eri­kois­tu­nei­siin ajureihin ja käyt­tö­jär­jes­tel­män ytimen eri­tyi­siin si­sään­ra­ken­net­tui­hin omi­nai­suuk­siin. Monet laajalti käytetyt käyt­tö­jär­jes­tel­män ytimet, kuten Linux ja BSD, ovat tukeneet pa­ra­vir­tua­li­soin­tia jo vuosien ajan.

Jos käytät käyt­tö­jär­jes­tel­mää, jossa pa­ra­vir­tua­li­soin­ti ei ole mah­dol­lis­ta tai ei ole toi­vot­ta­vaa, Xen tukee myös täyttä vir­tua­li­soin­tia (jossa lait­teis­to­kom­po­nen­tit emu­loi­daan vir­tu­aa­li­ses­ti). Vaikka tämä hidastaa vir­tua­li­soin­tia, se tarjoaa korkean yh­teen­so­pi­vuu­den, jolloin käyt­tö­jär­jes­tel­mät, jotka eivät tue pa­ra­vir­tua­li­soin­tia, voivat toimia Xenin alla.

Mitkä ovat KVM:n tär­keim­mät omi­nai­suu­det?

Xenin tavoin myös KVM (Kernel-based Virtual Machine) on avoimen läh­de­koo­din hy­per­vi­sor, jonka avulla käyttäjät voivat käyttää useita vie­ras­käyt­tö­jär­jes­tel­miä yhdellä fyy­si­sel­lä koneella. Vaikka molemmat hy­per­vi­so­rit pal­ve­le­vat samaa pe­rus­tar­koi­tus­ta, niiden ark­ki­teh­tuu­ri on erilainen, ja kumpikin hy­per­vi­sor sopii eri käyt­tö­tar­koi­tuk­siin.

Minkä tyyppinen hy­per­vi­sor KVM on?

Aiemmin KVM:ää kut­sut­tiin usein tyypin 2 hy­per­vi­so­rik­si, koska se pystyi kom­mu­ni­koi­maan lait­teis­ton kanssa vain isän­tä­käyt­tö­jär­jes­tel­män ohjainten kautta. KVM:n oli emu­loi­ta­va kaikki vie­ras­käyt­tö­jär­jes­tel­mien lait­teis­to­kom­po­nen­tit, mikä teki pa­ra­vir­tua­li­soin­nin mah­dot­to­mak­si.

KVM on sittemmin laa­jen­net­tu kattamaan myös pa­ra­vir­tua­li­soin­ti. Sen toi­min­ta­ta­pa eroaa kuitenkin Xenistä. Toisin kuin Xen, KVM ei ole asennettu isän­tä­käyt­tö­jär­jes­tel­män alle, vaan se on in­tegroi­tu suoraan Linux-ytimeen. KVM käyttää Linux-jär­jes­tel­män oh­jel­mis­to­kom­po­nent­te­ja vir­tua­li­soi­tu­jen jär­jes­tel­mien ja niiden pro­ses­sien hal­lin­taan.

KVM:n alla jo­kai­sel­la vie­ras­käyt­tö­jär­jes­tel­mäl­lä on oma vir­tua­li­soi­tu lait­teis­to­ko­ko­nai­suus, joka sisältää verk­ko­lii­tän­nät, le­vy­tal­len­nus­ti­lan ja muita lait­teis­to­kom­po­nent­te­ja. Täy­del­li­sen vir­tua­li­soin­nin no­peut­ta­mi­sek­si KVM käyttää lait­teis­to­tuet­tua vir­tua­li­soin­tia, joka on jo käytössä useim­mis­sa ny­ky­ai­kai­sis­sa pro­ses­so­reis­sa.

Kaikki kom­po­nen­tit eivät käy läpi täy­del­lis­tä vir­tua­li­soin­tia KVM:ssä. Käynnissä olevien jär­jes­tel­mien ja so­vel­lus­ten suo­ri­tus­ky­vyn pa­ran­ta­mi­sek­si KVM tarjoaa pa­ra­vir­tua­li­soi­tu­ja ra­ja­pin­to­ja, jotka voivat kom­mu­ni­koi­da suoraan hy­per­vi­so­rin kanssa Virtio API:n kautta. KVM käyttää pa­ra­vir­tua­li­soin­tia pää­asias­sa syöttö- ja tu­los­tus­lait­teis­sa, kuten verk­ko­lii­tän­näs­sä. Siksi KVM:stä pu­hut­taes­sa sitä kuvataan usein osit­tais­ta pa­ra­vir­tua­li­soin­tia käyt­tä­väk­si.

KVM vs. Xen, miten niiden suo­ri­tus­ky­ky vertautuu toisiinsa

Näiden kahden hy­per­vi­so­rin suurin ero on siinä, missä ne toimivat oh­jel­mis­to­pi­nois­sa. KVM on in­tegroi­tu Linux-ytimeen ja käyttää lait­teis­to­tuet­tua vir­tua­li­soin­tia useiden lait­teis­to­kom­po­nent­tien vir­tua­li­soin­tiin ilman mer­kit­tä­viä suo­ri­tus­ky­ky­hä­viöi­tä. En­si­si­jai­set IO-ra­ja­pin­nat ovat pa­ra­vir­tua­li­soi­tu­ja, mikä on to­den­nä­köi­ses­ti tärkein seikka useim­mil­le pal­ve­lin­so­vel­luk­sil­le.

Xen puo­les­taan asen­ne­taan pe­rin­tei­ses­ti käyt­tö­jär­jes­tel­män alle tyypin 1 hy­per­vi­so­ri­na. Tämä tar­koit­taa, että hy­per­vi­sor hallinnoi itse lait­teis­to­re­surs­sien jakamista. Teoriassa tämä mah­dol­lis­taa Xenin te­hok­kaam­man ja suo­ri­tus­ky­kyi­sem­män kom­mu­ni­koin­nin lait­teis­ton kanssa. KVM:n Virtio-ohjaimet ja lait­teis­to­tuet­tu vir­tua­li­soin­ti nostavat kuitenkin sen suo­ri­tus­ky­vyn samalle tasolle Xenin kanssa .

CPU-pinning

Vaikka näiden kahden hy­per­vi­so­rin suo­ri­tus­ky­ky on sa­man­kal­tai­nen, ne eivät toimi samalla tavalla kaikissa ti­lan­teis­sa. CPU-pinning-toiminnon osalta KVM tarjoaa käyt­tä­jil­leen enemmän tehoa. CPU-pinning-toiminnon avulla KVM voi osoittaa fyysisen pro­ses­so­rin (tai pro­ses­so­rin ytimen) vir­tua­li­soi­dul­le pro­ses­so­ril­le, mikä takaa sen yk­sin­omai­sen käytön ky­sei­sel­le vir­tu­aa­li­sel­le jär­jes­tel­mäl­le. Näistä kahdesta hy­per­vi­so­ris­ta vain KVM tarjoaa tämän omi­nai­suu­den, joka on erityisen hyö­dyl­li­nen CPU-in­ten­sii­vi­sil­le so­vel­luk­sil­le.

Verkon suo­ri­tus­ky­ky

Verkon suo­ri­tus­ky­vyn osalta Xen on edel­lä­kä­vi­jä. Vaikka molemmat hy­per­vi­so­rit tarjoavat pa­ra­vir­tua­li­soi­tu­ja verk­ko­lii­tän­tö­jä, jo­kai­sel­la KVM:n alla vir­tua­li­soi­dul­la jär­jes­tel­mäl­lä on oma verk­ko­lai­te. Xenissä kaikki vie­ras­jär­jes­tel­mät jakavat yhden vir­tu­aa­li­sen verk­ko­lii­tän­nän, mikä lisää te­hok­kuut­ta.

Yh­teen­ve­to

Kysymys siitä, mikä hy­per­vi­sor on parempi, riippuu vaa­ti­muk­sis­ta­si. Mark­kin­ajoh­ta­ja KVM on in­tegroi­tu Linux-ytimeen ja tarjoaa mah­dol­li­suu­den täyteen vir­tua­li­soin­tiin. Nämä omi­nai­suu­det tekevät sen käytöstä pe­rus­ta­van­laa­tui­ses­ti helpompaa.

Xenin täy­del­li­set pa­ra­vir­tua­li­soin­ti­ky­vyt tar­koit­ta­vat kuitenkin, että se voi teoriassa tarjota paremman suo­ri­tus­ky­vyn. Hy­per­vi­so­rin va­lin­nas­sa on otettava huomioon kaksi tärkeää tekijää: vir­tua­li­soi­ta­vat so­vel­luk­set ja käyttäjän kokemus.

Vinkki

Etsitkö hy­per­vi­sor-vaih­toeh­toa, jotta voit siirtää IT-infra­struk­tuu­ri­si pilveen? Käytä IONOSin pil­vi­pal­ve­lun siir­to­pal­ve­lua ja nauti edul­li­sis­ta laa­duk­kais­ta pal­ve­luis­ta ja kor­keim­mas­ta tur­val­li­suus­ta­sos­ta.

Siirry pää­va­lik­koon