Mike, Overall, I agree with the steps to below for 4.2. However, we may want to throw an exception if we can not fulfill a requested QoS. If the user is expecting that the hypervisor will provide a particular QoS, and that is not possible, it seems like we should inform them rather than silently ignoring their request.
To collect my thoughts from previous parts of the thread, I am uncomfortable with the idea that the management server can overcommit a resource. You had mentioned querying the device for available IOPS. While that would be nice, it seems like we could fall back to a max IOPS and overcommit factor manually calculated and entered by the administrator/operator. I think such threshold and allocation rails should be added for both provisioned IOPS and throttled I/O -- it is a basic feature of any cloud orchestration platform. For 4.3, I don't like the idea that a QoS would be expressed in a implementation specific manner. I think we need to arrive at a general model that can be exploited by the allocators and planners. We should restrict implementation specific key-value pairs (call them details, extended data, whatever) to information that is unique to the driver and would provide no useful information to the management server's orchestration functions. A resource QoS does not seem to fit those criteria. Thanks, -John On Jun 13, 2013, at 5:44 PM, Mike Tutkowski <mike.tutkow...@solidfire.com> wrote: > So, here's my suggestion for 4.2: > > Accept the values as they are currently required (four new fields for Wei's > feature or two new fields for mine). > > The Add Disk Offering dialog needs three new radio buttons: > > 1) No QoS > > 2) Hypervisor QoS > > 3) Storage Qos > > The admin needs to specify storage tags that only map to storage that > supports Storage QoS. > > The admin needs to be aware for Hypervisor QoS that unless all hypervisors > in use support the new fields, they may not be enforced. > > Post 4.3: > > Come up with a way to more generally enter these parameters (probably just > key/value pairs sent to the drivers). > > Have the drivers expose their feature set so the allocators can consider > them more fully and throw an exception if there is not a sufficient match. > > > On Thu, Jun 13, 2013 at 3:31 PM, Mike Tutkowski < > mike.tutkow...@solidfire.com> wrote: > >> My thinking is, for 4.2, while not ideal, we will need to put some burden >> on the admin to configure a Disk Offering in a way that makes sense. For >> example, if he wants to use storage QoS with supported Min and Max values, >> he'll have to put in a storage tag that references the SolidFire primary >> storage (plug-in). If he puts in a storage tag that doesn't, then he's not >> going to get the Min and Max feature. We could add help text to the pop-up >> dialog that's displayed when you click in the Min and Max text fields. >> >> Same idea for Wei's feature. >> >> Not idea, true...perhaps we can brainstorm on a more comprehensive >> approach for post 4.2. >> >> Maybe in the future we could have the drivers advertise their capabilities >> and if the allocator feels a request is not being satisfied (say Min was >> entered, but it not's supported by any storage plug-in) it can throw an >> exception. >> >> >> On Thu, Jun 13, 2013 at 3:19 PM, Mike Tutkowski < >> mike.tutkow...@solidfire.com> wrote: >> >>> Comments below in red. >>> >>> Thanks >>> >>> >>> On Thu, Jun 13, 2013 at 2:54 PM, John Burwell <jburw...@basho.com> wrote: >>> >>>> Mike, >>>> >>>> Please see my comment in-line below. >>>> >>>> Thanks, >>>> -John >>>> >>>> On Jun 13, 2013, at 1:22 AM, Mike Tutkowski < >>>> mike.tutkow...@solidfire.com> wrote: >>>> >>>>> Hi John, >>>>> >>>>> I've put comments below in red. >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On Wed, Jun 12, 2013 at 10:51 PM, John Burwell <jburw...@basho.com> >>>> wrote: >>>>> >>>>>> Mike, >>>>>> >>>>>> First and foremost, we must ensure that these two features are >>>> mutually >>>>>> exclusive in 4.2. We don't want to find a configuration that >>>> contains both >>>>>> hypervisor and storage IOPS guarantees that leads to non-deterministic >>>>>> operations. >>>>> >>>>> >>>>> Agreed >>>>> >>>>> >>>>>> Restricting QoS expression to be either hypervisor or storage oriented >>>>>> solves the problem in short term. As I understand storage tags, we >>>> have no >>>>>> means of expressing this type of mutual exclusion. I wasn't >>>> necessarily >>>>>> intending that we implement this allocation model in 4.3, but instead, >>>>>> determine if this type model would be one we would want to support in >>>> the >>>>>> future. If so, I would encourage us to ensure that the data model and >>>>>> current implementation would not preclude evolution in that >>>> direction. My >>>>>> view is that this type of allocation model is what user's expect of >>>> "cloud" >>>>>> systems -- selecting the best available resource set to fulfill a >>>> set of >>>>>> system requirements. >>>>>> >>>>> >>>>> I believe we have meet your requirement here in that what we've >>>> implemented >>>>> should not make refinement difficult in the future. If we don't modify >>>>> allocators for 4.2, but we do for 4.3, we've made relatively simple >>>> changes >>>>> to enhance the current functioning of the system. >>>>> >>>> >>>> Looking through both patches, I have to say that the aggregated result >>>> seems a bit confusing. There are six new attributes for throttled I/O and >>>> two for provisioned IOPS with no obvious grouping. My concern is not >>>> technical, but rather, about maintainability. At minimum, Javadoc should >>>> be added explaining the two sets of attributes and their mutual exclusion. >>>> >>> >>> I agree: We need JavaDoc to explain them and their mutual exclusion. >>> >>> >>>> >>>> The other part that is interesting is that throttled I/O provides both >>>> an IOPS and byte measured QoS as a rate where provisioned IOPS uses a >>>> range. In order to select the best available resource to fulfill a QoS, we >>>> would need to have the QoS expression normalized in terms of units (IOPS or >>>> bytes) and their expression (rate vs. range). If we want to achieve a >>>> model like I described, I think we would need to resolve this issue in 4.2 >>>> to ensure a viable migration path. >>> >>> >>> I think we're not likely to be able to normalize the input for 4.2. Plus >>> people probably want to input the data in terms they're familiar with for >>> the products in question. >>> >>> Ideally we would fix the way we do storage tagging and let the user send >>> key/value pairs to each vendor that could be selected due to a given >>> storage tag. I'm still not sure that would solve it because what happens if >>> you change the storage tag of a given Primary Storage after having created >>> a Disk Offering? >>> >>> Basically storage tagging is kind of a mess and we should re-think it. >>> >>> Also, we need to have a way for the drivers to expose their supported >>> feature sets so the allocators can make good choices. >>> >>> >>>> >>>>> >>>>>> >>>>>> As I think through the implications of these requirements and reflect >>>> on >>>>>> the reviews, I don't understand why they haven't already impacted the >>>>>> allocators and planners. As it stands, the current provisioned IOPS >>>> has no >>>>>> checks to ensure that the volumes are allocated to devices that have >>>>>> capacity to fulfill the requested QoS. Therefore, as I understand the >>>>>> current patch, we can overcommit storage resources -- potentially >>>> causing >>>>>> none of the QoS obligations from being fulfilled. It seems to me >>>> that a >>>>>> DataStore supporting provisioned IOPS should express the maximum IOPS >>>> which >>>>>> it can support and some type of overcommitment factor. This >>>> information >>>>>> should be used by the storage allocators to determine the device best >>>> able >>>>>> to support the resources needs of a volume. It seems that a similar >>>> set of >>>>>> considerations would need to be added to the Hypervisor layer which >>>>>> allocating a VM to a host to prevent oversubscription. >>>>>> >>>>> >>>>> Yeah, for this first release, we just followed the path that was >>>> previously >>>>> established for other properties you see on dialogs in CS: Just because >>>>> they're there doesn't mean the vendor your VM is deployed to supports >>>> them. >>>>> It is then up to the admin to make sure he inputs, say, a storage tag >>>> that >>>>> confines the deployment only to storage that supports the selected >>>>> features. This is not ideal, but it's kind of the way CloudStack works >>>>> today. >>>> >>>> I understand the tag functionality, and the need for the administrator >>>> to very carefully construct offerings. My concern is that we over >>>> guarantee a resource's available IOPS. For the purposes of illustration, >>>> let's say we have a SolidFire, and the max IOPS for that device is 100000. >>>> We also know that we can safely oversubscribe by 50%. Therefore, we >>>> need to ensure that we don't allocate more than 150,000 guaranteed IOPS >>>> from that device. Intuitively, it seems like the DataStore configuration >>>> should have a max assignable IOPS and overcommitment factor. As we >>>> allocate volumes and attach VMs, we need to ensure that guarantee more IOPS >>>> exceed the configured maximum for a DataStore. Does that make sense? >>>> >>> >>> I think that's a good idea for a future enhancement. I'm not even sure I >>> can query the SAN to find out how many IOPS safely remain. I'd have to get >>> all of the min values for all of the volumes on the SAN and total them up, >>> I suppose, and subtract it from the total (user facing) supported IOPS of >>> the system. >>> >>> >>>> >>>>> >>>>> >>>>>> >>>>>> Another question occurs to me -- should we allow non-QoS resources to >>>> be >>>>>> assigned to hosts/storage devices that ensure QoS? For provisioned >>>> IOPS, I >>>>>> think a side effect of the current implementation is SolidFire volumes >>>>>> always have a QoS. However, for hypervisor throttled I/O, it seems >>>>>> entirely possible for non-QoS VMs to allocated side-by-side with QoS >>>> VMs. >>>>>> In this scenario, a greedy, unbounded VM could potentially starve out >>>> the >>>>>> other VMs on the host -- preventing the QoSes defined the collocated >>>> VMs >>>>>> from being fulfilled. >>>>>> >>>>> >>>>> You can make SolidFire volumes (inside and outside of CS) and not >>>> specify >>>>> IOPS. You'll still get guaranteed IOPS, but it will be at the defaults >>>> we >>>>> choose. Unless you over-provision IOPS on a SolidFire SAN, you will >>>> have >>>>> your Mins met. >>>>> >>>>> It sounds like you're perhaps looking for a storage tags exclusions >>>> list, >>>>> which might be nice to have at some point (i.e. don't deploy my volume >>>> to >>>>> storage with these following tags). >>>> >>>> I don't like the idea of a storage tags exclusion list as it would >>>> complicate component assembly. It would require a storage plugin to >>>> anticipate all of the possible component assemblies and determine the >>>> invalid relationships. I prefer that drivers express their capabilities >>>> which can be matched to a set of requested requirements. >>>> >>> >>> I'm not sure why a storage plug-in would care about inclusion or >>> exclusion lists. It just needs to advertise its functionality in a way the >>> allocator understands. >>> >>> >>>> >>>>> >>>>> I agree with your assessment of Hypervisor QoS. Since it only limits >>>> IOPS, >>>>> it does not solve the Noisy Neighbor problem. Only a system with >>>> guaranteed >>>>> minimum IOPS does this. >>>> >>>> As I said, for SolidFire, it sounds like this problem does not exist. >>>> However, I am concerned with the more general case as we supported more >>>> devices with provisioned IOPS. >>>> >>> >>> Post 4.2 we need to investigate a way to pass vendor-specific values to >>> drivers. Min and Max and pretty industry standard for provisioned IOPS, but >>> what if you break them out by read and write or do something else? We need >>> a more general mechanism. >>> >>>> >>>>> >>>>> >>>>>> >>>>>> In my opinion, we need to ensure that hypervisor throttled I/O and >>>>>> storage provisioned IOPS are mutually exclusive per volume. >>>>> >>>>> >>>>> Agreed >>>>> >>>>> >>>>>> We also need to understand the implications of these QoS guarantees on >>>>>> operation of the system to ensure that the underlying hardware >>>> resources >>>>>> can fulfill them. Given the time frame, we will likely be forced to >>>> make >>>>>> compromises to achieve these goals, and refine the implementation in >>>> 4.3. >>>>>> >>>>> >>>>> I agree, John. I also think you've come up with some great ideas for >>>> 4.3. :) >>>>> >>>>> >>>>>> >>>>>> Thanks, >>>>>> -John >>>>>> >>>>>> On Jun 12, 2013, at 11:35 PM, Mike Tutkowski < >>>> mike.tutkow...@solidfire.com> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Yeah, Alex, I think that's the way we were planning (with storage >>>> tags). >>>>>> I >>>>>>> believe John was just throwing out an idea that - in addition to >>>> storage >>>>>>> tags - we could look into these allocators (storage QoS being >>>> preferred, >>>>>>> then hypervisor QoS if storage QoS is not available, but hypervisor >>>> QoS >>>>>> is). >>>>>>> >>>>>>> I think John's concern is that you can enter in values for Wei's and >>>> my >>>>>>> feature that are not honored by other vendors (at least yet), so he >>>> was >>>>>>> hoping - in addition to storage tags - for the allocators to prefer >>>> these >>>>>>> vendors when these fields are filled in. As it stands today in >>>>>> CloudStack, >>>>>>> we already have this kind of an issue with other features (fields in >>>>>>> dialogs for features that not all vendors support). Perhaps post 4.2 >>>> we >>>>>>> could look into generic name/value pairs (this is how OpenStack >>>> addresses >>>>>>> the issue). >>>>>>> >>>>>>> Honestly, I think we're too late in the game (two weeks until code >>>>>> freeze) >>>>>>> to go too deeply down that path in 4.2. >>>>>>> >>>>>>> It's probably better if we - at least for 4.2 - keep Wei's fields >>>> and my >>>>>>> fields as is, make sure only one or the other feature has data >>>> entered >>>>>> for >>>>>>> it (or neither), and call it good for 4.2. >>>>>>> >>>>>>> Then let's step back and look into a more general-purpose design >>>> that can >>>>>>> be applied throughout CloudStack where we have these situations. >>>>>>> >>>>>>> What do you think? >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Jun 12, 2013 at 5:21 PM, John Burwell <jburw...@basho.com> >>>>>> wrote: >>>>>>> >>>>>>>> Mike, >>>>>>>> >>>>>>>> I just published my review @ https://reviews.apache.org/r/11479/. >>>>>>>> >>>>>>>> I apologize for the delay, >>>>>>>> -John >>>>>>>> >>>>>>>> On Jun 12, 2013, at 12:43 PM, Mike Tutkowski < >>>>>> mike.tutkow...@solidfire.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> No problem, John. >>>>>>>>> >>>>>>>>> I still want to re-review it by myself before coming up with a new >>>>>> patch >>>>>>>>> file. >>>>>>>>> >>>>>>>>> Also, maybe I should first wait for Wei's changes to be checked in >>>> and >>>>>>>>> merge those into mine before generating a new patch file? >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jun 12, 2013 at 10:40 AM, John Burwell <jburw...@basho.com >>>>> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Mike, >>>>>>>>>> >>>>>>>>>> I just realized that I forgot to publish my review. I am offline >>>> ATM, >>>>>>>>>> but I will publish it in the next couple of hours. >>>>>>>>>> >>>>>>>>>> Do you plan to update your the patch in Review Board? >>>>>>>>>> >>>>>>>>>> Sorry for the oversight, >>>>>>>>>> -John >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Jun 12, 2013, at 2:26 AM, Mike Tutkowski >>>>>>>>>> <mike.tutkow...@solidfire.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Edison, John, and Wei (and whoever else is reading this :) ), >>>>>>>>>>> >>>>>>>>>>> Just an FYI that I believe I have implemented all the areas we >>>> wanted >>>>>>>>>>> addressed. >>>>>>>>>>> >>>>>>>>>>> I plan to review the code again tomorrow morning or afternoon, >>>> then >>>>>>>> send >>>>>>>>>> in >>>>>>>>>>> another patch. >>>>>>>>>>> >>>>>>>>>>> Thanks for all the work on this everyone! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Jun 11, 2013 at 12:29 PM, Mike Tutkowski < >>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Sure, that sounds good. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Jun 11, 2013 at 12:11 PM, Wei ZHOU < >>>> ustcweiz...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Mike, >>>>>>>>>>>>> >>>>>>>>>>>>> It looks the two feature do not have many conflicts in Java >>>> code, >>>>>>>>>> except >>>>>>>>>>>>> the cloudstack UI. >>>>>>>>>>>>> If you do not mind, I will merge disk_io_throttling branch into >>>>>>>> master >>>>>>>>>>>>> this >>>>>>>>>>>>> week, so that you can develop based on it. >>>>>>>>>>>>> >>>>>>>>>>>>> -Wei >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> 2013/6/11 Mike Tutkowski <mike.tutkow...@solidfire.com> >>>>>>>>>>>>> >>>>>>>>>>>>>> Hey John, >>>>>>>>>>>>>> >>>>>>>>>>>>>> The SolidFire patch does not depend on the object_store >>>> branch, >>>>>> but >>>>>>>> - >>>>>>>>>> as >>>>>>>>>>>>>> Edison mentioned - it might be easier if we merge the >>>> SolidFire >>>>>>>> branch >>>>>>>>>>>>> into >>>>>>>>>>>>>> the object_store branch before object_store goes into master. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'm not sure how the disk_io_throttling fits into this merge >>>>>>>> strategy. >>>>>>>>>>>>>> Perhaps Wei can chime in on that. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Jun 11, 2013 at 11:07 AM, John Burwell < >>>>>> jburw...@basho.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Mike, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> We have a delicate merge dance to perform. The >>>>>> disk_io_throttling, >>>>>>>>>>>>>>> solidfire, and object_store appear to have a number of >>>>>> overlapping >>>>>>>>>>>>>>> elements. I understand the dependencies between the patches >>>> to >>>>>> be >>>>>>>> as >>>>>>>>>>>>>>> follows: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> object_store <- solidfire -> disk_io_throttling >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Am I correct that the device management aspects of SolidFire >>>> are >>>>>>>>>>>>> additive >>>>>>>>>>>>>>> to the object_store branch or there are circular dependency >>>>>> between >>>>>>>>>>>>> the >>>>>>>>>>>>>>> branches? Once we understand the dependency graph, we can >>>>>>>> determine >>>>>>>>>>>>> the >>>>>>>>>>>>>>> best approach to land the changes in master. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>> -John >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Jun 10, 2013, at 11:10 PM, Mike Tutkowski < >>>>>>>>>>>>>> mike.tutkow...@solidfire.com> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Also, if we are good with Edison merging my code into his >>>> branch >>>>>>>>>>>>> before >>>>>>>>>>>>>>>> going into master, I am good with that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We can remove the StoragePoolType.Dynamic code after his >>>> merge >>>>>> and >>>>>>>>>>>>> we >>>>>>>>>>>>>> can >>>>>>>>>>>>>>>> deal with Burst IOPS then, as well. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Mon, Jun 10, 2013 at 9:08 PM, Mike Tutkowski < >>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Let me make sure I follow where we're going here: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 1) There should be NO references to hypervisor code in the >>>>>>>> storage >>>>>>>>>>>>>>>>> plug-ins code (this includes the default storage plug-in, >>>> which >>>>>>>>>>>>>>> currently >>>>>>>>>>>>>>>>> sends several commands to the hypervisor in use (although >>>> it >>>>>> does >>>>>>>>>>>>> not >>>>>>>>>>>>>>> know >>>>>>>>>>>>>>>>> which hypervisor (XenServer, ESX(i), etc.) is actually in >>>> use)) >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 2) managed=true or managed=false can be placed in the url >>>> field >>>>>>>> (if >>>>>>>>>>>>>> not >>>>>>>>>>>>>>>>> present, we default to false). This info is stored in the >>>>>>>>>>>>>>>>> storage_pool_details table. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 3) When the "attach" command is sent to the hypervisor in >>>>>>>>>>>>> question, we >>>>>>>>>>>>>>>>> pass the managed property along (this takes the place of >>>> the >>>>>>>>>>>>>>>>> StoragePoolType.Dynamic check). >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 4) execute(AttachVolumeCommand) in the hypervisor checks >>>> for >>>>>> the >>>>>>>>>>>>>> managed >>>>>>>>>>>>>>>>> property. If true for an attach, the necessary hypervisor >>>> data >>>>>>>>>>>>>>> structure is >>>>>>>>>>>>>>>>> created and the rest of the attach command executes to >>>> attach >>>>>> the >>>>>>>>>>>>>>> volume. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 5) When execute(AttachVolumeCommand) is invoked to detach a >>>>>>>> volume, >>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>> same check is made. If managed, the hypervisor data >>>> structure >>>>>> is >>>>>>>>>>>>>>> removed. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 6) I do not see an clear way to support Burst IOPS in 4.2 >>>>>> unless >>>>>>>>>>>>> it is >>>>>>>>>>>>>>>>> stored in the volumes and disk_offerings table. If we have >>>> some >>>>>>>>>>>>> idea, >>>>>>>>>>>>>>>>> that'd be cool. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Mon, Jun 10, 2013 at 8:58 PM, Mike Tutkowski < >>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> "+1 -- Burst IOPS can be implemented while avoiding >>>>>>>> implementation >>>>>>>>>>>>>>>>>> attributes. I always wondered about the details field. I >>>>>> think >>>>>>>>>>>>> we >>>>>>>>>>>>>>> should >>>>>>>>>>>>>>>>>> beef up the description in the documentation regarding the >>>>>>>>>>>>> expected >>>>>>>>>>>>>>> format >>>>>>>>>>>>>>>>>> of the field. In 4.1, I noticed that the details are not >>>>>>>>>>>>> returned on >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> createStoratePool updateStoragePool, or listStoragePool >>>>>>>> response. >>>>>>>>>>>>>> Why >>>>>>>>>>>>>>>>>> don't we return it? It seems like it would be useful for >>>>>>>> clients >>>>>>>>>>>>> to >>>>>>>>>>>>>> be >>>>>>>>>>>>>>>>>> able to inspect the contents of the details field." >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Not sure how this would work storing Burst IOPS here. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Burst IOPS need to be variable on a Disk Offering-by-Disk >>>>>>>> Offering >>>>>>>>>>>>>>>>>> basis. For each Disk Offering created, you have to be >>>> able to >>>>>>>>>>>>>> associate >>>>>>>>>>>>>>>>>> unique Burst IOPS. There is a disk_offering_details table. >>>>>> Maybe >>>>>>>>>>>>> it >>>>>>>>>>>>>>> could >>>>>>>>>>>>>>>>>> go there? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I'm also not sure how you would accept the Burst IOPS in >>>> the >>>>>> GUI >>>>>>>>>>>>> if >>>>>>>>>>>>>>> it's >>>>>>>>>>>>>>>>>> not stored like the Min and Max fields are in the DB. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> *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> >>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *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> >>>>>>>>>>>> *™* >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *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> >>>>>>>>> *™* >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *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> >>>>> *™* >>>> >>>> >>> >>> >>> -- >>> *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> >> *™* >> > > > > -- > *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> > *™*