Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BB777F48B for ; Tue, 26 Mar 2013 21:00:27 +0000 (UTC) Received: (qmail 30854 invoked by uid 500); 26 Mar 2013 21:00:27 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 30824 invoked by uid 500); 26 Mar 2013 21:00:27 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 30816 invoked by uid 500); 26 Mar 2013 21:00:27 -0000 Delivered-To: apmail-incubator-cloudstack-dev@incubator.apache.org Received: (qmail 30813 invoked by uid 99); 26 Mar 2013 21:00:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Mar 2013 21:00:27 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_SOFTFAIL,URIBL_DBL_REDIR X-Spam-Check-By: apache.org Received-SPF: softfail (athena.apache.org: transitioning domain of mike.tutkowski@solidfire.com does not designate 209.85.219.51 as permitted sender) Received: from [209.85.219.51] (HELO mail-oa0-f51.google.com) (209.85.219.51) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Mar 2013 21:00:23 +0000 Received: by mail-oa0-f51.google.com with SMTP id g12so4765267oah.10 for ; Tue, 26 Mar 2013 14:00:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=LkXtG4Juo6RAClebvUYmKjNaYx8PeytKRxH97tyNYrw=; b=bmEHMch0qniVFGxX3arT5qLgBmrecmITAOyYFHu1r9PkgC28upijFNAsoxwXLzHSPy 5g5jolOjR6+1pl8qtvaY6Y2wwkGve5uSOOcuou+S9RhXh4Qrz85MI9mQ8wY/E7C6zDQK mOhtTylnSFfAfv/DiuMHEmjWpylCPF+QN/ljllN0tshGCeU5L3rofCMPw1+Lft8748LF uTJWiXwbejDSJVleL+/GrVZ54vXpUzjI6f6rcwpkXhHYOascOqcAJrMHFKnshM3vB2Jv iHPhKVTv8VA9Q05JSJ3BVYMbIM65UOGwQ/k73L154NAAw0ZzQ+gbdAMkM7lNykDUTBz2 Tc+g== MIME-Version: 1.0 X-Received: by 10.182.248.227 with SMTP id yp3mr1408403obc.102.1364331602279; Tue, 26 Mar 2013 14:00:02 -0700 (PDT) Received: by 10.182.144.70 with HTTP; Tue, 26 Mar 2013 14:00:02 -0700 (PDT) In-Reply-To: References: <170834995fc561c5e16996ef16794492@mail.gmail.com> <786a136c6194fd48984fcba5c0fb1f8b@mail.gmail.com> Date: Tue, 26 Mar 2013 15:00:02 -0600 Message-ID: Subject: Re: Storage Subsystem 2.0 plugin docs From: Mike Tutkowski To: Edison Su Cc: "cloudstack-dev@incubator.apache.org" , Vladimir Popovski Content-Type: multipart/alternative; boundary=001a11c2adcc82953b04d8da34f7 X-Gm-Message-State: ALoCoQlKiwPSVwiXg/hhXNPOyqZADT6CsqLfbYUPhJB133BiugdH8g9Jw8sx8zX+hmsZy4VtbdW6 X-Virus-Checked: Checked by ClamAV on apache.org --001a11c2adcc82953b04d8da34f7 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Oh, just to be clear, what I'm working on specifically is code to enable each of the hypervisors we support to make use of an iSCSI target. For example, creating an iSCSI-based SR for XenServer, an iSCSI-based DS for VMware, etc. Once this code is ready, I can ask Edison to review it. We can then decide if we want to place it in a (possibly new) utility class used by the plug-ins or if it should become part of the framework. Once I complete writing code to create a new DS for VMware, we should look into where we want to place this VMware and XenServer logic so that plug-in developers (including myself :) ) can start writing our plug-ins, too. On Tue, Mar 26, 2013 at 2:51 PM, Mike Tutkowski < mike.tutkowski@solidfire.com> wrote: > Hi Edison, > > Sounds good. > > I already have code to create a XenServer Storage Repository (and > optionally use CHAP credentials) and I'm working right now on creating a > vSphere Datastore. > > When I have this working and in a nicer state, I can check in with you to > review it and provide comments. > > Once those two hypervisors are handled, I'll move on to KVM and OVM. > > Thanks! > > > On Tue, Mar 26, 2013 at 2:33 PM, Edison Su wrote: > >> Yes, code is welcome!!! Currently Only the interface at the management >> server side is defined. At the hypervisor resource side, we may need som= e >> kind of utility library or another plugin framework, as John proposed fe= w >> months ago.**** >> >> ** ** >> >> *From:* Mike Tutkowski [mailto:mike.tutkowski@solidfire.com] >> *Sent:* Monday, March 25, 2013 2:37 PM >> *To:* Edison Su; cloudstack-dev@incubator.apache.org; Vladimir Popovski >> >> *Subject:* Re: Storage Subsystem 2.0 plugin docs**** >> >> ** ** >> >> 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 onl= y >> 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.tutkowski@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 storag= e >> 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 wrote:= * >> *** >> >> **** >> >> **** >> >> *From:* Mike Tutkowski [mailto:mike.tutkowski@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 wrote:= * >> *** >> >> Feedback/comments are appreciated, need to know your input from storage >> vendor point of view.**** >> >> **** >> >> *From:* Vladimir Popovski [mailto:vladimir@zadarastorage.com] >> *Sent:* Thursday, March 21, 2013 11:52 AM >> *To:* Edison Su; cloudstack**** >> >> >> *Cc:* mike.tutkowski@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.su@citrix.com] >> *Sent:* Thursday, March 21, 2013 11:36 AM >> *To:* 'Vladimir Popovski'; cloudstack >> *Cc:* mike.tutkowski@solidfire.com >> *Subject:* RE: Storage Subsystem 2.0 plugin docs**** >> >> **** >> >> **** >> >> **** >> >> *From:* Vladimir Popovski [mailto:vladimir@zadarastorage.com] >> >> *Sent:* Wednesday, March 20, 2013 9:05 AM >> *To:* cloudstack >> *Cc:* mike.tutkowski@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:**** >> >> > class=3D"org.apache.cloudstack.storage.datastore.provider.CloudStackPrim= aryDataStoreProviderImpl"> >> **** >> >> **** >> >> 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**** >> >> Vladimir@zadarastorage.com**** >> >> www.zadarastorage.com**** >> >> **** >> >> **** >> >> >> >> **** >> >> **** >> >> -- >> *Mike Tutkowski***** >> >> *Senior CloudStack Developer, SolidFire Inc.***** >> >> e: mike.tutkowski@solidfire.com**** >> >> o: 303.746.7302**** >> >> Advancing the way the world uses the cloud >> *=99***** >> >> >> >> **** >> >> ** ** >> >> -- >> *Mike Tutkowski***** >> >> *Senior CloudStack Developer, SolidFire Inc.***** >> >> e: mike.tutkowski@solidfire.com**** >> >> o: 303.746.7302**** >> >> Advancing the way the world uses the cloud >> *=99***** >> >> >> >> **** >> >> ** ** >> >> -- >> *Mike Tutkowski***** >> >> *Senior CloudStack Developer, SolidFire Inc.***** >> >> e: mike.tutkowski@solidfire.com**** >> >> o: 303.746.7302**** >> >> Advancing the way the world uses the cloud >> *=99***** >> > > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkowski@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the cloud > *=99* > --=20 *Mike Tutkowski* *Senior CloudStack Developer, SolidFire Inc.* e: mike.tutkowski@solidfire.com o: 303.746.7302 Advancing the way the world uses the cloud *=99* --001a11c2adcc82953b04d8da34f7--