Jump to content

Xen

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 81.233.34.70 (talk) at 19:42, 31 January 2013 (Guests: Removed more links WP:LINKFARM). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Original author(s)Keir Fraser, Steven Hand, Ian Pratt, University of Cambridge Computer Laboratory
Developer(s)The Xen Project
XenSource, Inc.
Initial release2003 (2003)
Stable release
4.2[1] / 8 September 2012; 12 years ago (2012-09-08)
Repository
Operating systemLinux, BSD, OpenSolaris as management host; many OSs including Microsoft Windows as guests
TypeHypervisor
LicenseGNU GPL v2
Websitewww.xen.org

Xen /ˈzɛn/ is a Hypervisor 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. The Xen community develops and maintains Xen as free software, licensed under the GNU General Public License (GPLv2). Xen is currently available for the IA-32, x86-64 and ARM computer architectures.

Architecture

Xen is a native, or bare-metal hypervisor. It runs in a more privileged CPU state than any other software on the machine.

Responsibilities of the hypervisor include memory management and CPU scheduling of all virtual machines ("domains"), and for launching the most privileged domain ("dom0") - the only virtual machine which by default has direct access to hardware. From the dom0 the hypervisor can be managed and unprivileged domains ("domU") can be launched.

The dom0 domain is typically a modified version of Linux, NetBSD or Solaris. User domains may either be unmodified 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),[2] or modified, para-virtualized operating system with special drivers that support enhanced Xen features.

On x86 Xen with a Linux dom0 runs on Pentium II or newer processors. Xen boots from a bootloader such as GNU GRUB, and then usually loads a paravirtualized host operating system into the host domain (dom0).

History

Xen originated as a research project at the University of Cambridge, led by Ian Pratt, senior lecturer at Cambridge who co-founded XenSource, Inc. with Simon Crosby also of Cambridge University. The first public release of Xen was made in 2003.

Xen has been supported originally by XenSource Inc., and since the acquisition of XenSource by Citrix in October 2007. This organisation supports the development of the free software project and also sells enterprise versions of the software.

On 22 October 2007, Citrix Systems completed its acquisition of XenSource,[3] 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 Advisory Board advises the Xen project leader and is responsible for the Xen trademark,[4] which Citrix has freely licensed to all vendors and projects that implement the Xen hypervisor.[5]

Confusingly, Citrix has also used the Xen brand itself for some proprietary products unrelated to Xen, including at least "XenApp" and "XenDesktop".

The Xen project itself is self-governing.[6]

Release history for Xen (upstream project)

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

The releases up to 3.0.4 also added:

3.1 2007-05-18[15] Live migration for HVM guests, XenAPI
3.2 2008-01-17[16] PCI passthrough and ACPI S3 standby mode for the host system.
3.3 2008-08-24[17] Improvements for the PCI passthrough and the power management.
3.4 2009-05-18[18] Contains a first version of the "Xen Client Initiative", shortly XCI.
4.0 2010-04-07[19] 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 does not support the usage as dom0 kernel (date July 2010).[20]
4.1 2011-03-25[21] Some of the improvements: Support for more than 255 processors, better stability. Linux kernel v2.6.37 and onward support usage as dom0 kernel ([22]).
4.2 2012-09-08[1] XL became the default toolstack. Support for up to 4095 host processors and up to 512 guest processors.

Xen in Linux distributions and Linux upstream

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.[23][24] Version 3.0 of the Linux kernel supports dom0 and domU in the mainline kernel.[25]

History of Citrix Xen-based products

After the acquisition Citrix 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 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).[26] 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.[27] This activation must be renewed annually.[28]

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

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

Uses

Internet hosting service companies use hypervisors to provide virtual private servers. Amazon EC2, Liquid Web, Fujitsu Global Cloud Platform,[30] Linode, SparkNode, and Rackspace Cloud use Xen as the VM hypervisor.[31]

Virtual machine monitors (also known as hypervisors) also often operate on mainframes and large servers running IBM, HP, and other systems. Server virtualization can provide benefits such as:

  • consolidation leading to 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.

Technology

Types of virtualization

Xen supports two different approaches to running the guest operating system. The choice of approach is up to the Xen hosting system administrator.

Paravirtualization - modified guests

Xen supports a form of virtualization known as paravirtualization, in which guests run a modified operating system. The guests are modified to use 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.[32][33]

