De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Best9-1 Les 9: Virtualisatie All problems in computer science can be solved by another level of indirection... — David Wheeler … but that usually will."— Transcript van de presentatie:

1 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

2 best9-2 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Migratie

3 Virtualisatietypes VirtualisatieProcesvirtualisatieJVM.NET…SysteemvirtualisatieParavirtualisatie Volledige virtualisatie best9-3

4 Server Klassiek serverpark Besturings- systeem App best9-4

5 Virtual Machine Monitor (VMM) / Hypervisor Krachtige server Gevirtualisatie server Operating System Operating System Operating System Operating System App Sterke isolatie tussen domeinen… API: ~200 syscalls API: ~30 hypercalls Abstracte HW Gedeelde HW “abstractie, isolatie, delen” best9-5

6 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)

7 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) best9-7

8 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

9 best9-9 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Migratie

10 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

11 Klassieke virtualiseerbaarheid best9-11 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)

12 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

13 Trap-and-Emulate best9-13 Directe uitvoering (gebruiker) Geëmuleerde kerncode OS VMM Faults, systeemoproepen, onderbrekingen IRET, sysret Traces, faults, interrupts, I/O

14 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”) VMMType 2 (“hosted”) VMM

15 best9-15 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Migratie

16 x86 platform virtualisatie Network Controller Video controller Disk controller CPU text Memory PCI Bridge/ IOMMU text Virtual CPU CPU PCI bus NPIV Nested Paging SVM NPIV IOMMU PCI IOV Graphics Virtualization best9-16

17 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

18 Virtualisatie CVE In software –Simuleer de processor (traag) –Dynamisch binair herschrijven –Paravirtualisatie In hardware –Trap-and-emulate best9-18

19 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

20 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

21 VMware binaire herschrijver best9-21

22 Paravirtualisatie = statisch binair herschrijven best9-22 VMM Hardware Virtuele Machine OS_virt App gebruiker kern hypercalls

23 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

24 Hardwarevirtualisatie best9-24 VMM Hardware Virtuele Machine OS App gebruikersmode guestmode hostmode CPL3 CPL0 vmrunvmexit OS VMM Sensitieve instructie Emulatie Communicatie via VMCB datastructuur

25 Guest executes VMCB Hardwarevirtualisatie VMRUN vmrun vmexit 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

26 World switch Guest OS 1Guest OS 2 VMM vmrun vmexit vmrun vmexit “world switch” is heel duur Oplossingen: - Versnellen van world switch (cache, tlb, …) - Verminderen van de frequentie ervan best9-26

27 best9-27 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Migratie

28 x86 platform virtualisatie Network Controller Video controller Disk controller CPU text Memory PCI Bridge/ IOMMU text Virtual CPU CPU PCI bus NPIV Nested Paging SVM NPIV IOMMU PCI IOV Graphics Virtualization best9-28

29 best5-29 Geheugenvirtualisatie Proces 1 Proces VM Proces 1 Proces VM2 logisch (pseudo-) machine 0 20 Adres: pseudo-fysiek fysiek

30 Virtualisatie geheugen Software: schaduwpaginatabellen Hardware: Second level address translation –Intel: Extended Page Tables –AMD: Nested Page Tables Compressie van de geheugenvoetafdruk best9-30

31 best5-31 Schaduwpaginatabellen Proces 1 Proces Proces 1 Proces VM1 VM2 logisch(pseudo-)fysiek machine PTBR Paginatabel: schaduw

32 Schaduwpaginatabellen PTBR reference & dirty bits Guest OS VMM Hardware guest write guest read Logisch → Pseudo-fysiek Logisch → Machine Updates best9-32

33 # vmexit Schaduwpagina- tabellen In/out paginafouten hardwareonderbrekingen best9-33

34 64-bit adresvertaling best9-34

35 AMD Nested page tables best9-35

36 Volledige vertaling best9-36

37 Virtualisatie geheugen Software: schaduwpagina’s Hardware: Second level address translation –Intel: Extended Page Tables –AMD: Nested Page Tables Compressie van de geheugenvoetafdruk best9-37

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

