Generic image cache functionality

Registered by Patrick East

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

Mike Perez
Patrick East
Patrick East
Series goal:
Accepted for liberty
Milestone target:
milestone icon 7.0.0
Started by
Patrick East
Completed by
John Griffith

Related branches



Gerrit topic:,topic:bp/image-volume-cache,n,z

Addressed by:
    Generic image volume cache functionality

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:
    WIP generic image cache

Addressed by:
    Add Cinder internal tenant support.

Addressed by:
    Efficient image transfer for Glance cinder store

Addressed by:
    [WIP] Enable generic image cache without virtual_size

Addressed by:
    TemporaryImages to inspect image before conversion

Gerrit topic:,topic:bug/1491088,n,z


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.