Add pre-caching to nova image cache management
This blueprint continues on from https:/
Features to implement:
Faster startup for instances
This should consider the relative popularity of various images (which can be done now without a call to glance). The original specification also considers that cloud hosts might want to have their own images load as fast as possible, but not care so much about pre-caching user uploaded images.
Resiliance to glance failure
Some way of designating images as being "mission critical" so that they're pre-cached. This way, if glance is offline an instance can still be started. This designation needs to avoid calling into glance as much as possible.
Schedule new instances on nodes which already have the right image
Instance startup will be faster if an instance is started on a node which already has the image cached. Its even better if there is already a resized COW target image of the right size on the node as well. Not only will startup be faster, but disk usage will be used across the cluster.
This needs to respect that users almost certainly don't want all instances of a given type on a single compute node, as if that node fails they'd lose all of the instances. There therefore needs to be some sanity checking applied to this code.