implement suspend to disk for vms

the idea is the following:

add a 'suspending' lock
halt execution of the vm
save the vmstate to a file/disk/etc.
hard poweroff the vm (qmp quit)
add 'suspended' lock

on the next start check for 'suspended' lock
resume from saved state

the suspending lock prevents any changes to the vm that would prevent a resume
(config change, migration, etc)
the suspended lock prevents starting a vm that is being suspended

changes from v2:
* use 2 locks
* better error handling/logging
* only stop explicitly when not using 'todisk' (savevm-start handles that)
* leave prepare state in QemuConfig

changes from v1:
* rename variable s/stat/state/
* abort if vm is locked with 'backup' lock
* remove the lock on error
* include date into state file name and make the parameters more explicit
* pull out multiple uses of has_lock
* add patch for explicitly giving the target storage for the state

Dominik Csapak (5):
  correct comment about size
  implement suspend to disk for running vms
  resume suspended vm on start
  add ability to suspend a vm to disk from the api
  add statestorage parameter to suspend API

 PVE/API2/Qemu.pm  | 21 +++++++++++-
 PVE/QemuConfig.pm | 28 +++++++++++-----
 PVE/QemuServer.pm | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 3 files changed, 132 insertions(+), 16 deletions(-)

-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to