1 / 45

Szerver oldali virtualizáció

Intelligens rendszerfelügyelet. Szerver oldali virtualizáció. Tóth Dániel, Micskei Zoltán. 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?. Motivációs példa.

ninon
Download Presentation

Szerver oldali 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. Intelligens rendszerfelügyelet Szerver oldali virtualizáció Tóth Dániel, Micskei Zoltán

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

  7. Tartalom • Ismétlés (lásd Operációs rendszerek) • Virtualizáció fajtái • Platform virtualizációs megoldások • Kliens oldali virtualizációs igények • Szerver oldali virtualizáció

  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) • Paravirtualizáció • Hardveres virtualizáció (Trap and Emulate, teljesen hardveres támogatással)

  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. Tartalom • Ismétlés (lásd Operációs rendszerek tantárgy) • Virtualizáció fajtái • Platform virtualizációs megoldások • Kliens oldali virtualizációs igények • Szerver oldali virtualizáció • Platform virtualizációs megoldások • Erőforrás-gazdálkodás • Operációs rendszer szintű 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. Bare metal megoldások architektúrái ESXi • I/O eszközök kezelése a szülő partícióban • Meghajtókat a HW gyártók szállítják Xen / Hyper-V • I/O eszközöket is a hypervisor kezeli • Meghajtókat a VMware szállítja • Extra kis méret: ESXi (32 MB)

  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. ESXisystem image • Aktív és alternatív verzió • In-memory fájlrendszer • Pl. log fájl elveszik rebootkor • OEM kiegészítések (embeddedESXi)

  30. Tartalom • Ismétlés (lásd Operációs rendszerek) • Virtualizáció fajtái • Platform virtualizációs megoldások • Kliens oldali virtualizációs igények • Szerver oldali virtualizáció • Platform virtualizációs megoldások • Erőforrás-gazdálkodás • Operációs rendszer szintű virtualizáció

  31. Erőforrás gazdálkodás • A virtuális gépek közös erőforráson osztoznak • Jellemző példák: • CPU: gyakran (összesen több vCPU, mint fizikai) • Memória: ritkábban (memoryovercommit) • Háttértár I/O műveletek: itt jellegzetesen osztozás van! • Hálózati áteresztőképesség: itt is osztozás van

  32. Erőforrás gazdálkodás • Versengés az erőforrásokért: • Kis terheléseknél ritka, hogy egyszerre több guest ugyanazt az erőforrást terhelné… • De szerverkörnyezetben gyakran előfordul, hogy valamelyik erőforrás szűk keresztmetszet lesz • A megfelelő ütemező elosztja a hozzáférést, de nem mindig megfelelően • Cél: • A megosztott erőforrásokból való részesedést virtuális gépekre lebontva szabályozni tudjuk • Kemény korlátozások, „lágy” korlátok, prioritások • „Proportional-ShareBasedScheduler”

  33. Erőforrás gazdálkodás • VMware ESX/ESXi esetén 3 beállítási lehetőség: • Resource Limit – kemény felső korlát az erőforrás igénybevételére • Akkor is érvényes, ha egyébként van szabad erőforrás • ResourceReservation – garantált rendelkezésre álló erőforrás mennyiség • Nem feltétlenül használja ki, csak verseny esetén érvényesül, egyébként a keretet más használhatja • ResourceShares– prioritás • Verseny esetén az alapértelmezett „igazságos” elosztás módosítható ezzel

  34. Erőforrás gazdálkodás • Hierarchikus erőforráskezelés • Nemcsak virtuális gépek szintjén lehet korlátozni • Pool-okba szervezhetők a VM-ek • Használati eset példák: • Egy felhasználó összes gépére egy közös korlátozás • Egy feladatot ellátó gépek csoportjára korlát • Kritikus/nem kritikus alkalmazások csoportosítása Host - korlát: fizikai CPU, Memória • ResourcePool • Korlát • Garantált részesedés További ResourcePool • Guest • Korlát • Garantált részesedés

  35. Erőforrás gazdálkodás • Hierarchikus erőforráskezelés • Nemcsak virtuális gépek szintjén lehet korlátozni • Pool-okba szervezhetők a VM-ek • Használati eset példák: • Egy felhasználó összes gépére egy közös korlátozás • Egy feladatot ellátó gépek csoportjára korlát • Kritikus/nem kritikus alkalmazások csoportosítása Host - korlát: fizikai CPU, Memória • ResourcePool • Korlát • Garantált részesedés • Korlátokat szab: • Host • ResourcePool • Guest Egymásba ágyazott korlátoknál szűkítés, konfliktusnál prioritás szerinti feloldás További ResourcePool • Guest • Korlát • Garantált részesedés

  36. VMwareESXi • 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 • Távoli menedzsment PowerShell segítségével • Get-VM, Get-Stat… • Inftech laboron mindenki kipróbálhatja 

  37. Tartalom • Ismétlés (lásd Operációs rendszerek) • Virtualizáció fajtái • Platform virtualizációs megoldások • Kliens oldali virtualizációs igények • Szerver oldali virtualizáció • Platform virtualizációs megoldások • Erőforrás-gazdálkodás • Operációs rendszer szintű virtualizáció

  38. 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 folyamatra vonatkozik!) • Ez nem teljes körű izoláció, de sok esetben működik • Kernel minden adatszerkezete közös (folyamatlista, 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, …

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

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

  41. 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)

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

  43. 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!)

  44. 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 • Livemigration • Hibatűrés • Terheléselosztás • Sablonkezelés • …és a már megszokottak: monitorozás, hozzáférés-kezelés…

  45. Összefoglalás • Virtualizáció alap funkció lett • Kliens és kiszolgáló oldalon is • Fejlett megoldások • Hypervisor egyre inkább alap komponens • További információ: • Virtualizációs technológiák és alkalmazásaik választható tárgy (VIMIAV89)

More Related