Jump to content

Xen

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Marevoula (talk | contribs) at 08:05, 31 May 2012. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Original author(s)Ian Pratt
University of Cambridge Computer Laboratory
Developer(s)The Xen Project
XenSource, Inc.
Initial release2003 (2003)
Stable release
4.1.2[1] / 21 October 2011; 13 years ago (2011-10-21)
Repository
Operating systemLinux, and other Unix-like, *BSD, OpenSolaris as both hosts and guests; Microsoft Windows as a guest OS.
TypeVirtual machine monitor
LicenseGNU GPL v2
Websitewww.xen.org

Xen (pronounced /ˈzɛn/) is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently.

The University of Cambridge Computer Laboratory developed the first versions of Xen. Since 2010, the Xen community develops and maintains Xen as free software, licensed under the GNU General Public License (GPLv2). Xen is available for the IA-32, x86-64, Itanium and ARM computer architectures.

In Xen systems the Xen hypervisor is the lowest and most privileged software layer.[2] This layer supports one or more guest operating systems, scheduled on the physical CPUs. The first guest operating system, called in Xen terminology domain 0 (dom0) is executed automatically when the hypervisor boots and receives special management privileges and direct access to all physical hardware by default. The system administrator can log into dom0 in order to manage any additional guest operating systems, called user domains (domU) in Xen terminology.

The dom0 domain is typically a modified version of Linux, NetBSD or Solaris. User domains may either be unmodified copies of open-source or proprietary operating systems, such as Microsoft Windows, if the host processor supports x86 virtualization, (e.g., Intel VT-x and AMD-V),[3] or modified, para-virtualized operating system with special drivers that support enhanced Xen features.

History

Xen originated as a research project at the University of Cambridge, led by Ian Pratt, senior lecturer at Cambridge and founder of XenSource, Inc. This company now supports the development of the free software project and also sells enterprise versions of the software. The first public release of Xen occurred in 2003. Citrix Systems acquired XenSource, Inc in October 2007 and subsequently renamed Xensource's products under the Citrix brand:

  • XenExpress became "XenServer Express Edition" and "XenServer OEM Edition" (embedded hypervisor)
  • XenServer became "XenServer Standard Edition"
  • XenEnterprise became "XenServer Enterprise Edition"

Subsequently the product lines have been renamed XenServer (Free), Essentials for XenServer Enterprise, and Essentials for XenServer Platinum.

On 22 October 2007, Citrix Systems completed its acquisition of XenSource,[4] and the Xen project moved to http://www.xen.org/. This move had started some time previously, and made public the existence of the Xen Project Advisory Board (Xen AB), which had members from Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems and Oracle. The Xen AB charter assigns it oversight of the project's code-management procedures, and with development of a new trademark policy for the Xen mark, which Citrix intends to freely license to all vendors and projects that implement the Xen hypervisor; the Xen AB will have sole responsibility for the requirements of licensing.[citation needed]

On 21 October 2009, Citrix further announced their non-commercial XenServer would be fully open-source and made freely available to the public under the name Xen Cloud Platform (XCP).[5] Simon Crosby, CTO of Virtualization and Management division at Citrix, stated: "XenServer is 100% free, and also shortly fully open sourced. There is no revenue from it at all."

The "Free Edition" comes free of charge but requires activation.[6] This activation must be renewed annually.[7]

The product lines were renamed in Spring 2010[8]:

  • XenServer [Free edition]
  • XenServer Advanced Edition
  • XenServer Enterprise Edition
  • XenServer Platinum Edition

Release history

Version Release date Notes
1.0 2003-10-02[9][10]
2.0 2004-11-05[11]
3.0 2005-12-05[12][13]

The releases up to 3.0.4 also added:

3.1 2007-05-18[17] Live migration for HVM guests, XenAPI
3.2 2008-01-17[18] PCI passthrough and ACPI S3 standby mode for the host system.
3.3 2008-08-24[19] Improvements for the PCI passthrough and the power management.
3.4 2009-05-18[20] Contains a first version of the "Xen Client Initiative", shortly XCI.
4.0 2010-04-07[21] Makes it possible to use a dom0 Linux kernel, which has been implemented by using PVOps. A Linux kernel of version 2.6.31 has been modified for this purpose, because the official Linux kernel actually doesn't support the usage as dom0 kernel (date July 2010).[22]
4.1 2011-03-25[23] Some of the improvements: Support for more than 255 processors, better stability. Linux kernel v2.6.37 and onward support usage as dom0 kernel ([24]).

Uses

