Mike, Thanks a lot! -Wei
2013/5/31, Mike Tutkowski <mike.tutkow...@solidfire.com>: > Hi Wei, > > Thanks! > > Here are the details you requested. This also talks about Min and Max IOPS. > > Please let me know if you'd like more information. I have an entire > document I could share with you regarding SolidFire QoS (the info below is > taken from this document). > > Talk to you later! > > How does SolidFire QoS use burstIOPS? > > When the cluster is running in a state of low cluster utilization, clients > are able to accrue burstIOPS credits and use these credits to burst above > their max up to their burst IOPS for the burst period. > > The current burst period is 60 seconds. > > Burst IOPS credits are accrued by performing less IO than the maxIOPS. Each > IO that is not used under the maxIOPS, is considered an IOPS “credit”, that > can be used later. > > There are two limits to the way that the burst IOPS credits can be used. > > The first limit is that the total number of burst credits that a customer > can accrue is (60 seconds) * (burst IOPS - max IOPS). > > The second limit is that the number of credits that can be depleted at any > time is at most the burst IOPS. Thus, a customer will never be able to go > higher than the burst IOPS set for the volume. > > Note: when another volume on the node is unable to reach its minIOPS, > burstIOPS are reset for all customers on the node. > > > Basic explanation: When there is performance left to do so, SolidFIre > allows customers to burst above their maximum for 60 seconds. > > How does SolidFire QoS use maxIOPS? > > MaxIOPS is a sustained rate limit. For a sustained period of time, the > customer will be able to sustain this IO rate, as long as no one else on > the cluster is unable to get their minimum IOPS. > > Basic explanation: MaxIOPS is what a customer will sustain for a long > period of time if everyone is getting their minimum IOPS guarantees. > > How does SolidFire QoS use minIOPS? > > The minIOPS is a lower limit on the performance that a customer should > expect in normal operating scenarios. > > SolidFire QoS is constantly monitoring the latencies observed by the > client, and the queue depth that the client is driving to the cluster. > > When a customer reaches the “cannot reach minIOPS situation”, as detected > by the targetIOPS and the latencies that the cluster is seeing at the given > IOPS, other customers are gradually ratcheted and pushed down to their > minIOPS. > > Note: customers are never throttled to less than their minIOPS unless there > is serious overload. > > What this means, is that at sufficiently high queue depth on a heavily > utilized cluster, our quality of service detects situations where a > customer is unable to get their minIOPS, and takes performance away from > other customers running above their minIOPS, and gives it to the customer > that is unable to reach their minIOPS until the “unhappy” customer reaches > their minIOPS. > > Note: In Boron (Version 5), to qualify for the minIOPS guarantee, the > customer must be running a queue depth higher than 8. > > What these three settings give us is something unique to storage: a quality > of service that limits the customer’s sustained effect on performance on > the cluster (max IOPS), the ability to burst and use unused performance > (burst IOPS) if there is any, and a reasonable expectation of performance > even in high utilization situations where performance can be dynamically > balanced throughout customers in the system. > > > The net effect of this, is that, in SolidFire, because the ratio of > performance between customers is changing depending on cluster utilization, > we’ve made it so that each customer’s performance isn’t directly tied to > each other. > > > > On Fri, May 31, 2013 at 10:43 AM, Wei ZHOU <ustcweiz...@gmail.com> wrote: > >> Mike, >> >> good work. >> I notice the burst IOPS. Do you know the mechanism and the config of >> it, like the duration and interval burst IO? Thanks. >> >> -Wei >> >> 2013/5/31, Mike Tutkowski <mike.tutkow...@solidfire.com>: >> > Hi everyone, >> > >> > I apologize for being unfamiliar with how I should have gone about >> getting >> > consensus for the storage plug-in I developed for 4.2. >> > >> > I talked with Animesh and he has asked me to send out this proposal >> related >> > to the storage plug-in I built for 4.2 and submitted to Review Board >> > earlier this week. >> > >> > Here is a link to the design document: >> > >> > >> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Implement+SolidFire+(storage)+plug-in+and+expose+control+of+IOPS+to+admins+and+end+users >> > >> > Here is a link to the JIRA ticket: >> > >> > https://issues.apache.org/jira/browse/CLOUDSTACK-2778 >> > >> > Here is a link to it on Review Board: >> > >> > https://reviews.apache.org/r/11479/ >> > >> > Here is a high-level summary: >> > >> > I have developed a storage plug-in which makes use of the new storage >> > framework that Edison put in place for the 4.2 release. >> > >> > Working with Edison, I have identified a few areas of the storage >> framework >> > that needed to be enhanced (and I have done so in the code that I >> > submitted) for dynamic, zone-wide primary storage to function. >> > >> > This storage plug-in is specific to SolidFire (a data-storage company), >> > whose architecture is designed around Quality of Service. Each volume >> > on >> > this SAN is assigned a Min, Max, and Burst number of IOPS. The Min is, >> > as >> > one might expect, a guaranteed number (even in fault conditions) (as >> > long >> > as the IOPS of the SAN are not over-provisioned). >> > >> > Per a discussion several months ago on this list, I have added into the >> > Disk Offerings Min, Max, and Burst values (all optional). These values >> > follow the patterns of the Disk Size field in that they can be >> > customized >> > by the end user (in the Add Volume) if the admin decides to allow this. >> > >> > In the end, this feature allows users to create a 1:1 mapping between a >> > volume on the SAN and a data disk that can be attached to a VM >> > (XenServer >> > supported...perhaps VMware, depending on time). This allows CloudStack >> > admins to offer their end users guaranteed IOPS on data disks >> (eliminating >> > the Noisy Neighbor effect). The plan is to support root disks in a >> post-4.2 >> > release. >> > >> > Again, I am sorry about my confusion regarding process here. I >> > certainly >> > appreciate all of the input I have received on the e-mail list over the >> > past couple months while I was developing this feature. >> > >> > Please let me know if you have any questions. >> > >> > Thanks! >> > >> > -- >> > *Mike Tutkowski* >> > *Senior CloudStack Developer, SolidFire Inc.* >> > e: mike.tutkow...@solidfire.com >> > o: 303.746.7302 >> > Advancing the way the world uses the >> > cloud<http://solidfire.com/solution/overview/?video=play> >> > *™* >> > >> > > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkow...@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play> > *™* >