2017 m. liepos 3 d.

Kompiuterių platformos virtualizacijos metodai [2 dalis]

Virtualizacijos sąvoka paliečia dauguma kompiuterijos sričių, todėl virtualizacijos apibrėžimas tarp jų šiek tiek skiriasi. Tačiau, ar tai būtų OS darbalaukio, failų sistemos, kompiuterių tinklo, darbinės atmintinės ar kompiuterio platformos virtualizavimas, praktiškai visais atvejais virtualizacija siekiama: supaprastinti sąveiką su žemesniu sudėtingesniu sistemos lygmeniu; arba abstrahuoti realios aparatinės įrangos išteklius į loginius, lengviau tvarkomus vienetus. Todėl dažniausiai virtualizacija įvardinama kaip abstrakcija, kuri su tam tikromis našumo sąnaudomis padidina visos sistemos funkcionalumą ir patikimumą.
Iš tiesų, egzistuoja įvairių techninių metodų virtualizuojant įvairius kompiuterijos išteklius. Vis dėlto, šis straipsnis apžvelgs tik kompiuterio platformos virtualizaciją {platform-hardware virtualization} – virtualaus kompiuterio sukūrimą – kaip vientisos platformos, o ne atskirų jos komponentų. Virtualų kompiuterį, virtualizacijos kontekste, įprasta vadinti virtualia mašina {virtual machine}. Šis terminas bus naudojamas ir šiame straipsnyje, siekiant išskirti realų ir virtualų kompiuterį.

Esminis kompiuterio platformos virtualizacijos tikslas – sukurti daugelį virtualių mašinų abstrahuojant vienos fizinės kompiuterio sistemos aparatinę įrangą.

Kompiuterio platformos {host hardware} virtualizacija sukuria keletą programinio kodo vykdomųjų aplinkų. Šios aplinkos gali vykdyti įprastą programinę įrangą, tarp jų ir bendros paskirties operacines sistemas {guest software}. Virtualizacija sukuria iliuziją, jog kiekviena atskira aplinka tai pavienė kompiuterio platforma {guest machine}, virtuali mašina, su savais aparatinės įrangos ištekliais. Virtualios mašinos architektūriškai atskirtos, todėl vienoje fizinėje sistemoje galima lygiagrečiai vykdyti kelias operacines sistemas.

Hipervizorius


Šiuolaikinės x86 architektūros kompiuterio platformos virtualizaciją realizuoja du pagrindiniai komponentai: aparatinė įranga su aparatinio lygmens palaikymu virtualizacijai ir programinės įrangos sprendimai.

Programinė įranga {host software} – virtualių mašinų monitorius (VMM) dar žinomas kaip hipervizorius {hypervisor} – virš fizines kompiuterio platformos {host hardware}, sukuria virtualizacijos sluoksnį, kuris realizuoja virtualias mašinas {guest machine}. Hipervizorius imituoja ir koordinuoja visą kompiuterio platformos aparatinę įrangą. Tarpinis virtualizacijos lygmuo užtikrina saugią virtualios mašinos {guest machine} prieigą prie fizinio kompiuterio {host machine} išteklių, o esant daugeliui virtualių mašinų numatytą ar tikslingai apibrėžtą išteklių padalijimą.
Kiekvienos virtualios mašinos (VM) ištekliai konfigūruojami pagal poreikius. VM tarpusavyje atskirtos, jas galima lengvai sukurti ir pašalinti, įjungti ar išjungti nepriklausomai viena nuo kitos. Dauguma modernių virtualizacijos sprendimu leidžia nenutraukiant vykdomos programinės įrangos virtualiuose mašinose perkonfigūruoti jų aparatinės įrangos išteklius; bei perkelti VM tarp fiziškai atskirų kompiuterio platformų {live migration}. Plačiau apie virtualizacijos privalumus ir galimybes bus rašoma kitame straipsnyje.
Virtualizacija plačiai ir giliai įsiskverbė į kompiuteriją, jos svarba informacinėms technologijoms neabejotina. Iki šiol buvo kalbama apie populiariausią virtualizacijos būdą – visišką kompiuterio platformos virtualizaciją {full virtualization}. Virtualizacijos metodų yra įvairių, o jų tendencijos su laiku keičiasi. Norint geriau suprasti kompiuterio platformos virtualizaciją, reikia trumpai apžvelgti dažniausiai naudojamus virtualizacijos metodus.

