EC2 API: Implement/expose 'volume type'

Registered by Rushi Agrawal on 2013-12-18

Update: information below is outdated. Please see the nova-specs gerrit review for current status of blueprint (https://review.openstack.org/#/c/93016/)

EC2 API support for Cinder is rudimentary at present. This blueprint aims to fix up the 'volume type' part of it.

Current state:
'Volume type' concept is currently not exposed via the EC2 API. Currently, the EC2 API response does not return a volumeType tag. In AWS's EBS, a volume either has a volume type 'standard' (if it is a standard, distributed block-store based volume) or 'io1' (if it is a guaranteed IOPS volume). If the volume type is 'io1', another value 'iops' is also associated with such a volume, describing the IOPS associated with such volume.

Proposed implementation (modified after discussing with Cinder folks):
A vanilla Cinder install has no volume types created. So when we issue a CreateVolume EC2 API, a volume is created without a volume type in Cinder. The proposal is that, volume type extra specs be created and associated with EC2's volume types. For example, a volume type created at the Cinder side, 'lvm', can be associated with EC2's 'standard' volume type by adding an extra-spec 'EC2:type' => 'standard' for that volume type. The 'volume type extra specs' is a admin-only operation, and also provides the administrator with the flexibility of changing the association at a later point of time with respect to his block storage deployment. The implementation should also make sure that it works well with the existing deployments where a 'standard' volume is created with no type at the Cinder end.

Links to affected EC2 API
CreateVolume http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVolume.html
DescribeVolume docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumes.html

Blueprint information

Status:
Started
Approver:
Russell Bryant
Priority:
Medium
Drafter:
Rushi Agrawal
Direction:
Needs approval
Assignee:
Rushi Agrawal
Definition:
Pending Approval
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
milestone icon next
Started by
Rushi Agrawal on 2014-01-21

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/61041
    Implement volume type in EC2 API

Gerrit topic: https://review.openstack.org/#q,topic:bp/ec2-volume-filtering,n,z

Gerrit topic: https://review.openstack.org/#q,topic:vol_filters_all,n,z

Apologies, this missed the deadline for Feature Freeze. Please rebase patches as soon as Juno opens, and we will try to get this in during that period. --johnthetubaguy (5th March 2014)

However seems like some of the approaches need to be discussed more, and we need a much clearer blueprint, with steps on what is being done, so we can try and stop blocking these changes after so much work has been done. Un-approving this one --johnthetubaguy

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

Addressed by: https://review.openstack.org/93016
    EC2: Volume type support

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.