* Re: [Qemu-devel] [PATCH 0/3 v4] Live migration without shared storage
2009-10-12 16:24 [Qemu-devel] [PATCH 0/3 v4] Live migration without shared storage lirans
@ 2009-10-12 16:09 ` Michael Tokarev
2009-10-12 16:51 ` [Qemu-devel] " Paolo Bonzini
0 siblings, 1 reply; 5+ messages in thread
From: Michael Tokarev @ 2009-10-12 16:09 UTC (permalink / raw)
To: lirans; +Cc: qemu-devel
lirans@il.ibm.com wrote:
> This series adds support for live migration without shared storage, means
> copy the storage while migrating. It was tested with KVM. Supports 2 ways
> to replicate the storage during migration:
> 1. Complete copy of storage to destination
> 2. Assuming the storage is cow based, copy only the allocated
> data, time of the migration will be linear with the amount of allocated
> data (user responsibility to verify that the same backend file reside
> on src and destination).
Hmm. How about something like:
migrate exec:"rsync file1 file2 ... remote: && nc remote port"
?
/mjt
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 0/3 v4] Live migration without shared storage
@ 2009-10-12 16:24 lirans
2009-10-12 16:09 ` Michael Tokarev
0 siblings, 1 reply; 5+ messages in thread
From: lirans @ 2009-10-12 16:24 UTC (permalink / raw)
To: qemu-devel; +Cc: Liran Schour
This series adds support for live migration without shared storage, means
copy the storage while migrating. It was tested with KVM. Supports 2 ways
to replicate the storage during migration:
1. Complete copy of storage to destination
2. Assuming the storage is cow based, copy only the allocated
data, time of the migration will be linear with the amount of allocated
data (user responsibility to verify that the same backend file reside
on src and destination).
The code is being used by the Reservoir project: http://www.reservoir-fp7.eu/
Live migration will work as follows:
(qemu) migrate -d tcp:0:4444 # for ordinary live migration
(qemu) migrate -d blk tcp:0:4444 # for live migration with complete storage copy
(qemu) migrate -d blk inc tcp:0:4444 # for live migration with incremental storage copy, storage is cow based.
These patches addresses all previous comments.
Signed-off-by: Liran Schour <lirans@il.ibm.com>
---
Makefile | 1 +
block-migration.c | 624 +++++++++++++++++++++++++++++++++++++++++++++++++++++
block-migration.h | 30 +++
block.c | 27 +++
block.h | 6 +-
block_int.h | 1 +
buffered_file.c | 10 +-
hw/hw.h | 9 +-
migration-exec.c | 9 +-
migration-fd.c | 7 +-
migration-tcp.c | 7 +-
migration-unix.c | 7 +-
migration.c | 21 ++-
migration.h | 20 ++-
monitor.c | 38 +++-
qemu-monitor.hx | 13 +-
savevm.c | 62 ++++--
sysemu.h | 2 +-
vl.c | 6 +-
19 files changed, 851 insertions(+), 49 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] Re: [PATCH 0/3 v4] Live migration without shared storage
2009-10-12 16:09 ` Michael Tokarev
@ 2009-10-12 16:51 ` Paolo Bonzini
2009-10-13 8:14 ` Liran Schour
0 siblings, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2009-10-12 16:51 UTC (permalink / raw)
To: Michael Tokarev; +Cc: qemu-devel, lirans
On 10/12/2009 06:09 PM, Michael Tokarev wrote:
> lirans@il.ibm.com wrote:
>> This series adds support for live migration without shared storage,
>> means copy the storage while migrating. It was tested with KVM.
>> Supports 2 ways to replicate the storage during migration:
>> 1. Complete copy of storage to destination 2. Assuming the storage is
>> cow based, copy only the allocated data, time of the migration will be
>> linear with the amount of allocated data (user responsibility to
>> verify that the same backend file reside on src and destination).
>
> Hmm. How about something like:
>
> migrate exec:"rsync file1 file2 ... remote: && nc remote port"
That can surely work to copy the base files, but it is a task for an
upper level like libvirt. For qemu, copying the copy-on-write data is
enough.
Paolo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] Re: [PATCH 0/3 v4] Live migration without shared storage
2009-10-12 16:51 ` [Qemu-devel] " Paolo Bonzini
@ 2009-10-13 8:14 ` Liran Schour
2009-10-13 8:18 ` Paolo Bonzini
0 siblings, 1 reply; 5+ messages in thread
From: Liran Schour @ 2009-10-13 8:14 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Michael Tokarev, qemu-devel
qemu-devel-bounces+lirans=il.ibm.com@nongnu.org wrote on 12/10/2009
18:51:32:
> On 10/12/2009 06:09 PM, Michael Tokarev wrote:
> > lirans@il.ibm.com wrote:
> >> This series adds support for live migration without shared storage,
> >> means copy the storage while migrating. It was tested with KVM.
> >> Supports 2 ways to replicate the storage during migration:
> >> 1. Complete copy of storage to destination 2. Assuming the storage is
> >> cow based, copy only the allocated data, time of the migration will be
> >> linear with the amount of allocated data (user responsibility to
> >> verify that the same backend file reside on src and destination).
> >
> > Hmm. How about something like:
> >
> > migrate exec:"rsync file1 file2 ... remote: && nc remote port"
>
> That can surely work to copy the base files, but it is a task for an
> upper level like libvirt. For qemu, copying the copy-on-write data is
> enough.
>
I agree that it can be useful to let an upper level component to copy the
storage
but you will need a way to synchronize with that layer: 1. qemu --> upper
layer:
vm suspended,no more writes to disk.
2. upper layer --> qemu: storage replication is done.
I don't see how without it you will have a valid copy of the storage.
However make use of the copy on write data and cut the amount of
transferred data
can be done only from inside qemu.
- Liran
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] Re: [PATCH 0/3 v4] Live migration without shared storage
2009-10-13 8:14 ` Liran Schour
@ 2009-10-13 8:18 ` Paolo Bonzini
0 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2009-10-13 8:18 UTC (permalink / raw)
To: Liran Schour; +Cc: Michael Tokarev, qemu-devel
>>> Hmm. How about something like:
>>>
>>> migrate exec:"rsync file1 file2 ... remote:&& nc remote port"
>>
>> That can surely work to copy the base files, but it is a task for an
>> upper level like libvirt. For qemu, copying the copy-on-write data is
>> enough.
>
> I agree that it can be useful to let an upper level component to copy the
> storage
> but you will need a way to synchronize with that layer: 1. qemu --> upper
> layer:
> vm suspended,no more writes to disk.
> 2. upper layer --> qemu: storage replication is done.
> I don't see how without it you will have a valid copy of the storage.
>
> However make use of the copy on write data and cut the amount of
> transferred data
> can be done only from inside qemu.
Yes, I understand the reason for this feature. What I meant was that
you could use rsync to copy the base files from an upper level
component, before the actual migration is started and qemu transfers the
copy-on-write data live.
If Michael was saying instead "why is this needed at all", then you
answered him.
Paolo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-10-13 8:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-12 16:24 [Qemu-devel] [PATCH 0/3 v4] Live migration without shared storage lirans
2009-10-12 16:09 ` Michael Tokarev
2009-10-12 16:51 ` [Qemu-devel] " Paolo Bonzini
2009-10-13 8:14 ` Liran Schour
2009-10-13 8:18 ` Paolo Bonzini
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).