Jump to content

Xen

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Kcordina (talk | contribs) at 12:34, 21 June 2006 (Reverted edits by 202.72.148.102 (talk) to last version by Colonies Chris). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Xen
Developer(s)University of Cambridge
Repository
Operating systemLinux, and other Unix-like.
TypeVirtual machine monitor
LicenseGPL
Websitewww.cl.cam.ac.uk/Research/SRG/netos/xen/

Xen is an open-source virtual machine monitor for x86 that enables the execution of multiple guest operating systems on the same computer hardware. This form of virtualization is achieved using a technique called paravirtualization. It is developed by the University of Cambridge. It has a design goal of being able to run 100 full-featured operating system (OS) instances on a single typical computer. Xen provides secure isolation, resource control, quality-of-service guarantees, and live migration of virtual machines. Operating systems must be explicitly modified ("ported") to run on Xen (although compatibility is maintained for user applications). This enables Xen to achieve high-performance virtualization without special hardware support.

Use

Virtual machines are often used by IBM, HP, and others on mainframes and servers. They are also increasingly being used by Internet hosting service companies to provide virtual dedicated servers. The primary benefits to virtualization include extracting the most work possible from a single machine, and securing software programs through the use of separate virtual operating systems (similar to using a chroot jail, but more secure.) Virtualization can also be used to run different and incompatible operating systems on the same computer. Xen's support for virtual machine live migration allows workload balancing and the avoidance of downtime.

Comparison with other Virtual Machine Managers (VMMs)

  • Adeos is a hardware abstraction layer that can be loaded as a kernel module in Linux. It was developed to allow to load a real time kernel as a module, at the same time than Linux but with higher priority, and has not been used outside this original purpose.
  • Denali uses paravirtualisation to provide high-performance virtual machines on x86 computers. Denali's virtual machines support specialised minimal OSs for Internet services. The system can scale to thousands of virtual machines. Unlike Xen, Denali does not preserve the application binary interface (ABI), and so applications must be recompiled to run within a library operating system; in this sense it is similar to the Exokernel. Xen's motivation differs from that of Denali in that it is intended to run a moderate number of full-featured operating systems, rather than a large number of specialised, lightweight ones.
  • QEMU (the Quick Emulator) can act as both an emulator, or with the relevant kernel driver, a virtualizer. In virtualization mode it can run unmodified Operating Systems (including Windows) at similar speed to VMWare.
  • Virtuozzo replaces the hardware abstraction layer with a modified version enabling it to run with better performance of the OS, but forces all the VMs on a hardware box to all run the same OS, with some flexibility to support various Linux distributions on the same server. Currently they have a version for Windows 2003 and for Linux.
  • OpenVZ is the open source version of Virtuozzo.
  • VMware provides virtual machines for x86 that can run unmodified PC operating systems. The technology involved in doing this is complex and also incurs (sometimes significant) performance overheads. Xen trades full OS binary compatibility for comparative simplicity and improved performance. VMware is by far the most popular VMM for Windows virtualization.

Paravirtualization with Xen

Xen uses a technique called paravirtualization to achieve high performance (i.e., low performance penalties, typically around 2%, with worst-case scenarios at 8% performance penalty). Through paravirtualization, it can achieve high performance even on its host architecture (x86) which is notoriously uncooperative with traditional virtualization techniques. Unlike traditional virtual machine monitors, which provide a software-based execution environment exactly like the simulated hardware, Xen prior to version 3.0 and Intel VT-X support required the porting of guest operating systems to the Xen API. Thus far, this porting has happened for Plan 9 from Bell Labs, NetBSD, Linux, and FreeBSD. At Brainshare 2005, Novell showed a port of NetWare to Xen. A Windows XP port was carried out during the initial development of Xen, but Microsoft's licensing prevents its public release. Sun Microsystems is also actively working on a port of Solaris to Xen.

Full virtualization with Xen

Intel has contributed modifications to Xen to support their VT-X Vanderpool architecture extensions. This technology will enable unmodified guest operating systems to run within Xen virtual machines, if the host system supports the Vanderpool or the Pacifica extensions (Intel's, and AMD's, respectively, extensions to natively support virtualization). Practically, this will mean that there will be a performance boost, and that it will be possible to virtualise Windows without having to modify it in any way, which licensing restrictions prevent.

Virtual machine migration

Xen virtual machines can be "live migrated" between physical hosts without stopping them. During this procedure, the memory of the virtual machine is iteratively copied to the destination without stopping its execution. A very brief stoppage of around 60–300 ms is required to perform final synchronisation before the virtual machine begins executing at its final destination, providing an illusion of seamless migration. Similar technology is used to suspend running virtual machines to disk and switch to another virtual machine, and resume the first virtual machine at a later date.

Hardware architectures

Xen currently runs on x86, with P6 or newer processors, and x86 64 based systems. Ports are currently underway to IA64 and PPC. Ports for other platforms are also technically possible and may be available in the future.

Software platforms

Xen mainly runs with Linux as a host system and is the most supported platform. FreeBSD/NetBSD can also be used as FreeBSD 7-CURRENT (and 6-STABLE) supports the latest Xen version (version 3); NetBSD 3.0 can run Xen 2, an older version, although NetBSD-current also can run Xen 3. It's currently possible to run Windows as a guest operating system unmodified, using hardware virtualization provided by Intel's Vanderpool technology (only available in recent processors) or the upcoming AMD Pacifica. It is, however, impossible to use Windows (or indeed any fully-virtualised OS) as the "Domain 0" OS, and it is illegal to acquire a paravirtualised copy of Windows (a port of Windows XP to the Xen hypervisor did exist during early stages of development, but it was not possible for the developers to release the source code to these changes due to the license terms of the Windows XP source code.) [1]

Xen in Unix-like systems

Novell's SUSE Linux Professional 9.3, released April 15, 2005, includes Xen version 2.0.5c. The newly released SUSE Linux 10 ships with Xen 3 integrated with YAST Control center. Red Hat's Fedora Core 4 included Xen 2; Fedora Core 5 includes Xen 3. Xenophilia is a Linux distribution that is based around Xen. The Xen demo CD is a live ISO CD running Debian GNU/Linux that enables you to try Xen on your system without installing it to the hard disk. Debian also includes Xen packages, in unstable and experimentals (Packages for debian stable (Sarge) can be found on http://www.backports.org, though).

NetBSD 2.0 includes support for Xen 1.2, NetBSD 3.0 release includes support for Xen 2.0. Support for Xen 3.0 as a host (dom0) is available in NetBSD-current, and support as a guest (domU) was recently added to the NetBSD-3 tree [2].

FreeBSD does not yet support Xen (as of June 2006), but is being worked on [3].

OpenSolaris already has a BFU release for Xen. The source code and BFU archives can be dowloaded from The Xen Community On OpenSolaris

See also