Hvad er en hypervisor?
En hypervisor er en software eller firmware, der muliggør oprettelse og administration af virtuelle maskiner ved at abstrahere en fysisk computers hardwareressourcer, hvilket gør det muligt at køre flere operativsystemer samtidigt. I stedet for at opbygge et helt system med hardware og et operativsystem skaber den en virtualiseret version – der i alt væsentligt simulerer et komplet pc-miljø.
Hvordan fungerer en hypervisor?
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 ansvarligt for styringen: hypervisoren. Hypervisoren er software, der overtager styringen af de nødvendige ressourcer. Dette program, også kendt som en Virtual Machine Monitor (VMM), fordeler ressourcerne inden for systemet. På denne måde kan flere og forskellige virtuelle maskiner køre på et værtsystem, da hypervisoren sikrer, at de ikke forstyrrer hinanden, og at de alle har de nødvendige kapaciteter til rådighed.
Hypervisoren skaber således et abstraktionslag mellem hardwaren og de operativsystemer, der kører på den. Det gør den ved at opdele hardwareressourcerne 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 ressourcer med andre virtuelle maskiner.
Den strenge adskillelse mellem forskellige virtuelle maskiner sikrer ikke blot en god fordeling af ressourcerne, men øger også sikkerheden. Hypervisoren sikrer, at et gæstesystem ikke kan få adgang til filer fra et andet gæstesystem. Dette er især vigtigt i forbindelse med test, så et fejlbehæftet program ikke skader andre testmiljøer.
Hukommelsesstyring
Ved CPU-virtualisering anvender hypervisoren teknikker som tidsopdeling for at fordele processorkraften retfærdigt mellem de virtuelle maskiner. Moderne processorer har særlige virtualiseringsfunktioner (f.eks. Intel VT-x eller AMD-V), der understøtter hypervisoren og reducerer overhead.
Hukommelsen (RAM) administreres ved hjælp af paging- og mapping-teknikker. Hypervisoren tildeler virtuelle hukommelsesadresser til fysiske hukommelsesblokke, så hver virtuel maskine kun kan se sit eget hukommelsesområde. Når der er mangel på hukommelse, kan den anvende mekanismer som overallokering af hukommelse eller ballooning for at fordele hukommelsen effektivt mellem de virtuelle maskiner.
I/O og enhedsadministration
Virtuelle maskiner får adgang til hardwareenheder som harddiske, netværkskort eller grafikkort via virtuelle grænseflader. Hypervisoren emulerer disse enheder eller videresender anmodninger direkte til den fysiske hardware (ved hjælp af Direct-I/O- eller pass-through-teknikker). Dette sikrer en balance mellem kompatibilitet og ydeevne.
Isolation og sikkerhed
En væsentlig fordel ved virtualisering er isoleringen mellem de virtuelle maskiner. Hver virtuel maskine kører i sit eget miljø, så fejl eller angreb på én virtuel maskine har ingen direkte indvirkning på andre virtuelle maskiner eller værtsystemet. Hypervisoren anvender forskellige sikkerhedsmekanismer for at sikre en streng adskillelse, herunder hukommelsesbeskyttelse, adgangskontrol og sandboxing-teknikker.
Forskellige typer af monitorer til virtuelle maskiner
Der findes to forskellige typer af virtualiseringsplatforme: Type 1- og Type 2-hypervisorer. Hver type har sine helt egne fordele. Den førstnævnte er også den ældste version. Virtualisering med denne teknologi blev allerede udviklet i 1960’erne.
Type 1-hypervisor
Den første type hypervisor kaldes en bare-metal-hypervisor eller en native hypervisor. Denne type VMM installeres direkte på den fysiske hardware og omgår dermed værtsoperativsystemet. Derfor skal den indeholde alle nødvendige enhedsdrivere. Ressourceforbruget med en Type-1-hypervisor er relativt lavt, fordi regnekraften ikke behøver at passere gennem værtsoperativsystemet. Denne type hypervisor er primært designet til brugere, der ønsker at oprette en virtualiseringsserver. Til mindre hjemmeprojekter er en Type-1-hypervisor dog ofte for kompleks.

Type 2-hypervisor
Den anden variant (også kendt som en hosted hypervisor) kræver et eksisterende operativsystem, der er installeret på den fysiske hardware. En Type-2-hypervisor installeres ligesom ethvert andet program. VMM’en styrer derefter virtualiseringen. Enhedsdrivere behøver ikke at blive installeret i hypervisoren, da det egentlige operativsystem blot kan videregive dem til softwaren. Denne bekvemmelighed går dog på bekostning af ydeevnen. En betydelig del af ressourcerne forbruges allerede af værtens operativsystem. På grund af den nemme installation og konfiguration er Type-2-hypervisorer perfekte til mindre projekter.
