Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

scaleVirtualMachine - This is an existing API upgradeVirtualMachine and takes vm_id and compute_offering_id as inputs. This is a sync call currently and will not be used anymore since we need it to be async. I plan deprecate this api in the next big release (5.0).
I will introduce another API named scaleVirtualMachine which will be similar to upgradeVirtualMachine in every aspect except that it would be async.
For system VMs the same API can be used but proper access checks would be done. In case of a migration this will internally use the migrateVirtualMachine API logic.

Hypervisor Changes

Xenserver 

DeployVmCmd - 

Xenserver

 To facilitate scaling up RAM for the VMs in xenserver Dynamic Memory Control(DMC) to change the amount of host physical memory assigned to any running virtual machine without rebooting it.

During the deployment of VM, if we set memory-dynamic-min = memory-dynamic-max = requested RAM(say K) then the guest VM gets K amount of RAM, later we can increase the RAM by setting a higher value then K within the memory static range.

The constraint is  0 ≤ memory-static-min ≤ memory-dynamic-min ≤ memory-dynamic-max ≤ memory-static-max

DeployVmCmd - 

During the initial deployment of the VM we set mem-static-min = 128MB, mem-static-max  = 8GB and memory-dynamic-min = memory-dynamic-max = requested RAM(service offering).

ScaleVmCmd - 

During scaling up of vm, the new requested RAM is set to mem-dynamic-min and mem-dynamic-max (values should satisfy the constraint 0 ≤ memory-static-min ≤ memory-dynamic-min ≤ memory-dynamic-max ≤ memory-static-max)ScaleVmCmd - 

UI flow

  • UI needs to give an action for upgrading vm (when vm is in running / stopped state) just like we give the same option when vm is stopped.

...