420 likes | 556 Vues
Operációs rendszerek alapjai (vimia024). Virtualizáció. Micskei Zoltán Előadások: http://www.mit.bme.hu/~micskeiz d r . Kovácsházy Tamás kiegészítéseivel az Operációs Rendszerek (vimia219) tárgy fóliái alapján. Virtualizáció. Számítástechnika központi fogalma
E N D
Operációs rendszerek alapjai (vimia024) Virtualizáció MicskeiZoltán Előadások: http://www.mit.bme.hu/~micskeiz dr. Kovácsházy Tamás kiegészítéseivel az Operációs Rendszerek (vimia219) tárgy fóliái alapján
Virtualizáció • Számítástechnika központi fogalma • Virtualizáció: erőforrás tényleges fizikai tulajdonságainak elrejtése a felhasználója elől, pl. • egy erőforrást több logikaiként felajánlani, • több fizikai erőforrást összefogni egybe… • Virtuális memória, virtuális fájlrendszerek…
A virtualizációbuzzword alkalmazásai Alkalmazás becsomagolása Teljes számítógép virtualizálása Egyre fontosabb: dinamikus Adatközpont, életciklus kezelés, konvertálás, telepítés … Vékony kliensek Tárolórendszer felépítésének elfedése + OS szintű virtualizáció: elkülönített futási környezet kialakítása Egygépes termékek Kiforratlan terminológia!
Virtuális gép taxonómia* A VM egy ABI-t lát A VM csak egy hardvert lát Java, .NET… Multiprog-ramozott OS Forrás: J. Smith and Ravi Nair, “The architecture of virtual machines,” IEEEComputer, vol. 38, 2005, pp. 32-38. * taxonómia: tágabb ~ osztályozás tudománya. Szűkebb ~ fogalmak közötti kapcsolatot megadó struktúra
Virtuális gép taxonómia (részletesebb) Kiegészítő anyag
Platform virtualizáció • Platform virtualizáció: teljes számítógép virtualizálása, egy gépen több OS futtatása • Elnevezés még: szerver, számítógép, hardver virtualizáció.. • Elemek: • Gazda gép (hostmachine) = fizikai gép • Vendég gép (guestmachine) = virtuális gép • VirtualMachine Monitor (VMM): a virtuális gépeket kezelő program
Platform virtualizáció története • ~1960 - IBM CP-40 rendszere • virtualizáció a mainframetermékvonal része • x86 virtualizáció • Sokáig lehetetlennek tűnt • 1997: Stanford, Disco projekt • 1998: VMware megoldás • 2000- További megoldások • Jelenleg: külön iparág alakul
Miértjó a platformvirtualizáció? Tesztrendszer kiépítése HW konszolidáció Régi rendszerek (legacysystems) On-demand architektúra Rendelkezésre állás, katasztrófa védelem Hordozható alkalmazások …
Platform virtualizáció GUEST App. App. Menedzsment App. App. App. App. OS OS Menedzsment OS OS OS Oprendszer Virt. szoftver Virt. szoftver Hardver Hardver Fő komponens: VMM – VirtualMachine Monitor Neve: VMM – VirtualMachine Monitor Hypervisor HOST Bare-metalvirtualizáció Hostedvirtualizáció Jellemzően desktop megoldások: VMware Workstation, Server, Player, Sun VirtualBox,MS VirtualPC, KVM, UML (Jellemzően) szerver megoldások: VMware ESX Server, XenEnterprise, MS Hyper-V Kétféle megközelítés:
Virtualizáció érdekességek • Seamlesswindow mód • A guest alkalmazások direkt módon a hoszt egy ablakában jelennek meg, „nem lehet a guestOS-t látni”. • Állapot elmentése • A futó gép állapota elmenthető, lényegében a virtuális gép a hibernáláshoz hasonló módon inaktív állapotba helyezhető, és az elmentett állapot másolható. • A futó gép akár másik host gépre migrálható így. • P2V/V2P konverzió • Fizikai gép virtuális gépbe mozgatása (a régi gép az újon belül pl.). • Virtuális gép fizikai gépbe mozgatása (tesztrendszerből végleges HW-én futó gép, ha ez pl. teljesítmény okokból szükséges)
Elméleti alapok - Követelmények Gerald J. Popek, Robert P. Goldberg: Formal Requirements for Virtualizable Third Generation Architectures. Commun. ACM 17(7): 412-421 (1974) Követelmények egy virtualizációs megoldástól: Azonosság: a virtuális gépen futtatott programok ugyanazt az eredményt adják Biztonságosság: a VMM kezeli az összes hardver erőforrást Hatékonyság: a vendég gép utasításainak nagy része beavatkozás nélkül fut
Alapvető probléma • Vendég gépektől védeni kell a rendszert • Pl.: HLT (Halt) utasítás kiadása • Elvárt: csak a vendég álljon le • Ha végrehajtanánk: mindenki leáll • Megoldás: VMM felügyelje a vendég utasításait • Privilegizált utasítások kezelése
Kiegészítő anyag Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció
Alapvető módszerek – Tiszta emuláció Kiegészítő anyag Teljes virtuális HW állapot eltárolása az emulátorban (regiszterek, flag-ek) Virtuális gép Alkalmazás • Minden utasítást megvizsgál a VMM Virtuális HW Emulátor Virtuális HW állapota • Alkalmazza a hatását az emulátorban, • átalakítja a hívást, végrehajtja • Előny: • Más CPU is emulálható • Hátrány: • Lassú HW
Alapvető módszerek – Trap and emulate Kiegészítő anyag Virtuális gép Alkalmazás • A nem privilegizált utasítások közvetlenül • a valós CPU-n hajtódnak végre Virtuális HW • A privilegizált vagy érzékeny műveletek trap-et váltanak ki, és a VMM veszi át a végrehajtást Emulátor Virtuális HW állapota • HW támogatás szükséges: • védelmi szintek (pl. x86-on ring) • virtuális gép alacsony védelmi szinten • privilegizált utasítások nem megfelelő • szinten kiadva trap-et okoznak HW Trap: hardveres kivételkezelő rutin ami után a végrehajtás folytatódhat
x86 virtualizáció korlátai Következmény: nem használható a trap & emulate módszer a klasszikus x86-on • Egyes architektúrák könnyen virtualizálhatóak, az x86 nem ilyen volt • ~250 utasításból 17 megsérti a klasszikus feltételeket, pl. • POPF utasítás: EFLAGS regisztert módosítja • Ha nem ring 0-n adjuk ki, akkor nem ír felül bizonyos biteket, és nem is dob kivételt • Privilegizált állapot kiolvasható • Virtuális gép a CS szegmens regisztert olvasva megtudhatja, hogy virtualizált
Megoldások az x86 CPU virtualizációra Binarytranslation (szoftveres) Paravirtualizáció Hardveres virtualizáció
Binarytranslation utasítások nagy része közvetlenül fut privilegizált utasítások átírása futás közben nem igényel forráskódot átírt változatot eltárolja vendég OS nem tud arról, hogy virtualizált
Paravirtualizáció Vendég OS forrásának módosítása Problémás utasítások lecserélése Hypercall: VMM-et hívja közvetlen
Hardveres virtualizáció • ~2005: Intel Virtualization Technology (VT-x) és AMD AMD-V • HW-es támogatás: rootmode, VMCS • Utasítások, pl.: VMCALL, VMLAUNCH • Működik a trap &emulate módszer
Melyik a legjobb/leggyorsabb módszer? Kiegészítő anyag 2006. VMware: BT is betterthan HW assistedvirtualization 2008. VMware: Paravirtalization + BT is betterthanpure BT 2009. Comparing Hardware Virtualization Performance Utilizing VMmark v1.1 • Folyamatosan változik a válasz • környezettől, terheléstől is függ • HW virtualizáció kezdetben kiforratlanabb, mint a BT • Összemosódnak a határok • Megoldások több módszert használnak vegyesen
Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció
Ismétlés Hogy néz ki a virtuális memória -> fizikai memória leképezés lapszervezés esetén?
Memória virtualizálása - szoftveres Vendég laptáblák VM1 VM2 Vendég: virtuális memória Vendég: „fizikai” memória Gazda: fizikai memória Kétszeres címfordítás helyett: árnyék laptáblák GOND: szinkronizálás VM allokációs laptáblák
Memória virtualizálása - paravirtualizáció Árnyék laptáblák Vendég OS forrásának módosítása Ha a vendég módosítja a laptábláit, akkor értesítse a VMM-et is erről
Memória virtualizálása - hardveres • HW támogatás az újabb CPU-kban • AMD Rapid Virtualization Indexing , Intel ExtendedPageTables • Beágyazott laptábla (Nestedpagetable) • vendég fizikai -> gazda fizikai leképezés eltárolása • cím leképezési rutin ezt is bejárja • TLB bejegyzések azonosítóval ellátása • Nagy teljesítménynövekedés: • 2008. 04., KVM: MMU paravirtualization is dead • 2009., VMware: Performance Evaluation of AMD RVI Hardware Assist, akár 42%-os növekedés is
Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció
I/O eszközök kezelése (szoftveres) Kiegészítő anyag Virtuális gép • A teljes, valós kommunikáció • emulálása Vendég OS Normál driver VMM Emulált virtuális HW HW kezelő I/O eszköz
I/O eszközök kezelése (paravirt.) Kiegészítő anyag Virtuális gép Virtuális gép Vendég OS Vendég OS Normál driver Paravirt. driver • Egyszerűsített hívások, • adatstruktúrák megosztása VMM VMM Emulált virtuális HW HW kezelő HW kezelő I/O eszköz I/O eszköz • Speciális csomag telepítése a vendégben • VMwareTools, Virtual PC Additions • Mindig telepítsük a vendég gépen!
I/O eszközök kezelése (hardveres) • Hardveres támogatás • Intel VT-d, AMD IOMMU • PCI szabvány kiegészítése: I/O Virtualization (IOV) • I/O eszközök • megosztása virtuális gépek között • közvetlen hozzárendelése egy virtuális géphez
Játékosok http://www.virtualization.info/radar/
Központi menedzsment • Erőforráskészlet – korlátozások, garanciák • VM térkép • Teljesítmény mérés • LiveMigration – virtuális gépet futás közben átrakjuk másik gépre
Cloudcomputing ???
Cloudcomputing Kiegészítő anyag Cloud
VirtualAppliance • Appliance: célhardver (pl. tűzfal) • VirtualAppliance: • adott célra összeállított virtuális gép • Előny: • nincs telepítés, függőség • csak a feltétlen szükséges komponensek vannak telepítve • JeOS • JustenoughOperating System • Operációs rendszerek szerepe?
További információ • Tantárgyak: • Informatikai technológiák szakirány, Rendszertervezés ágazat, Intelligens rendszerfelügyelet • Választható ősszel: Virtualizációs technológiák és alkalmazásaik • Cikkek: • VMware: A Comparison of Software and Hardware Techniques for x86 Virtualization • Xen and the Art of Virtualization • A brief architecture overview of VMware ESX, XEN and MS Viridian
Összefoglalás • Virtualizáció: növekvő jelentőségű • Ellentmondásos terminológiák • Versengő technológiák, rengeteg gyártó • Operációs rendszerek • Funkciók megvalósítása a hypervisor-ban • Kisebb jelentőség ?