Description of problem:
Nova only allows volumes that are locally mapped or currently defined against a domain to be used as the new target volume when swapping volumes, thus blocking live volume migrations to RBD volumes. The following libvirt RFE aims to allow for the connection details of a RBD volume to be passed to virDomainBlockRebase as the base backing image :
[RFE] Allow virDomainBlockRebase to use remote RBD volumes as the base backing image
https://bugzilla.redhat.com/show_bug.cgi?id=1306562
Once implemented Nova should be able to call virDomainBlockRebase with the new volumes connection details and allow libvirt/QEMU to handle the rebase.
An alternative would be to map the RBD volumes to the host, however this would require the use of the RBD kernel module and greatly complicate Nova's interactions with these volumes when compared to using libvirt/QEMU directly.
[1] https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L1400
This FutureFeature for OSP 17.0 is not marked as an MVP for OSP 17.0 GA so will be targeted for review to be included in OSP 17.1. If Tech Preview is required for OSP 17.0 please clone the BZ and follow Tech Preview procedure.