Mellékleteink: Unix / Linux | Gamekapocs
Keres

A Windows Server Virtualization

Budai Péter, 2007. június 01. 12:30
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

A Windows Server 2008-ban, annak egyik szerepköreként lesz elérhető a Microsoft vadonatúj fejlesztésű, mikrokernel-alapú virtualizációs megoldása, a Windows Server Virtualization. Cikkünkben megpróbáljuk bemutatni ezt a technológiát, bepillantást engedve a használatába is.

hirdetés

Az alábbi cikk a Microsoft TechNet Magazin legújabb számában olvasható, és a szerző szíves engedélyével közöljük.

Egy közel száz kilobájtos kis réteg van készülőben a Microsoftnál: egy mikrokernel, ami képes az erőforrások (memória, processzor, stb.) megosztására több operációs rendszer között. Mindezt a Windows Server 2008 egy szerepköreként kapjuk meg, gyakorlatilag teljesen ingyen. A szervervirtualizáció új generációja ez: a Windows Server Virtualization!

Egy kis történelem

A virtualizáció már közel 30 éve jelen van a mainframe rendszerek esetében, azonban csak néhány éve jelentek meg az első virtualizációs technológiák az x86 platformra. A mainframek esetében az elsődleges cél a szoftverek visszafelé kompatibilitásának megőrzése volt, hogy a virtuális környezetekben akár évtizedekkel korábban elavult megoldások is futhassanak. Később egyre inkább teret nyertek a virtualizáció más irányú felhasználási módjai is, például az erőforrások egy fizikai gépen belül történő elosztása a virtualizált operációs rendszerek között.

Az x86-os platformon is hasonló volt a helyzet -- elsőként a desktop-virtualizációs megoldások jelentek meg, majd rohamosan fejlődni kezdett a szervervirtualizáció is. Majd ahogy egyre többet tudtunk meg a virtualizáció lényegéről, a Terminal Services-alapú megoldások is részben ide kerültek (megjelenítés virtualizáció). Mára már minden virtualizálható: a hálózat, a tárolórendszerek (pl. iSCSI), de akár az alkalmazások is (pl. SoftGrid).


A Microsoft virtualizációs megoldásainak körképe

Nem meglepő ez a tendencia, ahogy egyre nagyobb az igény a rugalmasan változtatható informatikai rendszerek iránt. A virtualizáció talán legfontosabb célja ugyanis az, hogy a rendszerünk összetevőit minél inkább elszigeteljük egymástól, és lehetővé váljon ezeknek az építőkockáknak a tetszés szerinti mozgatása, cseréje, frissítése.

A szervervirtualizáció lehetőségei

Koncentráljunk most egy kicsit a szervervirtualizációra! Pontosan mire is jó ez nekünk? Milyen problémákra ad választ? Ha valaki még nem foglalkozott szervervirtualizációval, érdemes végiggondolnia az alábbi felhasználási lehetőségeket:

  • Szerverkonszolidáció: a szerverhardverek a legritkább esetben vannak folyamatosan kiterhelve a lehetőségeik határáig. Minden szolgáltatás máskor és eltérő mennyiségű számítási teljesítményt illetve erőforrásokat igényel. Érdemes ezeket a különféle szolgáltatásokat minél kevesebb fizikai vasra központosítani, és azok skálázhatóságát és rendelkezésre állásást biztosítani.
  • A szolgáltatások folyamatos működésének biztosítása: a cél itt igencsak egyszerű: szeretnénk minimalizálni mind a tervezett, mind a be nem tervezett rendszerleállások idejét. Minél kevesebbszer álljon le a rendszer, de ha le is áll, gyorsan helyre tudjuk azt állítani. Virtualizációval mindez könnyen megvalósítható, hiszen mind a fürtözésre, mind a virtuális lemezek és gépek replikációjára és mozgatására is számtalan megoldás áll rendelkezésünkre, amihez egészen kényelmes rendszerfelügyeleti megoldások is elérhetőek már.
  • Dinamikus adatközpont: lehetőségünk van arra is, hogy az egy vasra konszolidált operációs rendszerek, illetve szolgáltatások között rugalmasan mozgathassuk az erőforrásokat, például a rendelkezésre álló memóriát, illetve a számítási kapacitást. Ha több szerverünk van, igény szerint másolhatjuk, mozgathatjuk köztük a virtualizált gépekeinket is.
  • Fejlesztési és tesztkörnyezet: könnyen építhetünk olyan virtuális tesztkörnyezeteket, amin új szoftverváltozatokat próbálhatunk ki, hogy azok mennyire fognak helyt állni valós rendszerünkben. Ezek a virtuális környezetek nem kell, hogy külön fizikai szerverekre kerüljenek – elférhetnek a már használatban lévő szervereken is, és mivel csak a teszt idejére van rájuk szükség, így erőforrásigényük is csak ideiglenes. A virtualizációnak köszönhetően tökéletesen izolálhatjuk ezeket a tesztrendszereket a valódiaktól (egy hardveren belül is!), de ha pont ennek az ellenkezőjére van szükségünk (például egy migráció tesztelésekor szeretnénk elérni az aktuális rendszert is), az is könnyen megvalósítható.

