From Fedora Project Wiki

No edit summary
(rough draft initial update for f13)
Line 1: Line 1:
{{Admon/warning | Document is Final | The contents of this beat have been sent for translation for the GA version of the Release Notes.  Any additional changes to this beat will not appear until after the release of Fedora 12.  If you have zero-day changes, be sure to post a bug. }}
{{Admon/warning | Document is Draft | The contents of this beat are a rough draft for Fedora 13, and may still contain Fedora 12 info at the moment.}}


[[Category:Documentation]]
[[Category:Documentation]]
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.
=== Kernel Acceleration for KVM Networking ===
The [[Features/VHostNet | VHost Net]] feature moves the task of converting virtio descriptors to skbs and back from qemu userspace to the kernel driver. This was shown to reduce latency by a factor of 5, and improve bandwidth from 90% native to 95% of native on some systems.


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]].
It is activated by using -netdevice options (instead of -net) and adding vhost=on flag.  


A new library ([[Features/libguestfs|libguestfs]]) and an interactive tool (guestfish) is now available for accessing and modifying virtual machine disk images.
* http://fedoraproject.org/wiki/Features/VHostNet


=== Kernel SamePage Merging and Reduced Guest Memory Usage ===
=== KVM Stable PCI Addresses ===
Kernel SamePage Merging or KSM, allows identical memory pages to be merged by the kernel into a single page shared between one or more processes.
KVM guests in Fedora now have stable PCI addresses, reducing the chance that Windows guests will require reactivation as guest configuration is modified.  
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.  


For further details refer to:
KVM guest virtual machine devices retain their PCI address allocations as other devices are added or removed from the guest configuration.
* http://fedoraproject.org/wiki/Features/KSM
* http://lwn.net/Articles/306704/
 
===  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.
Users of KVM guests using huge page backed memory should experience improved performance with some savings in host memory consumption. The performance benefit is workload dependent.Using huge pages for guest memory does have a downside, however - you can no longer swap nor balloon guest memory.
 
For further details refer to:
* http://fedoraproject.org/wiki/Features/KVM_Huge_Page_Backed_Memory


=== KVM NIC Hotplug ===
* http://fedoraproject.org/wiki/Features/KVM_Stable_PCI_Addresses
Network interfaces may now be added to a running KVM guest using {{package|libvirt}}/{{package|virt-manager}} without the need to restart the guest.
 
For further details refer to:
* http://fedoraproject.org/wiki/Features/KVM_NIC_Hotplug
 
=== KVM qcow2 Performance ===
The native disk image file format of <code>qemu</code> is <code>qcow2</code>. Qcow2 provides enhanced features over raw images, including: base images, snapshots, compression,  and encryption.
 
Users wishing to protect guest machine data from host crashes commonly disable write caching on the host. Previously, this led to very poor performance for guests in qcow2 images.
 
The I/O performance of qcow2 disk images has been greatly improved.
Users who did not use qcow2 because of the poor performance may consider to switch and take advantage of the additional features the format provides over raw disk images.
 
For further details refer to:
* http://fedoraproject.org/wiki/Features/KVM_qcow2_Performance
* http://www.gnome.org/~markmc/qcow-image-format.html
 
=== KVM Stable Guest ABI ===
KVM guests are presented with an emulated hardware platform or application binary interface that includes (e.g. a CPU model, APIC, PIT, ACPI tables, IDE/USB/VGA controllers, NICs etc.). When QEMU is updated to a new version, some aspects of this platform may change as new hardware capabilities are added. This is problematic for Windows guests where a guest ABI change may require a installation to be reactivated.
 
Guest virtual machines will now be presented with the same ABI across QEMU upgrades.
 
