Generic image cache functionality
Currently some volume drivers implement the clone_image method and use an internal cache of volumes on the backend that hold recently used images. For storage backends that can do very efficient volume clones it is a potentially large performance improvement over having to attach and copy the image contents to a each volume. To make this functionality easier for other volume drivers to use, and prevent any duplication in the code base, we should implement a more unified way to do this caching.
Blueprint information
- Status:
- Complete
- Approver:
- Mike Perez
- Priority:
- Medium
- Drafter:
- Patrick East
- Direction:
- Approved
- Assignee:
- Patrick East
- Definition:
- Approved
- Series goal:
- Accepted for liberty
- Implementation:
-
Implemented
- Milestone target:
-
7.0.0
- Started by
- Patrick East
- Completed by
- John Griffith
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Generic image volume cache functionality
<jgriffith>
I've done a bit more thinking on this since the summit, combining what we want to achieve here, with the goals of folks to do things like public-snapshots for AWS compatibility I think it would be worth discussing this a bit.
It might be possible to leverage a good deal of work that already exists when doing snapshot of a volume-backed instance. That workflow takes the volume that's booted up, creates a snapshot and creates a pointer to it in Glance. Might be worth enhancing that and fixing it up a bit.
The parent hanging around is the one thing that I haven't figured out how to make it useful (so if we have snaps the parent has to be kept around), maybe it doesn't matter, but if we had something useful to do with this parent it would sure be helpful IMO. Maybe something like a nightly job that updates that parent volume with an glance-image updates that have taken place?
There's a lot of pitfalls as we discussed with public snapshots, but it may be worth the investment after all. It might also be time to reconsider a special internal cinder-tenant that is exclusively for doing "shared" types of things.
Addressed by: https:/
WIP generic image cache
Addressed by: https:/
Add Cinder internal tenant support.
Addressed by: https:/
Efficient image transfer for Glance cinder store
Addressed by: https:/
[WIP] Enable generic image cache without virtual_size
Addressed by: https:/
TemporaryImages to inspect image before conversion
Gerrit topic: https:/
Work Items
Dependency tree

* Blueprints in grey have been implemented.