virtual machines
play

Virtual Machines Philipp Koehn 30 April 2018 Philipp Koehn - PowerPoint PPT Presentation

Virtual Machines Philipp Koehn 30 April 2018 Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018 Basic Idea 1 Run multiple instances of full operating systems on a machine Example: run Windows and Linux on a


  1. Virtual Machines Philipp Koehn 30 April 2018 Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  2. Basic Idea 1 • Run multiple instances of full operating systems on a machine • Example: run Windows and Linux on a Mac • Not to be confused with Java Virtual Machines Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  3. 2 Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  4. Snapshots 3 • Freeze copy of a virtual machine • Copy of file system and memory Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  5. Migration 4 • Migration: move a VM to another host (maybe because of spike of VM usage overloads current machine) • Steps – take snapshot (fast) – copy all pages of snapshot (not so fast) – copy modified pages (fast) – freeze virtual machine and copy VM memory • Very fast, fractions of a second Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  6. Why? 5 • Better resource utilization: sharing of a single computer among several users • Isolation and security in clouds • Security limitations of standard operating systems • Faster processors make overhead acceptable Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  7. History 6 • Virtual machines popular in mainframes in 1970s • Not on "personal computer" Intel x86 for a long time • First x86 virtualization: VMWare 1999 • Intel and AMD added hardware support 2005/2006 • Used in cloud computing (e.g., Amazon web services) Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  8. 7 basics Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  9. Virtual Machine Monitor 8 • Host machine runs a regular operating system • Virtual machine monitor (VMM) – runs as a process of the operating system – has privileged access to CPU • VMM runs other operating systems (guest machine) – manages their access to hardware – intercepts exceptions and interrupts Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  10. Virtual Machine Monitor 9 Normal OS Kernel exec syscall Process Process Process Process Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  11. Virtual Machine Monitor 10 Virtual Machine VMM exec … Kernel Kernel exec syscall Process Process Process Process Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  12. Basic Functions of Operating System 11 • User mode – process runs in own virtual memory – makes systems calls to kernel • Kernel mode – manages processes – handles interrupts and exceptions e.g., page faults • Hardware supports this with "privileged" mode for instructions e.g., allow access to physical memory Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  13. User Processes 12 • Run already in "virtual mode" • Memory access is channeled through virtual memory • Device interactions are handled by kernel via system calls ⇒ Very little overhead when running inside virtual machine (unless very I/O intensive) Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  14. Interrupt Handling 13 • VMM controls access to – privileged CPU state – input/output devices – exceptions – interrupts • "Trap and emulate" VMM catches exceptions and directs them to the right guest Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  15. Traps 14 Normal OS Kernel exception exec interrupt syscall Process Process Process Process Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  16. Virtual Machine Monitor Catches Traps 15 Virtual Machine VMM exec … exception Kernel Kernel interrupt syscall exec Process Process Process Process Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  17. 16 emulation Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  18. Emulation 17 • Binary translation • Shaddowing • Device emulation Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  19. Binary Translation 18 • Some instructions require supervisor mode – access to physical memory – handling interrupt flags • Raw kernel code instructions need to be translated i.e., rewritten into user mode instructions • This is tricky... Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  20. Shadowing 19 • Guest kernel data structures need to be duplicated by VMM • Example: page tables of virtual memory – VMM maintains copy of page tables – traps access attenpts – emulating them instead in software • VMM tracks changes by guest kernel Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  21. Device Emulation 20 • Kernel accesses devices directly, e.g., – network adapter – disk – keyboard – video/audio i/o • VMM talks directly to these • Guest OS interactions with hardware have to go through VMM • Guest OS has access only to generic devices Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  22. Hardware Support 21 • Intel and AMD implement virtualization support for x86 • Direct execution model – new execution mode: guest mode → direct execution of guest OS code incl. privileged instructions – virtual machine control block (VMCB) → controls what operations trap records info to handle traps in VMM • Steps – new instruction "vmrun" enters guest mode, runs VM code – when VM traps, CPU executes new "exit" instruction – enters VMM, which emulates operation Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  23. 22 shadow page tables Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  24. Virtualizing Memory 23 • OS assumes it has full control over memory – managing it: OS assumes it owns it all – mapping it: OS assumes it can map to any physical page • VMM partitions memory among VMs – VMM needs to assign hardware pages to VMs – VMM needs to control mappings for isolation → OS can only map to a hardware page given to it by the VMM Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  25. Additional Abstraction 24 • Three abstractions of memory machine: actual hardware memory, e.g., 16 GB of DRAM physical: abstraction of hardware memory managed by OS - VMM allocates 2 GB to a VM → OS thinks the computer has 2 GB of contiguous physical memory - note: underlying machine memory may be discontiguous virtual: virtual address spaces of process (48 bit → 256TB) • Guest OS creates and manages page tables but: these page tables are not used by the MMU hardware Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  26. Address Translation 25 Guest Virtual Guest Physical Machine Memory Guest A Guest B Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  27. Shadow Page Tables 26 • VMM manages page tables that map virtual pages to machine pages ("shadow page tables") • These tables are loaded into the MMU on a context switch • VMM needs to keep its V → M tables consistent with changes made by OS to its V → P tables – VMM maps OS page tables as read only – when OS writes to page tables, trap to VMM – VMM applies write to shadow table and OS table, returns Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  28. Hardware Support 27 • Intel extended page tables (EPT), AMD nested page tables (NPT) • Original page tables map virtual to (guest) physical pages – Managed by OS in VM, backwards-compatible – No need to trap to VMM when OS updates its page tables • New tables map physical to machine pages: Managed by VMM • Translation lookup buffer (TLB) – tagged TLB w/ virtual process identifiers (VPIDs) – tag VMs with VPID, no need to flush TLB on VM/VMM switch Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  29. 28 containers Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  30. Deploying Services 29 • Often the goal is to deploy complex software applications • Many dependencies: specific versions of libraries • Example: "web service" answers HTTP request to fulfill complex tasks • One solution: virtual machine – package all the software into a virtual machine – deployment: run virtual machine – but: relatively large overhead (runs entire operating system) • Light-weight solution: containers Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  31. Docker Containers 30 • One (host) operating system • Containers include application and all dependencies • But share the kernel with other containers • Each containers runs as isolated process in user space • Initial release of open source software in 2013 Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

  32. Containers vs. Virtual Machine 31 Philipp Koehn Computer Systems Fundamentals: Virtual Machines 30 April 2018

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend