From: Eric Blake <eblake@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>
Cc: Richard Palethorpe <richiejp@f-m.fm>,
Denis Lunev <den@virtuozzo.com>,
Qemu-block <qemu-block@nongnu.org>,
quintela@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org,
Denis Plotnikov <dplotnikov@virtuozzo.com>,
Roman Kagan <rkagan@virtuozzo.com>, Max Reitz <mreitz@redhat.com>,
rpalethorpe@suse.com, dgilbert@redhat.com
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH 1/2] Add save-snapshot, load-snapshot and delete-snapshot to QAPI
Date: Tue, 13 Feb 2018 10:46:00 -0600 [thread overview]
Message-ID: <1ac12a06-4031-f35c-da18-8c1cbbf7921d@redhat.com> (raw)
In-Reply-To: <20180213144838.GO573@redhat.com>
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
next prev parent reply other threads:[~2018-02-13 16:46 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-07 12:23 [Qemu-devel] [PATCH 1/2] Add save-snapshot, load-snapshot and delete-snapshot to QAPI Richard Palethorpe
2018-01-07 12:23 ` [Qemu-devel] [PATCH 2/2] Add test cases for saving, loading and deleting snapshots using QAPI Richard Palethorpe
2018-01-08 13:52 ` [Qemu-devel] [PATCH 1/2] Add save-snapshot, load-snapshot and delete-snapshot to QAPI Eric Blake
2018-01-10 16:19 ` Richard Palethorpe
2018-01-10 16:48 ` Eric Blake
2018-02-03 13:28 ` Markus Armbruster
2018-01-11 12:46 ` Max Reitz
2018-01-11 13:04 ` Daniel P. Berrange
2018-01-11 13:23 ` Dr. David Alan Gilbert
2018-01-11 13:36 ` Daniel P. Berrange
2018-01-11 16:55 ` Juan Quintela
2018-02-12 13:25 ` Richard Palethorpe
2018-02-13 10:50 ` [Qemu-devel] [Qemu-block] " Kevin Wolf
2018-02-13 11:43 ` Dr. David Alan Gilbert
2018-02-13 11:51 ` Daniel P. Berrangé
2018-02-13 13:20 ` Kevin Wolf
2018-02-13 13:25 ` Daniel P. Berrangé
[not found] ` <20180213143001.GA2354@rkaganb.sw.ru>
2018-02-13 14:36 ` Daniel P. Berrangé
2018-02-13 14:45 ` Kevin Wolf
2018-02-13 14:48 ` Daniel P. Berrangé
2018-02-13 14:51 ` Denis V. Lunev
2018-02-13 14:59 ` Dr. David Alan Gilbert
2018-02-13 15:01 ` Denis V. Lunev
2018-02-13 15:05 ` Dr. David Alan Gilbert
[not found] ` <20180213151352.GF2307@rkaganb.sw.ru>
2018-02-13 15:27 ` Dr. David Alan Gilbert
2018-02-13 15:29 ` Denis V. Lunev
2018-02-13 16:01 ` Denis Plotnikov
2018-02-15 15:21 ` Dr. David Alan Gilbert
2018-02-13 16:46 ` Eric Blake [this message]
2018-02-13 19:45 ` Denis V. Lunev
2018-02-13 14:43 ` Kevin Wolf
2018-02-13 14:50 ` Denis V. Lunev
2018-02-13 14:58 ` Daniel P. Berrangé
2018-02-13 15:23 ` Kevin Wolf
2018-02-13 15:30 ` Daniel P. Berrangé
2018-02-13 15:51 ` Kevin Wolf
2018-02-13 16:14 ` Denis Plotnikov
2018-01-10 6:17 ` [Qemu-devel] " Peter Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1ac12a06-4031-f35c-da18-8c1cbbf7921d@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=den@virtuozzo.com \
--cc=dgilbert@redhat.com \
--cc=dplotnikov@virtuozzo.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=richiejp@f-m.fm \
--cc=rkagan@virtuozzo.com \
--cc=rpalethorpe@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).