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-blockde...
--
/kashyap