[libvirt] [PATCH 00/21] Support NBD for tunnelled migration
John Ferlan
jferlan at redhat.com
Mon Dec 14 14:49:38 UTC 2015
On 11/18/2015 01:12 PM, Pavel Boldin wrote:
> The provided patchset implements NBD disk migration over a tunnelled
> connection provided by libvirt.
>
[...]
> daemon/remote.c | 50 ++++
> docs/apibuild.py | 1 +
> docs/hvsupport.pl | 1 +
> include/libvirt/libvirt-domain.h | 3 +
> src/driver-hypervisor.h | 8 +
> src/libvirt-domain.c | 43 ++++
> src/libvirt_internal.h | 6 +
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_driver.c | 24 ++
> src/qemu/qemu_migration.c | 495 +++++++++++++++++++++++++++++++++------
> src/qemu/qemu_migration.h | 6 +
> src/qemu/qemu_monitor.c | 12 +
> src/qemu/qemu_monitor.h | 2 +
> src/qemu/qemu_monitor_json.c | 35 +++
> src/qemu/qemu_monitor_json.h | 2 +
> src/remote/remote_driver.c | 91 +++++--
> src/remote/remote_protocol.x | 19 +-
> src/remote_protocol-structs | 8 +
> src/security/virt-aa-helper.c | 4 +-
> 19 files changed, 719 insertions(+), 92 deletions(-)
>
Although not my area of expertise - figured I could give this series at
least a glance as I'm working my way through the list I had of unread
patches. Also I was only able to git am -3 the first 15 patches... after
that some other change gets in the way. You may need to fix up a few
things and repost. Maybe go with shorter series to at least make progress...
Some high level thoughts...
First off - obviously it's a larger series. You see 21 patches and know
you have to set aside the time for proper review... Of course many are
short which is exactly what is "requested", still I assume the quantity
causes the "put this on my todo list" reaction - hence the delay in
anyone looking. Not an excuse for having something upstream for a bit
without review, but I hope it's a logical explanation...
Second - I note liberal usage of "unsigned char uuid[VIR_UUID_BUFLEN] in
function headers. I believe those should be replaced by "const unsigned
char *uuid" instead. IIRC this can lead to buffer overflow type issues
(think stack space for args).
Third - could this tunnel be possibly used more generically? That is
this use is for NBD, but just the barebones indicate it's an extra
communication stream/channel. Would it be beneficial to pass more than a
remote_uuid. Perhaps remote resource name and/or uri? A number of
migrate API's seem to use a cookie - is that something that would be
useful? That's a finer technical detail that I hope can be worked out.
Hopefully someone with that finer and detailed technical knowledge of
the migration protocol will also jump in ;-)
John
More information about the libvir-list
mailing list