Sokan persze már csak mosolyogva legyintenek ezen sorokat olvasva, hiszen már ismerik a ma elérhető megoldásokat, és használják is azokat, köztük a Microsoft Virtual Server 2005 R2-őt, vagy például a VmWare megoldásait. Nekik már sokkal gyakorlatiasabb problémáik vannak: a virtualizált rendszerek teljesítménye, az emulált és virtualizált hardverek használhatósága, a biztonság kérdése, a minél alaposabb izoláció és az egyszerű kezelhetőség és menedzselhetőség kerül előtérbe.

Tervezési szempontok

A Windows Server Virtualization tervezésekor a korábbi céllal szemben (a visszafelé kompatibilitás megvalósítása) további, új szempontok is előtérbe kerültek. Az első szempont az volt, hogy a rendszer a lehető legbiztonságosabb legyen. Legyenek a különféle virtualizált rendszerek és a virtualizációt végző infrastruktúra egymástól teljesen elszigetelve, izolálva: ne érhessék el a virtualizált rendszerek egymás adatait, memóriáját; ne tudják egymás elől elvenni a rendelkezésre álló számítási kapacitást, hanem azt az infrastruktúra ossza meg köztük. A biztonság elérése érdekében az is fontos, hogy minél kisebb legyen a virtualizációs réteg kódja. Ez a réteg ugyanis mindenhez hozzáfér, és mindenhez van joga. A lehető legkisebbre kell csökkenteni a méretét, ezzel egyúttal csökkentve a támadási felületet is.

A biztonság után legfontosabb szempontként a megbízhatóság állt, ugyanis a virtualizációs réteg hibája vagy leállása valamennyi azon futó virtuális gép leállásával jár együtt! Elég akár egy egyszerű rendszerújraindításra gondolnunk. Virtualizáció nélkül egyetlen gép leállása csak egy adott szolgáltatás leállását eredményezi. Egy 20 virtuális gépet futtató vas leállása azonban mind a 20 szolgáltatás azonnali leállását eredményezi. Emiatt nagyon fontos, hogy a rendszer minél megbízhatóbb legyen, másrészt legyen képes magas rendelkezésre állásra abban az esetben is, ha valamiért mégis leállás következik be. Többek között ezért is jár annyira kéz a kézben a virtualizáció és a fürtözés.


A monolitikus és a mikrokernel-alapú hypervisor közti különbségek

A fokozottabb megbízhatóság érdekében a Windows Server Virtualization az egyszerűségre törekszik. Ennek legfontosabb eszköze, hogy egyértelműen meghatározott, egymásra épülő rétegekre osztott a felépítése, és az ezek közti kommunikációs kapcsolatok száma alacsony, működésük a lehető legegyszerűbb. A hardverhez legközelebb eső rétegek (amik a legtöbb jogosultsággal rendelkeznek) a lehető legkevesebb feladat elvégzésére képesek. Ezért maga a hypervisor egy nagyon apró mikrokernel képében került megvalósításra (ezzel később részletesen foglalkozunk), ami kizárólag azokat a funkciókat tartalmazza, amikhez tényleg szükség van a legmagasabb jogosultságokra, illetve néhány olyan apró funkciót, ami az optimális teljestmény eléréséhez teljességgel elengedhetetlen. Minden más a hypervisor fölött, a partíciókban fut, amit virtualizációs réteg (virtualization stack) néven fogunk a jövőben emlegetni.

Ez lényeges eltérés például a VmWare ESX szerverhez képest, ami a minél nagyobb teljesítmény érdekében további drivereket és hardveremulációt is a hypervisor szintjére helyezett el -- ez a monolitikus hypervisor megközelítés. Ez azonban növeli a támadási felületet, növeli a leállások kockázatát (gondoljunk csak a hibás driverekre!), és gyakorlatilag teljes ellentétben áll a Microsoft által is képviselt minimalista, mikrokernel alapú hozzáállással szemben -- mindezt néhány százaléknyi teljesítményért cserébe. A nyílt forrású hypervisor, a Xen is a Microsoft álláspontját osztja ebben a kérdésben, emiatt a két megoldás igen sok ponton képes lesz együttműködni -- de erről még szintén lesz szó a későbbiekben.

A harmadik szempont a skálázhatóság volt: elérni, hogy a Windows Server Virtualization gyakorlatilag akármekkora gépen, tetszőleges méretű és számú virtuális gépet is képes legyen optimális teljesítménnyel kezelni.

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.