Virtualization Operating Systems 2017 Danny Hendler Amnon Meisels

  • Slides: 55
Download presentation
Virtualization Operating Systems, 2017, Danny Hendler & Amnon Meisels 1

Virtualization Operating Systems, 2017, Danny Hendler & Amnon Meisels 1

What is virtualization? Creating a virtual version of something o Hardware, operating system, application,

What is virtualization? Creating a virtual version of something o Hardware, operating system, application, network, memory, storage “The construction of an isomorphism between a guest system and a host” [Popek, Goldberg, ’ 74] Operating Systems, 2017, Danny Hendler & Amnon Meisels 2

Example: virtual disk q Partition a single hard disk to multiple virtual disks o

Example: virtual disk q Partition a single hard disk to multiple virtual disks o Virtual disk has virtual tracks & sectors q Implement virtual disk by file q Map between virtual disk and real disk contents q Virtual disk write/read mapped to file write/read in host system 3

What is virtualization? (continued) q A way to run multiple operating systems and applications

What is virtualization? (continued) q A way to run multiple operating systems and applications on the same hardware (virtual machines) q Only virtual machine manager (a. k. a. hypervisor) has full system control q Virtual machines completely isolated from each other (or so we hope) Operating Systems, 2017, Danny Hendler & Amnon Meisels 4

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||)

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||) / Virtual Machine Monitor Operating Systems, 2017, Danny Hendler & Amnon Meisels 5

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||)

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||) / Virtual Machine Monitor Operating Systems, 2017, Danny Hendler & Amnon Meisels 6

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||)

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||) / Virtual Machine Monitor Operating Systems, 2017, Danny Hendler & Amnon Meisels 7

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||)

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||) / Virtual Machine Monitor Operating Systems, 2017, Danny Hendler & Amnon Meisels 8

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||)

Basic concepts q Virtual Machine (VM) q Host q Guest q Hypervisor (type ||) / Virtual Machine Monitor Operating Systems, 2017, Danny Hendler & Amnon Meisels 9

Types of virtualization q Full virtualization – guest OS runs unmodified q Para-virtualization –

Types of virtualization q Full virtualization – guest OS runs unmodified q Para-virtualization – guest OS must be aware of virtualization, source-code modifications required Hardware virtualization support may be used for both Our focus is on full virtualization Operating Systems, 2017, Danny Hendler & Amnon Meisels 10

Virtualization advantages q Cost-effectiveness – less hardware o Multiple virtual machines / operating systems

Virtualization advantages q Cost-effectiveness – less hardware o Multiple virtual machines / operating systems / services on single physical machine (server consolidation) o Various forms of computation as a service q Isolation o Good for security o Great for reliability and recovery: If VM crashes it can be rebooted, does not affect other services (fault containment) o VM migration q Development tool o Work on multiple OS in parallel o Develop and debug OS in user mode o Origins of VMware as a tool for developers Operating Systems, 2017, Danny Hendler & Amnon Meisels 11

