[virt-tools-list] [PATCH] virt-manager: Add block migration support

Daniel P. Berrange berrange at redhat.com
Tue Oct 8 14:29:25 UTC 2013


On Tue, Oct 08, 2013 at 11:26:14PM +0900, Eiichi Tsukata wrote:
> (2013?10?08? 00:45), Cole Robinson wrote:
> >On 10/05/2013 10:59 AM, Eiichi Tsukata wrote:
> >>This patch adds block migration support. There are two modes: full
> >>disk copy and incremental disk copy, which correspond to libvirt
> >>virDomainMigrate API's flags, VIR_MIGRATE_NON_SHARED_DISK and
> >>VIR_MIGRATE_NON_SHARED_INC. These flags are mutually exclusive,
> >>so GUI is implemented by ComboBox.
> >>
> >>Signed-off-by: Eiichi Tsukata <devel at etsukata.com>
> >>---
> >>  ui/migrate.ui            | 61 ++++++++++++++++++++++++++++++++++++++++++++++--
> >>  virtManager/domain.py    |  7 +++++-
> >>  virtManager/migrate.py   | 41 +++++++++++++++++++++++++++++---
> >>  virtManager/uihelpers.py | 20 ++++++++++++++++
> >>  4 files changed, 123 insertions(+), 6 deletions(-)
> >>
> 
> Thanks for reviewing Cole,
> >At a glance the code looks fine. But I'm wary of exposing storage migration in
> >the UI for the following reasons:
> >
> >1) The oldest storage migration code in qemu is known inefficient, not really
> >maintained, and usage is discouraged by qemu devs. So I'd want to
> >conditionally expose it depending on libvirt and qemu being new enough to do
> >the old style.
> >
> >2) It has serious usability issues: a) you need to pre-create storage file
> >stubs on the destination (there are libvirt patches for this) and b) doesn't
> >work with tunnelled migration (which is the simplest option for end users but
> >isn't a blocker)
> 
> Yes, we need to pre-create storage file with qemu-img command before
> block migration. The following libvirt patches are probably that you are
> mentioning.
> https://www.redhat.com/archives/libvir-list/2013-September/msg00751.html
> 
> I didn't know block migration doesn't work with libvirtd tunnel. That makes
> it more difficult for users to use the feature correctly.
> 
> >We will definitely get bug reports about the last bit if we don't at least
> >stick a warning in the UI about the caveats. So maybe if someone selects
> >storage migration we unhide a little warning box that explains things (we
> >could even explain 'this is the old qemu method and might suck', and when all
> >the libvirt bits are in place we can do a version check and not show the error
> >anymore.
> >
> >Also, I don't really understand when someone would want to use NON_SHARED_DISK
> >vs NON_SHARED_INC, so if a user asks I don't know what to tell them. Maybe
> >someone can enlighten me.
> 
> NON_SHARED_DISK flag is used to copy all the storage files with VM
> migration. This is the simplest usage of block migration.
> 
> NON_SHARED_INC flag is used to copy only snapshot image of the
> VM storages. If you use NON_SHARED_INC flag, the same backing file
> needs to be shared between source and destination. It takes less time
> to migrate with NON_SHARED_INC because only the difference of current
> storage file and backing file is transferred. It's very useful.
> 
> For qemu snapshot, please see the following page:
> http://wiki.qemu.org/Documentation/CreateSnapshot

One other limitation of block migration is that it is all or nothing
in terms of the disks copied.

So if you have a VM that has one disk on a SAN that is accessible
to both hosts and one disk on a file only visible to a single host,
it is going to copy data for both disks, even though it should only
do the latter.


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the virt-tools-list mailing list