45
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Szerver oldali virtualizáció Tóth Dániel, Micskei Zoltán Intelligens rendszerfelügyelet

Szerver oldali virtualizáció

  • Upload
    ninon

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Szerver oldali virtualizáció

1Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

Szerver oldali virtualizáció

Tóth Dániel, Micskei Zoltán

Intelligens rendszerfelügyelet

Page 2: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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ő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 7: Szerver oldali virtualizáció

7

Tartalom

Ismétlés (lásd Operációs rendszerek)o Virtualizáció fajtáio Platform virtualizációs megoldásoko Kliens oldali virtualizációs igények

Szerver oldali virtualizáció

Page 8: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali 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

Page 15: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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ülo 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)

Page 18: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

24

Tartalom

Ismétlés (lásd Operációs rendszerek tantárgy)o Virtualizáció fajtáio Platform virtualizációs megoldásoko Kliens oldali virtualizációs igények

Szerver oldali virtualizációo Platform virtualizációs megoldásoko Erőforrás-gazdálkodáso Operációs rendszer szintű virtualizáció

Page 25: Szerver oldali 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ó

Page 26: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

27

Bare metal megoldások architektúráiESXi Xen / Hyper-V

I/O eszközök kezelése a 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)

Page 28: Szerver oldali virtualizáció

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: Szerver oldali virtualizáció

29

ESXi system image Aktív és alternatív

verzió In-memory

fájlrendszero Pl. log fájl elveszik

rebootkor OEM kiegészítések

(embedded ESXi)

Page 30: Szerver oldali virtualizáció

30

Tartalom

Ismétlés (lásd Operációs rendszerek)o Virtualizáció fajtáio Platform virtualizációs megoldásoko Kliens oldali virtualizációs igények

Szerver oldali virtualizációo Platform virtualizációs megoldásoko Erőforrás-gazdálkodáso Operációs rendszer szintű virtualizáció

Page 31: Szerver oldali 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: o CPU: gyakran (összesen több vCPU, mint fizikai)oMemó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

Page 32: Szerver oldali virtualizáció

32

Erőforrás gazdálkodás Versengés az erőforrásokért:

o Kis terheléseknél ritka, hogy egyszerre több guest ugyanazt az erőforrást terhelné…

o De szerverkörnyezetben gyakran előfordul, hogy valamelyik erőforrás szűk keresztmetszet lesz

o A megfelelő ütemező elosztja a hozzáférést, de nem mindig megfelelően

Cél:o 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-Share Based Scheduler”

Page 33: Szerver oldali virtualizáció

33

Erőforrás gazdálkodás VMware ESX/ESXi esetén 3 beállítási lehetőség:

o 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

o Resource Reservation – 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álhatjao Resource Shares – prioritás• Verseny esetén az alapértelmezett „igazságos” elosztás

módosítható ezzel

Page 34: Szerver oldali virtualizáció

34

Erőforrás gazdálkodás Hierarchikus

erőforráskezeléso Nemcsak virtuális gépek

szintjén lehet korlátoznio Pool-okba szervezhetők a

VM-eko 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

Resource Pool-Korlát-Garantált részesedés

Guest-Korlát-Garantált részesedés

TovábbiResource Pool

Page 35: Szerver oldali virtualizáció

35

Erőforrás gazdálkodás Hierarchikus

erőforráskezeléso Nemcsak virtuális gépek

szintjén lehet korlátoznio Pool-okba szervezhetők a

VM-eko 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

Resource Pool-Korlát-Garantált részesedés

Guest-Korlát-Garantált részesedés

TovábbiResource Pool

Korlátokat szab:

-Host-Resource Pool-Guest

Egymásba ágyazott korlátoknál szűkítés,

konfliktusnál prioritás szerinti

feloldás

Page 36: Szerver oldali virtualizáció

36

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

Page 37: Szerver oldali virtualizáció

37

Tartalom

Ismétlés (lásd Operációs rendszerek)o Virtualizáció fajtáio Platform virtualizációs megoldásoko Kliens oldali virtualizációs igények

Szerver oldali virtualizációo Platform virtualizációs megoldásoko Erőforrás-gazdálkodásoOperációs rendszer szintű virtualizáció

Page 38: Szerver oldali virtualizáció

38

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

Page 39: Szerver oldali virtualizáció

39

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 40: Szerver oldali virtualizáció

40

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

o Memó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

Page 41: Szerver oldali virtualizáció

41

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

o Memó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 42: Szerver oldali virtualizáció

42

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 43: Szerver oldali virtualizáció

43

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 44: Szerver oldali virtualizáció

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óko Live migrationo Hibatűréso Terheléselosztáso Sablonkezeléso…és a már megszokottak: monitorozás, hozzáférés-

kezelés…

Page 45: Szerver oldali virtualizáció

45

Összefoglalás

Virtualizáció alap funkció letto Kliens és kiszolgáló oldalon is

Fejlett megoldásoko 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)