(add some links) |
(update status, add required package versions) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
Allow [[Virtualization|guest virtual machines]] to be presented with the same ABI across QEMU upgrades. | Allow [[Virtualization|guest virtual machines]] to be presented with the same ABI across QEMU upgrades. | ||
This is | 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]]. | See also [[Features/KVM Stable PCI Addresses]]. | ||
Line 11: | Line 13: | ||
== Owner == | == Owner == | ||
* Name: [[User: | * Name: [[User:Markmc|Mark McLoughlin]] | ||
== Current status == | == Current status == | ||
* 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 === | ||
* | * Settled on a [[KVM Stable Guest ABI Design Notes|solution]]. | ||
* | * QEMU patches to add the <code>pc-0.10</code> machine type [http://lists.gnu.org/archive/html/qemu-devel/2009-07/threads.html#00478 posted] and [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01129.html accepted] for 0.11 | ||
* | * 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 | |||
* Ensure the remaining patches for libvirt and QEMU are accepted and included in Fedora 12 | |||
* Testing | * Testing | ||
== Detailed Description == | == Detailed Description == | ||
Line 36: | Line 36: | ||
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. | 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 | A number of [[KVM_Stable_Guest_ABI_Design_Notes|solutions]] were discussed upstream. In the end, it was decided that each release should add a new machine type (e.g. <code>qemu -M pc-0.11</code>) and the <code>pc</code> 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 == | == Benefit to Fedora == | ||
Line 104: | Line 44: | ||
== Scope == | == Scope == | ||
The work required is limited to QEMU and libvirt. No other Fedora packages would be affected. | |||
== How To Test == | == How To Test == | ||
* 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> | |||
* 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> | |||
== User Experience == | == User Experience == | ||
Line 121: | Line 63: | ||
No contingency plan required; if one of the solutions is not implemented, the feature will not be available and nothing else will be affected. | 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 == | == Documentation == | ||
Line 132: | Line 72: | ||
* First thread where [http://lists.gnu.org/archive/html/qemu-devel/2009-05/msg01491.html saveabi] idea came up (May 2009) | * First thread where [http://lists.gnu.org/archive/html/qemu-devel/2009-05/msg01491.html saveabi] idea came up (May 2009) | ||
* Most recent [http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00735.html discussion] (June 2009) | * Most recent [http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg00735.html discussion] (June 2009) | ||
* [http://lists.gnu.org/archive/html/qemu-devel/2009-07/threads.html#00481 Patch] adding the pc-0-10 machine type | |||
* Gerd's [http://lists.gnu.org/archive/html/qemu-devel/2009-07/msg01129.html patches] to add the pc-0.11 machine type | |||
* [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] | |||
* [[KVM_Stable_Guest_ABI_Design_Notes|Notes]] on the potential solutions considered. | |||
== Release Notes == | == Release Notes == | ||
Line 141: | Line 86: | ||
* See [[Talk:Features/KVM Stable Guest ABI]] | * See [[Talk:Features/KVM Stable Guest ABI]] | ||
[[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.