sure mike. thanks :)
On Fri, Jul 11, 2014 at 9:18 PM, Mike Tutkowski < mike.tutkow...@solidfire.com> wrote: > Just an FYI that I was busy the past week working on building integration > tests for SolidFire-related functionality that's executed in CloudStack, > but I plan to get back to this resizeVolume API work today. > > > On Wed, Jun 25, 2014 at 10:27 AM, Mike Tutkowski < > mike.tutkow...@solidfire.com> wrote: > >> 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, >>>>>>>>>> Long 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>*™* >> > > > > -- > *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