Tudta-e?
hogy a gyermekeknek naponta legalább fél liter tejet kellene inniuk ahhoz, hogy a csontozatuk megfelelően fejlődjön, erősödjön?

2. szám - 2007. június 11.

SZÁMÍTÁSTECHNIKA

Virtuális világ

2. rész - A legtöbbünkben a Virtuális világ az Internetet jelenti, bele sem gondolunk abba, hogy egy gépen belül is létezhet, sőt létezik virtualizáció.
Baji Zsolt

Dinamikus újrafordítás, QEMU

Valójában ez is egyfajta emulálás, mely lehetővé teszi a rendszerek átjárhatóságát a hasonló struktúrájú processzorok között. Mivel legtöbb esetben az utasítások nagyon hasonló felépítésűek, viszonylag könnyen átfordíthatók hasonló utasításokra, vagy utasításciklusokra eltérő architektúrákon. E módszerrel a szabad forráskódú ingyenes emuláló program, a QEMU képes különböző architektúrájú rendszereket emulálni egymás alatt (Intel x86, AMD64, IA-64, PowerPC, Alpha, SPARC 32 és 64, ARM, S/390, M68k), viszonylag alacsony sebességveszteség mellett (10-20%). Kialakításának köszönhetően e architektúrák alatt bármely más operációs rendszer működtethető, azonban a két legjelentősebb vonala a fejlesztésnek az ugyanazon architektúrán futó Linux és Windows futtatása egymás alatt. Mivel maga az emulátor több operációs rendszerre is le van fordítva, szinte bármelyik alatt bármelyik másik rendszert elindíthatjuk. Az emulátor egyes szükséges hardverelemeket is emulál, azonban viszonylag alacsony szinten, lehetetlen fejlett grafikát futtatni, minőségi hangot kiadni, csupán az alapfunkciók működnek, azonban a legfontosabb dolgokat mégis használhatjuk a virtuális gép alatt, különösen a hálózati eszközök működnek jól.

A program nem rendelkezik saját grafikus felülettel, kezelővel, szöveges módban kell elindítani és megadni a futási paramétereket. Ennek ellenére könnyen és pillanatok alatt ki lehet alakítani a kívánt virtuális környezetet, a futás során meg úgyis a virtuális gépet használjuk. A futtatáshoz biztosít virtuális merevlemezeket is, melyek csak annyi helyet foglalnak, amennyi adat van rajtuk, függetlenül attól, hogy nagyobbnak adtuk meg maximális méretüket. Könnyű variálni azzal, hogy milyen meghajtókat (merevlemez, floppy, CD/DVD) lásson a virtuális gép, és minden egyes futtatás során módosítható. Image fájlokat is kezel az emulátor. Egyes gyorsító modulokkal lehet javítani az azonos architektúrák emulálását, így a programozók állítása szerint megközelíti a natív futási sebességet. Véleményem szerint azonban legalább 5%-os veszteség könyvelhető el mindenképpen, mivel az emulátor nem valós hardveren, hanem emulált hardveren futtatja a rendszert. Azonban az alapfunkciók mellet a QEMU lehetőséget ad a pillanatképek készítésére (szükség esetén az aktuális állapot elmenthető, és később visszahozható), a benne futó rendszerek fagyasztására, és egyéb rendszermanipulációs feladatokra. A monitoringot a CTRL+ALT+2 billentyűkombinációval kapcsolhatjuk be, illetve a CTRL+ALT+1 kombinációval ki. E módban megkapjuk az összes lehetőséget, amit csak egy virtuális géppel meg lehet csinálni (a újraindítástól kezdve a különböző állapotmentéseken keresztül kezdve a hang, vagy kép elmentéséig mindent). A rendszer információi akár ki is írhatóak más médiumra, és másik rendszer alatt futtathatóak, az ottani operációs rendszertől függetlenül, csupán a QEMU-t telepítenünk kell rá. Ráadásul egy VNC szervert is integráltak az emuláló programba, így akár távoli gépeken is futtathatjuk a virtuális rendszerünket.

A program megengedi, hogy több példányt futtassunk belőle, azonban viszonylag kevésbé engedi meg a felhasználónak, hogy konfigurálhassa a fő rendszer terhelését az emuláció során, vagyis ha az egyik emulált számítógép nehéz számítási feladatot végez, akkor a teljes processzort képes leterhelni, ami kihatással van a többi rendszer működési sebességére. Így a használata elsősorban hobbisoknak, kísérletezőknek és fejlesztőknek ajánlott, semmiképpen sem üzleti célokra, szerverek virtuális megosztására. Az egyetlen módszer a teljesítmény hatékonyabb osztására csak az, hogy a nemkívánatos rendszer futási prioritását csökkentjük, így valamelyest mérsékelhetjük a kellemetlen terhelést. Ha e módon akarunk virtuális gépeket futtatni, mindenképpen szerezzünk be elegendő memóriát (minél többet, 1 Giga RAM alatt sok kellemetlenségünk lehet a sebességgel), és legyünk türelmesek a virtuális rendszerrel. Nem árt, ha több magos rendszerünk van, az esetben jobban elosztódik a terhelés.

A program letölthető a http://fabrice.bellard.free.fr/qemu/ weboldalról.

Megjegyzés: a szerző is ezt az ingyenes emulátort használja kísérletezgetésekre a különböző programok tesztelése során, mivel ingyenes, és operációs rendszer független.

Paravirtualizáció – XEN

