Exactly, John ... All of what you said, plus - for example - it really puts
the onus on the plug-in developer to update the plug in whenever we add
support for a new hypervisor (say, HyperV).

I'm happy to help out with this effort to extract hypervisor knowledge away
from these plug-ins, so - if we go this route - please feel free to bring
me in.

Let's see what Edison thinks.


On Mon, Mar 25, 2013 at 11:02 PM, John Burwell <jburw...@basho.com> wrote:

> Mike,
>
> +1 .. If storage plugins have to understand each hypervisor, the
> support matrix becomes unmaintainably complex.  We have a variety of
> abstractions commonly understood by hypervisors (e.g. LUNs, I/O
> streams, sockets, files, etc) that a storage can either be yielded or
> manipulated by a storage plugin that it is possible to decouple
> hypervisors and storage entities.
>
> Thanks,
> -John
>
>
>
>
> On Mar 25, 2013, at 5:37 PM, Mike Tutkowski
> <mike.tutkow...@solidfire.com> wrote:
>
> > Hey Edison,
> >
> > So...if you think my understanding is correct (please check out the
> e-mail
> > below), then I have a question.
> >
> > Do we really want to have the storage plug-ins taking on the
> responsibility
> > of talking to the hypervisors to hook up the storage that they just
> created=
> > ?
> >
> > I'm a bit familiar with how OpenStack does this and it seems that it only
> > has its storage plug-ins create a volume (LUN, whatever) and then the
> > framework handles the process of dealing with the hypervisor in question
> to
> > hook up the storage.
> >
> > It seems like otherwise we'd need to create a utility for all storage
> > plug-ins to share otherwise they'd be duplicating efforts in talking to
> > hypervisors.
> >
> > What do you think?
> >
> >
> > On Thu, Mar 21, 2013 at 7:52 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> >> Hi Edison,
> >>
> >> I believe I understand the requirements for the plug-in better now.
> >>
> >> It sounds like the flow will be as such:
> >>
> >> * The user executes a Compute or Disk Offering that is tied via a
> storage
> >> tag to a Primary Storage that is associated with a plug-in.
> >>
> >> * The storage framework will ask the plug-in to create a volume.  The
> >> plug-in will create a volume and hook the volume up to the appropriate
> >> hypervisor.  For VMware, this means the plug-in will create a Datastore.
> >> For XenServer, this means the plug-in will create a Storage Repository.
> >> (So on and so forth for other hypervisors.)
> >>
> >> * The VM or data disk is then deployed to the hypervisor.
> >>
> >> Does that sound correct, Edison?
> >>
> >> Thanks!
> >>
> >>
> >> On Thu, Mar 21, 2013 at 5:44 PM, Edison Su <edison...@citrix.com>
> wrote:
> >>
> >>> ** **
> >>>
> >>> ** **
> >>>
> >>> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> >>> *Sent:* Thursday, March 21, 2013 4:18 PM
> >>> *To:* Edison Su
> >>> *Subject:* Re: Storage Subsystem 2.0 plugin docs****
> >>>
> >>> ** **
> >>>
> >>> Hi Edison,****
> >>>
> >>> ** **
> >>>
> >>> I wanted to dive into these comments a bit more:****
> >>>
> >>> ** **
> >>>
> >>> [Edison] plugin=92s driver->createasync will be called when mgt server
> w=
> > ant
> >>> to create a volume on the storage. In the driver=92s implementation,
> it =
> > can
> >>> directly call storage box=92s api, or send a command to hypervisor
> host,=
> > then
> >>> call storage box=92s api to create an iscsi.****
> >>>
> >>> Then create a datastore(for vmware), SR(for xenserver), or storage
> >>> pool(for KVM) on hypervisor host, based on the iscsi iqn.****
> >>>
> >>> If the volume is created from a template(for root disk), need to find a
> >>> way to import that template(which is nfs based currently, it will be
> jus=
> > t a
> >>> plain http url the future) into the root disk.****
> >>>
> >>> The part about creating a datastore or a storage repository...is that
> >>> something the plug-in will be responsible for doing or will the storage
> >>> framework cover that piece?  I'm thinking the storage framework will
> sin=
> > ce
> >>> all sorts of plug-ins would seem to need that ability (to have their
> >>> storage hooked up to a datastore or a storage repository).****
> >>>
> >>> ** **
> >>>
> >>> [Edison] It=92s a specific requirement for per volume per LUN case, and
> >>> specific for certain hypervisors(seems KVM doesn=92t need to create a
> st=
> > orage
> >>> pool when using iscsi LUN), so the storage framework will not deal
> with =
> > it
> >>> right now.****
> >>>
> >>> ** **
> >>>
> >>> ** **
> >>>
> >>> Thanks for your time, Edison! :)****
> >>>
> >>> ** **
> >>>
> >>> On Thu, Mar 21, 2013 at 4:45 PM, Edison Su <edison...@citrix.com>
> wrote:=
> > *
> >>> ***
> >>>
> >>> Feedback/comments are appreciated, need to know your input from storage
> >>> vendor point of view.****
> >>>
> >>> ****
> >>>
> >>> *From:* Vladimir Popovski [mailto:vladi...@zadarastorage.com]
> >>> *Sent:* Thursday, March 21, 2013 11:52 AM
> >>> *To:* Edison Su; cloudstack****
> >>>
> >>>
> >>> *Cc:* mike.tutkow...@solidfire.com
> >>> *Subject:* RE: Storage Subsystem 2.0 plugin docs****
> >>>
> >>> ****
> >>>
> >>> Hi Edison,****
> >>>
> >>> ****
> >>>
> >>> Thank you for the reply. We will check it out.****
> >>>
> >>> ****
> >>>
> >>> Regards,****
> >>>
> >>> -Vladimir****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>> *From:* Edison Su [mailto:edison...@citrix.com]
> >>> *Sent:* Thursday, March 21, 2013 11:36 AM
> >>> *To:* 'Vladimir Popovski'; cloudstack
> >>> *Cc:* mike.tutkow...@solidfire.com
> >>> *Subject:* RE: Storage Subsystem 2.0 plugin docs****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>> *From:* Vladimir Popovski [mailto:vladi...@zadarastorage.com
> <vladimir@za=
> > darastorage.com>]
> >>>
> >>> *Sent:* Wednesday, March 20, 2013 9:05 AM
> >>> *To:* cloudstack
> >>> *Cc:* mike.tutkow...@solidfire.com; Edison Su
> >>> *Subject:* Storage Subsystem 2.0 plugin docs****
> >>>
> >>> ****
> >>>
> >>> Hi All,****
> >>>
> >>> ****
> >>>
> >>> Thank you for a great work on CloudStack! We are interested in
> >>> integrating CS with our storage system and started to look at your
> >>> documentation and storage-related code. I see that Mike from SolidFire
> >>> started working on something similar some time ago and Edison even
> creat=
> > ed
> >>> an empty plugin for it (in Nov=9212?).****
> >>>
> >>> ****
> >>>
> >>> We have couple of questions related to that:****
> >>>
> >>> -          Is there any documentation about plugins (except of
> >>> https://cwiki.apache.org/CLOUDSTACK/storage-subsystem-20.html)****
> >>>
> >>> [Edison] There are not much docs about the plugins other than the above
> >>> link.  See below.****
> >>>
> >>> -          Are there any exemplary plugins for primary & secondary
> >>> datastores? Was the SolidFire plugin ever finished?****
> >>>
> >>> [Edison] yesterday, I checked in some code to separate existing
> >>> cloudstack storage code into a standalone maven project, called:
> >>> cloud-plugin-storage-volume-default, which can give you an example how
> a
> >>> storage plugin will look like.****
> >>>
> >>> -          How to activate a new plugin and use it (at least through
> >>> CLIs/APIs)****
> >>>
> >>> [Edison] First, put a bean configuration in client/tomcatconf/
> >>> componentContext.xml.in for your plugin provider class, like:****
> >>>
> >>> <bean id=3D"ClassicalPrimaryDataStoreProvider"
> >>>
> class=3D"org.apache.cloudstack.storage.datastore.provider.CloudStackPrim=
> > aryDataStoreProviderImpl">
> >>> ****
> >>>
> >>>  </bean>****
> >>>
> >>> Second, when adding a data store into cloudstack, with an extra
> paramete=
> > r
> >>> in createstoragepoolcmd: provider=3Dyour-provider-name,
> >>> liststorageproviderscmd can list all the registered providers in mgt
> ser=
> > ver.
> >>> ****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>> -          How to integrate it with the UI****
> >>>
> >>> There is no UI part of example code for storage yet, the idea is to use
> >>> pluggable UI(
> >>>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/UI+Plugin+Tutoria=
> > l),
> >>> for each storage provider may need a separate UI to add a storage. For
> >>> example, in adding primary storage ui, there will be a drop down list,
> s=
> > how
> >>> all the registered providers, if user selects one of the drop down
> list,
> >>> then UI will pop up a diagram, based on providers=92 pluggable ui,
> then =
> > user
> >>> can type whatever information needed for a storage(e.g. nfs server, nfs
> >>> path, if its nfs). At the end, UI will call createstoragepoolcmd to
> >>> register a storage into cloudstack.****
> >>>
> >>> ****
> >>>
> >>> Thanks,****
> >>>
> >>> -Vladimir****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>> -------****
> >>>
> >>> Vladimir Popovski****
> >>>
> >>> VP, Cloud Operations****
> >>>
> >>> Zadara Storage
> >>> (949) 677-2095****
> >>>
> >>> vladi...@zadarastorage.com****
> >>>
> >>> www.zadarastorage.com****
> >>>
> >>> ****
> >>>
> >>> ****
> >>>
> >>>
> >>>
> >>> ****
> >>>
> >>> ** **
> >>>
> >>> --
> >>> *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=3Dplay>
> >>> *=99*****
> >>
> >>
> >>
> >> --
> >> *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=3Dplay>
> >> *=99*
> >
> >
> >
> > --=20
> > *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=3Dplay>
> > *=99*
> >
> > --f46d044785339cc8d004d8c69b56--
>



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