© Neeraj Suri EU-NSF ICT March 2006 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék V IRTUALIZÁCIÓ Micskei Zoltán Elődások: Blog: Operációs rendszerek (vimia219)
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…
Operációs rendszerek (vimia219) 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 ~ IBM CP-40 rendszere virtualizáció a mainframe termékvonal része x86 virtualizáció Sokáig lehetetlen 1998: VMware megoldotta További megoldások Jelenleg: külön iparág alakul
Operációs rendszerek (vimia219) Virtualizáció összkép Kiforratlan terminológia! Teljes számítógép virtualizálása Alkalmazás becsomagolása Vékony kliensek Egygépes termékek Tárolórendszer felépítésének elfedése + OS szintű virtulizáció: elkülönített futási környezet kialakítása Egyre fontosabb: - dinamikus adatközpont - életciklus kezelés - konvertálás, telepítés - …
Operációs rendszerek (vimia219) Platform virtualizáció Továbbiakban platform virtualizációról lesz szó Elnevezés még: szerver / hardver / számítógép virtualizáció Elemek: Gazda gép (host machine) = fizikai gép Vendég gép (guest machine) = virtuális gép Virtual Machine Monitor (VMM): a virtuális gépeket kezelő program
Operációs rendszerek (vimia219) Platform virtualizáció fajtái Type II Type I (VMM elnevezése: hypervisor)
Operációs rendszerek (vimia219) Miért jó a HW virtualizáció? Tesztrendszer kiépítése HW konszolidáció Régi rendszerek (legacy systems) On-demand architektúra Rendelkezésre állás, katasztrófa védelem Hordozható alkalmazások …
Operációs rendszerek (vimia219) DEMO Ú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 Virtuális gépek - Virtual PC
Operációs rendszerek (vimia219) E LMÉLETI A LAPOK
Operációs rendszerek (vimia219) 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): (1974)
Operációs rendszerek (vimia219) 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
Operációs rendszerek (vimia219) Alapvető módszerek – Tiszta emuláció HW Emulátor Virtuális gép Virtuális HW Alkalmazás Virtuális HW állapota Előny: • Más CPU is emulálható Hátrány: • Lassú Teljes virtuális HW állapot eltárolása az emulátorban (regiszterek, flag-ek) Minden utasítást megvizsgál a VMM Alkalmazza a hatását az emulátorban, átalakítja a hívást, végrehajtja
Operációs rendszerek (vimia219) Alapvető módszerek – Trap and emulate Trap: hardveres kivételkezelő rutin ami után a végrehajtás folytatódhat HW Emulátor Virtuális gép Virtuális HW Alkalmazás Virtuális HW állapota A nem privilegizált utasítások közvetlenül a valós CPU-n hajtódnak végre A privilegizált vagy érzékeny műveletek trap-et váltanak ki, és a VMM veszi át a végrehajtást 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
Operációs rendszerek (vimia219) 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
Operációs rendszerek (vimia219) Megoldások az x86 CPU virtualizációra Binary translation Paravirtualizáció Hardveres virtualizáció
Operációs rendszerek (vimia219) Binary translation 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
Operációs rendszerek (vimia219) 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
Operációs rendszerek (vimia219) Hardveres támogatás - CPU ~2005: Intel Virtualization Technology (VT-x) és AMD AMD-V HW-es támogatás: root mode, VMCS Utasítások, pl.: VMCALL, VMLAUNCH
Operációs rendszerek (vimia219) Példa: HW-es virtualizá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
Operációs rendszerek (vimia219) 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 KVM: MMU paravirtualization is deadMMU paravirtualization is dead VMware: Paravirtalization + BT is better than pure BTVMware: Paravirtalization + BT is better than pure BT VMware: BT is better than HW assisted virtualizationBT is better than HW assisted virtualization
Operációs rendszerek (vimia219) Következő generációs HW támogatás Memória AMD Nested Page Tables,Intel Extended Page Tables I/O Intel VT-d, AMD IOMMU Közvetlen I/O elérés a virtuális gépeknek
Operációs rendszerek (vimia219) Eszközmeghajtók paravirtualizációja Speciális drivercsomag telepítése a vendégben VMware Tools, Virtual PC Additions Mindig telepítsük a vendég gépen! VMM Virtuális gép Normál driver Emulált virtuális HW A teljes, valós kommunikáció emulálása Vendég OS HW kezelő VMM Virtuális gép Paravirt. driver Vendég OS HW kezelő Egyszerűsített hívások, adatstruktúrák megosztása
Operációs rendszerek (vimia219) M EGOLDÁSOK, C ÉGEK, T ERMÉKEK
Operációs rendszerek (vimia219) Játékosok
Operációs rendszerek (vimia219) Játékosok - 2 Workstation, ESX, Virtual Center nyílt forrású hypervisor Presentation Server, XenSource-t megvette Virtual PC, Hyper-V, VM Manager Solaris Containers, xVM Server (Xen alapú), Ops Center Kernel based Virtual Machine mainframe, powerVM
Operációs rendszerek (vimia219) VMware ESX
Operációs rendszerek (vimia219) Xen
Operációs rendszerek (vimia219) Microsoft Hyper-V
Operációs rendszerek (vimia219) DEMO 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 VMware Virtual Center
Operációs rendszerek (vimia219) Virtual Appliance Appliance: célhardver (pl. tűzfal) Virtual Appliance: 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 Just enough Operating System Operációs rendszerek szerepe?
Operációs rendszerek (vimia219) Blog Wars Tények a virtualizáció világában?? VMware blog, Cheap Hypervisors: A Fine Idea - if you can afford itCheap Hypervisors: A Fine Idea - if you can afford it MS blog, Expensive Hypervisors: A Bad IdeaExpensive Hypervisors: A Bad Idea ~ nem reálisak a fenti számok Citrix blog, Memory LapseMemory Lapse ~ nem reálisak a fenti számok VMware blog, Memory Overcommitment in the Real WorldMemory Overcommitment in the Real World ~ de, reálisak azok a számok
Operációs rendszerek (vimia219) Ö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 ?
Operációs rendszerek (vimia219) További olvasnivaló VMware: A Comparison of Software and Hardware Techniques for x86 Virtualization VMware: A Comparison of Software and Hardware Techniques for x86 Virtualization Solaris Operating System Hardware Virtualization Product Architecture Solaris Operating System Hardware Virtualization Product Architecture Xen and the Art of Virtualization Xen and the Art of Virtualization A brief architecture overview of VMware ESX, XEN and MS Viridian A brief architecture overview of VMware ESX, XEN and MS Viridian