Support Volume Num Weighter
Currently cinder support choosing volume backend according to free_capacity and allocated_capacity.
Volume Num Weighter is that scheduler could choose volume backend based on volume number in volume backend,
which could provide another mean to help improve volume-backends' IO balance and volumes' IO performance.
Explain the benifit from volume number weighter by this use case.
Assume we have volume-backend-A with 300G and volume-backend-B with 100G.
Volume-
Each volume's IO usage are almost the same.
Use CapacityWeigher as weighter class.
Concrete Use Case
If we create six 10G volumes, these volumes would placed in volume-backend A. All the six volume IO stream has been push on volume-backend-A, which would cause volume-backend-A does much IO scheduling work. At the same time, volume-backend-B has no volume and its io capabilites has been wasted.
If we have volume number weighter, scheduler could do proper initial placment for these volumes----three on volume-backend A, three on volume-backend-B. So that we can make full use of all volume-backends' IO capabilities to hlep improve volume-backends' IO balance and volumes' IO performance.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Medium
- Drafter:
- ling-yun
- Direction:
- Approved
- Assignee:
- ling-yun
- Definition:
- Approved
- Series goal:
- Accepted for juno
- Implementation:
-
Implemented
- Milestone target:
-
2014.2
- Started by
- John Griffith
- Completed by
- John Griffith
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add blueprint for support-
Addressed by: https:/
Add blueprint for support-
Gerrit topic: https:/
Addressed by: https:/
Support Volume Num Weighter