|
From: | Eric Blake |
Subject: | Re: [Qemu-block] [Qemu-devel] [PATCH 1/2] Add save-snapshot, load-snapshot and delete-snapshot to QAPI |
Date: | Tue, 13 Feb 2018 10:46:00 -0600 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 02/13/2018 08:48 AM, Daniel P. Berrangé wrote:
No, that's policy decision that doesn't matter from QMP pov. If the mgmt app wants the snapshot to be wrt to the initial time, it can simply invoke the "stop" QMP command before doing the live migration and "cont" afterwards.That would be non-live. I think Roman means a live snapshot that saves the state at the beginning of the operation. Basically the difference between blockdev-backup (state at the beginning) and blockdev-mirror (state at the end), except for a whole VM.That doesn't seem practical unless you can instantaneously write out the entire guest RAM to disk without blocking, or can somehow snapshot the RAM so you can write out a consistent view of the original RAM, while the guest continues to dirty RAM pages.
One idea for that is via fork()'s copy-on-write semantics; the parent continues processing the guest, while the child writes out RAM pages. Pages touched by the guest in the parent are now cleanly copied by the OS so that the child can take all the time it wants, but still writes out the state of the guest at the time of the fork(). It may be possible to use userfaultfd to achieve the same effects without a fork().
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |