Mi is az a hypervisor? – Megoldások

Bőven letelt az egy hét, itt az ideje, hogy közzétegyük a megoldásokat és azok értékelését. Mindenek előtt az erdeti kérdések.

Mi a különbség a host alapú és a hypervisor alapú virtualizációs megoldások között?
Az architektúra szempontjából miért tekintjük a hypervisor alapú megoldást jobbnak?

1. Megoldás: "A hypervisor attól hypervisor, mert nem kell hozzá külön operációs rendszer."
Helytelen megoldás: az ESXi megjelenéséig minden hypervisor megoldáshoz szükség volt ilyenre és ettől meg hypervisor megoldások voltak.

2. Megoldás: A hypervisor tartalmazza a valóságos gép eszkömeghajtóit és nem az operációs rendszer.
Helytelen megoldás: A Microsoft és a Xen megoldásnál ez nem így van, mégis kétséget kizáróan hypervisor megoldások.

3. Megoldás: host alapú: a virtualizáció csak egy program az operációs rendszeren belül. Hypervisor: az operációs rendszeren kívüli virtualizáció; a teljes operációs rendszer virtuálban fut.
Alapvetően nem rossz megoldás, de erősen pontosításra szorul, különösen a második állítás. Mer igaz, hogy a ConsoleOS/Dom0/Parent Partition stb. virtualizált, de milyen virtualizáció az, amely lehetővé teszi, hogy a teljes hardvert láthassák? És milyen az a "rendszeren kívüli" megoldás, amely a "rendszerrel együtt" települ, tehát a "rendszerben" van.

4. Megoldás: "Tipp: a Hyper-V eseten "mintha" kozvetlenul a hardverhez fordulna a Vendeg virtualis gep, s nem kozvetitve. Meg talan a driverek teren van kulonbseg – hogy hova telepulnek? (nem neztem meg a rajzot, de valami ilyesmi remlik). Arrol nem beszelve, hogy Hyper-V eseten nem kell GUI-t frissiteni, de meg a "szokasos" patchelesek szama is szerintem joval kevesebb.
Helytelen megoldás: a hypervisor esetén is emulált, virtuális környezetben futnak a virtuális gépek. A drivereket (pl. a Microsoft esetén) ugyanúgy kell kezelni/telepíteni a host alapú és a hypervisor alapú megoldásnál is. Az utolsó mondat pedig a "Server Core" telepítésre utal, nincs közvetlen köze a hypervisor technológiához.

5. Megoldás:
"Mi a különbség a host alapú és a hypervisor alapú virtualizációs megoldások között?"
Mit értünk pontosan host alapú virtualizáción?:) Ha az MS Virtual Server, VMware Workstation kategóriájú megoldásokat, akkor a fő különbség, hogy ezeknél a virtualizációs réteget egy meglévő, általános célú operációs rendszerre telepítjük. A hypervisoros megoldás esetén, pedig a hardver felett közvetlenül fut egy vékony virtualizációs réteg, ő menedzseli a fizikai erőforrásokat és osztja szét a virtuális gépek között (efelett általában még fut valami menedzsment felületet is biztosító réteg).
"Az architektúra szempontjából miért tekintjük a hypervisor alapú megoldást jobbnak?"
Itt elvileg a hypervisor menedzseli a hardver erőforrásokat, speciális, a virtualizáció igényeinek megfelelő megoldásokat tud használni az erőforrások kiosztására. A másik megoldás esetén a virtualizációs réteg egy sima alkalmazásként fut az általános célú operációs rendszer felett (bár ezt kernel szintű komponensekkel azért próbálják kicsit módosítani a gyártók), így azt várhatjuk, hogy ott a virtualizációs réteg nem kap annyi erőforrást, nem tudja olyan hatékonyan kihasználni a meglévőket.

Az első kérdésre adott első mondat nem helyes, ellenpéldát tudok mondani: a Hyper-V-t éppúgy kell telepíteni, mint a Print Server szolgáltatást, mégis hypervisor alapú a megoldás. A második mondat alapvetően helyes, de homályos mondat. (Tankönyvi, egész pontosan). Mi az, hogy "vékony"? Mi az, hogy a "hardver felett"?. A menedzselés nem igaz: a hyper-v (é a Xen) esetén az amúgy virtualizált parent partition (Dom0) "menedzseli a fizikai erőforrásokat, pl, felismeri az eszközt és telepíti a megfelelő eszközmeghajtót. Vagy nem? 😉

A második kérdésre adott első mondatot az előbb "cáfoltam". (Szándékolt az időzőjel), egyébként a mondat második fele a host alapú virtualizációra is igaz. Pl: dinamikus VHD, memória-allokáció stb. A második mondat telitalálat, bár a "rendszer felett" eléggé homályos megfogalmazás.

————–

Ez az én megoldásom:
Mi a különbség a host alapú és a hypervisor alapú virtualizációs megoldások között?
A host alapú virtualizációnál a Virtual Machine Monitor (VMM) egy általános célú operációs rendszer kernel módú komponense. A Virtual Machine Monitor és a operációs rendszer kernele azonos processzor privilégium-szinten futnak. A hypervisor megoldásnál kizárólag a Virtual Machine Monitor fut teljes privilégium szinten, minden más komponens, beleértve a VMM-et indító operációs rendszert is, ennél kisebb privilégium szinten fut.

Vagy: host alapú virtualizációs megoldásnál a VMM-et hordozó operációs rendszer és a VMM is valóságos CPU-n fut. Hypervisor megoldás esetén csak a VMM fut a valóságos CPU-n, minden más szoftver komponens, beleértve a VMM-et indító operációs rendszert is, a VMM álal szolgáltatott virtuális CPU-n fut.

"Az architektúra szempontjából miért tekintjük a hypervisor alapú megoldást jobbnak?"
Azért, mert a processzoridő és a memória allokációja kizárólag a VMM hatásköre, a hardver vezérlésén nem kell megosztoznia

És persze a kérdés ezek után, hogy mi a VMM? Az izolációért, partícionálásért és virtuális CPU-ért felelős szoftverkomponens.

———————

Amit a téma kapcsán még szeretnék kiemelni.

1. A Wikipédia, és azon keresztül az IBM nem úgy használja a fogalmakat, ahogy a én ebben a cikkben (illetve ahogy azt a Microsoft mostanáig szokta) A wikipédia minden VMM-et hypervisornak tekint és megkülönböztet type1 és type2 típust. A type1 fogalmilag megfelel annak, amit én hypervisornak mondok, a type2 pedig a host alapú virtualizáció. A legújabb, egyelőre csak belső Microsoft dokuemntumok már szinkronban vannak az iparági megnevezésekkel. (Csak megjegyzem: szégyen, de magyarul még senki nem írt hypervisor wiki cikket.)

2. A megoldásoknál előkerültek a cégek (többek között a Microsoft) által szajkózott klisé-mondatok, tényleges tartalom nélkül.

3. A témához nem illő képzetek is megjelentek, pl. a telepítés, a Server Core, vagy a driverek elhelyezkedése. Ezeknek nincs közük a kérdésben feltett virtualizációs típusok megkülönböztetéséhez. Hogy mást ne mondjak például, de  Virtual Server 2005 teljes mértékben támogatott Windows Server 2008 Server Core alatt!!

Sok fogalmat kell még tisztázni, van/lesz bőven téma a webnaplóban 😉

One Response to Mi is az a hypervisor? – Megoldások

  1. Attila says:

    hát igen, nagy a homály, de kezdek felvilágosodni, köszönöm. :)

Leave a comment