Sorry for lag in response. Logs not handy, but to reproduce:
Set libvirt-image-backend for nova to rbd (ceph)
Create raw bootable image in glance of size 100GB (ensuring glance is ceph rbd backed)
Fill all available hypervisors such that /var/lib/nova/instances/_base has less than 100GB free
set disk_allocation_ratio = 1.0 or less
recycle nova-scheduler/nova-conductor services and attempt to boot image as new server and you'll find that it can't find a suitable hypervisor to deploy.
If you kick disk_allocation_ratio to something that would allow the 100GB image to fit within the free-space with overcommit, then the same image will boot and glance rbd and nova rbd backend work together to never move data to /var/lib/nova/instances/_base for conversion (as it just creates an rbd snapshot+COW for the new nova rbd object.
If glance and nova libvirt backend both == rbd and show_image_direct_url == true and image-format == raw, disk_allocation_ratio check should not be made
Sorry for lag in response. Logs not handy, but to reproduce:
Set libvirt- image-backend for nova to rbd (ceph)
Create raw bootable image in glance of size 100GB (ensuring glance is ceph rbd backed)
Fill all available hypervisors such that /var/lib/ nova/instances/ _base has less than 100GB free
set disk_allocation _ratio = 1.0 or less
recycle nova-scheduler/ nova-conductor services and attempt to boot image as new server and you'll find that it can't find a suitable hypervisor to deploy.
If you kick disk_allocation _ratio to something that would allow the 100GB image to fit within the free-space with overcommit, then the same image will boot and glance rbd and nova rbd backend work together to never move data to /var/lib/ nova/instances/ _base for conversion (as it just creates an rbd snapshot+COW for the new nova rbd object.
If glance and nova libvirt backend both == rbd and show_image_ direct_ url == true and image-format == raw, disk_allocation _ratio check should not be made