Jump to content

Xen: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Syrthiss (talk | contribs)
rv wikilink to redlink
Mjancuska (talk | contribs)
m →‎Unix-like systems as hosts: As of - lower case
Line 93: Line 93:


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.
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 (operating system)|Fedora]] has host support for Xen from the FC4 to FC8 releases, but {{as of | 2010 | February}} Fedora doesn't support dom0.<ref>http://fedoraproject.org/wiki/Archive:Tools/Xen</ref>
[[Fedora (operating system)|Fedora]] has host support for Xen from the FC4 to FC8 releases, but {{as of | 2010 | February | lc=on }} Fedora doesn't support dom0.<ref>http://fedoraproject.org/wiki/Archive:Tools/Xen</ref>


[[Ubuntu Linux|Ubuntu]] has included Xen packages since Ubuntu 8.04. [[Hardy Heron]] includes Xen version 3.2 and 3.1.<ref>https://help.ubuntu.com/community/Xen</ref>
[[Ubuntu Linux|Ubuntu]] has included Xen packages since Ubuntu 8.04. [[Hardy Heron]] includes Xen version 3.2 and 3.1.<ref>https://help.ubuntu.com/community/Xen</ref>

Revision as of 13:30, 23 March 2010

Xen
Developer(s)The Xen Project, XenSource, Inc.
Stable release
3.4.2 / November 11, 2009 (2009-11-11)
Repository
Operating systemLinux, and other Unix-like, *BSD, OpenSolaris as both hosts and guests; Microsoft Windows as the guest OS.
TypeVirtual machine monitor
LicenseGPL
Websitehttp://www.xen.org/

In computing, Xen (pronounced /ˈzɛn/) is a virtual-machine monitor for x86, x86-64, Itanium and PowerPC 970 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 (GPL2).

Xen systems have a structure with the Xen hypervisor as the lowest and most privileged layer.[1] 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 and AMD-V).[2]

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,[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 currently has 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[4]. 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."

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

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

Technology

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

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 and AMD-V architecture extensions.[9] 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 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.[10]

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.

Unix-like systems as hosts

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 include Xen packages to interact with the Xen hypervisor and start additional domains.

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 FC8 releases, but as of February  2010 Fedora doesn't support dom0.[11]

Ubuntu has included Xen packages since Ubuntu 8.04. Hardy Heron includes Xen version 3.2 and 3.1.[12] Debian includes Xen 3.2.1 in its stable release 5.0, Lenny, and has Xen 3.0.3 packages in its oldstable 4.0 release (codenamed Etch).

Gentoo and Arch Linux both have packages available to support Xen.[13][14] openSUSE 10.3 includes Xen 3.1 support. YaST and virt-man offer graphical VM management.[15]

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.[16] NetBSD 3.x. includes host support for Xen 2, with host support for Xen 3.0 available from NetBSD 4.0.[17]

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:

MS Windows systems as guests

Xen version 3.0 introduced the capability to run Microsoft Windows as a guest operating system unmodified if the processor supports hardware virtualization provided by Intel VT (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.[18]

GPL'd Paravirtualisation drivers for Windows are under development by James Harper and the Xen open source community. These provide front-end drivers for the Xen block and network devices. These 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. ^ Xen 3.0 User Manual
  2. ^ Xen OS Compatibility
  3. ^ "Citrix Systems » Citrix Completes Acquisition of XenSource". Citrix Systems. 2007-07-12.
  4. ^ http://www.virtualization.info/2009/10/citrix-to-fully-open-source-xenserver.html
  5. ^ Dell and Citrix Partner to Simplify Virtualization Technology, 23 October 2007
  6. ^ Microsoft Press Release, 16 July 2006
  7. ^ Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
  8. ^ 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.
  9. ^ Extending Xen with Intel Virtualization Technology, intel.com
  10. ^ Demystifying Xen HVM
  11. ^ http://fedoraproject.org/wiki/Archive:Tools/Xen
  12. ^ https://help.ubuntu.com/community/Xen
  13. ^ http://packages.gentoo.org/package/xen
  14. ^ http://aur.archlinux.org/packages.php?ID=14640
  15. ^ http://en.opensuse.org/Xen3_Status_and_Updates
  16. ^ http://marc.info/?l=openbsd-misc&m=116955702618902
  17. ^ http://www.netbsd.org/Ports/xen/
  18. ^ Xen and the Art of Virtualization, University of Cambridge SOSP'03 paper