Xen
From Wikipedia, the free encyclopedia
Xen | |
Xen running NetBSD and three Linux distributions (Fedora Core, SUSE, and another one). |
|
Developer: | The Xen Project, XenSource, Inc. |
---|---|
Latest release: | 3.0.3 / October 2006 |
OS: | Linux, and other Unix-like, *BSD, OpenSolaris and Microsoft Windows |
Use: | Virtual machine monitor |
License: | GPL |
Website: | http://www.xensource.com/xen |
- For other uses, see Xen (disambiguation).
Xen is a free virtual machine monitor for x86, Intel Itanium and PowerPC architectures. It is software that runs on a host operating system and allows one to run several guest operating systems alongside the host on the same computer hardware at the same time. Modified versions of Linux and NetBSD can be used as hosts. Several modified Unix-like systems may be employed as guest systems; since Xen version 3.0 unmodified versions of Windows and other systems can also be used as guests on certain hardware.
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 was made available in 2003.
Contents |
[edit] Uses
Virtual machines monitors (also known as "hypervisors") are often used by IBM, HP, and others on mainframes and large servers. They are also increasingly being used by Internet hosting service companies to provide virtual dedicated servers. The primary benefits of server virtualization are consolidation, increased utilization, an ability to rapidly provision and start a virtual machine, and increased ability to dynamically respond to faults by re-booting a virtual machine or moving a virtual machine to different hardware. Another benefit is the ability to securely separate virtual operating systems, and 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.
Xen may also be used on personal computers that run Linux but also have Windows installed. Traditionally, such systems are used in a dual boot setup, but with Xen it is possible to start Windows "in a window" from within Linux, effectively running applications from both systems at the same time.
Virtualization also has benefits when working on operating system development: running the new system as a guest avoids the need to reboot the computer whenever a bug is encountered. Such a "sandboxed" guest system is also useful in computer security research, in order to study 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 be delivered to market in two ways: as a virtualization platform, such as XenSource, Inc.'s XenEnterprise product, or embedded within the host operating system. An example of the latter configuration is the inclusion of Xen in Novell's SLES 10 Linux distribution, Red Hat's RHEL 5, Sun Microsystems' Solaris 10, or Debian's Etch release.
XenSource is also developing a compatibility layer for Microsoft's Longhorn hypervisor, so that systems that have been modified to run as Xen guests will be able to function on the Longhorn hypervisor.[1]
[edit] Technology
[edit] Paravirtualization requiring porting of guest systems
Xen uses a form of virtualization known as paravirtualization wherein the guest Operating System is modified to use a special hypercall ABI instead of using certain architectural features. Through paravirtualization, Xen can achieve high performance even on its host architecture (x86) which is notoriously uncooperative with traditional virtualization techniques.
The Xen host runs in Ring 0, while the guest runs in Ring 1.
[edit] Hardware assisted virtualization allowing for unmodified guests
Intel has contributed modifications to Xen to support their VT-x (formerly Vanderpool) architecture extensions. Similarly AMD has contributed support for their AMD-V extensions. These technologies, while differing quite substantially in their implementation and instruction sets, are managed by a common abstraction layer in Xen and enable unmodified guest operating systems to run within Xen virtual machines, starting with Xen 3.0.
Hardware assisted virtualization 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 and its "hardware" accesses are under complete control of the hypervisor.
As of Xen 3.0.2, the list of supported unmodified guests is limited to certain versions of Windows (incl. XP) and Linux.
[edit] 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.
[edit] Supported operating systems and hardware
An operating system that runs Xen as host is also known as dom0, while a system that runs as a Xen guest is known as domU.
[edit] Unix-like systems as hosts
Xen mainly runs with modified Linux or NetBSD as a host system. Most Linux distributions now include Xen-packages.
Xen under Linux currently runs on x86, with P2 or newer processors, x86 64 based systems, as well as on IA64 and PPC. Work is under way on a port to the SPARC architecture. Xen supports up to 64-way SMP multi-processing machines.
XenSource offers a live ISO CD running Debian GNU/Linux as well as other free Linux distributions that enables you to try Xen on your system without installing it to the hard disk.
The first commercial implementation of Xen in this form is Novell's SLES10 release, which is broadly supported. Red Hat's RHEL 5, due in the fourth quarter of 2006 will also offer Xen.
Debian includes Xen packages in the upcoming Debian 4.0 release, in unstable and experimental. (Packages for Debian 3.1 (Sarge) can be found on http://www.backports.org, though.)
Ubuntu includes Xen 3.0.3 packages in its 6.10 release (codenamed Edgy Eft).
Fedora Core has included Xen packages since its FC4 release. A quick-start document is available here.
Host support will be available in the upcoming NetBSD 4.0 release. [1].
Support for using FreeBSD as a Xen host is being worked on.[2]
A Gentoo package exists for Xen in Portage. [3]
[edit] Unix-like systems as guest
The above mentioned Linux distributions all contain support for running as a Xen guest.
In addition, the following systems have been patched so that they can operate as a Xen guest:
- 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, and NetBSD 3.1 supports Xen 3.0)
- FreeBSD (a patch against the CURRENT branch exists)
- OpenSolaris (a BFU release exists; the source code and BFU archives can be downloaded from The Xen Community On OpenSolaris)
- NetWare (at Brainshare 2005, Novell showed a port that is able to run as a Xen guest)
[edit] Windows as guest
It is currently possible to run Microsoft Windows as a guest operating system unmodified, using hardware virtualization provided by Intel's Vanderpool technology or AMD's Pacifica. This is supported beginning with Xen 3.0.
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. This was possible due to Microsoft's Academic Licensing Program. The terms of this license do not allow this port to be published, although the experience is documented in the original Xen SOSP paper.
[edit] Xen Management Consoles
A number of third-party tools (known as Xen Management Consoles) have been developed to facilitate the common tasks in administrating a Xen host, such as configuring, starting, monitoring and stopping of Xen guests. Examples include the Perl-based Xen Tools, the web-based Enomalism and the GUI applications XenMan and RedHat's Virtual Machine Manager. There is also BixData client/server/agent.
[edit] References
- ^ Microsoft Press Release, 16 July 2006
[edit] See also
- Comparison of virtual machines
- X86 virtualization for information on Intel VT and AMD-V
[edit] External links
- Official Home page at the University of Cambridge
- XenSource
- The Xen Wiki
- University of Cambridge, Technical Report Number 553, January 2003. Early report outlining the architecture of Xen.
- Introduction to the Xen Virtual Machine, Linux Journal, 1 September 2005
- RedHat Linux & Fedora Core Virtual Machine Manager
- Xen Tools Perl scripts to allow easy deployment of Xen guests
- Xen Basics, some useful hints on getting started