From Fedora Project Wiki

(very preliminary start on f12 content)
(→‎Virtualization: begin to add headings for each feature)
Line 6: Line 6:


== Virtualization ==
== Virtualization ==
Virtualization in Fedora 12 includes major changes, and new features, that continue to support KVM, Xen, and many other virtual machine platforms.
KVM and qemu have gained a number of new features in this release. KVM guest memory usage and performance is improved by the addition of [[Features/KSM|KSM]] and [[Features/KVM Huge Page Backed Memory|KVM Huge Page Backed Memory]]. The [[Features/KVM qcow2 Performance|performance of the qcow2 image format]] is greatly improved. Support for both [[Features/SR-IOV|SR-IOV]] and [[Features/KVM NIC Hotplug|NIC hotplug]] has been added. Finally, [[Features/VirtgPXE|gPXE]] is now used in place of etherboot for guest PXE booting.
On the libvirt side, APIs have been added for [[Features/VirtStorageManagement|storage management]] and [[Features/Network Interface Management|network interface management]]. libvirt now also [[Features/VirtPrivileges|runs qemu processes unprivileged]].
A new library ([[Features/libguestfs|libguestfs]]) and an interactive tool (guestfish) is now available for accessing and modifying virtual machine disk images.


Virtualization in Fedora 12 includes major changes, and new features, that continue to support KVM, Xen, and many other virtual machine platforms.
=== Kernel SamePage Merging and Reduced Guest Memory Usage ===
 
KSM (Kernel SamePage Merging) allows identical memory pages to be merged by the kernel into a single page shared between one or more processes.
'''The final list of virt features for Fedora 12<ref>[[:Category:F12_Virt_Features]]</ref> looks like:'''
This feature is leveraged by KVM to allow multiple, similar, guest virtual machines to have a reduced memory footprint. Because memory is shared, the combined memory usage of the guests is reduced.  
 
* [[Features/KSM|KSM]]
* http://lwn.net/Articles/306704/