Virtualization vs. Multi-Processing Process 1 Process 2 ∙∙∙ OS Multi-processing VM HW (disk, NIC,

Virtualization vs. Multi-Processing Process 1 Process 2 ∙∙∙ OS Multi-processing VM HW (disk, NIC, …) Pr 1 Pr 2 OS 1 Virtualization Pr 1 Pr 2 OS 2 User space/ kernel separation HW interface ∙∙∙ VMM/Hypervisor Virtual HW interface Real HW interface HW (disk, NIC, …) Operating Systems, 2017, Danny Hendler & Amnon Meisels 12

Type 1 and type 2 hypervisors VMware ESX, Microsoft Hyper-V, Xen VMware Workstation, Microsoft

Type 1 and type 2 hypervisors VMware ESX, Microsoft Hyper-V, Xen VMware Workstation, Microsoft Virtual PC, Sun Virtual. Box, QEMU, KVM Figure 7 -1. Location of type 1 and type 2 hypervisors. Operating Systems, 2017, Danny Hendler & Amnon Meisels 13

What's required of a (classic) hypervisor Hypervisor should provide the following: q Safety: have

What's required of a (classic) hypervisor Hypervisor should provide the following: q Safety: have full control of virtualized resources q Fidelity: program behavior on VM should be identical to its behavior on bare hardware q Efficiency: As much as possible, run directly on hardware without hypervisor intervention q Full interpretation isn't efficient Operating Systems, 2017, Danny Hendler & Amnon Meisels 15

Classic virtualization: trap and emulate VM 1 VM 2 VMM Return to process (3)

Classic virtualization: trap and emulate VM 1 VM 2 VMM Return to process (3) HW emulation HW Trap (1) Interrupt handler (2) Emulation is the process of implementing the functionality/interface of one system on a system having different functionality/interface 16

Trap and emulate: difficulties q Sensitive instructions: behave differently in kernel/supervisor and in user

Trap and emulate: difficulties q Sensitive instructions: behave differently in kernel/supervisor and in user mode q I/O instructions, enable/disable interrupts, … q Privileged instructions: cause a trap if executed in user mode Theorem [Popek and Goldberg, 1974] A machine can be virtualized [using trap and emulate] if every sensitive instruction is privileged. Not supported by x 86 processors prior to 2005 In 2005, Intel/AMD introduced virtualization HW support Operating Systems, 2017, Danny Hendler & Amnon Meisels 17

What is sensitive? q CPU – registers q MMU o Page table o Segments

What is sensitive? q CPU – registers q MMU o Page table o Segments q Interrupts q Timers q I/O devices Operating Systems, 2017, Danny Hendler & Amnon Meisels 18

X 86 virtualization problem I q The x 86 architecture (w/o virtualization extensions) cannot

X 86 virtualization problem I q The x 86 architecture (w/o virtualization extensions) cannot be virtualized by trap and emulate q Some sensitive instructions are not privileged q Example: the POPF instruction o Pops 16 bits from stack to the flags register o One of the flags masks (i. e. disables) interrupts o The instruction is not privileged o What happens if the OS of a VM runs POPF ? Operating Systems, 2017, Danny Hendler & Amnon Meisels 19

X 86 virtualization problem II q Some instructions: push, pop, mov can have code

X 86 virtualization problem II q Some instructions: push, pop, mov can have code segment selectors (cs, ds, ss) as arguments even in user mode, so they can be read q The selectors have two bits that are their current privilege level o x 86 (beginning with 386) has four privilege levels (ring 0 to ring 3) o The two lower bits of the cs register are the Current Privilege Level (CPL) of the code o Guest OS thinks that it is in ring 0 o Guest OS is actually in a higher ring q Result - guest OS confusion Operating Systems, 2017, Danny Hendler & Amnon Meisels 20

Implementation options q Emulation – o Full emulation – hypervisor executes code of VM

Implementation options q Emulation – o Full emulation – hypervisor executes code of VM step by step, testing each instruction – prohibitive overhead o Trap and emulate if sensitive instructions privileged instructions q Change sensitive instructions o Interpretation – equivalent to emulation (BOCHS, JSLinux) o Binary translation – change code on the fly (VMware, QEMU) q Para-virtualization – re-compile guest OS (XEN, Denali) q Hardware assistance – Intel VT-x and AMD-V (used by KVM, XEN, Vmware) Operating Systems, 2017, Danny Hendler & Amnon Meisels 21

Outline q Concepts, classical CPU virtualization o Binary interpretation q Memory virtualization 22

Outline q Concepts, classical CPU virtualization o Binary interpretation q Memory virtualization 22

Binary translation q Binary translation is the process of translating one instruction set to

Binary translation q Binary translation is the process of translating one instruction set to another one q Approach I: translate statically all code base o In our case the result is para-virtualization o Problems § Dynamically linked libraries are not known at compile time § Self-modifying code, e. g. program generating code and running it, is not covered Operating Systems, 2017, Danny Hendler & Amnon Meisels 23

Dynamic binary translation q Approach II: translate code on the fly (Just In Time)

Dynamic binary translation q Approach II: translate code on the fly (Just In Time) q Simplest approach o o Keep table mapping old instructions to new instructions Fetch old instruction Use table to translate Execute new instruction(s) q Problem: performance o Overhead for every instruction similarly to interpretation Operating Systems, 2017, Danny Hendler & Amnon Meisels 24

Dynamic BT with caching q Cache translated code region: o After translation run from

Dynamic BT with caching q Cache translated code region: o After translation run from cache o Translation occurs only once q Static translation cannot handle dynamic control transfer, when: o Jump depending on memory address o Indirect function call (by function pointer) q Translation of dynamic control transfer must be done at execution time Operating Systems, 2017, Danny Hendler & Amnon Meisels 25

Virtualization prior to HW support Figure 7 -4. Binary translation rewrites the guest operating

Virtualization prior to HW support Figure 7 -4. Binary translation rewrites the guest operating system running in ring 1, while the hypervisor runs in ring 0 26

VMWare binary translation: example C code Invo logg king is. P ing a r

VMWare binary translation: example C code Invo logg king is. P ing a r ll co ime(49), de tr ansla ted 64 -bit binary Binary (hex) representation Operating Systems, 2017, Danny Hendler & Amnon Meisels 27

VMWare binary translation: example q Translator reads guest memory at the address indicated by

VMWare binary translation: example q Translator reads guest memory at the address indicated by guest PC q Decodes instructions, creates Intermediate Representation - IR objects q Accumulates IR objects to translation units (TUs) o Basic blocks (BB), stops upon control flow First TU Compiled code fragment (CCF) Operating Systems, 2017, Danny Hendler & Amnon Meisels 28

VMWare binary translation: example q Translator reads guest memory at the address indicated by

VMWare binary translation: example q Translator reads guest memory at the address indicated by guest PC q Decodes instructions, creates Intermediate Representation - IR objects q Accumulates IR objects to translation units (TUs) o Basic blocks (BB), stops upon control flow First TU Identical code Compiled code fragment (CCF) Operating Systems, 2017, Danny Hendler & Amnon Meisels 29

VMWare binary translation: example q Translator reads guest memory at the address indicated by

VMWare binary translation: example q Translator reads guest memory at the address indicated by guest PC q Parses instructions, creates Intermediate Representation - IR objects q Accumulates IR objects to translation units (TUs) o Basic blocks (BB), stops upon control flow Translation of jump BB First TU Compiled code fragment (CCF) Operating Systems, 2017, Danny Hendler & Amnon Meisels 30

VMWare binary translation: example q Translator reads guest memory at the address indicated by

VMWare binary translation: example q Translator reads guest memory at the address indicated by guest PC q Parses instructions, creates Intermediate Representation - IR objects q Accumulates IR objects to translation units (TUs) o Basic blocks (BB), stops upon control flow Translation of fall through BB First TU Compiled code fragment (CCF) Operating Systems, 2017, Danny Hendler & Amnon Meisels 31

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P ing a r ll co ime(49), de tr ansla ted Which basic block will be translated next? Operating Systems, 2017, Danny Hendler & Amnon Meisels 32

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P ing a r ll co ime(49), de tr ansla ted Which basic block will be translated next? Operating Systems, 2017, Danny Hendler & Amnon Meisels 33

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P

VMWare binary translation: example C code 64 -bit binary Invo logg king is. P ing a r ll co ime(49), de tr ansla ted 34 Operating Systems, 2017, Danny Hendler & Amnon Meisels

VMWare binary translation example: output 35

VMWare binary translation example: output 35

VMWare binary translation example: output These continuations remain because respective basic blocks were not

VMWare binary translation example: output These continuations remain because respective basic blocks were not executed 36

VMWare binary translation operation q Translation cache (TC) stores translations done so far q

VMWare binary translation operation q Translation cache (TC) stores translations done so far q A hash table tracks the input to output correspondence q Chaining optimization allows one CCF to jump directly to another without calling out of the translation cache q As TC gradually captures guest's working set, proportion of translation decreases User code does not have to be translated Operating Systems, 2017, Danny Hendler & Amnon Meisels 37

Outline q Concepts, classical CPU virtualization o Binary interpretation q Memory virtualization 39

Outline q Concepts, classical CPU virtualization o Binary interpretation q Memory virtualization 39

Memory allocation q Each VM usually receives a contiguous set of physical addresses. o

Memory allocation q Each VM usually receives a contiguous set of physical addresses. o 512 Mbyte – 4 Gbyte are typical values q As far as VM is concerned, this is the physical memory of the machine q The guest OS allocates pages or segments to guest processes 40

Memory management q Assumptions of OS in VM: o Physical memory is a contiguous

Memory management q Assumptions of OS in VM: o Physical memory is a contiguous block of addresses from 0 to some n o OS can map any virtual page to any page frame q Hypervisor must: o Partition memory among VMs o Ensure virtual page mapping only to assigned page frames q TLB – page fault in HW-managed TLB (e. g. x 86) causes HW to select a page from page table q VM OS must not manage real page table 41

Option 1: brute force Define these pages as not R/W Guest OS Page dir.

Option 1: brute force Define these pages as not R/W Guest OS Page dir. CR 3 Hypervisor Page table VMM SW TLB VM memory layout Interrupt & VMM corrects address. CPU HW 42

Brute force – description q Guest page tables are read and write protected in

Brute force – description q Guest page tables are read and write protected in host system. q If guest OS reads page table (e. g. for page eviction) writes page table (e. g. after page fault), or changes CR 3, the system traps. q The hypervisor then uses a VM memory layout to: q Return answers to VM q Update the layout q Hypervisor switches VM memory layout when new VM is scheduled. 43

Option 2: shadow page tables Guest OS Page dir. Hypervisor Page table VMM SW

Option 2: shadow page tables Guest OS Page dir. Hypervisor Page table VMM SW G-CR 3 TLB CPU Shadow page table Interrupt & VMM corrects page table. HW 44

Shadow page tables – description q Hypervisor maintains “shadow page tables”. q Guest page

Shadow page tables – description q Hypervisor maintains “shadow page tables”. q Guest page tables map: Guest VA Guest PA q Shadow tables: Guest VA Host PA. q Hypervisor does not trap guest updates to its page table. o Result – inconsistent guest page table and shadow page table. q When guest process accesses virtual address o The physical address is not in the guest page table, but in the shadow page table. o HW translates correctly, because it is aware only of shadow tables. 45

Shadow page tables – description (continued) q If address in TLB – TLB hit

Shadow page tables – description (continued) q If address in TLB – TLB hit and no problem. q When guest process causes a page fault o Hypervisor begins execution. o Hypervisor updates guest page table with new page. o Hypervisor updates shadow page table. q Performance is as good as native execution as long as there are no page faults. q Shadow page tables should be cached so that once a VM is re-scheduled the page table does not have to be rebuilt from scratch. 46

Shadow page tables – page faults (continued) Two scenarios when handling a page fault.

Shadow page tables – page faults (continued) Two scenarios when handling a page fault. Hypervisor ``walks’’ guest page table to determine which it is. 1. Guest page fault – No translation in guest page tables ``inject’’ page fault for guest to handle 2. Guest translation found update shadow table respectively Operating Systems, 2017, Danny Hendler & Amnon Meisels 47

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow Real CR 3 Page Table Slide taken from a presentation by VMWare. Page Table 48

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow Real CR 3 Page Table Slide taken from a presentation by VMWare. Page Table 49

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow

Shadow page tables – updating CR 3 Virtual CR 3 Guest Page Table Shadow Real CR 3 Page Table Slide taken from a presentation by VMWare. Page Table 50

Undiscovered guest page table Virtual CR 3 Guest Page Table Shadow Guest Page Table

Undiscovered guest page table Virtual CR 3 Guest Page Table Shadow Guest Page Table Real CR 3 Page Table Slide taken from a presentation by VMWare. Page Table 51

Undiscovered guest page table Virtual CR 3 Guest Page Table Shadow Real CR 3

Undiscovered guest page table Virtual CR 3 Guest Page Table Shadow Real CR 3 Page Table Slide taken from a presentation by VMWare. Page Table 52

Option 3: nested page tables Guest OS Page dir. CR 3 Hypervisor Page table

Option 3: nested page tables Guest OS Page dir. CR 3 Hypervisor Page table VMM SW TLB Host page table CPU EPTP HW 53

Nested page tables - description q The name implies having page tables within page

Nested page tables - description q The name implies having page tables within page tables. q The essence of the idea is a hardware assist. o Hardware has an extra pointer and the ability to walk an extra set of page tables. o Idea is called Extended Page Tables (EPT) by Intel q Guest page tables hold Guest VA Guest PA mapping, access by standard CR 3 q Extended page tables hold Host VA Host PA mapping, access by EPTP (EPT pointer). q Host VA=Guest PA 54

Walking Nested page tables 55

Walking Nested page tables 55

Nested page tables – description (cont'd) q TLB as usual holds Guest VA Host

Nested page tables – description (cont'd) q TLB as usual holds Guest VA Host PA q On memory access o If found in TLB – no problem. o If not in TLB, but no page fault, hardware walks both tables and updates TLB. o If page fault, then hardware hypervisor gets host physical page and provides host virtual page (guest physical) to VM. 56

Sources q “Modern operating systems”, 4‘th edition, A. Tanenbaum and H. Bos q “Virtual

Sources q “Modern operating systems”, 4‘th edition, A. Tanenbaum and H. Bos q “Virtual machines”, J. E. Smith and R. Nair q A presentation by Niv Gilboa from CSE@BGU q “Formal requirements for virtualizable third generation architectures”, G. J. Popek and R. P. Goldberg, CACM, 1974 q “A comparison of software and hardware techniques for x 86 virtualization”, K. Adams and O. Ageson, ASPLOS 2006 q A presentation by VMWare Operating Systems, 2017, Danny Hendler & Amnon Meisels 57