VMware: Storage policy based volume-type for vmdk volumes

Registered by Subbu on 2013-11-29

VMware VMDK cinder driver in havana lets users create a volume as a vmdk on a VC datastore and attach / detach it to a running VMware VM instance. The user could associate a vmware:vmdk_type or vmware:clone_type through a volume-type for such volumes. This blueprint is to add the ability to associate a VM Storage Policy through a volume-type to a vmdk volume. The vmdk driver would place such volumes only a datastore that matches the associated storage policy. With this change a storage admin will create VM storage policies through a VC client and expose them as cinder volume-type, one volume-type for each VM storage policy to be exposed to cinder volumes. The end user will be able to create volumes by picking a volume type and the vmdk cinder driver will associate the corresponding VM storage policy with these volumes.

Blueprint information

Status:
Complete
Approver:
John Griffith
Priority:
Low
Drafter:
Subbu
Direction:
Approved
Assignee:
Subbu
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Subbu on 2013-12-12
Completed by
Subbu on 2014-03-12

Related branches

Sprints

Whiteboard

* Note: Cinder's existing volume type definition will be used to configure and hold the names of storage profiles under the namespace "vmware:storage_profile".

* Phase 1: Implementation will do the following:
    * A new PBM client (similar to the existing VIM client) will be needed to make API calls to the PBM service. The existing VMwareAPISession will expand to accommodate api calls to PBM service through the pbm client object.

    * Datastore filtering when placing a new backing VM as well as when moving an existing backing VM will make use of PBM APIs to find out matching datastores.

    *Additional unit tests to cover new code. This will be written using Mock. Existing unit test changes will continue to be in mox.

    * PBM WSDL file will be needed to make the SPBM storage policy API calls to VC. This file have to manually downloaded and configured in cinder.conf in this phase. The next phase will attempt to ease this manual step.

* Phase 2: PBM WSDL files setup

Gerrit topic: https://review.openstack.org/#q,topic:bp/vmdk-storage-policy-volume-type,n,z

Addressed by: https://review.openstack.org/61931
    Storage policy based volume placement.

Addressed by: https://review.openstack.org/68855
    vmware: check datastore availability during create

Addressed by: https://review.openstack.org/69541
    vmware: default global pbm policy configuration

Addressed by: https://review.openstack.org/73165
    vmware: PBM wsdl file configuration

(?)

Work Items

Work items:
Phase 1 implementation : DONE
Phase 2 wsdl file setup : DONE

This blueprint contains Public information 
Everyone can see this information.