Lecture 17: Virtual Machines Virtual Machine Monitors What Is a VMM? Why?

Lecture 17: Virtual Machines Virtual Machine Monitors What Is a VMM? Why?

Virtual Machine Monitors Lecture 17: ! Virtual Machine Monitors (VMMs) are everywhere u Industry commitment Virtual Machines » Software: VMware, Xen, Microsoft Virtual PC » Hardware: Intel VT, AMD-V " If Intel and AMD add it to their chips, you know it’s serious… CSE 120: Principles of Operating Systems u Academia: lots of VMM-based projects and papers Alex C. Snoeren ! An old idea, actually: developed by IBM in 60s and 70s ! Today u What is it, what problems have to be solved, how to solve them u Survey some virtualization systems u Briefly outline cool things you can do with virtualization HW 4 Due NOW CSE 120 – Lecture 17: Virtual Machines 2 What is a VMM? Why? ! We have seen that an OS already virtualizes ! Resource utilization u Syscalls, processes, virtual memory, file system, sockets, etc. u Machines today are powerful, want to multiplex their hardware u Applications program to this interface » e.g., ISP hosting can divvy up a physical machine to customers ! A VMM virtualizes an entire physical machine u Can migrate VMs from one machine to another without shutdown u Interface supported is the hardware ! Software use and development » OS defines a higher-level interface u Can run multiple OSes simultaneously u VMM provides the illusion that software has full control over the » No need to dual boot hardware (of course, VMM is in control) u Can do system (e.g., OS) development at user-level u VMM “applications” run in virtual machines (c.f., OS processes) ! Many other cool applications ! Implications u Debugging, emulation, security, speculation, fault tolerance… u You can boot an operating system in a virtual machine ! Common theme is manipulating applications/services at u Run multiple instances of an OS on same physical machine the granularity of a machine u Run different OSes simultaneously on the same machine u Specific version of OS, libraries, applications, etc., as package » Linux on Windows, Windows on Mac, etc. CSE 120 – Lecture 17: Virtual Machines 3 CSE 120 – Lecture 17: Virtual Machines 4 Rough VMM Model ! Fidelity ! VMM runs with privilege u OSes and applications work the same without modification u OS in VM runs at “lesser” privilege (think user-level) » (although we may modify the OS a bit) u VMM multiplexes resources among VMs ! Isolation ! Want to run OS code in a VM directly on CPU u VMM protects resources and VMs from each other u Think in terms of making the OS a user-level process ! Performance u What OS code can run directly, what will cause problems? u VMM is another layer of software…and therefore overhead ! Ideally, want privileged instructions to trap » As with OS, want to minimize this overhead u Exception vectors to VMM, it emulates operation, returns u VMware: u Nothing modified, running unprivileged is transparant » CPU-intensive apps: 2-10% overhead u Known as trap-and-emulate » I/O-intensive apps: 25-60% overhead ! Unfortunately on architectures like x86, not so easy CSE 120 – Lecture 17: Virtual Machines 5 CSE 120 – Lecture 17: Virtual Machines 6 Virtualizing the x86 Example architectures ! Ease of virtualization influenced by the architecture ! VMware ESX server uses hypervisor model u x86 is perhaps the last architecture you would choose u VMM runs at privilege,VMs run unprivileged u But it’s what everyone uses, so…that’s what we deal with u VMM provides hardware virtualization itself ! Issues ! VMware workstation uses hosted model u Unvirtualizable events u VMM runs unprivileged, » popf does not trap when it cannot modify system flags installed on base OS u u Hardware-managed TLB Relies upon base OS » VMM cannot easily interpose on a TLB miss (more in a bit) for device functionality u Untagged TLB » Have to flush on context switches (just a performance issue) ! Why Intel and AMD have added virtualization support CSE 120 – Lecture 17: Virtual Machines 7 CSE 120 – Lecture 17: Virtual Machines 8 Virtualizing Privileged Insts ! Exactly what you would expect ! OSes can no longer successfully execute privileged u CPU instructions u Events (exceptions and interrupts) u Virtual memory registers, interrupts, I/O, halt, etc. u Memory ! For those instructions that cause an exception u I/O devices u Trap to VMM, take care of business, return to OS in VM ! Isn’t this just duplicating OS functionality in a VMM? ! For those that do not… u Yes and no u VMware uses software virtualization u Approaches will be similar to what we do with OSes u Dynamic binary rewriting translates code executed in VM » Simpler in functionality, though (VMM much smaller than OS) » Rewrite privileged instructions with emulation code (may trap) u But implements a different abstraction u CPU only executes translated code » Hardware interface vs. OS interface u Incurs overhead, but can be well-tuned (small % hit) CSE 120 – Lecture 17: Virtual Machines 9 CSE 120 – Lecture 17: Virtual Machines 10 Virtualizing the CPU Virtualizing Events & I/O ! VMM needs to multiplex VMs on CPU ! VMM receives interrupts, exceptions u Needs to vector to appropriate VM u Craft appropriate handler invocation, emulate event registers ! How? Just as you would expect u Timeslice the VMs ! u Each VM will timeslice its OS/applications during its quantum OSes can no longer interact directly with I/O devices u VMWare Workstation: generic devices only (hosted) » E.g., AMD Lance chipset/PCNet Ethernet device ! Typically relatively simple scheduler » Load driver into OS in VM, OS uses it normally u Round robin, work-conserving (give unused quantum to other » Driver knows about VMM, cooperates to pass the buck to a real VMs) device driver (e.g., on underlying host OS) u VMware ESX Server: drivers run in VMM (hypervisor) CSE 120 – Lecture 17: Virtual Machines 11 CSE 120 – Lecture 17: Virtual Machines 12 Virtualizing Memory Shadow Page Tables ! OSes assume they have full control over memory ! Three abstractions of memory u Managing it: OS assumes it owns it all u Machine: actual hardware memory u Mapping it: OS assumes it can map any virtual page to any » 2 GB of DRAM physical page u Physical: abstraction of hardware memory managed by OS ! But VMM partitions memory among VMs » If a VMM allocates 512 MB to a VM, the OS thinks the computer u VMM needs to assign hardware pages to VMs has 512 MB of contiguous physical memory » (Underlying machine memory may be discontiguous) u VMM needs to control mappings for isolation » Cannot allow an OS to map a virtual page to any hardware page u Virtual: virtual address spaces you know and love 32 » OS can only map to a hardware page given to it by the VMM » Standard 2 address space ! ! Hardware-managed TLBs make this difficult In each VM, OS creates and manages page tables for u When the TLB misses, the hardware automatically walks the its virtual address spaces without modification page tables in memory u But these page tables are not used by the MMU hardware u As a result, VMM needs to control access by OS to page tables CSE 120 – Lecture 17: Virtual Machines 14 CSE 120 – Lecture 17: Virtual Machines 15 Shadow Page Tables (2) Shadow Page Tables (3) ! VMM creates and manages page tables that map virtual pages directly to machine pages u These tables are loaded into the MMU on a context switch u VMM page tables are the shadow page tables ! VMM needs to keep its V!M tables consistent with changes made by OS to its V!P tables u VMM maps OS page tables as read only u When OS writes to page tables, trap to VMM u VMM applies write to shadow table and OS table, returns u Also known as memory tracing u Again, more overhead… CSE 120 – Lecture 17: Virtual Machines 16 CSE 120 – Lecture 17: Virtual Machines 17 Memory Allocation Summary ! VMMs tend to have simple hardware memory ! VMMs multiplex virtual machines on hardware allocation policies u Export the hardware interface u Static: VM gets 512 MB of hardware memory for life u Run OSes in VMs, apps in OSes unmodified u No dynamic adjustment based on load u Run different versions, kinds of OSes simultaneously » OSes not designed to handle changes in physical memory… u No swapping to disk ! Intel and AMD are adding virtualization support ! More sophistication: Overcommit with balloon driver u Goal is to fully virtualize architecture u Balloon driver runs inside OS to consume hardware pages u Transparent trap-and-emulate approach now feasible » Steals from virtual memory and file buffer cache (balloon grows) u Echoes hardware support originally implemented by IBM u Gives hardware pages to other VMs (those balloons shrink) ! Identify identical physical pages (e.g., all zeroes) ! Lesson: Never underestimate the power of indirection u Map those pages copy-on-write across VMs CSE 120 – Lecture 17: Virtual Machines 18 CSE 120 – Lecture 17: Virtual Machines 19 Next Time Hardware Support ! We’ll review for the final ! Intel and AMD implement virtualization support in their latest x86 chips (Intel VT-x, AMD-V) ! Lab 3 due Tuesday night ! Direct execution model ! Final is Monday at 11:30, right here u New execution mode: guest mode » Direct execution of guest OS code, including privileged insts u Virtual machine control block (VMCB) » Controls what operations trap, records info to handle traps in VMM u New instruction vmrun enters guest mode, runs VM code u When VM traps, CPU executes new exit instruction u Enters VMM, which emulates operation CSE 120 – Lecture 17: Virtual Machines 20 CSE 120 – Lecture 17: Virtual Machines 21 Hardware Support (2) Xen ! Intel and AMD working on further hardware support ! Uses “paravirtualization” ! Memory u Fancy word for “we have to modify & recompile the OS” u Intel extended page tables (EPT), AMD nested page tables (NPT) u Since you’re modifying the OS, make life easy for yourself u Original page tables map virtual to (guest) physical pages u Create a VMM interface to minimize porting and overhead » Managed by OS in VM, backwards-compatible ! Xen hypervisor (VMM) implements interface » No need to trap to VMM when OS updates its page tables u VMM runs at privilege, VMs (domains) run unprivileged u New tables map physical to machine pages » Managed by VMM u Trusted OS (Linux) runs in own domain (Domain0) u Tagged TLB w/ virtual process identifiers (VPIDs) » Use Domain0 to manage system, operate devices, etc.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us