1 / 42

Virtualizáció

Operációs rendszerek (vimia219). Virtualizáció. dr. Micskei Zoltán http://mit.bme.hu/~micskeiz. 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,

Download Presentation

Virtualizáció

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operációs rendszerek (vimia219) Virtualizáció dr. Micskei Zoltán http://mit.bme.hu/~micskeiz

  2. 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…

  3. A virtualizációbuzzword alkalmazásai Alkalmazás becsomagolása Teljes számítógép virtualizálása Vékony kliensek Életciklus, telepítés, automatizálás…(privatecloud) 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 Forrás: http://www.microsoft.com/virtualization/default.mspx Kiforratlan terminológia!

  4. 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

  5. Virtuális gép taxonómia (részletesebb) Forrás: ScopeAlliance, Virtualization: State of the Art, 2008.

  6. 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

  7. 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 alakult már

  8. 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 …

  9. Platform virtualizáció architektúrái GUEST App. App. Menedzsment App. App. App. App. OS OS Menedzsment OS OS OS Oprendszer Virt. szoftver Virt. szoftver Hardver Hardver HOST Bare-metal Hosted Jellemzően desktop megoldások: VMware Workstation, Player,Sun/Oracle VirtualBox,MS VirtualPC, KVM Jellemzően szerver megoldások: VMwareESXi, Xen, MS Hyper-V Kétféle megközelítés:

  10. További alkalmazás: mobil virtualizáció BringYourOwnDevice (BYOD) Funkciók elkülönítése

  11. Elméleti alapok

  12. 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

  13. 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

  14. Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció

  15. 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

  16. Alapvető módszerek – Trap and emulate 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 műveletek trap-etvá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

  17. x86 virtualizáció korlátai Következmény: nem használható a trap & emulate módszer a klasszikus x86 esetében • 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 megtudhatja, hogy virtualizált

  18. Megoldások az x86 CPU virtualizációra Binarytranslation (szoftveres) Paravirtualizáció Hardveres virtualizáció

  19. 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

  20. Binarytranslation – példa Guest Code Translation Cache vEPC movebx, eax movebx, eax start cli mov [VIF], 0 and ebx, ~0xfff and ebx, ~0xfff movebx, cr3 mov [CO_ARG], ebx sti call HANDLE_CR3 ret mov [VIF], 1 test [INT_PEND], 1 jne call HANDLE_INTS jmp HANDLE_RET Forrás: Carl Waldspurger,IntroductiontoVirtualMachines

  21. Paravirtualizáció Fejlesztők módosítják a vendég OS forrását Problémás utasítások lecserélése Hypercall: VMM-et hívja közvetlen

  22. 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

  23. Melyik a legjobb/leggyorsabb módszer? • Folyamatosan változik a válasz • környezettől, terheléstől is függ • HW virtualizáció kezdetben kiforratlanabb, mint a BT • Megoldások több módszert használnak vegyesen

  24. Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció

  25. Ismétlés Hogy néz ki a virtuális memória -> fizikai memória leképezés lapszervezés esetén?

  26. 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

  27. Memória virtualizálása - paravirtualizáció Árnyék laptáblák használata itt is Vendég OS forrását módosítják Ha a vendég módosítja a laptábláit, akkor értesítse a VMM-et is erről

  28. 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

  29. Elméleti alapok CPU virtualizáció Memória virtulizáció I/O virtualizáció

  30. I/O eszközök kezelése (szoftveres) 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

  31. I/O eszközök kezelése (paravirt.) 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 szükséges a vendégben • VMwareTools, Virtual PC Additions • Mindig telepítsük a vendég gépen!

  32. 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

  33. Megoldások, cégek, termékek

  34. Játékosok http://www.virtualization.info/radar/

  35. Játékosok – 2

  36. Központi menedzsment • Erőforráskészlet – korlátozások, garanciák • VM térkép • Teljesítmény mérése • LiveMigration – virtuális gépet futás közben átrakjuk másik gépre

  37. Cloudcomputing ???

  38. Cloudcomputing Cloud

  39. Számítási felhők rétegei

  40. Kitekintés: Mirage OS

  41. További információ • Szakirány: • Informatikai technológiák szakirány, Rendszertervezés ágazat, (pl. Intelligens rendszerfelügyelet tantárgy) • Választható tárgy (ősz): • Virtualizációs technológiák és alkalmazásaik • Cikk: • OleAgesenet al.: The evolution of an x86 virtual machine monitor, SIGOPS Oper. Syst. Rev. 44, 4 (December 2010)

  42. Ö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?

More Related