Xen can run paravirtualized guests ("PV guests" in Xen terminology) even on CPUs without any explicit support for virtualization.

Paravirtualization avoids the need to emulate a full set of hardware and firmware services, which makes a PV system simpler to manage and reduces the attack surface exposed to potentially malicious guests.

On 32-bit x86, the Xen host kernel code runs in Ring 0, while the hosted domains run in Ring 1 (kernel) and Ring 3 (applications).

Hardware-assisted virtualization, allowing for unmodified guests

Many modern CPUs now have explicit support for virtualization. These processor features make it possible to support unmodified guests, including proprietary operating systems (such as Microsoft Windows). This is known as hardware-assisted virtualization (HVM).

HVM extensions provide additional execution modes, with an explicit distinction between the most-privileged modes used by the hypervisor with access to the real hardware (called "root mode" in x86) and the less-privileged modes used by guest kernels and applications with "hardware" accesses under complete control of the hypervisor (in x86, known as "non-root mode"; both root and non-root mode have Rings 0-3).

Both Intel and AMD have contributed modifications to Xen to support their respective Intel VT-x and AMD-V architecture extensions.[34] Support for ARMv7A virtualization extensions is under development.

HVM extensions also often offer new instructions to support direct calls by a paravirtualized guest/driver into the hypervisor, typically used for I/O or other operations needing high performance. These allow HVM guests with suitable minor modifications to gain many of the performance benefits of paravirtualised I/O.

In current versions of Xen (up to 4.2) only fully virtualised HVM guests can make use of hardware support for multiple independent levels of memory protection and paging. As a result, for some workloads, HVM guests with PV drivers (also known as PV-on-HVM) provide better performance than pure PV guests.

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 an emulated version of a fairly basic PC. In a performance-critical environment, PV-on-HVM disk and network drivers are used during normal guest operation, so that the emulated PC hardware is mostly used for booting.

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, "freezing" their running state for resumption at a later date.

Scalability

Xen can scale to >255 physical CPUs,[35] 128 VCPUs per PV guest, 1TB of RAM per host, and up to 1TB of RAM per HVM guest or 512 GB of RAM per PV guest.[36]

Hosts

