[libvirt] [PATCH v4 0/9] Selective block device migration implementation
Kashyap Chamarthy
kchamart at redhat.com
Thu Jun 18 16:11:24 UTC 2015
On Wed, Jun 17, 2015 at 05:31:03PM +0200, Kashyap Chamarthy wrote:
> On Tue, Jun 16, 2015 at 01:42:02AM +0300, Pavel Boldin wrote:
>
> [. . .]
>
> > Michal Privoznik (3):
> > virDomainDiskGetSource: Mark passed disk as 'const'
> > qemuMigrationBeginPhase: Fix function header indentation
> > qemuMigrationDriveMirror: Force raw format for NBD
> >
> > Pavel Boldin (6):
> > util: multi-value virTypedParameter
> > util: multi-value parameters in virTypedParamsAdd*
> > util: virTypedParams{Filter,GetAllStrings}
> > util: add virTypedParamsAddStringList
> > qemu: migration: selective block device migration
> > virsh: selective block device migration
> >
> > include/libvirt/libvirt-domain.h | 9 ++
> > include/libvirt/libvirt-host.h | 11 ++
> > src/conf/domain_conf.c | 2 +-
> > src/conf/domain_conf.h | 2 +-
> > src/libvirt_public.syms | 6 +
> > src/qemu/qemu_driver.c | 78 ++++++++---
> > src/qemu/qemu_migration.c | 264 +++++++++++++++++++++++++----------
> > src/qemu/qemu_migration.h | 24 ++--
> > src/util/virtypedparam.c | 259 +++++++++++++++++++++++++++-------
> > src/util/virtypedparam.h | 19 +++
> > tests/Makefile.am | 6 +
> > tests/virtypedparamtest.c | 295 +++++++++++++++++++++++++++++++++++++++
> > tools/virsh-domain.c | 23 +++
> > tools/virsh.pod | 21 +--
> > 14 files changed, 854 insertions(+), 165 deletions(-)
> > create mode 100644 tests/virtypedparamtest.c
> >
>
> New test with this revision of patches applied.
>
[. . .]
> Probably I should test by building local RPMs.
I missed to apply the diff from Michal earlier. So, I tested again from
git, now that Michal pushed them already :-). With both
--copy-storage-all and --copy-storage-inc.
Simple test seems to work:
- On source:
$ virsh domblklist cvm1
Target Source
------------------------------------------------
vda /var/lib/libvirt/images/cirros-0.3.3-x86_64-disk.img
vdb /export/disk2.img
- On destination, /export/disk2.img (vdb) already exists.
- On source, just migrate the 'vda' device:
$ virsh migrate --verbose --p2p --copy-storage-all \
--migrate-disks vda \
--live cvm1 qemu+tcp://root@devstack3/system
Migration: [100 %]
- On source, cvm1 is down (as expected).
- On destination, cvm1 is running, and both the block devices (vda,
vdb) are enumerated.
As a test 2, I tried the opposite:
- Ensured the vda
(/var/lib/libvirt/images/cirros-0.3.3-x86_64-disk.img) is in place
on destination.
- Did a `virsh pool-refresh` on both existing pools on destination,
for good measure.
- This time, tried to migrate only 'vdb', and the result is the
migrate command just hung on source:
$ virsh migrate --verbose --p2p --copy-storage-all \
--migrate-disks vdb \
--live cvm1 qemu+tcp://root@devstack3/system
# Here the command is just hung
- On destination, the guest is in paused state:
$ virsh list
Id Name State
----------------------------------------------------
15 cvm1 paused
Here's the libvirt debug log from *destination*, if anyone is
interested:
https://kashyapc.fedorapeople.org/virt/temp/libvirtd-log-dst-hung-blockdev-mig.log
--
/kashyap
More information about the libvir-list
mailing list