les 9 virtualisatie
Download
Skip this Video
Download Presentation
Les 9: Virtualisatie

Loading in 2 Seconds...

play fullscreen
1 / 79

Les 9: Virtualisatie - PowerPoint PPT Presentation


  • 116 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Les 9: Virtualisatie' - deiondre


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
les 9 virtualisatie

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

overzicht
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
  • Migratie
klassiek serverpark
Klassiek serverpark

Server

Server

Server

Server

App

App

App

App

App

App

Besturings-systeem

Besturings-systeem

Besturings-systeem

Besturings-systeem

gevirtualisatie server
Gevirtualisatie server

Virtual Machine Monitor (VMM) / Hypervisor

Krachtige server

Sterke isolatie tussen domeinen…

App

App

App

App

App

App

Operating

System

Operating

System

Operating

System

Operating

System

API: ~200 syscalls

Abstracte HW

Gedeelde HW

API: ~30 hypercalls

“abstractie, isolatie, delen”

virtuele machines
Virtuele Machines

Virtuele Machine

App

OS

Virtuele Machine

Virtuele Machine

Virtuele Machine

App

App

App

OS

OS

OS

Virtual Machine Monitor

Hardware

  • Management-VM
  • Dom 0 (Xen)
  • Parent partition (Hyper-V)
waarom virtualiseren
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 beveiliging

Compatibiliteit met legacysystemen

Bescherming van IT investeringen

Virtualisatie is een schaalbare multi-core werklast

Virtualisatie wordt een platformelement (vergelijkbaar met BIOS)

definitie van virtuele machine
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

overzicht1
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
  • Migratie
formele vereisten voor klassieke virtualiseerbaarheid
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 onschadelijkeinstructies (=niet-sensitieve instructies)
klassieke virtualiseerbaarheid
Klassieke virtualiseerbaarheid

M is klassiek virtualiseerbaar indien S(M)  P(M)

dan kunnen we het besturingssysteem depriviligiëren, O(M) rechstreeks uitvoeren, S(M) traps laten genereren, en de VMM de systeemcode laten emuleren

“Trap-and-Emulate”

P(M)

S(M)

trap and emulate
Trap-and-Emulate

Klassiek OS

Virtuele Machine

App

Virtuele Machine

OS

App

CPL3

CPL3

gebruiker

gebruiker

kern

kern

OS

VMM

CPL0

CPL0

Hardware

Hardware

Gedeprivilegieerd OS

trap and emulate1
Trap-and-Emulate

Directe uitvoering (gebruiker)

Faults, systeemoproepen,

onderbrekingen

IRET, sysret

VMM

Traces, faults,

interrupts, I/O

Geëmuleerde kerncode OS

type 1 type 2
Type 1 & Type 2

Virtuele Machine

Virtuele Machine

App

App

OS

Guest OS

Virtuele Machine

Virtuele Machine

App

App

OS

Guest OS

VMM

VMM

Host OS

Hardware

Hardware

Type 1 (“bare metal”) VMM

Type 2 (“hosted”) VMM

overzicht2
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
  • Migratie
x86 platform virtualisatie
x86 platform virtualisatie

PCI IOV

PCI

bus

Disk

SVM

Nested Paging

IOMMU

controller

NPIV

Virtual CPU

PCI

Network

text

Memory

CPU

Bridge/

text

Controller

text

IOMMU

NPIV

CPU

Video

controller

Graphics

Virtualization

problemen trap and emulate
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)
virtualisatie cve
Virtualisatie CVE
  • In software
    • Simuleer de processor (traag)
    • Dynamisch binair herschrijven
    • Paravirtualisatie
  • In hardware
    • Trap-and-emulate
binair herschrijven
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
voorbeeld binair herschrijven
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

paravirtualisatie statisch binair herschrijven
Paravirtualisatie = statisch binair herschrijven

Virtuele Machine

hypercalls

App

OS_virt

gebruiker

kern

VMM

Hardware

volledige virtualisatie vs paravirtualisatie
Volledige virtualisatie vs paravirtualisatie

Guest OS voor X

GuestOS voor virt(X)

VMM virt(X) = X

VMM virt(X)  X

Hardware X

Hardware X

b.v., xen

b.v., vmware

hardwarevirtualisatie
Hardwarevirtualisatie

Sensitieve instructie

Virtuele Machine

App

CPL3

gebruikersmode

OS

OS

CPL0

guestmode

vmrun

vmexit

VMM

hostmode

VMM

Hardware

Communicatie via VMCBdatastructuur

Emulatie

hardwarevirtualisatie1
Hardwarevirtualisatie

VMRUN

Guest executes

VMCB

  • 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

vmrun

vmexit

world switch
World switch

Guest OS 1

Guest OS 2

vmexit

vmexit

vmrun

vmrun

VMM

“world switch” is heel duur

Oplossingen:

- Versnellen van world switch (cache, tlb, …)

- Verminderen van de frequentie ervan

overzicht3
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
  • Migratie
x86 platform virtualisatie1
x86 platform virtualisatie

PCI IOV

PCI

bus

Disk

SVM

Nested Paging

IOMMU

controller

NPIV

Virtual CPU

PCI

Network

text

Memory

CPU

Bridge/

text

Controller

text

IOMMU

NPIV

CPU

Video

controller

Graphics

Virtualization

geheugenvirtualisatie
Geheugenvirtualisatie

Adres: pseudo-fysiek

