清单

属性

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6
name 请参见 资源属性 0.6
description 请参见 资源属性 0.6
zoneUuid 所在区域的uuid,请参见 区域(Zone) location 0.6
clusterUuid 所在集群的uuid, 请参见 集群(Cluster)location 0.6
hostUuid 运行云主机当前的物理主机uuid, 请参见 物理主机(Host) and location 0.6
lastHostUuid 上一次运行云主机的物理主机uuid, 请参见 物理主机(Host)and location 0.6
imageUuid 用于创建云主机根云盘的镜像uuid, 请参见 镜像(Image) 0.6
instanceOfferingUuid 计算规格的uuid, 请参见 计算规格(Instance Offering) 0.6
rootVolumeUuid 云主机根云盘的uuid,请参见 云盘(Volume) 0.6
defaultL3NetworkUuid 云主机默认L3网络的uuid,请参见 L3 networknetworks 0.6
cpuSpeed VCPU速度, 请参见 CPU capacity 0.6
cpuNum VCPU数目, 请参见 CPU capacity 0.6
allocatorStrategy 主机分配策略, 请参见 allocator strategy
  • DefaultHostAllocatorStrategy
  • DesignatedHostAllocatorStrategy
0.6
type

云主机类型

  • UserVm: 用户创建的云主机
  • ApplianceVm: ZStack创建的帮助管理云的云主机
  • UserVm
  • ApplianceVm
0.6
hypervisorType 云主机的虚拟机管理程序类型, 请参见 物理主机(Host)和 hypervisor type
  • KVM
0.6
state 云主机的可用状态, 请参见state
  • Created
  • Starting
  • Running
  • Stopping
  • Stopped
  • Rebooting
  • Destroying
  • Destroyed
  • Migrating
  • Expunging
  • Pausing
  • Paused
  • Resuming
  • VolumeMigrating
  • Unknown
0.6
vmNics nic inventory 0.6
allVolumes volume inventory 0.6
createDate 请参见 资源属性 0.6
lastOpDate 请参见 资源属性 0.6

示例

{
    "inventories":  {
            "agentPort": 7272,
            "allVolumes": [
                {
                    "actualSize": 293641216,
                    "createDate": "Oct 30, 2017 10:37:51 AM",
                    "description": "Root volume for VM[uuid:0f7730d25fff413d9ab42c174722c9d8]",
                    "deviceId": 0,
                    "format": "qcow2",
                    "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-1f9\
19d46bd7a43689b6401bf82b3e190/1f919d46bd7a43689b6401bf82b3e190.qcow2",
                    "isShareable": false,
                    "lastOpDate": "Oct 30, 2017 10:37:51 AM",
                    "name": "ROOT-for-vrouter.l3.私有云私有网络.ac5c7e",
                    "primaryStorageUuid": "2376c2874ae34e95a2309fa3453c547d",
                    "rootImageUuid": "bca9ad917cf3178281f27bc64d2dc96b",
                    "size": 8589934592,
                    "state": "Enabled",
                    "status": "Ready",
                    "type": "Root",
                    "uuid": "1f919d46bd7a43689b6401bf82b3e190",
                    "vmInstanceUuid": "0f7730d25fff413d9ab42c174722c9d8"
                }
            ],
            "allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy",
            "applianceVmType": "vrouter",
            "clusterUuid": "175a8917ee794b849e4e96f0b680b717",
            "cpuNum": 2,
            "cpuSpeed": 0,
            "createDate": "Oct 30, 2017 10:37:51 AM",
            "defaultRouteL3NetworkUuid": "e315b2cb6151454bbab362a6e92909e7",
            "hostUuid": "232a730a0c9f4280803a8b0eddfebd77",
            "hypervisorType": "KVM",
            "imageUuid": "bca9ad917cf3178281f27bc64d2dc96b",
            "instanceOfferingUuid": "03a0a2b129f547b5bcb0745db8333390",
            "lastHostUuid": "232a730a0c9f4280803a8b0eddfebd77",
            "lastOpDate": "Oct 30, 2017 7:34:35 PM",
            "managementNetworkUuid": "e315b2cb6151454bbab362a6e92909e7",
            "memorySize": 2147483648,
            "name": "vrouter.l3.私有云私有网络.ac5c7e",
            "platform": "Linux",
            "publicNetworkUuid": "e315b2cb6151454bbab362a6e92909e7",
            "rootVolumeUuid": "1f919d46bd7a43689b6401bf82b3e190",
            "state": "Running",
            "status": "Connected",
            "type": "ApplianceVm",
            "uuid": "0f7730d25fff413d9ab42c174722c9d8",
            "vmNics": [
                {
                    "createDate": "Oct 30, 2017 10:37:51 AM",
                    "deviceId": 0,
                    "gateway": "10.0.0.1",
                    "ip": "10.58.22.43",
                    "l3NetworkUuid": "e315b2cb6151454bbab362a6e92909e7",
                    "lastOpDate": "Oct 30, 2017 10:37:51 AM",
                    "mac": "fa:08:2b:92:42:00",
                    "metaData": "3",
                    "netmask": "255.0.0.0",
                    "uuid": "bf1d8e2848fd48e39e71c9f859a2158b",
                    "vmInstanceUuid": "0f7730d25fff413d9ab42c174722c9d8"
                }
            ],
            "zoneUuid": "12489c7dce2b4e73811da4a1d38b53dc"
        }
}

