Hva er en hypervisor?
En hypervisor er programvare eller fastvare som muliggjør opprettelse og administrasjon av virtuelle maskiner ved å abstrahere maskinvareressursene til en fysisk datamaskin, slik at flere operativsystemer kan kjøre samtidig. I stedet for å bygge opp et helt system med maskinvare og operativsystem, oppretter den en virtualisert versjon – som i praksis simulerer et komplett PC-miljø.
Hvordan fungerer en hypervisor?
Når man oppretter en virtuell maskin (VM), fungerer den på grunnlag av en ikke-virtuell, fysisk maskin – for eksempel en PC. Den virtuelle maskinen er avhengig av den fysiske maskinvaren. Derfor finnes det et lag mellom de to nivåene som er ansvarlig for administrasjonen: hypervisoren. Hypervisoren er programvare som tar over administrasjonen av de nødvendige ressursene. Dette programmet, også kjent som en Virtual Machine Monitor (VMM), tildeler ressurser innenfor systemet. På denne måten kan flere og forskjellige virtuelle maskiner kjøre på et vertsystem, ettersom hypervisoren sørger for at de ikke forstyrrer hverandre og at alle har de nødvendige kapasitetene tilgjengelig.
Hypervisoren skaper dermed et abstraksjonslag mellom maskinvaren og operativsystemene som kjører på den. Dette gjøres ved å dele opp maskinvareressursene i logiske enheter og simulere et unikt miljø for hver virtuell maskin. De virtuelle maskinene opplever det som om de kjører direkte på ekte maskinvare, selv om de deler ressurser med andre virtuelle maskiner.
Den strenge adskillelsen mellom ulike virtuelle maskiner sikrer ikke bare en god fordeling av ressursene, men øker også sikkerheten. Hypervisoren sørger for at et gjestesystem ikke kan få tilgang til filer fra et annet gjestesystem. Dette er spesielt viktig i testøyemed, slik at et feilaktig program ikke skader andre testmiljøer.
Minnehåndtering
Ved CPU-virtualisering bruker hypervisoren teknikker som tidsdelingsmetoder for å fordele prosessorkapasiteten rettferdig mellom de virtuelle maskinene. Moderne prosessorer har spesielle virtualiseringsfunksjoner (f.eks. Intel VT-x eller AMD-V) som støtter hypervisoren og reduserer overhead.
Minne (RAM) administreres ved hjelp av sideveksling og tilordningsteknikker. Hypervisoren tildeler virtuelle minneadresser til fysiske minneblokker, slik at hver virtuell maskin kun ser sitt eget minneområde. Når minnet er begrenset, kan den benytte mekanismer som overforpliktelse av minne eller «ballooning» for å fordele minnet effektivt mellom de virtuelle maskinene.
I/O og enhetsadministrasjon
Virtuelle maskiner får tilgang til maskinvareenheter som harddisker, nettverkskort eller grafikkort via virtuelle grensesnitt. Hypervisoren emulerer disse enhetene eller videresender forespørsler direkte til den fysiske maskinvaren (ved hjelp av Direct-I/O eller pass-through-teknikker). Dette sikrer en balanse mellom kompatibilitet og ytelse.
Isolasjon og sikkerhet
En viktig fordel ved virtualisering er isolasjonen mellom virtuelle maskiner. Hver virtuell maskin opererer i sitt eget miljø, slik at feil eller angrep i én virtuell maskin ikke har noen direkte innvirkning på andre virtuelle maskiner eller vertsystemet. Hypervisoren benytter ulike sikkerhetsmekanismer for å sikre streng adskillelse, blant annet minnebeskyttelse, tilgangskontroll og sandboxing-teknikker.
Ulike typer monitorer for virtuelle maskiner
Det finnes to ulike typer hypervisorer for virtuelle maskiner: Type 1- og Type 2-hypervisorer. Hver av dem har helt spesifikke fordeler. Den førstnevnte er også den eldste versjonen. Virtualisering med denne teknologien ble allerede utviklet på 1960-tallet.
Type 1-hypervisor
Den første typen hypervisor kalles en «bare-metal»-hypervisor eller en «native»-hypervisor. Denne typen VMM installeres direkte på den fysiske maskinvaren, utenom vertsoperativsystemet. Følgelig må den inneholde alle nødvendige enhetsdrivere. Ressursforbruket med en Type-1-hypervisor er relativt lavt fordi datakraften ikke trenger å gå gjennom vertsoperativsystemet. Denne typen hypervisor er primært designet for brukere som ønsker å sette opp en virtualiseringsserver. For mindre hjemmeprosjekter er en Type-1-hypervisor imidlertid ofte for kompleks.

Type 2-hypervisor
Den andre varianten (også kjent som en «hosted hypervisor») krever et eksisterende operativsystem som er installert på den fysiske maskinvaren. En Type-2-hypervisor installeres akkurat som ethvert annet program. VMM administrerer deretter virtualiseringen. Enhetsdrivere trenger ikke å installeres i hypervisoren, da det faktiske operativsystemet ganske enkelt kan videreformidle dem til programvaren. Denne bekvemmeligheten går imidlertid på bekostning av ytelsen. En betydelig del av ressursene forbrukes allerede av vertsoperativsystemet. På grunn av den enkle installasjonen og konfigurasjonen er Type-2-hypervisorer perfekte for mindre prosjekter.
