Hi, All I found some discussion about VM live-snapshot, but haven't seen any progress. https://lists.gnu.org/archive/html/qemu-devel/2013-08/msg02125.html http://markmail.org/thread/shneezha7kmtosvb#query:+page:1+mid:shneezha7kmtosvb+state:results Here I have another proposal, based on the live-migration scheme, add consistent memory state tracking and saving. The idea is simple: 1.First round use live-migration to save all memory to a snapshot file. 2.intercept the action of memory-modify, save old pages to a temporary file and mark dirty-bits, 3.Merge temporary file to the original snapshot file Detailed process: (1)Pause VM (2) Save the device status to a temporary file (live-migration already supported ) (3) Make disk snapshot (4) Enable page dirty log and old dirty pages save function(which we need to add) (5) Resume VM (6) Begin the first round of iteration, we save the entire contents of the VM memory pages to the snapshot file (7) In the second round of iteration , we save the old page to the snapshot file (8) Merge data of device status which is pre-saved in temporary files to the snapshot file (8) End ram snapshot and some cleanup work Due to memory-modifications may happen in kvm, qemu, or vhost, the key-part is how we can provide common page-modify-tracking-and-saving api, we completed a prototype by simply add modified-page tracking/saving function in qemu, and it seems worked fine. Is this program acceptable? or are there any other better suggestions? Thanks Peter Huang ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