Lecture 6 Xen and the Art of Virtualization

Lecture 6 Xen and the Art of Virtualization

Lecture 6 Xen and the Art of Virtualization Paul Braham, Boris Dragovic, Keir Fraser et al. Operating Systems Practical 6 November, 2013 OSP Lecture 6, Xen 1/38 Contents Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 2/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 3/38 Virtualization I creating multiple instances of virtual machines on a single I physical server I each virtual machine runs a separate operating system I host system - runs on the server I guest system - runs in the VMs OSP Lecture 6, Xen 4/38 Approaches I full virtualization: the virtual machine fully emulates the hardware such that the guest OS can be run unmodified on top of it (Parallels, VMware Workstation, VMware Server, Virtual PC, QEMU) I paravirtualization: the guest operating system needs to be modified, but the user applications need not OSP Lecture 6, Xen 5/38 Paravirtualization I Xen, VMware ESX Server I Benefits I x86 was not designed with virtualization support I some privileged instructions do not generate a trap I VMware ESX server rewrites guest OS code to insert the traps OSP Lecture 6, Xen 6/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 7/38 Xen I paravirtualization { offer a VM interface similar to the hardware but not identical I The ABI needs to remain unchanged I open-source I x86, x86-64, PPC I The host system is a modified Linux or NetBSD I Latest versions use Intel VT-x ¸siAMD Pacifica { able to run an unmodified guest OS OSP Lecture 6, Xen 8/38 Xen OSP Lecture 6, Xen 9/38 Glossary I Hypervisor or VMM (Virtual Machine Monitor): the host operating system (Linux or NetBSD) with Xen support I operates at a privilege level higher than supervisor I Domain: Xen VM I Guest OS: instance of a guest operating system running in a VM OSP Lecture 6, Xen 10/38 Interfacing with the VM I Memory management I CPU I Devices OSP Lecture 6, Xen 11/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 12/38 Memory management I No software managed TLB in x86 I TLB misses are served by the processor by walking the page tables I No tagged TLB (like on Alpha, MIPS, Sparc) I the tag can identify the address space: guest or host I any execution transfer requires a TLB flush I decisions I guest OSes are responsible with allocating and managing the page tables I Xen exists in a 64M address space at the top of every address space, thus avoiding TLB flushes when entering and leaving the hypervisor OSP Lecture 6, Xen 13/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 14/38 CPU I OS -> hypervisor -> hardware I The OS is no longer the entity with the highest priority I the OS runs at a lower priority level than the hypervisor I X86 has 4 rings, 4 levels of privilege I apps run in ring 3 I the OS runs in ring 1 I hypervisor in ring 0 I The OS cannot run privileged instructions, they are paravirtualized and run in Xen OSP Lecture 6, Xen 15/38 CPU - exceptions I Exceptions: memory faults, software traps, etc I They are virtualized by creating handler tables for all traps inside Xen I When an exception occurs while executing outside ring 0, Xen's handler creates a copy of the stack frame on the guest OS and returns execution to its handler I frequent exceptions: system calls and page faults I for system calls - every guest OS installs a direct handler I cannot be done for page faults - need to read CR2 for the fault address - need to be handled through Xen OSP Lecture 6, Xen 16/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 17/38 Devices I Xen exposes a set of clean device abstractions I information passing between domains is done through shared memory, asynchronous buffer-descriptor rings OSP Lecture 6, Xen 18/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 19/38 Management I The hypervisor exposes basic operations I Complex decisions are taken in management programs running in the guest OS I Domain0 is created at startup: I has access to control operations I creating and terminating other domains I physical memory allocation I scheduling parameters I access to device I/O I create virtual interfaces (VIF) and virtual block devices (VBD) OSP Lecture 6, Xen 20/38 Domains OSP Lecture 6, Xen 21/38 Transfer control I Hypercalls and events I hypercall I trap software in the hypervisor I equivalent to a syscall I example: request a set of page-table updates I communication from Xen to a domain is done through an asynchronous event mechanism { equivalent to interrupts I packet received from network I disk operation completed OSP Lecture 6, Xen 22/38 Data transfer I OS -> hypervisor -> device I/O I I/O buffer rings I a buffer ring contains I/O descriptors I data is not in the buffer rings, instead is allocated by the guest OS and referenced by the descriptor I producer-consumer pointers: I request producer (guest OS) - request consumer (Xen) I response producer (Xen) - response producer (guest OS) OSP Lecture 6, Xen 23/38 Asynchronous I/O rings OSP Lecture 6, Xen 24/38 Subsystem virtualization I CPU scheduling I Borrowed Virtual Time (BVT) I chosen because it has a special mechanism for low latency dispatch of a domain I Time I Xen offers guest OSes: I real time { nanoseconds since system boot I virtual time { advances when the domain is executing I wall-clock { offset to be added to real time OSP Lecture 6, Xen 25/38 Subsystem virtualization I address translation virtualization I VMWare provides each guest OS a separate virtual page table, not visible to the MMU I the hypervisors traps the access to this table and propagates the changes back and forth I overhead I Xen allows direct use of MMU accessible page tables I pages are marked read-only I updates are sent to Xen using a hypercall I for validation, physical frames have associated a usage counter and a type (exclusive values): PD, PT, LDT, GDT, RW I a physical frame cannot contain a page table and be also read write OSP Lecture 6, Xen 26/38 Physical memory virtualization I initial reservation specified at the time of domain's creation I maximum memory can be specified I use a "balloon driver" to pass memory pages back and forth OSP Lecture 6, Xen 27/38 Network I Xen offers a VFR (Virtual Firewall Router) I Each domain has one ore more VIFs in this router I Each interface has associated two buffer rings - transmit and receive I Each direction has rules associated for each direction: <pattern>, <action> I Domain0 adds and deletes rules I prevents IP spoofing I demultiplex based on destination, port I firewall OSP Lecture 6, Xen 28/38 Network (2) I Transmit I Guest OS enqueues a packet on the transmit ring I Xen copies the header and runs the transmit rules I round-robin packet scheduler I scatter-gather DMA for payload I Receive I Xen checks receive rules I destination VIF is determined I exchange the packet buffer with a physical frame in the receive ring I if no frame is available, packet is dropped OSP Lecture 6, Xen 29/38 The disk I Only domain0 has unlimited access to physical disks I The other domains access the disk through VBDs I VBDs are created by the management software running in domain0 I A VBD is accessed through the same I/O ring mechanism I The OS disk scheduling system reorders requests prior to enqueuing them I Xen also supports another pass of scheduling/reordering I VBDs are serviced round-robin OSP Lecture 6, Xen 30/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 31/38 Evaluation OSP Lecture 6, Xen 32/38 Evaluation - bandwidth OSP Lecture 6, Xen 33/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 34/38 Keywords I virtualization I hypercall I paravirtualization I virtual interfaces I host and guest OS I virtual block devices I domain I privilege level OSP Lecture 6, Xen 35/38 Resources I http://www.cl.cam.ac.uk/research/srg/netos/ papers/2003-xensosp.pdf I http://www.xen.org/ I http://en.wikipedia.org/wiki/Xen I http://en.wikipedia.org/wiki/Virtualization OSP Lecture 6, Xen 36/38 Outline Virtualization Xen Memory CPU Devices Management Evaluation Keywords Questions OSP Lecture 6, Xen 37/38 Questions ? OSP Lecture 6, Xen 38/38.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    38 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