qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Pavel Hrdina <phrdina@redhat.com>,
	Zhanghailiang <zhang.zhanghailiang@huawei.com>,
	KVM devel mailing list <kvm@vger.kernel.org>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	"Huangpeng (Peter)" <peter.huangpeng@huawei.com>,
	mrhines@linux.vnet.ibm.com,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [RFC]VM live snapshot proposal
Date: Mon, 3 Mar 2014 14:55:35 +0000	[thread overview]
Message-ID: <20140303145535.GE2837@work-vm> (raw)
In-Reply-To: <531487F3.9010606@redhat.com>

* Paolo Bonzini (pbonzini@redhat.com) wrote:
> Il 03/03/2014 14:30, Kevin Wolf ha scritto:
> >> > So why don't we simply reuse the existing migration code?
> >> I think this is different in the same way that block-backup and
> >> block-mirror are different.  Huangpeng's proposal would let you make
> >> a consistent snapshot of disks and RAM.
> >Right. Though the point isn't about consistency (doing the disk snapshot
> >when memory has converged would be consistent as well), but about
> >having the snapshot semantically right at the time when the monitor
> >command is issued instead of only starting it then and being consistent
> >at the point of completion.
> 
> Right---though it's not entirely true that migration only affects
> the point in time where you have consistency.  For example, with
> migration you cannot use the guest agent for freeze/thaw and, even
> if we changed the code to allow that, the pause would be much longer
> than for live snapshots or block-backup.
> 
> >This is indeed like pre/post-copy live migration, and probably both
> >options have their uses. I would suggest starting with the easy one, and
> >adding the post-copy feature on top.
> 
> The feature matrix for migration and snapshot
> 
>                           disk       RAM        internal snapshot
> non-live                  yes (0)    yes (0)    yes
> live, disk only           yes (1)    N/A        yes (2)
> live, pre-copy            yes (3)    yes        no
> live, post-copy           yes (4)    no         no
> live, point-in-time       yes (5)    no         no
> 
>     (0) just stop VM while doing normal pre-copy migration
>     (1) blockdev-snapshot-sync
>     (2) blockdev-snapshot-internal-sync
>     (3) block-stream
>     (4) drive-mirror
>     (5) drive-backup
> 
> By "the easy one" you mean live savevm with snapshot at the end of
> RAM migration, I guess.  But the functionality is already available
> using migration, while point-in-time snapshots actually add new
> functionality.  I'm not sure what's the status of the kernel
> infrastructure for post-copy.  Andrea?

Accumulating the running set of changes that migration is spitting out
gets you some of the way - but to do it you have to have
points in the migration stream which represent a consistent view of
device state, RAM and disk and I think the tricky point is getting
those consistent points; while the CPU is running the set of pages that
migration spits out are certainly newer than old versions of the pages
but I don't think you can just put a marker in and say that the point
represents a single consistent view of RAM.

In many ways this is the opposite of Michael Hines's microcheckpointing approach;
which stops everything and takes the snapshot regularly; I did suggest a
modification to that would be to COW those checkpoints.

Dave
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2014-03-03 14:56 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-03  1:13 [Qemu-devel] [RFC]VM live snapshot proposal Huangpeng (Peter)
2014-03-03 12:32 ` Stefan Hajnoczi
2014-03-03 12:55   ` Kevin Wolf
2014-03-03 13:19     ` Paolo Bonzini
2014-03-03 13:30       ` Kevin Wolf
2014-03-03 13:47         ` Paolo Bonzini
2014-03-03 14:04           ` Kevin Wolf
2014-03-03 14:55           ` Dr. David Alan Gilbert [this message]
2014-03-03 19:52           ` Andrea Arcangeli
2014-03-04  1:35             ` Huangpeng (Peter)
2014-03-05 14:46               ` Andrea Arcangeli
2014-03-05  1:52             ` Huangpeng (Peter)
2014-03-05 14:55               ` Andrea Arcangeli
2014-03-04  1:28         ` Huangpeng (Peter)
2014-03-04  9:40           ` Dr. David Alan Gilbert
2014-03-05  1:00             ` Huangpeng (Peter)
2014-03-05  9:09               ` Paolo Bonzini
2014-03-06  1:42             ` Huangpeng (Peter)
2014-03-06  9:14               ` Dr. David Alan Gilbert
2014-03-04  1:06     ` Huangpeng (Peter)
2014-03-03 13:18   ` Paolo Bonzini
2014-03-04  1:02   ` Huangpeng (Peter)
2014-03-04  8:54     ` Stefan Hajnoczi
2014-03-04  9:05       ` Paolo Bonzini
2014-03-04 11:28         ` Wenchao Xia
2014-03-05  0:46       ` Huangpeng (Peter)

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=20140303145535.GE2837@work-vm \
    --to=dgilbert@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=mrhines@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=phrdina@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=xiawenc@linux.vnet.ibm.com \
    --cc=zhang.zhanghailiang@huawei.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).