qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC]VM live snapshot proposal


From: Huangpeng (Peter)
Subject: [Qemu-devel] [RFC]VM live snapshot proposal
Date: Mon, 3 Mar 2014 01:13:41 +0000

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]