I cloud computing-alderen er hy­per­viso­rer som KVM og Xen blevet vigtigere end no­gen­sin­de. Men hvordan adskiller disse to vir­tu­a­li­se­rings­tek­no­lo­gi­er sig fra hinanden? Med vores sam­men­lig­ning af Xen og KVM ser vi på lig­he­der­ne og for­skel­le­ne mellem de to.

Xen i korte træk

Xen er open source -vir­tu­a­li­se­rings­softwa­re, der gør det muligt at køre flere gæ­sto­pe­ra­tiv­sy­ste­mer samtidigt på en enkelt vært­s­ma­ski­ne. Xen ad­mi­ni­stre­rer for­de­lin­gen af hardwa­reres­sour­cer­ne på vært­s­ma­ski­nen.

Hvilken type hy­per­visor er Xen?

Xen er en type 1 (eller bare metal) hy­per­visor. Denne type hy­per­visor in­stal­le­res direkte på et fysisk system og kom­mu­ni­ke­rer med hardware via sine egne drivere. Værts- og gæ­sto­pe­ra­tiv­sy­ste­mer in­stal­le­res oven på Xen-hy­per­visoren. For at skelne mellem for­skel­li­ge pri­vil­e­gi­e­ni­veau­er ka­te­go­ri­se­rer Xen de in­stal­le­re­de ope­ra­tiv­sy­ste­mer i to for­skel­li­ge domæner: dom0 og domU. Værts­o­pe­ra­tiv­sy­ste­met tilhører dom0-domænet og har det højeste pri­vil­e­gi­e­ni­veau, mens alle gæ­sto­pe­ra­tiv­sy­ste­mer klas­si­fi­ce­res som ikke-pri­vil­e­ge­re­de systemer og tilhører domU-domænet.

Værts­o­pe­ra­tiv­sy­ste­met kom­mu­ni­ke­rer ikke direkte med hardwaren via sine drivere, men i stedet via hy­per­visoren ved hjælp af en spe­ci­a­li­se­ret Xen API. Denne dybe in­te­gra­tion sikrer en mere effektiv ud­nyt­tel­se af hardwaren, mindre overhead og et reduceret an­grebs­a­re­al.

Hvordan Xen bruger pa­ravir­tu­a­li­se­ring til at øge ef­fek­ti­vi­te­ten

Xen bruger vir­tu­a­li­se­rings­tek­nik­ken pa­ravir­tu­a­li­se­ring til at øge ef­fek­ti­vi­te­ten. Med denne teknik emulerer hy­per­visoren ikke hardwa­re­kom­po­nen­ter, og gæ­ste­sy­ste­mer er klar over, at de kører i et vir­tu­a­li­se­ret miljø. Dette muliggør meget hurtigere kom­mu­ni­ka­tion mellem gæ­ste­o­pe­ra­tiv­sy­ste­mer og Xen, hvilket fører til øget ydeevne.

Denne tilgang er dog afhængig af spe­ci­a­li­se­re­de drivere og spe­ci­fik­ke ind­byg­ge­de funk­tio­ner i ope­ra­tiv­sy­ste­mets kerne. Mange udbredte ope­ra­tiv­sy­stem­ker­ner, såsom Linux og BSD, har i årevis været i stand til at un­der­støt­te pa­ravir­tu­a­li­se­ring.

Hvis du bruger et ope­ra­tiv­sy­stem, hvor pa­ravir­tu­a­li­se­ring ikke er mulig eller ønsket, un­der­støt­ter Xen også fuld vir­tu­a­li­se­ring (hvor hardwa­re­kom­po­nen­ter emuleres virtuelt). Selvom dette gør vir­tu­a­li­se­rin­gen lang­som­me­re, giver det høj kom­pa­ti­bi­li­tet, så ope­ra­tiv­sy­ste­mer, der ikke un­der­støt­ter pa­ravir­tu­a­li­se­ring, kan køre under Xen.

Hvad er KVM’s vigtigste funk­tio­ner?

Ligesom Xen er KVM (Kernel-based Virtual Machine) også en open source-hy­per­visor, der giver brugerne mulighed for at køre flere gæ­sto­pe­ra­tiv­sy­ste­mer på en enkelt fysisk maskine. Selvom begge hy­per­viso­rer tjener det samme grund­læg­gen­de formål, er deres ar­ki­tek­to­ni­ske design for­skel­ligt, og hver hy­per­visor er velegnet til for­skel­li­ge an­ven­del­ses­til­fæl­de.

Hvilken type hy­per­visor er KVM?

Tidligere blev KVM ofte betegnet som en type 2-hy­per­visor, fordi den kun kunne kom­mu­ni­ke­re med hardware via driverne i værts­o­pe­ra­tiv­sy­ste­met. KVM var nødt til at emulere alle hardwa­re­kom­po­nen­ter til gæ­ste­sy­ste­mer­ne, hvilket gjorde pa­ravir­tu­a­li­se­ring umulig.