machine

logisch

fysiek

(pseudo-)

0

0

0

-

Proces 1

2

1

7

5

5

2

9

VM1

3

0

Proces 2

6

14

4

7

1

4

3

3

-

8

0

0

2

Proces 1

2

10

7

8

5

2

VM2

-

12

0

6

Proces 2

16

4

13

1

19

3

3

3

20

8

virtualisatie geheugen
Virtualisatie geheugen
  • Software: schaduwpaginatabellen
  • Hardware: Second level address translation
    • Intel: Extended Page Tables
    • AMD: Nested Page Tables
  • Compressie van de geheugenvoetafdruk
schaduwpaginatabellen
Schaduwpaginatabellen

machine

logisch

(pseudo-)fysiek

0

0

0

-

Proces 1

2

5

1

7

4

5

5

14

2

9

VM1

3

0

7

Proces 2

6

14

3

4

7

1

1

4

9

3

3

-

8

0

0

2

Proces 1

2

10

10

7

12

8

5

2

2

VM2

-

12

0

6

Proces 2

16

16

4

13

13

1

8

19

3

19

3

3

20

8

PTBR

Paginatabel: schaduw

schaduwpaginatabellen1
Schaduwpaginatabellen

guest read

Logisch → Pseudo-fysiek

Guest OS

guest write

reference &

Updates

dirty bits

Logisch → Machine

VMM

Hardware

PTBR

vmexit
#vmexit

Schaduwpagina-tabellen

In/out

paginafouten

hardwareonderbrekingen

virtualisatie geheugen1
Virtualisatie geheugen
  • Software: schaduwpagina’s
  • Hardware: Second level address translation
    • Intel: Extended Page Tables
    • AMD: Nested Page Tables
  • Compressie van de geheugenvoetafdruk
geheugenvereisten
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
compactie
Compactie
  • Bereken een secure hash (SHA1) voor elk machine-frame
  • 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
  • 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.
overzicht4
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
      • Software
      • Hardware
  • Migratie
x86 platform virtualisatie2
x86 platform virtualisatie

PCI IOV

PCI

bus

Disk

SVM

Nested Paging

IOMMU

controller

NPIV

Virtual CPU

PCI

Network

text

Memory

CPU

Bridge/

text

Controller

text

IOMMU

NPIV

CPU

Video

controller

Graphics

Virtualization

software emulatie
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

paravirtualisatie voor drivers
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)
io flessenhals
IO-flessenhals

MMU

Peripheral

RAM

VM Guest 1

VM Guest 2

VM Guest 3

Peripheral

Driver

VM 0

Peripheral

VMM

I/O

requests

I/O

requests

control

iommu
IOMMU

MMU

Peripheral

RAM

Proces

Proces

Proces

Peripheral

IOMMU

OS

Peripheral

controle

iommu1
IOMMU

DeviceID

address

interrupt

IOTLB

hw device virtualization
HW Device Virtualization

VF4

PF: Physical Function

VF: Virtual Function

VF3

  • 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

Device

(virtualized)

VF2

VF1

PF

iommu interrupt remapping
IOMMU interrupt remapping

Randapparaten

INIT

Fixed & Arbitrated Interrupts

Lint1

SMI

NMI

Lint0

ExtInt

(block/pass)

(block/pass/remap)

IOMMU

INIT

Lint1

Fixed and Arbitrated

NMI

Lint0

ExtInt

Processor(s)

iommu gecontroleerd door vmm
IOMMU gecontroleerd door VMM

MMU

Peripheral

RAM

VM Guest 1

OS

Proces

VM 1

VM Guest 2

Proces

VM Guest 3

Peripheral

IOMMU

Peripheral

VMM

control

hardware io iommu
Hardware IO : IOMMU

Guest 3

Guest 2

Guest 1

Mngt VM

Guest 3

Guest 2

Guest 1

Mngt VM

VMM

IOMMU

VMM

shared

Direct device assignment

nic vmware example
NIC VMware Example

Guest OS(1)‏

Guest OS(2)‏

Guest OS(3)‏

Guest OS

Guest OS

Guest OS

DeviceDriver

DeviceDriver

DeviceDriver

3’

3

Device

Manager

VMM

Virtualization

Layer

I/OMMU

2’

2

VF

VF

VF

PF

1’

I/ODevice

1

PF = Physical Function, VF = Virtual Function

Packets for guest OS 2 and 3

Fixed Pass through I/O

NetQueue

overzicht5
Overzicht
  • Definities
  • Klassieke virtualiseerbaarheid
  • Virtualisatie
    • CVE
    • Geheugen
    • IO
      • Software
      • Hardware
  • Migratie
rationale voor vm migratie
Rationale voor VM migratie

VM-migratie faciliteert:

  • Hoge beschikbaarheid

B.v. Machineonderhoud

  • Belastingsspreiding

Xen

Xen

uitdagingen bij migratie
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
migratie algoritme
Migratie-algoritme

Selecteer een bestemming: host B

Stage 0: pre-migratie

Initialiseer een VM op host B, deel de storage

Stage 1: reservatie

Kopieer gebruikte pagina’s in diverse iteraties A  B

Stage 2: iteratieve pre-copy

Stop de VM op host A

Redirect netwerktraffiek

Synchroniseer resttoestand

Stage 3: stop-and-copy

Stage 4: commit

Activeer host B

VM state on host A released

impact van migratie
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
ad