Admin defined backend capabilities

Registered by Ollie Leahy on 2013-12-17

Add user defined extra capabilities

Provide a mechanism that will allow sys admins who are managing cinder
installations with multiple backends to assign key/value pairs to
backends. The key/value pairs can be used by the capabilities scheduler
to select between backends when requests specify volume types.

For example a sysadmin could specify the key 'service_level' with the
values 'high', 'medium' and 'low' for different backends. The sys admin
specifies the 'service_level' for each backend in cinder.conf as a json
string, for example:

extra_capabilities='{"service_level"="high"}'

or

extra_capabilities='{"service_level"="medium"}'

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Sean McGinnis on 2015-10-18

Related branches

Sprints

Whiteboard

(smcginnis): Marking obsolete as this has been sitting out there for a long time. If this is still needed, please submit a new bp.

Gerrit topic: https://review.openstack.org/#q,topic:bp/admin-defined-capabilities,n,z

Addressed by: https://review.openstack.org/59967
    Add user defined extra capabilities

A more complex example might be where a sys admin managed a cinder
installation that was distributed across two geographical locations, and
that had backends delivering two levels of performance. The admin could
assign one of two values to two keys for each backend configured in
cinder.conf. So each backend could have either the value 'low' or 'high'
for the key 'performance', and either the value 'east' or 'west' for the
key 'geography'. This would define four groups of backends as shown in the
table here.

              | low high
    -------+-------------+------------
    east | east-low east-high
    west | west-low west-high

    The sys admin could then define a several volume-types which would allow
    users to select backends from the different groups, for example:

    extra-specs | valid backend groups
    --------------------------------------------------+---------------------------------------
    geography=west | west-low, west-high
    geography=west, performance=high | west-high
    performance=high | east-high, west-high

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.