Jump to content

Xen

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 67.51.153.238 (talk) at 02:30, 18 April 2011 (→‎Release history: Removed duplicate reference). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Xen
Developer(s)The Xen Project
XenSource, Inc.
Initial release2003 (2003)
Stable release
4.1[1] / March 25, 2011 (2011-03-25)
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
Websitehttp://www.xen.org/

In computing, Xen (pronounced /ˈzɛn/) is a virtual-machine monitor for IA-32, x86-64, Itanium and ARM architectures. It allows several guest operating systems to execute on the same computer hardware concurrently. The University of Cambridge Computer Laboratory developed the first versions of Xen; as of 2010, the Xen community develops and maintains Xen as free software, licensed under the GNU General Public License (GPLv2).

Xen systems have a structure with the Xen hypervisor as the lowest and most privileged layer.[2] Above this layer come one or more guest operating systems, which the hypervisor schedules across the physical CPUs. The first guest operating system, called in Xen terminology "domain 0" (dom0), boots 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 further guest operating systems, called "domain U" (domU) in Xen terminology.

Modified versions of Linux, NetBSD and Solaris can run as the dom0. Several modified Unix-like operating systems may function as guest operating systems (domU); on certain hardware, as of Xen version 3.0, unmodified versions of Microsoft Windows and other proprietary operating systems can also run as guests if the CPU supports x86 virtualization (such CPUs include Intel VT-x and AMD-V).[3]

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 open source 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, now commercial, applications of 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 product lines were renamed in Spring 2010 [6]:

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

Release history

Version Release date Notes
1.0 9 September 2003[7]
2.0 5 November 2004[8]
3.0 5 December 2005[9][10]


The releases up to 3.0.4 also added:

3.1 18 May 2007[14]
3.2 17 January 2008[15] PCI passthrough and ACPI S3 standby mode for the host system.
3.3 24 August 2008[16] Improvements for the PCI passthrough and the power management.
3.4 18 May 2009[17] Contains a first version of the "Xen Client Initiative", shortly XCI.
4.0 7 April 2010[18] 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).[19]
4.1 25 March 2011[20] Some of the improvements: Support for more then 255 processors, better stability.

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. 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

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.[21]

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.[22]

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.[23][24]

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.[25] 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.[26]

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 boots from a bootloader like GNU GRUB and then usually loads a modified host operating system into the host domain (dom0). 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 machines. As of 2009 most Linux distributions 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 thus required a lot of complex kernel patches, in some distributions subsequent releases (like Red Hat Enterprise Linux 6 in 2010 and Ubuntu 8.10 in 2008) dropped support for Xen as dom0. 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.[27][28]

  • 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.
  • Fedora has host support for Xen from the FC4 to Fedora 8 releases, but as of September  2010 Fedora doesn't support dom0.[29]
  • Ubuntu included Xen packages from Ubuntu 8.04 (Hardy Heron), supporting Xen versions 3.2 and 3.1.[30] Note however that Ubuntu doesn't include or support a dom0-capable kernel from Intrepid Ibex (Ubuntu 8.10) onward.[31][32]
  • 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.[33][34]
  • openSUSE 10.3 includes Xen 3.1 support. YaST and virt-man offer graphical VM management.[35]
  • 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.[36]
  • NetBSD 3.x. includes host support for Xen 2, with host support for Xen 3.0 available from NetBSD 4.0.[37]

Guests

Unix-like systems as guests

Guest systems can run fully virtualized (requires special hardware) or paravirtualized (requires guest OS code modification). 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.[38]

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.

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/03/25/xen-4-1-releases/
  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. ^ "XenServer features by edition". Citrix Systems.
  7. ^ http://xenfr.org/tiki-index.php?page=Roadmap+de+XEN
  8. ^ http://lwn.net/Articles/109789/
  9. ^ http://lwn.net/Articles/162841/
  10. ^ http://web.archive.org/web/20051210024853/http://www2.getxen.com/news/pr120505b.html
  11. ^ http://lists.xensource.com/archives/cgi-bin/mesg.cgi?a=xen-users&i=A95E2296287EAD4EB592B5DEEFCE0E9D4BA296%40liverpoolst.ad.cl.cam.ac.uk
  12. ^ http://lists.xensource.com/archives/html/xen-devel/2006-10/msg00733.html
  13. ^ http://lists.xensource.com/archives/html/xen-devel/2006-12/msg00889.html
  14. ^ http://lists.xensource.com/archives/html/xen-announce/2007-05/msg00002.html
  15. ^ http://vmblog.com/archive/2008/01/17/xen-3-2-0-officially-released.aspx
  16. ^ http://www.h-online.com/newsticker/news/item/Xen-3-3-0-hypervisor-ready-for-download-737027.html
  17. ^ http://community.citrix.com/display/ocb/2009/05/18/Xen.org+Announces+Release+of+Xen+3.4+Hypervisor
  18. ^ http://www.h-online.com/open/news/item/Virtualisation-Xen-is-looking-to-catch-up-by-releasing-version-4-974405.html
  19. ^ http://www.xen.org/files/Xen_4_0_Datasheet.pdf
  20. ^ http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/
  21. ^ Dell and Citrix Partner to Simplify Virtualization Technology, 23 October 2007
  22. ^ Microsoft Press Release, 16 July 2006
  23. ^ Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
  24. ^ 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.
  25. ^ Extending Xen with Intel Virtualization Technology, intel.com
  26. ^ Demystifying Xen HVM
  27. ^ "Linux 2.6.37: first upstream Linux kernel to work as Dom0". blog.xen.org. 2011-01-14. Retrieved 2011-04-03.
  28. ^ "Kernel development". LWN.net. 2010-11-01. Retrieved 2011-04-03.
  29. ^ http://fedoraproject.org/wiki/Archive:Tools/Xen
  30. ^ https://help.ubuntu.com/community/Xen
  31. ^ http://web.archiveorange.com/archive/v/UsR4nzBeS5vYtX5ylWMY
  32. ^ https://help.ubuntu.com/community/Xen#Ubuntu's Support of Xen
  33. ^ http://packages.gentoo.org/package/xen
  34. ^ http://aur.archlinux.org/packages.php?ID=14640
  35. ^ http://en.opensuse.org/Xen3_Status_and_Updates
  36. ^ http://marc.info/?l=openbsd-misc&m=116955702618902
  37. ^ http://www.netbsd.org/Ports/xen/
  38. ^ Xen and the Art of Virtualization, University of Cambridge SOSP'03 paper