1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szerveroldali virtualizáció Tóth Dániel, Micskei Zoltán Intelligens rendszerfelügyelet
2 Motivációs példa Új üzleti szolgáltatást akarok beindítani Vegyünk több vasat! Biztos, hogy ez segít? Biztos, hogy ez a költséghatékony megoldás? Biztos, hogy ez segít? Biztos, hogy ez a költséghatékony megoldás?
3 Motivációs példa Hát… Idáig a monitorozással foglalkoztunk és feltűnt valami… Sok gépen nagyon kicsi a CPU kihasználtság Nem lehetne akkor valahogy egy gépre felrakni több szolgáltatást? Egyiknek Linux kell a másiknak Windows… ráadásul különböző verziók…
4 Emlékszünk még? Motivációs példa Nem lehetne akkor valahogy egy gépre felrakni több szolgáltatást? Egyiknek Linux kell a másiknak Windows… ráadásul különböző verziók… (Ő a biztonsági felelős a cégnél) Biztonsági okokból nem szabad egy gépre rakni őket!
5 Motivációs példa „Now for something completely different…” (Az első előadásban ő volt a szoftverfejlesztő avatarja) 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 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: o fizikai erőforrásokból logikai erőforrások képzése, amik függetlenek a tényleges fizikai elemektől o korlátos erőforrások szétosztása több részre Ez egy új ötlet? o Korántsem – az oprendszerek is ezt csinálják…
7 Tartalom Ismétlés (lásd Operációs rendszerek) o Virtualizáció fajtái o Platform virtualizációs megoldások Szerveroldali virtualizáció
8 Mi micsoda a virtualizáció világában?Paravirtualizáció Emuláció Alkalmazás virtualizáció Binary Translation Hypervisor Konszolidáció Mikrokernel Backend Seamless window management Erőforrás-menedzsment Live migráció Hardveresvirtualizáció Exokernel Tárhely virtualizáció Desktop virtualizáció Jail Container Figyelem! Gyakran nincs egyértelmű terminológia, a gyártók is néha következetlen elnevezéseket használnak!
9 Rétegek közötti interfészek Hardver Operációs rendszer Alkalmazások Szolgáltatások Interfész a hardverhez: CPU, Memória: ISA (Instruction Set Architecture) Perifériák: I/O vagy memória- tartományban regiszterek, megszakítás, DMA
10 Rétegek közötti interfészek Hardver Operációs rendszer Alkalmazások Szolgáltatások Interfész az alkalmazások és a rendszermag között Rendszerhívások (System calls) Rendszerhívások (System calls) Interfész Adatszerkezetek IPC mechanizmusok
11 Rétegek közötti interfészek Hardver Operációs rendszer Szolgáltatások Interfész az alkalmazások szintjén, illetve az OS magas szintű szolgáltatásai között Könyvtár hívások (call) Könyvtár hívások (call) Futtatókörnyezetek Alkalmazások Konfig fájlok, Registry, stb…
12 Rétegek közötti interfészek Hardver Operációs rendszer Szolgáltatások Interfész a nyújtott szolgáltatások felé Hálózati protokollok Felhasználói felület stb… Alkalmazások
13 A virtualizáció különböző fajtái Hardver Operációs rendszer Alkalmazások Szolgáltatások „Platform Virtualizáció” „Operációs rendszer szintű virtualizáció” - Containerek, Jailek „Operációs rendszer szintű virtualizáció” - Containerek, Jailek „Alkalmazás futtatókörnyezetek” (Runtime environments) Alkalmazás virtualizáció (packaged applications…) „Desktop virtualizáció”
14 Platform virtualizáció Amikor a „virtualizáció” buzzword elhangzik leggyakrabban erről van szó o „Szerver virtualizáció”, „Hardver virtualizáció”, „Számítógép virtualizáció” szinonim fogalmak o De nem összekeverendő a „hardveres” virtualizációval! Cél: megosztani a hardver erőforrásokat: o Nem végzünk finomítást, az eredeti(hez hasonló) interfészen maradnak elérhetőek o Izolált környezeteket („sandbox”) biztosítunk Célok gyakorlatiasabban megfogalmazva: o Több operációs rendszer példányt futtatni egyazon gépen
15 Platform virtualizáció Miért lesz ez jó nekünk? o Tesztrendszer kiépítése o HW konszolidáció o Régi rendszerek (legacy systems) o On-demand architektúra o Rendelkezésre állás, katasztrófa védelem o Hordozható alkalmazások o …
16 Platform virtualizáció architektúrái Kétféle megközelítés: Hardver Oprendszer Virt. szoftver App. OS App. Hardver Virt. szoftver Menedzsment OS Menedzsment App. OS App. Hosted virtualizáció Bare-metal virtualizáció Jellemzően desktop megoldások: VMware Workstation Player, Sun/Oracle VirtualBox, MS VirtualPC, KVM Jellemzően szerver megoldások: VMware ESXi, Xen, MS Hyper-V HOST GUEST
17 Platform virtualizáció Operációs rendszerekből érdemes átismételni Tiszta emuláció o Miben különbözik a virtualizációtól, hol kerül elő a virtualizáción belül Hogy is működik? o Elfogás és emuláció elve (trap & emulate) Virtualizáció o Szoftveres virtualizáció (bináris átírás) o Paravirtualizáció o Hardveres virtualizáció (trap & emulate, teljesen hardveres támogatással)
18 Tartalom Ismétlés (lásd Operációs rendszerek tantárgy) o Virtualizáció fajtái o Platform virtualizációs megoldások Szerveroldali virtualizáció o Platform virtualizációs megoldások o Erőforrás-gazdálkodás o Operációs rendszer szintű virtualizáció
19 Szerver virtualizáció Jellegzetességek o Távoli elérés központi szerepe o Cél.: Hálózaton nyújtott szolgáltatások ellátása (ez akár távoli asztal is lehet! -> Desktop virtualizáció) o Erőforrás gazdálkodás o Központi menedzsment fontossága (következő előadás…) Kétféle megoldás (t tárgyalunk most) o Platform virtualizáción alapuló o Operációs rendszer szintű virtualizáción alapuló
20 Szerver virtualizáció Platform virtualizáción alapuló megoldások: o VMware vSphere (ESXi) o Xen (+ Citrix XenServer, Oracle VM…) o Microsoft Hyper-V o IBM LPAR, DLPAR Operációs rendszer szintű virtualizáción alapul: o Linux OpenVZ o Linux VServer o Parallels Virtuozzo Containers (Linux, Windows) o Solaris Containers, Zones o FreeBSD jail o AIX WPAR
21 VMware ESXi VMware bare-metal megoldása o Követelmény: 64 bites CPU o (Van ingyenes verziója is) VMware ESX utódja (új architektúra) vSphere 5 család része o vCenter Server, vMotion, DRS, HA, FT… o lásd a következő előadást
22 VMware ESXi: Minimális konzol
23 VMware ESXi 5 architektúrája VMkernel World o VM world o Ágensek, shell…
24 VMware ESXi 5 menedzsment API Forrás: VMware ESXi 5.0 Operations Guide
25 ESXi system image Aktív és alternatív verzió In-memory fájlrendszer o Pl. log fájl elveszik rebootkor Egyszerű frissítés OEM kiegészítések (embedded ESXi) Forrás: VMware, The Architecture of VMware ESXi
26 Microsoft Hyper-V Microsoft bare-metal virtualizációs megoldása o Jelenleg: 2. verzió (R2) / 3. verzió béta (WS 8) Két változat: o Windows Serverben a Hyper-V szerep o MS Hyper-V Server (különálló, ingyenes, csak Hyper-V) HW igény: o CPU: 64 bites, HW-es virtualizációs támogatás
27 Hyper-V architektúra (1) Hardver Hypervisor Windows Server kernel + Hyper-V modulok Virtualization stack (pl. VM kezelő szolgáltatás) Virtualization stack (pl. VM kezelő szolgáltatás) Ring 0 Ring 3 Root mode Szülő partíció Gyerek partíció 1Gyerek partíció 2 Vendég OS Vendég alkalmazások 27
28 Hyper-V architektúra (2) Forrás: Microsoft. Hyper-V Architecture and Feature Overview
29 Xen University of Cambridge kutatási projekt Jelenleg: o Xen.org: nyílt forráskód, sok disztribúcióban elérhető o Citrix XenServer: plusz funkciók, fizetős (is) o Xen Cloud Platform (XCP): XenServer nyílt változata o Oracle VM, HUAWEI UV… Követelmény: o Paravirtualizációs kiegészítés része a Linux kernelnek o Windows vendéghez HW-es virtualizáció kell
30 XCP architektúra Dom0: menedzsment OS DomU: virtuális gépek Forrás:
31 Bare metal megoldások architektúrái ESXi Xen / Hyper-V I/O eszközök kezelése a Dom0 / szülő partícióban Meghajtókat a HW gyártók szállítják I/O eszközöket is a hypervisor kezeli Meghajtókat a VMware szállítja Extra kis méret: ESXi (32 MB)
32 Tartalom Ismétlés (lásd Operációs rendszerek) o Virtualizáció fajtái o Platform virtualizációs megoldások o Kliens oldali virtualizációs igények Szerveroldali virtualizáció o Platform virtualizációs megoldások o Erőforrás-gazdálkodás o Operációs rendszer szintű virtualizáció
33 Erőforrás gazdálkodás A virtuális gépek közös erőforráson osztoznak Jellemző példák: o CPU: gyakran (összesen több vCPU, mint fizikai) o Memória: ritkábban (memory overcommit) o Háttértár I/O műveletek: itt jellegzetesen osztozás van! o Hálózati áteresztőképesség: itt is osztozás van
34 Versengés az erőforrásokért Erőforrás szűk keresztmetszet lesz o Kis terheléseknél ritka o De szerverkörnyezetben gyakran előfordul Hogyan osszuk el ilyenkor az erőforrásokat?
35 Feladatok erőforrások kezelésénél Tipikus igények: o Korlátozni valakinek a felhasználást o Garantálni valakinek a minimumot o Prioritás versenyhelyzet esetén Megoldások: o Kemény korlátozások, „lágy” korlátok, részesedés o „Proportional-Share Based Scheduler”
36 Szabályozási lehetőségek (VMware) Resource Limit – kemény felső korlát az erőforrás igénybevételére o Akkor is érvényes, ha egyébként van szabad erőforrás Resource Reservation – garantált rendelkezésre álló erőforrás mennyiség o Nem feltétlenül használja ki, csak verseny esetén érvényesül, egyébként a keretet más használhatja Resource Shares – prioritás o Verseny esetén az alapértelmezett „igazságos” elosztás módosítható ezzel
37 Több VM-et futtató gép esetén a CPU share értékek a következők o VM1: 1000 o VM2: 1000 Példa a share használatára
38 Több VM-et futtató gép esetén a CPU share értékek a következők o VM1: 1000 o VM2: 1000 o VM3: 2000 Versenyhelyzet esetén mennyi a VM1 részére biztosított erőforrás-mennyiség? o 1000 / ( ) = 1/4 CPU idő Példa a share használatára
39 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: o Egy felhasználó összes gépére egy közös korlátozás o Egy feladatot ellátó gépek csoportjára korlát o Kritikus/nem kritikus alkalmazások csoportosítása Host - korlát: fizikai CPU, Memória Resource Pool -Korlát -Garantált részesedés Guest -Korlát -Garantált részesedés További Resource Pool
40 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: o Egy felhasználó összes gépére egy közös korlátozás o Egy feladatot ellátó gépek csoportjára korlát o Kritikus/nem kritikus alkalmazások csoportosítása Host - korlát: fizikai CPU, Memória Resource Pool -Korlát -Garantált részesedés Guest -Korlát -Garantált részesedés További Resource Pool Korlátokat szab: -Host -Resource Pool -Guest Korlátokat szab: -Host -Resource Pool -Guest Egymásba ágyazott korlátoknál szűkítés, konfliktusnál prioritás szerinti feloldás Egymásba ágyazott korlátoknál szűkítés, konfliktusnál prioritás szerinti feloldás
41 VMware ESXi GUI felület
42 Hyper-V: hasonló erőforrás-gazdálkodás
43 DEMO Teljesen távoli elérésen alapul „Nagyjából” kompatibilis a Workstation/Player/Server virtuális gépeivel (VMware Converter… most nem demózzuk) Fejlett erőforrás-gazdálkodás Távoli menedzsment PowerShell segítségével o Get-VM, Get-Stat… Inftech laboron mindenki kipróbálhatja VMware ESXi
44 Tartalom Ismétlés (lásd Operációs rendszerek) o Virtualizáció fajtái o Platform virtualizációs megoldások o Kliens oldali virtualizációs igények Szerveroldali virtualizáció o Platform virtualizációs megoldások o Erőforrás-gazdálkodás o Operációs rendszer szintű virtualizáció
45 Operációs rendszer szintű virtualizáció Kezdetben volt a chroot… o A fájlrendszer gyökerét átirányíthatjuk egy alkönyvtárra (egy folyamatra vonatkozik!) o 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… o Hogy is néz ki: egy teljes alap OS telepítést készítünk egy alkönyvtárba, ami kicsit eltérő is lehet az eredetitől o Problémás könyvtárak: /proc, /sys, /dev, /tmp, /var, …
46 Operációs rendszer szintű virtualizáció Megoldás: o Ne látszódjanak ki a kernel singleton erőforrásai… Ehhez módosítani kell a kernelt o Bevezetni a konténer fogalmát o Minden rendszerhívást ellátni a konténer kontextus szerinti válogatással o Singleton erőforrásokat dinamikusan példányosíthatóvá alakítani o A konténerből kifele mutató referenciák mostantól biztonsági réseknek számítanak! o A módosítások ára: 1-2% teljesítményveszteség
47 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. IPtables QoS paraméterekkel korlátozható áteresztőképesség Egyéb perifériák – a kernelben lévő meghajtón keresztül
48 Operációs rendszer szintű virtualizáció 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) 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)
49 OpenVZ architektúrája Hardver Linux kernel (+OpenVZ patch) OpenVZ izolációs réteg (vzctl) alkalmazások Virtual Private Server
50 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!)
51 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 o Live migration o Hibatűrés o Terheléselosztás o Sablonkezelés o …és a már megszokottak: monitorozás, hozzáférés- kezelés…
52 Összefoglalás Virtualizáció alap funkció lett o Kliens és kiszolgáló oldalon is Fejlett megoldások o Hypervisor egyre inkább alap komponens További információ: o Virtualizációs technológiák és alkalmazásaik választható tárgy (VIMIAV89)VIMIAV89