Kompiuterių virtualizacijos metodai


Virtualizacijos sprendimai, priklausomai nuo siekiamų tikslų, virtualizuoja ir imituoja skirtingus kompiuterio platformos architektūros lygmenis. Skirtingų lygmenų abstrakcijos sukuria skirtingų savybių virtualias aplinkas. Visos jos turi savų privalumų ir yra plačiai taikomos. Toliau trumpai apžvelgiami populiariausi kompiuterio sistemos virtualizacijos metodai, jų realizacija.

Visiška virtualizacija


Visiškos virtualizacijos {full virtualization} metodas virtualizuoja žemiausia kompiuterio sistemos architektūrinį lygmenį – aparatinę įranga, todėl virtuali mašina visiškai imituoja kompiuterio aparatinės įrangos architektūrinį lygmenį ir sukuria iliuziją, jog kiekviena VM yra unikali kompiuterio platforma su tikrais aparatiniais ištekliais. Virtuali mašina pasižymi tomis pačiomis aparatinės įrangos architektūros savybėmis kaip ir virtualizuojamas fizinis kompiuteris.

Nors tarpinis virtualizacijos sluoksnis paslepia fizinės platformos išteklių specifikaciją – perteikia skirtingų parametrų virtualią platformą – galutiniam vartotojui VM su operacine sistema savo išvaizda ir pojūčiu iš esmės nesiskiria nuo analogiškos fizinės platformos su ta pačia OS ar kita programine įranga.
Visiškosios virtualizacijos vykdomosios aplinkos pakankamai „giliai“ tarpusavyje atskirtos, jog leistų vienoje fizinėje sistemoje vykdyti daugelį nepriklausomų VM su įvairiomis OS (pvz., Linux ir Windows). Operacinės sistemos, bei programinė įranga apskritai, vykdomos virtualioje mašinoje nereikia modifikuoti, specialiai pritaikyti darbui virtualizuotoje aplinkoje. Jei programinė įranga veikia betarpiškai virš fizinės kompiuterio platformos, ji veiks ir visiškos virtualizacijos aplinkoje.
Tai išskirtinis visiškos virtualizacijos bruožas, kiti kompiuterio platformos virtualizacijos metodai (paravirtualizacija ar OS lygmens virtualizacija) leidžia vykdyti tik tam tikrą programinę įrangą, jos nemodifikuojant taikomai virtualizacijai.
Kalbant apie nemodifikuotą OS, turima galvoje nemodifikuotą OS branduolį, kuris nežino, jog veikia virtualioje aplinkoje virš VM imituotos aparatinės įrangos. Todėl sisteminius kreipinius {system calls}, privilegijuotas operacijas, vykdo kaip įprasta – lyg veiktų betarpiškai virš realios aparatinės įrangos.
Taigi, dėl išskirtinio savo bruožo, visiškos virtualizacijos virtualių mašinų realizacija susiduria su išskirtine problema – privilegijuotų operacijų izoliavimu VM aplinkose. Šios operacijos, tai dalis procesoriaus vykdomų instrukcijų privilegijuoto lygmens režime, kurios gali prieiti prie bendrų fizinės sistemos išteklių, jais manipuliuoti. Todėl, virtualizacijai nepasiduodančias instrukcijas iš virtualios mašinos hipervizorius negali tiesiog nukreipti į aparatinę įrangą, bet privalo analizuoti visas VM instrukcijas ir aptikus sisteminius kreipinius su privilegijuotomis instrukcijomis pakeisti jas taip, jog vienos virtualios mašinos vykdoma instrukcija neįtakotų kitų VM būseną.
Tai sukuria nemenkas sąnaudas, našumo nuostolius, jei aparatinė įranga nepritaikyta virtualizacijai. Viena vertus hipervizorius rezervuoja dalį kompiuterio sistemos išteklių savo nepertraukiamai veiklai vykdyti; antra vertus, hipervizorius privalo apdoroti privilegijuotas operacijas, o tai, priklausomai nuo virtualioje mašinoje vykdomų veiksmų ir jų intensyvumo, gali gerokai sulėtinti virtualios mašinos bei visos sistemos darbą.
Visiška virtualizacija, populiariausias kompiuterių virtualizacijos metodas, tinka įvairių tinklo sistemų virtualizacijai, pasižymi saugumu ir patikimumu. Kompiuterių platformos kontekste, ypač kalbant apie serverių sistemas, virtualizacijos terminas dažnai pagal nutylėjimą reiškia visišką virtualizaciją. Tokią virtualizacijos termino reikšmės prielaidą galima daryti ir šiame straipsnyje.
Keletas dažnai sutinkamų visiškos virtualizacijos sprendimų: VMware Workstation / Player / Fusion / ESXi, Citrix XenServer, Xen, Oracle VM, Parallels Desktop, Oracle VirtualBox, QEMU, Microsoft Hyper-V ir Linux KVM.

