Kompiuterių fiziniai ištekliai jau keletą dešimtmečių virtualizuojami tam, kad jais būtų galima dalytis bei veiksmingiau naudotis. Visiškai virtualizavus kompiuterį (procesorių, atmintinę, įvesties ir išvesties įrenginius) vienoje platformoje saugiai ir adaptyviai gali veikti keletas operacinių sistemų (OS) bei programų. Taip veiksmingiau išnaudojama techninė įranga, supaprastinama informacinių technologijų infrastruktūra, sumažėja jos valdymo sąnaudos.
Nevirtualizuotoje sistemoje visus techninės platformos išteklius kontroliuoja viena OS. Virtualizuota sistema papildoma nauju programinės įrangos sluoksniu – virtualiosios mašinos monitoriumi. Virtualiosios mašinos monitorius OS skirsto prieigas prie techninių išteklių. Jis visoms OS suteikia techninės įrangos sąsajas, kurios kartu sudaro virtualiąją mašiną (1 pav.).
1 pav. Svarbiausia virtualizuotos sistemos dalis – virtualiosios mašinos monitorius, skirstantis išteklius operacinėms sistemoms ir programoms (rodyklė – naujas programinės įrangos sluoksnis)
Visos OS „nori manyti“, jog būtent jos visiškai valdo sistemą. Tačiau virtualiosios mašinos tam ir skirtos, kad OS negalėtų tiesiogiai valdyti fizinių išteklių. Vos tik „sužinojusi“, kad negali pasiekti visų išteklių, OS nustoja veikti. Būtent dėl to kažkas turi priversti OS „manyti“, jog ji yra vienintelė. Dažniausiai tai pasiekiama programine įranga.
Programa, pavyzdžiui, „VMware“, stebi OS vykdomas instrukcijas ir imituoja tas, kurios galėtų atskleisti, kad OS nepasiekia tam tikrų išteklių. Šis metodas, vadinamas dvejetainiu užtaisymu, veikia gana lėtai, tad kompiuteriuose su „VMware“ programa OS pasiekia tik 50–60 proc. našumo, kurį galėtų pasiekti tame kompiuteryje veikianti viena OS.
Kaip virtualizuoti OS, pavyzdžiui, „Windows“, netaikant lėto dvejetainio užtaisymo metodo? „Intel“ šią problemą išsprendė virtualizavimo funkcijas įdiegusi į procesorių. „Vanderpool“ virtualizavimo technologija veikia aukštos klasės „Pentium 4“ (pavyzdžiui, 955 ir 965) lustuose, visuose „Xeon“ procesoriuose.
Panašią technologiją „Pacifica“ pasiūlė ir bendrovė AMD. Dabar ši technologija taikoma AM2 pagrindinėse plokštėse, taip pat bus diegiama į DDR2 tipo atmintinei pritaikytus „Opteron“ versijos F procesorius.
Kodėl virtualizacija yra perspektyvi? Ji padeda sutaupyti milijonus pinigų. Pavyzdžiui, įmonė turi dvi fizines tarnybines stotis: vienoje veikia „MySQL“ duomenų bazė, kitoje – „Apache“ žiniatinklio tarnybinė stotis. Ką daryti, jei „Apache“ tarnybinė stotis kartais gauna tiek daug užklausų, jog nespėja jų apdoroti, tuo tarpu duomenų bazės kompiuteris apkrautas tik 15 procentų? Tuomet tenka pirkti dar vieną kompiuterį „Apache“ žiniatinklio tarnybinės stoties našumui didinti. Deja, tarnybinė stotis ypač apkraunama retokai, tad, išplėtus techninius išteklius, jie vidutiniškai išnaudojami tik 30 procentų. Štai tada ir praverčia virtualizacija. Tai visai ne tas pats, kas tiesiog vienoje tarnybinėje stotyje įrengti „Apache“ ir „MySQL“. Vien saugumo požiūriu virtualizacija yra pranašesnė: įsilaužėlis, sugebėjęs „prisikasti“ prie jūsų „Apache“ tarnybinės stoties, automatiškai negaus prieigos prie duomenų bazės.
Virtualizacija pravers ir įprastiems vartotojams, pavyzdžiui, „Linux“ entuziastams, nuolat keičiantiems šios OS variantus. Virtualioji mašina padės išvengti diskinio kaupiklio žymėjimo kiekvieną kartą keičiant OS.
Virtualizacija padės programuotojams bandyti programas įvairiose OS. Jie nesunkiai parašys scenarijų, padėsiantį patikrinti, kaip programa veiks „Windows 98“, „Windows 2000“, „Windows XP“ ir kitose OS.
Jeigu šiuo metu į jūsų kompiuterį įdiegtos dvi OS, pavyzdžiui, „Linux“ ir „Windows“, jums turbūt patiktų galimybė akimirksniu įjungti bei išjungti norimą. Net naujausiuose ir pažangiausiuose „Intel“ bei AMD lustuose veikia primityvūs, antrą dešimtmetį naudojami 386 architektūros instrukcijų rinkiniai. Deja, x86 lustuose virtualizaciją realizuoti sudėtinga.
2 pav. Virtualizuojant techninę įrangą, virš tikrųjų privilegijų lygių sukuriami virtualūs. „Intel Vanderpool“ technologija virtualizuoja tik privilegijų lygius, „AMD Pacifica“ – ir atmintinės valdiklį
x86 lustuose numatyta privilegijų sistema, pagal kurią lygiai paprastai žymimi nuo 0 iki 3. Įprastai OS veikia nuliniu lygiu ir visiškai valdo techninę įrangą. Taikomosios programos veikia mažiausiai privilegijuotu trečiuoju lygiu.
Programos turi prašyti OS leidimo kreiptis į atmintinę, procesorių ar bet kurį kitą įtaisą, tad daug mažesnė tikimybė, jog jos destabilizuos OS.
Tradiciniu virtualizacijos metodu OS perkeliama iš 0 į 1 lygį. Tokiu būdu OS vis dar turi daugiau privilegijų nei programos, tačiau negali tiesiogiai valdyti techninės įrangos. Operacinei sistemai „susidomėjus“, kuriuo lygiu ji veikia, virtualioji mašina turi tuojau pat suklastoti atsakymą, kad OS nenustotų veikti.
Intel pasirinko kitokią privilegijų sistemą: įprasti privilegijų lygiai nuo 0 iki 3 yra virtualizuoti, „tikriesiems“ privilegijų lygiams veikiant po jais, tad OS „tikrųjų“ lygių niekaip negali pasiekti. Operacinei sistemai „paklausus“, kuriuo lygiu ji veikia, virtualioji mašina neabejodama gali atsakyti jog nuliniu, nors iš tikrųjų tai netikras nulinis lygis.
AMD virtualizacija yra sudėtingesnė, nes į AMD64 lustus integruoti atmintinės valdikliai. Virtualizuojant procesorių, teko virtualizuoti ir atmintinės valdiklį, todėl „Pacifica“ technologija gerokai skiriasi nuo kitų virtualizacijos technologijų ir jai teko rašyti specialų programinį kodą. Kita vertus, dėl didesnės virtualizacijos AMD įranga veiks sparčiau, nes techninei įrangai teks atlikti vienu darbu mažiau.
Procesorių gamintojoms susidomėjus virtualizacijos technologijomis, jos pasieks ir paprastus vartotojus, nors ilgą laiką šios technologijos buvo taikomos tik tarnybinėse stotyse ir didžiuosiuose kompiuteriuose.