450 likes | 694 Views
Operációs rendszerek (vimia219). Virtualizáció. Micskei Zoltán Elődások : http://www.mit.bme.hu/~micskeiz/opre Blog : http://micskeiz.spaces.live.com. Virtualizáció. Számítástechnika központi fogalma
E N D
Operációs rendszerek (vimia219) Virtualizáció Micskei Zoltán Elődások: http://www.mit.bme.hu/~micskeiz/opre Blog: http://micskeiz.spaces.live.com
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…
Platform virtualizáció története • Platform virtualizáció: teljes számítógép virtualizálása, egy gépen több OS futtatása • ~1960 - IBM CP-40 rendszere • virtualizáció a mainframetermékvonal része • x86 virtualizáció • Sokáig lehetetlen • 1998: VMware megoldotta • 2000- További megoldások • Jelenleg: külön iparág alakul
Virtualizáció összkép Teljes számítógép virtualizálása • Kiforratlan terminológia! Egyre fontosabb: • dinamikus • adatközpont • életciklus kezelés • konvertálás, • telepítés • - … Alkalmazás becsomagolása Tárolórendszer felépítésének elfedése Vékony kliensek + OS szintű virtulizáció: elkülönített futási környezet kialakítása Egygépes termékek
Platform virtualizáció • Továbbiakban platform virtualizációróllesz szó • Elnevezés még: szerver / hardver / számítógép 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ó fajtái Type I (VMM elnevezése: hypervisor) Type II
Miértjó a HW virtualizá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 • …
DEMO Virtuális gépek - Virtual PC • Új virtuális gép létrehozása • Virtuális hardver • Létrejövő fájlok • Meglévő virtuális gép használata • Állapot elmentése • Integráció a gazda géppel
Elméleti alapok - Követelmények 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 Gerald J. Popek, Robert P. Goldberg: Formal Requirements for Virtualizable Third Generation Architectures. Commun. ACM 17(7): 412-421 (1974)
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
Alapvető módszerek – Tiszta emuláció 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 Trap: hardveres kivételkezelő rutin ami után a végrehajtás folytatódhat 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 Emulátor • A privilegizált vagy érzékeny műveletek trap-et • váltanak ki, és a VMM veszi át a végrehajtást Virtuális HW állapota • HW támogatás: • védelmi szintek (az x86-on ring a neve, 4 db.) • virtuális gép alacsony védelmi szinten fut • privilegizált utasítások nem megfelelő • szinten kiadva trap-et okoznak HW
x86 virtualizáció korlátai • Egyes architektúrák könnyen virtualizálhatóak, az x86 nem ilyen • ~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 • 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: hypervisort hívja közvetlen
Hardveres támogatás - CPU • ~2005: Intel Virtualization Technology (VT-x) és AMD AMD-V • HW-es támogatás: rootmode, VMCS • Utasítások, pl.: VMCALL, VMLAUNCH
Példa: HW-esvirtualizáció használata • Xen: xen-3.2.0\xen\arch\x86\hvm\vmx\x86_32 #define VMLAUNCH .byte 0x0f,0x01,0xc2 vmx_launch: movb $1,VCPU_vmx_launched(%ebx) HVM_RESTORE_ALL_NOSEGREGS VMLAUNCH pushf
Melyik a legjobb/leggyorsabb módszer? • Bizonytalan, folyamatosan változik a válasz • környezettől, terheléstől is függ • HW virtualizáció még kiforratlanabb, mint a BT • Összemosódnak a határok • Megoldások több módszert használnak vegyesen 2006. VMware: BT is betterthan HW assistedvirtualization 2008. VMware: Paravirtalization + BT is betterthanpure BT 2008. 04. KVM: MMU paravirtualization is dead
Következő generációs HW támogatás • Memória • AMD NestedPageTables ,Intel ExtendedPageTables • I/O • Intel VT-d, AMD IOMMU • Közvetlen I/O elérés a virtuális gépeknek
Eszközmeghajtók paravirtualizációja • Speciális drivercsomag telepítése a vendégben • VMwareTools, Virtual PC Additions • Mindig telepítsük a vendég gépen! Virtuális gép • A teljes, valós kommunikáció • emulálása 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ő
Játékosok http://www.virtualization.info/radar/
Játékosok - 2 • Workstation, ESX, Virtual Center • nyílt forrású hypervisor • Presentation Server, XenSource-t megvette • Virtual PC, Hyper-V, VM Manager • SolarisContainers, xVM Server (Xen alapú), Ops Center • Kernel basedVirtualMachine • mainframe, powerVM
DEMO VMwareVirtual Center • Erőforráskészlet – korlátozások, garanciák • Teljesítmény mérés • VMotion – virtuális gépet futás közben átrakjuk másik gépre
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?
BlogWars • Tények a virtualizáció világában?? VMwareblog, CheapHypervisors: A Fine Idea - ifyoucanaffordit MS blog, ExpensiveHypervisors: A Bad Idea ~ nem reálisak a fenti számok Citrixblog, MemoryLapse ~ nem reálisak a fenti számok VMwareblog, MemoryOvercommitmentinthe Real World ~ de, reálisak azok a számok
Ö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 ?
További olvasnivaló • VMware: A Comparison of Software and Hardware Techniques for x86 Virtualization • Solaris Operating System Hardware Virtualization Product Architecture • Xen and the Art of Virtualization • A brief architecture overview of VMware ESX, XEN and MS Viridian