virtualizáció - bevezető

38
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Virtualizáció - Bevezető Tóth Dániel (és kissé csemegézve Micskei Zoltán előadásából) Intelligens rendszerfelügyelet

Upload: nansen

Post on 21-Jan-2016

44 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Virtualizáció - Bevezető

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

Page 2: Virtualizáció - Bevezető

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?

Page 3: Virtualizáció - Bevezető

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…

Page 4: Virtualizáció - Bevezető

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!

Page 5: Virtualizáció - Bevezető

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

Page 6: Virtualizáció - Bevezető

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Ó

$$$$$$

$$$ $$$

Page 7: Virtualizáció - Bevezető

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…

Page 8: Virtualizáció - Bevezető

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!

Page 9: Virtualizáció - Bevezető

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

Page 10: Virtualizáció - Bevezető

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

Page 11: Virtualizáció - Bevezető

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…

Page 12: Virtualizáció - Bevezető

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

Page 13: Virtualizáció - Bevezető

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ó”

Page 14: Virtualizáció - Bevezető

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

Page 15: Virtualizáció - Bevezető

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…

Page 16: Virtualizáció - Bevezető

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

Page 17: Virtualizáció - Bevezető

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

Page 18: Virtualizáció - Bevezető

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

Page 19: Virtualizáció - Bevezető

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

Page 20: Virtualizáció - Bevezető

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…

Page 21: Virtualizáció - Bevezető

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

Page 22: Virtualizáció - Bevezető

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!

Page 23: Virtualizáció - Bevezető

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

Page 24: Virtualizáció - Bevezető

24

Szerver Virtualizáció

Page 25: Virtualizáció - Bevezető

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ó

Page 26: Virtualizáció - Bevezető

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

Page 27: Virtualizáció - Bevezető

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

Page 28: Virtualizáció - Bevezető

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

Page 29: Virtualizáció - Bevezető

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ó

Page 30: Virtualizáció - Bevezető

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

Page 31: Virtualizáció - Bevezető

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

Page 32: Virtualizáció - Bevezető

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…

Page 33: Virtualizáció - Bevezető

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

Page 34: Virtualizáció - Bevezető

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)

Page 35: Virtualizáció - Bevezető

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

Page 36: Virtualizáció - Bevezető

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

Page 37: Virtualizáció - Bevezető

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

Page 38: Virtualizáció - Bevezető

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…