07025abf72
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
14 lines
644 B
YAML
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.
|