See inline Thanks, Koushik
> -----Original Message----- > From: Chip Childers [mailto:chip.child...@sungard.com] > Sent: Wednesday, December 19, 2012 7:55 PM > To: cloudstack-dev@incubator.apache.org > Subject: Re: [DISCUSS] Scaling up CPU and RAM for running VMs > > On Wed, Dec 19, 2012 at 3:34 AM, Koushik Das <koushik....@citrix.com> > wrote: > > See inline > > > >> -----Original Message----- > >> From: Marcus Sorensen [mailto:shadow...@gmail.com] > >> Sent: Tuesday, December 18, 2012 10:35 PM > >> To: cloudstack-dev@incubator.apache.org > >> Subject: Re: [DISCUSS] Scaling up CPU and RAM for running VMs > >> > >> The FS looks good and addresses the things I'd want it to (scaling > >> should be limited to within cluster, use offerings). > >> > >> As you mention, there's a real problem surrounding no support for > >> scaling down CPU, and it's just as much a problem with the guests as > >> it is with hvms at the moment, it seems. This makes it hard to just > >> set a VM as a dynamic one, since at some point you'll likely trigger > >> it to scale up and have to reboot to get back down. My suggestion if > >> this goes through however is that instead of marking a vm for auto > >> scale, we can either attach multiple compute offerings (with a > >> priority or "level") to a VM, along with triggers (we can't really trigger > >> on > memory, but perhaps cpu utilization over a specific time, e.g. > >> if cpu is at 80% for x time, fall back to the next offering), or we > >> can create a specific single compute offering that allows you to > >> specify a min and max memory, cpu, and a trigger at which it scales > >> (this latter one is my preference). > >> > >> The whole thing is problematic though, because people can > >> inadvertently trigger their VM to scale up when they're installing > >> updates or compiling or something and then have to reboot to come > >> back down. If we can't take away resources without manual > >> intervention, we shouldn't add them. For this reason I'd like to see > >> the focus (at least initially) on simply being able to change to > >> larger compute offerings while the VM is up. With this in place, if > >> someone really wants to autoscale, they can use the api in a > >> combination of fetching the VM stats and the existing > >> changeServiceForVirtualMachine. Or we can put that in, but I think any > implementation will be a poor experience without being able to go both > ways. > >> > > > > This is a good suggestion but as you have mentioned first priority is to > > have > the basic stuff working (increasing CPU/RAM for running VMs). > > Also another thing is that HVs (at least Vmware) require that a VM is > configured appropriately when it is stopped in order to support increasing > CPU/RAM while it is running. We can either do this for all VMs irrespective of > the fact whether the CPU/RAM is going to be actually increased OR do it only > for selective VMs (maybe based on compute offering). If this is going to be > common across all HVs the latter can be done. > > > >> I don't know, maybe I'm off in left field here, I'd be interested in > >> hearing the thoughts of others. > >> > >> You mention 'upgradeVirtualMachine', which should be mentioned on > >> the customer facing API is called 'changeServiceForVirtualMachine', > >> just to reduce confusion. > >> > > > > upgradeVirtualMachine is an existing command (see > UpgradeVMCmd.java), was planning to reuse it. But yes if the name sounds > confusing we can deprecate it and create a new command with the name > you have suggested. > > > > Please don't break backward compatibility without the whole list discussing > the implications on a dedicated thread. We had previously agreed that we > were going to maintain API compatibility between 4.0.0-incubating and our > next feature release. If we break it, we have to release as 5.0.0-incubating > instead of 4.1.0-incubating. In that case will add a new async API changeServiceForVirtualMachine (or if anyone else comes up with a better name) which will work for both running and stopped VMs. upgradeVirtualMachine would continue to exist till 5.0.0 happens. > > >> > >> On Tue, Dec 18, 2012 at 9:18 AM, Koushik Das <koushik....@citrix.com> > >> wrote: > >> > >> > Created first draft of the FS > >> > > >> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+scalin > >> g > >> > +of+CPU+and+RAM > >> > Also created jira issue > >> > https://issues.apache.org/jira/browse/CLOUDSTACK-658 > >> > > >> > Comments? There is an 'open issue' section where I have mentioned > >> > some issues that needs to be closed > >> > > >> > Thanks, > >> > Koushik > >> > > >> > > -----Original Message----- > >> > > From: Koushik Das [mailto:koushik....@citrix.com] > >> > > Sent: Saturday, December 15, 2012 11:14 PM > >> > > To: cloudstack-dev@incubator.apache.org > >> > > Subject: [DISCUSS] Scaling up CPU and RAM for running VMs > >> > > > >> > > Currently CS supports changing CPU and RAM for stopped VM. This > >> > > is achieved by changing compute offering of the VM (with new CPU > >> > > and RAM > >> > > values) and then starting it. I am planning to extend the same > >> > > for > >> > running VM > >> > > as well. Initially planning to do it for Vmware where CPU and RAM > >> > > can be dynamically increased. Support of other HVs can also be > >> > > added if they support increasing CPU/RAM. > >> > > > >> > > Assuming that in the updated compute offering only CPU and RAM > >> > > has changed, the deployment planner can either select the same > >> > > host in which case the values are dynamically scaled up OR a > >> > > different one in which > >> > case > >> > > the operation fails. In future if there is support for live > >> > > migration > >> > (provided > >> > > HV supports it) then another option in the latter case could be > >> > > to > >> > migrate the > >> > > VM first and then scale it up. > >> > > > >> > > I will start working on the FS and share it out sometime next week. > >> > > > >> > > Comments/suggestions? > >> > > > >> > > Thanks, > >> > > Koushik > >> > > >