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