Introspection of images

Registered by Arnaud Legendre on 2014-02-14

Several formats of images come with a set of metadata embedded inside the image itself.

For example, a stream optimized vmdk will look like this:
$ head -20 so-disk.vmdk

# Disk DescriptorFile
version=1
CID=d5a0bce5
parentCID=ffffffff
createType="streamOptimized"

# Extent description
RDONLY 209714 SPARSE "generated-stream.vmdk"

# The Disk Data Base
#DDB

ddb.adapterType = "buslogic"
ddb.geometry.cylinders = "102"
ddb.geometry.heads = "64"
ddb.geometry.sectors = "32"
ddb.virtualHWVersion = "4"

By introspecting this vmdk, we know easily that the disk_type is streamOptimized and the adapter_type is buslogic.
By doing this metadata extraction in Glance, the administrator doesn't have to care about all of these metadata unless he wants to override some of them.
These metadata are useful for the consumer of the image: in Nova, the workflow to instantiate a streamOptimized disk is totally different than the one to instantiate a flat disk.

This metadata extraction can be achieved using the asynchronous processing provided by this blueprint https://blueprints.launchpad.net/glance/+spec/async-glance-workers

Blueprint information

Status:
Complete
Approver:
Mark Washenberger
Priority:
Medium
Drafter:
Arnaud Legendre
Direction:
Approved
Assignee:
Flavio Percoco
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Nikhil Komawar on 2015-03-10
Completed by
Nikhil Komawar on 2015-03-11

Related branches

Sprints

Whiteboard

Arnaud,
I just came across this blueprint and associated design: https://blueprints.launchpad.net/glance/+spec/epa-ovf-meta-data-import
Should we consider moving that blueprint under this one? or marking it as depending on this blueprint?

I think epa-ovf-meta-data-import bp should be moved under this one (it is not really a dependency). However, the OVF file can be so complex that I think it would be more relevant to store the OVF file completely along with its disks (bp: artifact-repository-api) and let consumers (nova) decide what they need in it. --arnaud

(nikhil): I'm very interested in this BP. We at Rackspace have the proof of concept import task running with some sort of introspection already. Would really like to provide feedback on what are the existing use cases, some lessons learnt and ideas around how we can collaborate more on this front. Also, wish to be involved in the design discussions, review feedback on the MPs and code contributions if needed.

Gerrit topic: https://review.openstack.org/#q,topic:bp/introspection-of-images,n,z

Addressed by: https://review.openstack.org/156249
    Glance Image Introspection

Gerrit topic: https://review.openstack.org/#q,topic:bp/new-upload-workflow,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.