位置(Location)

ZStack通过区域(zones)、集群(clusters) 和物理主机(hosts)组织计算资源(computing resources), 因此云主机的位置可以通过zoneUuid、 clusterUuid 和hostUuid标识。
  • 当云主机开始运行后, 这些UUIDs会被设置为标识云主机当前位置的值;
  • 当云主机停止运行后, hostUuid会被设置为NULL,zoneUuid和clusterUuid会保持不变;
  • lastHostUuid比较特别, 因为它代表了云主机上次运行的物理主机;
  • 对于新创建的云主机, lastHostUuid被设置为NULL;
  • 一旦云主机停止运行, lastHostUuid就被设置为之前的hostUuid值。

网络(Networks)

云主机可以有一个或多个L3网络;vm nics 包含了每个L3网络的IP地址、子网掩码和MAC地址信息。
  • 如果一个云主机有不止一个L3网络,那么它必须设置一个默认的L3网络,这个网络提供默认的路由(routing)、 DNS 和物理主机名;
  • 如果一个云主机只有一个L3网络, 那么它就自动成为默认的L3网络。
下面的示例帮助理解什么是默认的L3网络。 假设有一个如Figure 1所示的用户云主机:
Figure 1. 用户云主机


云主机所连接的三个L3网络都提供SNAT服务,并且默认的L3网络是10.10.1.0/24:
CIDR: 10.10.1.0/24
Gateway: 10.10.1.1
DNS domain: web.tier.mycompany.com
那么云主机的路由表(routing table)将会是这样:
default via 10.10.1.1 dev eth0
10.10.1.0/24 dev eth0  proto kernel  scope link  src 10.10.1.99
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.10
172.16.0.0/24 dev eth2  proto kernel  scope link  src 172.16.0.55
可见,默认路由(default routing)指向了10.10.1.1,也就是默认L3网络的网关;同时云主机的/etc/resolv.conf如下所示:
search web.tier.mycompany.com
nameserver 10.10.1.1
就是说DNS域也是来自默认L3网络; DNS域名服务器(DNS name server)也是设置为10.10.1.1, 因为默认L3网络提供了DNS服务器; 最终, 云主机的FQDN(Full Qualified Domain Name)看起来会像这样:
vm2.web.tier.mycompany.com

它是从DNS域扩展而来的。

云主机网络接口清单(VM Nic Inventory)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6
vmInstanceUuid 父云主机的uuid 0.6
l3NetworkUuid 网卡所连接的:ref:`l3 network <l3Network>`的uuid 0.6
ip IP地址 0.6
mac MAC地址 0.6
netmask 子网掩码 0.6
gateway 网关 0.6
metaData 内部使用的保留域 0.6
deviceId 标识网卡在客户操作系统(guest operating system)以太网设备中顺序的整形数字。 例如, 0通常代表eth0,1通常代表eth1。 0.6

