Hi Punith,

Yes, that is exactly the approach I was planning on taking: enhance the
resizeVolume API to allow for IOPS control and to extend what it can do
with volume sizes.

Talk to you later!
Mike


On Wed, Jun 25, 2014 at 7:44 AM, Punith S <punit...@cloudbyte.com> wrote:

> hi mike,
>
> now this updateStoragePool API would be really helpful to update the
> backend storagepool and other third party features.
>
> question on individual CloudStack volumes
>  is it feasible to associate resize volume and changing IOPS into one API ?
>
> if so we might need to add more intelligence in the design to make sure
> disk is not detached if only IOPS is being modified in the select new disk
> offering
> else disk shall be detached if both size and IOPS vary in the selected new
> disk offering.
>
> thanks.
>
>
> On Wed, Jun 25, 2014 at 2:25 AM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
>> OK, I've completed work on enabling a storage plug-in to be notified when
>> the size and/or IOPS of the primary storage that it represents is changed:
>>
>>
>> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=commit;h=c344693e48d80313270d1a972b0a3badf315567d
>>
>> This is related to the updateStoragePool API.
>>
>> I plan to switch my focus now to the resizeVolume API so that individual
>> CloudStack volumes (as opposed to the entire storage pool they are from)
>> can have not only their size, but their IOPS updated.
>>
>>
>> On Fri, Jun 20, 2014 at 12:31 AM, Mike Tutkowski <
>> mike.tutkow...@solidfire.com> wrote:
>>
>>> I'll define constants for the keys in PrimaryDataStoreLifeCycle.
>>>
>>>
>>> On Friday, June 20, 2014, Mike Tutkowski <mike.tutkow...@solidfire.com>
>>> wrote:
>>>
>>>> In fact, we do use a hash-map approach for some KVM storage code, too.
>>>>
>>>> Let's do that here, as well.
>>>>
>>>> I'll make that change.
>>>>
>>>> Thanks
>>>>
>>>> On Friday, June 20, 2014, Mike Tutkowski <mike.tutkow...@solidfire.com>
>>>> wrote:
>>>>
>>>>> We do - in some places in the code - use a hash map...like what you
>>>>> describe.
>>>>>
>>>>> I guess the trade off there would be that the values that contain our
>>>>> numbers would end up being high-level objects instead of numbers (because
>>>>> we don't really know what future values might be).
>>>>>
>>>>> I'm OK with either approach.
>>>>>
>>>>> On Friday, June 20, 2014, Mike Tutkowski <mike.tutkow...@solidfire.com>
>>>>> wrote:
>>>>>
>>>>>> Unfortunately, at the time being, the updateStoragePool API (from the
>>>>>> public-facing API) only takes in bytes, IOPS, and storage tags...not
>>>>>> details (createStoragePool takes in a lot more parameters...including
>>>>>> details).
>>>>>>
>>>>>> So - for now at least - we're a little limited in what the new
>>>>>> interface method can tell storage providers about (unless we wanted to
>>>>>> spend time adding to the parameter list of updateStoragePool).
>>>>>>
>>>>>> On Friday, June 20, 2014, Amit Das <amit....@cloudbyte.com> wrote:
>>>>>>
>>>>>>> Hi Mike,
>>>>>>>
>>>>>>> Is there any use case to have a more generic signature for
>>>>>>> updateStoragePool API ?
>>>>>>>
>>>>>>> e.g
>>>>>>> void updateStoragePool(StoragePool storagePool, Map<E,V>
>>>>>>> updateDetails);
>>>>>>> // not too sure of what should be E & V as of now. To start with E &
>>>>>>> V can be String types or Enums for better static checks.
>>>>>>>
>>>>>>> instead of below
>>>>>>> void updateCapacity(StoragePool storagePool, Long capacityBytes, L
>>>>>>> ong capacityIops);
>>>>>>>
>>>>>>> ​​
>>>>>>>
>>>>>>> Regards,
>>>>>>> Amit
>>>>>>> *CloudByte Inc.* <http://www.cloudbyte.com/>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jun 20, 2014 at 10:37 AM, Mike Tutkowski <
>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>
>>>>>>>> I just wanted to update those who are interested in this thread
>>>>>>>> about work I've done on this over the past couple days.
>>>>>>>>
>>>>>>>> This gist is that I've added a new method to the
>>>>>>>> PrimaryDataStoreLifeCycle interface that has the following signature 
>>>>>>>> (this
>>>>>>>> code is not yet checked in):
>>>>>>>>
>>>>>>>> void updateCapacity(StoragePool storagePool, Long capacityBytes, L
>>>>>>>> ong capacityIops);
>>>>>>>>
>>>>>>>> This method can be invoked from StorageManagerImpl when the
>>>>>>>> updateStoragePool API is called.
>>>>>>>>
>>>>>>>> This gives the storage plug-in that backs the primary storage in
>>>>>>>> question an opportunity to update the backend storage it represents, if
>>>>>>>> that makes sense to do in your particular case (for example, changing 
>>>>>>>> the
>>>>>>>> size and/or IOPS of a volume).
>>>>>>>>
>>>>>>>> There is a related enhancement to the resizeVolume API that I plan
>>>>>>>> to tackle next week. That one will be particularly useful for managed
>>>>>>>> storage plug-ins.
>>>>>>>>
>>>>>>>> Also, I have been collecting input on the generic key/value
>>>>>>>> proposal here:
>>>>>>>>
>>>>>>>>
>>>>>>>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=42566111
>>>>>>>>
>>>>>>>> That may turn into a considerable amount of work. I was initially
>>>>>>>> thinking it could be fit into 4.5, but it might be 4.6.
>>>>>>>>
>>>>>>>> Thanks for any feedback!
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jun 12, 2014 at 11:09 PM, Mike Tutkowski <
>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>
>>>>>>>>> As I think about this more, there are two situations we should
>>>>>>>>> cover:
>>>>>>>>>
>>>>>>>>> 1) Non-managed storage that has control over IOPS.
>>>>>>>>>
>>>>>>>>> When you invoke the createStoragePool API, you can pass in
>>>>>>>>> capacityIops.
>>>>>>>>>
>>>>>>>>> We should support modifying capacityIops via the updateStoragePool
>>>>>>>>> API.
>>>>>>>>>
>>>>>>>>> 2) Managed storage that has control over IOPS.
>>>>>>>>>
>>>>>>>>> In this environment, there is a 1:1 mapping between a SAN volume
>>>>>>>>> and a CloudStack volume.
>>>>>>>>>
>>>>>>>>> This is where we need to augment the resizeVolume API to accept -
>>>>>>>>> in a similar fashion to size - a new value for Min and/or Max IOPS.
>>>>>>>>>
>>>>>>>>> For example, a resizeVolume can be initiated by simply selecting a
>>>>>>>>> new Disk Offering.
>>>>>>>>>
>>>>>>>>> In this situation, the size and IOPS are part of the new Disk
>>>>>>>>> Offering (i.e. neither size nor IOPS can be marked as custom) and 
>>>>>>>>> when the
>>>>>>>>> resize method of the storage plug-in is invoked, it will have a 
>>>>>>>>> chance to
>>>>>>>>> change the size and/or IOPS.
>>>>>>>>>
>>>>>>>>> I would say we should perform a bit of analysis in the CloudStack
>>>>>>>>> volume logic to NOT stop resize from being invoked on the storage 
>>>>>>>>> plug-in
>>>>>>>>> IF the volume size is the same, but the IOPS are different. This way 
>>>>>>>>> the
>>>>>>>>> volume can be online as long as the user is only changing the IOPS of 
>>>>>>>>> the
>>>>>>>>> volume.
>>>>>>>>>
>>>>>>>>> I also think it's only a problem for XenServer for the VDI to have
>>>>>>>>> its size changed dynamically.
>>>>>>>>>
>>>>>>>>> I plan to draw a flowchart for this soon. Once I do that I think
>>>>>>>>> it will be easier to talk in detail.
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Jun 12, 2014 at 12:59 PM, Mike Tutkowski <
>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>
>>>>>>>>>> From what I understand about the resizeVolume API, to change the
>>>>>>>>>> size of a given volume, you must either:
>>>>>>>>>>
>>>>>>>>>> 1) pass in a new Disk Offering (if the current Disk Offering the
>>>>>>>>>> volume uses does not allow for a custom size)
>>>>>>>>>>
>>>>>>>>>> or
>>>>>>>>>>
>>>>>>>>>> 2) pass in the ID of the volume and a new size (if the current
>>>>>>>>>> Disk Offering the volume uses does allow for a custom size)
>>>>>>>>>>
>>>>>>>>>> Either way, if you are shrinking the volume's size, you then have
>>>>>>>>>> to pass in 'true' for the 'shrinkok' parameter.
>>>>>>>>>>
>>>>>>>>>> One thing we should do is support this same concept with IOPS. At
>>>>>>>>>> the time being, both Min and Max IOPS can be custom (set by user) or 
>>>>>>>>>> non
>>>>>>>>>> custom (set by admin). This is a direct parallel to custom size or
>>>>>>>>>> non-custom size. If the user is using a non-custom IOPS setting and 
>>>>>>>>>> wants
>>>>>>>>>> to switch to a custom IOPS setting, he should be able to do so by 
>>>>>>>>>> switching
>>>>>>>>>> to a Disk Offering with custom IOPS. Of course we should support 
>>>>>>>>>> doing this
>>>>>>>>>> while the volume is attached.
>>>>>>>>>>
>>>>>>>>>> If arbitrary key/value pairs can be associated with Disk
>>>>>>>>>> Offerings, then you should be able to get the new key/value pairs by
>>>>>>>>>> switching to a new Disk Offering. We'd want to allow this to work 
>>>>>>>>>> with the
>>>>>>>>>> volume in the attached state, as well.
>>>>>>>>>>
>>>>>>>>>> Perhaps we should allow this all to happen online (volume
>>>>>>>>>> attached) UNLESS doing what we're about to do will change the size 
>>>>>>>>>> of the
>>>>>>>>>> volume. Then we can fail the OP and tell them to detach the volume 
>>>>>>>>>> and
>>>>>>>>>> re-run the OP.
>>>>>>>>>>
>>>>>>>>>> What are you thoughts on that?
>>>>>>>>>>
>>>>>>>>>> Also, I think volumeResize only works for data disks at the time
>>>>>>>>>> being.
>>>>>>>>>>
>>>>>>>>>> In my mind, volumeResize is a bit of a misnomer now. We are
>>>>>>>>>> really allowing the user to resize their Disk Offering now in terms 
>>>>>>>>>> of not
>>>>>>>>>> only size, but IOPS, and even arbitrary key/value pairs. This is 
>>>>>>>>>> still all
>>>>>>>>>> done by selecting a new Disk Offering (or - if you have a custom 
>>>>>>>>>> size or
>>>>>>>>>> custom IOPS disk offering already - by passing in the ID of the 
>>>>>>>>>> volume and
>>>>>>>>>> the new size and/or IOPS).
>>>>>>>>>>
>>>>>>>>>> Let's brainstorm on this a bit and see which way makes sense to
>>>>>>>>>> go.
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Jun 12, 2014 at 9:48 AM, Punith S <punit...@cloudbyte.com
>>>>>>>>>> > wrote:
>>>>>>>>>>
>>>>>>>>>>> sure mike.
>>>>>>>>>>>
>>>>>>>>>>> and i have one question,
>>>>>>>>>>>
>>>>>>>>>>> which existing volume api are we gonna use for changing disk
>>>>>>>>>>> offerings(properties) dynamically ?
>>>>>>>>>>> since resize api will not allow unless the disk is detached !
>>>>>>>>>>>
>>>>>>>>>>> thanks.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jun 12, 2014 at 11:37 AM, Mike Tutkowski <
>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Sounds good - let me give some thought as to how we should
>>>>>>>>>>>> break up the work.
>>>>>>>>>>>>
>>>>>>>>>>>> My GSoC student from Tunisia will be helping us, as well.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Jun 11, 2014 at 8:34 AM, Punith S <
>>>>>>>>>>>> punit...@cloudbyte.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> yes it sounds good, thanks for the proposal mike,
>>>>>>>>>>>>>
>>>>>>>>>>>>> yeah right now i have implemented prototype of my proposal,
>>>>>>>>>>>>> since its not generic we shall implement your proposal for 4.5.
>>>>>>>>>>>>> on the other hand, for 4.5 i'm supporting nfs protocol and
>>>>>>>>>>>>> resize feature for managed storage in xenserver, now trying to 
>>>>>>>>>>>>> implement
>>>>>>>>>>>>> snapshot and support root disk for vm's.
>>>>>>>>>>>>> and yes if we can club together, i can start working on this
>>>>>>>>>>>>> proposal for data disk and get the prototype ready.
>>>>>>>>>>>>> what do you think ?
>>>>>>>>>>>>>
>>>>>>>>>>>>> thanks.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Jun 11, 2014 at 3:53 AM, Mike Tutkowski <
>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I'll send out a [PROPOSAL] e-mail so others who may not be
>>>>>>>>>>>>>> following this e-mail thread have a better chance to comment on 
>>>>>>>>>>>>>> the feature.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tue, Jun 10, 2014 at 2:58 PM, Mike Tutkowski <
>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here is that design document I was referring to, Punith:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=42566111
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I've been working with a student in Tunisia who is
>>>>>>>>>>>>>>> participating in Google Summer of Code (GSoC) (I'm his mentor).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> He'll be working on part of this as will I. (He is also
>>>>>>>>>>>>>>> working on another related task not listed here.)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Feel free to join us, if you have time available, as we can
>>>>>>>>>>>>>>> divide out coding and testing among the three of us.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Talk to you later!
>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Jun 10, 2014 at 10:18 AM, Mike Tutkowski <
>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I plan to draw up a design document surrounding generic
>>>>>>>>>>>>>>>> key/value pairs today.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Perhaps you can take a look at it when you have time,
>>>>>>>>>>>>>>>> Punith?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Tue, Jun 10, 2014 at 10:06 AM, Mike Tutkowski <
>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi Punith,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Yeah, I hear you about the number of permutations involved.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Traditionally Compute and Disk Offerings have been
>>>>>>>>>>>>>>>>> immutable. It makes it easier from an accounting point of 
>>>>>>>>>>>>>>>>> view for
>>>>>>>>>>>>>>>>> chargeback and billing.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You should definitely feel free to extend the CloudStack
>>>>>>>>>>>>>>>>> API. I think NetApp did this for one of their storage 
>>>>>>>>>>>>>>>>> features in the
>>>>>>>>>>>>>>>>> recent past. This way vendor-specific capabilities can be 
>>>>>>>>>>>>>>>>> more easily
>>>>>>>>>>>>>>>>> offered without making it look like all vendors support those 
>>>>>>>>>>>>>>>>> particular
>>>>>>>>>>>>>>>>> features.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I do not yet have any code in master related to generic
>>>>>>>>>>>>>>>>> keys/values. I'm still designing this.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> How does your schedule look for the 4.5 release? Do you
>>>>>>>>>>>>>>>>> think you might have available cycles to help out with this 
>>>>>>>>>>>>>>>>> generic
>>>>>>>>>>>>>>>>> key/value implementation?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Talk to you later!
>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Tue, Jun 10, 2014 at 7:09 AM, Punith S <
>>>>>>>>>>>>>>>>> punit...@cloudbyte.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> hi mike,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> thanks for the reply, i like your approach which is a
>>>>>>>>>>>>>>>>>> very generic way and also we only need to do a few changes 
>>>>>>>>>>>>>>>>>> to the current
>>>>>>>>>>>>>>>>>> cloudstack,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> but on the other hand we are tying every property of the
>>>>>>>>>>>>>>>>>> vendor to a disk offering through key/value pairs, since we 
>>>>>>>>>>>>>>>>>> offer lot of
>>>>>>>>>>>>>>>>>> properties like i mentioned, this can create a lot of 
>>>>>>>>>>>>>>>>>> permutation
>>>>>>>>>>>>>>>>>> combinations of disk offerings, for say if i need to turn 
>>>>>>>>>>>>>>>>>> deduplication On
>>>>>>>>>>>>>>>>>> for a specific volume , should i have to create a new disk 
>>>>>>>>>>>>>>>>>> offering having
>>>>>>>>>>>>>>>>>> current properties with deduplication On?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> is this approach already implemented in the current
>>>>>>>>>>>>>>>>>> master ?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> and also like you mentioned about exposing a new api, is
>>>>>>>>>>>>>>>>>> it okay if i expose our own api in my util by extending the 
>>>>>>>>>>>>>>>>>> PlugableService
>>>>>>>>>>>>>>>>>> like in network plugins ?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> thanks.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Tue, Jun 10, 2014 at 1:17 AM, Mike Tutkowski <
>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Allow me to follow this up with more detail (with
>>>>>>>>>>>>>>>>>>> regards to what Chris and I talked about):
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> As you are aware, today the way you associate a Compute
>>>>>>>>>>>>>>>>>>> Offering (CO) or a Disk Offering (DO) with a Primary 
>>>>>>>>>>>>>>>>>>> Storage (PS) is via
>>>>>>>>>>>>>>>>>>> storage tagging.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> This has some benefits and drawbacks.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> One benefit is being able to have some level of vendor
>>>>>>>>>>>>>>>>>>> independence from the point of view of the CO or DO. For 
>>>>>>>>>>>>>>>>>>> example, if the
>>>>>>>>>>>>>>>>>>> storage tag of a DO is "Fast", then this can be satisfied 
>>>>>>>>>>>>>>>>>>> by PS that
>>>>>>>>>>>>>>>>>>> describes itself as "Fast", regardless of vendor.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> A major drawback with the storage-tagging approach,
>>>>>>>>>>>>>>>>>>> however, is that you are not easily able to leverage 
>>>>>>>>>>>>>>>>>>> vendor-specific
>>>>>>>>>>>>>>>>>>> features, which is often why you bought storage from the 
>>>>>>>>>>>>>>>>>>> vendor in question
>>>>>>>>>>>>>>>>>>> to begin with.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Ideally we do not want to add each vendor's features
>>>>>>>>>>>>>>>>>>> into the system as properties that can be seen by the admin 
>>>>>>>>>>>>>>>>>>> regardless of
>>>>>>>>>>>>>>>>>>> whether or not the underlying storage he's actually using 
>>>>>>>>>>>>>>>>>>> supports the
>>>>>>>>>>>>>>>>>>> feature in question.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> This coarse approach, however, was sort of business as
>>>>>>>>>>>>>>>>>>> usual when I started in with CloudStack 1.5 years ago.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> That being the case, when I added QoS options to CS, I
>>>>>>>>>>>>>>>>>>> did so in a way where the admin would see Min IOPS and Max 
>>>>>>>>>>>>>>>>>>> IOPS options
>>>>>>>>>>>>>>>>>>> regardless of whether or not his storage actually supported 
>>>>>>>>>>>>>>>>>>> those controls
>>>>>>>>>>>>>>>>>>> (to mitigate this a bit in the GUI, the admin has to 
>>>>>>>>>>>>>>>>>>> explicitly select
>>>>>>>>>>>>>>>>>>> "Storage QoS" from a combobox).
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> We leverage the same use model with Hypervisor QoS: The
>>>>>>>>>>>>>>>>>>> admin sees these options regardless of whether or not they 
>>>>>>>>>>>>>>>>>>> actually apply
>>>>>>>>>>>>>>>>>>> on the hypervisor where the VM gets deployed.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Going forward, we want to implement a more fine-grain
>>>>>>>>>>>>>>>>>>> and generic approach.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> We would like to have a storage provider field for the
>>>>>>>>>>>>>>>>>>> CO and DO windows (this equates to the name of one and only 
>>>>>>>>>>>>>>>>>>> one storage
>>>>>>>>>>>>>>>>>>> provider). If the admin inputs a specific storage provider 
>>>>>>>>>>>>>>>>>>> and does not use
>>>>>>>>>>>>>>>>>>> the storage tags field, he can enter in an arbitrary number 
>>>>>>>>>>>>>>>>>>> of key/value
>>>>>>>>>>>>>>>>>>> pairs in another text field (perhaps we would provide a 
>>>>>>>>>>>>>>>>>>> nice entry dialog
>>>>>>>>>>>>>>>>>>> to make this easier in the GUI). These key value pairs can 
>>>>>>>>>>>>>>>>>>> be passed into
>>>>>>>>>>>>>>>>>>> the storage driver when it's asked to create (or update) a 
>>>>>>>>>>>>>>>>>>> volume and the
>>>>>>>>>>>>>>>>>>> storage driver can decide what each and every key/value 
>>>>>>>>>>>>>>>>>>> pair means.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> What do you think about this approach?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Mon, Jun 9, 2014 at 1:14 PM, Mike Tutkowski <
>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Hi Punith,
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> This kind of a feature is something Chris Suich and I
>>>>>>>>>>>>>>>>>>>> discussed a while back.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> We talked about leveraging arbitrary key/value pairs to
>>>>>>>>>>>>>>>>>>>> make this happen (OpenStack does something similar). The 
>>>>>>>>>>>>>>>>>>>> key/value pairs
>>>>>>>>>>>>>>>>>>>> would be vendor specific.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> If we take a key/value approach, we might be able to
>>>>>>>>>>>>>>>>>>>> make this all work the way things work today when the user 
>>>>>>>>>>>>>>>>>>>> wants to change
>>>>>>>>>>>>>>>>>>>> an existing Compute Offering and/or Disk Offering.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> For example, the user would pick a new Compute Offering
>>>>>>>>>>>>>>>>>>>> (with presumably has different key/value pairs) and 
>>>>>>>>>>>>>>>>>>>> CloudStack could inform
>>>>>>>>>>>>>>>>>>>> the applicable storage provider, who could update the 
>>>>>>>>>>>>>>>>>>>> volume in question.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> This way we don't need to introduce a new API command
>>>>>>>>>>>>>>>>>>>> and the use model for the user doesn't really change.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> What are you thoughts on this?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Mon, Jun 9, 2014 at 8:08 AM, Punith S <
>>>>>>>>>>>>>>>>>>>> punit...@cloudbyte.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> hi guys,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> since most of the third party storage providers have
>>>>>>>>>>>>>>>>>>>>> been implementing 1:1 mapping(managed storage) between a 
>>>>>>>>>>>>>>>>>>>>> volume(dataset)
>>>>>>>>>>>>>>>>>>>>> and a vm disk(vdi/vmdk) for guaranteeing the Qos, i would 
>>>>>>>>>>>>>>>>>>>>> like to propose a
>>>>>>>>>>>>>>>>>>>>> new feature to dynamically change the volume properties 
>>>>>>>>>>>>>>>>>>>>> supported by
>>>>>>>>>>>>>>>>>>>>> storage vendors such as IOPS, Deduplication, Compression, 
>>>>>>>>>>>>>>>>>>>>> Grace,
>>>>>>>>>>>>>>>>>>>>> Syncronization, Latency etc, depending on properties and 
>>>>>>>>>>>>>>>>>>>>> features supported
>>>>>>>>>>>>>>>>>>>>> by respective storage vendors. hence providing more 
>>>>>>>>>>>>>>>>>>>>> flexibility for users.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> in case of using default cloudstack storage provider,
>>>>>>>>>>>>>>>>>>>>> we can change the properties of the vdi/vmdk files apart 
>>>>>>>>>>>>>>>>>>>>> from resizing the
>>>>>>>>>>>>>>>>>>>>> volume(vdi/vmdk).
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> changes in management server include,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> new async web api ChangeVolumePropertiesCmd,
>>>>>>>>>>>>>>>>>>>>> new method in VolumeApiService for vo and dao
>>>>>>>>>>>>>>>>>>>>> validation implementations.
>>>>>>>>>>>>>>>>>>>>> new method in VolumeServiceManager for supporting
>>>>>>>>>>>>>>>>>>>>> callback and calling the respective storage provider 
>>>>>>>>>>>>>>>>>>>>> driver's
>>>>>>>>>>>>>>>>>>>>> implementation.
>>>>>>>>>>>>>>>>>>>>> new method in PrimaryDataStoreDriver interface for
>>>>>>>>>>>>>>>>>>>>> implementing respective features according to their 
>>>>>>>>>>>>>>>>>>>>> storage product.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> changes in UI include,
>>>>>>>>>>>>>>>>>>>>> new changing volume properties widget in volume
>>>>>>>>>>>>>>>>>>>>> section, showing different properties depending upon 
>>>>>>>>>>>>>>>>>>>>> listed storage
>>>>>>>>>>>>>>>>>>>>> providers.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> any suggestions and feedbacks ?
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> thanks
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>> regards,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> punith s
>>>>>>>>>>>>>>>>>>>>> cloudbyte.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=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>*™*
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> regards,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> punith s
>>>>>>>>>>>>>>>>>> cloudbyte.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=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>*™*
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> regards,
>>>>>>>>>>>>>
>>>>>>>>>>>>> punith s
>>>>>>>>>>>>> cloudbyte.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=play>*™*
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> regards,
>>>>>>>>>>>
>>>>>>>>>>> punith s
>>>>>>>>>>> cloudbyte.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=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>*™*
>>
>
>
>
> --
> regards,
>
> punith s
> cloudbyte.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=play>*™*

Reply via email to