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