Multiple Capability Sets Per Backend

Registered by Ben Swartzlander on 2013-12-04

Currently backends can only return one number for "free space" and a set of capabilities. If the backend actually manages a device with two pools of storage with different capabilities, there is no way to report the free space for those two pools other than to setup two whole backends managing the same device.

This proposal is to make a small tweak to the get_volume_stats() driver entry point to allow it return a list of dicts rather than a single dict. Existing driver can easily be updated to return singleton lists to achieve the exact same behavior that exists today. On the scheduler side, new logic will be needed to handle an additional level of indirection, so the scheduler can perform scheduling across the "pools" and after the right pool is selected, the request will be forwarded onto the backend associated with that pool.

This proposal was discussed in HK as part of my vendor-neutral-extra-specs talk. Obviously we won't be pursuing standardization of extra_specs any further, but this small proposal was not controversial at that time.

Blueprint information

Status:
Complete
Approver:
John Griffith
Priority:
Low
Drafter:
Ben Swartzlander
Direction:
Approved
Assignee:
Ben Swartzlander
Definition:
Obsolete
Series goal:
Accepted for future
Implementation:
Started
Milestone target:
milestone icon next
Started by
John Griffith on 2013-12-17
Completed by
Sean McGinnis on 2016-02-01

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.

We're no longer pursuing this approach. A new blueprint will be posted which will supersede this one.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.