En hy­per­vi­sor är en pro­gram­va­ra eller firmware som un­der­lät­tar skapandet och han­te­ring­en av virtuella maskiner genom att ab­stra­he­ra hård­varu­re­sur­ser­na i en fysisk dator, vilket gör det möjligt att köra flera ope­ra­tiv­sy­stem samtidigt. Istället för att bygga ett helt system med hårdvara och ett ope­ra­tiv­sy­stem skapar den en vir­tu­a­li­se­rad version – i princip en si­mu­le­ring av en komplett PC-miljö.

Hur fungerar en hy­per­vi­sor?

När du skapar en virtuell maskin (VM) fungerar den baserat på en icke-virtuell, faktisk maskin, till exempel en PC. VM är beroende av den fysiska hårdvaran. Därför finns det ett lager mellan de två nivåerna som ansvarar för han­te­ring­en: hy­per­vi­sorn. Hy­per­vi­sorn är en pro­gram­va­ra som tar över han­te­ring­en av de nöd­vän­di­ga re­sur­ser­na. Detta program, även känt som Virtual Machine Monitor (VMM), fördelar re­sur­ser­na inom systemet. På så sätt kan flera olika virtuella maskiner köras på ett värd­sy­stem, eftersom hy­per­vi­sorn ser till att de inte stör varandra och att alla har den kapacitet som behövs.

Hy­per­vi­sorn skapar därmed ett ab­strak­tions­la­ger mellan hårdvaran och de ope­ra­tiv­sy­stem som körs på den. Detta görs genom att dela upp hård­varu­re­sur­ser­na i logiska enheter och simulera en unik miljö för varje virtuell maskin. De virtuella ma­ski­ner­na upplevs som om de körs direkt på riktig hårdvara, även om de delar resurser med andra virtuella maskiner.

Notis

Den strikta se­pa­ra­tio­nen mellan olika virtuella maskiner sä­ker­stäl­ler inte bara en bra re­surs­för­del­ning utan för­bätt­rar också sä­ker­he­ten. Hy­per­vi­sorn sä­ker­stäl­ler att ett gäst­sy­stem inte kan komma åt filer från ett annat gäst­sy­stem. Detta är särskilt viktigt för te­stän­da­mål, så att ett felaktigt program inte skadar andra test­mil­jö­er.

Min­nes­han­te­ring

Vid CPU- vir­tu­a­li­se­ring använder hy­per­vi­sorn tekniker som tids­del­ning för att fördela pro­ces­sor­kraf­ten rättvist mellan virtuella maskiner. Moderna pro­ces­so­rer har särskilda vir­tu­a­li­se­rings­funk­tio­ner (t.ex. Intel VT-x eller AMD-V) som stöder hy­per­vi­sorn och minskar over­he­ad­kost­na­der­na.

Minnet (RAM) hanteras genom sid­väx­lings- och mapp­nings­tek­ni­ker. Hy­per­vi­sorn tilldelar virtuella min­nes­a­dres­ser till fysiska min­nes­block, så att varje VM endast ser sitt eget min­nesut­rym­me. När minnet är knappt kan den använda me­ka­nis­mer som min­ne­sö­ver­be­last­ning eller bal­long­ning för att fördela minnet effektivt mellan VM:erna.

I/O och en­hets­han­te­ring

Virtuella maskiner får åtkomst till hård­va­ru­en­he­ter som hård­dis­kar, nät­verkskort eller gra­fik­kort via virtuella gräns­snitt. Hy­per­vi­sorn emulerar dessa enheter eller vi­da­re­be­ford­rar för­fråg­ning­ar direkt till den fysiska hårdvaran (med hjälp av Direct-I/O eller pass-through-tekniker). Detta sä­ker­stäl­ler en balans mellan kom­pa­ti­bi­li­tet och prestanda.

Isolering och säkerhet

En betydande fördel med vir­tu­a­li­se­ring är iso­le­ring­en mellan virtuella maskiner. Varje virtuell maskin fungerar i sin egen miljö, så fel eller attacker i en virtuell maskin har ingen direkt inverkan på andra virtuella maskiner eller värd­sy­ste­met. Hy­per­vi­sorn använder olika sä­ker­hets­me­ka­nis­mer för att sä­ker­stäl­la strikt se­pa­ra­tion, inklusive min­nes­skydd, åt­komst­kon­trol­ler och sand­box­ing-tekniker.

Olika typer av virtuella ma­skin­mo­ni­to­rer

Det finns två olika typer av virtuella ma­skin­mo­ni­to­rer: Typ 1- och Typ 2-hy­per­vi­so­rer. Var och en har sina specifika fördelar. Den först­nämn­da är också den äldre versionen. Vir­tu­a­li­se­ring med denna teknik började redan på 1960-talet.

Typ 1-hy­per­vi­sor

Den första typen av hy­per­vi­sor kallas bare-metal hy­per­vi­sor eller native hy­per­vi­sor. Denna typ av VMM in­stal­le­ras direkt på den fysiska hårdvaran och kringgår värdens ope­ra­tiv­sy­stem. Som ett resultat måste den innehålla alla nöd­vän­di­ga en­hets­driv­ru­ti­ner. Re­surs­för­bruk­ning­en med en typ 1-hy­per­vi­sor är relativt låg eftersom da­tor­kraf­ten inte behöver passera värdens ope­ra­tiv­sy­stem. Denna typ av hy­per­vi­sor är främst avsedd för användare som vill kon­fi­gu­re­ra en vir­tu­a­li­se­rings­ser­ver. För mindre hem­ma­pro­jekt tenderar dock en typ 1-hy­per­vi­sor att vara för komplex.

Bild: Schematic representation of the functioning of the Type-1 hypervisor
A Type-1 hy­per­vi­sor sits directly on the hardware.

Typ 2-hy­per­vi­sor

Den andra varianten (även känd som en hostad hy­per­vi­sor) kräver ett be­fint­ligt ope­ra­tiv­sy­stem som är byggt på den fysiska hårdvaran. En typ 2-hy­per­vi­sor in­stal­le­ras precis som vilket annat program som helst. VMM hanterar sedan vir­tu­a­li­se­ring­en. En­hets­driv­ru­ti­ner behöver inte in­stal­le­ras i hy­per­vi­sorn, eftersom det faktiska ope­ra­tiv­sy­ste­met helt enkelt kan vi­da­re­be­ford­ra dem till pro­gram­va­ran. Denna be­kväm­lig­het kommer dock på bekostnad av prestanda. En betydande del av re­sur­ser­na förbrukas redan av värdens ope­ra­tiv­sy­stem. Tack vare den enkla in­stal­la­tio­nen och kon­fi­gu­ra­tio­nen är typ 2-hy­per­vi­so­rer perfekta för mindre projekt.

Bild: Schematic representation of the functioning of the Type-2 hypervisor
The Type-2 hy­per­vi­sor is installed on an existing operating system.
Gå till huvudmeny