Mis on hüperviisor?
Hüperviisor on tarkvara või püsivara, mis hõlbustab virtuaalmasinate loomist ja haldamist, abstraheerides füüsilise arvuti riistvararessursse ning võimaldades mitme operatsioonisüsteemi samaaegset töötamist. Selle asemel, et ehitada üles tervet süsteemi koos riistvara ja operatsioonisüsteemiga, loob hüperviisor virtualiseeritud versiooni, mis sisuliselt simuleerib täielikku arvutikeskkonda.
Kuidas töötab hüperviisor?
Virtuaalmasina (VM) loomisel toimib see mittevirtuaalse, tegeliku masina – näiteks personaalarvuti – baasil. Virtuaalmasin sõltub füüsilisest riistvarast. Seetõttu on kahe taseme vahel haldamise eest vastutav kiht: hüperviisor. Hüperviisor on tarkvara, mis võtab üle vajalike ressursside haldamise. See programm, mida tuntakse ka kui virtuaalmasina monitori (VMM), jaotab ressursse süsteemis. Sel viisil saavad mitmed erinevad virtuaalmasinad töötada ühel host-süsteemil, kuna hüperviisor tagab, et need ei segaks üksteist ja et kõigil oleksid vajalikud võimsused kättesaadavad.
Seega loob hüperviisor riistvara ja sellel töötavate operatsioonisüsteemide vahele abstraktsioonikihi. Selleks jagab ta riistvararessursid loogilisteks üksusteks ja simuleerib iga virtuaalmasina jaoks eraldi keskkonna. Virtuaalmasinad tunnevad, nagu töötaksid nad otse reaalse riistvara peal, kuigi nad jagavad ressursse teiste virtuaalmasinatega.
Erinevate virtuaalmasinate range eraldamine tagab mitte ainult ressursside õige jaotuse, vaid suurendab ka turvalisust. Hüpervisor tagab, et külalissüsteem ei pääse ligi teise külalissüsteemi failidele. See on eriti oluline testimisel, et vigane programm ei kahjustaks teisi testkeskkondi.
Mäluhaldus
Protsessori virtualiseerimisel kasutab hüperviisor selliseid meetodeid nagu ajajaotus, et jaotada töötlemisvõimsus virtuaalmasinate vahel õiglaselt. Kaasaegsetel protsessoritel on spetsiaalsed virtualiseerimisfunktsioonid (nt Intel VT-x või AMD-V), mis toetavad hüperviisorit ja vähendavad lisakoormust.
Mälu (RAM) haldamine toimub lehekülgede vahetamise ja kaardistamise meetodite abil. Hüpervisori abil määratakse füüsilistele mälublokkidele virtuaalmälu aadressid, mistõttu iga virtuaalmasin näeb ainult oma mäluruumi. Kui mälu on napiks jäänud, saab kasutada selliseid mehhanisme nagu mälu ülemääramine või ballooning, et jaotada mälu virtuaalmasinate vahel tõhusalt.
Sisend-väljund ja seadmete haldus
Virtuaalmasinad pääsevad ligi riistvaraseadmetele, nagu kõvakettad, võrgukaardid või graafikakaardid, virtuaalsete liideste kaudu. Hüpervisor emuleerib neid seadmeid või suunab päringud otse füüsilisele riistvarale (kasutades Direct-I/O või läbiviimise tehnikaid). See tagab ühilduvuse ja jõudluse vahelise tasakaalu.
Isolatsioon ja turvalisus
Virtualiseerimise oluline eelis on virtuaalmasinate vaheline eraldatus. Iga virtuaalmasin töötab oma keskkonnas, mistõttu ühe virtuaalmasina vead või rünnakud ei avalda otsest mõju teistele virtuaalmasinatele ega host-süsteemile. Hüpervisori kasutab range eraldatuse tagamiseks mitmesuguseid turvamehhanisme, sealhulgas mälukaitset, juurdepääsukontrolli ja sandboxing-meetodeid.
Erinevad virtuaalmasina monitorid
Virtuaalmasinate monitoore on kahte tüüpi: 1. tüübi ja 2. tüübi hüperviisorid. Mõlemal on oma väga konkreetsed eelised. Esimene neist on ka vanem versioon. Selle tehnoloogia abil hakati virtualiseerimisega tegelema juba 1960. aastatel.
1. tüübi hüperviisor
Esimest tüüpi hüperviisorit nimetatakse bare-metal-hüperviisoriks või natiivseks hüperviisoriks. Selline VMM paigaldatakse otse füüsilisele riistvarale, möödudes peremeesarvuti operatsioonisüsteemist. Seetõttu peab see sisaldama kõiki vajalikke seadme draivereid. Tüübi 1 hüpervisori ressursitarbimine on suhteliselt madal, kuna arvutusvõimsus ei pea läbima hosti operatsioonisüsteemi. Selline hüpervisor on mõeldud eelkõige kasutajatele, kes soovivad luua virtualiseerimisserverit. Väiksemate koduprojektide jaoks on tüübi 1 hüpervisor aga tavaliselt liiga keeruline.

2. tüübi hüperviisor
Teine variant (tuntud ka kui majutatud hüperviisor) eeldab olemasolevat operatsioonisüsteemi, mis on paigaldatud füüsilisele riistvarale. Tüüp 2 hüperviisor installitakse nagu iga teine programm. Seejärel haldab virtualiseerimist VMM. Seadme draivereid ei ole vaja hüperviisorisse installida, kuna tegelik operatsioonisüsteem saab need lihtsalt tarkvarale edastada. See mugavus tuleb aga jõudluse arvelt. Olulise osa ressurssidest tarbib juba hosti operatsioonisüsteem. Lihtsa installimise ja konfigureerimise tõttu sobivad tüüp 2 hüperviisorid ideaalselt väiksematele projektidele.
