[libvirt] [PATCHv2 0/6] Selective block device migration implementation

Michal Privoznik mprivozn at redhat.com
Mon May 25 14:58:48 UTC 2015


On 21.05.2015 13:07, Pavel Boldin wrote:
> The patchset represented in the mail thread implements the selective block
> device migration for the QEMU driver. This closes the referenced bug [1].
> 
> First the supplementary API implemented allowing for multiple key-values pair
> in the virTypedParameter arrays. This is used to pass the list of block
> devices to migrate in the following patches. Unit tests for this are added as
> well. This is the subject of the first four patches.
> 
> Fifth patch is adding the necessary parameter `migrate_disks' and passes it
> through the QEMU driver call stack. The introduced `qemuMigrateDisk' function
> is then checks that the disk is to be migrated because it is in the list. If
> there is no list specified then the legacy check is used: the device is migrate
> if it is not shared, not readonly and has a source.
> 
> Sixth and the last patch is adding the necessary code to the `virsh' utility
> making it able for user to specify a comma-separated list of the block device
> names that are to be migrated.
> 
> The implemented Python bindings patch is to be presented.
> 
> Changes in v2:
>  * Addressed review comments
>  * Removed all the duplicates check in the commit 'multi-value parameters in
>     virTypedParamsAdd*'
>  * reimplemented virTypedParamsPick as virTypedParamsFilter
>  * renamed virTypedParamsPackStrings to virTypedParamsAddStringList
> 
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1203032
> 
> Pavel Boldin (6):
>   util: multi-value virTypedParameter
>   util: multi-value parameters in virTypedParamsAdd*
>   util: virTypedParams{Filter,PickStrings}
>   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   |  16 +++
>  src/libvirt_public.syms          |   7 +
>  src/qemu/qemu_driver.c           |  66 ++++++---
>  src/qemu/qemu_migration.c        | 174 +++++++++++++++--------
>  src/qemu/qemu_migration.h        |  23 ++--
>  src/util/virtypedparam.c         | 263 ++++++++++++++++++++++++++++-------
>  src/util/virtypedparam.h         |  10 ++
>  tests/Makefile.am                |   6 +
>  tests/virtypedparamtest.c        | 291 +++++++++++++++++++++++++++++++++++++++
>  tools/virsh-domain.c             |  23 ++++
>  tools/virsh.pod                  |   5 +-
>  12 files changed, 750 insertions(+), 143 deletions(-)
>  create mode 100644 tests/virtypedparamtest.c
> 

So, I think we are almost there. I've pointed out a few things.
Moreover, as I've been reviewing I keep fixing the nits I'm raising. So
instead of me giving you headache of posting v3, I'll do that.

Michal




More information about the libvir-list mailing list