Open luchukun opened 7 years ago
在线扩展KVM虚机的计算规格 Hotplug cpu and memory
针对这个Feature,我们未添加API。增强了现有的两个API。 APICreateVmInstanceMsg APIChangeInstanceOfferingMsg
使用APICreateVmInstanceMsg创建虚拟机时,可以使用systemTags=instanceOfferingOnlinechange::true 启用KVM虚拟机的在线更改计算规格功能. 例如:
CreateVmInstance systemTags=instanceOfferingOnlinechange::true name=test instanceOfferingUuid=413b0b3f9c7d491c975c30e6c96c4f9b l3NetworkUuids=0ad1f8da34cc46ee87553e52df11db30 imageUuid=f3f458fa5df7486fa3c87407ddd81f73
返回结果:
{ "inventory": { "allVolumes": [ { "actualSize": 1099563008, "createDate": "Dec 2, 2016 4:11:37 PM", "description": "Root volume for VM[uuid:79978d025b934df1adcbe1571457abd9]", "deviceId": 0, "format": "qcow2", "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-7192b02d8b4843e3a70cb0ec67a3d4c0/7192b02d8b4843e3a70cb0ec67a3d4c0.qcow2", "lastOpDate": "Dec 2, 2016 4:11:41 PM", "name": "ROOT-for-test", "primaryStorageUuid": "473a39c5ee9f4365aab816d5ffc7d0ae", "rootImageUuid": "f3f458fa5df7486fa3c87407ddd81f73", "size": 42949672960, "state": "Enabled", "status": "Ready", "type": "Root", "uuid": "7192b02d8b4843e3a70cb0ec67a3d4c0", "vmInstanceUuid": "79978d025b934df1adcbe1571457abd9" } ], "allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy", "clusterUuid": "ce8382a6b68d4e0ea6ad7b55edf7f120", "cpuNum": 1, "cpuSpeed": 1, "createDate": "Dec 2, 2016 4:11:30 PM", "defaultL3NetworkUuid": "0ad1f8da34cc46ee87553e52df11db30", "hostUuid": "71167eb07bda4585bd5979e0e835c650", "hypervisorType": "KVM", "imageUuid": "f3f458fa5df7486fa3c87407ddd81f73", "instanceOfferingUuid": "413b0b3f9c7d491c975c30e6c96c4f9b", "lastHostUuid": "71167eb07bda4585bd5979e0e835c650", "lastOpDate": "Dec 2, 2016 4:11:45 PM", "memorySize": 1073741824, "name": "test", "platform": "Linux", "rootVolumeUuid": "7192b02d8b4843e3a70cb0ec67a3d4c0", "state": "Running", "type": "UserVm", "uuid": "79978d025b934df1adcbe1571457abd9", "vmNics": [ { "createDate": "Dec 2, 2016 4:11:38 PM", "deviceId": 0, "gateway": "172.20.0.1", "ip": "172.20.68.48", "l3NetworkUuid": "0ad1f8da34cc46ee87553e52df11db30", "lastOpDate": "Dec 2, 2016 4:11:38 PM", "mac": "fa:1e:42:7a:e7:00", "netmask": "255.255.0.0", "uuid": "01e09bfd894142b7ad2351cd13707946", "vmInstanceUuid": "79978d025b934df1adcbe1571457abd9" } ], "zoneUuid": "52983d92798349b99422bf154b43a52d" }, "success": true }
在使用APICreateVmInstanceMsg创建虚拟机的时候,可以使用systemTags=instanceOfferingOnlinechange::true启用在线更改计算规格功能。 这种情况下创建的KVM虚拟机和不支持在线更改计算规格的虚拟机的主要差别在于在定义这个虚拟机的XML文件中: 支持在线更改的虚拟机关于内存CPU的配置为
<maxMemory slots='16' unit='KiB'>104857600</maxMemory> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static' current='1'>128</vcpu> <cputune> <shares>1</shares> </cputune>
<cpu> <topology sockets='32' cores='32' threads='1'/> <numa> <cell id='0' cpus='0-127' memory='1048576' unit='KiB'/> </numa> </cpu>
我使用了Hotplug mem 的方式实现我们的在线更改计算规格功能。KVM-Quem虚拟机技术要求需要热添加内存的虚拟机CPU模式配置为NUMA模式。KVM-qeum还可以使用mem ballon技术实现内存在线更改。
<maxMemory slots='16' unit='KiB'>104857600</maxMemory> <vcpu placement='static' current='1'>128</vcpu>
当收到更改计算规格的请求时,判断目标计算规格是否内存和CPU都大于当前规格,如果大于在发送一个OnlineChangeVmCpuMemoryMsg Local message。VmInstanceBase接受到这条消息,会发送一条Command至agent。agent接收command,cpu可以直接设置;内存是通过计算目标内存与当前内存的差值来得到需要热添加的内存大小。
该功能没有创建相应的Feature
描述
在线扩展KVM虚机的计算规格 Hotplug cpu and memory
API
针对这个Feature,我们未添加API。增强了现有的两个API。 APICreateVmInstanceMsg APIChangeInstanceOfferingMsg
举例(Example)
使用APICreateVmInstanceMsg创建虚拟机时,可以使用systemTags=instanceOfferingOnlinechange::true 启用KVM虚拟机的在线更改计算规格功能. 例如:
返回结果:
备注
在使用APICreateVmInstanceMsg创建虚拟机的时候,可以使用systemTags=instanceOfferingOnlinechange::true启用在线更改计算规格功能。 这种情况下创建的KVM虚拟机和不支持在线更改计算规格的虚拟机的主要差别在于在定义这个虚拟机的XML文件中: 支持在线更改的虚拟机关于内存CPU的配置为
我使用了Hotplug mem 的方式实现我们的在线更改计算规格功能。KVM-Quem虚拟机技术要求需要热添加内存的虚拟机CPU模式配置为NUMA模式。KVM-qeum还可以使用mem ballon技术实现内存在线更改。
当收到更改计算规格的请求时,判断目标计算规格是否内存和CPU都大于当前规格,如果大于在发送一个OnlineChangeVmCpuMemoryMsg Local message。VmInstanceBase接受到这条消息,会发送一条Command至agent。agent接收command,cpu可以直接设置;内存是通过计算目标内存与当前内存的差值来得到需要热添加的内存大小。
Feature_link
该功能没有创建相应的Feature