39 Transparent Page Sharing best9-39

40 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-frame 2.indien SHA1(M 1 ) == SHA1(M 2 ): Zoek alle pagina’s die afbeelden op M 1 en M 2 en beeldt ze af op M1 Markeer alle pagina’s readonly Geef M2 vrij best9-40

41 best9-41

42 Memory Balloon Driver best9-42

43 best9-43

44 best9-44

45 best9-45

46 best9-46 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Software Hardware Migratie

47 x86 platform virtualisatie Network Controller Video controller Disk controller CPU text Memory PCI Bridge/ IOMMU text Virtual CPU CPU PCI bus NPIV Nested Paging SVM NPIV IOMMU PCI IOV Graphics Virtualization best9-47

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

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

50 IO-flessenhals VMMVMM RAMRAM PeripheralPeripheral PeripheralPeripheral PeripheralPeripheral MMUMMU VM Guest 3 VM Guest 2 VM Guest 1 Driver VM 0 Driver I/Orequests I/Orequests control best9-50

51 IOMMU ProcesProces ProcesProces OSOS RAMRAM PeripheralPeripheral PeripheralPeripheral PeripheralPeripheral ProcesProces MMUMMU IOMMUIOMMU controle best9-51

52 IOMMU best9-52 IOTLB DeviceID interrupt address

53 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 Device(virtualized)Device(virtualized) VF4VF4 VF3VF3 VF2VF2 VF1VF1 PFPF PF: Physical Function VF: Virtual Function best9-53

54 IOMMU interrupt remapping RandapparatenRandapparaten Processor(s)Processor(s) IOMMUIOMMU NMI NMI (block/pass) INIT INIT Lint0 Lint0 Lint1 Lint1 ExtInt ExtInt (block/pass/remap) Fixed and Arbitrated Fixed & Arbitrated Interrupts SMI best9-54

55 IOMMU gecontroleerd door VMM VM Guest 3 VM Guest 2 RAMRAM PeripheralPeripheral PeripheralPeripheral PeripheralPeripheral VM Guest 1 OSOSProcesProces ProcesProces VM 1 VMMVMM control IOMMUIOMMU MMUMMU best9-55

56 Hardware IO : IOMMU Guest 3 Guest 2 Guest 1 Mngt VM VMMVMM Guest 3 Guest 2 Guest 1 Mngt VM sharedshared IOMMUIOMMUVMMVMM best9-56 Direct device assignment

57 NIC VMware Example Guest 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 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-57

58 best9-58 Overzicht Definities Klassieke virtualiseerbaarheid Virtualisatie –CVE –Geheugen –IO Software Hardware Migratie

59 Rationale voor VM migratie VM-migratie faciliteert: –Hoge beschikbaarheid B.v. Machineonderhoud –Belastingsspreiding Xen best9-59

60 best9-60

61 best9-61

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

63 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 A Redirect netwerktraffiek Synchroniseer resttoestand Activeer host B VM state on host A released best9-63

64 Pre-Copy Migratie: Ronde 1 best9-64

65 Pre-Copy Migratie: Ronde 1 best9-65

66 Pre-Copy Migratie: Ronde 1 best9-66

67 Pre-Copy Migratie: Ronde 1 best9-67

68 Pre-Copy Migratie: Ronde 1 best9-68

69 Pre-Copy Migratie: Ronde 2 best9-69

70 Pre-Copy Migratie: Ronde 2 best9-70

71 Pre-Copy Migratie: Ronde 2 best9-71

72 Pre-Copy Migratie: Round 2 best9-72

73 Pre-Copy Migratie: Ronde 2 best9-73

74 Pre-Copy Migratie: checkpoint copy best9-74

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

76 best9-76

77 best9-77

78 Webserver Migratie best9-78

79 best9-79


Download ppt "Best9-1 Les 9: Virtualisatie All problems in computer science can be solved by another level of indirection... — David Wheeler … but that usually will."

Verwante presentaties


Ads door Google