cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nitin Mehta (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CLOUDSTACK-2503) Scalevm - Document/Enforce scale vm limitations for guest OS and hypervisors clearly
Date Fri, 05 Jul 2013 09:27:48 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-2503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13700547#comment-13700547
] 

Nitin Mehta edited comment on CLOUDSTACK-2503 at 7/5/13 9:26 AM:
-----------------------------------------------------------------

Xenserver /Vmware Tools
For dynamic scaling to work virtual machine should have XS tools / VMware tools installed
on it. To ensure this Admin/User can do it in two ways :-

Admin/User while registering the template provides an input whether tools are installed on
the template(or can be done using update template API).
If the user deploys a virtual machine with a template that does not have XS tools / VMware
tools and later if he/she installs the tools on the VM then he can inform Cloudstack using
using updatevirtualmachine API. After installation of tools and updating the virtual machine,
user needs to stop and start the vm from cloudstack in order for dynamic scaling of CPU and
RAM for that VM. The reason why we need to stop start the VM after updating is we need to
set static max memory to some higher value before VM starts so that we can dynamically scale
the VM upto static max.
Hypervisor Changes
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.

Note : From XS following are the constraints (read xenserver admin guide) 

0 ≤ memory-static-min ≤ memory-dynamic-min ≤ memory-dynamic-max ≤ memory-static-max
 
Dynamic Minimum ≥ 1⁄4 Static Maximum for all supported operating systems
DeployVmCmd - 

During the initial deployment of the VM we set memory variable as follows :-

static min = service_offering / memory_overprovisioning_of_cluster.  
dynamic min = service_offering / memory_overprovisioning_of_cluster.  
dynamic max = service_offering  
static max = f_min( (4 * service_offering) / memory_overprovisioning_of_cluster  ,  Xenserver
recommended max for guestOS)
ScaleVmCmd - 

During scaling up of vm, the new requested RAM is set to mem-dynamic-min and mem-dynamic-max.
Static min and max do not change unless the vm is stopped and started.

While scaling "up" the vm say from service offering "x" to "y" we will change  

dynamic min = new service_offering / memory_overprovisioning_of_cluster.  
dynamic max = new service_offering  
and ensure that

new dynamic max (y) <= static max and  
new dynamic min (y / memory_overprovisioning_of_cluster) >= static min.
Further reading 

Vmware -
DeployVmCmd - 
During the initial deployment of the VM we enable the flags hotAddCpu and hotAdd memory true.
These flags will be turned on if the guest OS supports it. Read http://partnerweb.vmware.com/comp_guide2/pdf/VMware_GOS_Compatibility_Guide.pdf

ScaleVmCmd - 

During scaling up of vm, the new requested RAM and CPU are set if the flags are turned on.

Limitation - 1 - After dynamically scaling memory user "might" need to run a couple of commands
on Linux OS for new memory to take affect --> Further Reading

Limitation - 2 - If a VM is initially assigned a RAM of less than 3gb then it cannot be dynamically
scaled beyond 3gb. Holds true for for Linux 64 bit and windows 7 32 bit guest os. Further
Reading

Limitation - 3 - Hot add vcpu will fail If the number of cores per socket is not 1 and virtual
machine hardware version=7. Further Reading 
                
      was (Author: nitinme):
    The Functional Spec https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+scaling+of+CPU+and+RAM
is upto date and should be taken as source of truth. I am copying HV specific information
which should be documented.

Xenserver /Vmware Tools
For dynamic scaling to work virtual machine should have XS tools / VMware tools installed
on it. To ensure this Admin/User can do it in two ways :-

Admin/User while registering the template provides an input whether tools are installed on
the template(or can be done using update template API).
If the user deploys a virtual machine with a template that does not have XS tools / VMware
tools and later if he/she installs the tools on the VM then he can inform Cloudstack using
using updatevirtualmachine API. After installation of tools and updating the virtual machine,
user needs to stop and start the vm from cloudstack in order for dynamic scaling of CPU and
RAM for that VM. The reason why we need to stop start the VM after updating is we need to
set static max memory to some higher value before VM starts so that we can dynamically scale
the VM upto static max.
Hypervisor Changes
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.

Note : From XS following are the constraints (read xenserver admin guide) 

0 ≤ memory-static-min ≤ memory-dynamic-min ≤ memory-dynamic-max ≤ memory-static-max
 
Dynamic Minimum ≥ 1⁄4 Static Maximum for all supported operating systems
DeployVmCmd - 

During the initial deployment of the VM we set memory variable as follows :-

static min = service_offering / memory_overprovisioning_of_cluster.  
dynamic min = service_offering / memory_overprovisioning_of_cluster.  
dynamic max = service_offering  
static max = f_min( (4 * service_offering) / memory_overprovisioning_of_cluster  ,  Xenserver
recommended max for guestOS)
ScaleVmCmd - 

During scaling up of vm, the new requested RAM is set to mem-dynamic-min and mem-dynamic-max.
Static min and max do not change unless the vm is stopped and started.

While scaling "up" the vm say from service offering "x" to "y" we will change  

dynamic min = new service_offering / memory_overprovisioning_of_cluster.  
dynamic max = new service_offering  
and ensure that

new dynamic max (y) <= static max and  
new dynamic min (y / memory_overprovisioning_of_cluster) >= static min.
Vmware -
DeployVmCmd - 

During the initial deployment of the VM we enable the flags hotAddCpu and hotAdd memory true.
These flags will be turned on if the guest OS supports it.

ScaleVmCmd - 

During scaling up of vm, the new requested RAM and CPU are set if the flags are turned on.
                  
> Scalevm - Document/Enforce scale vm limitations for guest OS and hypervisors clearly
> ------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-2503
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2503
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Doc, Management Server
>            Reporter: Nitin Mehta
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message