[Openstack] Understanding "flavors" of VM

Michael Still michael.still at canonical.com
Wed Dec 5 22:47:29 UTC 2012

On 12/05/2012 06:59 PM, Marco CONSONNI wrote:

> To be honest it seems like I missed something because, from your
> investigation, the storage is kept under _base. Strange. I didn't know that.

Hi! The following description is libvirt specific. Bearing in mind that
this code is a moving target and has been re-written at least three
times in the last year [1], it works a bit like this...

- you request an instance using a given image
- that image is fetched to _base from glance (if its not already there)
- that image is format converted if required, and then resized to the
requested size
- the instance disk image is a copy-on-write layer on top of that
resized image in _base and is stored in the instance's directory
- the instance is booted using the COW layer

If another instance with the same image / disk size starts, it can short
circuit the process and use the already existing image, which is cool.

When an instance is terminated, the instance directory is removed, but
files in _base remain.

If you have image cache management turned on, then the files in _base
are periodically cleaned up. The files in _base are also checksummed to
try and detect file corruption, although that hasn't been the most loved
feature ever implemented.

Hope this helps,

1: Several times I have gone to write a blog post about how this works,
and then realized the code has changed again.

More information about the Openstack mailing list