* [[Features/KSM|KSM]] - Allow KVM guest virtual machines to share identical memory pages. This is especially useful when running multiple guests from the same or similar base operating system image. Because memory is shared, the combined memory usage of the guests is reduced.
===  KVM Huge Page Backed Memory ===
* [[Features/KVM_Huge_Page_Backed_Memory | KVM Huge Page Backed Memory]] - Enable KVM guests to use huge page backed memory in order to reduce memory consumption and improve performance by reducing CPU cache pressure.  
* [[Features/KVM_Huge_Page_Backed_Memory | KVM Huge Page Backed Memory]] - Enable KVM guests to use huge page backed memory in order to reduce memory consumption and improve performance by reducing CPU cache pressure.  
=== KVM NIC Hotplug ===
* [[Features/KVM_NIC_Hotplug|KVM NIC Hotplug]] - Allow the addition of a guest network interface (NIC) a guest virtual machine without needing to restart the guest.
* [[Features/KVM_NIC_Hotplug|KVM NIC Hotplug]] - Allow the addition of a guest network interface (NIC) a guest virtual machine without needing to restart the guest.
=== KVM qcow2 Performance ===
* [[Features/KVM qcow2 Performance | KVM qcow2 Performance]] - Improve the I/O performance of virtual machines using disk images in the qcow2 image format.
* [[Features/KVM qcow2 Performance | KVM qcow2 Performance]] - Improve the I/O performance of virtual machines using disk images in the qcow2 image format.
===KVM Stable Guest ABI ===
* [[Features/KVM_Stable_Guest_ABI|KVM Stable Guest ABI]] - Allow guest virtual machines to be presented with the same application binary interface across QEMU upgrades.
* [[Features/KVM_Stable_Guest_ABI|KVM Stable Guest ABI]] - Allow guest virtual machines to be presented with the same application binary interface across QEMU upgrades.
=== libguestfs library for accessing and modifying virtual machines ===
* [[Features/libguestfs | libguestfs ]] - A library for accessing and modifying virtual machine disk images.  guestfish is an interactive shell tool for editing virtual machine disk images. Technically, this actually launched in F11, but not as a "Feature"<ref>http://docs.fedoraproject.org/release-notes/f11/en-US/sect-Release_Notes-Virtualization.html</ref>.
* [[Features/libguestfs | libguestfs ]] - A library for accessing and modifying virtual machine disk images.  guestfish is an interactive shell tool for editing virtual machine disk images. Technically, this actually launched in F11, but not as a "Feature"<ref>http://docs.fedoraproject.org/release-notes/f11/en-US/sect-Release_Notes-Virtualization.html</ref>.
=== Network Interface Management ===
* [[Features/Network_Interface_Management|Network Interface Management]] - Provide tools to easily set up commonly used network configurations, like bridges, bonds, vlan's and sensible combinations thereof, in particular for virtualized hosts.  
* [[Features/Network_Interface_Management|Network Interface Management]] - Provide tools to easily set up commonly used network configurations, like bridges, bonds, vlan's and sensible combinations thereof, in particular for virtualized hosts.  
===  Single Root I/O Virtualization ===
* [[Features/SR-IOV | SR-IOV]] - Single Root I/O Virtualization (SR-IOV) is a PCI feature which allows virtual functions (VF) to be created that share the resources of a physical function (PF).  
* [[Features/SR-IOV | SR-IOV]] - Single Root I/O Virtualization (SR-IOV) is a PCI feature which allows virtual functions (VF) to be created that share the resources of a physical function (PF).  
=== VirtgPXE ===
* [[Features/VirtgPXE | VirtgPXE]] - Replace the deprecated etherboot pxe booting infrastructure with the more modern and currently upstream supported gpxe.  
* [[Features/VirtgPXE | VirtgPXE]] - Replace the deprecated etherboot pxe booting infrastructure with the more modern and currently upstream supported gpxe.  
=== Virt Privileges ===
* [[Features/VirtPrivileges|Virt Privileges]] - Improve security by adjusting the privileges of QEMU processes managed by libvirt. Also, allow KVM to be used by unprivileged users.
* [[Features/VirtPrivileges|Virt Privileges]] - Improve security by adjusting the privileges of QEMU processes managed by libvirt. Also, allow KVM to be used by unprivileged users.
=== Virt Storage Management ===
* [[Features/VirtStorageManagement|Virt Storage Management]] - Enable VM hosts to discover new SAN storage and issue NPIV operations.  
* [[Features/VirtStorageManagement|Virt Storage Management]] - Enable VM hosts to discover new SAN storage and issue NPIV operations.  
* [[Features/VirtTCK|Libvirt Technology Compatibility Kit]] - Provide a functional test suite for virtualization and report on hypervisor compatability. "Note, FESCo didn't approve TCK as a feature, but that should't stop us pimping it :-)"
 
=== Other Improvements ===
==== Libvirt Technology Compatibility Kit ====
* [[Features/VirtTCK|Libvirt Technology Compatibility Kit]] - Provides a functional test suite for virtualization and report on hypervisor compatability.


=== Xen Kernel Support ===
=== Xen Kernel Support ===
The <code>kernel</code> package in Fedora 11 supports booting as a guest domU, but will not function as a dom0 until such support is provided upstream. Work is ongoing and hopes are high that support will be included in <code>kernel</code> 2.6.30 and Fedora 12.
The <code>kernel</code> package in Fedora 12 supports booting as a guest domU, but will not function as a dom0 until such support is provided upstream. Work is ongoing and hopes are high that support will be included in <code>kernel</code> 2.6.30 and Fedora 12.


The most recent Fedora release with dom0 support is Fedora 8.  
The most recent Fedora release with dom0 support is Fedora 8.  


