Mikä on hypervisor?
Hypervisor on ohjelmisto tai laiteohjelmisto, joka helpottaa virtuaalikoneiden luomista ja hallintaa abstrahoimalla fyysisen tietokoneen laitteistoresurssit, jolloin useita käyttöjärjestelmiä voidaan käyttää samanaikaisesti. Sen sijaan, että rakennettaisiin kokonainen järjestelmä laitteistosta ja käyttöjärjestelmästä, se luo virtualisoidun version – joka käytännössä simuloi täydellistä PC-ympäristöä.
Miten hypervisor toimii?
Kun virtuaalikone (VM) luodaan, se toimii todellisen, ei-virtuaalisen koneen – kuten tietokoneen – pohjalta. Virtuaalikone on riippuvainen fyysisestä laitteistosta. Siksi näiden kahden tason välissä on hallinnasta vastaava kerros: hypervisor. Hypervisor on ohjelmisto, joka ottaa haltuunsa tarvittavien resurssien hallinnan. Tämä ohjelma, joka tunnetaan myös nimellä Virtual Machine Monitor (VMM), jakaa resurssit järjestelmän sisällä. Tällä tavalla useita ja erilaisia virtuaalikoneita voi toimia isäntäjärjestelmässä, sillä hypervisor varmistaa, että ne eivät häiritse toisiaan ja että kaikilla on käytettävissään tarvittavat kapasiteetit.
Hypervisor luo näin ollen abstraktiotason laitteiston ja sillä toimivien käyttöjärjestelmien välille. Se tekee tämän jakamalla laitteistoresurssit loogisiin yksiköihin ja simuloimalla jokaiselle virtuaalikoneelle oman ympäristönsä. Virtuaalikoneet kokevat toimivansa suoraan fyysisellä laitteistolla, vaikka ne jakavatkin resursseja muiden virtuaalikoneiden kanssa.
Eri virtuaalikoneiden tiukka erottelu takaa paitsi resurssien hyvän jakautumisen myös parantaa tietoturvaa. Hypervisor varmistaa, ettei vieraskone voi käyttää toisen vieraskoneen tiedostoja. Tämä on erityisen tärkeää testauskäytössä, jotta viallinen ohjelma ei vahingoita muita testausympäristöjä.
Muistin hallinta
CPU-virtualisoinnissa hypervisor käyttää esimerkiksi aikaviilaustekniikkaa jakamaan laskentatehoa tasapuolisesti virtuaalikoneiden kesken. Nykyaikaisissa prosessoreissa on erityisiä virtualisointitoimintoja (kuten Intel VT-x tai AMD-V), jotka tukevat hypervisoria ja vähentävät järjestelmän hallintakustannuksia.
Muistia (RAM) hallitaan sivutuksen ja kartoituksen avulla. Hypervisor osoittaa virtuaalimuistin osoitteet fyysisille muistilohkoille, joten kukin virtuaalikone näkee vain oman muistialueensa. Kun muistia on niukasti, se voi käyttää esimerkiksi muistin ylikäyttöä tai ballooning-tekniikkaa jakamaan muistia tehokkaasti virtuaalikoneiden kesken.
I/O ja laitehallinta
Virtuaalikoneet käyttävät laitteita, kuten kiintolevyjä, verkkokortteja tai näytönohjaimia, virtuaalisten rajapintojen kautta. Hypervisor emuloi näitä laitteita tai välittää pyynnöt suoraan fyysiselle laitteistolle (käyttäen Direct-I/O- tai pass-through-tekniikoita). Tämä takaa tasapainon yhteensopivuuden ja suorituskyvyn välillä.
Eristäminen ja turvallisuus
Virtualisoinnin merkittävä etu on virtuaalikoneiden välinen eristäminen. Kukin virtuaalikone toimii omassa ympäristössään, joten yhden virtuaalikoneen virheet tai hyökkäykset eivät vaikuta suoraan muihin virtuaalikoneisiin tai isäntäjärjestelmään. Hypervisor käyttää erilaisia suojausmekanismeja tiukan erottelun varmistamiseksi, kuten muistinsuojausta, käyttöoikeuksien hallintaa ja hiekkalaatikkotekniikoita.
Erilaiset virtuaalikoneen ohjainohjelmat
Virtuaalikoneiden valvojia on kahta eri tyyppiä: tyypin 1 ja tyypin 2 hypervisorit. Kummallakin on omat erityiset etunsa. Ensimmäinen on myös vanhempi versio. Tällä tekniikalla toteutettua virtualisointia kehitettiin jo 1960-luvulla.
Tyypin 1 hypervisor
Ensimmäistä hypervisor-tyyppiä kutsutaan bare-metal-hypervisoriksi tai natiiviksi hypervisoriksi. Tällainen VMM asennetaan suoraan fyysiselle laitteistolle ohittaen isäntäkoneen käyttöjärjestelmän. Tämän vuoksi sen on sisällettävä kaikki tarvittavat laiteajurit. Tyypin 1 hypervisorin resurssienkulutus on suhteellisen alhainen, koska laskentatehoa ei tarvitse ohjata isäntäkäyttöjärjestelmän kautta. Tämäntyyppinen hypervisor on suunniteltu ensisijaisesti käyttäjille, jotka haluavat perustaa virtualisointipalvelimen. Pienemmille kotiprojekteille tyypin 1 hypervisor on kuitenkin yleensä liian monimutkainen.

Tyypin 2 hypervisor
Toinen vaihtoehto (jota kutsutaan myös isännöidyksi hypervisoriksi) edellyttää olemassa olevaa käyttöjärjestelmää, joka on asennettu fyysiselle laitteistolle. Tyypin 2 hypervisor asennetaan aivan kuten mikä tahansa muu ohjelma. VMM hallinnoi sitten virtualisointia. Laiteajureita ei tarvitse asentaa hypervisoriin, koska varsinainen käyttöjärjestelmä voi yksinkertaisesti välittää ne ohjelmistolle. Tämä mukavuus kuitenkin heikentää suorituskykyä. Merkittävä osa resursseista on jo varattu isäntäkoneen käyttöjärjestelmälle. Helpon asennuksen ja konfiguroinnin ansiosta tyypin 2 hypervisorit sopivat erinomaisesti pienempiin projekteihin.