Az emuláció sok előnnyel szolgál, azonban hátránya, hogy nagy erőforrást igényel, a hardver által elvégezendő dolgokat is a szoftvernek kell sok esetben végeznie, így az emulált környezetben csak jelentősen lassabban végezhetők el ugyanazok a műveletek. Ez okból az IBM fejlesztői egy másik irányba indították el a fejlesztést, melyet paravirtualizációnak nevezünk. A megoldás valójában nem teljes virtualizálása a hardvernek, hanem az operációs rendszerek (mind a gazda, mind a vendég) olyan módosítása, hogy azok kommunikálhassanak egymással, ily módon megkerülve a szükséges közvetlen eléréseit a hardvernek. E módon elérhető a minimális teljesítménycsökkenés, ugyanis minimális mennyiségű további programkód futtatása szükséges ahhoz, hogy az egymás mellett futó operációs rendszerek ne zavarhassák egymást. A virtuális hardverelemek nincsenek teljes mértékben emulálva, szinte a valódi hardveren futnak a vendég operációs rendszerek. Természetesen ez az előny egyúttal hátrány is, ugyanis a vendég rendszernek tudnia kell ugyan azon a gépen futni, akár mint alaprendszer is (tehát a vendég operációs rendszert az adott gépen futtathatónak kell lefordítani, megvásárolni), ráadásul a vendég operációs rendszereket portolni kell a virtuális rendszerben való futáshoz. A portolás azt jelenti, hogy az eredeti rendszert módosítani kell oly módon, hogy a virtuális futtatóval képes legyen közvetlenül kommunikálni, amihez további munkálatok szükségesek minden egyes vendég operációs rendszer típusnál (minden egyes operációs rendszer kódját valamely mértékben módosítani kell). Ebből következik, hogy csak a virtuális környezetre portolt rendszereket futtathatjuk e módon.

Legismertebb paravirtualizációval működő projekt a XEN, melynek mára nagy háttértámogatása van a nagyvállalatok felől (IBM, Novell), melyek ehhez optimalizált hardvereket, szervereket, illetve megfelelő szoftvereket és kezelőkörnyezeteket is kifejlesztettek, mindemellett a program teljesen nyílt forráskódú, és szabadon használható. A XEN sokáig csak Linux alatt működött, mind a gazda, mind a vendég rendszernek Linuxnak kellett lennie. Mára azonban odáig jutottak a fejlesztésekkel, hogy a rendszer a különböző Linux változatok mellett akár Windowst is képes futtatni. A Windows változatok közül csupán a Windows Server 2003, Windows XP, Windows 2000 Server futtatható, a többi Microsoft termék futása lehetetlen. Azonban a nagyobb hálózati rendszereknél, ahol mind Windows, mind Linux szerepel a szervereken, ezúton kihasználható mindkét operációs rendszer előnye, így a vállalati környezetet könnyebben alakíthatjuk a megfelelő struktúrára. A gazda rendszer azonban továbbra is Linux. Persze maga a gazda rendszer jelentősen lecsupaszítható, minden egyes felesleges rész eltávolítható, a rendszer által elvégezendő feladatokat úgyis a virtuális környezetben futó rendszerek fogják végezni.

A XEN segítségével a virtuális környezetben futó rendszer csupán 2-3%-al fut lassabban, mint ugyanazon rendszer valós környezetben való futtatásával. Tehát nem jelentős a sebességcsökkenés, ugyanakkor egy nagy kapacitású számítógépen több operációs rendszert is futtathatunk párhuzamosan, különböző feladatokra optimalizálva, így jobban kihasználhatjuk a gép teljesítményét, kényelmesebben oszthatjuk szét a feladatokat, ráadásul a biztonságot is növelhetjük, mivel egy rendszer sérülése nincs kihatással a többire, történhet a sérülés konfigurációs hiba végett, támadás végett, vagy akár hibás program végett. Az így elkülönített feladatokat elvégző rendszerek hibaszázaléka sokkal kisebb (kevesebb a kiesés), mivel a programok nem tudnak kihatással lenni egymásra, sőt a virtuális gép szükség esetén gyorsan újraindítható, mely folyamat alatt csupán ezen a gépen futó folyamatok működése áll le. További előnye a XEN-nek, hogy lehetővé teszi a virtuális gépek mozgatását az egyik gépről a másikra (feltéve, hogy a másik gép is ugyanolyan struktúrájú hardverrel megy), a gépek mozgatása akár futásidő alatt is történhet, a virtuális gép leállítása nélkül, így csupán pár milliszekundumra esik ki az adott gép. Ezzel elérhető, hogy hardverhiba esetén pillanatok alatt másik gépre átvigyük a rendszereinket, és minimális kieséssel működjön tovább az összes funkció, sőt nagyobb a rendszerek skálázhatósága is, ugyanis szükség esetén a teljes rendszert gyorsan leállás nélkül tehetjük át nagyobb kapacitású gépre, hogy a felhasználók csak a sebesség növekedését érzékeljék, de kiesést ne. Több nyugati vállalat használja e virtuális gépeket a szerverparkjában elsősorban a kritikus rendszerek futtatása érdekében, ahol nem történhet meg egy pillanat kiesés sem, illetve olyan helyeken, ahol nem mérhető fel előre a szükséges erőforrásigény, vagy ezen igény az idők során változik.

A XEN-ről részletessebben www.xensource.com weboldalon tájékozódhatnak.

Megjegyzés: a XEN legújabb 3.0-ás változatától érhető el a Windows futtatása (régebbi változatok csak Linuxot futtatnak), illetve e verziótól kezdve képes a rendszer kihasználni az új processzor szintű virtualizálási eljárásokat (natív virtualizáció).

(folytatjuk)

Kapcsolódó cikkek

ISSN 2334-6248 - Elektronikus folyóiratunk havonta jelenik meg. ©2020 Fókusz. Minden jog fenntartva!
Design by predd | Code by tibor