Project

General

Profile

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.