Les 9: Virtualisatie

Post on 14-Jan-2016

47 views 0 download

Tags:

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 of 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

best9-2

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

Virtualisatietypes

best9-3

Server Server Server Server

Klassiek serverpark

Besturings-systeem

Besturings-systeem

Besturings-systeem

Besturings-systeem

App App App App App App

best9-4

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

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)

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

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

best9-9

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

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

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)

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

Trap-and-Emulate

best9-13

Directe uitvoering (gebruiker)

Geëmuleerde kerncode OS

VMM

Faults, systeemoproepen,

onderbrekingenIRET, sysret

Traces, faults,

interrupts, I/O

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

best9-15

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

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

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

Virtualisatie CVE

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

• In hardware– Trap-and-emulate

best9-18

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

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

VMware binaire herschrijver

best9-21

Paravirtualisatie = statisch binair herschrijven

best9-22

VMM

Hardware

Virtuele Machine

OS_virt

App

gebruiker

kern

hypercalls

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

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

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

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

best9-27

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Migratie

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

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

Virtualisatie geheugen

• Software: schaduwpaginatabellen• Hardware: Second level address translation

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

• Compressie van de geheugenvoetafdruk

best9-30

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

Schaduwpaginatabellen

PTBR

reference &dirty bits

Guest OS

VMM

Hardware

guest write

guest read Logisch → Pseudo-fysiek

Logisch → Machine

Updates

best9-32

#vmexit

Schaduwpagina-tabellen In/out

paginafouten

hardwareonderbrekingen

best9-33

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

Hiërarchische paginering

best9-35

CVE of o

f

offset

paginatabel

frames

fysiek geheugen

logisch adres

fysiek adres fdirectory-tabel

gCR3 PMPM

PM

nCR3

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

AMD Nested page tables

best9-37

Volledige vertaling

best9-38

Virtualisatie geheugen

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

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

• Compressie van de geheugenvoetafdruk

best9-39

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

Transparent Page Sharing

best9-41

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

best9-43

best9-43

Memory Balloon Driver

best9-44

best9-45

best9-45

best9-46

best9-46

best9-47

best9-47

best9-48

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Software• Hardware

• Migratie

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

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

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

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

IOMMU

ProcesProcesProcesProces

ProcesProcesProcesProces

OSOSOSOS

RAMRAMRAMRAM

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

PeripheralPeripheralPeripheralPeripheral

ProcesProcesProcesProces

MMUMMUMMUMMU

IOM

MU

IOM

MU

IOM

MU

IOM

MU

controlecontrole

best9-53

IOMMU

best9-54

IOTLB

DeviceIDDeviceID

interruptinterrupt addressaddress

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

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

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

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

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

best9-60

Overzicht

• Definities• Klassieke virtualiseerbaarheid• Virtualisatie

– CVE– Geheugen– IO

• Software• Hardware

• Migratie

Rationale voor VM migratie

VM-migratie faciliteert:– Hoge beschikbaarheid

B.v. Machineonderhoud– BelastingsspreidingXen

Xen

best9-61

best9-62best9-62

best9-63best9-63

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

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

Pre-Copy Migratie: Ronde 1

best9-66

Pre-Copy Migratie: Ronde 1

best9-67

Pre-Copy Migratie: Ronde 1

best9-68

Pre-Copy Migratie: Ronde 1

best9-69

Pre-Copy Migratie: Ronde 1

best9-70

Pre-Copy Migratie: Ronde 2

best9-71

Pre-Copy Migratie: Ronde 2

best9-72

Pre-Copy Migratie: Ronde 2

best9-73

Pre-Copy Migratie: Round 2

best9-74

Pre-Copy Migratie: Ronde 2

best9-75

Pre-Copy Migratie: checkpoint copy

best9-76

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

best9-78best9-78

best9-79best9-79

Webserver Migratie

best9-80

best9-81