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

Szerveroldali virtualizáció

  • Upload
    skip

  • View
    47

  • Download
    0

Embed Size (px)

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

Citation preview

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)