Xen can be shipped in a dedicated virtualization platform, such as Citrix XenServer Enterprise Edition (formerly XenSource's XenEnterprise).

Alternatively, Xen is distributed as an optional configuration of many standard operating systems. Xen available for and distributed with:

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

Most operating systems which can run on PC can run as a Xen HVM guest.

Additionally 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.[43]

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. The information on the XenSource Wiki seems to be outdated, there is newer info here.[44]

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:

  • the web-based HyperVM
  • the OpenNebula cloud management toolkit
  • On OpenSUSE YaST and virt-man offer graphical VM management.

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

Commercial versions of Xen

The Xen hypervisor is covered by the GNU General Public Licence, so all of these versions contain a core of Free Software with source code. However, many of them contain proprietary additions.

See also

References

  1. ^ a b "Xen 4.2 Releases". Xen.org. Retrieved 2012-10-18.
  2. ^ "OSCompatibility - Xen Wiki". Wiki.xensource.com. 2007-02-08. Retrieved 2012-10-18.
  3. ^ "Citrix Systems » Citrix Completes Acquisition of XenSource". Citrix Systems. 2007-07-12.
  4. ^ "Community". Xen.org. Retrieved 2012-10-18.
  5. ^ "Xen Community - Trademark and Legal and Information". Xen.org. Retrieved 2012-10-18.
  6. ^ "Projects". Xen.org. Retrieved 2012-10-18.
  7. ^ "Xen:". SourceForge.net. 2003-10-02. Retrieved 2012-10-18.
  8. ^ Posted October 2, 2003 by corbet (2003-10-02). "The first stable Xen release". Lwn.net. Retrieved 2012-10-18.{{cite web}}: CS1 maint: numeric names: authors list (link)
  9. ^ Posted November 5, 2004 by corbet (2004-11-05). "Xen 2.0 released". Lwn.net. Retrieved 2012-10-18.{{cite web}}: CS1 maint: numeric names: authors list (link)
  10. ^ Posted December 6, 2005 by corbet (2005-12-06). "Xen 3.0 released". Lwn.net. Retrieved 2012-10-18.{{cite web}}: CS1 maint: numeric names: authors list (link)
  11. ^ "Internet Archive Wayback Machine". Web.archive.org. 2005-12-10. Archived from the original on 2005-12-10. Retrieved 2012-10-18. {{cite web}}: Cite uses generic title (help)
  12. ^ [1][dead link]
  13. ^ "[Xen-devel] Xen 3.0.3 released! - Xen Source". Lists.xensource.com. 2006-10-17. Retrieved 2012-10-18.
  14. ^ "[Xen-devel] FW: Xen 3.0.4 released! - Xen Source". Lists.xensource.com. 2006-12-20. Retrieved 2012-10-18.
  15. ^ "[Xen-devel] Xen 3.1 released! - Xen Source". Lists.xensource.com. 2007-05-18. Retrieved 2012-10-18.
  16. ^ "Xen 3.2.0 Officially Released : VMblog.com - Virtualization Technology News and Information for Everyone". VMblog.com. Retrieved 2012-10-18.
  17. ^ "Xen 3.3.0 hypervisor ready for download - The H: Open Source, Security and Development". H-online.com. 2008-08-25. Retrieved 2012-10-18.
  18. ^ "Xen.org Announces Release Of Xen 3.4 Hypervisor | Citrix Blogs". Community.citrix.com. 2009-05-18. Retrieved 2012-10-18.
  19. ^ "Virtualisation: Xen is looking to catch up by releasing version 4 - The H Open: News and Features". H-online.com. 2010-04-09. Retrieved 2012-10-18.
  20. ^ "Xen 4.0 Datasheet" (PDF). Xen.org. Retrieved 2012-10-18.{pdf}
  21. ^ "Xen 4.1 releases –". Blog.xen.org. 2011-03-25. Retrieved 2012-10-18.
  22. ^ "XenParavirtOps - Xen Wiki". Wiki.xensource.com. Retrieved 2012-10-18.
  23. ^ "Linux 2.6.37: first upstream Linux kernel to work as Dom0". blog.xen.org. 2011-01-14. Retrieved 2011-04-03.
  24. ^ "Kernel development". LWN.net. 2010-11-01. Retrieved 2011-04-03.
  25. ^ "Xen celebrates full Dom0 and DomU support in Linux 3.0 –". Blog.xen.org. 2011-05-30. Retrieved 2012-10-18.
  26. ^ "Citrix to fully open source XenServer – UPDATED". virtualization.info. Retrieved 2012-10-18.
  27. ^ "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.
  28. ^ "CTX123999 - How to Renew Free XenServer licenses". Citrix Systems, Inc. 2010-01-25. Retrieved 2012-04-02. Citrix asks for annual re-activation
  29. ^ "XenServer features by edition". Citrix Systems.
  30. ^ Suzanne Tindal (2011-02-28). "Fujitsu's global cloud launches in Aus". ZDNet Australia.
  31. ^ "Cloud FAQ". Rackspace.com. 2011-09-13. Retrieved 2012-10-18.
  32. ^ Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
  33. ^ 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.
  34. ^ Extending Xen with Intel Virtualization Technology, intel.com
  35. ^ "Xen 4.1 Release Notes - Xen". Wiki.xen.org. Retrieved 2012-10-18.
  36. ^ "Xen 4.0 Release Notes - Xen". Wiki.xen.org. Retrieved 2012-10-18.
  37. ^ "XenDom0Kernels - Xen Wiki". Wiki.xensource.com. 2011-11-08. Retrieved 2012-10-18.
  38. ^ [2][dead link]
  39. ^ "Xen - Community Ubuntu Documentation". Help.ubuntu.com. 2012-09-05. Retrieved 2012-10-18.
  40. ^ "AUR (en) - xen". Aur.archlinux.org. Retrieved 2012-10-18.
  41. ^ "NetBSD/xen". Netbsd.org. Retrieved 2012-10-18.
  42. ^ "FreeBSD/Xen - FreeBSD Wiki". Wiki.freebsd.org. 2012-06-25. Retrieved 2012-10-18.
  43. ^ "Xen and the Art of Virtualization" (PDF). University of Cambridge SOSP'03 paper. Retrieved 2012-10-18. {{cite web}}: Italic or bold markup not allowed in: |publisher= (help)
  44. ^ "Open Source Windows Paravirtualization Drivers for Xen (GPLPV)". Jolokia Networks. Retrieved 2012-10-18.

Further reading