Yeah, this is interesting.

We'll have to wait and see what Wei's thoughts are on this.


On Wed, Jun 12, 2013 at 4:17 PM, John Burwell <jburw...@basho.com> wrote:

> Mike,
>
> Yes.  To your point, the appropriate logic would be to check the Volume
> allocated by the StorageAllocator.  If it doesn't support a QoS, then the
> VM allocator would attempt to fulfill the QoS through the hypervisor.
>  Another question would be -- what would be in the behavior in the event
> that no resources are available to fulfill the QoS?  We could outright fail
> or proceed with some kind of warning -- sounds like a good place for a
> global setting to configure the policy.
>
> The other question we haven't answered are usage records.  By pushing the
> QoS concept out to allocation and making it a more general concept, it
> could make usage record capture more straightforward.
>
> Thanks,
> -John
>
> On Jun 12, 2013, at 6:11 PM, Mike Tutkowski <mike.tutkow...@solidfire.com>
> wrote:
>
> I see, John.
>
> That is an interesting idea.
>
> We'd also have to change the storage allocator(s) to favor QoS-supported
> storage if those fields are filled in.
>
>
> On Wed, Jun 12, 2013 at 4:09 PM, John Burwell <jburw...@basho.com> wrote:
>
>> Mike,
>>
>> My thought is that we present the min/max IOPS fields for read/write
>> operations for all compute and disk offerings.  When the VM is allocated,
>> we determine the best way to fulfill that QoS.  It sounds like storage
>> level guarantees would always be preferred.  If no storage is available to
>> guarantee the QoS, the allocator falls back to using hypervisor.  This
>> approach only works if summing the discrete read/write min/max values to
>> get to min/max total IOPS would be acceptable.
>>
>> Thanks,
>> -John
>>
>>
>> On Jun 12, 2013, at 6:03 PM, Mike Tutkowski <mike.tutkow...@solidfire.com>
>> wrote:
>>
>> I hate to say it, but I believe Storage QoS with a Min and Max will
>> always be optimal over hypervisor rate limiting.
>>
>> The only time you'd want to use hypervisor rate limiting is if storage
>> QoS is not available.
>>
>> We currently have no way to know what storage the root or data disk will
>> be deployed to, so we have to present the fields in all situation.
>>
>> This is because of - in my opinion - the somewhat flawed way CloudStack
>> handles storage tags. You are free to enter in any text there and we don't
>> know what it maps to when the Compute or Disk Offering dialog is up.
>>
>>
>> On Wed, Jun 12, 2013 at 3:58 PM, John Burwell <jburw...@basho.com> wrote:
>>
>>> Mike,
>>>
>>> Please see my comments/questions in-line below.
>>>
>>> Thanks,
>>> -John
>>>
>>> On Jun 12, 2013, at 5:37 PM, Mike Tutkowski <
>>> mike.tutkow...@solidfire.com> wrote:
>>>
>>> Hi Wei,
>>>
>>> So, not entirely sure I follow.
>>>
>>> Will what I wrote earlier work? Here is a copy of what I wrote:
>>>
>>> Let's just called these radio buttons 1) Hypervisor QoS and 2) Storage
>>> QoS for the purpose of this e-mail.
>>>
>>> By default, neither radio button is selected and no QoS fields are
>>> visible.
>>>
>>>
>>> I prefer a None option selected by default.  I find the no button
>>> selected in a Radio button group to be confusing.
>>>
>>> Also, do we have a mechanism to determine whether or not this radio
>>> button group should be displayed at all?  If there are no devices or
>>> hypervisors configured to fulfill the QoS, we shouldn't mislead the user ...
>>>
>>>
>>> If the user selects the Storage QoS radio button, then the Custom IOPS
>>> checkbox and the Min and Max text fields are made visible.
>>>
>>> If the user changes his mind and selects the Hypervisor QoS radio
>>> button, then the Custom IOPS checkbox and the Min and Max text fields
>>> disappear and are replaced by the two Hypervisor QoS text fields.
>>>
>>> This way, the user can choose neither QoS option or one of them or the
>>> other, but never both.
>>>
>>> On the API side, I was thinking of having logic in place when a request
>>> comes in to create a Disk Offering to confirm these fields are the way we
>>> want them.
>>>
>>> Once we know the Disk Offering is in order, a user can create a data
>>> disk from it. Since we checked the validity of the Disk Offering when it
>>> was created, the VM should never be asked to use Hypervisor QoS when
>>> Storage QoS in being utilized.
>>>
>>>
>>> Overall, this model sounds very reasonable.  Wondering aloud: Would be
>>> possible to have the UI simply ask for a storage QoS, and let the system
>>> pick the optional implementation.  For example, if a VM is attached to KVM
>>> and SolidFire is available, we chose to fulfill the QoS using the storage
>>> device.  This approach would also allow us to fallback in the event that we
>>> can't allocate storage for the QoS, but we have hypervisor capacity. Could
>>> we always deterministically determine the optimal implementation of the QoS
>>> at time of VM deployment?
>>>
>>>
>>> Thanks!
>>>
>>>
>>> On Wed, Jun 12, 2013 at 3:33 PM, Wei ZHOU <ustcweiz...@gmail.com> wrote:
>>>
>>>> Mike, John
>>>>
>>>> The Disk I/O Throttling works like:
>>>>
>>>> (1) For User VM,
>>>> (1.1) root disks: service offering -> default value in global
>>>> configuration
>>>> (1.2) data disks: disk offering -> default value in global configuration
>>>>
>>>> (2) For System VM
>>>> root disks: service offering
>>>>
>>>> -Wei
>>>>
>>>>
>>>> 2013/6/12 John Burwell <jburw...@basho.com>
>>>>
>>>> > Mike,
>>>> >
>>>> > That is one possibility.  The other possibility is that hypervisor is
>>>> > going to throttle I/O on all disks attached.  Therefore, we need
>>>> answers to
>>>> > the following questions:
>>>> >
>>>> >         1. Is I/O throttling applied to the root disk or all disks
>>>> > attached to the VM?
>>>> >         2. If I/O throttling is applied to all disks, how is the
>>>> > throttling distributed amongst the disks if only one read/write value
>>>> is
>>>> > defined?
>>>> >
>>>> > Thanks,
>>>> > -John
>>>> >
>>>> > On Jun 12, 2013, at 5:13 PM, Mike Tutkowski <
>>>> mike.tutkow...@solidfire.com>
>>>> > wrote:
>>>> >
>>>> > > Hey John,
>>>> > >
>>>> > > Perhaps I don't fully understand how Wei's feature works.
>>>> > >
>>>> > > I guess I thought if you choose Hypervisor QoS, you do so on Compute
>>>> > > Offerings (root disks) and/or Disk Offerings (data disks).
>>>> > >
>>>> > > From my thinking, you're root disk could be under Hypervisor QoS,
>>>> but
>>>> > your
>>>> > > data disk could be under Storage QoS.
>>>> > >
>>>> > > Is that incorrect?
>>>> > >
>>>> > > Thanks
>>>> > >
>>>> > >
>>>> > > On Wed, Jun 12, 2013 at 3:10 PM, John Burwell <jburw...@basho.com>
>>>> > wrote:
>>>> > >
>>>> > >> Mike,
>>>> > >>
>>>> > >> As I understand these two patches, the throttled I?O settings are
>>>> > applied
>>>> > >> from the hypervisor side, and possibly defined in a compute
>>>> offering
>>>> > where
>>>> > >> provisioned IOPS are defined on the storage side through disk
>>>> > offerings.  I
>>>> > >> don't see how the management server could enforce this mutual
>>>> exclusion
>>>> > >> between provisioned IOPS and throttled I/O until a compute and disk
>>>> > >> offering were selected.  These selections come together when we
>>>> deploy a
>>>> > >> VM.  Based on these assumptions, I would expect to see enforcement
>>>> of
>>>> > this
>>>> > >> rule in UI at the time of VM creation/definition and on the server
>>>> > side, as
>>>> > >> part of the VM creation.  It feels like any attempt to enforce
>>>> this rule
>>>> > >> when defining offering would be premature, and unnecessarily limit
>>>> > >> flexibility.  Are my assumptions and understanding correct?
>>>> > >>
>>>> > >> Thanks,
>>>> > >> -John
>>>> > >>
>>>> > >> On Jun 12, 2013, at 5:04 PM, Mike Tutkowski <
>>>> > mike.tutkow...@solidfire.com>
>>>> > >> wrote:
>>>> > >>
>>>> > >>> Hi John,
>>>> > >>>
>>>> > >>> So, maybe I'm wrong about this, but what I was thinking is that
>>>> we'd
>>>> > >> build
>>>> > >>> two radio buttons into the Add Disk Offering dialog (we can ignore
>>>> > >> Compute
>>>> > >>> Offerings for 4.2 since my feature doesn't yet support them).
>>>> > >>>
>>>> > >>> Let's just called these radio buttons 1) Hypervisor QoS and 2)
>>>> Storage
>>>> > >> QoS
>>>> > >>> for the purpose of this e-mail.
>>>> > >>>
>>>> > >>> By default, neither radio button is selected and no QoS fields are
>>>> > >> visible.
>>>> > >>>
>>>> > >>> If the user selects the Storage QoS radio button, then the Custom
>>>> IOPS
>>>> > >>> checkbox and the Min and Max text fields are made visible.
>>>> > >>>
>>>> > >>> If the user changes his mind and selects the Hypervisor QoS radio
>>>> > button,
>>>> > >>> then the Custom IOPS checkbox and the Min and Max text fields
>>>> disappear
>>>> > >> and
>>>> > >>> are replaced by the two Hypervisor QoS text fields.
>>>> > >>>
>>>> > >>> This way, the user can choose neither QoS option or one of them
>>>> or the
>>>> > >>> other, but never both.
>>>> > >>>
>>>> > >>> On the API side, I was thinking of having logic in place when a
>>>> request
>>>> > >>> comes in to create a Disk Offering to confirm these fields are
>>>> the way
>>>> > we
>>>> > >>> want them.
>>>> > >>>
>>>> > >>> Once we know the Disk Offering is in order, a user can create a
>>>> data
>>>> > disk
>>>> > >>> from it. Since we checked the validity of the Disk Offering when
>>>> it was
>>>> > >>> created, the VM should never be asked to use Hypervisor QoS when
>>>> > Storage
>>>> > >>> QoS in being utilized.
>>>> > >>>
>>>> > >>> Does that make sense or did I miss something?
>>>> > >>>
>>>> > >>> Thanks
>>>> > >>>
>>>> > >>>
>>>> > >>> On Wed, Jun 12, 2013 at 2:54 PM, John Burwell <jburw...@basho.com
>>>> >
>>>> > >> wrote:
>>>> > >>>
>>>> > >>>> Mike,
>>>> > >>>>
>>>> > >>>> Looking through the code, I am trying to understand how
>>>> > >>>> CreateDiskOfferingCmd would have the context to identify the
>>>> conflict.
>>>> > >>>> Naively, it seems to me that this rule would need to be enforced
>>>> when
>>>> > a
>>>> > >>>> virtual machine is being deployed.  Looking through the code, it
>>>> seems
>>>> > >> like
>>>> > >>>> we should add a private validateStorageQoS method to
>>>> > >>>> com.cloud.vm.UserVmManagerImpl to check this condition and
>>>> throws a
>>>> > >>>> ResourceAllocationException when the QoS definitions are
>>>> inconsistent.
>>>> > >>  We
>>>> > >>>> would then add calls to it from each of the VM creation methods
>>>> in the
>>>> > >>>> service.  Do this type of approach sound reasonable?
>>>> > >>>>
>>>> > >>>> Thanks,
>>>> > >>>> -John
>>>> > >>>>
>>>> > >>>> On Jun 12, 2013, at 4:30 PM, Mike Tutkowski <
>>>> > >> mike.tutkow...@solidfire.com>
>>>> > >>>> wrote:
>>>> > >>>>
>>>> > >>>>> Hi John,
>>>> > >>>>>
>>>> > >>>>> So, here's what I was planning to do. Of course feel free to
>>>> correct
>>>> > me
>>>> > >>>> on
>>>> > >>>>> this approach.
>>>> > >>>>>
>>>> > >>>>> I think it's OK if Wei merges his code into master and then I
>>>> can
>>>> > draw
>>>> > >>>> from
>>>> > >>>>> the main repo and merge master into mine locally.
>>>> > >>>>>
>>>> > >>>>> 1) Once I get Wei's code and merge, I plan to add a little GUI
>>>> code
>>>> > to
>>>> > >>>> make
>>>> > >>>>> it user friendly (toggle between these features on the Add Disk
>>>> > >> Offering
>>>> > >>>>> window).
>>>> > >>>>>
>>>> > >>>>> 2) I plan to write validation logic for the
>>>> create-disk-offering API
>>>> > >>>>> command which throws an exception if the rules are not followed
>>>> (this
>>>> > >>>>> should never be triggered from the GUI since the GUI will have
>>>> > controls
>>>> > >>>> in
>>>> > >>>>> place to toggle between the one feature and the other).
>>>> > >>>>>
>>>> > >>>>> I'm not sure about documentation. I haven't had much experience
>>>> with
>>>> > it
>>>> > >>>> on
>>>> > >>>>> CloudStack projects yet.
>>>> > >>>>>
>>>> > >>>>> Thanks!
>>>> > >>>>>
>>>> > >>>>>
>>>> > >>>>> On Wed, Jun 12, 2013 at 2:21 PM, John Burwell <
>>>> jburw...@basho.com>
>>>> > >>>> wrote:
>>>> > >>>>>
>>>> > >>>>>> Mike,
>>>> > >>>>>>
>>>> > >>>>>> Yes, these server-side rails need to be defined and implemented
>>>> > before
>>>> > >>>>>> either patch can be merged.  From my perspective, I would like
>>>> to
>>>> > see
>>>> > >>>> the
>>>> > >>>>>> rule implemented in the hypervisor as part of the validation
>>>> of the
>>>> > >>>> virtual
>>>> > >>>>>> machine definition.  We also need to make sure that this mutual
>>>> > >>>> exclusion
>>>> > >>>>>> is documented.  Do we usually include this type of
>>>> documentation
>>>> > with
>>>> > >>>>>> patches of this nature?
>>>> > >>>>>>
>>>> > >>>>>> Thanks,
>>>> > >>>>>> -John
>>>> > >>>>>>
>>>> > >>>>>> On Jun 12, 2013, at 2:18 PM, Mike Tutkowski <
>>>> > >>>> mike.tutkow...@solidfire.com>
>>>> > >>>>>> wrote:
>>>> > >>>>>>
>>>> > >>>>>>> Currently they are not yet implemented.
>>>> > >>>>>>>
>>>> > >>>>>>> We have to make sure they are implemented in the GUI from a
>>>> > usability
>>>> > >>>>>>> standpoint, but the API must check for consistency and throw
>>>> an
>>>> > >>>> exception
>>>> > >>>>>>> if necessary.
>>>> > >>>>>>>
>>>> > >>>>>>>
>>>> > >>>>>>> On Wed, Jun 12, 2013 at 11:03 AM, John Burwell <
>>>> jburw...@basho.com
>>>> > >
>>>> > >>>>>> wrote:
>>>> > >>>>>>>
>>>> > >>>>>>>> Mike,
>>>> > >>>>>>>>
>>>> > >>>>>>>> Are the checks only implemented in the UI?
>>>> > >>>>>>>>
>>>> > >>>>>>>> Thanks,
>>>> > >>>>>>>> -John
>>>> > >>>>>>>>
>>>> > >>>>>>>>
>>>> > >>>>>>>>
>>>> > >>>>>>>>
>>>> > >>>>>>>> On Jun 12, 2013, at 1:02 PM, Mike Tutkowski
>>>> > >>>>>>>> <mike.tutkow...@solidfire.com> wrote:
>>>> > >>>>>>>>
>>>> > >>>>>>>>> Hi John,
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> Wei and I have discussed making the two features mutually
>>>> > >> exclusive.
>>>> > >>>> We
>>>> > >>>>>>>>> agree with you that only one should be active at a time. We
>>>> plan
>>>> > to
>>>> > >>>>>>>>> implement in the GUI a mechanism (maybe radio buttons) to
>>>> turn
>>>> > his
>>>> > >>>>>>>> feature
>>>> > >>>>>>>>> on and mine off and vice versa.
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> I was thinking if I wait until he checks in his code, then I
>>>> > update
>>>> > >>>> and
>>>> > >>>>>>>>> merge that I will be the person resolving merge conflicts
>>>> in the
>>>> > >>>>>>>> JavaScript
>>>> > >>>>>>>>> code (there shouldn't be a problem in the Java code) as
>>>> opposed
>>>> > to
>>>> > >>>>>>>> putting
>>>> > >>>>>>>>> that work on someone else.
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> Let me know what you think.
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> Oh, was going to ask you what "FS" stands for here.
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> Thanks!
>>>> > >>>>>>>>>
>>>> > >>>>>>>>>
>>>> > >>>>>>>>> On Wed, Jun 12, 2013 at 10:56 AM, John Burwell <
>>>> > jburw...@basho.com
>>>> > >>>
>>>> > >>>>>>>> wrote:
>>>> > >>>>>>>>>
>>>> > >>>>>>>>>> Mike,
>>>> > >>>>>>>>>>
>>>> > >>>>>>>>>> How have Wei and you resolved the issue of conflicting QoS
>>>> > >>>> mechanisms
>>>> > >>>>>>>>>> between the Hypervisor and Storage layers?  Have the
>>>> affected
>>>> > FSs
>>>> > >>>> been
>>>> > >>>>>>>>>> updated with that decision?
>>>> > >>>>>>>>>>
>>>> > >>>>>>>>>> In terms of merge timing, can you describe the dependencies
>>>> > >> between
>>>> > >>>>>> the
>>>> > >>>>>>>>>> patches?
>>>> > >>>>>>>>>>
>>>> > >>>>>>>>>> Thanks,
>>>> > >>>>>>>>>> -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>
>>>> > > *™*
>>>> >
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> *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>
*™*

Reply via email to