virtualizáció - bevezető
DESCRIPTION
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?. - PowerPoint PPT PresentationTRANSCRIPT
1Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Virtualizáció - Bevezető
Tóth Dániel(és kissé csemegézve Micskei Zoltán előadásából)
Intelligens rendszerfelügyelet
2
Motivációs példa
Új üzleti szolgáltatást akarok beindítaniVegyünk több vasat!
Biztos, hogy ez segít?
Biztos, hogy ez a költséghatékony
megoldás?
Emlékszünk még?
3
Emlékszünk még?
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 oprendszeremetEgyiknek 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…
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!
IÓCIÓÁCIÓKÁCIÓVIRTUALIZÁCIÓ
$$$$$$
$$$ $$$
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: o fizikai erőforrásokból logikai erőforrások képzése, amik
függetlenek a tényleges fizikai elemektőlo 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…
8
Mi micsoda a virtualizáció világában?
ParavirtualizációEmuláció
Alkalmazás virtualizáció
BinaryTranslation
Hypervisor
KonszolidációMikrokernel
Backend
Seamless windowmanagementErő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)
HDD====
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 ésa rendszermag között
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 magasszintű szolgáltatásai között
Könyvtár hívások(call)
FuttatókörnyezetekAlkalmazá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
„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 fogalmako 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 (exokernelnek hívják azt, ami ilyet csinál)
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éseo HW konszolidációo Régi rendszerek (legacy systems)o On-demand architektúrao Rendelkezésre állás, katasztrófa védelemo Hordozható alkalmazásoko…
16
Platform virtualizáció Kétféle megközelítés:
Hardver
Oprendszer Virt. szoftver
App. OS OS
App. App.
Hardver
Virt. szoftver
Menedzsment OS
Menedzsment App.
OS OS
App. App.
Hosted (Type2) virtualizáció
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, Xen Enterprise, MS Hyper-V
HOST
GUEST
Neve:VMM – Virtual Machine Monitor
Hypervisor
Fő komponense:VMM – Virtual Machine Monitor
vagy Hypervisor
17
Platform virtualizáció Operációs rendszerekből érdemes átismételni
o Hogy is működik?• Elfogás és emuláció elve
o Tiszta emuláció• Miben különbözik a virtualizációtól, hol kerül elő a virtualizáción belül
o 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: o Virtualizációs Technológiák és Alkalmazásaik (VIMIAV89), első 3
előadáso 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
o Egyszerűen telepíthető legyen meglévő operációs rendszerre
o Egyszerűen kezelhetőek legyenek a virtuális gépek (fájl szinten)
o Egyszerre jellemzően kevés virtuális gép futo Jó legyen az erőforrás-kiosztás (dinamikusan foglaljon
CPU-t, memóriát, merevlemezt)oMultimédia: jó grafikus teljesítmény, legyen hang stb.o 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
o Az egér egyenletes sebességgel mozogjon a hoszt és a vendég gép képernyőjén is
o 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éto A grafikus megjelenítést célszerű hoszt-guest között osztott
memóriaterülettel megoldanio Kívülről érkező esemény az ablak átméreteződéseo 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…o A VMware SVGA II de facto szabvány paravirtualizált
grafikus meghajtó lett (VirtualBox, QEMU is ezt támogatja)o Desktopon ritkán kell: távoli elérés támogatása (tipikusan
VNC felett)o Az ablakok „jöjjenek ki” a keretből (Seamless windowing)
• Nem triviális megoldani a VMware Unity 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.
o 3D gyorsítás…
21
Speciális háttértár periféria igények Háttértárak
o Ne kelljen lefoglalni az összes háttértárat előre, csak annyit amennyit éppen ki is használunk
o Hogy lehet megoldani?o A diszk tartalom képfájlokban valahogy követni kell, hogy melyik blokk
használt, melyik nem…o Első ötlet: allocate on writeo a fájlrendszerek elhagyogatnak szemetet maguk után…o 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 secure erase (ami nem random adattal tölti fel a helyet), akkor igen• Új lehetőség az SSD-knél bevezetett TRIM művelet
o Egyébként kell egy… wait for it… á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
o A VMware Tools Shrink opciója így működik
22
Speciális háttértár periféria igények Pillanatkép funkcionalitás (snapshot)
o Egy konzisztens állapot lementése (diszk, memória)o Ne kelljen teljes másolatot csinálni… hogy lehet?o A diszk képfájlban csak a legutóbbi snapshot óta
változott blokkok tárolása (copy-on-write)o Fa hierarchia építhető belőlünk
Másolatkészítés - „A klónok támadása”o Néha jól jön, ha kis költséggel klónozhatók a gépeko A másolatkészítés után „külön életet kezdenek élni”o Segítségül hívjuk a snapshot funkcionalitásto Csak VMware Workstation támogatja, még az ESX Server
sem!
23
DEMO
talán kevésbé ismert funkcióio Unityo Beépített VNC szervero Videó rögzítéso CPU virtualizációs üzemmód átállításao Virtuális perifériák rejtettebb opciói
Szoftverfejlesztést támogató funkcióko Virtuális gép lefutásának rögzítése/visszajátszásaoMost nem mutatjuk be: virtuális gépen belül futó
alkalmazás debugolása kívülről
VMware Workstation
24
Szerver Virtualizáció
25
Szerver virtualizáció Jellegzetességek
o Távoli elérés központi szerepeo 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áso 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ó
26
Szerver virtualizáció Platform virtualizáción alapuló megoldások:
o VMware ESX Server, ESXio Xen Enterpriseo Microsoft Hyper-Vo IBM LPAR, DLPAR
Operációs rendszer szintű virtualizáción alapul:o Linux OpenVZo Linux VServero Parallels Virtuozzo Containers (Linux, Windows)o Solaris Containers, Zoneso FreeBSD jailo AIX WPAR
27
AlkalmazásokAlkalmazások
Guest OSGuest OSGuest OS
VMware ESX Server architektúrája
Hardver (x86 CPU, SCSI, Ethernet)
VMkernel
COS(Linux 2.4)
Service Console (Tomcat, SSH...)
Driver Worlds
Helper Worlds
Alkalmazások
28
AlkalmazásokAlkalmazások
Guest OSGuest OSService Console worlds
Service Console worlds
Guest OS
VMware ESXi Server architektúrája
Hardver (x86 CPU, SCSI, Ethernet, SATA)
VMkernel
Service Console worlds Driver
WorldsHelper Worlds
Alkalmazások
29
VMware ESX Server képességei Erőforrás-gazdálkodás
o Erősen arra optimalizált, hogy sok guest fusson egyszerre (max. 8 x CPU magok száma)
o CPU, memória, diszk használat, hálózat használat külön-külön limitálható
o Csoportos korlátozások is beállíthatóak (resource pool)o A virtuális gépek és resource poolok fa szerkezetbe
szervezhetőeko Erőforrások kihasználtságát monitorozza, grafikonon
ábrázolható
30
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 Konzolos belenézés esxtop-pal Inftech laboron mindenki kipróbálhatja
VMware ESX Server
31
Szerver virtualizáció Platform virtualizáción alapuló megoldások:
o VMware ESX Server, ESXio Xen Enterpriseo Microsoft Hyper-Vo IBM LPAR, DLPAR
Operációs rendszer szintű virtualizáción alapul:o Linux OpenVZo Linux VServero Parallels Virtuozzo Containers (Linux, Windows)o Solaris Containers, Zoneso FreeBSD jailo AIX WPAR
32
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 processzre vonatkozik!)
o 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…o 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őlo Problémás könyvtárak: /proc, /sys, /dev, /tmp, /var, …• Lehet mount binddal trükközni, de nem lesz tökéletes…
33
Operációs rendszer szintű virtualizáció Megoldás:
o Ne látszódjanak ki a kernel singleton erőforrásai…o 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!o 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
o CPU – a kernel beépített ütemezője, prioritáskezelője, kiegészítve szigorú cpuidő-korlátozással
oMemória – a kernel beépített memóriakezelője, kiegészítve szigorú méretkorlátozással
o Háttértár – a fájlrendszer egy alkönyvtára, quota rendszerrel korlátozható foglalás
o 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
o 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
Hardver
Linux kernel (+OpenVZ patch)
OpenVZ izolációs réteg (vzctl) alkalmazások
alkalmazások alkalmazások
Virtual Private Server
Virtual Private Server
36
OpenVZ Képességek
o A VPS belsejében „komplett” telepített OS találhatóo Egy VPS indításakor a kernel teljesen inicializálatlan
állapotban mutatja magát -> saját init scripteket futtat minden VPS
o A VPS-be telepített OS környezet sablonokból (templates) telepíthető le még a VPS indítása előtt
o A VPS-ben lévő fájlok akár meg is oszthatóak több VPS között (hard link!)
37
DEMO
CentOS Live CD-ről futtatható változato Debian template létrehozása, indítás, belépéso Folyamatok listázása, fájlrendszer stb…
OpenVZ
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óko Live migrációo Hibatűréso Terheléselosztáso Sablonkezeléso…és a már megszokottak: monitorozás,
hozzáféréskezelés…