Hi Sage, The primary QoS issue we see with OpenStack users is wanting to guarantee minimum IOPS to each Cinder-mounted RBD volume as a way to guarantee the health of well-mannered workloads against badly-behaving ones. As an OpenStack Administrator, I want to guarantee a minimum number of IOPS to each Cinder volume to prevent any tenant from interfering with another. The number of IOPS may vary per volume, but in many cases a "standard" and "high" number would probably suffice. The guarantee is more important than the granularity. This is something impacting users at today's Ceph performance level. Looking at the future, once Bluestore becomes the default, there will also be latency requirements from the crowd that wants to run databases with RBD backends — both low latency and low jitter in the latency, but rather than applying that to all volumes, it will be only to select ones backing RDBMs. Well, at least in the case of a general purpose cluster. My hunch is that Enterprise users that want hard-QoS guarantees will accept that a capacity planning exercise is necessary, software can only allocate existing capacity, not create more. Community users may value more some "fairness" in distributing existing resources instead. Just a hunch at this point. Best -F _________________________________________ -- "You must try until your brain hurts —Elon Musk (Federico L. Lucifredi) - federico at redhat.com - GnuPG 0x4A73884C On Fri, Dec 2, 2016 at 2:01 PM, Sage Weil <sweil@xxxxxxxxxx> wrote: > > Hi all, > > We're working on getting infrasture into RADOS to allow for proper > distributed quality-of-service guarantees. The work is based on the > mclock paper published in OSDI'10 > > https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Gulati.pdf > > There are a few ways this can be applied: > > - We can use mclock simply as a better way to prioritize background > activity (scrub, snap trimming, recovery, rebalancing) against client IO. > - We can use d-mclock to set QoS parameters (e.g., min IOPS or > proportional priority/weight) on RADOS pools > - We can use d-mclock to set QoS parameters (e.g., min IOPS) for > individual clients. > > Once the rados capabilities are in place, there will be a significant > amount of effort needed to get all of the APIs in place to configure and > set policy. In order to make sure we build somethign that makes sense, > I'd like to collection a set of user stores that we'd like to support so > that we can make sure we capture everything (or at least the important > things). > > Please add any use-cases that are important to you to this pad: > > http://pad.ceph.com/p/qos-user-stories > > or as a follow-up to this email. > > mClock works in terms of a minimum allocation (of IOPS or bandwidth; they > are sort of reduced into a single unit of work), a maximum (i.e. simple > cap), and a proportional weighting (to allocation any additional capacity > after the minimum allocations are satisfied). It's somewhat flexible in > terms of how we apply it to specific clients, classes of clients, or types > of work (e.g., recovery). How we put it all together really depends on > what kinds of things we need to accomplish (e.g., do we need to support a > guaranteed level of service shared across a specific set of N different > clients, or only individual clients?). > > Thanks! > sage > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com