1 / 38

Virtualizáció - Bevezető

Intelligens rendszerfelügyelet. Virtualizáció - Bevezető. Tóth Dániel (és kissé csemegézve Micskei Zoltán előadásából). Motivációs példa. Emlékszünk még?. Vegyünk több vasat!. Új üzleti szolgáltatást akarok beindítani. Biztos, hogy ez segít? Biztos, hogy ez a költséghatékony megoldás?.

nansen
Download Presentation

Virtualizáció - Bevezető

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. Intelligens rendszerfelügyelet Virtualizáció - Bevezető Tóth Dániel (és kissé csemegézve Micskei Zoltán előadásából)

  2. Motivációs példa • Emlékszünk még? Vegyünk több vasat! Új üzleti szolgáltatást akarok beindítani Biztos, hogy ez segít? Biztos, hogy ez a költséghatékony megoldás?

  3. Motivációs példa • Emlékszünk még? Nem lehetne akkor valahogy egy gépre felrakni több szolgáltatást? Hát… Idáig a monitorozással foglalkoztunk és feltűnt valami… Sok gépen nagyon kicsi a CPU kihasználtság Egyiknek Linux kell a másiknak Windows… ráadásul különböző verziók…

  4. Motivációs példa • Emlékszünk még? Biztonsági okokból nem szabad egy gépre rakni őket! Nem lehetne akkor valahogy egy gépre felrakni több szolgáltatást? (Ő a biztonsági felelős a cégnél) Egyiknek Linux kell a másiknak Windows… ráadásul különböző verziók…

  5. Motivációs példa • „Now for something completely different…” Több platformon kell fejlesztenem, tesztelnem… az időm nagy része az ide-oda váltogatással megy el. Ráadásul folyton széthomokozom az oprendszeremet (Az első előadásban ő volt a szoftverfejlesztő avatarja) Egyiknek Linux kell a másiknak Windows… ráadásul különböző verziók… Ooop, ez már volt…  Szóval nekem is mindenféle sokgépes bonyolult tesztkörnyezetet kell csinálnom a ti cuccaitokhoz

  6. Motivációs példa • Kórusban…  $$$ $$$ IÓ CIÓ ÁCIÓ KÁCIÓ VIRTUALIZÁCIÓ De jó lenne, ha minderre valami technológia megoldást adna! De jó lenne, ha minderre valami technológia megoldást adna! De jó lenne, ha minderre valami technológia megoldást adna! De jó lenne, ha minderre valami technológia megoldást adna! $$$ $$$

  7. Virtualizáció • Mi az a virtualizáció? • „Az erőforrások elvonatkoztatása az erőforrást nyújtó elemektől” - kellemesen sejtelmes általános definíció  • Jellemzően: • fizikai erőforrásokból logikai erőforrások képzése, amik függetlenek a tényleges fizikai elemektől • korlátos erőforrások szétosztása több részre • Ez egy új ötlet? • Korántsem – az oprendszerek is ezt csinálják…

  8. Mi micsoda a virtualizáció világában? Backend Livemigráció Hypervisor Emuláció Paravirtualizáció Jail Seamlesswindowmanagement Erőforrás- menedzsment Tárhely virtualizáció Figyelem! Gyakran nincs egyértelmű terminológia, a gyártók is néha következetlen elnevezéseket használnak! BinaryTranslation Desktopvirtualizáció Container Konszolidáció Exokernel Mikrokernel Hardveres virtualizáció Alkalmazás virtualizáció

  9. Rétegek közötti interfészek Interfész a hardverhez: CPU, Memória:ISA(InstructionSetArchitecture) Szolgáltatások HDD ==== Alkalmazások Perifériák:I/O vagy memória-tartományban regiszterek, megszakítás, DMA Operációs rendszer Hardver

  10. Rétegek közötti interfészek Interfész az alkalmazások és a rendszermag között Rendszerhívások (System calls) Szolgáltatások Interfész Adatszerkezetek Alkalmazások Operációs rendszer IPC mechanizmusok Hardver

  11. Rétegek közötti interfészek Interfész az alkalmazások szintjén, illetve az OS magasszintű szolgáltatásai között Könyvtár hívások (call) Szolgáltatások Futtatókörnyezetek Alkalmazások Operációs rendszer Konfig fájlok, Registry, stb… Hardver

  12. Rétegek közötti interfészek Interfész a nyújtott szolgáltatások felé Hálózati protokollok Szolgáltatások Felhasználói felület Alkalmazások Operációs rendszer stb… Hardver

  13. A virtualizáció különböző fajtái „Desktop virtualizáció” „Alkalmazás futtatókörnyezetek” (Runtimeenvironments) Alkalmazás virtualizáció(packagedapplications…) Szolgáltatások Alkalmazások „Operációs rendszer szintű virtualizáció” - Containerek, Jailek Operációs rendszer „Platform Virtualizáció” Hardver

  14. Platform virtualizáció • Amikor a „virtualizáció” buzzword elhangzik leggyakrabban erről van szó • „Szerver virtualizáció”, „Hardver virtualizáció”, „Számítógép virtualizáció” szinonim fogalmak • De nem összekeverendő a „hardveres” virtualizációval! • Cél: megosztani a hardver erőforrásokat: • Nem végzünk finomítást, az eredeti(hez hasonló) interfészen maradnak elérhetőek (exokernelnek hívják azt, ami ilyet csinál) • Izolált környezeteket („sandbox”) biztosítunk • Célok gyakorlatiasabban megfogalmazva: • Több operációs rendszer példányt futtatni egyazon gépen

  15. Platform virtualizáció • Miért lesz ez jó nekünk? • 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 • …

  16. Platform virtualizáció • Kétféle megközelítés: GUEST App. App. Menedzsment App. App. App. App. OS OS Menedzsment OS OS OS Oprendszer Virt. szoftver Virt. szoftver Hardver Hardver Neve: VMM – VirtualMachine Monitor Hypervisor Fő komponense: VMM – VirtualMachine Monitor vagy Hypervisor Hosted (Type2) virtualizáció HOST Bare-metal (Type1) virtualizá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

  17. Platform virtualizáció • Operációs rendszerekből érdemes átismételni • Hogy is működik? • Elfogás és emuláció elve • Tiszta emuláció • Miben különbözik a virtualizációtól, hol kerül elő a virtualizáción belül • Virtualizáció (Popek & Goldberg értelmezése szerint) • Szoftveres virtualizáció (Trap and Emulate + bináris fordítás) • Hardveres virtualizáció (Trap and Emulate, teljesen hardveres támogatással) • Paravirtualizáció • Részletek: • Virtualizációs Technológiák és Alkalmazásaik (VIMIAV89), első 3 előadás • https://sauron.inf.mit.bme.hu/Edu/VirtualizacioValaszthato/virttech2009.nsf

  18. Platform virtualizáció desktopon • HF kapcsán már találkoztunk vele • Tipikus követelmények • Egyszerűen telepíthető legyen meglévő operációs rendszerre • Egyszerűen kezelhetőek legyenek a virtuális gépek (fájl szinten) • Egyszerre jellemzően kevés virtuális gép fut • Jó legyen az erőforrás-kiosztás (dinamikusan foglaljon CPU-t, memóriát, merevlemezt) • Multimédia: jó grafikus teljesítmény, legyen hang stb. • Könnyen lehessen adatot/perifériát megosztani a host és guest gép között

  19. Speciális grafikus periféria igények • Egérrel ki tudjunk lépni a virtuális gép ablakának szélén • Az egér egyenletes sebességgel mozogjon a hoszt és a vendég gép képernyőjén is • Paravirtualizált egérmeghajtó (vagy tablet emuláció) kell hozzá, ami a hoszt abszolút x-y koordinátáit adja át, nem a relatív mozgást • A grafikus kép legyen gyors, és kövesse az ablak méretét • A grafikus megjelenítést célszerű hoszt-guest között osztott memóriaterülettel megoldani • Kívülről érkező esemény az ablak átméreteződése • Ez is paravirtualizált meghajtót kíván

  20. Speciális grafikus periféria igények… • A grafikus kép legyen gyors, és kövesse az ablak méretét… • A VMware SVGA II de facto szabvány paravirtualizált grafikus meghajtó lett (VirtualBox, QEMU is ezt támogatja) • Desktopon ritkán kell: távoli elérés támogatása (tipikusan VNC felett) • Az ablakok „jöjjenek ki” a keretből  (Seamlesswindowing) • Nem triviális megoldani a VMwareUnity pl. VNC-vel csinálja, lassú • Bele kell nyúlni kívülről a vendég OS alkalmazási szintű adatszerkezeteibe is, külön ágenst kíván. • 3D gyorsítás…

  21. Speciális háttértár periféria igények • Háttértárak • Ne kelljen lefoglalni az összes háttértárat előre, csak annyit amennyit éppen ki is használunk • Hogy lehet megoldani? • A diszk tartalom képfájlokban valahogy követni kell, hogy melyik blokk használt, melyik nem… • Első ötlet: allocateonwrite • a fájlrendszerek elhagyogatnak szemetet maguk után… • Kicsit szofisztikáltabb: ha csupa 0x00 vagy 0xff byte-tal van feltöltve egy blokk, akkor ne tároljuk el a tartalmát • Közelebb visz minket? • Ha van secureerase (ami nem random adattal tölti fel a helyet), akkor igen • Új lehetőség az SSD-knél bevezetett TRIM művelet • Egyébként kell egy… waitforit… ágens a vendég gépbe, ami a fájlrendszer alacsonyszintű adatszerkezeteiből lekérdezi az üres helyeket és jelenti a virtualizációs szoftvernek • A VMwareToolsShrink opciója így működik

  22. Speciális háttértár periféria igények • Pillanatkép funkcionalitás (snapshot) • Egy konzisztens állapot lementése (diszk, memória) • Ne kelljen teljes másolatot csinálni… hogy lehet? • A diszk képfájlban csak a legutóbbi snapshot óta változott blokkok tárolása (copy-on-write) • Fa hierarchia építhető belőlünk • Másolatkészítés - „A klónok támadása” • Néha jól jön, ha kis költséggel klónozhatók a gépek • A másolatkészítés után „külön életet kezdenek élni” • Segítségül hívjuk a snapshot funkcionalitást • Csak VMware Workstation támogatja, még az ESX Server sem!

  23. VMware Workstation • talán kevésbé ismert funkciói • Unity • Beépített VNC szerver • Videó rögzítés • CPU virtualizációs üzemmód átállítása • Virtuális perifériák rejtettebb opciói • Szoftverfejlesztést támogató funkciók • Virtuális gép lefutásának rögzítése/visszajátszása • Most nem mutatjuk be: virtuális gépen belül futó alkalmazás debugolása kívülről

  24. Szerver Virtualizáció

  25. Szerver virtualizáció • Jellegzetességek • Távoli elérés központi szerepe • Cél.: Hálózaton nyújtott szolgáltatások ellátása (ez akár távoli asztal is lehet! -> Desktop virtualizáció) • Erőforrás gazdálkodás • Központi menedzsment fontossága (következő előadás…) • Kétféle megoldás(t tárgyalunk most) • Platform virtualizáción alapuló • Operációs rendszer szintű virtualizáción alapuló

  26. Szerver virtualizáció • Platform virtualizáción alapuló megoldások: • VMware ESX Server, ESXi • XenEnterprise • Microsoft Hyper-V • IBM LPAR, DLPAR • Operációs rendszer szintű virtualizáción alapul: • Linux OpenVZ • Linux VServer • ParallelsVirtuozzoContainers (Linux, Windows) • SolarisContainers, Zones • FreeBSDjail • AIX WPAR

  27. VMware ESX Server architektúrája Alkalmazások Alkalmazások Service Console (Tomcat, SSH...) Alkalmazások Guest OS Guest OS COS (Linux 2.4) Guest OS Driver Worlds HelperWorlds VMkernel Hardver (x86 CPU, SCSI, Ethernet)

  28. VMwareESXi Server architektúrája Alkalmazások Alkalmazások Alkalmazások Guest OS Service Consoleworlds Guest OS Service Consoleworlds Guest OS Service Consoleworlds Driver Worlds HelperWorlds VMkernel Hardver (x86 CPU, SCSI, Ethernet, SATA)

  29. VMware ESX Server képességei • Erőforrás-gazdálkodás • Erősen arra optimalizált, hogy sok guest fusson egyszerre (max. 8 x CPU magok száma) • CPU, memória, diszk használat, hálózat használat külön-külön limitálható • Csoportos korlátozások is beállíthatóak (resourcepool) • A virtuális gépek és resourcepoolok fa szerkezetbe szervezhetőek • Erőforrások kihasználtságát monitorozza, grafikonon ábrázolható

  30. VMware ESX Server • Teljesen távoli elérésen alapul • „Nagyjából” kompatibilis a Workstation/Player/Server virtuális gépeivel (VMwareConverter… most nem demózzuk) • Fejlett erőforrás-gazdálkodás • Konzolos belenézés esxtop-pal • Inftech laboron mindenki kipróbálhatja 

  31. Szerver virtualizáció • Platform virtualizáción alapuló megoldások: • VMware ESX Server, ESXi • XenEnterprise • Microsoft Hyper-V • IBM LPAR, DLPAR • Operációs rendszer szintű virtualizáción alapul: • Linux OpenVZ • Linux VServer • ParallelsVirtuozzoContainers (Linux, Windows) • SolarisContainers, Zones • FreeBSDjail • AIX WPAR

  32. Operációs rendszer szintű virtualizáció • Kezdetben volt a chroot… • A fájlrendszer gyökerét átirányíthatjuk egy alkönyvtárra (egy processzre vonatkozik!) • Ez nem teljes körű izoláció, de sok esetben működik • Kernel minden adatszerkezete közös (processz lista, hálózati interfész, IP, routing, sysctl beállítások…) • A chrootból ráadásul ki is lehet navigálni a VFS adatszerkezeten keresztül… • Hogy is néz ki: egy teljes alap OS installációt készítünk egy alkönyvtárba, ami kicsit eltérő is lehet az eredetitől • Problémás könyvtárak: /proc, /sys, /dev, /tmp, /var, … • Lehet mountbinddal trükközni, de nem lesz tökéletes…

  33. Operációs rendszer szintű virtualizáció • Megoldás: • Ne látszódjanak ki a kernel singleton erőforrásai… • Ehhez módosítani kell a kernelt • Bevezetni a konténer fogalmát • Minden rendszerhívást ellátni a konténer kontextus szerinti válogatással • Singleton erőforrásokat dinamikusan példányosíthatóvá alakítani • A konténerből kifele mutató referenciák mostantól biztonsági réseknek számítanak! • A módosítások ára: 1-2% teljesítményveszteség

  34. Operációs rendszer szintű virtualizáció • Erőforrás-gazdálkodás • CPU – a kernel beépített ütemezője, prioritáskezelője, kiegészítve szigorú cpuidő-korlátozással • Memória – a kernel beépített memóriakezelője, kiegészítve szigorú méretkorlátozással • Háttértár – a fájlrendszer egy alkönyvtára, quota rendszerrel korlátozható foglalás • Hálózat – a kernel beépített ethernet hídja vagy routing táblája, pl. IPtablesQoS paraméterekkel korlátozható áteresztőképesség • Egyéb perifériák – a kernelben lévő meghajtón keresztül Tanulság: +Az OS szintű virtualizáció nagyon kis költségű, +erőforrás virtualizációs és +erőforrás gazdálkodási szempontból problémamentes.- Biztonsági szempontból kevésbé jó izoláció- Közös kernellel kell élni (azonos verzió, fordítási paraméterek)

  35. OpenVZ architektúrája VirtualPrivate Server VirtualPrivate Server alkalmazások alkalmazások OpenVZ izolációs réteg (vzctl) alkalmazások Linux kernel (+OpenVZ patch) Hardver

  36. OpenVZ • Képességek • A VPS belsejében „komplett” telepített OS található • Egy VPS indításakor a kernel teljesen inicializálatlan állapotban mutatja magát -> saját init scripteket futtat minden VPS • A VPS-be telepített OS környezet sablonokból (templates) telepíthető le még a VPS indítása előtt • A VPS-ben lévő fájlok akár meg is oszthatóak több VPS között (hard link!)

  37. OpenVZ • CentOSLive CD-ről futtatható változat • Debiantemplate létrehozása, indítás, belépés • Folyamatok listázása, fájlrendszer stb…

  38. A következő rész tartalmából • Szerver virtualizációs megoldások központi menedzsmentje – avagy hogyan építsünk egy teljes infrastruktúrát virtuális gépekre • Finom funkciók • Live migráció • Hibatűrés • Terheléselosztás • Sablonkezelés • …és a már megszokottak: monitorozás, hozzáféréskezelés…

More Related