From Fedora Project Wiki

(→‎Relevant Packages: libguestfs tools)
m (→‎Getting started: proper external URL)
 
(26 intermediate revisions by 17 users not shown)
Line 1: Line 1:
This page covers the efforts to integrate various virtualization technologies into Fedora.
{{autolang|base=yes}}
 
This page covers the efforts to integrate various virtualization technologies into Fedora. For information on using Fedora as a virtual machine, see [http://os-blog.com/installing-a-fedora-virtual-machine/ Installing a Fedora Virtual Machine].


== Introduction ==
== 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.
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. A [https://web.archive.org/web/20080327111126/http://www-128.ibm.com/developerworks/linux/library/l-linuxvirt/?ca=dgr-lnxw01Virtual-Linux good article on IBM DeveloperWorks (M Tim Jones, Dec 2006, archived)] Web site illustrates the four main different virtualization families, namely hardware emulation, hardware-assisted virtualization, para-virtualization (PV) and containers/zones.


At time of writing, Fedora includes full support for the following virtualization technologies
=== Hardware Emulation ===
[[File:Virtualization_Hardware_Emulation.png|200px|thumb|Hardware Emulation Virtualization]]


* [http://www.linux-kvm.org/ 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.
Hardware emulation uses a VM to simulate the required hardware. A few implementations:
* [http://bellard.org/qemu/ 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).
* [http://bochs.sourceforge.net Bochs]
* [http://xen.org/ 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  [[Features/XenPvopsDom0|Xen Dom0 support]] in upstream Linux.
* [http://wiki.qemu.org QEMU]
* [http://kraxel.fedorapeople.org/xenner/ 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. [http://openvz.org/ 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.
=== Full Virtualization ===
[[File:Virtualization_Full.png|200px|thumb|Full Virtualization]]


Anticipating this diversification of technology, since the days of Fedora Core 5, all core management applications have been built on top of the [http://libvirt.org libvirt] toolkit, which offers a technology independent API for managing virtual systems.
Full virtualization uses a hypervisor (a.k.a. VMM, standing for Virtual Machine Monitor) to share the underlying hardware. A few implementations:
* [http://www.linux-kvm.org KVM]/[http://wiki.qemu.org QEMU] is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. KVM is part of [http://et.redhat.com RedHat Emerging Technologies (ET)].
* [http://xenproject.org Xen] is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. Xen has been the solution of choice for RedHat EL distributions since 2005. The kernel-2.6.18 dropped support for Xen, but the necessary modules/modifications have been added to the upstream kernel again, from 2.6.37 for DomU (guests) and from 3.0 for Dom0 (base domain, part of the host). Therefore, Xen Dom0 host support, that was dropped after Fedora 8, it has now been re-introduced, from Fedora 16 (see [[Features/XenPvopsDom0|Xen Dom0 support]])
* [http://www.virtualbox.org VirtualBox] is a full virtualization solution for x86 and AMD64/Intel64 hardware. Sun Microsystems started that project, which is now fully supported by Oracle. There is a dual licencing scheme, among which GPLv2. Allegedly VirtualBox is one of the fastest full virtualization solutions.


== History ==
=== Para-Virtualization (PV) ===
[[File:Virtualization_Para.png|200px|thumb|Para-Virtualization]]


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 | Virtualization History]] page.
Paravirtualization shares the process with the guest operating system. A few implementations:
* [http://www.linux-kvm.org KVM] (see above).
* [http://xen.org Xen] (see above).
* [http://kraxel.fedorapeople.org/xenner/ xenner] is a utility allowing paravirtualized Xen guests to be run using KVM.


== News ==
=== Operating System-level virtualization ===
[[File:Virtualization_Containers.png|200px|thumb|Containers-based Virtualization]]


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 [[Virtualization/News | archive of virtualization news]]
Operating system-level virtualization partitions a host into insulated guest, which are therefore as kinds of chroot, but with much stronger resource isolation. Hence, we often speak about containers or zones to refer to that family of virtualization. A few implementations:
* [[Docker]] isolate a single process in its own environment
* [[sandboxing|sandbox]]
* [http://wiki.openvz.org OpenVZ]... and the Debian-based ProxMox for the off-the-shelf server
* [[LXC]] (Linux Containers)
* [http://linux-vserver.org/ Linux-VServer], which does not seem to be no longer active (the last news is dated back in 2009)


== Getting Started ==
=== Fedora Support ===
At time of writing, Fedora includes full support for [http://www.linux-kvm.org/ KVM]/[http://wiki.qemu.org/ QEMU], [http://xen.org/ Xen] and [http://lxc.sourceforge.net LXC].


See [[getting started with virtualization]] for an excellent overview to using the virtualization capabilities in Fedora.
A number of third parties (e.g., [http://rpmfusion.org RPMFusion]) provide add-on packages for other virtualization technologies: [http://openvz.org/ OpenVZ], [http://linux-vserver.org/ Linux-VServer], [http://www.virtualbox.org VirtualBox].


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


See [[How to debug Virtualization problems]] for some tips on reporting virtualization bugs to [https://bugzilla.redhat.com bugzilla].
=== Clouds ===
As Cloud-based infrastructures rely, by nature, on virtualization technologies, both subjects are therefore heavily inter-related. There is a [[Cloud_SIG |Cloud SIG]] (Special Interest Group) dedicated to the subject, worth to follow as well.


If you wish to help triaging and fixing virtualization bugs, [[virtualization bugs]] is a good starting point.
== 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 | Virtualization History]] page.


== Mailing List & IRC ==


To get in touch with Fedora virtualization users and developers try the [http://redhat.com/mailman/listinfo/fedora-virt fedora-virt] mailing list or [irc://irc.oftc.net/#virt #virt on irc.oftc.net].
== 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 [[Virtualization/News |archive of virtualization news]]


== Relevant Packages ==


Here's a catalogue of all the virtualization related packages in Fedora:
== Getting started ==
{{Anchor|Getting Started}}


=== Core Virtualization ===
See [https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-virtualization/index.html getting started with virtualization] for an excellent overview to using the virtualization capabilities in Fedora.


* {{package|kernel}} provides e.g. the kvm hypervisor core (kvm.ko), support for running as KVM and Xen guests etc.
A few [[magazine articles on virtualization]] have introductory material as well.
* {{package|qemu}} is a CPU and device emulator; it also acts as the userspace component of KVM
* {{package|libvirt}} is a toolkit for interacting with the various virtualization technologies
* {{package|xen}} provides the xen hypervisor and userspace components
* {{package|xenner}} allows Xen guests to be run on KVM
* {{package|bochs}} PC BIOS for QEMU
* {{package|gpxe}} PXE boot ROMs for QEMU
* {{package|vgabios}} video BIOS for QEMU
* {{package|openbios}} sparc/ppc BIOS for QEMU


=== Tools ===
== Bugs ==
See [[How to debug Virtualization problems]] for some tips on reporting virtualization bugs to [https://bugzilla.redhat.com bugzilla].


* {{package|virt-manager}} is a desktop user interface for managing virtual machines
If you wish to help triaging and fixing virtualization bugs, [[virtualization bugs]] is a good starting point. On the page [[Virtualization Preview Repository]], you shall find informations if you can be a ''potential virtualization tester''.
* {{package|virt-viewer}} is used by virt-manager to connect to a virtual machine's graphical console
* {{package|python-virtinst}} provides a python API for installing virtual machines, and a bunch of useful utilitis like virt-install and virt-clone
* {{package|gnome-applet-vm}} is a GNOME applet for monitoring and controlling virtual machines
* {{package|virt-top}} is a top-like utilitiy for virtual machines
* {{package|libguestfs}} provides an API and tools for accessing and modifying virtual machine disk images
* <code>guestfish</code> lets you access and modify virtual machine disk images from the command line
* <code>libguestfs-tools</code> provides useful tools: [http://libguestfs.org/virt-df.1.html virt-df], [http://libguestfs.org/virt-cat.1.html virt-cat], [http://libguestfs.org/virt-edit.1.html virt-edit], [http://libguestfs.org/virt-ls.1.html virt-ls], [http://libguestfs.org/virt-inspector.1.html virt-inspector], [http://libguestfs.org/virt-rescue.1.html virt-rescue], [http://libguestfs.org/virt-win-reg.1.html virt-win-reg]
* <code>libguestfs-mount</code> ([http://libguestfs.org/guestmount.1.html guestmount]) lets you mount virtual machine disk images on the host
* {{package|collected|collectd-libvirt}} gathers statistics from within virtual machines
* {{package|appliance-tools}} enables the building of virtual appliance images
* {{package|cobbler}} is a network boot server that can be used to provision virtual machines
* {{package|perl-Sys-Virt-TCK}} is a functional test suite for libvirt
* {{package|virt-v2v}} is a tool for converting virtual machines to use the KVM hypervisor


=== Language Bindings ===


For {{package|libvirt}}
== Mailing list and IRC ==
:* {{package|libvirt|libvirt-python}}
{{Anchor|Mailing List & IRC}}
:* {{package|perl-Sys-Virt}}
:* {{package|ruby-libvirt}}
:* {{package|ocaml-libvirt}}
:* {{package|libvirt-java}}


For {{package|libguestfs}}
To get in touch with Fedora virtualization users and developers try [irc://irc.oftc.net/#virt #virt on irc.oftc.net]. There isn't any designated virt mailing list, so try the standard Fedora lists like [https://lists.fedoraproject.org/mailman/listinfo/users users] or [https://lists.fedoraproject.org/mailman/listinfo/devel devel] lists.
:* {{package|libguestfs-java}}
:* {{package|ocaml-libguestfs}}
:* {{package|perl-libguestfs}}
:* {{package|python-libguestfs}}
:* {{package|ruby-libguestfs}}


=== Obsolete ===
== Relevant Packages ==
We have a page containing [[Virtualization packages|a catalogue of all the virtualization related packages]] in Fedora.


* {{package|kvm}} used to provide the userspace component of the kvm hypervisor. It has since been replaced by [https://admin.fedoraproject.org/pkgdb/packages/name/qemu qemu]
* {{package|etherboot}} has been replaced by {{package|gpxe}}
* {{package|virt-mem}} is going to be replaced by other virt tools


== oVirt ==
== oVirt ==
[http://ovirt.org/ oVirt] is a Fedora based project which provides small host images and a web-based virtual machine management console. See [https://fedorahosted.org/ovirt/ the website] to learn more and get involved.
== Other virtualization information ==
You can find more virtualization information at the [[:Category:Virtualization|virtualization category page]] on this wiki.


[http://ovirt.org/ oVirt] is a Fedora based project which provides small host images and a web-based virtual machine management console. See [http://ovirt.org/ the website] to learn more and get involved.


[[Category:Virtualization]]
[[Category:Virtualization]]

Latest revision as of 07:08, 29 October 2019

This page covers the efforts to integrate various virtualization technologies into Fedora. For information on using Fedora as a virtual machine, see Installing a Fedora Virtual Machine.

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. A good article on IBM DeveloperWorks (M Tim Jones, Dec 2006, archived) Web site illustrates the four main different virtualization families, namely hardware emulation, hardware-assisted virtualization, para-virtualization (PV) and containers/zones.

Hardware Emulation

Hardware Emulation Virtualization

Hardware emulation uses a VM to simulate the required hardware. A few implementations:

Full Virtualization

Full Virtualization

Full virtualization uses a hypervisor (a.k.a. VMM, standing for Virtual Machine Monitor) to share the underlying hardware. A few implementations:

  • KVM/QEMU is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. KVM is part of RedHat Emerging Technologies (ET).
  • Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. Xen has been the solution of choice for RedHat EL distributions since 2005. The kernel-2.6.18 dropped support for Xen, but the necessary modules/modifications have been added to the upstream kernel again, from 2.6.37 for DomU (guests) and from 3.0 for Dom0 (base domain, part of the host). Therefore, Xen Dom0 host support, that was dropped after Fedora 8, it has now been re-introduced, from Fedora 16 (see Xen Dom0 support)
  • VirtualBox is a full virtualization solution for x86 and AMD64/Intel64 hardware. Sun Microsystems started that project, which is now fully supported by Oracle. There is a dual licencing scheme, among which GPLv2. Allegedly VirtualBox is one of the fastest full virtualization solutions.

Para-Virtualization (PV)

Para-Virtualization

Paravirtualization shares the process with the guest operating system. A few implementations:

  • KVM (see above).
  • Xen (see above).
  • xenner is a utility allowing paravirtualized Xen guests to be run using KVM.

Operating System-level virtualization

Containers-based Virtualization

Operating system-level virtualization partitions a host into insulated guest, which are therefore as kinds of chroot, but with much stronger resource isolation. Hence, we often speak about containers or zones to refer to that family of virtualization. A few implementations:

  • Docker isolate a single process in its own environment
  • sandbox
  • OpenVZ... and the Debian-based ProxMox for the off-the-shelf server
  • LXC (Linux Containers)
  • Linux-VServer, which does not seem to be no longer active (the last news is dated back in 2009)

Fedora Support

At time of writing, Fedora includes full support for KVM/QEMU, Xen and LXC.

A number of third parties (e.g., RPMFusion) provide add-on packages for other virtualization technologies: OpenVZ, Linux-VServer, VirtualBox.

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.

Clouds

As Cloud-based infrastructures rely, by nature, on virtualization technologies, both subjects are therefore heavily inter-related. There is a Cloud SIG (Special Interest Group) dedicated to the subject, worth to follow as well.

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.

A few magazine articles on virtualization have introductory material as well.

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. On the page Virtualization Preview Repository, you shall find informations if you can be a potential virtualization tester.


Mailing list and IRC

To get in touch with Fedora virtualization users and developers try #virt on irc.oftc.net. There isn't any designated virt mailing list, so try the standard Fedora lists like users or devel lists.

Relevant Packages

We have a page containing a catalogue of all the virtualization related packages in Fedora.


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.


Other virtualization information

You can find more virtualization information at the virtualization category page on this wiki.