nova/releasenotes/notes/libvirt-rbd-glance-multistore-ecb66a071c282183.yaml
Dan Smith 07025abf72 Make libvirt able to trigger a backend image copy when needed
This teaches libvirt's RBD image backend about the outside world, that
other ceph clusters may exist, and how to use Glance's multi-store image
import-via-copy mechanism.

The basic theory is that when we go to do the normal CoW clone for RBD,
we do the "does this image have a location that matches my RBD backend?"
check. If that check does not pass, if configured, we avoid failing
and ask Glance to copy it to our store instead. After that has completed,
we just recurse (once) and re-try our existing logic to see if the image
is now in a reachable location. If so, we pass like we would have
originally, and if not, we fail in the same way we would have.

The copy-to-store logic sets up a looping poll to check for copy completion
every N seconds according to a tunable, with a total timeout value in
case it never completes. If the timeout expires or Glance reports failure,
we will treat that the same as unreachable-due-to-location.

Related to blueprint rbd-glance-multistore

Change-Id: Ia839ad418b0f2887cb8e8f5ee3e660a0751db9ce
2020-06-24 07:37:51 -07:00

14 lines
644 B
YAML

---
features:
- |
The libvirt RBD image backend module can now handle a Glance
multistore environment where multiple RBD clusters are in use
across a single Nova/Glance deployment, configured as independent
Glance stores. In the case where an instance is booted with an
image that does not exist in the RBD cluster that Nova is
configured to use, Nova can ask Glance to copy the image from
whatever store it is currently in to the one that represents its
RBD cluster. To enable this feature, set
``[libvirt]/images_rbd_glance_store_name`` to tell Nova the Glance
store name of the RBD cluster it uses.