Paravirtualizacija


Paravirtualizacijos terminas yra žodžių para ir virtualizacija junginys. Terminas para nurodo, jog šis virtualizacijos metodas tik panašus į virtualizaciją. Paravirtualizacijos sprendimai, skirtingai nei visiškos virtualizacijos, nesistengia apgauti OS, jog ši vykdoma atskiroje pavienėje kompiuterio sistemoje. Paravirtualizacijos hipervizorius neimituoja aparatinės įrangos 100 proc. t.y. neperteikia identiškos vykdomosios aplinkos virtualioms mašinoms virš kurios pats veikia, bet realizuoja panašią VM su specialia programine sąsaja {API}. Norint tokioje aplinkoje vykdyti operacinę sistemą, būtina modifikuoti jos branduolį – pritaikyti specialiai paravirtualizacijos programinei sąsajai.

Kaip jau minėta, visiška virtualizacija nereikalauja modifikuoti OS branduolio, nes hipervizorius analizuoja visas VM instrukcijas ir prireikus jas pakeičia. Tačiau, instrukcijų gaudymas ir jų perrašymas, gali gerokai sulėtinti virtualios mašinos darbą bei sumažinti visos sistemos efektyvumą. Todėl paravirtualizacijos sprendimai siekia nukreipti privilegijuotas, virtualizacijai nepasiduodančias, operacijas iš VM srities į hipervizoriaus lygmenį.
Tam modifikuojamas OS sistemos branduolys, sunkiai virtualizuojamas komandos pakeičiamos hiperkreipiniais {hypercalls} – sisteminiais kreipiniais į hipervizoriaus specialią programinę sąsają. Hipervizorius veikia betarpiškai virš fizinės aparatinės įrangos, turi tiesioginę prieigą prie visų sistemos išteklių, todėl daug efektyviau apdorojamos privilegijuotos operacijos.
Paravirtualizacijoje, VM vykdoma, operacinė sistema {guest OS} žino apie virtualizaciją, jog veikia virš hipervizoriaus ir sugeba su juo bendradarbiauti per programinę sąsają {API}. Hipervizorius, gavęs hiperkreipinį {hypercall} iš virtualioje aplinkoje veikiančios OS, atliks reikiamus veiksmus su sistemos ištekliais ir gražins rezultatą atgal į operacinę sistemą.
Galimybė operacinei sistemai tiesiogiai komunikuoti su hipervizoriu, leidžia paravirtualizacijai apeina privilegijuotų, virtualizacijai nepasiduodančių, operacijų problemą. Tai lemia: padidėjusi VM našumą – priklauso nuo apkrovos tipo; padidintą visos sistemos efektyvumą; ir plonesnį virtualizacijos sluoksnį – mažiau realių aparatinės įrangos išteklių rezervuojama hipervizoriaus nepertraukiamai veiklai vykdyti.
Paravirtualizacijos hipervizorius nesistengia apgauti operacinės sistemos pilnai imituodamas aparatinę įrangą, bet perteikia paprastą VM abstrakciją su specialia programine sąsaja, per kurią daug našiau ir efektyviau vykdomos OS prieigos, prie realiųjų aparatinės įrangos išteklių, funkcijos.
Taigi, nors paravirtualizacija ir sukuria virtualias aplinkas daugelio OS vykdymui virš vienos fizinės sistemos, šios vykdomosios aplinkos realizuojamos kitokiu principu nei visiškos virtualizacijos metodu. Pastarasis leidžia vykdyti bet kurią nemodifikuotą OS, kuri veiktų ant realios fizinės platformos, tuo tarpu, paravirtualizacijos metodas reikalauja pritaikyti OS virtualizacijai, modifikuojant jos branduolį. Todėl paravirtualizacija palaiko tik keletas operacinių sistemų (pvz., Linux ir dalis Unix OS), dažniausiai plėtojamos atvirojo kodo principu, kurios leidžia modifikuoti OS branduolio išeities kodą.
Paravirtualizacijos išlyga OS modifikacijai bei atsiradęs x86 platformos aparatinio lygmens palaikymas visiškajai virtualizacijai {hardware-assisted virtualization}, palaipsniui išstūmė paravirtualizaciją į pakraščius, ir leido visiškos virtualizacijos sprendimams savo našumu ir efektyvumu konkuruoti su paravirtualizacija. Kita vertus, modernūs visiškos virtualizacijos sprendimai šiandien naudoja paravirtualizuotas tvarkykles {paravirtualized drivers}, leidžiančias tiesioginę prieigą prie įvesties/išvesties įtaisų, vietoj imituojamų programine įranga, o tai žymiai paspartina virtualiųjų mašinų operacijas su tinklo plokštėmis, diskais bei kitais kompiuterio įtaisais.
Gryna {pure} paravirtualizacija šiandien dažniausiai naudojama tik tarp nulinio tipo {Type-0} hipervizorių (apie juos netrukus). Keletas populiaresnių paravirtualizacijos sprendimų: Xen, IBM kompanijos LPAR ir Oracle VM Server for SPARC (LDOM).

