(More details and scope) |
(Update to 100% ... there's still UI bits that can be added but the feature is done and testable) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 18: | Line 18: | ||
* Targeted release: [[Releases/18 | Fedora 18 ]] | * Targeted release: [[Releases/18 | Fedora 18 ]] | ||
* Last updated: June 6 2012 | * Last updated: June 6 2012 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
== Detailed Description == | == Detailed Description == | ||
Line 44: | Line 44: | ||
* Packaging | * Packaging | ||
** get qemu 1.1 into Fedora (DONE) | ** get qemu 1.1 into Fedora (DONE) | ||
I think this means doing a 'virsh shutdown $vmname' on default Fedora gnome install will initiate a suspend though, where previously it would not. If qemu-ga is installed and configured, shutdown will work correctly. So maybe we just need to make sure all tools are setting up qemu-ga for new guests. | |||
Line 60: | Line 62: | ||
3. What are the expected results of those actions? | 3. What are the expected results of those actions? | ||
--> | --> | ||
From inside the guest, initiating suspend and hibernate should succeed. For a Fedora guest, this will be the command line utils | |||
pm-suspend | |||
pm-hibernate | |||
The guest should then appear as running (or shutoff? I need to confirm). | |||
XXX: how to we wake up the guest | |||
To initiate a suspend from the host on a VM, you can do: | |||
virsh dompmsuspend --target mem | |||
For hibernate, do | |||
virsh dompmsuspend --target disk | |||
== User Experience == | == User Experience == | ||
Line 78: | Line 95: | ||
<!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ --> | <!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ --> | ||
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. --> | <!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. --> | ||
* | * Suspend and hibernate now works from within KVM virtual machines. These can also be invoked on virtual machines from the host using virsh. | ||
== Comments and Discussion == | == Comments and Discussion == | ||
Line 84: | Line 101: | ||
[[Category: | [[Category:FeatureAcceptedF18]] | ||
<!-- When your feature page is completed and ready for review --> | <!-- When your feature page is completed and ready for review --> | ||
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | <!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | ||
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | <!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | ||
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> | <!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> |
Latest revision as of 15:25, 7 August 2012
Virt Guest Suspend/Hibernate support
Summary
Linux guests don't do S3/S4 properly right now due to missing functionality in the virtio layer to save state before hibernation and restore it after resume. The plan is to extend virtio and individual virtio drivers to handle hibernation, as well as userspace components like libvirt + qemu to enable everything.
Owner
- Name: Cole Robinson
- Email: crobinso@redhat.com
- Name: Amit Shah
- Email: amit.shah@redhat.com
Current status
- Targeted release: Fedora 18
- Last updated: June 6 2012
- Percentage of completion: 100%
Detailed Description
Hibernation is a standard feature on most OSes. Users can put the OS is a hibernation mode, switch off the computer, and later, on the next restart, continue from where they left off, including all their open browsing sessions and document editors. So far, Linux guests with virtio drivers haven't been able to resume properly after hibernation. This work will fix that, and users will be able to experience hibernation as they are used to on KVM-optimised paravirtual guests.
In addition, this feature tracks libvirt and qemu-ga additions that enable suspending/hibernating a VM from the host command line.
Benefit to Fedora
- Virtual machines act more like physical machines, which allows for better testing of the distro in a VM.
- Interesting feature to market for F18.
Scope
- Kernel
- Kernel suspend/resume support for virtio (DONE)
- QEMU
- S3/S4 Support in QEMU, Seabios (DONE, qemu 1.1)
- qemu guest agent API commands for s3/s4 (DONE, qemu 1.1)
- enable s3/s4 in seabios (not done? currently disabled with a patch in f17 due to some usability confusion)
- Libvirt
- API for initiating guest s3/s4, virsh support (DONE)
- s3/s4 guest event support (unknown, probably not a requirement)
- Apps
- ovirt usage (unknown)
- virt-manager usage (none, but probably not a requirement)
- Packaging
- get qemu 1.1 into Fedora (DONE)
I think this means doing a 'virsh shutdown $vmname' on default Fedora gnome install will initiate a suspend though, where previously it would not. If qemu-ga is installed and configured, shutdown will work correctly. So maybe we just need to make sure all tools are setting up qemu-ga for new guests.
How To Test
From inside the guest, initiating suspend and hibernate should succeed. For a Fedora guest, this will be the command line utils
pm-suspend pm-hibernate
The guest should then appear as running (or shutoff? I need to confirm). XXX: how to we wake up the guest
To initiate a suspend from the host on a VM, you can do:
virsh dompmsuspend --target mem
For hibernate, do
virsh dompmsuspend --target disk
User Experience
Virt users will now actually be able to suspend or hibernate their VMs like they would on a physical machine.
Dependencies
Kernel 3.4, which is already queued for F17. qemu 1.1, already in rawhide.
Contingency Plan
Since this is brand new functionality, if it doesn't make it in time for F18, nothing has changed. We just drop this feature page.
Documentation
Release Notes
- Suspend and hibernate now works from within KVM virtual machines. These can also be invoked on virtual machines from the host using virsh.