KVM er siden blevet udvidet til også at omfatte pa­ravir­tu­a­li­se­ring. Den fungerer dog an­der­le­des end Xen. I mod­sæt­ning til Xen in­stal­le­res KVM ikke under værts­o­pe­ra­tiv­sy­ste­met, men in­te­gre­res i stedet direkte i Linux-kernen. KVM bruger softwa­re­kom­po­nen­ter­ne i Linux-systemet til at ad­mi­ni­stre­re vir­tu­a­li­se­re­de systemer og deres processer.

Under KVM har hvert gæ­sto­pe­ra­tiv­sy­stem sit eget vir­tu­a­li­se­re­de sæt hardware, herunder net­værks­græn­se­fla­der, diskplads og andre typer hardwa­re­kom­po­nen­ter. For at frem­skyn­de fuld vir­tu­a­li­se­ring anvender KVM hardwa­reas­si­ste­ret vir­tu­a­li­se­ring, som allerede findes i de fleste moderne pro­ces­so­rer.

Ikke alle kom­po­nen­ter gennemgår fuld vir­tu­a­li­se­ring i KVM. For at forbedre ydeevnen for kørende systemer og ap­pli­ka­tio­ner tilbyder KVM pa­ravir­tu­a­li­se­re­de græn­se­fla­der, der kan kom­mu­ni­ke­re direkte med hy­per­visoren via Virtio API. KVM bruger primært pa­ravir­tu­a­li­se­ring til input- og out­pu­ten­he­der som net­værks­græn­se­fla­den. Derfor beskriver folk ofte KVM som en delvis pa­ravir­tu­a­li­se­ring, når de taler om det.

KVM vs. Xen, hvordan deres ydeevne sam­men­lig­nes

Den væ­sent­lig­ste forskel mellem de to hy­per­viso­rer ligger i, hvor de opererer inden for softwa­re­stak­ken. KVM er in­te­gre­ret i Linux-kernen og bruger hardwa­reas­si­ste­ret vir­tu­a­li­se­ring til at vir­tu­a­li­se­re ad­skil­li­ge hardwa­re­kom­po­nen­ter uden at opleve væ­sent­li­ge ulemper i ydeevnen. De primære IO-græn­se­fla­der er pa­ravir­tu­a­li­se­re­de, hvilket for de fleste ser­ve­rap­pli­ka­tio­ner sand­syn­lig­vis er det mest afgørende aspekt.

Xen in­stal­le­res derimod tra­di­tio­nelt under ope­ra­tiv­sy­ste­met som en Type 1-hy­per­visor. Det betyder , at hy­per­visoren selv styrer for­de­lin­gen af hardwa­reres­sour­cer­ne. Teoretisk set giver dette Xen mulighed for at levere en mere effektiv og højty­den­de kom­mu­ni­ka­tion med hardwaren. KVM’s Virtio-drivere og hardwa­reas­si­ste­ret vir­tu­a­li­se­ring bringer imid­ler­tid dens ydeevne på niveau med Xen.

CPU-fast­gø­rel­se

På trods af ligheder i ydeevne, fungerer de to hy­per­viso­rer ikke ens i alle scenarier. Når det kommer til CPU-pinning, tilbyder KVM mere kraft til sine brugere. Med CPU-pinning kan KVM tildele en fysisk processor (eller en pro­ces­sor­ker­ne) til en vir­tu­a­li­se­ret processor, hvilket sikrer eksklusiv brug for det virtuelle system. Af de to hy­per­viso­rer er det kun KVM, der tilbyder denne funktion, hvilket er særligt gavnligt for CPU-intensive ap­pli­ka­tio­ner.

Net­værk­sy­del­se

Med hensyn til net­værk­sy­del­se ligger Xen i spidsen. Selvom begge hy­per­viso­rer leverer pa­ravir­tu­a­li­se­re­de net­værks­græn­se­fla­der, har hvert system, der er vir­tu­a­li­se­ret under KVM, sin egen net­værk­sen­hed. Med Xen deler alle gæ­ste­sy­ste­mer en enkelt virtuel net­værks­græn­se­fla­de, hvilket fører til øget ef­fek­ti­vi­tet.

Resumé

Spørgs­må­let om, hvilken hy­per­visor der er bedst, afhænger af dine krav. Mar­keds­le­de­ren KVM er in­te­gre­ret i Linux-kernen og tilbyder mulighed for fuld vir­tu­a­li­se­ring. Disse aspekter gør den grund­læg­gen­de nemmere at bruge.

Xens fulde pa­ravir­tu­a­li­se­rings­funk­tio­ner betyder imid­ler­tid, at det teoretisk set kan levere bedre ydeevne. De afgørende faktorer, du bør overveje, når du vælger en hy­per­visor, er de ap­pli­ka­tio­ner, du ønsker at vir­tu­a­li­se­re, og dit er­fa­rings­ni­veau.

Tip

Leder du efter et al­ter­na­tiv til hy­per­visor, så du kan migrere din IT-in­fra­struk­tur til skyen? Brug cloud­mi­gre­ring­s­tje­ne­sten fra IONOS og nyd over­kom­me­li­ge kva­li­tet­stje­ne­ster og det højeste sik­ker­heds­ni­veau.

Gå til ho­ved­me­nu­en