les 9: virtualisatie

81
best9-1 Les 9: Virtualisatie All problems in computer science can be solved by another level of indirection... — David Wheeler … but that usually will create another problem. — David Wheeler

Upload: deiondre

Post on 14-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

Les 9: Virtualisatie. All problems in computer science can be solved by another level of indirection... — David Wheeler. … but that usually will create another problem. — David Wheeler. Overzicht. Definities - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Les 9: Virtualisatie

best9-1

Les 9: Virtualisatie

All problems in computer science can be solvedby another level of indirection... — David Wheeler

… but that usually will create another problem. — David Wheeler

Page 2: Les 9: Virtualisatie

best9-2

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

Page 3: Les 9: Virtualisatie

Virtualisatietypes

best9-3

Page 4: Les 9: Virtualisatie

Server Server Server Server

Klassiek serverpark

Besturings-systeem

Besturings-systeem

Besturings-systeem

Besturings-systeem

App App App App App App

best9-4

Page 5: Les 9: Virtualisatie

Virtual Machine Monitor (VMM) / Hypervisor

Krachtige server

Gevirtualisatie server

Operating

System

Operating

System

Operating

System

Operating

System

App App App App App App

Sterke isolatie tussen domeinen…Sterke isolatie tussen domeinen…

API: ~200 syscallsAPI: ~200 syscalls

API: ~30 hypercallsAPI: ~30 hypercalls

Abstracte HWAbstracte HW

Gedeelde HWGedeelde HW

“abstractie, isolatie, delen” best9-5

Page 6: Les 9: Virtualisatie

Virtuele Machines

Virtual Machine Monitor

Hardware

Virtuele Machine

OS

App

Virtuele Machine

OS

App

best9-6

Virtuele Machine

OS

App

Virtuele Machine

OS

App

Management-VM

-Dom 0 (Xen)

-Parent partition (Hyper-V)

Page 7: Les 9: Virtualisatie

Waarom virtualiseren?Reduceer Total Cost of Ownership (TCO)

• Toename systeembelasting (gemiddelde systeembelasting per server is vaak minder dan 10% gemiddeld en minder dan 50% bij piekbelasting)

• Hardwarebesparing (minder servers) (25% of the TCO)• Besparing op ruimte, stroom, koeling

(50% van de operationele kost van een data center)

Eenvoudiger beheer• Dynamische provisionering• Werklastbeheer/isolatie• Eenvoudige migratie• Herconfiguratie

Betere beveiligingCompatibiliteit met legacysystemenBescherming van IT investeringenVirtualisatie is een schaalbare multi-core werklastVirtualisatie wordt een platformelement (vergelijkbaar met BIOS)

best9-7

Page 8: Les 9: Virtualisatie

Definitie van virtuele machine• G. Popek and R. Goldberg, “Formal Requirements for Virtualizable

Third Generation Architectures”, Comm. ACM 17 (7), 1974

• Een virtuele machine is een softwareabstractie van een fysieke machine, die voldoet aan drie voorwaarden

