Hello, I'm testing ACS 4.2 with kvm. I noticed that when one configures mem.overprovisioning.factor Global/Cluster setting, chances are that the System VMs configured with an offer of 128 MB RAM will never start (namely the Domain Router and the SSVM).
According to the agent.log, ACS sends libvirt the request to start the VM with
a "currentMemory" parameter equal to the System Offering RAM divided by
mem.overprovisioning.factor:
2013-08-21 11:02:34,824 DEBUG [cloud.agent.Agent] (agentRequest-Handler-1:null)
Request:Seq 1-1537935677: { Cmd , MgmtId: 117981950658, via: 1, Ver: v1,
Flags: 100011, [{"com.cloud.agent.api.StartCommand":{"vm":{"id":13,"name":"
r-13-VM","type":"DomainRouter","cpus":1,"minSpeed":125,"maxSpeed":500,"minRam":33554432,"maxRam":134217728,"arch":"x86_64","os":"Debian
GNU/Linux 5.0 (32-bit)","bootArgs":" template=domP name=r-13-VM
eth0ip=10.10.40.10 eth0mask=
255.255.255.0 gateway=10.10.40.1 domain=dev.int dhcprange=10.10.40.1
eth1ip=169.254.3.215 eth1mask=255.255.0.0 type=dhcpsrvr disable_rp_filter=true
dns1=8.8.8.8","rebootOnCrash":false,"enableHA":true,"limitCpuUse":false
,"enableDynamicallyScaleVm":false,"vncPassword":"*","params":{"memoryOvercommitRatio":"4","cpuOvercommitRatio":"4"},"uuid":"52caa75a-5331-4979-9456-18d1b743b7ad","disks":[{"data":{"org.apache.cloudstack.storage.to.
VolumeObjectTO":{"uuid":"c84b6834-6bab-4087-a044-e61a1e3a391b","volumeType":"ROOT","dataStore":{"org.apache.cloudstack.storage.to.PrimaryDataStoreTO":{"uuid":"c1ac7425-f6d2-3ada-b78a-b17faceb89ea","id":2,"poolType":"RBD","host":"
ceph.dev.int","path":"rbd1","port":6789}},"name":"ROOT-13","size":272915248,"path":"329df94f-4c30-4617-9fbd-440b76f08cde","volumeId":13,"vmName":"r-13-VM","accountId":1,"format":"RAW","id":13,"hypervisorType":"KVM"}},"di
skSeq":0,"type":"ROOT"}],"nics":[{"deviceId":0,"networkRateMbps":1000,"defaultNic":true,"uuid":"c68fdd00-68e0-4755-b6e1-c07c4d122040","ip":"10.10.40.10","netmask":"255.255.255.0","gateway":"10.10.40.1","mac":"06:f2:0e:00:01:74"
,"dns1":"8.8.8.8","broadcastType":"Vlan","type":"Guest","broadcastUri":"vlan://40","isolationUri":"vlan://40","isSecurityGroupEnabled":false,"name":"vswitch0"},{"deviceId":1,"networkRateMbps":-1,"defaultNic":false,"uuid":"1778dbb
d-7d27-481a-96ad-99c9aac36e8f","ip":"169.254.3.215","netmask":"255.255.0.0","gateway":"169.254.0.1","mac":"0e:00:a9:fe:03:d7","broadcastType":"LinkLocal","type":"Control","isSecurityGroupEnabled":false}]},"hostIp":"10.10.8.25","
executeInSequence":false,"wait":0}},{"com.cloud.agent.api.check.CheckSshCommand":{"ip":"169.254.3.215","port":3922,"interval":6,"retries":100,"name":"r-13-VM","wait":0}},{"com.cloud.agent.api.GetDomRVersionCmd":{"accessDetails":{
"router.name":"r-13-VM","router.ip":"169.254.3.215"},"wait":0}},{}] }
[...]
<name>r-13-VM</name>
<uuid>52caa75a-5331-4979-9456-18d1b743b7ad</uuid>
<description>Debian GNU/Linux 5.0 (32-bit)</description>
[...]
<memory>131072</memory>
<currentMemory>32768</currentMemory>
<devices>
<memballoon model='virtio'/>
</devices>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
<cputune>
<shares>125</shares>
</cputune>
<on_reboot>restart</on_reboot>
<on_poweroff>destroy</on_poweroff>
<on_crash>destroy</on_crash>
</domain>
As a result, the System VM will be created, but will never run - 32 MB RAM is
too low. I'm not arguing about how recommended it is to set a factor of 4 for
memory ballooning (outside testing environments), but rather that ACS should
start (at least the System) VMs with a minimum RAM. The virtio_balloon module
seems to be loaded within the SVM template, but it does not work.
Is there any way to control how much minimum RAM ACS allocates based on the
service offering and the overprovisioning factor?
Thanks,
Dinu
signature.asc
Description: Message signed with OpenPGP using GPGMail