Virtual machine monitors (also known as hypervisors) often operate on mainframes and large servers running IBM, HP, and other systems. Internet hosting service companies increasingly use hypervisors to provide virtual private servers. Amazon EC2, Fujitsu Global Cloud Platform,[25] Linode, and Rackspace Cloud use Xen as the VM hypervisor.[26]

Server virtualization can provide benefits such as:

  • consolidation
  • increased utilization
  • rapid provisioning
  • dynamic fault tolerance against software failures (through rapid bootstrapping or rebooting)
  • hardware fault tolerance (through migration of a virtual machine to different hardware)
  • the ability to securely separate virtual operating systems
  • the ability to support legacy software as well as new OS instances on the same computer
  • ability to emulate Android OS

Xen's support for virtual machine live migration from one host to another allows workload balancing and the avoidance of downtime.

Virtualization also has benefits when working on development (including the development of operating systems): running the new system as a guest avoids the need to reboot the physical computer whenever a bug occurs. Sandboxed guest systems can also help in computer-security research, allowing study of the effects of some virus or worm without the possibility of compromising the host system.

Finally, hardware appliance vendors may decide to ship their appliance running several guest systems, so as to be able to execute various pieces of software that require different operating systems.

Xen can run as a virtualization platform, such as Citrix XenServer Enterprise Edition (formerly XenSource's XenEnterprise), or embedded within the host operating system. As an example of the latter configuration, note the inclusion of Xen in:

In 2007, XenSource announced that Dell would incorporate Citrix XenServer OEM Edition as an embedded hypervisor installed in flash memory as an option on all PowerEdge servers, early in 2008.[27] By May 2010 however, Citrix and their OEM partners (including Dell) decided to retire the flash memory embedded OEM XenServer editions. Only the XenServer 5.6 Retail Edition is available for PowerEdge servers from Dell. Customers currently running the Dell OEM XenServer 5.5 edition (or earlier) can upgrade to preserve their virtual machines' configuration data.[28]

XenSource has also started developing a compatibility layer for Windows Server 2008 hypervisor, so that systems modified to run as Xen guests will also function on the 2008 hypervisor.[29]

Technology

Types of virtualization

Paravirtualization, requiring porting of guest systems

On most CPUs, Xen uses a form of virtualization known as paravirtualization, meaning that guests run a modified operating system using a special hypercall ABI instead of certain architectural features. Through paravirtualization, Xen can achieve high performance even on its host architecture (x86) which has a reputation for non-cooperation with traditional virtualization techniques.[30][31]

On x86, the Xen host kernel code runs in Ring 0, while the hosted domains run in Ring 1 or in Ring 3.

Hardware-assisted virtualization, allowing for unmodified guests

Both Intel and AMD have contributed modifications to Xen to support their respective Intel VT-x and AMD-V architecture extensions.[32] Though these technologies differ quite substantially in their implementation and instruction sets, Xen manages them via a common abstraction layer, enabling unmodified guest operating systems to run within Xen virtual machines, starting with Xen 3.0.

This development allows the virtualization of proprietary operating systems (such as Microsoft Windows), since the guest system's kernel does not require modification when the host runs on Intel VT-x or AMD-V hardware.

Hardware-assisted virtualization (HVM) offers new instructions to support direct calls by a paravirtualized guest/driver into the hypervisor, typically used for I/O or other so-called hypercalls. It also provides additional execution modes: "root mode" and "non-root mode". Both of these modes have Rings 0-3; the Xen host operates in root mode and has access to the real hardware, while the unmodified guest operates in Rings 0-3 of non-root mode, with its "hardware" accesses under complete control of the hypervisor.

Xen-HVM has device emulation based on the QEMU project to provide I/O virtualization to the virtual machines. The system emulates hardware via a patched QEMU "device manager" (qemu-dm) daemon running as a backend in dom0. This means that the virtualized machines see as hardware: a PIIX3 IDE (with some rudimentary PIIX4 capabilities), Cirrus Logic or vanilla VGA emulated video, RTL8139 or NE2000 network emulation, PAE, and somewhat limited ACPI and APIC support and no SCSI emulation.[33]

Xen 3.0.2 supports the following unmodified guests:

  • certain versions of Microsoft Windows (including Windows XP)
  • Linux.

Virtual machine migration

Administrators can "live migrate" Xen virtual machines between physical hosts across a LAN without loss of availability. During this procedure, the LAN iteratively copies the memory of the virtual machine to the destination without stopping its execution. The process requires a stoppage of around 60–300 ms to perform final synchronization before the virtual machine begins executing at its final destination, providing an illusion of seamless migration. Similar technology can serve to suspend running virtual machines to disk and switch to another virtual machine, resuming the first virtual machine at a later date.

Host: Unix-like systems

Xen under Linux runs on x86, with Pentium II or newer processors, x86-64 based systems, as well as on IA-64 and PowerPC. Xen supports up to 64-way symmetric multiprocessing. Xen boots from a bootloader such as GNU GRUB, and then usually loads a modified host operating system into the host domain (dom0). As of 2009, most Linux distributions had included Xen packages to interact with the Xen hypervisor and start additional domains, but because Xen was not accepted into the mainline Linux kernel and installation required several kernel patches, some distros such as Red Hat Enterprise Linux 6 and Ubuntu 8.10 dropped out-of-the-box support for dom0 in subsequent releases. With the inclusion of the most significant parts of Xen in the Linux 2.6.37 mainline kernel in early 2011, several distributions are again considering dom0 support.[34][35] Version 3.0 of the Linux kernel supports dom0 and domU in the mainline kernel.[36]

  • Novell's SUSE Linux Enterprise Server release 10 pioneered the first commercial implementation of Xen in this form.
  • Red Hat Enterprise Linux 5 also offers support for Xen, but in RHEL 6 there is no support for dom0.
  • Fedora has host support for Xen from the FC4 to Fedora 8 releases, but as of September  2010 Fedora does not support dom0.[37]
  • Ubuntu included Xen packages from Ubuntu 8.04 (Hardy Heron), supporting Xen versions 3.2 and 3.1.[38] Note however that Ubuntu does not include or support a dom0-capable kernel from Intrepid Ibex (Ubuntu 8.10) onward.[39][40]
  • Debian includes Xen 4.0.1 in its stable release 6.0 (codename "Squeeze"), and Xen 3.2.1 in its oldstable release 5.0 (codename "Lenny").
  • Gentoo and Arch Linux both have packages available to support Xen.[41][42]
  • openSUSE 10.x and 11.x includes Xen 3.1 support. YaST and virt-man offer graphical VM management.[43]
  • OpenSolaris-based distributions can function as dom0 and domU from Nevada build 75 onwards.
  • As of 2009 support for OpenBSD self-hosting required the correction of a lock-up bug before its release.[44]
  • NetBSD 3.x. includes host support for Xen 2, with host support for Xen 3.0 available from NetBSD 4.0.[45]

Resource limits

Xen can take advantage of no more than 100 para-virtualized block devices per host.[46] In addition some Operating Systems such as OpenSuse have supported limits.[47] Xen 4.1 on openSUSE can take advantage of 64 physical CPUs, 2 TB RAM and 64 VMs per server.

Guests

Unix-like systems as guests

Guest systems can run fully virtualized (which requires hardware support) or paravirtualized (which requires a modified guest operating system). The following systems have patches allowing them to operate as paravirtualized Xen guests:

Microsoft Windows systems as guests

Xen version 3.0 introduced the capability to run Microsoft Windows as a guest operating system unmodified if the host machine's processor supports hardware virtualization provided by Intel VT-x (formerly codenamed Vanderpool) or AMD-V (formerly codenamed Pacifica).

During the development of Xen 1.x, Microsoft Research, along with the University of Cambridge Operating System group, developed a port of Windows XP to Xen — made possible by Microsoft's Academic Licensing Program. The terms of this license do not allow the publication of this port, although documentation of the experience appears in the original Xen SOSP paper.[48]

James Harper and the Xen open-source community have started developing GPL'd Paravirtualisation drivers for Windows. These provide front-end drivers for the Xen block and network devices, and allow much higher disk and network performance for Windows systems running in HVM mode. Without these drivers all disk and network traffic has to be processed through QEMU-DM.

Other guests

The Haskell lightweight virtual machine (HalVM) allows running Haskell programs directly under the Xen hypervisor with no intervening operating system. It implements its own file system and network stack written in Haskell, above a thin C interface layer connecting the Haskell runtime system to Xen.

Xen Management Consoles

Third-party developers have built a number of tools (known as Xen Management Consoles) to facilitate the common tasks of administering a Xen host, such as configuring, starting, monitoring and stopping of Xen guests. Examples include:

Novell's PlateSpin Orchestrate also manages Xen virtual machines for Xen shipping in SUSE Linux Enterprise Server.

Commercial implementations

See also

References

  1. ^ http://blog.xen.org/index.php/2011/10/21/xen-4-1-2-and-4-0-3-released/
  2. ^ Xen 3.0 User Manual
  3. ^ Xen OS Compatibility
  4. ^ "Citrix Systems » Citrix Completes Acquisition of XenSource". Citrix Systems. 2007-07-12.
  5. ^ http://www.virtualization.info/2009/10/citrix-to-fully-open-source-xenserver.html
  6. ^ "Citrix XenServer Activation Form". Citrix Systems, Inc. Retrieved 2012-04-02. If you wish to continue to use XenServer after this 30 day period, you will need to [...] activate your Free XenServer.
  7. ^ "CTX123999 - How to Renew Free XenServer licenses". Citrix Systems, Inc. 2010-01-25. Retrieved 2012-04-02. Citrix asks for annual re-activation
  8. ^ "XenServer features by edition". Citrix Systems.
  9. ^ http://sourceforge.net/mailarchive/message.php?msg_id=5533663
  10. ^ http://lwn.net/Articles/52033/
  11. ^ http://lwn.net/Articles/109789/
  12. ^ http://lwn.net/Articles/162841/
  13. ^ http://web.archive.org/web/20051210024853/http://www2.getxen.com/news/pr120505b.html
  14. ^ http://lists.xensource.com/archives/cgi-bin/mesg.cgi?a=xen-users&i=A95E2296287EAD4EB592B5DEEFCE0E9D4BA296%40liverpoolst.ad.cl.cam.ac.uk
  15. ^ http://lists.xensource.com/archives/html/xen-devel/2006-10/msg00733.html
  16. ^ http://lists.xensource.com/archives/html/xen-devel/2006-12/msg00889.html
  17. ^ http://lists.xensource.com/archives/html/xen-announce/2007-05/msg00002.html
  18. ^ http://vmblog.com/archive/2008/01/17/xen-3-2-0-officially-released.aspx
  19. ^ http://www.h-online.com/newsticker/news/item/Xen-3-3-0-hypervisor-ready-for-download-737027.html
  20. ^ http://community.citrix.com/display/ocb/2009/05/18/Xen.org+Announces+Release+of+Xen+3.4+Hypervisor
  21. ^ http://www.h-online.com/open/news/item/Virtualisation-Xen-is-looking-to-catch-up-by-releasing-version-4-974405.html
  22. ^ http://www.xen.org/files/Xen_4_0_Datasheet.pdf
  23. ^ http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/
  24. ^ http://wiki.xensource.com/xenwiki/XenParavirtOps
  25. ^ Suzanne Tindal (2011-02-28). "Fujitsu's global cloud launches in Aus". ZDNet Australia.
  26. ^ About The Rackspace Cloud
  27. ^ Dell and Citrix Partner to Simplify Virtualization Technology, 23 October 2007
  28. ^ Migrating from OEM Editions of XenServer 5.5 to XenServer 5.6, Created: May 27, 2010; Updated: May 26, 2011
  29. ^ Microsoft Press Release, 16 July 2006
  30. ^ Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
  31. ^ Gil Neiger, Amy Santoni, Felix Leung, Dion Rodgers, Rich Uhlig. Intel Virtualization Technology: Software-only virtualization with the IA-32 and Itanium architectures, Intel Technology Journal, Volume 10 Issue 03, August 2006.
  32. ^ Extending Xen with Intel Virtualization Technology, intel.com
  33. ^ Demystifying Xen HVM
  34. ^ "Linux 2.6.37: first upstream Linux kernel to work as Dom0". blog.xen.org. 2011-01-14. Retrieved 2011-04-03.
  35. ^ "Kernel development". LWN.net. 2010-11-01. Retrieved 2011-04-03.
  36. ^ http://blog.xen.org/index.php/2011/06/02/xen-celebrates-full-dom0-and-domu-support-in-linux-3-0/
  37. ^ http://fedoraproject.org/wiki/Archive:Tools/Xen
  38. ^ https://help.ubuntu.com/community/Xen
  39. ^ http://web.archiveorange.com/archive/v/UsR4nzBeS5vYtX5ylWMY
  40. ^ https://help.ubuntu.com/community/Xen#Ubuntu's Support of Xen
  41. ^ http://packages.gentoo.org/package/xen
  42. ^ http://aur.archlinux.org/packages.php?ID=14640
  43. ^ http://wiki.xensource.com/xenwiki/XenDom0Kernels
  44. ^ http://marc.info/?l=openbsd-misc&m=116955702618902
  45. ^ http://www.netbsd.org/Ports/xen/
  46. ^ [1]
  47. ^ [2]
  48. ^ Xen and the Art of Virtualization, University of Cambridge SOSP'03 paper