For further details refer to:
* http://fedoraproject.org/wiki/Features/KVM_Stable_Guest_ABI
* http://fedoraproject.org/wiki/Features/KVM_Stable_Guest_ABI
* http://fedoraproject.org/wiki/KVM_Stable_Guest_ABI_Design_Notes
=== libguestfs Library for Manipulation of Virtual Machines ===
Added very late in the Fedora 11 development cycle, {{package|libguestfs}} is now an official feature in Fedora 12. 
<code>libguestfs</code> is a library for accessing and modifying guest disk images. Using Linux <code>kernel</code> and <code>QEMU</code> code, <code>libguestfs</code> can access any type of guest filesystem that Linux and <code>QEMU</code> can.
The following tools are provided or augmented by <code>libguestfs</code>:
* Bindings for OCaml, Perl, Python, Ruby, and Java programming languages.
* [http://libguestfs.org/guestfish.1.html guestfish] - Provides an interactive shell for editing virtual machine filesystems and executing commands in the context of the guest.
* [http://libguestfs.org/virt-df.1.html virt-df] - Displays free space on virtual machine filesystems
* [http://libguestfs.org/virt-inspector.1.html virt-inspector] - Displays OS version, kernel, drivers, mount points, applications, etc. in a virtual machine.
* [http://libguestfs.org/virt-cat.1.html virt-cat] - "Cat" out any file from inside a virtual machine
For further details refer to:
* http://fedoraproject.org/wiki/Features/libguestfs
* http://libguestfs.org/
=== Network Interface Management ===
Commonly used host network configurations, like bridges, bonds, VLAN's and sensible combinations thereof may now be created
using the general-purpose network configuration library, {{package|netcf}}.
Enhancements to the <code>libvirt</code> API expose this new functionality to remote managment hosts with <code>libvirtd</code>.
For further details refer to:
* http://fedoraproject.org/wiki/Features/Network_Interface_Management
* http://fedorahosted.org/netcf/
* http://www.libvirt.org/remote.html
===  Single Root I/O Virtualization ===
Single Root I/O Virtualization is a PCI feature which allows virtual functions (VF) to be created that share the resources of a physical function (PF). The VF devices are assigned to guest virtual machines and appear as physical PCI devices inside the guest. Because the guest OS is effectively driving the hardware directly, the I/O performance is on par with bare metal performance.
For further details refer to:
* http://fedoraproject.org/wiki/Features/SR-IOV
* http://www.pcisig.com/specifications/iov/
* http://fedoraproject.org/wiki/Features/KVM_PCI_Device_Assignment


=== gPXE now Default for Guests ===
=== Virt x2apic ===
<code>QEMU</code> guests now make use of the more modern and currently maintained {{package|gpxe}}
X2apic improves guest performance by reducing the overhead of APIC access, which is used to program timers and for issuing inter-processor interrupts. By exposing x2apic to guests, and by enabling the guest to utilize x2apic, we improve guest performance.  
rather than the deprecated <code>etherboot</code> tool for PXE booting.


For further details refer to:
Fedora 13 supports x2apic in both the host and guest roles.
* http://fedoraproject.org/wiki/Features/VirtgPXE
* http://etherboot.org/wiki/index.php


=== Virt Privileges ===
* http://fedoraproject.org/wiki/Features/Virtx2apic - '''Percentage of completion: 90%'''
Changes have been introduced for QEMU/KVM virtual machines to improve host security in the event of a flaw in the QEMU binary.


* Permissions on {{filename|/dev/kvm}} have been updated to allow unprivileged users to utilize KVM hardware acceleration.
=== Virtio-Serial ===
* QEMU processes spawned by <code>virt-manager</code> on a local desktop install now run as the desktop user.
The virtio-console pci device is now equipped to handle multiple console ports as well as generic ports for guests running on top of qemu and KVM. This facilitates simple communication between guest and host.
* QEMU processes spawned by the privileged <code>libvirtd</code> daemon now run as an unprivileged account, user 'qemu', group 'qemu'.
* <code>libvirtd</code> will change ownership of any disks assigned to a virtual machine at startup, to user 'qemu', group 'qemu', except for readonly/shared disks.
* To revert to previous Fedora behaviour of running all QEMU instances as 'root', two config parameters are introduced in {{filename|/etc/libvirt/qemu.conf}}. It is not recommended to change these.


For further details refer to:
* http://fedoraproject.org/wiki/Features/VirtioSerial
* http://fedoraproject.org/wiki/Features/VirtPrivileges
 
=== Virt Storage Management ===
Fibre Channel N_Port ID Virtualization or NPIV allows the creation of multiple virtual N_Ports on a single physical host bus adapter.
The <code>libvirt</code> node device APIs have been extended to create and destroy virtual adapters using NPIV.
 
The APIs permitting storage discovery and pool creation have been extended to discover and rescan storage on a per-SCSI-host basis.
Administrators may now discover, configure, and provision storage for virtual machines without the need for multiple tools.
 
For further details refer to:
* http://fedoraproject.org/wiki/Features/VirtStorageManagement
* http://libvirt.org/storage.html


=== Other Improvements ===
=== Other Improvements ===
==== Libvirt Technology Compatibility Kit ====
Fedora now includes the <code>libvirt</code> Technology Compatibility Kit (TCK). The TCK is a functional test suite which provides detailed reports on functionality available for each <code>libvirt</code> driver and can be used to quickly identify failures or regressions in the development of Fedora's virtualization features.
For further details refer to:
* http://fedoraproject.org/wiki/Features/VirtTCK
* http://libvirt.org/drivers.html
==== Virtualization Technology Preview Repo ====
==== Virtualization Technology Preview Repo ====
The Virtualization Preview Repository has been created for people who would like to test the very latest virtualization related packages. This repo is intended primarily as an aid to testing and early experimentation. It is not intended for 'production' deployment.  
The Virtualization Preview Repository exists for people who would like to test the very latest virtualization related packages. This repo is intended primarily as an aid to testing and early experimentation. It is not intended for 'production' deployment.  


For further details refer to:
For further details refer to:
Line 135: Line 42:


=== Xen Kernel Support ===
=== Xen Kernel Support ===
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.33 and Fedora 13.
The <code>kernel</code> package in Fedora 13 supports booting as a guest domU, but will not function as a dom0 until such support is provided upstream.


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 12 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 13 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. }}
Line 149: Line 56:
* http://fedoraproject.org/wiki/Features/XenPvops
* http://fedoraproject.org/wiki/Features/XenPvops
* http://fedoraproject.org/wiki/Features/XenPvopsDom0
* http://fedoraproject.org/wiki/Features/XenPvopsDom0
<center>'''Changed Packages'''</center>
{|style="width:100%"
|-
! Package || <center>Fedora 11</center> || <center>Fedora 12</center> || Upstream URL
|-
| {{Package|libvirt}} || <center>0.6.2</center> || <center>0.7.0</center> || http://libvirt.org/
|-
| {{Package|python-virtinst}} || <center>0.400.3</center> || <center>0.500.0</center> || http://virt-manager.org
|-
| {{Package|qemu-kvm}} || <center>0.10</center> || <center>0.10.91</center> || http://www.qemu.org/
|-
| {{Package|virt-manager}} || <center>0.7.0</center> || <center>0.8.0</center> || http://virt-manager.org/
|-
| {{Package|virt-viewer}} || <center>0.0.3</center> || <center>0.2.0</center> || http://virt-manager.org/
|}
13 packages, 5 changed, 8 unchanged.


  <noinclude>[[Category:Release Notes]]<noinclude>
  <noinclude>[[Category:Release Notes]]<noinclude>

Revision as of 19:01, 8 February 2010

Document is Draft
The contents of this beat are a rough draft for Fedora 13, and may still contain Fedora 12 info at the moment.

Virtualization

Kernel Acceleration for KVM Networking

The VHost Net feature moves the task of converting virtio descriptors to skbs and back from qemu userspace to the kernel driver. This was shown to reduce latency by a factor of 5, and improve bandwidth from 90% native to 95% of native on some systems.

It is activated by using -netdevice options (instead of -net) and adding vhost=on flag.

KVM Stable PCI Addresses

KVM guests in Fedora now have stable PCI addresses, reducing the chance that Windows guests will require reactivation as guest configuration is modified.

KVM guest virtual machine devices retain their PCI address allocations as other devices are added or removed from the guest configuration.

Virt x2apic

X2apic improves guest performance by reducing the overhead of APIC access, which is used to program timers and for issuing inter-processor interrupts. By exposing x2apic to guests, and by enabling the guest to utilize x2apic, we improve guest performance.

Fedora 13 supports x2apic in both the host and guest roles.

Virtio-Serial

The virtio-console pci device is now equipped to handle multiple console ports as well as generic ports for guests running on top of qemu and KVM. This facilitates simple communication between guest and host.

Other Improvements

Virtualization Technology Preview Repo

The Virtualization Preview Repository exists for people who would like to test the very latest virtualization related packages. This repo is intended primarily as an aid to testing and early experimentation. It is not intended for 'production' deployment.

For further details refer to:

Xen Kernel Support

The kernel package in Fedora 13 supports booting as a guest domU, but will not function as a dom0 until such support is provided upstream.

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

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

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


For further details refer to: