The complete solution for Option A) would consist of two major pieces:
1) Nova-compute maintains an DISK_GB allocation / reservation in placement for the current cache usage. See the comment #6 above for details
2) A pre-filter in the scheduler that modifies the allocation_candidate request to request flavor.disk* + image.size amount of DISK_GB resource, but then only allocate flavor.disk resources in placement for the instance.
The complete solution for Option A) would consist of two major pieces:
1) Nova-compute maintains an DISK_GB allocation / reservation in placement for the current cache usage. See the comment #6 above for details
2) A pre-filter in the scheduler that modifies the allocation_ candidate request to request flavor.disk* + image.size amount of DISK_GB resource, but then only allocate flavor.disk resources in placement for the instance.