From Fedora Project Wiki

Revision as of 19:13, 21 November 2009 by Rjones (talk | contribs) (→‎Relevant Packages: libguestfs tools)

This page covers the efforts to integrate various virtualization technologies into Fedora.

Introduction

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 mimic several individual computers and even run different operating systems in each of these virtual machines. There are many different virtualization technologies, including both free and open source software and proprietary offerings.

At time of writing, Fedora includes full support for the following virtualization technologies

  • KVM hosts support for fully virtualized guests. A hypervisor included in the Linux kernel which requires hardware virtualization support like Intel VT or AMD-V. KVM is currently the main focus of Fedora's virtualization efforts.
  • QEMU, a fast CPU emulator capable of virtualizing OS on both native and non-native architectures (such as allowing a PowerPC OS to run on x86_64).
  • Xen paravirtualized guests supported from install media. NB Xen Dom0 host support was dropped after Fedora 8, its re-introduction blocked on the inclusion of Xen Dom0 support in upstream Linux.
  • xenner is a utility which allows paravirtualized Xen guests to be run using KVM.

A number of 3rd parties provide add-on packages for other virtualization technologies. OpenVZ and Linux-VServer, both provide container based virutalization which can partition a single OS into several isolated zones -- a chroot with much stronger resource isolation. VirtualBox provides a full virtualization technology which does not require hardware virtualization extensions.

Anticipating this diversification of technology, since the days of Fedora Core 5, all core management applications have been built on top of the libvirt toolkit, which offers a technology independent API for managing virtual systems.

History

Fedora Core 5 was the first release to include Xen as a core integrated technology. The new Linux native virtualiation, KVM, was introduced to Fedora 7. For a more detailed account of virtualization progress in Fedora, consult the Virtualization History page.

News

There is semi-regular coverage of Virtualization news in Fedora Weekly News, and more detailed status updates posted to the fedora-virt Mailing List. For ease of reference, there is an archive of virtualization news

Getting Started

See getting started with virtualization for an excellent overview to using the virtualization capabilities in Fedora.

Bugs

See How to debug Virtualization problems for some tips on reporting virtualization bugs to bugzilla.

If you wish to help triaging and fixing virtualization bugs, virtualization bugs is a good starting point.

Mailing List & IRC

To get in touch with Fedora virtualization users and developers try the fedora-virt mailing list or #virt on irc.oftc.net.

Relevant Packages

Here's a catalogue of all the virtualization related packages in Fedora:

Core Virtualization

  • Package-x-generic-16.pngkernel provides e.g. the kvm hypervisor core (kvm.ko), support for running as KVM and Xen guests etc.
  • Package-x-generic-16.pngqemu is a CPU and device emulator; it also acts as the userspace component of KVM
  • Package-x-generic-16.pnglibvirt is a toolkit for interacting with the various virtualization technologies
  • Package-x-generic-16.pngxen provides the xen hypervisor and userspace components
  • Package-x-generic-16.pngxenner allows Xen guests to be run on KVM
  • Package-x-generic-16.pngbochs PC BIOS for QEMU
  • Package-x-generic-16.pnggpxe PXE boot ROMs for QEMU
  • Package-x-generic-16.pngvgabios video BIOS for QEMU
  • Package-x-generic-16.pngopenbios sparc/ppc BIOS for QEMU

Tools

  • Package-x-generic-16.pngvirt-manager is a desktop user interface for managing virtual machines
  • Package-x-generic-16.pngvirt-viewer is used by virt-manager to connect to a virtual machine's graphical console
  • Package-x-generic-16.pngpython-virtinst provides a python API for installing virtual machines, and a bunch of useful utilitis like virt-install and virt-clone
  • Package-x-generic-16.pnggnome-applet-vm is a GNOME applet for monitoring and controlling virtual machines
  • Package-x-generic-16.pngvirt-top is a top-like utilitiy for virtual machines
  • Package-x-generic-16.pnglibguestfs provides an API and tools for accessing and modifying virtual machine disk images
  • guestfish lets you access and modify virtual machine disk images from the command line
  • libguestfs-tools provides useful tools: virt-df, virt-cat, virt-edit, virt-ls, virt-inspector, virt-rescue, virt-win-reg
  • libguestfs-mount (guestmount) lets you mount virtual machine disk images on the host
  • Package-x-generic-16.pngcollectd-libvirt gathers statistics from within virtual machines
  • Package-x-generic-16.pngappliance-tools enables the building of virtual appliance images
  • Package-x-generic-16.pngcobbler is a network boot server that can be used to provision virtual machines
  • Package-x-generic-16.pngperl-Sys-Virt-TCK is a functional test suite for libvirt
  • Package-x-generic-16.pngvirt-v2v is a tool for converting virtual machines to use the KVM hypervisor

Language Bindings

For Package-x-generic-16.pnglibvirt

For Package-x-generic-16.pnglibguestfs

Obsolete

  • Package-x-generic-16.pngkvm used to provide the userspace component of the kvm hypervisor. It has since been replaced by qemu
  • Package-x-generic-16.pngetherboot has been replaced by Package-x-generic-16.pnggpxe
  • Package-x-generic-16.pngvirt-mem is going to be replaced by other virt tools

oVirt

oVirt is a Fedora based project which provides small host images and a web-based virtual machine management console. See the website to learn more and get involved.