Xenapi: Image Cache Management

Registered by Christopher Lefelhocz on 2014-01-15

The primary goal of this blueprint is to provide the implementation details for image cache management in the xenapi driver. This work leverages common work done in https://blueprints.launchpad.net/nova/+spec/vmware-image-cache-management to use the same higher level objects and provide the implementation points of xenapi. For instance, the vmware implementation caches images as files in a directory. The xenapi implementation uses the xen vdi mapping to cache images. If https://blueprints.launchpad.net/nova/+spec/multiple-image-cache-handlers is successful, the different cache handlers should be leverage-able by both xenapi and vmware.

It is worth noting that we are also interested in pre caching images as well for better performance of nova and xenapi. This work will most likely take a new blueprint, but is worth mentioning here as it implies some longer term goals of this effort.

Blueprint information

Status:
Not started
Approver:
John Garbutt
Priority:
Undefined
Drafter:
Christopher Lefelhocz
Direction:
Needs approval
Assignee:
Christopher Lefelhocz
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#/q/topic:bp/xenapi-image-cache-management,n,z

This work leverages https://review.openstack.org/59994. We will use config items:
image_cache_manager_interval
remove_unused_base_images
remove_unused_original_minimum_age_seconds

Setting the interval means that the xen driver will need to implement manage_image_cache. manage_image_cache will in turn call the image_cache_manager.update to run through cache management/aging. This allows us to remove images through a common interface and set of common configuration values.

Two other things worth investigating, but don't necessarily make the cut:
- communicate back the images that are actually cached to some higher level node for better processing/scheduling.
- Get a whitelist of images which do not get aged out since they are considered common. It is possible this list varies from host to host.
Gerrit topic: https://review.openstack.org/#/q/topic:bp/xenapi-image-cache-management,n,z

This work leverages https://review.openstack.org/59994. We will use config items:
image_cache_manager_interval
remove_unused_base_images
remove_unused_original_minimum_age_seconds

Setting the interval means that the xen driver will need to implement manage_image_cache. manage_image_cache will in turn call the image_cache_manager.update to run through cache management/aging. This allows us to remove images through a common interface and set of common configuration values.

Two other things worth investigating, but don't necessarily make the cut:
- communicate back the images that are actually cached to some higher level node for better processing/scheduling.
- Get a whitelist of images which do not get aged out since they are considered common. It is possible this list varies from host to host.

If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)

(?)

Work Items

Work items:
Implement driver hooks to call ImageCacheManager and tests: TODO
Implement ImageCacheManager and tests: TODO

This blueprint contains Public information 
Everyone can see this information.