(re-work this substantially to clarify) |
(update status, add required package versions) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 18: | Line 18: | ||
* Targeted release: [[Releases/12|Fedora 12]] | * Targeted release: [[Releases/12|Fedora 12]] | ||
* Last updated: 2009- | * Last updated: 2009-08-05 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
=== Completed === | === Completed === | ||
Line 32: | Line 27: | ||
* QEMU patches [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01718.html posted] to add the <code>pc-0.11</code> machine type and alias it to <code>pc</code> | * QEMU patches [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01718.html posted] to add the <code>pc-0.11</code> machine type and alias it to <code>pc</code> | ||
* libvirt patch [http://www.redhat.com/archives/libvir-list/2009-July/msg00592.html posted] to make it canonicalize QEMU machine types when the guest is first created | * libvirt patch [http://www.redhat.com/archives/libvir-list/2009-July/msg00592.html posted] to make it canonicalize QEMU machine types when the guest is first created | ||
* Ensure the remaining patches for libvirt and QEMU are accepted and included in Fedora 12 | |||
* Testing | |||
== Detailed Description == | == Detailed Description == | ||
Line 51: | Line 48: | ||
== How To Test == | == How To Test == | ||
* Ensure | * Ensure that <code>libvirt >= 0.7.0-1</code> and <code>qemu-kvm >= 2:0.10.91-0.4.rc1</code> is installed | ||
* Install a guest using e.g. <code>virt-install</code> | * Install a guest using e.g. <code>virt-install</code> | ||
* Check the XML configuration of the guest using <code>virsh dumpxml</code> and verify the <code>machine</code> property of the <code><os><type></code> element is <code>pc-0.11</code> | * Check the XML configuration of the guest using <code>virsh dumpxml</code> and verify the <code>machine</code> property of the <code><os><type></code> element is <code>pc-0.11</code> | ||
Line 80: | Line 76: | ||
* [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01718.html Patches] to add the <code>pc-0.11</code> machine type and alias it to <code>pc</code> | * [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01718.html Patches] to add the <code>pc-0.11</code> machine type and alias it to <code>pc</code> | ||
* [http://www.redhat.com/archives/libvir-list/2009-July/msg00592.html libvirt patch] | * [http://www.redhat.com/archives/libvir-list/2009-July/msg00592.html libvirt patch] | ||
* [[KVM_Stable_Guest_ABI_Design_Notes Notes]] on the potential solutions considered. | * [[KVM_Stable_Guest_ABI_Design_Notes|Notes]] on the potential solutions considered. | ||
== Release Notes == | == Release Notes == | ||
Line 90: | Line 86: | ||
* See [[Talk:Features/KVM Stable Guest ABI]] | * See [[Talk:Features/KVM Stable Guest ABI]] | ||
[[Category: | [[Category:FeatureAcceptedF12]] | ||
[[Category:Virtualization|KVM Stable Guest ABI]] | [[Category:Virtualization|KVM Stable Guest ABI]] | ||
[[Category:F12_Virt_Features|KVM Stable Guest ABI]] | [[Category:F12_Virt_Features|KVM Stable Guest ABI]] |
Latest revision as of 16:57, 5 August 2009
KVM Stable Guest ABI
Summary
Allow guest virtual machines to be presented with the same ABI across QEMU upgrades.
The idea is that the hardware profile of the virtual machine should not change when QEMU is upgraded.
This is particularly important for Windows guests where a guest ABI change may require Windows installs to be reactivated.
See also Features/KVM Stable PCI Addresses.
Owner
- Name: Mark McLoughlin
Current status
- Targeted release: Fedora 12
- Last updated: 2009-08-05
- Percentage of completion: 100%
Completed
- Settled on a solution.
- QEMU patches to add the
pc-0.10
machine type posted and accepted for 0.11 - QEMU patches posted to add the
pc-0.11
machine type and alias it topc
- libvirt patch posted to make it canonicalize QEMU machine types when the guest is first created
- Ensure the remaining patches for libvirt and QEMU are accepted and included in Fedora 12
- Testing
Detailed Description
KVM guests are presented with an emulated hardware platform 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 to that platform.
From the guest OS point of view, this is equivalent to updating a physical hardware platform and may, in the case of Windows, require the OS install to be activated. To avoid such issues, guest machines should transparently continue to run on their original platform, even when QEMU is upgraded.
A number of solutions were discussed upstream. In the end, it was decided that each release should add a new machine type (e.g. qemu -M pc-0.11
) and the pc
machine type should be an alias for the latest. This allows libvirt to determine what the latest machine type is when the guest is created and use that machine type in future.
Benefit to Fedora
This feature would remove a significant issue with Fedora's virtualization support of Windows.
Scope
The work required is limited to QEMU and libvirt. No other Fedora packages would be affected.
How To Test
- Ensure that
libvirt >= 0.7.0-1
andqemu-kvm >= 2:0.10.91-0.4.rc1
is installed - Install a guest using e.g.
virt-install
- Check the XML configuration of the guest using
virsh dumpxml
and verify themachine
property of the<os><type>
element ispc-0.11
User Experience
It should be possible to upgrade QEMU without causing Window's guests to require reactivation.
Dependencies
The main dependency is agreeing upstream on the QEMU part of the solution.
Contingency Plan
No contingency plan required; if one of the solutions is not implemented, the feature will not be available and nothing else will be affected.
Documentation
- Izik's patch (November 2007)
- Markus's patch series (Jan 2009)
- Markus's machine description format RFC (February 2009)
- Markus's tenth iteration of his machine description patches (April 2009)
- First thread where saveabi idea came up (May 2009)
- Most recent discussion (June 2009)
- Patch adding the pc-0-10 machine type
- Gerd's patches to add the pc-0.11 machine type
- Patches to add the
pc-0.11
machine type and alias it topc
- libvirt patch
- Notes on the potential solutions considered.
Release Notes
KVM guests in Fedora 12 now have a stable ABI, reducing the chance that Windows guests will require reactivation when QEMU is upgraded in future.