Aparatinio lygmens palaikymas virtualizacijai


Kaip jau nekartą užsiminta, virtualizacijos palaikymas aparatiniame lygmenyje leidžia su mažesnėmis sąnaudomis realizuoti visiškąją virtualizaciją {full virtualization} ir daug efektyviau dalyti x86 platformos išteklius tarp daugelio virtualiųjų mašinų su nepriklausomomis operacinėmis sistemomis. Toliau bus trumpai apžvelgti svarbiausi x86 architektūros išplėtimai visiškajai virtualizacijai palaikyti aparatiniame lygmenyje {hardware-assisted virtualization}.
Aparatinio lygmens palaikymą visiškai virtualizacijai x86 platformoje žymi AMD-V ir VT-x virtualizacijos technologijos, atitinkamai AMD ir Intel kompanijų procesoriams. Šie pirmieji virtualizacijos išplėtimai pasirodė x86 architektūros procesoriuose apie 2006 metus, ir palietė privilegijuotų instrukcijų problemą, tuo būdu supaprastindami virtualizacijos sprendimų kūrimą.
Kiek vėliau, 2008 m., pristatytas antros kartos aparatinio lygmens palaikymas virtualizacijai palietė procesoriaus atminties valdymo įtaiso (MMU) problemą. Iki tol programine įranga paremtas atminties puslapių lentelių tvarkymas atskiroms virtualioms mašinoms, gavo aparatinio lygmens palaikymą, kuris AMD procesoriuose žymimas NPT arba RVI, o Intel procesoriuose EPT. Tai išsprendė virtualizuotos darbinės atminties našumo problemą.
Tais pačiais metais atsiradęs įvesties/išvesties (IOMMU) palaikymas virtualizacijai x86 platformos lustų rinkinyje {chipset}, sutrumpintai žymimas AMD-Vi ir Intel VT-d, padėjo išspręsti visiškos virtualizacijos įvesties/išvesties prietaisų našumo problemą. Su IOMMU virtualizacijos išplėtimu hipervizorius gali virtualioms mašinoms leisti tiesiogiai naudotis periferinės magistralės prietaisais {PCI passthrough}. Pavyzdžiui, tinklo plokšte, diskų masyvų valdikliais bei kitais į PCI/PCI-e magistralę jungiamais prietaisais.