示例

{
    "inventories": {
            "createDate": "Oct 30, 2017 5:06:34 PM",
            "deviceId": 0,
            "gateway": "192.168.13.1",
            "ip": "192.168.13.161",
            "l3NetworkUuid": "52d8509a19cc4e22a717163d9cb5ee61",
            "lastOpDate": "Oct 30, 2017 5:06:34 PM",
            "mac": "fa:c2:3d:d6:ff:00",
            "netmask": "255.255.255.0",
            "uuid": "e1e4dca977394741804c46a500fe3fa6",
            "vmInstanceUuid": "6db4a412ff764725a7e2077bedfff4e3"
        }
}

云盘(Volumes)

allVolumes域是由Volumes组成的列表,其中包含了根云盘(root volume)和数据云盘(data volumes)。如果要找出其中的根云盘,用户可以通过迭代这个列表,并检查云盘的类型或者使用域`rootVolumeUuid`来匹配云盘的UUID。根云盘会一直伴随云主机,直到云主机被删除。

虚拟机管理程序类型(Hypervisor Type)

根据云主机创建方式的不同,云主机的虚拟机管理程序类型可能是从镜像的虚拟机管理程序类型,或物理主机的虚拟机管理程序类型继承而来的。
  • 从RootVolumeTemplate创建的虚拟机:

    由于镜像中已经安装有操作系统,云主机会被创建在和镜像有相同虚拟机管理程序类型的物理主机上,因此云主机的虚拟机管理程序类型是从镜像继承而来的。

  • 从ISO文件创建的虚拟机:

    由于会使用ISO安装操作系统到云主机的空白根云盘上, 云主机可能被创建在拥有任何类型的虚拟机管理程序的物理主机上,因此云主机的虚拟机管理程序类型是从创建的物理主机上继承而来的。

可用状态(State)

云主机的生命周期中有以下数种可用状态。
  • Created

    在这种状态时,云主机还只是创建于数据库中的一个记录而已, 并没有在任何物理主机上启动。这个状态仅在创建一个新的云主机的时候出现。

  • Starting

    在这种状态时,云主机正在一个物理主机上启动。

  • Runnig

    在这种状态时,云主机正在一个物理主机上运行。

  • Stopping

    在这种状态时,云主机正在一个物理主机上停止过程中。

  • Stopped

    在这种状态时,云主机已经停止,没有运行在任何物理主机上。

  • Rebooting

    在这种状态时,云主机正在上次运行的物理主机上重启。

  • Destroying

    在这种状态时,云主机正在被删除。

  • Destroyed

    在这种状态时,云主机已经被删除。

  • Migrating

    在这种状态时,云主机正在被迁移到另一个物理主机上。

  • Expunging

    在这种状态时,云主机的数据库正在被删除。

  • Pausing

    在这种状态时,云主机正在一个物理主机上暂停运行过程中。

  • Paused

    在这种状态时,云主机已经暂停运行。

  • Resuming

    在这种状态时,云主机正在从暂停状态恢复到运行状态的过程中。

  • VolumeMigrating

    在这种状态时,云主机根云盘正在从本地存储迁移到其它物理主机。

  • Unknown

    由于某些原因,例如,由于失去和物理主机的连接,ZStack不能检查物理主机的可用状态。

Figure 2所示:
Figure 2. 云主机可用状态转换图


ZStack会使用VmTracer来周期性的跟踪云主机的状态; 默认的间隔时间(interval)是60秒。云主机的状态可能会被ZStack之外的因素影响。
  • 例如,物理主机掉电(power outage)会导致所有该物理主机上运行的云主机停止运行;一旦VmTracer检测到云主机的实际状态和数据库中的记录不匹配,数据库会被更新为实际的状态。
  • 如果VmTracer不能成功检查云主机的状态,例如,由于ZStack管理节点和物理主机之间的连接丢失, 云主机会被设置为Unknown状态;一旦VmTracer再次成功检测到云主机的状态,例如, ZStack管理节点和物理主机之间的连接恢复之后, 云主机的状态也会被更新为实际的状态。