Een hy­per­vi­sor is software of firmware die het maken en beheren van virtuele machines mogelijk maakt door de hard­wa­re­bron­nen van een fysieke computer te ab­stra­he­ren, waardoor meerdere be­stu­rings­sys­te­men te­ge­lij­ker­tijd kunnen draaien. In plaats van een volledig systeem met hardware en een be­stu­rings­sys­teem te bouwen, creëert het een ge­vir­tu­a­li­seer­de versie, die in wezen een complete pc-omgeving simuleert.

Hoe werkt een hy­per­vi­sor?

Bij het maken van een virtuele machine (VM) werkt deze op basis van een niet-virtuele, echte machine, zoals een pc. De VM is af­han­ke­lijk van de fysieke hardware. Daarom is er een laag tussen de twee niveaus die ver­ant­woor­de­lijk is voor het beheer: de hy­per­vi­sor. De hy­per­vi­sor is software die het beheer van de benodigde resources overneemt. Dit programma, ook wel Virtual Machine Monitor (VMM) genoemd, wijst resources toe binnen het systeem. Op deze manier kunnen meerdere en ver­schil­len­de virtuele machines op een host­sys­teem draaien, omdat de hy­per­vi­sor ervoor zorgt dat ze elkaar niet hinderen en allemaal over de benodigde ca­pa­ci­teit be­schik­ken.

De hy­per­vi­sor creëert zo een ab­strac­tie­laag tussen de hardware en de be­stu­rings­sys­te­men die erop draaien. Dit doet hij door de hard­wa­re­bron­nen op te splitsen in logische eenheden en voor elke VM een unieke omgeving te simuleren. De VM’s geven het gevoel dat ze recht­streeks op echte hardware draaien, ook al delen ze bronnen met andere VM’s.

Opmerking

De strikte scheiding tussen ver­schil­len­de virtuele machines zorgt niet alleen voor een goede verdeling van de middelen, maar verhoogt ook de vei­lig­heid. De hy­per­vi­sor zorgt ervoor dat een gast­sys­teem geen toegang heeft tot bestanden van een ander gast­sys­teem. Dit is vooral be­lang­rijk voor test­doel­ein­den, zodat een defect programma geen schade toebrengt aan andere testom­ge­vin­gen.

Ge­heu­gen­be­heer

Bij CPU-vir­tu­a­li­sa­tie gebruikt de hy­per­vi­sor tech­nie­ken zoals time-slicing om de ver­wer­kings­kracht eerlijk te verdelen over de VM’s. Moderne pro­ces­sors hebben speciale vir­tu­a­li­sa­tie­func­ties (bij­voor­beeld Intel VT-x of AMD-V) die de hy­per­vi­sor on­der­steu­nen en de overhead ver­min­de­ren.

Het geheugen (RAM) wordt beheerd door middel van paging- en map­ping­tech­nie­ken. De hy­per­vi­sor wijst virtuele ge­heu­ge­nadres­sen toe aan fysieke ge­heu­gen­blok­ken, zodat elke VM alleen zijn eigen ge­heu­gen­ruim­te ziet. Wanneer er weinig geheugen be­schik­baar is, kan het ge­bruik­ma­ken van me­cha­nis­men zoals memory over­com­mit­ment of bal­loon­ing om het geheugen efficiënt over de VM’s te verdelen.

I/O- en ap­pa­raat­be­heer

Virtuele machines hebben toegang tot hard­w­are­ap­pa­ra­ten zoals harde schijven, net­werk­kaar­ten of grafische kaarten via virtuele in­ter­fa­ces. De hy­per­vi­sor emuleert deze apparaten of stuurt verzoeken recht­streeks door naar de fysieke hardware (met behulp van Direct-I/O- of pass-through-tech­nie­ken). Dit zorgt voor een evenwicht tussen com­pa­ti­bi­li­teit en pres­ta­ties.

Isolatie en vei­lig­heid

Een be­lang­rijk voordeel van vir­tu­a­li­sa­tie is de isolatie tussen VM’s. Elke VM werkt in zijn eigen omgeving, zodat fouten of aanvallen in één VM geen directe invloed hebben op andere virtuele machines of het host­sys­teem. De hy­per­vi­sor maakt gebruik van ver­schil­len­de be­vei­li­gings­me­cha­nis­men om een strikte scheiding te ga­ran­de­ren, waaronder ge­heu­gen­be­vei­li­ging, toe­gangs­con­tro­les en sand­boxing-tech­nie­ken.

Ver­schil­len­de soorten virtuele machine monitors

Er zijn twee ver­schil­len­de soorten virtuele machine monitors: Type-1 en Type-2 hy­per­vi­sors. Elk type heeft zijn eigen spe­ci­fie­ke voordelen. Het eerste type is ook de oudere versie. Vir­tu­a­li­sa­tie met deze tech­no­lo­gie werd al in de jaren zestig toegepast.

Type-1 hy­per­vi­sor

Het eerste type hy­per­vi­sor wordt een bare-metal hy­per­vi­sor of native hy­per­vi­sor genoemd. Dit soort VMM wordt recht­streeks op de fysieke hardware ge­ïn­stal­leerd, waarbij het be­stu­rings­sys­teem van de host wordt omzeild. Als gevolg daarvan moet het alle benodigde ap­pa­raatstuur­pro­gram­ma’s bevatten. Het re­sour­ce­ver­bruik met een Type-1 hy­per­vi­sor is relatief laag omdat de re­ken­kracht niet via het be­stu­rings­sys­teem van de host hoeft te lopen. Dit type hy­per­vi­sor is in de eerste plaats ontworpen voor ge­brui­kers die een vir­tu­a­li­sa­tie­ser­ver willen opzetten. Voor kleinere thuis­pro­jec­ten is een Type-1 hy­per­vi­sor echter vaak te complex.

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

Type-2 hy­per­vi­sor

De tweede variant (ook bekend als een gehoste hy­per­vi­sor) vereist een bestaand be­stu­rings­sys­teem, dat op de fysieke hardware is gebouwd. Een Type-2 hy­per­vi­sor wordt net als elk ander programma ge­ïn­stal­leerd. De VMM beheert ver­vol­gens de vir­tu­a­li­sa­tie. Ap­pa­raatstuur­pro­gram­ma’s hoeven niet in de hy­per­vi­sor te worden ge­ïn­stal­leerd, omdat het ei­gen­lij­ke be­stu­rings­sys­teem ze gewoon aan de software kan doorgeven. Dit gemak gaat echter ten koste van de pres­ta­ties. Een aan­zien­lijk deel van de bronnen wordt al verbruikt door het be­stu­rings­sys­teem van de host. Door de een­vou­di­ge in­stal­la­tie en con­fi­gu­ra­tie zijn Type-2 hy­per­vi­sors perfect voor kleinere projecten.

Afbeelding: Schematic representation of the functioning of the Type-2 hypervisor
The Type-2 hy­per­vi­sor is installed on an existing operating system.
Ga naar hoofdmenu