Rados qos » History » Version 1
Josh Durgin, 07/01/2015 07:58 AM
1 | 1 | Josh Durgin | h1. Rados QoS |
---|---|---|---|
2 | 1 | Josh Durgin | |
3 | 1 | Josh Durgin | *Summary* |
4 | 1 | Josh Durgin | QoS is a complex topic, with many variations that can be very complex to implement. This blueprint seeks to prototype a relatively simple, but scalable QoS algorithm for storage. |
5 | 1 | Josh Durgin | |
6 | 1 | Josh Durgin | *Owners* |
7 | 1 | Josh Durgin | Syed Billah (Red Hat) |
8 | 1 | Josh Durgin | Josh Durgin (Red Hat) |
9 | 1 | Josh Durgin | |
10 | 1 | Josh Durgin | *Interested Parties* |
11 | 1 | Josh Durgin | |
12 | 1 | Josh Durgin | *Current Status* |
13 | 1 | Josh Durgin | Working on a prototype in ceph |
14 | 1 | Josh Durgin | |
15 | 1 | Josh Durgin | *Detailed Description* |
16 | 1 | Josh Durgin | Try out the dmClock algorithm: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.182.4720 |
17 | 1 | Josh Durgin | |
18 | 1 | Josh Durgin | This defines SLOs in terms of IOPS - clients have parameters controlled by higher level policy: |
19 | 1 | Josh Durgin | # R - reservation (minimum IOPS) |
20 | 1 | Josh Durgin | # L - limit (maximum IOPS) |
21 | 1 | Josh Durgin | # W - weight (proportional share of capacity if extra capacity or system oversubscribed) |
22 | 1 | Josh Durgin | |
23 | 1 | Josh Durgin | These would be determined by client configuration for e.g. rbd, rgw, and sent with each OSDOp message in terms of deadlines. The osds would schedule based on these deadlines, plus a few extra pieces of information incorporated into these R, L, and W tags by a client: |
24 | 1 | Josh Durgin | # delta - the number of IOs this client completed in all OSDs since the last request to the current OSD |
25 | 1 | Josh Durgin | # rho - the number of IOs this client completed as part of the R (reservation) tag in all OSDs since the last request to the current OSD |
26 | 1 | Josh Durgin | |
27 | 1 | Josh Durgin | This is quite scalable, requiring no global state or aggregation, and reasonably simple to implement. |
28 | 1 | Josh Durgin | |
29 | 1 | Josh Durgin | On the OSD side, the main work is replacing the PrioritizedWorkQueue with one that uses mClock. |