- Launchpad Entry: NovaSpec:foo or SwiftSpec:foo
Enabling KVM to pausing instance and suspending instance. The difference between "pause" and "suspend" is that "Suspend stores the state of VM on disk while pause stores it in memory (RAM)" (quoted from <http://forums.citrix.com/thread.jspa?messageID=1375993>) In other word, suspend is similar to "hybernation".
Some methods will be added to Openstack compute to pause/suspend instances.
end-use impact of this change
Nothing specific. This feature is already implemented for xenserver, and all implementation for KVM has been done.
This feature has already implemented for xenserver, but not KVM.
1. User can use "suspend" on annual maintenance day. Instead of terminating instances, "suspend" can be used for reducing risks having a problem on restarting his system. 2. instance which is not frequently used can be "suspend". Admins can save physical server's resource. 3. User can use "pause" when they want to get backup of instances, and instance is writing data to disks, backup may fails, then he may wish instance would stop while backup has been done.
Xenserver "pause" and "suspend" might not be exactly same as KVM's, but, "pause" in xenserver is similar to "suspend" in KVM, also, "suspend" in xenserver is similar to "save" in KVM. So "suspend" in KVM will be implemented as "pause", and "save" in KVM will be implemented as "suspend".
The code to do pause/suspend to driver layer(nova.virt.libvirt_conn.LibvirtConnection). Any inevitable operation except driver layer have already been implemented since works for xenserver has already been finished.
In LibvirtConnection class, pause(), unpause(), suspend(), resume() will be implemented(currently, those methods just throws NotImplementationError()).
This need not be added or completed until the specification is nearing beta.
BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.