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>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Wenchao Xia <xiawenc@linux.vnet.ibm.com>,
mrhines@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
WARNING: multiple messages have this Message-ID (diff)
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
next prev parent reply other threads:[~2014-03-03 14:55 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-03 1:13 [RFC]VM live snapshot proposal Huangpeng (Peter)
2014-03-03 1:13 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-03 12:32 ` Stefan Hajnoczi
2014-03-03 12:32 ` [Qemu-devel] " Stefan Hajnoczi
2014-03-03 12:55 ` Kevin Wolf
2014-03-03 12:55 ` [Qemu-devel] " Kevin Wolf
2014-03-03 13:19 ` Paolo Bonzini
2014-03-03 13:19 ` [Qemu-devel] " Paolo Bonzini
2014-03-03 13:30 ` Kevin Wolf
2014-03-03 13:30 ` [Qemu-devel] " Kevin Wolf
2014-03-03 13:47 ` Paolo Bonzini
2014-03-03 13:47 ` [Qemu-devel] " Paolo Bonzini
2014-03-03 14:04 ` Kevin Wolf
2014-03-03 14:04 ` [Qemu-devel] " Kevin Wolf
2014-03-03 14:55 ` Dr. David Alan Gilbert [this message]
2014-03-03 14:55 ` Dr. David Alan Gilbert
2014-03-03 19:52 ` Andrea Arcangeli
2014-03-03 19:52 ` [Qemu-devel] " Andrea Arcangeli
2014-03-04 1:35 ` Huangpeng (Peter)
2014-03-04 1:35 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-05 14:46 ` Andrea Arcangeli
2014-03-05 14:46 ` [Qemu-devel] " Andrea Arcangeli
2014-03-05 1:52 ` Huangpeng (Peter)
2014-03-05 1:52 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-05 14:55 ` Andrea Arcangeli
2014-03-05 14:55 ` [Qemu-devel] " Andrea Arcangeli
2014-03-04 1:28 ` Huangpeng (Peter)
2014-03-04 1:28 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-04 9:40 ` Dr. David Alan Gilbert
2014-03-04 9:40 ` Dr. David Alan Gilbert
2014-03-05 1:00 ` Huangpeng (Peter)
2014-03-05 1:00 ` Huangpeng (Peter)
2014-03-05 9:09 ` Paolo Bonzini
2014-03-06 1:42 ` Huangpeng (Peter)
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-04 1:06 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-03 13:18 ` Paolo Bonzini
2014-03-03 13:18 ` [Qemu-devel] " Paolo Bonzini
2014-03-04 1:02 ` Huangpeng (Peter)
2014-03-04 1:02 ` [Qemu-devel] " Huangpeng (Peter)
2014-03-04 8:54 ` Stefan Hajnoczi
2014-03-04 8:54 ` [Qemu-devel] " Stefan Hajnoczi
2014-03-04 9:05 ` Paolo Bonzini
2014-03-04 9:05 ` [Qemu-devel] " Paolo Bonzini
2014-03-04 11:28 ` Wenchao Xia
2014-03-04 11:28 ` Wenchao Xia
2014-03-05 0:46 ` Huangpeng (Peter)
2014-03-05 0:46 ` [Qemu-devel] " 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.