OS lygmens virtualizacija


Operacinės sistemos lygmens virtualizacijos {OS-level virtualization} metodas, kaip diktuoja pats pavadinimas, realizuojamas operacinėje sistemoje. Virtualizacijos sluoksnio su hipervizoriu, kaip visiškos ir para virtualizacijos atveju, čia nėra. Todėl OS lygmens virtualizacijos sprendimai nekuria ir virtualių mašinų, bet vienoje OS realizuoja izoliuotas vykdomąsias aplinkas.

Vykdomosios aplinkos, tai virtualizuotos OS vartotojo lygmens aplinkos {user space}, saugiai atskirtos ir izoliuotos tarpusavyje, bet veikiančios virš vieno bendrinamo operacinės sistemos branduolio {shared kernel space}. Kiekviena aplinka turi savo šakninę failų sistemą, sistemines bibliotekas, procesų lentelę, tinklo dėklą bei kitus būtinus komponentus, programos ar galutinio vartotojo atžvilgiu, pavienės OS iliuzijai sukurti.
Kadangi virtualizacija vyksta operacinės sistemos lygmenyje, nereikia imituoti aparatinės įrangos, vietoj to, virtualizuojama vartotojo lygmens aplinka {user space}. Kaip ir įprastos OS vartotojo lygmens aplinkoje, tiesioginė prieiga prie OS branduolio {shared kernel} pasiekiama standartiniai sisteminiais kreipiniais {system calls}. Todėl operacinės sistemos lygmens virtualizacijos sprendimai pasižymi mažiausiomis virtualizacijos sąnaudomis – didžiausiu našumu ir panaudotų išteklių efektyvumu, tarp kitų virtualizacijos metodų. OS lygmens virtualizacija veikia našiai ir efektyviai, net jei aparatinė įranga, virš kurios veikia OS, neturi palaikymo virtualizacijai.
Kitas OS lygmens virtualizacijos privalumas prieš visiškos ir para- virtualizacijos metodus – supaprastintas aplinkos portatyvumas {portability} – ypač lengvai kilnojama vykdomoji aplinka, dėl to dažnai jos vadinamos konteineriais {containers}. Pavyzdžiui, jei virtualios mašinos, su tipine OS ir programine įranga, momentinio būvio kopija {snapshot} užima bent maždaug 1GB, tai konteinerio svoris priklauso tik nuo vykdomos programinės įrangos ir unikalių rinkmenų-bibliotekų apimties virtualioje aplinkoje, visos kitos failų sistemos rinkmenos naudojamos bendrai iki jų pakeitimo {copy-on-write}, o tai konteinerio svorį gali sumažinti iki keleto megabaitų. Tai ypač paspartina gyvos virtualios aplinkos perkėlimą į kitą fizinę kompiuterio platformą {live migration}.
OS lygmens virtualizacija taip pat galima panaudoti siekiant saugesnės atskirties tarp vykdomų programų vienoje operacinėje sistemoje, ar geresnio jų valdymo galimybių. Gerai išvysti OS lygmens virtualizacijos sprendimai turi puikus aplinkos valdymo ir išteklių ribojimo įrankius.
Tačiau, dėl aukštesnio lygmens virtualizacijos, turi prastesnius atskirties-saugumo požymius tarp virtualių aplinkų, nei visiškos ir para- virtualizacijos atveju. OS strigties {crash} atveju, klaidą ir pasekmes pajus visos virtualios vykdomosios aplinkos. Operacinės sistemos lygmens virtualizacija taip pat mažiau lanksti, už kitus du metodus, kadangi ji negali paleisti ir vykdyti kelių OS branduolių, ar skirtingų-maišytų OS (MS Windows ir Linux), virš vienos fizinės kompiuterio platformos.
Šis virtualizacijos metodas yra populiarus, nes dažnai programinė tinklo paslaugų įranga nereikalauja skirtingų OS ar individualaus branduolio, bet gali dalytis bendru OS branduoliu {shared kernel} saugiai atskirtose ir izoliuotose vartotojo vykdomosiose aplinkose {user space}.
Vienas tokių pavyzdžių saityno prieglaudos paslaugos {web hosting}. Vienoje fizinėje mašinoje galima sukurti daugelį nepriklausomų aplinkų: su vienoda tinklo paslaugų programine įranga, bet su skirtinga konfigūracija ir failais; su vienodu OS branduoliu {shared kernel}, bet skirtingomis vartotojo lygmens aplinkomis {user space}. OS lygmens virtualizacijos sprendimai užtikrina pakankamai saugų ir lygiagretų virtualių aplinkų darbą. Toks programinės įrangos vykdymas leidžia itin efektyviai išnaudoti fizinės mašinos išteklius.
Tokia tinklo paslaugų realizacija palengvina ir jų administravimą. Pavyzdžiui, norint į saityno serverius įdiegti saugumo atnaujinimą, ar pakeisti bendra jų konfigūracija, užtenka pakeitimus atlikti pagrindinėje operacinėje sistemoje, kuri virtualizuoja kitas aplinkas. Kita vertus, skirtinga programinę įranga gali prašyti skirtingų OS versijų stabiliam darbui užtikrinti.
Keletas populiaresnių OS lygmens virtualizacijos sprendimų: OpenVZ, FreeBSD jails, Docker, LXC ir Solaris Containers (Solaris Zones).

