My comments are below in *red*.

Thanks!


On Tue, Jun 11, 2013 at 11:01 AM, John Burwell <jburw...@basho.com> wrote:

> Mike,
>
> Please see my responses in-line below.
>
> Thanks,
> -John
>
> On Jun 10, 2013, at 11: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))
>

*Agreed. The default storage plug-in (which has references to hypervisor
code) will be left as is for 4.2. Perhaps this can be addressed in 4.3.*

>
> The Storage->Hypervisor dependencies have been in CloudStack for some
> time.  My goal is eventually eliminate these, and as part of that
> evolution, I don't want to see any more such dependencies added.
>  Additionally, as we invert the dependency in new code, it will lay the
> foundation for remove the existing Storage->Hypervisor dependencies.
>
> >
> > 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.
>
> As I understand the data model, storage_pool_details implementation
> specific properties.  I see the managed flag as a common value for all
> storage pools calculated as follows:
>
>         - If the associated driver does not support device management, the
> value is always set to false.
>         - If the associated driver supports device management, the value
> defaults to true, but can be overridden when the device definition is
> created
>
> As such, it seems to be that it should be a new column on the storage_pool
> table.
>

*Let's see here...when you add a new Primary Storage into CloudStack, one
of the new parameters is called "Provider". If you do not set this
parameter, it defaults to Edison's default storage plug-in. If you specify,
say, "SolidFire", then it will be associated with my plug-in. Either way, a
new row is added to the storage_pool table. This table could have a new
column, called "managed", that contains the data we later send to the
hypervisor to let it know if it needs to create, say on Xen, an SR.*
*
*
*Is this what you're thinking, John?*

>
> >
> > 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.
>
> Sounds reasonable to me.  Will there is be a new method added to the
> Hypervisor plugin to create this data structure (e.g.
> createVMStorage(VolumeTO))?


*Yeah, I already have the code, I just need to factor it into a new method
that can be called from the "attach/detach" method.*

>
> >
> > 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.
>
> Shucks.  It sounds like the StoragePool#details won't sufficient.  I think
> we need to address extended data in a number of places (e.g. hypervisor,
> storage, and network drivers, compute and disk offerings, etc).  I propose
> that we address it broadly in 4.3 in a manner that provides a mechanism to
> store, describe, validate, and render them.
>

*Waiting until 4.3 is fine. I can set the Burst above the Max by a certain
percentage automatically.*

>
> >
> > 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>
*™*

Reply via email to