– Equivalent: de uitvoeringsomgeving moet identiek zijn aan die van de fysieke machine (met uitzondering van timing, totaal #systeemmiddelen, etc.)

– Veilig: VMM controleert alle systeemmiddelen en zorgt ervoor dat de diverse VM’s van elkaar geïsoleerd zijn

– Efficiënt: de waarneembare vertraging moet minimaal zijn

best9-8

Page 9: Les 9: Virtualisatie

best9-9

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

Page 10: Les 9: Virtualisatie

Formele Vereisten voor klassieke virtualiseerbaarheid• Een machine M wordt gekarakteriseerd door drie klassen

van instructies:• P(M) zijn de geprivilegieerde instructies

– Een instructie is geprivilegieerd indien ze een trap genereert in gebruikersmode, maar niet in systeemmode

• S(M) zijn de sensitieve instructies, bestaande uit– Controlesensitieve instructies die b.v. de

processormode of the MMU-instellingen veranderen– Locatiesensitieve instructies waarvan het gedrag

afhangt van de processormode of van de plaats in het geheugen

• O(M) zijn de onschadelijke instructies (=niet-sensitieve instructies)

best9-10

Page 11: Les 9: Virtualisatie

Klassieke virtualiseerbaarheid

best9-11

M is klassiek virtualiseerbaar indien

S(M) P(M)

dan kunnen we het besturingssysteem deprivilegiëren, O(M) rechtstreeks uitvoeren, S(M) traps laten genereren,

en de VMM de systeemcode laten emuleren

“Trap-and-Emulate”

P(M)

S(M)

Page 12: Les 9: Virtualisatie

Trap-and-Emulate

Klassiek OS

Hardware

Virtuele Machine

OS

App gebruiker

kern

best9-12

CPL3

CPL0 VMM

Hardware

Virtuele Machine

OS

App

gebruiker

kern

Gedeprivilegieerd OS

CPL3

CPL0

Page 13: Les 9: Virtualisatie

Trap-and-Emulate

best9-13

Directe uitvoering (gebruiker)

Geëmuleerde kerncode OS

VMM

Faults, systeemoproepen,

onderbrekingenIRET, sysret

Traces, faults,

interrupts, I/O

Page 14: Les 9: Virtualisatie

Type 1 & Type 2

best9-14

VMM

Hardware

Virtuele Machine

OS

App

Virtuele Machine

OS

App

VMM

Hardware

Virtuele Machine

Guest OS

App

Virtuele Machine

Guest OS

App

Host OS

Type 1 (“bare metal”) VMM Type 2 (“hosted”) VMM

Page 15: Les 9: Virtualisatie

best9-15

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

Page 16: Les 9: Virtualisatie

x86 platform virtualisatie

NetworkController

Videocontroller

Diskcontroller

CPUtext

MemoryPCI

Bridge/IOMMU

texttext

Virtual CPU

CPU

PCIbus

NPIV

Nested Paging SVM

NPIV

IOMMU

PCI IOV

Graphics

Virtualization

best9-16

Page 17: Les 9: Virtualisatie

Problemen Trap-and-Emulate• Duur (~3000 cycli per trap)• Er treden zeer veel traps op

– B.v., paginafouten, I/O instructies, …• De oude x86 ondersteunt geen trap-and-emulate

– Sleutelprobleem: 16 dual-purpose instructies – Klassiek voorbeeld: popf-instructie: gedrag

afhankelijk van de mode• Gebruikersmode: verandert de ALU-vlaggen• Systeemmode: verandert ALU en systeemvlaggen• + Genereert geen trap in gebruikersmode

• Privilegeniveau guest observeerbaar in x86 (via %cs)

best9-17

Page 18: Les 9: Virtualisatie

Virtualisatie CVE

• In software– Simuleer de processor (traag)– Dynamisch binair herschrijven– Paravirtualisatie

• In hardware– Trap-and-emulate

best9-18

Page 19: Les 9: Virtualisatie

Binair herschrijven• Om te virtualiseren moet de VMM de S(M) instructies

kunnen detecteren en vervangen door de gepaste emulatieroutine.

• Dit kan b.v. door x86 instructies te interpreteren en systeemtoestand van processor op de juiste manier aan te passen. Dit is echter zeer traag.

• VMware oplossing: binair herschrijven = just-in-time compilatie van x86 naar x86– O(M) wordt op zichzelf afgebeeld– S(M) wordt geëmuleerd – P(M) wordt gebruikt om de overgangen tussen

gebruikersmode en systeemmode te detecteren• Hoeft enkel maar voor kerncode te gebeuren – applicaties

blijven onveranderd in gebruikersmode draaien

best9-19

Page 20: Les 9: Virtualisatie

Voorbeeld binair herschrijven

/* Setup cr0 */

movl $CR0_FLAGS,%eax

movq %rax, %cr0

/* Setup a boot time stack */

movq init_rsp(%rip),%rsp

/* zero EFLAGS */

pushq $0

popfq

movl $CR0_FLAGS,%eax

call emulate_mov_to_cr0

leaq init_rsp(%eax), %eax

call emulate_stack_fixup

call emulate_clear_flags

best9-20

Page 21: Les 9: Virtualisatie

VMware binaire herschrijver

best9-21

Page 22: Les 9: Virtualisatie

Paravirtualisatie = statisch binair herschrijven

best9-22

VMM

Hardware

Virtuele Machine

OS_virt

App

gebruiker

kern

hypercalls

Page 23: Les 9: Virtualisatie

Volledige virtualisatie vs paravirtualisatie

Hardware X

VMM virt(X) = X

Guest OS voor X

Hardware X

VMM virt(X) X

GuestOS voor virt(X)

b.v., vmware b.v., xen

best9-23

Page 24: Les 9: Virtualisatie

Hardwarevirtualisatie

best9-24

VMM

Hardware

Virtuele Machine

OS

App gebruikersmode

guestmode

hostmode

CPL3

CPL0

vmrun vmexit

OS

VMM

Sensitieve instructie

Emulatie

Communicatie via VMCB

datastructuur

Page 25: Les 9: Virtualisatie

Guest executes

VMCB

Hardwarevirtualisatie

VMRUN

vmrunvmexit

• De guest wordt opgeroepen door de VMM via vmrun

• De guest voert uit totdat– Hij een hypercall uitgevoert– Hij een actie uitvoert die een exit

veroorzaakt• Per guest worden de exitvoorwaarden

bepaald in de VMCB (VM control block)– Welke excepties en onderbrekingen

veroorzaken een exit– Welke instructies veroorzaken een exit

best9-25

Page 26: Les 9: Virtualisatie

World switch

Guest OS 1 Guest OS 2

VMM

vmrunvmexit

vmrun

vmexit

“world switch” is heel duur

Oplossingen:- Versnellen van world switch (cache, tlb, …)- Verminderen van de frequentie ervan

best9-26

Page 27: Les 9: Virtualisatie

best9-27

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

Page 28: Les 9: Virtualisatie

x86 platform virtualisatie

NetworkController

Videocontroller

Diskcontroller

CPUtext

MemoryPCI

Bridge/IOMMU

texttext

Virtual CPU

CPU

PCIbus

NPIV

Nested Paging SVM

NPIV

IOMMU

PCI IOV

Graphics

Virtualization

best9-28

Page 29: Les 9: Virtualisatie

Geheugenvirtualisatie

best9-29

0

8

0

0

2

3

Proces 1

Proces 2

2

7

5

6

4

1

3

VM

1

0

8

0

0

2

3

Proces 1

Proces 2

2

7

5

6

4

1

3

VM

2

logisch-

1

5

9

3

14

7

4

2

10

8

-

12

16

13

19

3

-

(pseudo-)machine

0

20

Adres: pseudo-fysiek

fysiek

Page 30: Les 9: Virtualisatie

Virtualisatie geheugen

• Software: schaduwpaginatabellen• Hardware: Second level address translation

– Intel: Extended Page Tables– AMD: Nested Page Tables

• Compressie van de geheugenvoetafdruk

best9-30

Page 31: Les 9: Virtualisatie

best5-31

Schaduwpaginatabellen0

8

0

0

2

3

Proces 1

Proces 2

2

7

5

6

4

1

3

0

8

0

0

2

3

Proces 1

Proces 2

2

7

5

6

4

1

3

-

1

5

9

3

14

7

4

2

10

8

-

12

16

13

19

3

-

VM

1V

M2

logisch (pseudo-)fysiekmachine

0

20

5

4

14

7

3

1

9

10

12

2

16

13

8

19

PTBR Paginatabel: schaduw

Page 32: Les 9: Virtualisatie

Schaduwpaginatabellen

PTBR

reference &dirty bits

Guest OS

VMM

Hardware

guest write

guest read Logisch → Pseudo-fysiek

Logisch → Machine

Updates

best9-32

Page 33: Les 9: Virtualisatie

#vmexit

Schaduwpagina-tabellen In/out

paginafouten

hardwareonderbrekingen

best9-33

Page 34: Les 9: Virtualisatie

Hiërarchische paginering

best9-34

CVE o

f o

f

offset

paginatabelframes

fysiek geheugen

logisch adres

fysiek adres

fp1 f1

p2 f2

p3 f3

p4 f4

p5 f5

p6 f6

p7 f7

p8 f8

TLB treffer

TLB misser

TLB

SPARC: 8+6+6+12

IA32: 10+10+12

directory-tabel

CR3 PMPM

PM

Page 35: Les 9: Virtualisatie

Hiërarchische paginering

best9-35

CVE of o

f

offset

paginatabel

frames

fysiek geheugen

logisch adres

fysiek adres fdirectory-tabel

gCR3 PMPM

PM

nCR3

Page 36: Les 9: Virtualisatie

X86-64 vertaling

best9-36

p1 f1

p2 f2

p3 f3

... …

pn pn

PaginatabelPaginadirectoryPaginapointersdirectory

PML4(page map level 4)

129 129 9 916 52

CV

E

Geheuge

nTLB

CR3 PM

PM PM PM PM

Page 37: Les 9: Virtualisatie

AMD Nested page tables

best9-37

Page 38: Les 9: Virtualisatie

Volledige vertaling

best9-38

Page 39: Les 9: Virtualisatie

Virtualisatie geheugen

• Software: schaduwpagina’s• Hardware: Second level address translation

– Intel: Extended Page Tables– AMD: Nested Page Tables

• Compressie van de geheugenvoetafdruk

best9-39

Page 40: Les 9: Virtualisatie

Geheugenvereisten

• Hoeveel geheugen?• 2 VM’s per core• 8 cores per socket• 4 socket machine• 2 GB of memory per VM• 2 x 8 x 4 x 2 = 128 GiB per node!

• Hoeveel identieke pagina’s? – Guest OS zit 64 keer in het machinegeheugen– Nogal wat pagina’s bevatten enkel nullen– Dezelfde applicaties lopen honderden keren

best9-40

Page 41: Les 9: Virtualisatie

Transparent Page Sharing

best9-41

Page 42: Les 9: Virtualisatie

Compactie

• Compactie kan gebeuren door een systeemdraad in de VMM.

• Afhankelijk van de werklast kan dit leiden tot een besparing tot 33% van het fysiek geheugen

• Met copy-on-write kan de compactie ongedaan gemaakt worden.

1. Bereken een secure hash (SHA1) voor elk machine-frame2. indien SHA1(M1) == SHA1(M2):

• Zoek alle pagina’s die afbeelden op M1 en M2 en beeldt ze af op M1

• Markeer alle pagina’s readonly• Geef M2 vrij

best9-42

Page 43: Les 9: Virtualisatie

best9-43

best9-43

Page 44: Les 9: Virtualisatie

Memory Balloon Driver

best9-44

Page 45: Les 9: Virtualisatie

best9-45

best9-45

Page 46: Les 9: Virtualisatie

best9-46

best9-46

Page 47: Les 9: Virtualisatie

best9-47

best9-47

Page 48: Les 9: Virtualisatie

best9-48

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Software• Hardware

• Migratie

Page 49: Les 9: Virtualisatie

x86 platform virtualisatie

NetworkController

Videocontroller

Diskcontroller

CPUtext

MemoryPCI

Bridge/IOMMU

texttext

Virtual CPU

CPU

PCIbus

NPIV

Nested Paging SVM

NPIV

IOMMU

PCI IOV

Graphics

Virtualization

best9-49

Page 50: Les 9: Virtualisatie

Software-emulatie

• Elke in/out-instructie veroorzaakt een vmexit die geëmuleerd moet worden. Een device driver bevat vaak een opeenstapeling van in/out instructies. Dit leidt tot een complexe, kwetsbare en trage virtualisatieoplossing. Binair herschrijven kan het aantal world switches doen dalen.

• DMA maakt gebruik van fysieke adressen (maakt geen gebruik van de MMU). In een VM zijn de fysieke adressen pseudo-fysiek. Zelfs na vertaling is er een probleem omdat DMA naar alle fysieke adressen kan lezen/schrijven (ook van een andere VM)

IO is het inefficiëntste onderdeel van virtualisatie

best9-50

Page 51: Les 9: Virtualisatie

Paravirtualisatie voor drivers

• De oorspronkelijke device drivers kunnen vervangen worden door gespecialiseerde device drivers die horen bij de VMM en bestaan uit een aantal hypercalls

• De echte toegang tot de fysieke hardware kan door de VMM zelf gebeuren, of gedelegeerd worden naar een speciale VM die alle IO voor zijn rekening neemt (management VM of een speciale driver-VM)

best9-51

Page 52: Les 9: Virtualisatie

IO-flessenhals

VM

MV

MM

VM

MV

MM

RAMRAMRAMRAM

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

MMUMMUMMUMMUVM Guest 3VM Guest 3VM Guest 3VM Guest 3

VM Guest 2VM Guest 2VM Guest 2VM Guest 2

VM Guest 1VM Guest 1VM Guest 1VM Guest 1

Dri

ver

Dri

ver

VM

0V

M 0

Dri

ver

Dri

ver

VM

0V

M 0

I/O I/O

requestsrequests

I/O I/O

requestsrequests

controlcontrol

best9-52

Page 53: Les 9: Virtualisatie

IOMMU

ProcesProcesProcesProces

ProcesProcesProcesProces

OSOSOSOS

RAMRAMRAMRAM

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

ProcesProcesProcesProces

MMUMMUMMUMMU

IOM

MU

IOM

MU

IOM

MU

IOM

MU

controlecontrole

best9-53

Page 54: Les 9: Virtualisatie

IOMMU

best9-54

IOTLB

DeviceIDDeviceID

interruptinterrupt addressaddress

Page 55: Les 9: Virtualisatie

HW Device Virtualization

• Device implements many virtual functions• Each function assigned a unique Bus-Device-Function tuple (BDF)• Each function can be assigned to a separate guest VM• Device tags DMA and interrupt transactions with BDF• Each function can be isolated and access only the assigned guest VM

DeviceDevice

(virtualized)(virtualized)

DeviceDevice

(virtualized)(virtualized)

VF4VF4VF4VF4

VF3VF3VF3VF3

VF2VF2VF2VF2

VF1VF1VF1VF1

PFPFPFPF

PF: Physical FunctionPF: Physical Function

VF: Virtual FunctionVF: Virtual Function

best9-55

Page 56: Les 9: Virtualisatie

IOMMU interrupt remapping

RandapparatenRandapparatenRandapparatenRandapparaten

Processor(s)Processor(s)Processor(s)Processor(s)

IOMMUIOMMUIOMMUIOMMU

NMINMI

NMINMI

(block/pass)(block/pass)

INITINIT

INITINIT

Lint0Lint0

Lint0Lint0

Lint1Lint1

Lint1Lint1

ExtIntExtInt

ExtIntExtInt

(block/pass/remap)(block/pass/remap)

Fixed and Fixed and ArbitratedArbitrated

Fixed & Arbitrated Interrupts

SMISMI

best9-56

Page 57: Les 9: Virtualisatie

IOMMU gecontroleerd door VMM

VM Guest 3VM Guest 3VM Guest 3VM Guest 3

VM Guest 2VM Guest 2VM Guest 2VM Guest 2

RAMRAMRAMRAM

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

VM Guest 1VM Guest 1VM Guest 1VM Guest 1

OSOSProcesProces

ProcesProces VM 1VM 1VM 1VM 1

VM

MV

MM

VM

MV

MM

controlcontrolIO

MM

UIO

MM

UIO

MM

UIO

MM

U

MMUMMUMMUMMU

best9-57

Page 58: Les 9: Virtualisatie

Hardware IO : IOMMU

Guest 3

Guest 3

Guest 2

Guest 2

Guest 1

Guest 1

Mngt V

MM

ngt VM

VMMVMMG

uest 3G

uest 3

Guest 2

Guest 2

Guest 1

Guest 1

Mngt V

MM

ngt VM

sharedshared

IOMMUIOMMUIOMMUIOMMU VMMVMM

best9-58

Direct device assignment

Page 59: Les 9: Virtualisatie

NIC VMware ExampleGuest OS(1) Guest OS(2) Guest OS(3)

1

2

Virtualization

Layer

Packets for guest OS 2 and 3

3

1’

2’

3’

I/O MMU

Device

Manager

VF VF VF

PF

PF = Physical Function, VF = Virtual Function

I/O Device

Guest OS

Device Driver

Guest OS

Device Driver

Guest OS

Device Driver

VMM

Fixed Pass through I/O

NetQueue

best9-59

Page 60: Les 9: Virtualisatie

best9-60

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Software• Hardware

• Migratie

Page 61: Les 9: Virtualisatie

Rationale voor VM migratie

VM-migratie faciliteert:– Hoge beschikbaarheid

B.v. Machineonderhoud– BelastingsspreidingXen

Xen

best9-61

Page 62: Les 9: Virtualisatie

best9-62best9-62

Page 63: Les 9: Virtualisatie

best9-63best9-63

Page 64: Les 9: Virtualisatie

Uitdagingen bij migratie

• VM’s hebben een grote interne toestand• Sommige VM’s hebben soft real-time vereisten

– b.v. webservers, databanken, gameservers Minimaliseer onbeschikbaarheid

• Migratie vereist extra systeemmiddelen (geheugen, bandbreedte) Beperk de extra belasting veroorzaakt door de

migratie

best9-64

Page 65: Les 9: Virtualisatie

Migratie-algoritme

Stage 0: pre-migratie

Stage 1: reservatie

Stage 2: iteratieve pre-copy

Stage 3: stop-and-copy

Stage 4: commit

Selecteer een bestemming: host B

Initialiseer een VM op host B, deel de storage

Kopieer gebruikte pagina’s in diverse iteraties A B

Stop de VM op host ARedirect netwerktraffiek

Synchroniseer resttoestand

Activeer host BVM state on host A released

best9-65

Page 66: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 1

best9-66

Page 67: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 1

best9-67

Page 68: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 1

best9-68

Page 69: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 1

best9-69

Page 70: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 1

best9-70

Page 71: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 2

best9-71

Page 72: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 2

best9-72

Page 73: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 2

best9-73

Page 74: Les 9: Virtualisatie

Pre-Copy Migratie: Round 2

best9-74

Page 75: Les 9: Virtualisatie

Pre-Copy Migratie: Ronde 2

best9-75

Page 76: Les 9: Virtualisatie

Pre-Copy Migratie: checkpoint copy

best9-76

Page 77: Les 9: Virtualisatie

Impact van migratie

• Systeemmiddelen die ingezet worden voor migratie moeten beperkt blijven:– “Dirty logging” kost ongeveer 2-3%

• B.v. eerste kopieeriteratie aan 100Mb/s, langzaam verhogend voor de volgende iteraties– Kortere kopieeroperaties– Ondertussen minder aangepaste pagina’s– Volgende iteratie wordt kleiner

best9-77

Page 78: Les 9: Virtualisatie

best9-78best9-78

Page 79: Les 9: Virtualisatie

best9-79best9-79

Page 80: Les 9: Virtualisatie

Webserver Migratie

best9-80

Page 81: Les 9: Virtualisatie

best9-81