Szerveroldali virtualizáció

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

description

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

Transcript of Szerveroldali virtualizáció

Page 1: Szerveroldali  virtualizáció

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

Szerveroldali virtualizáció

Tóth Dániel, Micskei Zoltán

Intelligens rendszerfelügyelet

Page 2: Szerveroldali  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?

Page 3: Szerveroldali  virtualizáció

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…

Page 4: Szerveroldali  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: Szerveroldali  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 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

Page 6: Szerveroldali  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: Szerveroldali  virtualizáció

7

Tartalom

Ismétlés (lásd Operációs rendszerek)o Virtualizáció fajtáio Platform virtualizációs megoldások

Szerveroldali virtualizáció

Page 8: Szerveroldali  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: Szerveroldali  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: Szerveroldali  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: Szerveroldali  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: Szerveroldali  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: Szerveroldali  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: Szerveroldali  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őeko 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: Szerveroldali  virtualizáció

16

Platform virtualizáció architektúrái 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 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

Page 16: Szerveroldali  virtualizáció

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)

Page 17: Szerveroldali  virtualizáció

18

Tartalom

Ismétlés (lásd Operációs rendszerek tantárgy)o Virtualizáció fajtáio Platform virtualizációs megoldások

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

Page 18: Szerveroldali  virtualizáció

19

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 19: Szerveroldali  virtualizáció

20

Szerver virtualizáció Platform virtualizáción alapuló megoldások:

o VMware vSphere (ESXi)o Xen (+ Citrix XenServer, Oracle VM…)o 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 20: Szerveroldali  virtualizáció

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észeo vCenter Server, vMotion, DRS, HA, FT…o lásd a következő előadást

Page 21: Szerveroldali  virtualizáció

22

VMware ESXi: Minimális konzol

Page 22: Szerveroldali  virtualizáció

23

VMware ESXi 5 architektúrája

VMkernel World

o VM worldo Ágensek, shell…

Page 23: Szerveroldali  virtualizáció

24

VMware ESXi 5 menedzsment API

Forrás: VMware ESXi 5.0 Operations Guide

Page 24: Szerveroldali  virtualizáció

25

ESXi system image Aktív és alternatív

verzió In-memory

fájlrendszero 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

Page 25: Szerveroldali  virtualizáció

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:oWindows Serverben a Hyper-V szerepoMS 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

Page 26: Szerveroldali  virtualizáció

27

Hyper-V architektúra (1)

Hardver

Hypervisor

Windows Server kernel + Hyper-V

modulok

Virtualization stack(pl. VM kezelő szolgáltatás)

Ring 0

Ring 3

Root mode

Szülő partíció Gyerek partíció 1 Gyerek partíció 2

Vendég OS Vendég OS

Vendég alkalmazások

Vendég alkalmazások

27

Page 27: Szerveroldali  virtualizáció

28

Hyper-V architektúra (2)

Forrás: Microsoft. Hyper-V Architecture and Feature Overview

Page 28: Szerveroldali  virtualizáció

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áltozatao Oracle VM, HUAWEI UV…

Követelmény:o Paravirtualizációs kiegészítés része a Linux kernelnekoWindows vendéghez HW-es virtualizáció kell

Page 29: Szerveroldali  virtualizáció

30

XCP architektúra Dom0: menedzsment OS DomU: virtuális gépek

Forrás: http://xen.org/products/cloudxen.html

Page 30: Szerveroldali  virtualizáció

31

Bare metal megoldások architektúráiESXi 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)

Page 31: Szerveroldali  virtualizáció

32

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

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

Page 32: Szerveroldali  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)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 33: Szerveroldali  virtualizáció

34

Versengés az erőforrásokért

Erőforrás szűk keresztmetszet leszo Kis terheléseknél ritkao De szerverkörnyezetben gyakran előfordul

Hogyan osszuk el ilyenkor az erőforrásokat?

Page 34: Szerveroldali  virtualizáció

35

Feladatok erőforrások kezelésénél Tipikus igények:

o Korlátozni valakinek a felhasználásto Garantálni valakinek a minimumoto Prioritás versenyhelyzet esetén

Megoldások:o Kemény korlátozások, „lágy” korlátok, részesedéso „Proportional-Share Based Scheduler”

Page 35: Szerveroldali  virtualizáció

36

Szabályozási lehetőségek (VMware) Resource Limit – kemény felső korlát az erőforrás

igénybevételéreo Akkor is érvényes, ha egyébként van szabad erőforrás

Resource Reservation – garantált rendelkezésre álló erőforrás mennyiségo 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

Page 36: Szerveroldali  virtualizáció

37

Több VM-et futtató gép esetén a CPU share értékek a következőko VM1: 1000o VM2: 1000

CPU

VM1VM2

Példa a share használatára

Page 37: Szerveroldali  virtualizáció

38

Több VM-et futtató gép esetén a CPU share értékek a következőko VM1: 1000o VM2: 1000o VM3: 2000

Versenyhelyzet esetén mennyi a VM1 részére biztosított erőforrás-mennyiség?o 1000 / (1000+1000+2000) = 1/4 CPU idő

CPUVM1VM2VM3

Példa a share használatára

Page 38: Szerveroldali  virtualizáció

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ábbiResource Pool

Page 39: Szerveroldali  virtualizáció

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

41

VMware ESXi GUI felület

Page 41: Szerveroldali  virtualizáció

42

Hyper-V: hasonló erőforrás-gazdálkodás

Page 42: Szerveroldali  virtualizáció

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

Page 43: Szerveroldali  virtualizáció

44

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

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

Page 44: Szerveroldali  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őlo Problémás könyvtárak: /proc, /sys, /dev, /tmp, /var, …

Page 45: Szerveroldali  virtualizáció

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átoMinden rendszerhívást ellátni a konténer kontextus

szerinti válogatássalo Singleton erőforrásokat dinamikusan

példányosíthatóvá alakítanio 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 46: Szerveroldali  virtualizáció

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

Page 47: Szerveroldali  virtualizáció

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)

Page 48: Szerveroldali  virtualizáció

49

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 49: Szerveroldali  virtualizáció

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

Page 50: Szerveroldali  virtualizáció

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ó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 51: Szerveroldali  virtualizáció

52

Összefoglalás Virtualizáció alap funkció lett

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