Xen and the art of virtualization

Numerous systems have been designed which use virtualization to subdivide the ample resources of a modern computer. Some require specialized hardware, or cannot support commodity operating systems. Some target 100% binary compatibility at the expense of performance. Others sacrifice security or functionality for speed. Few offer resource isolation or performance guarantees; most provide only best-effort provisioning, risking denial of service.This paper presents Xen, an x86 virtual machine monitor which allows multiple commodity operating systems to share conventional hardware in a safe and resource managed fashion, but without sacrificing either performance or functionality. This is achieved by providing an idealized virtual machine abstraction to which operating systems such as Linux, BSD and Windows XP, can be ported with minimal effort.Our design is targeted at hosting up to 100 virtual machine instances simultaneously on a modern server. The virtualization approach taken by Xen is extremely efficient: we allow operating systems such as Linux and Windows XP to be hosted simultaneously for a negligible performance overhead --- at most a few percent compared with the unvirtualized case. We considerably outperform competing commercial and freely available solutions in a range of microbenchmarks and system-wide tests.

[1]  References , 1971 .

[2]  Love H. Seawright,et al.  VM/370 - A Study of Multiplicity and Usefulness , 1979, IBM Syst. J..

[3]  Peter H. Gum,et al.  System/370 Extended Architecture: Facilities for Virtual Machines , 1983, IBM J. Res. Dev..

[4]  Richard E. Kessler,et al.  Page placement algorithms for large real-indexed caches , 1992, TOCS.

[5]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[6]  B. R. Badrinath,et al.  I-TCP: indirect TCP for mobile hosts , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[7]  Sandeep K. Gupta,et al.  AVM: application-level virtual memory , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[8]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[9]  Robin Fairbairns,et al.  The Design and Implementation of an Operating System to Support Distributed Multimedia Applications , 1996, IEEE J. Sel. Areas Commun..

[10]  Scott Devine,et al.  Disco: running commodity operating systems on scalable multiprocessors , 1997, TOCS.

[11]  Margo I. Seltzer,et al.  Operating system benchmarking in the wake of lmbench: a case study of the performance of NetBSD on the Intel x86 architecture , 1997, SIGMETRICS '97.

[12]  Robert Grimm,et al.  Application performance and flexibility on exokernel systems , 1997, SOSP.

[13]  Prashant J. Shenoy,et al.  Cello: A Disk Scheduling Framework for Next Generation Operating Systems* , 1998, SIGMETRICS '98/PERFORMANCE '98.

[14]  Steven M. Hand,et al.  Self-paging in the Nemesis operating system , 1999, OSDI '99.

[15]  Ian Pratt,et al.  Xenoservers: accountable execution of untrusted programs , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[16]  David R. Cheriton,et al.  Borrowed-virtual-time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler , 1999, OPSR.

[17]  Peter Druschel,et al.  Resource containers: a new facility for resource management in server systems , 1999, OSDI '99.

[18]  Ragunathan Rajkumar,et al.  Portable RK: a portable resource kernel for guaranteed and enforced timing behavior , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[19]  Prashant J. Shenoy,et al.  Application performance in the QLinux multimedia operating system , 2000, ACM Multimedia.

[20]  Cynthia E. Irvine,et al.  Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor , 2000, USENIX Security Symposium.

[21]  Mendel Rosenblum,et al.  Cellular disco: resource management using virtual clusters on shared-memory multiprocessors , 2000, TOCS.

[22]  Marianne Shaw,et al.  Denali: Lightweight Virtual Machines for Distributed and Networked Applications , 2001 .

[23]  Keir Fraser,et al.  Arsenic: a user-accessible gigabit Ethernet interface , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[24]  Thiemo Voigt,et al.  SILK: Scout Paths in the Linux Kernel , 2001 .

[25]  Monica S. Lam,et al.  Optimizing the migration of virtual computers , 2002, OPSR.

[26]  Samuel T. King,et al.  ReVirt: enabling intrusion analysis through virtual-machine logging and replay , 2002, OPSR.

[27]  Marianne Shaw,et al.  Scale and performance in the Denali isolation kernel , 2002, OSDI '02.

[28]  Carl A. Waldspurger,et al.  Memory resource management in VMware ESX server , 2002, OSDI '02.

[29]  Mendel Rosenblum,et al.  The vMatrix: A Network of Virtual Machine Monitors for Dynamic Content Distribution , 2002 .

[30]  Alan L. Cox,et al.  Practical, transparent operating system support for superpages , 2002, OPSR.

[31]  Mahadev Satyanarayanan,et al.  Internet suspend/resume , 2002, Proceedings Fourth IEEE Workshop on Mobile Computing Systems and Applications.

[32]  Tal Garfinkel,et al.  Flexible OS Support and Applications for Trusted Computing , 2003, HotOS.

[33]  Keir Fraser,et al.  The Xenoserver computing infrastructure , 2003 .

[34]  Samuel T. King,et al.  Operating System Support for Virtual Machines , 2003, USENIX Annual Technical Conference, General Track.

[35]  Steven Hand,et al.  Controlling the XenoServer Open Platform , 2003, 2003 IEEE Conference onOpen Architectures and Network Programming..

[36]  David E. Culler,et al.  A blueprint for introducing disruptive technology into the Internet , 2003, CCRV.