Apžvelgus visas populiariausiu virtualizacijos metodus gali kilti klausimas ar OS lygmens virtualizacijos metodas gali būti priskiriamas platformos virtualizacijai? Akivaizdu, jog operacinės sistemos lygmens virtualizacija turi savų privalumų ir yra aktyviai taikomas serverių sistemose su vienarūšėms tinklo paslaugų programomis. Kita vertus OS lygmens virtualizacija, galutinio vartotojo atžvilgiu, taip pat sukuria iliuzija, jog naudojamasi paviene kompiuterio platforma.

Galima pastebėti, jog visi paminėti virtualizacijos metodai siekia, virš vienos fizinės sistemos, sukurti nepriklausomas-izoliuotas, lengvai valdomas ir saugias aplinkas tinklo paslaugų programinės įrangos {guest software} vykdymui. Vis dėlto, visiška virtualizacija realizuoja žemiausią kompiuterio platformos lygmenį, todėl iš prigimties yra giliausiai izoliuota aplinka, kuri turėtų būti saugiausia ir stabiliausia vykdomoji aplinka, tinkama įvairioms tinklo paslaugų sistemoms virtualizuoti. Todėl ir ši straipsnių serija apie virtualizacija labiau akcentuoja visiškąją kompiuterio platformos virtualizaciją.

Hipervizorių klasifikacija


Apžvelgus populiariausius virtualizacijos metodus, reikia trumpai apžvelgti ir skirtingus hipervizorius, kurie priklausomai nuo jų realizacijos lygmens kompiuterių sistemos architektūroje, dažnai skirstomi į nulinio {Type-0}, pirmojo {Type-1} ir antrojo {Type-2} tipo hipervizorius:

Nulinio tipo {Type-0} hipervizorius realizuojamas žemiausiame kompiuterio sistemos lygmenyje – aparatinėje įrangoje. Virtualizacijos sluoksnis, VM kūrimas ir tvarkymas, integruotos į programinę aparatinę įrangą {firmware}. Visi šios klasės hipervizoriai naudoja specifinę, tarpusavyje surištą, aparatinę ir programinę įrangą, bet tarp skirtingų virtualizacijos sprendimų nesuderinamą. Todėl ši virtualizacijos platforma nėra plačiai paplitusi įmonių duomenų centruose. Tačiau, dėl savo ypatingų savybių, turi savo nišą ir sėkmingai naudojama vidutinėse bei didesnėse serverių sistemose.
Nulinio tipo hipervizorių siūlo IBM kompanijos LPAR ir Oracle VM Server for SPARC (LDOM) virtualizacijos sprendimai (aparatinė ir programinė įranga).

