Les 9 virtualisatie
This presentation is the property of its rightful owner.
Sponsored Links
1 / 79

Les 9: Virtualisatie PowerPoint PPT Presentation


  • 73 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Les 9: Virtualisatie

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


Virtualisatietypes

Virtualisatietypes


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


    Vmware binaire herschrijver

    VMware binaire herschrijver


    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


    64 bit adresvertaling

    64-bit adresvertaling


    Amd nested page tables

    AMD Nested page tables


    Volledige vertaling

    Volledige vertaling


    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


  • Transparent page sharing

    Transparent Page Sharing


    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.


    Les 9 virtualisatie

    best9-41


    Memory balloon driver

    Memory Balloon Driver


    Les 9 virtualisatie

    best9-43


    Les 9 virtualisatie

    best9-44


    Les 9 virtualisatie

    best9-45


    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


    Les 9 virtualisatie

    best9-60


    Les 9 virtualisatie

    best9-61


    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


    Pre copy migratie ronde 1

    Pre-Copy Migratie: Ronde 1


    Pre copy migratie ronde 11

    Pre-Copy Migratie: Ronde 1


    Pre copy migratie ronde 12

    Pre-Copy Migratie: Ronde 1


    Pre copy migratie ronde 13

    Pre-Copy Migratie: Ronde 1


    Pre copy migratie ronde 14

    Pre-Copy Migratie: Ronde 1


    Pre copy migratie ronde 2

    Pre-Copy Migratie: Ronde 2


    Pre copy migratie ronde 21

    Pre-Copy Migratie: Ronde 2


    Pre copy migratie ronde 22

    Pre-Copy Migratie: Ronde 2


    Pre copy migratie round 2

    Pre-Copy Migratie: Round 2


    Pre copy migratie ronde 23

    Pre-Copy Migratie: Ronde 2


    Pre copy migratie checkpoint copy

    Pre-Copy Migratie: checkpoint copy


    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


    Les 9 virtualisatie

    best9-76


    Les 9 virtualisatie

    best9-77


    Webserver migratie

    Webserver Migratie


  • Login