En hy­per­visor er en software eller firmware, der muliggør op­ret­tel­se og ad­mi­ni­stra­tion af virtuelle maskiner ved at ab­stra­he­re en fysisk computers hardwa­reres­sour­cer, hvilket gør det muligt at køre flere ope­ra­tiv­sy­ste­mer samtidigt. I stedet for at opbygge et helt system med hardware og et ope­ra­tiv­sy­stem skaber den en vir­tu­a­li­se­ret version – der i alt væ­sent­ligt simulerer et komplet pc-miljø.

Hvordan fungerer en hy­per­visor?

Når man opretter en virtuel maskine (VM), fungerer den på baggrund af en ikke-virtuel, fysisk maskine – f.eks. en pc. Den virtuelle maskine er afhængig af den fysiske hardware. Derfor findes der et lag mellem de to niveauer, der er an­svar­ligt for styringen: hy­per­visoren. Hy­per­visoren er software, der overtager styringen af de nød­ven­di­ge res­sour­cer. Dette program, også kendt som en Virtual Machine Monitor (VMM), fordeler res­sour­cer­ne inden for systemet. På denne måde kan flere og for­skel­li­ge virtuelle maskiner køre på et vært­sy­stem, da hy­per­visoren sikrer, at de ikke for­styr­rer hinanden, og at de alle har de nød­ven­di­ge ka­pa­ci­te­ter til rådighed.

Hy­per­visoren skaber således et ab­strak­tions­lag mellem hardwaren og de ope­ra­tiv­sy­ste­mer, der kører på den. Det gør den ved at opdele hardwa­reres­sour­cer­ne i logiske enheder og simulere et unikt miljø for hver virtuel maskine. De virtuelle maskiner oplever det som om de kører direkte på den fysiske hardware, selvom de deler res­sour­cer med andre virtuelle maskiner.

Note

Den strenge ad­skil­lel­se mellem for­skel­li­ge virtuelle maskiner sikrer ikke blot en god fordeling af res­sour­cer­ne, men øger også sik­ker­he­den. Hy­per­visoren sikrer, at et gæ­ste­sy­stem ikke kan få adgang til filer fra et andet gæ­ste­sy­stem. Dette er især vigtigt i for­bin­del­se med test, så et fejl­be­hæf­tet program ikke skader andre test­mil­jø­er.

Hukom­mel­ses­sty­ring

Ved CPU-vir­tu­a­li­se­ring anvender hy­per­visoren teknikker som tids­op­de­ling for at fordele pro­ces­sor­kraf­ten ret­fær­digt mellem de virtuelle maskiner. Moderne pro­ces­so­rer har særlige vir­tu­a­li­se­rings­funk­tio­ner (f.eks. Intel VT-x eller AMD-V), der un­der­støt­ter hy­per­visoren og reducerer overhead.

Hukom­mel­sen (RAM) ad­mi­ni­stre­res ved hjælp af paging- og mapping-teknikker. Hy­per­visoren tildeler virtuelle hukom­mel­ses­adres­ser til fysiske hukom­mel­ses­blok­ke, så hver virtuel maskine kun kan se sit eget hukom­mel­ses­om­rå­de. Når der er mangel på hukom­mel­se, kan den anvende me­ka­nis­mer som overal­lo­ke­ring af hukom­mel­se eller bal­loo­ning for at fordele hukom­mel­sen effektivt mellem de virtuelle maskiner.

I/O og en­heds­ad­mi­ni­stra­tion

Virtuelle maskiner får adgang til hardwa­re­en­he­der som harddiske, net­værks­kort eller gra­fik­kort via virtuelle græn­se­fla­der. Hy­per­visoren emulerer disse enheder eller vi­de­re­sen­der an­mod­nin­ger direkte til den fysiske hardware (ved hjælp af Direct-I/O- eller pass-through-teknikker). Dette sikrer en balance mellem kom­pa­ti­bi­li­tet og ydeevne.

Isolation og sikkerhed

En væsentlig fordel ved vir­tu­a­li­se­ring er iso­le­rin­gen mellem de virtuelle maskiner. Hver virtuel maskine kører i sit eget miljø, så fejl eller angreb på én virtuel maskine har ingen direkte ind­virk­ning på andre virtuelle maskiner eller vært­sy­ste­met. Hy­per­visoren anvender for­skel­li­ge sik­ker­heds­me­ka­nis­mer for at sikre en streng ad­skil­lel­se, herunder hukom­mel­ses­be­skyt­tel­se, ad­gangs­kon­trol og sand­boxing-teknikker.

For­skel­li­ge typer af monitorer til virtuelle maskiner

Der findes to for­skel­li­ge typer af vir­tu­a­li­se­rings­plat­for­me: Type 1- og Type 2-hy­per­viso­rer. Hver type har sine helt egne fordele. Den først­nævn­te er også den ældste version. Vir­tu­a­li­se­ring med denne teknologi blev allerede udviklet i 1960’erne.

Type 1-hy­per­visor

Den første type hy­per­visor kaldes en bare-metal-hy­per­visor eller en native hy­per­visor. Denne type VMM in­stal­le­res direkte på den fysiske hardware og omgår dermed værts­o­pe­ra­tiv­sy­ste­met. Derfor skal den indeholde alle nød­ven­di­ge en­heds­dri­ve­re. Res­sour­ce­for­bru­get med en Type-1-hy­per­visor er relativt lavt, fordi reg­ne­kraf­ten ikke behøver at passere gennem værts­o­pe­ra­tiv­sy­ste­met. Denne type hy­per­visor er primært designet til brugere, der ønsker at oprette en vir­tu­a­li­se­rings­ser­ver. Til mindre hjem­me­pro­jek­ter er en Type-1-hy­per­visor dog ofte for kompleks.

Billede: Schematic representation of the functioning of the Type-1 hypervisor
A Type-1 hy­per­visor sits directly on the hardware.

Type 2-hy­per­visor

Den anden variant (også kendt som en hosted hy­per­visor) kræver et ek­si­ste­ren­de ope­ra­tiv­sy­stem, der er in­stal­le­ret på den fysiske hardware. En Type-2-hy­per­visor in­stal­le­res ligesom ethvert andet program. VMM’en styrer derefter vir­tu­a­li­se­rin­gen. En­heds­dri­ve­re behøver ikke at blive in­stal­le­ret i hy­per­visoren, da det egentlige ope­ra­tiv­sy­stem blot kan vi­de­re­gi­ve dem til softwaren. Denne be­kvem­me­lig­hed går dog på be­kost­ning af ydeevnen. En betydelig del af res­sour­cer­ne forbruges allerede af værtens ope­ra­tiv­sy­stem. På grund af den nemme in­stal­la­tion og kon­fi­gu­ra­tion er Type-2-hy­per­viso­rer perfekte til mindre projekter.

Billede: Schematic representation of the functioning of the Type-2 hypervisor
The Type-2 hy­per­visor is installed on an existing operating system.
Gå til ho­ved­me­nu­en