Pirmojo tipo {Type-1}, dažnai įvardinamas kaip savasis {native} ar plikos aparatūros {bare-metal}, hipervizorius veikia betarpiškai virš fizinio kompiuterio techninės įrangos, todėl, kaip ir nulinio lygio hipervizorius, turi tiesioginę prieigą prie visų kompiuterio sistemos išteklių. Šis hipervizorius pats koordinuoja tikslingą ir saugų aparatinės įrangos (centrinio procesoriaus, darbinės atminties, įvesties/išvesties įrenginių) dalijimą tarp daugelio virtualiųjų mašinų. Dėl savo atliekamų funkcijų savasis hipervizorius laikomas specializuota operacine sistema {special-purpose OS} virtualizacijos realizacijai. Aparatinio lygmens hipervizoriai pasižymi dideliu našumu, patikimumu ir unikaliomis funkcijomis. Tai populiariausias hipervizorių tipas įmonių kompiuterių tinkluose, plačiai taikomas virtualizuojant ne tik serverius, bet ir kitą IT infrastruktūrą, kur ypač svarbu sistemos stabilumas ir operacijų patikimumas.
Programinė įranga priskiriama pirmojo tipo hipervizoriui: VMware ESXi, Citrix XenServer, Xen, Microsoft Hyper-V ir Linux KVM.
Antrojo tipo {Type-2}, dažnai įvardinamas kaip prieglobos {hosted}, hipervizorius realizuojamas aukštesniame architektūriniame sistemos lygmenyje, virš bendros paskirties operacinės sistemos {general-purpose OS}. Prieglaudos hipervizorius realizuojamas kaip programa, vykdoma lygiagrečiai su kitomis bendro pobūdžio OS programomis. Prieigos prie fizinio kompiuterio išteklių hipervizorius prašo iš operacinės sistemos, kuri nieko nežino apie vykdomą virtualizaciją. Dėl to hipervizorius aptarnaujamas kaip bet kuris kitas OS vykdomas procesas. Šio tipo hipervizorius nėra toks patikimas ir našus kaip pirmojo tipo, dažniausiai naudojamas ten kur pirmojo tipo hipervizorius taikymas negalimas ar nepraktiškas. Pavyzdžiui, norint naudotis keliomis operacinėmis sistemomis nešiojamajame kompiuteryje.
Programos veikiančios antrojo hipervizoriaus tipo principu: VMware Workstation / Player / Fusion, Parallels Desktop, Oracle VirtualBox ir QEMU.

Reikia pastebėti, jog remiantis šią klasifikacija ne visi virtualizacijos hipervizoriai vienareikšmiškai priskiriami vienai ar kitai kategorijai. Pavyzdžiui, itin populiarus KVM hipervizorius turi kelių tipu požymius: viena vertus, KVM virtualizacijos sprendimas gaunamas į Linux OS branduolį įdiegus virtualizaciją palaikantį modulį, taip iš esmės paverčiant Linux OS į pirmosios klasės hipervizorių. Antra vertus, Linux sistema su KVM branduolio moduliu {kernel module} išlieka pilnavertė bendro pobūdžio OS, kurioje VM operacijos vykdomos lygiagrečiai su kitais procesais. Tačiau laikoma, jog bendros paskirties operacinės sistemos, kurios be įprastų savo funkcijų "sąmoningai" atlieka ir integruotą virtualizacijos funkciją, priklauso pirmojo tipo hipervizoriams (pvz., MS Windows Server su Hyper-V ar Linux su KVM).



Straipsnių serija skirta kompiuterių platformos virtualizacijai apžvelgti:

2 komentarai:

  1. Pasidomėk apie Docker ir Kubernetes. More flexible ir scalable

    AtsakytiPanaikinti
    Atsakymai
    1. Šiai dienai būt sunku apie juos nieko negirdėt :) šiaip bendrai apie OS lygmens virtualizacijos privalumus (vadinamuosius konteinerius) užsiminiau ir šitame straipsnyje.

      Panaikinti