Disabling direct URLs in Glance for this reason would be a bit like throwing the baby out with the bathwater, as you'd also lose the ability to use RBD clones for ephemeral storage and compute nodes would have to go back to streaming images down from Glance, if I'm not mistaken. (There would also be no rbd clone followed by rbd flatten on openstack volume create --image=<image> anymore, so that process would also take a whole lot longer, particularly for large images).
Jason and I came up with a different workaround involving yanking write permissions on the Glance pool from the CephX identity that Nova uses, see this message from the ceph-users ML:
https://<email address hidden>/message/KYFAF6BPRSI3XWANHKPIS656QX545LRD/
.. but that's basically just forcing the snapshot code into an error path while trying to create an RBD clone, so that's not very pretty either.
What bugs me is really primarily that os_require_quiesce is being silently ignored. So maybe the proper fix would be to have direct_snapshot() raise exception.ImageUnacceptable if the image meta includes os_require_quiesce?
Thanks for looking into this!
Disabling direct URLs in Glance for this reason would be a bit like throwing the baby out with the bathwater, as you'd also lose the ability to use RBD clones for ephemeral storage and compute nodes would have to go back to streaming images down from Glance, if I'm not mistaken. (There would also be no rbd clone followed by rbd flatten on openstack volume create --image=<image> anymore, so that process would also take a whole lot longer, particularly for large images).
Jason and I came up with a different workaround involving yanking write permissions on the Glance pool from the CephX identity that Nova uses, see this message from the ceph-users ML: /message/ KYFAF6BPRSI3XWA NHKPIS656QX545L RD/
https://<email address hidden>
.. but that's basically just forcing the snapshot code into an error path while trying to create an RBD clone, so that's not very pretty either.
What bugs me is really primarily that os_require_quiesce is being silently ignored. So maybe the proper fix would be to have direct_snapshot() raise exception. ImageUnacceptab le if the image meta includes os_require_quiesce?