Pool-aware Scheduler Support

Registered by Huang Zhiteng on 2014-06-17

Cinder has been designed to take look each volume backend as a whole since day 1. The provisioning decisions are based on the statistics reported by backends periodically. Any back end is assumed to be a single discrete unit with specific set of capabilities and capacities offered and also these characteristics are constant through out the boundary of the storage addressed/managed by the back end. In reality this assumption is not true for many storage providers and as their storage managed can be further sub divided or partitioned into 'pools' to offer completely different set of capabilities and capacities. That is there are storage backends are a combination of storage pools rather than one big single homogenous entity. And usually volumes/snapshots can't be placed across pools on such backends. As a result, there are several obvious problems when using them with current Cinder:
1. A volume/snapshot that is larger than any sub-pool of the target backend be schedule the backend would fail;
2. A sub pool may not have enough space to serve consecutive request (e.g. clone volume, create snapshot) but while the entire backend appears to have enough capacity;
The issues are very confusing and result in inconsistent user experience. Therefore it is important to extend cinder to be aware of storage pools within backend and also use them as finest granularity for resource placement.

Blueprint information

Status:
Complete
Approver:
John Griffith
Priority:
Low
Drafter:
Huang Zhiteng
Direction:
Approved
Assignee:
Huang Zhiteng
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
John Griffith on 2014-08-20
Completed by
John Griffith on 2014-09-02

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/pool-aware-cinder-scheduler,n,z

Addressed by: https://review.openstack.org/100449
    Pool-aware Cinder Scheduler Support

Addressed by: https://review.openstack.org/98715
    Pool-aware Scheduler Support

Addressed by: https://review.openstack.org/112124
    3PAR with pool-aware-cinder-scheduler

Gerrit topic: https://review.openstack.org/#q,topic:bp/retype-model-update,n,z

Addressed by: https://review.openstack.org/113997
    Retype can return a model_update

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.