cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Tutkowski <mike.tutkow...@solidfire.com>
Subject Re: Review Request 19021: Cloudbyte Elastistor storage plug-in
Date Thu, 13 Mar 2014 23:05:29 GMT
Also, Punith has already refactored his code as I asked to put it in
CloudByte-specific packages, so I think we're good to go.


On Thu, Mar 13, 2014 at 5:04 PM, Mike Tutkowski <
mike.tutkowski@solidfire.com> wrote:

> OK, if that's all we're checking, then I'm good with checking it in.
>
> Punith - Can you just close out those last issues in the review?
>
> Thanks!
>
>
> On Thu, Mar 13, 2014 at 5:02 PM, Edison Su <Edison.su@citrix.com> wrote:
>
>>  Hi Mike,
>>
>>    Seems some of your comments are related to the scope of their
>> implementation, such as do you support this, do you support that, can you
>> do this, can you do that etc. From my point of view, it's not important, as
>> the capability of driver is totally controlled by the vendors, vendors can
>> implement whatever functionalities they want. My criteria to check in the
>> code is very simple: the plugin should not modify common code.
>>
>>
>>
>> *From:* Mike Tutkowski [mailto:mike.tutkowski@solidfire.com]
>> *Sent:* Thursday, March 13, 2014 3:25 PM
>> *To:* Edison Su; Mike Tutkowski
>> *Cc:* punith s; cloudstack
>> *Subject:* Re: Review Request 19021: Cloudbyte Elastistor storage plug-in
>>
>>
>>
>> Hi Punith,
>>
>>
>>
>> Once you close out the open issues, we can work to get your code in.
>>
>>
>>
>> Feature freeze is Friday, March 14th, so we should do it sometime
>> tomorrow.
>>
>>
>>
>> Thanks!
>>
>>
>>
>> On Thu, Mar 13, 2014 at 4:24 PM, Mike Tutkowski <
>> mike.tutkowski@solidfire.com> wrote:
>>
>> This is an automatically generated e-mail. To reply, visit:
>> https://reviews.apache.org/r/19021/
>>
>>
>>
>> *plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
>> <https://reviews.apache.org/r/19021/diff/5/?file=518383#file518383line99> *(Diff
>> revision 5)
>>
>> *99*
>>
>>         if(details.get("esaccountid") != null)
>>
>>   Does this plug-in support multiple CloudByte SANs at the same time?
>>
>>
>>
>> It looks like whatever values you set most recently for ElastistorUtil will be utilized
if you don't provide them in the details. Is this OK if you don't provide all of the details
for your second or more SAN?
>>
>>
>>
>> - Mike Tutkowski
>>
>>
>>
>> On March 13th, 2014, 9:16 a.m. UTC, punith s wrote:
>>
>> Review request for cloudstack, edison su and Mike Tutkowski.
>>
>> By punith s.
>>
>> *Updated March 13, 2014, 9:16 a.m.*
>>
>> *Repository: *cloudstack-git
>>  Description
>>
>> This patch implements a basic storage plug-in for cloudbyte elastistor v1.3.0, The
plug-in is a new feature for cloudstack 4.4 and above.
>>
>>
>>
>> this does not implement managed storage yet, it is been integrated only with CreateStoragePool
and DeleteStoragePool api's.
>>
>>
>>
>> the desired behavior of the plugin are:
>>
>>
>>
>> * Allow an Admin to create a primary storage at cluster level, hence creates a volume
in elastistor and gets attached to the host with the given capacityiops and capacitybytes
through CreateStoragePool api with provider being elastistor.
>>
>>
>>
>> *Allow an admin to delete a primary storage at cluster level, hence it deletes the
volume from host in cloudstack and deletes the respective volume in elastistor.
>>
>>
>>
>> * volume and datadisks fuctions performs the default storage fuctions, ie. the driver
extends the CloudStackPrimaryDataStoreDriverImpl.
>>
>>
>>
>> * support for both nfs and icsci primary storage.
>>
>>   Testing
>>
>> Build test using,
>>
>>
>>
>> mvn -P developer,systemvm clean install, which is successful.
>>
>>
>>
>> Manual testing has been performed using cloudmonkey.
>>
>>
>>
>> * Creating a primary storage based on cloudbyte storage plugin.
>>
>>
>>
>> cloudmonkey# create storagepool scope=cluster zoneid=dac7223c-6d09-4dcb-82fb-bdecf7c657f5
podid=20a613c4-eccf-4fdc-b8ca-c51df483326f clusterid=9a89bc12-bf00-496b-b1d8-8e92cdf1795f
name=cloudbytevolume provider=elastistor url=nfs://10.10.171.137/cloudbytetest capacityiops=500
capacitybytes=214748364800 tags=cloudbytetest
>>
>> storagepool:
>>
>> name = cloudbytevolume
>>
>> id = 57f70aa4-659b-3b53-b8ab-2f712474f107
>>
>> capacityiops = 500
>>
>> clusterid = 9a89bc12-bf00-496b-b1d8-8e92cdf1795f
>>
>> clustername = test000
>>
>> created = 2014-03-11T12:42:38+0530
>>
>> disksizeallocated = 0
>>
>> disksizetotal = 214748364800
>>
>> hypervisor = Any
>>
>> ipaddress = 10.10.171.137
>>
>> path = /cloudbytetest
>>
>> podid = 20a613c4-eccf-4fdc-b8ca-c51df483326f
>>
>> podname = test00
>>
>> scope = CLUSTER
>>
>> state = Up
>>
>> tags = cloudbytetest
>>
>> type = NetworkFilesystem
>>
>> zoneid = dac7223c-6d09-4dcb-82fb-bdecf7c657f5
>>
>> zonename = DevCloud0
>>
>>
>>
>> * Deleting the primary storage based on cloudbyte storage plugin.
>>
>>
>>
>> cloudmonkey# delete storagepool id=57f70aa4-659b-3b53-b8ab-2f712474f107
>>
>> success = true
>>
>>
>>
>> * creation of primary storage with negative capacityiops throws an exception.
>>
>>
>>
>> * creation of primary storage with already available name and ip throws an exception.
>>
>>
>>
>> * if the elastistor params which are required for plugin configuration are not injected
through spring-storage-volume-cloudbyte-context.xml, it can be set from details map.
>>
>>
>>
>> cloudmonkey# create storagepool scope=cluster zoneid=afacc706-3f4d-4f50-82e6-bf0f82959ba8
podid=821ad540-6c98-43f3-935d-72a47a319b20 clusterid=e0ced156-532e-4941-99c0-f34ff1727544
name=nfsvol provider=elastistor url=nfs://10.10.171.143/volnfs details[0].esaccountid=9e9f67d5-e06f-4d63-a0b8-e7255cba84b8
details[1].espoolid=d2d15d11-0f06-3426-a097-3e6e8b36f85c details[2].esdefaultgateway=10.10.1.1
details[3].essubnet=8  details[4].estntinterface=em0 details[5].esmanagementip=10.10.171.180
>>
>> details[6].esapikey=PubSInZaCji8hrRfOsCxgbug2I2k_sRJ0i2a9qmAzZIiCTcFPmZelzx6uNK9TYgqkdohCmq1L2J9eYmUe9YO6A
capacityiops=100 capacitybytes=214748364800
>>
>>
>>
>> storagepool:
>>
>> name = nfsvol
>>
>> id = 7ea08bf6-777a-3553-8f1e-c3a9f9b626cb
>>
>> capacityiops = 100
>>
>> clusterid = e0ced156-532e-4941-99c0-f34ff1727544
>>
>> clustername = test000
>>
>> created = 2014-03-12T17:45:10+0530
>>
>> disksizeallocated = 0
>>
>> disksizetotal = 214748364800
>>
>> hypervisor = Any
>>
>> ipaddress = 10.10.171.143
>>
>> path = /volnfs
>>
>> podid = 821ad540-6c98-43f3-935d-72a47a319b20
>>
>> podname = test00
>>
>> scope = CLUSTER
>>
>> state = Up
>>
>> type = NetworkFilesystem
>>
>> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
>>
>> zonename = DevCloud0
>>
>>
>>
>> * creation of volume on created storage pool.
>>
>> cloudmonkey# create volume zoneid=afacc706-3f4d-4f50-82e6-bf0f82959ba8 diskofferingid=f20e3b76-82e3-43d1-91e3-3ff337d7181d
name=testvolume
>>
>>
>>
>> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
>>
>> cmd = org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd
>>
>> created = 2014-03-13T11:51:27+0530
>>
>> jobid = 596294b8-2b49-4b49-8526-9117cf56c95d
>>
>> jobprocstatus = 0
>>
>> jobresult:
>>
>> volume:
>>
>> name = testvolume
>>
>> id = e079281e-d822-4b90-9e85-9648350a0369
>>
>> account = admin
>>
>> created = 2014-03-13T11:51:27+0530
>>
>> destroyed = False
>>
>> diskofferingdisplaytext = Small Disk, 5 GB
>>
>> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
>>
>> diskofferingname = Small
>>
>> displayvolume = True
>>
>> domain = ROOT
>>
>> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
>>
>> isextractable = True
>>
>> jobid = 596294b8-2b49-4b49-8526-9117cf56c95d
>>
>> jobstatus = 0
>>
>> size = 5368709120
>>
>> state = Allocated
>>
>> storagetype = shared
>>
>> tags:
>>
>> type = DATADISK
>>
>> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
>>
>> zonename = DevCloud0
>>
>> jobresultcode = 0
>>
>> jobresulttype = object
>>
>> jobstatus = 1
>>
>> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>>
>>
>>
>> * attaching a specific volume.
>>
>> cloudmonkey# attach volume id=e079281e-d822-4b90-9e85-9648350a0369 virtualmachineid=3e6eeab1-e624-461e-94e0-230215a8dbc3
>>
>>
>>
>> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
>>
>> cmd = org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd
>>
>> created = 2014-03-13T11:55:09+0530
>>
>> jobid = 364d7636-72ad-410c-891c-c38ac34b6d42
>>
>> jobprocstatus = 0
>>
>> jobresult:
>>
>> volume:
>>
>> id = e079281e-d822-4b90-9e85-9648350a0369
>>
>> name = testvolume
>>
>> account = admin
>>
>> attached = 2014-03-13T11:55:11+0530
>>
>> created = 2014-03-13T11:51:27+0530
>>
>> destroyed = False
>>
>> deviceid = 2
>>
>> diskofferingdisplaytext = Small Disk, 5 GB
>>
>> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
>>
>> diskofferingname = Small
>>
>> displayvolume = True
>>
>> domain = ROOT
>>
>> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
>>
>> hypervisor = XenServer
>>
>> isextractable = True
>>
>> jobid = 364d7636-72ad-410c-891c-c38ac34b6d42
>>
>> jobstatus = 0
>>
>> size = 5368709120
>>
>> state = Ready
>>
>> storage = okay
>>
>> storagetype = shared
>>
>> tags:
>>
>> type = DATADISK
>>
>> virtualmachineid = 3e6eeab1-e624-461e-94e0-230215a8dbc3
>>
>> vmdisplayname = tiny
>>
>> vmname = tiny
>>
>> vmstate = Running
>>
>> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
>>
>> zonename = DevCloud0
>>
>> jobresultcode = 0
>>
>> jobresulttype = object
>>
>> jobstatus = 1
>>
>> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>>
>>
>>
>> *detaching a specific volume.
>>
>> cloudmonkey# detach volume id=e079281e-d822-4b90-9e85-9648350a0369
>>
>>
>>
>> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
>>
>> cmd = org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd
>>
>> created = 2014-03-13T11:57:40+0530
>>
>> jobid = 38fb6463-7d95-4d4c-8a50-1ec8a1c9ba98
>>
>> jobprocstatus = 0
>>
>> jobresult:
>>
>> volume:
>>
>> id = e079281e-d822-4b90-9e85-9648350a0369
>>
>> name = testvolume
>>
>> account = admin
>>
>> created = 2014-03-13T11:51:27+0530
>>
>> destroyed = False
>>
>> diskofferingdisplaytext = Small Disk, 5 GB
>>
>> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
>>
>> diskofferingname = Small
>>
>> displayvolume = True
>>
>> domain = ROOT
>>
>> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
>>
>> hypervisor = XenServer
>>
>> isextractable = True
>>
>> jobid = 38fb6463-7d95-4d4c-8a50-1ec8a1c9ba98
>>
>> jobstatus = 0
>>
>> size = 5368709120
>>
>> state = Ready
>>
>> storage = okay
>>
>> storagetype = shared
>>
>> tags:
>>
>> type = DATADISK
>>
>> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
>>
>> zonename = DevCloud0
>>
>> jobresultcode = 0
>>
>> jobresulttype = object
>>
>> jobstatus = 1
>>
>> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>>
>>
>>
>> *deleting a volume
>>
>> cloudmonkey# delete volume id=e079281e-d822-4b90-9e85-9648350a0369
>>
>> success = true
>>
>>   Diffs
>>
>>    - client/pom.xml (af724b1)
>>    - plugins/pom.xml (097f224)
>>    - plugins/storage/volume/cloudbyte/pom.xml (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/module.properties
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/provider/ElastistorHostListener.java
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/provider/ElastistorPrimaryDataStoreProvider.java
>>    (PRE-CREATION)
>>    - plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java
>>    (PRE-CREATION)
>>
>> View Diff <https://reviews.apache.org/r/19021/diff/>
>>
>>
>>
>>
>>
>> --
>> *Mike Tutkowski*
>>
>> *Senior CloudStack Developer, SolidFire Inc.*
>>
>> e: mike.tutkowski@solidfire.com
>>
>> o: 303.746.7302
>>
>> Advancing the way the world uses the cloud<http://solidfire.com/solution/overview/?video=play>
>> *(tm)*
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkowski@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the cloud<http://solidfire.com/solution/overview/?video=play>
> *(tm)*
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkowski@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play>
*(tm)*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message