Xen is a high performance and secure open source virtualization framework. Virtualization allows one to run many guest virtual machines on top of a host operating system such as Fedora. What this means is that using one computer, you can mimick several individual computers and even run different operating systems in each of these virtual machines. Virtualization has been around for some time in products such as VMWare and VirtualPC, however it has historically been resource intensive and the guest operating systems ran at quite a performance hit. Xen however uses a different approach of being a true hypervisor and platform and has taken virtualization to a new level of performance and security.
By using modified kernels, Xen can take advantage of certain capabilities that allow you to have all the benefits of virtualization, without incurring the huge performance penalty often associated with virtualization. You can run guest operating systems at near native speeds with Xen. More recently, it has become possible to use Xen to run guests without them needing to have a modified kernel, provided the hardware offers some virtualization extensions (which is, nowadays, almost always the case).
The security of your environment can be enhanced by running different services in complete isolation, without resorting to the purchase of additional costly hardware. If your server used to run a web server and an e-mail server together, you can now isolate these two services and run them as though they were running on completely separate machines.
Using Xen, you can run an environment of multiple operating systems, all from one machine. An instance of Fedora can be ran in conjunction with more instances of Fedora or with other operating systems such as NetBSD, all simultaneously. These examples are simply scratching the surface of the many possibilities that Xen allows.
The dedicated mailing list for users of Xen on Fedora is firstname.lastname@example.org . For non-Xen discussions, the Communicate page details many other ways of communicating with Fedora users & developers.
Xen Quick Start Guides
Depending on which Fedora release you are using there are different guides for getting started with Xen. Choose one of the following guides as appropriate:
- Fedora 8
- Fedora 7
- Fedora Core 6 with a stable Xen 3.0.3 release included in the base distro & suitable for more extensive deployment
- Fedora Core 5 with a Xen snapshot included in the base distro for the first time, and suitable for exploration & initial testing
- Fedora Core 4 with experimental Xen 3 snapshot available as add on packages
Frequently Asked Questions
What follows are a handful of frequently asked questions about Xen in general. For questions specific to a Fedora release, consult the quick start guides linked above.
- Q. What APIs are available for developing Xen management applications ?
A. The libvirt library provides an API which is guarenteed to be stable across the different versions of Xen in previous & future Fedora Core releases. libvirt provides a C library and Python bindings. There are also optional Perl bindings on CPAN and OCaml bindings .
- Q. Is there any GUI tool for managing local Xen virtual machines ?
A. The virt-manager application provides a GUI tool which can be run in Domain-0 to manage virtual machines. It is a standard part of Fedora Core, from version 6 onwards. It is also possible to run it in Fedora Core 5, albeit with reduced capabilities.
- Q. Is there any GUI tool for managing remote Xen virtual machines ?
A. At this time, Xen does not provide a secure protocol for managing virtual machines across a network, so the virt-manager tool is restricted to local management. The roadmap for development of Xen 3.0.4 calls for inclusion of an API enabling secure remote management, which will in turn allow libvirt & virt-manager to manage machines remotely.
- Q. Are there are tools available for automating Xen network deployments (aka "provisioning" tools)?
A. Yes, see Cobbler
- Q. Does Xen allow mixing of architectures (eg PPC guest on x86 host) ?
A. No. The Xen virtualization system only allows for native architectures, either via para-virtualization, or full virtualization. To run a guest virtual machine with a different architecture from the host would be a job for the QEMU emulator instead. Support for QEMU in libvirt is work-in-progress and will allow the same tools to manage both Xen & QEMU virtual machines
- Q. How can I get involved in development of Xen in Fedora ?
A. The fedora-xen mailing list is the best place to discuss Xen in relation to Fedora
Presentation and Articles
- cobbler : a presentation on automated virtual deployment at Red Hat Summit 2007 (San Diego) -- (further info) -- MichaelDeHaan
- libvirt : a presentation on the libvirt management API at the Xen Summit, 2006 (San Jose)
- Building blocks for managing virtualized systems : a presentation on Xen management tools from the Red Hat Summit 2006 (Nashville)
- Fedora Users and Developers Conference (FUDCon) 3 had a presentation from Red Hat and Fedora Xen developer DanielVeillard. Check this out FUDCon presentations
- Daniel Veillard also gave a presentation on the same topic at Linux Tag 2005. See http://veillard.com/Talks/2005LinuxTag/Overview.html
- Red Hat Magazine Xen feature with an interview on Red Hat and Fedora Xen developers - RikvanRiel and DanielVeillard at