Booting a Xen domU guest within a Fedora 11 host requires the KVM based <code>xenner</code>. Xenner runs the guest kernel and a small Xen emulator together as a KVM guest.  
Booting a Xen domU guest within a Fedora 12 host requires the KVM based <code>xenner</code>. Xenner runs the guest kernel and a small Xen emulator together as a KVM guest.  


{{Admon/important | KVM requires hardware virtualization features in the host system.| Systems lacking hardware virtualization do not support Xen guests at this time. }}
{{Admon/important | KVM requires hardware virtualization features in the host system.| Systems lacking hardware virtualization do not support Xen guests at this time. }}

Revision as of 18:56, 30 August 2009


Note.png
Under Construction
Work to update this page for F12 has only just begun. You can see a copy of the F11 page here.

Virtualization

Virtualization in Fedora 12 includes major changes, and new features, that continue to support KVM, Xen, and many other virtual machine platforms.

KVM and qemu have gained a number of new features in this release. KVM guest memory usage and performance is improved by the addition of KSM and KVM Huge Page Backed Memory. The performance of the qcow2 image format is greatly improved. Support for both SR-IOV and NIC hotplug has been added. Finally, gPXE is now used in place of etherboot for guest PXE booting.

On the libvirt side, APIs have been added for storage management and network interface management. libvirt now also runs qemu processes unprivileged.

A new library (libguestfs) and an interactive tool (guestfish) is now available for accessing and modifying virtual machine disk images.

Kernel SamePage Merging and Reduced Guest Memory Usage

KSM (Kernel SamePage Merging) allows identical memory pages to be merged by the kernel into a single page shared between one or more processes. This feature is leveraged by KVM to allow multiple, similar, guest virtual machines to have a reduced memory footprint. Because memory is shared, the combined memory usage of the guests is reduced.

KVM Huge Page Backed Memory

  • KVM Huge Page Backed Memory - Enable KVM guests to use huge page backed memory in order to reduce memory consumption and improve performance by reducing CPU cache pressure.

KVM NIC Hotplug

  • KVM NIC Hotplug - Allow the addition of a guest network interface (NIC) a guest virtual machine without needing to restart the guest.

KVM qcow2 Performance

  • KVM qcow2 Performance - Improve the I/O performance of virtual machines using disk images in the qcow2 image format.

KVM Stable Guest ABI

  • KVM Stable Guest ABI - Allow guest virtual machines to be presented with the same application binary interface across QEMU upgrades.

libguestfs library for accessing and modifying virtual machines

  • libguestfs - A library for accessing and modifying virtual machine disk images. guestfish is an interactive shell tool for editing virtual machine disk images. Technically, this actually launched in F11, but not as a "Feature"[1].

Network Interface Management

  • Network Interface Management - Provide tools to easily set up commonly used network configurations, like bridges, bonds, vlan's and sensible combinations thereof, in particular for virtualized hosts.

Single Root I/O Virtualization

  • SR-IOV - Single Root I/O Virtualization (SR-IOV) is a PCI feature which allows virtual functions (VF) to be created that share the resources of a physical function (PF).

VirtgPXE

  • VirtgPXE - Replace the deprecated etherboot pxe booting infrastructure with the more modern and currently upstream supported gpxe.

Virt Privileges

  • Virt Privileges - Improve security by adjusting the privileges of QEMU processes managed by libvirt. Also, allow KVM to be used by unprivileged users.

Virt Storage Management

Other Improvements

Libvirt Technology Compatibility Kit

Xen Kernel Support

The kernel package in Fedora 12 supports booting as a guest domU, but will not function as a dom0 until such support is provided upstream. Work is ongoing and hopes are high that support will be included in kernel 2.6.30 and Fedora 12.

The most recent Fedora release with dom0 support is Fedora 8.

Booting a Xen domU guest within a Fedora 12 host requires the KVM based xenner. Xenner runs the guest kernel and a small Xen emulator together as a KVM guest.

Important.png
KVM requires hardware virtualization features in the host system.
Systems lacking hardware virtualization do not support Xen guests at this time.


For more information refer to: