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.
Fedora used to be able to act as a Xen host, but that possibility went away a while back. Thanks to this effort, it is now more than possible to use Fedora as a Xen host (starting from Fedora 16).
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.
Xen Quick Start Guides
Depending on which Fedora release you are using there are different guides for getting started with Xen. Choose, among all the material linked below, the docs that better suits your needs and configuration.
Xen was officially part of Fedora from the beginning (of Xen itself) to Fedora 8. At that point, the Linux kernel dropped support for Xen, and that is why, for Fedora 9 to Fedora 15, you need custom kernels. Now Xen support has made it to the upstream kernel again, therefore, using Fedora as a Xen host is again available without unofficial packages starting from Fedora 16.
For Fedora 16 and newer:
- The Xen Project wiki has a Fedora Category, with all the links to all the information you need to setup a Fedora host or guest. In particular:
- Notice also that:
For Fedora 15 to Fedora 9:
- Using one of these releases as a Xen host will be a little bit more tricky. If willing to do so, check out the packages available at this experimental repository http://myoung.fedorapeople.org/dom0)
For Fedora 8 and older:
- 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 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 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. Are there are tools available for automating Xen network deployments (aka "provisioning" tools)?
A. Yes, see Cobbler. To a certain extent, even xen-tools can help on that, see xen-tools, and see here on how to use that on Fedora.
Q. What are the architectures Xen is available on?
A. Xen is available on the x86 and some variants (v7 and v8) of the ARM architecture.
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.
Q. How can I have more information or get involved in development of Xen in Fedora ?
A. The dedicated mailing list for users of Xen on Fedora is firstname.lastname@example.org. For general questions about Xen refer to [ email@example.com] (no subscription required). For non-Xen discussions, the Communicate page details many other ways of communicating with Fedora users & developers.
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