zstackio / doc-ch

ZStack Chinese user manual
Apache License 2.0
12 stars 21 forks source link

在线扩展KVM虚机的计算规格 #82

Open luchukun opened 7 years ago

luchukun commented 7 years ago

描述

在线扩展KVM虚机的计算规格 Hotplug cpu and memory

API

针对这个Feature,我们未添加API。增强了现有的两个API。 APICreateVmInstanceMsg APIChangeInstanceOfferingMsg

举例(Example)

使用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技术实现内存在线更改。