Xen
Original author(s) | Ian Pratt University of Cambridge Computer Laboratory |
---|---|
Developer(s) | The Xen Project XenSource, Inc. |
Initial release | 2003 |
Stable release | 4.1.2[1]
/ 21 October 2011 |
Repository | |
Operating system | Linux, and other Unix-like, *BSD, OpenSolaris as both hosts and guests; Microsoft Windows as a guest OS. |
Type | Virtual machine monitor |
License | GNU GPL v2 |
Website | www |
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:
- Novell's SUSE Linux Enterprise 10 distribution
- Red Hat's RHEL 5/Fedora 7
- Sun Microsystems' Solaris
- Debian's Etch release
- Univention Corporate Server
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[update], 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[update] 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[update] 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:
- Linux, paravirtualization integrated in 2.6.23, patches for other versions exist
- Minix
- Plan 9 from Bell Labs
- NetBSD (NetBSD 2.0 has support for Xen 1.2, NetBSD 3.0 has support for Xen 2.0, NetBSD 3.1 supports Xen 3.0, NetBSD 5.0 features Xen 3.3)
- OpenBSD, announced in a, now dead, blog entry Archived 2006-08-28 at the Wayback Machine The support has since been discontinued.
- FreeBSD (Limited, experimental support for Xen 3 in 8-CURRENT [3])
- OpenSolaris (See The Xen Community On OpenSolaris)
- NetWare (at Brainshare 2005, Novell showed a port that can run as a Xen guest)
- GNU/Hurd/Mach (gnumach-1-branch-Xen-branch)
- OZONE (has support for Xen v1.2)
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:
- Servarica WHMCS XenServer Module SWXSM
- SolusVM
- Xen Tools
- Ganeti
- the Perl-based MLN
- the web-based HyperVM and FluidVM
- the web-based Cloudmin
- the GUI applications Convirture (formerly XenMan) which does not currently support Xen 4 and Red Hat's Virtual Machine Manager, virt-manager.
- the OpenNebula cloud management toolkit
- OpenXenManager - An open source clone of Citrix's XenCenter.
- XVP - Web-based VM manager for XenServer and Xen Cloud Platform
Novell's PlateSpin Orchestrate also manages Xen virtual machines for Xen shipping in SUSE Linux Enterprise Server.
Commercial implementations
- Citrix XenServer
- Oracle VM
- Sun xVM
- Virtual Iron
- Thinsy Corporation
See also
- Kernel-based Virtual Machine (KVM)
- Comparison of platform virtual machines
- Hyper-V
- VMware ESX
- Red Hat Enterprise Virtualization
- Virtual disk image
References
- ^ http://blog.xen.org/index.php/2011/10/21/xen-4-1-2-and-4-0-3-released/
- ^ Xen 3.0 User Manual
- ^ Xen OS Compatibility
- ^ "Citrix Systems » Citrix Completes Acquisition of XenSource". Citrix Systems. 2007-07-12.
- ^ http://www.virtualization.info/2009/10/citrix-to-fully-open-source-xenserver.html
- ^
"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.
- ^
"CTX123999 - How to Renew Free XenServer licenses". Citrix Systems, Inc. 2010-01-25. Retrieved 2012-04-02.
Citrix asks for annual re-activation
- ^ "XenServer features by edition". Citrix Systems.
- ^ http://sourceforge.net/mailarchive/message.php?msg_id=5533663
- ^ http://lwn.net/Articles/52033/
- ^ http://lwn.net/Articles/109789/
- ^ http://lwn.net/Articles/162841/
- ^ http://web.archive.org/web/20051210024853/http://www2.getxen.com/news/pr120505b.html
- ^ http://lists.xensource.com/archives/cgi-bin/mesg.cgi?a=xen-users&i=A95E2296287EAD4EB592B5DEEFCE0E9D4BA296%40liverpoolst.ad.cl.cam.ac.uk
- ^ http://lists.xensource.com/archives/html/xen-devel/2006-10/msg00733.html
- ^ http://lists.xensource.com/archives/html/xen-devel/2006-12/msg00889.html
- ^ http://lists.xensource.com/archives/html/xen-announce/2007-05/msg00002.html
- ^ http://vmblog.com/archive/2008/01/17/xen-3-2-0-officially-released.aspx
- ^ http://www.h-online.com/newsticker/news/item/Xen-3-3-0-hypervisor-ready-for-download-737027.html
- ^ http://community.citrix.com/display/ocb/2009/05/18/Xen.org+Announces+Release+of+Xen+3.4+Hypervisor
- ^ http://www.h-online.com/open/news/item/Virtualisation-Xen-is-looking-to-catch-up-by-releasing-version-4-974405.html
- ^ http://www.xen.org/files/Xen_4_0_Datasheet.pdf
- ^ http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/
- ^ http://wiki.xensource.com/xenwiki/XenParavirtOps
- ^ Suzanne Tindal (2011-02-28). "Fujitsu's global cloud launches in Aus". ZDNet Australia.
- ^ About The Rackspace Cloud
- ^ Dell and Citrix Partner to Simplify Virtualization Technology, 23 October 2007
- ^ Migrating from OEM Editions of XenServer 5.5 to XenServer 5.6, Created: May 27, 2010; Updated: May 26, 2011
- ^ Microsoft Press Release, 16 July 2006
- ^ Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
- ^ 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.
- ^ Extending Xen with Intel Virtualization Technology, intel.com
- ^ Demystifying Xen HVM
- ^ "Linux 2.6.37: first upstream Linux kernel to work as Dom0". blog.xen.org. 2011-01-14. Retrieved 2011-04-03.
- ^ "Kernel development". LWN.net. 2010-11-01. Retrieved 2011-04-03.
- ^ http://blog.xen.org/index.php/2011/06/02/xen-celebrates-full-dom0-and-domu-support-in-linux-3-0/
- ^ http://fedoraproject.org/wiki/Archive:Tools/Xen
- ^ https://help.ubuntu.com/community/Xen
- ^ http://web.archiveorange.com/archive/v/UsR4nzBeS5vYtX5ylWMY
- ^ https://help.ubuntu.com/community/Xen#Ubuntu's Support of Xen
- ^ http://packages.gentoo.org/package/xen
- ^ http://aur.archlinux.org/packages.php?ID=14640
- ^ http://wiki.xensource.com/xenwiki/XenDom0Kernels
- ^ http://marc.info/?l=openbsd-misc&m=116955702618902
- ^ http://www.netbsd.org/Ports/xen/
- ^ [1]
- ^ [2]
- ^ Xen and the Art of Virtualization, University of Cambridge SOSP'03 paper
External links
- Official website
- Official Citrix product site
- Step-by-step installation instructions for Xen, with a DomU capable of running Windows XP SP3 and ReactOS
- University of Cambridge research page for Xen
- University of Cambridge, Technical Report Number 553, January 2003. Early report outlining the architecture of Xen.
- Xen Guide by Tapas Mishra
- UnifiedSessionsManager - An Unofficial Xen configuration file creator