Giter VIP home page Giter VIP logo

doc-ch's People

Contributors

cxxx avatar lstfyt avatar newbiet avatar quarkonics avatar youyk avatar zstackorg avatar zxwing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc-ch's Issues

test-rst

.. _backup storage:

================================
备份存储(Backup Storage)

.. contents:: 目录
:depth: 6


概览(Overview)

备份存储是保存用于创建云盘的:ref:images <image>的存储系统. 备份存储可以是基于存储的文件系统(filesystem based storage,例如NFS),也是可以基于对象的存储(object store based storage,例如OpenStack SWIFT), 只要该存储系统为网络可共享的存储(network
shared storage). 除了可以为创建云盘提供模板以外, 备份存储也允许用户备份云盘或云盘快照(volume snapshots).

备份存储必须挂载到:ref:zone <zone>之后,区域中的资源才能访问它.
管理员可以利用备份存储在多个区域之间共享镜像, 例如:

.. image:: backupStorage1.png
:align: center

在云的初期, 可能只有一个区域(Zone1)以及一个备份存储. 随着业务的发展,
管理员可能会选择创建另一个区域(Zone2),但使用现有的镜像创建虚拟机; 这时管理员可以将备份存储挂载到区域Zone2, 这样区域Zone1和区域Zone2都可以共享同样的镜像了.

.. image:: backupStorage2.png
:align: center

.. 注意:: ZStack当前版本仅支持:ref:SFTP backup storage <sftp backup storage>作为备份存储

.. _backup storage inventory:


清单(Inventory)

属性(Properties)

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • uuid
    • 请参见 :ref:resource properties
    • 0.6
    • name
    • 请参见 :ref:resource properties
    • 0.6
    • description
    • 请参见 :ref:resource properties
    • 0.6
    • url
    • 请参见 :ref:url <backup storage url>
    • 0.6
    • totalCapacity
    • 字节为单位的磁盘总容量, 请参见 :ref:capacity <backup storage capacity>
    • 0.6
    • availableCapacity
    • 字节为单位的磁盘可用容量, 请参见 :ref:capacity <backup storage capacity>
    • 0.6
    • type
    • 备份存储类型e
      • SftpBackupStorage
    • 0.6
    • state
    • 请参见 :ref:state <backup storage state>
      • Enabled
      • Disabled
    • 0.6
    • status
    • 请参见 :ref:status <backup storage status>
      • Connecting
      • Connected
      • Disconnected
    • 0.6
    • attachedZoneUuids
    • 备份存储所挂载的所有区域的UUID
    • 0.6
    • createDate
    • 请参见 :ref:resource properties
    • 0.6
    • lastOpDate
    • 请参见 :ref:resource properties
    • 0.6

示例
+++++++

::

    {
        "attachedZoneUuids": [
            "36de66d82f424639af67215a465418f6"
        ],
        "availableCapacity": 1258407346176,
        "name": "sftp",
        "state": "Enabled",
        "status": "Connected",
        "totalCapacity": 1585341214720,
        "type": "SftpBackupStorage",
        "url": "/export/backupStorage/sftp",
        "uuid": "33a35f75885f45ab96ea2626ce9c05a6",
        "lastOpDate": "Jun 1, 2015 3:42:26 PM",
        "createDate": "Jun 1, 2015 3:42:26 PM"
    }

.. _backup storage url:

统一资源定位符(URL)
+++

备份存储需要使用URL字符串存储的信息来控制存储系统. 虽然名字叫URL, 具体的字符串存储格式依据主存储的类型而定, 并不完全等同于标准的URL规范, 这样可以给插件更多的灵活性以存储一些不方便以URL格式存储的信息.

.. _sftp backup storage url:

SFTP备份存储URL(SFTP Backup Storage URL)

对于SFTP备份存储而言, URL是一个目录在文件系统中的绝对路径. 例如, /storage/sftp.

.. _backup storage capacity:

容量(Capacity)
+++++++++++++++++++++

为了方便选择合适的备份存储存放镜像, ZStack会监控备份存储的容量.
备份存储的容量根据下面公式来计算::

总容量 = 备份存储的总容量
可用容量 = 总容量 - sum(镜像的实际大小)

.. _backup storage state:

可用状态(State)
++++++++++++++++++++++++

备份存储有两种可用状态:

  • Enabled:

    启用(Enabled)状态下,允许镜像被注册,备份,和下载

  • Disabled:

    禁用(Disabled)状态下,不允许镜像被注册,备份,和下载.
    需要特别注意的是,如果一个镜像只存在于一个禁用了的备份存储中,并且这个镜像还没有被下载到主存储的镜像缓存中,这时不能从这个镜像创建虚拟机.

.. _backup storage status:

连接状态(Status)
+++++++++++++++++++++++++

主存储的连接状态反应了管理节点和备份存储之间的命令通道的状态.

  • Connecting:

    在这种状态时,一个ZStack管理节点正在尝试建立自己和备份存储之间的命令通道. 这时还不能在备份存储上执行任何操作.

  • Connected

    这种状态时,ZStack管理节点和备份存储之间的命令通道已经被成功建立. 可以在备份存储上执行操作.

  • Disconnected

    在这种状态时,ZStack管理节点和备份存储之间的命令通道丢失. 这时不能在备份存储上执行任何操作.

在ZStack管理节点启动过程中会开始和备份存储建立命令通道,并且会在运行中周期性的向主存储发送ping命令(ping commands)以检查命令通道的健康状态;
一旦某个备份存储响应失败, 或者ping命令超时,备份存储的连接状态就会变为Disconnected.

.. 警告:::: ZStack会持续的发送ping命令到Disconnected状态的备份存储. 一旦备份存储恢复并响应ping命令, ZStack会重新建立命令通道,并将备份存储的状态设置为Connected. 因此如果一个备份已经彻底从云中移除,请将它也从ZStack中删除,否则ZStack会一直尝试ping它.

备份存储的可用状态转换图如下:

.. image:: backup-storage-status.png
:align: center

.. _sftp backup storage:


SFTP备份存储(SFTP Backup Storage)

SFTP备份存储是使用本地文件系统(native filesystem)存储镜像,并使用OpenSSH服务器/客户端传输镜像的Linux服务器.
ZStack使用一个python代理(SftpBackupStorageAgent)来管理Linux服务器; 镜像是通过使用SCP <http://en.wikipedia.org/wiki/Secure_copy>_从服务器上传/下载.
除了:ref:backup storage inventory <backup storage inventory>章节中提到的属性, SFTP备份存储还有一个额外的属性:

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • hostname
    • SFTP备份存储的IP地址或DNS域名
    • 0.6

示例

::

    {
        "attachedZoneUuids": [
            "36de66d82f424639af67215a465418f6"
        ],
        "availableCapacity": 1258407346176,
        "hostname": "172.16.0.220",
        "name": "sftp",
        "state": "Enabled",
        "status": "Connected",
        "totalCapacity": 1585341214720,
        "type": "SftpBackupStorage",
        "url": "/export/backupStorage/sftp",
        "uuid": "33a35f75885f45ab96ea2626ce9c05a6",
        "lastOpDate": "Jun 1, 2015 3:42:26 PM",
        "createDate": "Jun 1, 2015 3:42:26 PM"
    }

操作(Operations)

添加备份存储(Add Backup Storage)

不同的备份存储类型使用不同的添加命令.

添加SFTP备份存储(Add SFTP Backup Storage)
+++++++++++++++++++++++++++++++++++++++++++++++++++

管理员可以使用AddSftpBackupStorage来添加一个新的备份存储. 例如::

AddSftpBackupStorage name=sftp1 url=/storage/sftp1 hostname=192.168.0.220 username=root password=password

参数(Parameters)

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • name
    • 资源的名字, 请参见 :ref:resource properties
    • 0.6
    • resourceUuid
    • 资源的uuid, 请参见 :ref:create resource
    • 0.6
    • description
    • 资源的描述, 请参见 :ref:resource properties
    • 0.6
    • url
    • 请参见 :ref:url <backup storage url>
    • 0.6
    • hostname
    • SFTP备份存储的IP地址或DNS域名
    • 0.6
    • username
    • root用户
    • root
    • 0.6
    • password
    • root的SSH密码
    • 0.6

删除备份存储(Delete Backup Storage)

管理员可以使用DeleteBackupStorage来删除备份存储. 例如::

DeleteBackupStorage uuid=1613b627cb2e4ffcb30e7e59935064be

.. 警告:: 删除备份存储, 会使备份存储从挂载的区域上卸载. 所有的备份存储上的镜像或云盘快照的拷贝都会被删除;
如果被删除的拷贝是镜像或云盘快照的唯一拷贝,相对应的镜像或快照也会被删除.
没有办法恢复一个已经删除了的备份存储.

参数(Parameters)
++++++++++++++++++++++

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • uuid
    • 备份存储的uuid
    • 0.6
    • deleteMode
    • 请参见 :ref:delete resource
      • Permissive
      • Enforcing
    • 0.6

改变可用状态(Change State)

管理员可以使用ChangeBackupStorageState来改变备份存储的可用状态. 例如::

ChangeBackupStorageState uuid=33a35f75885f45ab96ea2626ce9c05a6 stateEvent=enable

参数(Parameters)
++++++++++++++++++++++

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • uuid
    • 备份存储的uuid
    • 0.6
    • stateEvent

    • 状态触发事件

      • 启用: 改变可用状态为启用(Enabled)
      • 禁用: 改变可用状态为禁用(Disabled)
      • enable
      • disable
    • 0.6

.. _attach backup storage to zone:

挂载区域(Attach Zone)

管理员可以使用AttachBackupStorageToZone将备份存储挂载到区域上. 例如::

AttachBackupStorageToZone backupStorageUuid=d086c30f33914c98a6078269bab7bc8f zoneUuid=d086c30f33914c98a6078269bab7bc8f

参数(Parameters)
++++++++++++++++++++++

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • backupStorageUuid
    • 备份存储的uuid
    • 0.6
    • zoneUuid
    • 区域的uuid
    • 0.6

.. _detach backup storage from zone:

卸载区域(Detach Zone)

管理员可以使用DetachBackupStorageFromZone从一个区域卸载备份存储. 例如::

DetachBackupStorageFromZone backupStorageUuid=d086c30f33914c98a6078269bab7bc8f zoneUuid=d086c30f33914c98a6078269bab7bc8f

参数(Parameters)
++++++++++++++++++++++

.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1

    • 名字
    • 描述
    • 可选的
    • 可选的参数值
    • 起始支持版本
    • backupStorageUuid
    • 备份存储的uuid
    • 0.6
    • zoneUuid
    • 区域的uuid
    • 0.6

查询备份存储(Query Backup Storage)

管理员可以使用QueryBackupStorage来查询备份存储. 例如::

QueryBackupStorage state=Enabled

::

QueryBackupStorage image.platform=Linux

原生域查询(Primitive Fields of Query)
++++++++++++++++++++++++++++++++++++++++++++++

请参见 :ref:backup storage inventory <backup storage inventory>

.. _backup storage nested fields:

嵌套和扩展域查询(Nested And Expanded Fields of Query)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.. list-table::
:widths: 20 30 40 10
:header-rows: 1

    • 域(Field)
    • 清单(Inventory)
    • 描述
    • 起始支持版本
    • zone
    • :ref:zone inventory <zone inventory>
    • 该备份存储挂载的所有区域
    • 0.6
    • image
    • :ref:image inventory <image inventory>
    • 该备份存储包含的所有镜像
    • 0.6
    • volumeSnapshot
    • :ref:volume snapshot inventory <volume snapshot inventory>
    • 该备份存储包含的所有云盘快照
    • 0.6

查询SFTP备份存储(Query SFTP Backup Storage)

管理员可以使用QuerySftpBackupStorage来查询SFTP备份存储::

QuerySftpBackupStorage name=sftp

原生域查询(Primitive Fields of Query)
++++++++++++++++++++++++++++++++++++++++++++++

请参见 :ref:SFTP backup storage inventory <sftp backup storage>

嵌套和扩展域查询(Nested and Expanded Fields of Query)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

请参见 :ref:backup storage nested and expanded fields <backup storage nested fields>


全局配置(Global Configurations)

.. _ping.interval:

ping.interval

.. list-table::
:widths: 20 30 20 30
:header-rows: 1

    • 名字
    • 类别
    • 默认值
    • 可选的参数值
    • ping.interval
    • backupStorage
    • 60
    • 0

管理节点发送ping命令到备份存储的间隔时间, 单位是秒.

.. _ping.parallelismDegree:

ping.parallelismDegree

.. list-table::
:widths: 20 30 20 30
:header-rows: 1

    • 名字
    • 类别
    • 默认值
    • 可选的参数值
    • ping.parallelismDegree
    • backupStorage
    • 50
    • 0

管理节点可以同时ping的最大并行数量.


标签(Tags)

管理员可以使用resourceType=BackupStorageVO在备份存储上创建用户标签. 例如::

CreateUserTag tag=lab1 resourceType=BackupStorageVO resourceUuid=2906471068802c501773d3ee55b7766e

[LDAP]APILogInByLdapMsg

描述

使用LogInByLdap以使用绑定的Ldap账户的UID和密码登录。

API

org.zstack.ldap.APILogInByLdapMsg

举例(Example)

管理员可以使用LogInByLdap来使用绑定的Ldap账户的UID和密码登录. 例如:

LogInByLdap uid="ldapuser1" password="password"

返回结果:

{
    "inventory": {
        "accountUuid": "ee833daa4f9541e888d94bfade6a625f",
        "createDate": "Dec 22, 2016 1:11:12 PM",
        "expiredDate": "Dec 26, 2016 5:11:22 PM",
        "userUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
        "uuid": "ee833daa4f9541e888d94bfade6a625f"
    },
    "inventory": {
        "ldapUid": "ebc8055882374ff19f46c3234163b36e",
        "ldapServerUuid": "f995b4e3593c45fabeabd92185d33f91",
        "accountUuid": "ee833daa4f9541e888d94bfade6a625f",
        "createDate": "Nov 2, 2016 11:22:15 PM",
        "lastOpDate": "Nov 2, 2016 11:22:29 PM",
        "uuid": "62eea75fc6204a439d3d1dd7b1946bc5"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uid 绑定的Ldap账户的UID
password

备注

Feature_link

[LDAP]APIQueryLdapBindingMsg

描述

查询Ldap账户绑定情况。可以使用任意字段查询。

API

org.zstack.ldap.APIQueryLdapBindingMsg

举例(Example)

管理员可以使用QueryLdapBinding来查询Ldap账户绑定情况. 例如:

QueryLdapBinding

返回结果:

{
    "inventory": {
        "ldapUid": "ebc8055882374ff19f46c3234163b36e",
        "ldapServerUuid": "f995b4e3593c45fabeabd92185d33f91",
        "accountUuid": "ee833daa4f9541e888d94bfade6a625f",
        "createDate": "Nov 2, 2016 11:22:15 PM",
        "lastOpDate": "Nov 2, 2016 11:22:29 PM",
        "uuid": "62eea75fc6204a439d3d1dd7b1946bc5"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本

备注

Feature_link

[IPsec]org.zstack.ipsec.APIQueryIPSecConnectionMsg

描述

查询IPsec connection

API

org.zstack.ipsec.APIQueryIPSecConnectionMsg

举例(Example)

QueryIPSecConnection name=ipsec1

返回结果:

{
    "inventories": [
        {
            "authKey": "test",
            "authMode": "psk",
            "createDate": "Nov 11, 2016 4:58:04 PM",
            "description": "test",
            "ikeAuthAlgorithm": "sha1",
            "ikeDhGroup": 2,
            "ikeEncryptionAlgorithm": "aes-128",
            "l3NetworkUuid": "fbbc1e6519a14e5696a6d271bce9d8f6",
            "lastOpDate": "Nov 11, 2016 4:58:04 PM",
            "name": "ipsec1",
            "peerAddress": "172.20.51.150",
            "peerCidrs": [
                {
                    "cidr": "10.0.15.0/24",
                    "connectionUuid": "5470eaffb87747a4af70c0359ae134ad",
                    "createDate": "Nov 11, 2016 4:58:04 PM",
                    "lastOpDate": "Nov 11, 2016 4:58:04 PM",
                    "uuid": "413a423b88af486c89034e4e2bc77850"
                }
            ],
            "policyAuthAlgorithm": "sha1",
            "policyEncryptionAlgorithm": "aes-128",
            "policyMode": "tunnel",
            "transformProtocol": "esp",
            "uuid": "5470eaffb87747a4af70c0359ae134ad",
            "vipUuid": "0af328f53d3d4b11aebbc3b0f560b849"
        }
    ],
    "success": true
}

参数(Parameters)

QueryIPSecConnection 
[Query Conditions:]
peerCidrs.                  

__systemTag__=              __userTag__=                authKey=                    authMode=                   createDate=
description=                groupBy=                    ikeAuthAlgorithm=           ikeDhGroup=                 ikeEncryptionAlgorithm=
l3NetworkUuid=              lastOpDate=                 name=                       peerAddress=                pfs=
policyAuthAlgorithm=        policyEncryptionAlgorithm=  policyMode=                 systemTags=                 transformProtocol=
userTags=                   uuid=                       vipUuid=                    

[Parameters:]
count=                      fields=                     limit=                      replyWithCount=             sortBy=
sortDirection=              start=                      timeout=                    

备注

Feature_link

[ZStack] GetCurrentTime API

描述

获取管理节点当前时间

API

org.zstack.header.managementnode.APIGetCurrentTimeMsg

举例(Example)

管理员可以使用GetCurrentTime来获取系统当前时间. 例如:

admin >>>GetCurrentTime

返回结果:

{
    "currentTime": {
        "MillionSeconds": 1478510223514,
        "Seconds": 1478510223
    },
    "success": true
}

其中,MillionSeconds是按照毫秒计算的时间戳,Seconds是按照秒计算的时间戳

[LDAP]APICreateLdapBindingMsg

描述

添加Ldap 账户绑定, 添加成功后, 账户可以通过其绑定的Ldap UID和相应的密码登录.

API

org.zstack.ldap.APICreateLdapBindingMsg

举例(Example)

管理员可以使用CreateLdapBinding来添加一个Ldap 账户绑定. 例如:

CreateLdapBinding ldapUid="uid=user1" accountUuid="account1" 

返回结果:

{
    "inventory": {
        "ldapUid": "ebc8055882374ff19f46c3234163b36e",
        "ldapServerUuid": "f995b4e3593c45fabeabd92185d33f91",
        "accountUuid": "ee833daa4f9541e888d94bfade6a625f",
        "createDate": "Nov 2, 2016 11:22:15 PM",
        "lastOpDate": "Nov 2, 2016 11:22:29 PM",
        "uuid": "62eea75fc6204a439d3d1dd7b1946bc5"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid
ldapUid LdapServer上的一个用户的UID
ldapServerUuid LdapServer的UUID
accountuuid 账户的UUID
createDate 创建时间
lastOpDate 最后操作时间

备注

Feature_link

[VIP]org.zstack.network.service.vip.APIDeleteVipQosMsg

描述

删除对VIP的网络带宽限制(set vip qos)

API

org.zstack.network.service.vip.APIDeleteVipQosMsg

举例(Example)

管理员可以使用DeleteVipQos来删除对VIP的网络带宽限制. 例如:

DeleteVipQos uuid=f995b4e3593c45fabeabd92185d33f91 direction = in

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid
Direction 选择删除下行(in)/上行(out)带宽

备注

Feature_link

http://confluence.zstack.io/pages/viewpage.action?pageId=3051551

[LDAP]APIAddLdapServerMsg

描述

添加LdapServer配置,或用于测试连接。

API

org.zstack.ldap.APIAddLdapServerMsg

举例(Example)

管理员可以使用AddLdapServer来添加一个LdapServer连接. 例如:

AddLdapServer name="ldap server 1" description="ldap server 1 description" url="ldap://localhost:1888" base="dc=example,dc=com,dc=cn" username="uid=username,ou=people,dc=example,dc=com,dc=cn" password="password" encryption="None"

返回结果:

{
    "inventory": [
        {
            "base": "dc=example,dc=com,dc=cn",
            "createDate": "Sep 8, 2016 10:28:34 AM",
            "description": "ldap server 1 description",
            "encryption": "None",
            "lastOpDate": "Sep 8, 2016 10:28:34 AM",
            "name": "ldap server 1",
            "password": "password",
            "url": "ldap://localhost:1888",
            "username": "uid=username,ou=people,dc=example,dc=com,dc=cn",
            "uuid": "ebc8055882374ff19f46c3234163b36e"
        }
    ],
    "success": true
}

管理员可以使用AddLdapServer,以及一个systemTag,来测试一个LdapServer连接. 例如:

AddLdapServer name="ldap server 1" description="ldap server 1 description" url="ldap://localhost:1888" base="dc=example,dc=com,dc=cn" username="uid=username,ou=people,dc=example,dc=com,dc=cn" password="password" encryption="None" systemTags="ephemeral::validationOnly"

返回结果:

{
    "inventory": [
        {
            "base": "dc=example,dc=com,dc=cn",
            "createDate": "Sep 8, 2016 10:28:34 AM",
            "description": "ldap server 1 description",
            "encryption": "None",
            "lastOpDate": "Sep 8, 2016 10:28:34 AM",
            "name": "ldap server 1",
            "password": "password",
            "url": "ldap://localhost:1888",
            "username": "uid=username,ou=people,dc=example,dc=com,dc=cn",
            "uuid": "ebc8055882374ff19f46c3234163b36e"
        }
    ],
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name LdapServer连接的一个用于识别的名字
description LdapServer连接的一个简短的描述
username 连接该LdapServer的用户DN
password 密码
url LdapServer的连接地址
base 用于查询的LdapServer起始DN
encryption 加密方式:None或者TLS。需要注意url要与该参数对应

备注

  1. 目前仅支持一个LdapServer连接配置

Feature_link

[vCenter] org.zstack.vmware.APIQueryVCenterMsg

描述

查询 vCenter 资源(QueryVCenter)

API

org.zstack.vmware.APIQueryVCenterMsg

举例(Example)

管理员可以使用 QueryVCenter 来查询导入的 vCenter 资源. 例如:

QueryVCenter

返回结果:

{
    "inventories": [
        {
            "createDate": "Nov 11, 2016 4:18:47 PM",
            "domainName": "172.20.1.153",
            "https": true,
            "lastOpDate": "Nov 11, 2016 4:18:47 PM",
            "name": "vc1",
            "state": "Enabled",
            "status": "Connected",
            "userName": "[email protected]",
            "uuid": "5d9e038d7027419daf707744933226bf",
            "zoneUuid": "5fc8044be2b2401691e7ac29ab51df73"
        }
    ],
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name= 根据名字查询 1.8
uuid= 根据 uuid 查询 1.8

备注

查询 API 由 Mevoco 框架统一管理,并提供丰富的查询条件。以上 Parameters 只是举例。

Feature_link

[Scheduler]org.zstack.scheduler.APIQuerySchedulerJobMsg

描述

获取创建的定时任务

API

org.zstack.scheduler.APIQuerySchedulerJobMsg

举例(Example)

管理员可以使用QuerySchedulerJob来获取一个Job. 例如:

QuerySchedulerJob uuid=ce506484b3684359b39a8ebeba576621

返回结果:

{
    "inventories": [
        {
            "createDate": "Jun 20, 2017 10:31:52 AM",
            "description": "this is a job",
            "lastOpDate": "Jun 20, 2017 10:31:52 AM",
            "name": "job",
            "targetResourceUuid": "vmUuid",
            "triggersUuid": [],
            "uuid": "ce506484b3684359b39a8ebeba576621"
        }
    ],
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid
triggers
targetResourceUuid

备注

Feature_link

https://github.com/zstackio/functional-spec/issues/29

[API] Scheduler API

定时任务(Scheduler)


概览(Overview)

ZStack的定时任务 (Scheduler ) 是在指定的时间点对云主机或云盘执行周期性的相关操作。

定时任务包含云主机的定时任务和数据盘的定时任务。云主机的定时任务分为以下四种:启动云主机、停止云主机、重启云主机、 创建根云盘快照。数据盘的定时任务目前包含创建数据盘快照。
定时任务支持两种配置方式: 简单定时任务和cron定时任务


清单(Inventory)

属性(Properties)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 定时任务的标识, 请参见 资源属性 0.6
targetResourceUuid 目标资源的标识, 请参见 资源属性 1.6
schedulerName 定时任务的名称, 请参见 资源属性 1.6
schedulerJob 定时任务的任务种类 1.6
schedulerType 定时任务的类型 simple, cron 1.6
schedulerInterval 定时任务的间隔时间(秒) 1.6
cronScheduler cron定时任务的表达式 1.6
state 定时任务的状态 disable, enable 1.7
startTime 定时任务的启动时间,格式为unix标准时间戳 1.6
createDate 定时任务的创建时间 0.6
lastOpDate 定时任务的最后更新时间 0.6

示例

简单定时任务清单:

{
        "createDate": "Oct 31, 2016 2:53:44 PM",
        "lastOpDate": "Oct 31, 2016 2:53:44 PM",
        "repeatCount": 10,
        "schedulerInterval": 1000,
        "schedulerJob": "StopVmInstanceJob",
        "schedulerName": "simple-test",
        "schedulerType": "simple",
        "startTime": "Oct 31, 2016 2:53:20 PM",
        "state": "Enabled",
        "targetResourceUuid": "a633cc08d8574c58b4e599697befc42f",
        "uuid": "1114cbbc86b243bc83771d6140134ea8"
}

cron定时任务清单:

{
    "createDate": "Oct 31, 2016 6:23:37 PM",
    "cronScheduler": "0 30 17 ? * * ",
    "lastOpDate": "Oct 31, 2016 6:23:37 PM",
    "schedulerJob": "StartVmInstanceJob",
    "schedulerName": "cron-test",
    "schedulerType": "cron",
    "startTime": "Oct 31, 2016 6:23:37 PM",
    "state": "Enabled",
    "targetResourceUuid": "a633cc08d8574c58b4e599697befc42f",
    "uuid": "a7e840685329474aa0293ac2af91df87"
}

定时任务类型(schedulerType)

定时任务支持两种类型: 简单定时任务和cron定时任务

注意: cron定时任务和Linux的crontab配置格式上不同,ZStack的定时任务使用的格式需要与JAVA Quartz库中cron任务格式保持一致

简单定时任务(Simple Scheduler)

简单定时任务是根据时间间隔来执行周期性的任务。
例如:创建启动云主机定时任务

  • 给定时任务取个名称
  • 选择开始时间 (必选,传入0表示从当前时间开始)
  • 重复次数 (可选,默认为永久重复)
  • 间隔时间 (必选,单位为秒)
cron定时任务 (Cron Scheduler)

cron定时任务能创建周期较复杂性的任务,类似于Linux操作系统中的crontab。
创建cron定时任务需要指定任务,输入任务名称,最后输入cron语句。

*     *     *     *     *     *         cron格式
|     |     |     |     |     |
|     |     |     |     |     |
|     |     |     |     |     +----     每周中的某一天
|     |     |     |     +----------     月
|     |     |     +----------------     每月中的某一天
|     |     +----------------------     小时
|     +----------------------------     分
+----------------------------------     秒

例如:0 0 12 ? * WED 表示: 每周三下午12:00
? 表示占位符,当字段“每周中的某一天”和字段“每月中的某一天”存在冲突时,使用符号“?”避免日期冲突

例如:0 30 10-13 ? * WED,FRI 表示:每周周三和周五的10:30,11:30,12:30,13:30,四个时间点

警告: 请慎重设置间隔时间。过短的任务间隔时间会导致系统资源紧张,最终导致定时任务无法正常执行。

可用状态(state)

定时任务有以下两种可用状态

Enabled

在这种状态下,表明定时任务仍然在工作

Disabled

在这种状态下,表明定时任务已经被暂时停止

用户可以通过API ChangeSchedulerState 更改定时任务的状态


操作(Operations)

1. 创建定时任务(Create Scheduler)

不同类型的定时任务创建的命令不同。下文描述的是创建云主机定时停止任务(CreateStartVmInstanceScheduler),创建云主机定时重启任务(CreateRebootVmInstanceScheduler),创建云硬盘定时快照任务(CreateVolumeSnapshotScheduler), 创建云主机定时启动任务(CreateStartVmInstanceScheduler)。

创建简单定时任务(Create Simple Scheduler)

管理员可以使用CreateStopVmInstanceScheduler来创建一个定时停止主机的定时任务。 例如:

>>>CreateStopVmInstanceScheduler schedulerName=stopvm schedulerDescription="This is a test" type=simple interval=1000 startTime=1477896800 repeatCount=10 vmUuid=a633cc08d8574c58b4e599697befc42f

管理员可以使用CreateStartVmInstanceScheduler来创建一个定时启动主机的定时任务。 例如:

>>>CreateStartVmInstanceScheduler  type=simple schedulerName=startvm interval=1000 vmUuid=a633cc08d8574c58b4e599697befc42f  startTime=0

管理员可以使用CreateRebootVmInstanceScheduler来创建一个定时重启主机的定时任务。 例如:

>>>CreateRebootVmInstanceScheduler type=simple schedulerName=reboottvm interval=1000 vmUuid=a633cc08d8574c58b4e599697befc42f  startTime=0

管理员可以使用CreateVolumeSnapshotScheduler来创建一个定时对云盘做快照的定时任务。 例如:

>>>CreateVolumeSnapshotScheduler type=simple  schedulerName=volumesnapshot-scheduler interval=1000 volumeUuid=8663eabe6c8e4f988f57467bddd984cb  startTime=0 snapShotName='volume-snapshot'

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
schedulerName 创建的定时任务的名字, 请参见 资源属性 1.6
schedulerDescription 定时任务的描述, 请参见 资源属性 1.6
type 定时任务的类型,目前提供simple或者cron 1.6
interval 每次任务的间隔时间 1.6
startTime 任务的起始时间 1.6
repeatCount 任务重复的次数 1.6
vmUuid 云主机的uuid 1.6

type
在简单定时任务中,type的类型为simple

interval
在简单定时任务中,interval为每次任务执行的间隔时间。单位为秒。

repeatCount
可选参数,当不指定该参数的情况下,定时任务默认将永久执行,用户可以通过repeatCount来决定任务重复多少次之后不再执行

startTime
必选参数,当startTime设置为0时,定时任务将以当前系统时间作为启动时间

创建cron定时任务(Create cron Scheduler)

管理员可以通过CreateStartVmInstanceScheduler对资源创建cron类型的定时任务,例如:

>>> CreateStartVmInstanceScheduler type=cron cron='0 30 17 ? * * ' schedulerName=cron-scheduler schedulerDescription='Test cron scheduler' vmUuid=a633cc08d8574c58b4e599697befc42f

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
schedulerName 创建的定时任务的名字, 请参见 资源属性 1.6
schedulerDescription 定时任务的描述, 请参见 资源属性 1.6
type 定时任务的类型,目前提供simple或者cron 1.6
cron cron表达式,定义执行任务的时间间隔和重复方式 1.6
vmUuid 云主机的uuid 1.6

type
在cron定时任务中,type的类型为cron

cron
cron是scheduler所接受的cron表达式,需要和 JAVA Quartz 的CronTrigger格式保持一致

2. 改变定时任务可用状态(Change Scheduler State)

管理员可以使用ChangeSchedulerState命令来改变一个主机的可用状态. 例如::

ChangeSchedulerState uuid=1114cbbc86b243bc83771d6140134ea8 stateEvent=disable

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6
stateEvent 定时任务状态, 请参见 可用状态(state)章节 disable, enable 0.6

3. 查询定时任务(Query Scheduler)

管理员可以使用QueryScheduler来查询主机. 例如::
根据目标资源的uuid来查询定时任务

>>>QueryScheduler targetResourceUuid=a633cc08d8574c58b4e599697befc42f

根据定时任务的类型来查询所有定时任务

>>>QueryScheduler schedulerJob=StopVmInstanceJob

根据scheduler的uuid来查询定时任务

>>>QueryScheduler uuid=a7e840685329474aa0293ac2af91df87

原生域查询(Primitive Fields of Query)

请参见 scheduler inventory

4. 更新定时任务 (Update Scheduler)

管理员可以通过UpdateScheduler更新定时任务的名称和描述

>>>UpdateScheduler uuid=a7e840685329474aa0293ac2af91df87 schedulerName='new name' schedulerDescription='test update name'
名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6
schedulerName 定时任务名称,请参见 资源属性 1.6
schedulerDescription 定时任务描述,请参见 资源属性 1.6

5. 删除定时任务 (Delete Scheduler)

管理员可以通过DeleteScheduler删除一个定时任务

>>>DeleteScheduler uuid=a7e840685329474aa0293ac2af91df87
名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 0.6

[Volume]org.zstack.header.volume.APIDeleteVolumeQosMsg

描述

取消云主机的磁盘限速

API

org.zstack.header.volume.APIDeleteVolumeQosMsg

举例(Example)

用户可以取消云主机的磁盘限速,并立即生效。该磁盘包括根盘与限数据盘

DeleteVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 磁盘uuid

备注

  • 备注2
    若云主机为running或paused状态,则会立即取消限速,否则会等重启后生效

Feature_link

[Voulme]APICreateDataVolumeMsg

描述

创建数据云盘。在第一次挂载之前不会被实例化。

API

org.zstack.header.volume.APICreateDataVolumeMsg

举例(Example)

可以使用CreateDataVolume来创建一个数据云盘. 例如:

CreateDataVolume diskOfferingUuid=f995b4e3593c45fabeabd92185d33f91 name=volume-name 

返回结果:

{
    "inventory": {
        "actualSize": 0,
        "createDate": "Dec 26, 2016 1:47:42 PM",
        "diskOfferingUuid": "f995b4e3593c45fabeabd92185d33f91",
        "isShareable": false,
        "lastOpDate": "Dec 26, 2016 1:47:42 PM",
        "name": "volume-name",
        "size": 2199023255552,
        "state": "Enabled",
        "status": "NotInstantiated",
        "type": "Data",
        "uuid": "7bcd722820d84bdd9536bae82a21be8c"
    },
    "success": true
}

可以使用CreateDataVolume,以及相应的systemTag来创建一个共享数据云盘. 例如:

CreateDataVolume diskOfferingUuid=f995b4e3593c45fabeabd92185d33f91 name=volume-name systemTags=ephemeral::shareable,capability::virtio-scsi

返回结果:

{
    "inventory": {
        "actualSize": 0,
        "createDate": "Dec 26, 2016 1:47:42 PM",
        "diskOfferingUuid": "f995b4e3593c45fabeabd92185d33f91",
        "isShareable": false,
        "lastOpDate": "Dec 26, 2016 1:47:42 PM",
        "name": "volume-name",
        "size": 2199023255552,
        "state": "Enabled",
        "status": "NotInstantiated",
        "type": "Data",
        "uuid": "7bcd722820d84bdd9536bae82a21be8c"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name
uuid
name
description
primaryStorageUuid
vmInstanceUuid
diskOfferingUuid
rootImageUuid
installPath
type
status
size
actualSize
deviceId
format
state
createDate
lastOpDate
isShareable

备注

Feature_link

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

描述

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

  • 备注2
    我实现在线更改计算规格功能的基本思路为:当创建的虚拟机为需要支持在线更改计算规格功能时,我们将虚拟机的XML配置文件的关于内存和CPU的部分配置成很大的值,如下:
<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_link

该功能没有创建相应的Feature

[LDAP]APIDeleteLdapBindingMsg

描述

删除一个指定的Ldap账户绑定

API

org.zstack.ldap.APIDeleteLdapBindingMsg

举例(Example)

管理员可以使用DeleteLdapBinding来删除一个Ldap账户绑定. 例如:

DeleteLdapBinding uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 要删除的Ldap账户绑定的UUID

备注

Feature_link

sdfasd

API Title

sdfas

API Detail

sdfsda

操作(Operations)

创建端口转发规则(Create Port Forwarding Rule)

用户可以使用CreatePortForwardingRule来创建一个端口转发规则, 并可以同时挂载或者不挂载到虚拟机网卡上. 例如::

CreatePortForwardingRule name=pf1 vipPortStart=22 vipUuid=433769b59a7c42199d762af01e08ec16 protocolType=TCP vmNicUuid=4b9c27321b794679a9ba8c18239bbb0d

一个未被挂载的规则可以稍后再挂载到虚拟机网卡上.

[LB]org.zstack.network.service.lb.APIGetCandidateVmNicsForLoadBalancerMsg

描述

获取可以添加到指定负载均衡监听器的虚拟机网卡。分为两种情况:

  1. 当该负载均衡器还未在后端真正创建,只是数据库记录时,所有启用了负载均衡功能的三层网络上的停止的、运行的云主机的网卡都是候选者。负载均衡器还未在后端真正创建是指负载均衡上还未添加任何网卡。
  2. 当该负载均衡器已经在后端真正创建(指该负载均衡上已经添加了虚拟机网卡),在已添加的虚拟机网卡的三层网络上的,运行的、停止的、还没添加到该监听器的虚拟机网卡都是候选者。

API

org.zstack.network.service.lb.APIGetCandidateVmNicsForLoadBalancerMsg

举例(Example)

admin >>>GetCandidateVmNicsForLoadBalancer listenerUuid=02867428cc384a61b67c96566199d9dd
{
    "inventories": [
        {
            "createDate": "Nov 29, 2016 3:48:48 PM",
            "deviceId": 0,
            "gateway": "10.0.2.1",
            "ip": "10.0.2.107",
            "l3NetworkUuid": "93f63307955e4b9597257b100afb277e",
            "lastOpDate": "Nov 29, 2016 3:48:48 PM",
            "mac": "fa:b9:2b:4c:5f:00",
            "netmask": "255.255.255.0",
            "uuid": "1c9335b0d5ec43f498ac8d942524f3b6",
            "vmInstanceUuid": "0cf4e2c8880b4f7e9c7c831cb82de30f"
        }
    ],
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
listenerUuid 监听器UUID 1.8

[VIP]org.zstack.network.service.vip.APISetVipQosMsg

描述

限制VIP的网络带宽(set vip qos)

API

org.zstack.network.service.vip.APISetVipQosMsg

举例(Example)

管理员可以使用SetVipQos来限制Vip网络带宽. 例如:

SetVipQos vipUuid=f995b4e3593c45fabeabd92185d33f91 inboundBandwidth = 81920

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
vipUuid
inBoundBandwidth 下行带宽
outBoundBandwidth 上行带宽

备注

Feature_link

https://github.com/zstackio/issues/issues/4283

[LDAP]APIUpdateLdapServerMsg

描述

更新LdapServer配置。

API

org.zstack.ldap.APIUpdateLdapServerMsg

举例(Example)

管理员可以使用UpdateLdapServer来更新一个LdapServer连接. 例如:

UpdateLdapServer name="ldap server 1" description="ldap server 1 description" url="ldap://localhost:1888" base="dc=example,dc=com,dc=cn" username="uid=username,ou=people,dc=example,dc=com,dc=cn" password="password" encryption="None"

返回结果:

{
    "inventory": [
        {
            "base": "dc=example,dc=com,dc=cn",
            "createDate": "Sep 8, 2016 10:28:34 AM",
            "description": "ldap server 1 description",
            "encryption": "None",
            "lastOpDate": "Sep 8, 2016 10:28:34 AM",
            "name": "ldap server 1",
            "password": "password",
            "url": "ldap://localhost:1888",
            "username": "uid=username,ou=people,dc=example,dc=com,dc=cn",
            "uuid": "ebc8055882374ff19f46c3234163b36e"
        }
    ],
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name LdapServer连接的一个用于识别的名字
description LdapServer连接的一个简短的描述
username 连接该LdapServer的用户DN
password 密码
url LdapServer的连接地址
base 用于查询的LdapServer起始DN
encryption 加密方式:None或者TLS。需要注意url要与该参数对应

备注

Feature_link

[0.6][Vm]org.zstack.header.vm.APICreateVmInstanceMsg

描述

创建云主机(CreateVmInstance)
用户可以用CreateVmInstance来创建一台云主机

API

org.zstack.header.vm.APICreateVmInstanceMsg

举例(Example)

管理员可以使用CreateVmInstance来创建一个云主机. 例如:

CreateVmInstance name=testvm imageUuid=c56c58d5a5954bcf89d574b29deac3be instanceOfferingUuid=fc676d3efa624afe9c0ba0e100ec7bb2 l3NetworkUuids=7c58161234074fe99d2094952fe63b6e

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name 云主机名称 0.6
imageUuid 创建云主机所用镜像uuid 0.6
instanceOfferingUuid 创建云主机所用规格uuid 0.6
l3NetworkUuids 创建云主机所用3层网络uuid列表 0.6
clusterUuid 集群uuid,如果非null,云主机将在所指定的集群上创建;hostUuid优先于本参数设置 0.6
dataDiskOfferingUuids 数据盘规格uuid 0.6
rootDiskOfferingUuid 数据盘规格uuid 0.6
description 资源的描述 0.6
hostUuid 如果非null,云主机将在所指定的物理机上创建 0.6
defaultL3NetworkUuid 如果l3NetworkUuids包含了多余一个的L3网络的UUID,这个参数指定哪个L3网络是默认的 0.6
resourceUuid 指定资源的uuid 0.6
strategy InstantStart or JustCreate 0.x
systemTags 0.x
type 保留的域,默认为UserVm 0.6
userTags
zoneUuid 如果非null, 云主机将在所指定的区域上创建; clusterUuid和hostUuid优先于这个参数的设置 0.6
rootPassword 创建云主机时可同时设置root password 1.8
primaryStorageUuidForRootVolume 创建云主机时可设置根云盘所使用的主存储 1.8

备注

  • rootDiskOfferingUuid
    如果云主机是从ISO镜像创建的, 用户必须指定一个rootDiskOfferingUuid,这样ZStack才能知道根云盘的磁盘大小; 如果云主机是从RootVolumeTemplate镜像创建的, 可以忽略这个域.

  • dataDiskOfferingUuids
    通过在dataDiskOfferingUuids指定云盘规格的UUID列表, 用户可以创建一个挂载了多个数据云盘的云主机. 如果某个数据云盘创建失败了,整个云主机的创建也会失败.

  • rootPassword
    使用rootPassword的话,创建后第一次启动会较慢,时间视image大小而定

[Validation]API只做Validation

描述

UI很多情况需要做一些参数的Validation,但在不查数据库的情况下很难做。但实际上在管理节点这端,API interceptors已经做的api validation了,所以应该后端应该提供一种方法让API只做validation。

API

调用API时,指定一个system tag ephemeral::validationOnly ,API只会做validation,不会真正执行。如果validation失败,返回success = false和error;否则返回success = true

举例(Example)

admin >>>CreateZone name=xxx systemTags=ephemeral::validationOnly
{
    "success": true
}

[IPsec]org.zstack.ipsec.APICreateIPsecConnectionMsg

描述

创建IPsec site-to-site VPN链接

image

site-to-site VPN用于连接两个私有网络,上图中192.168.1.0/24和92.168.3.0/24是两个私有网络,他们通过64.49.246.101和198.61.180.101两个公网IP连接。

API

org.zstack.ipsec.APICreateIPsecConnectionMsg

举例(Example)

CreateIPsecConnection name=ipsec1 l3NetworkUuid=fbbc1e6519a14e5696a6d271bce9d8f6 peerAddress=172.20.51.150 authKey=test vipUuid=0af328f53d3d4b11aebbc3b0f560b849 peerCidrs=10.0.15.0/24 policyMode=tunnel description=test

返回结果:

{
    "inventory": {
        "authKey": "test",
        "authMode": "psk",
        "createDate": "Nov 11, 2016 4:58:04 PM",
        "description": "test",
        "ikeAuthAlgorithm": "sha1",
        "ikeDhGroup": 2,
        "ikeEncryptionAlgorithm": "aes-128",
        "l3NetworkUuid": "fbbc1e6519a14e5696a6d271bce9d8f6",
        "lastOpDate": "Nov 11, 2016 4:58:04 PM",
        "name": "ipsec1",
        "peerAddress": "172.20.51.150",
        "peerCidrs": [
            {
                "cidr": "10.0.15.0/24",
                "connectionUuid": "5470eaffb87747a4af70c0359ae134ad",
                "createDate": "Nov 11, 2016 4:58:04 PM",
                "lastOpDate": "Nov 11, 2016 4:58:04 PM",
                "uuid": "413a423b88af486c89034e4e2bc77850"
            }
        ],
        "policyAuthAlgorithm": "sha1",
        "policyEncryptionAlgorithm": "aes-128",
        "policyMode": "tunnel",
        "transformProtocol": "esp",
        "uuid": "5470eaffb87747a4af70c0359ae134ad",
        "vipUuid": "0af328f53d3d4b11aebbc3b0f560b849"
    },
    "success": true
}

参数(Parameters)

IPsec site-to-site用于连接本地网络和远端网络,在下面的描述中,我们将用户在ZStack创建的相关网络资源称为本地网络资源,将要链接的网络及相关资源称为远端网络资源。

名字 描述 可选的参数 起始支持版本
name 链接名称 1.8
resourceUuid 资源的uuid 1.8
description 链接描述 1.8
l3NetworkUuid 本地L3网络UUID 1.8
peerAddress 远端网络IP 1.8
authMode 验证方式,支持pskcerts两种方式。1.8版本只支持psk模式 是,默认值为psk 1.8
authKey 验证码,根据验证方式不同内容不同。如果authMode = psk,该字段为一个用作密码的字符串 1.8
vipUuid 本地网络的VIP UUID。该VIP用于与远端网络地址链接,即peerAddress代表的IP 1.8
peerCidrs 远端网络CIDR,为一个数组。即本地网络可以链接多个远端网络,例如10.10.0.0/24 1.8
ikeAuthAlgorithm IKE验证算法,可选值为md5, sha1, sha256, sha384, sha512 是,默认值为sha1 1.8
ikeEncryptionAlgorithm IKE加密算法,可选值为3des, aes-128, aes-192, aes-256; NOTE:如果网络服务提供者为Vyos,则aes-192算法不支持 是,默认值为aes-128 1.8
ikeDhGroup IKE dh group(Diffie Hellman Groups),整形值,可选值为1,2,5,14,19,20 是,默认为2 1.8
policyAuthAlgorithm ipsec policy验证算法。对于1.8版本,为ESP验证算法,可选值为md5, sha1, sha256, sha384, sha512 是,默认值为sha 1.8
policyEncryptionAlgorithm ipsec policy加密算法。对于1.8版本,为ESP加密算法,可选值为3des, aes-128, aes-192, aes-256NOTE:如果网络服务提供者为Vyos,则aes-192算法不支持 是,默认值为aes-128 1.8
pfs Perfect Forward Secrecy,可选值为dh-group2,dh-group5,dh-group14,dh-group15,dh-group16,dh-group17,dh-group18,dh-group19,dh-group20,dh-group21,dh-group22,dh-group23,dh-group24,dh-group25,dh-group26,或不设置 是,默认是不设置,代表禁用pfs功能 1.8
policyMode ESP模式,可选值为tunneltransport。1.8只支持tunnel 是,默认为tunnel 1.8
transformProtocol 协议类型,可选值为esp, ah, 1.8只支持esp 是,默认为esp 1.8

备注

Feature_link

Configure a Site-to-site VPN using the Vyatta Network Appliance
AH and ESP protocols

[vCenter] org.zstack.vmware.APIDeleteVCenterMsg

描述

从 Mevoco 删除导入的 vCenter资源(DeleteVCenter)

API

org.zstack.kvm.APIDeleteVCenterMsg

举例(Example)

管理员可以使用DeleteVCenter 来删除导入到 Mevoco 的 vCenter 资源. 例如:

DeleteVCenter uuid=258893c49b204c9189efd40373ef7b7d

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 待删除 vCenter 的 uuid 1.8
deleteMode 删除模式 1.8

备注

n/a

Feature_link

asdfdas

API Title

fasfasf

API Detail

sdfdasfasdf

[Vm]org.zstack.header.vm.APISetVmQgaEnableMsg

描述

设置镜像为支持qemu-guest-agent的类型
使用此API,用户必须手动在vm内安装qemu-guest-agent,并设置为开机自启动
从此镜像创建出的云主机也支持qemu-guest-agent

API

org.zstack.header.vm.APISetVmQgaEnableMsg

举例(Example)

用户可以设置一个云主机为支持qemu-guest-agent的类型. 例如:

SetVmQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 云主机的uuid

备注

  • 使用条件
    使用此API,用户必须手动在vm内安装qemu-guest-agent,并设置为开机自启动

Feature_link

[VIP]org.zstack.network.service.vip.APIGetVipQosMsg

描述

获取对某VIP的网络带宽限制(get vip qos)

API

org.zstack.network.service.vip.APIGetVipQosMsg

举例(Example)

管理员可以使用GetVipQos来获取对某VIP的网络带宽限制. 例如:

GetVipQos vipUuid=f995b4e3593c45fabeabd92185d33f91 

返回结果:

{
    "inventory": {
           "vipUuid" : "f995b4e3593c45fabeabd92185d33f91"
           "inboundBandwidth" : "81920"
           "outboundBandwidth" : "81920"
     }
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
vipUuid

备注

Feature_link

https://github.com/zstackio/issues/issues/4283

[Tag]org.zstack.header.tag.APIEnableChangeVmPasswordMsg

描述

让普通用户可以给云主机或镜像打开/关闭修改密码的开关

API

org.zstack.header.tag.APIEnableChangeVmPasswordMsg(仅限于mevoco)

举例(Example)

由于CreateSystemTag只有管理员能用,因此添加一个API让普通用户也能打开和关闭修改密码的开关

EnableChangeVmPassword resourceUuid=bfc734468a994e489ef23de45954fab4 enable=true resourceType=ImageVO

返回结果:

{
    "inventory": {
        "createDate": "Nov 2, 2016 11:22:15 PM",
        "lastOpDate": "Nov 2, 2016 11:22:29 PM",
        "resourceUuid": "bfc734468a994e489ef23de45954fab4",
        "enableChangePassword": "true"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
resourceUuid 资源的uuid
resourceType 资源的类型(限制为VmInstanceVO or ImageVO,且必须匹配)
enable 打开还是关闭开关

返回值(returnValue)

名字 描述
enableChangePassword 操作完成后,该资源是否己经打上tag
resourceUuid 资源的uuid

备注

  • 备注1

Feature_link

[Vm]org.zstack.header.vm.APIGetVmQgaEnableMsg

描述

查询Vm是否包含qemu-guest-agent属性

API

org.zstack.header.vm.APIGetVmQgaEnableMsg

举例(Example)

用户可以查询vm是否包含qemu-guest-agent属性,例如

GetVmQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "uuid": "f995b4e3593c45fabeabd92185d33f91"
    "enable": true
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 云主机的uuid

备注

  • 使用限制
    该API只用于查询vm是否有qemu-guest-agent属性,无法确保vm真实安装了qemu-guest-agent,需要用户自行确保

Feature_link

[Vm]org.zstack.header.vm.APISetVmQgaDisableMsg

描述

取消主机对qemu-guest-agent的支持,则从此主机克隆出的云主机,或创建出的镜像也不支持qemu-guest-agent

API

org.zstack.header.vm.APISetVmQgaDisableMsg

举例(Example)

用户可以设置一个云主机为不支持qemu-guest-agent的类型. 例如:

SetVmQgaDisable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 云主机的uuid

备注

  • 备注
    取消主机对qemu-guest-agent的支持,则从此主机克隆出的云主机,或创建出的镜像也不支持qemu-guest-agent

Feature_link

[Progress]org.zstack.header.core.progress.APIGetTaskProgressMsg

描述

在zstack中有一类操作是重耗时操作,希望在这类操作的时候能够实时获取操作进度,并展现给用户

API

org.zstack.header.core.progress.APIGetTaskProgressMsg

举例(Example)

当正在migration的时候,通过API获得进度,若迁移未开始或者迁移己完成,返回报错:NO SUCH TASK RUNNING

GetTaskProgressMsg resourceUuid=f995b4e3593c45fabeabd92185d33f91 processType= LocalStorageMigrateVolume

返回结果:

{
   "success": true,
   "createDate": "Dec 15, 2016 1:19:09 PM",
   "lastOpDate": "Dec 15, 2016 1:19:09 PM",
   "processType": "LocalStorageMigrateVolume",
   "progress": "32",
   "resourceUuid": "f995b4e3593c45fabeabd92185d33f91"
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
processType 操作类型 1.9
resourceUuid 资源的uuid 1.9

返回值(returnValue)

名字 描述
progress 进度值
resourceUuid 资源uuid
processType 操作类型
createDate 任务创建时间
lastOpDate 任务最后汇报时间

备注

  • 备注1
    返回的progress为0-100间的整型str,不是百分比

  • 备注2
    目前支持的查询进度的操作有:AddImage,LocalStorageMigrateVolume,CreateRootVolumeTemplateFromRootVolume

  • 备注3
    AddImage,传入参数resourceUuid为imageUuid
    LocalStorageMigrateVolume,传入参数resourceUuid为rootVolumeUuid
    CreateRootVolumeTemplateFromRootVolume,传入参数resourceUuid为imageUuid

Feature_link

[GlobalConfig]Vyos用户'Vyos'默认密码

描述

为了增强作为云路由的vrouter安全性,我们通过GlobalConfig可以配置云路由默认密码。
vrouter镜像只支持用户: vrouter 登录,默认密码由全局设置控制:

类别 名称 默认值 起始支持版本
virtualRouter vrouter.password vrouter12# 1.8

举例(Example)

查询该配置:

admin >>>QueryGlobalConfig name~=vrouter
{
    "inventories": [
        {
            "category": "virtualRouter",
            "defaultValue": "vrouter12#",
            "description": "The password of user 'vrouter' for the vrouter virtual router",
            "name": "vrouter.password",
            "value": "vrouter12#"
        }
    ],
    "success": true
}

修改该配置:

admin >>>UpdateGlobalConfig name=vrouter.password category=virtualRouter value=password
{
    "inventory": {
        "category": "virtualRouter",
        "defaultValue": "vrouter12#",
        "description": "The password of user 'vrouter' for the vrouter virtual router",
        "name": "vrouter.password",
        "value": "password"
    },
    "success": true
}

备注

此选项设置云路由默认密码,并发实时修改云路由密码。故修改该配置后,对新建的云路由生效,已有云路由需要重启才会生效。

[LDAP]APICleanInvalidLdapBindingMsg

描述

清除当前Ldap Server配置下,无效的Ldap账户绑定。

API

org.zstack.ldap.APICleanInvalidLdapBindingMsg

举例(Example)

管理员可以使用CleanInvalidLdapBinding来清除当前Ldap Server配置下,所有无效的Ldap账户绑定。 例如:

CleanInvalidLdapBinding

返回结果:

{
    "inventory": {
        "accountUuid": "ee833daa4f9541e888d94bfade6a625f",
        "createDate": "Dec 22, 2016 1:11:12 PM",
        "expiredDate": "Dec 26, 2016 5:11:22 PM",
        "userUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
        "uuid": "ee833daa4f9541e888d94bfade6a625f"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本

备注

Feature_link

[Image]org.zstack.header.image.APISetImageQgaEnableMsg

描述

设置镜像为支持qemu-guest-agent的类型
使用此API,用户必须确保该镜像是包含qemu-guest-agent的,并且己设置为了开机自启动
从此镜像创建出的云主机也包含qemu-guest-agent属性

API

org.zstack.header.image.APISetImageQgaEnableMsg

举例(Example)

用户可以设置一个镜像为支持qemu-guest-agent的类型. 例如:

SetImageQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 镜像的uuid

备注

  • 使用条件
    使用此API,用户必须手动在vm内安装qemu-guest-agent,并设置为开机自启动

Feature_link

[VM]org.zstack.header.volume.APIGetVolumekQosMsg

描述

�查看云主机的磁盘限速

API

org.zstack.header.volume.APIGetVolumekQosMsg

举例(Example)

用户可以查看自己的云主机磁盘限速,主要是指带宽

GetVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d

返回结果:

{
    "success": true,
    "volumeBandwidth": 10240,
    "volumeUuid": "2266a5b92ad6432781fd089ce7e6d08d"
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 磁盘的uuid

备注

  • 限制
    返回bandwidth值-1为不限制

  • 备注2

Feature_link

[Image]org.zstack.header.image.APIGetImageQgaEnableMsg

描述

查询Image是否包含qemu-guest-agent属性

API

org.zstack.header.image.APIGetImageQgaEnableMsg

举例(Example)

用户可以查询image是否包含qemu-guest-agent属性,例如

GetImageQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "uuid": "f995b4e3593c45fabeabd92185d33f91"
    "enable": true
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 镜像的uuid

备注

  • 使用限制
    该API只用于查询image是否有qemu-guest-agent属性,无法确保image真实安装了qemu-guest-agent,需要用户自行确保

Feature_link

[VM]org.zstack.header.vm.APIGetNicQosMsg

描述

查看云主机的网卡限速

API

org.zstack.header.vm.APIGetNicQosMsg

举例(Example)

用户可以查看云主机的网卡限速,单位为Byte

GetNicQos  uuid=20d4521dcd0547f790bcfa4186c0e30e

返回结果:

{
    "success": true,
    "inboundBandwidth": 1024000,
    "outboundBandwidth": 1024000,
    "vmNicUuid": "20d4521dcd0547f790bcfa4186c0e30e",
    }
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 云主机的网卡uuid

备注

初始-1为不限制,但-1不可以作为值赋予网卡

Feature_link

[VM]org.zstack.header.vm.APIDeleteNicQosMsg

描述

取消云主机的网卡限速

API

org.zstack.header.vm.APIDeleteNicQosMsg

举例(Example)

用户可以取消云主机的网卡限速,包括入网速度和出网速度

DeleteNicQos uuid=20d4521dcd0547f790bcfa4186c0e30e direction=in

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 资源网卡的uuid
direction 流量方向,值为in或out

备注

  • 说明
    若云主机为running或paused状态,则会立即取消限速,否则会等重启后生效

Feature_link

[vCenter] org.zstack.vmware.APIAddVCenterMsg

描述

导入vCenter资源(AddVCenter)

API

org.zstack.vmware.APIAddVCenterMsg

举例(Example)

管理员可以使用AddVCenter来导入现有的 vCenter 资源. 例如:

AddVCenter name=myVCenter [email protected] password=xxxxxx domainName=172.20.1.150 https=true zoneUuid=5fc8044be2b2401691e7ac29ab51df73

返回结果:

{
    "inventory": {
        "createDate": "Nov 11, 2016 3:27:03 PM",
        "domainName": "172.20.1.153",
        "https": true,
        "lastOpDate": "Nov 11, 2016 3:27:03 PM",
        "name": "vc1",
        "state": "Enabled",
        "status": "Connected",
        "userName": "[email protected]",
        "uuid": "258893c49b204c9189efd40373ef7b7d",
        "zoneUuid": "5fc8044be2b2401691e7ac29ab51df73"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name vCenter 名字 1.8
resourceUuid 资源的uuid 1.8
description 描述信息 1.8
domainName vCenter 域名或者 IP 1.8
https 是否 https 连接 1.8
zoneUuid vCenter 资源目标 zone 的 uuid 1.8
username vCenter 登录用户名 1.8
password vCenter 登录用户密码 1.8

备注

如果添加 vCenter 时,系统检查到 vCenter 许可证即将过期 (一个小时内),会拒绝添加。

Feature_link

[Image]org.zstack.header.image.APISetImageQgaDisableMsg

描述

取消镜像对qemu-guest-agent的支持,则从此镜像创建出的云主机也不支持qemu-guest-agent

API

org.zstack.header.image.APISetImageQgaDisableMsg

举例(Example)

用户可以设置一个镜像为不支持qemu-guest-agent的类型. 例如:

SetImageQgaDisable uuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 镜像的uuid

备注

  • 备注
    从此镜像创建出的云主机也不支持qemu-guest-agent

Feature_link

暂停虚拟机API文档

描述

暂停虚拟机

API

org.zstack.kvm.APISPauseVmInstanceMsg

举例(Example)

用户可以使用SuspendVmInstance暂停一个处于运行状态的虚拟机. 例如:

SuspendVmInstance uuid=d911e5f5dc674370b273b4f511058fec

返回结果:
{
"inventory": {
"allVolumes": [
{
"actualSize": 1099563008,
"createDate": "Nov 5, 2016 12:29:31 PM",
"description": "Root volume for VM[uuid:d911e5f5dc674370b273b4f511058fec]",
"deviceId": 0,
"format": "qcow2",
"installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-07e91f0990fc401387d4263051a248f2/07e91f0990fc401387d4263051a248f2.qcow2",
"lastOpDate": "Nov 5, 2016 12:29:32 PM",
"name": "ROOT-for-lucky",
"primaryStorageUuid": "c74b252a9c62486dbe752878a4dad1f9",
"rootImageUuid": "78819898580d48808fcc1a5e2c36c210",
"size": 42949672960,
"state": "Enabled",
"status": "Ready",
"type": "Root",
"uuid": "07e91f0990fc401387d4263051a248f2",
"vmInstanceUuid": "d911e5f5dc674370b273b4f511058fec"
}
],
"allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy",
"clusterUuid": "312e0c28846c42c0b4b3674eae100632",
"cpuNum": 1,
"cpuSpeed": 1,
"createDate": "Nov 5, 2016 12:29:31 PM",
"defaultL3NetworkUuid": "921679f8011840429f40727cd8b9d606",
"description": "",
"hostUuid": "9390e5ad0e6c44b89727e7f383d6416c",
"hypervisorType": "KVM",
"imageUuid": "78819898580d48808fcc1a5e2c36c210",
"instanceOfferingUuid": "64a8b35974b34732b5a8b1665f173938",
"lastHostUuid": "9390e5ad0e6c44b89727e7f383d6416c",
"lastOpDate": "Nov 5, 2016 1:39:05 PM",
"memorySize": 1073741824,
"name": "lucky",
"platform": "Linux",
"rootVolumeUuid": "07e91f0990fc401387d4263051a248f2",
"state": "Suspended",
"type": "UserVm",
"uuid": "d911e5f5dc674370b273b4f511058fec",
"vmNics": [
{
"createDate": "Nov 5, 2016 12:29:31 PM",
"deviceId": 0,
"gateway": "172.20.0.1",
"ip": "172.20.68.28",
"l3NetworkUuid": "921679f8011840429f40727cd8b9d606",
"lastOpDate": "Nov 5, 2016 12:29:31 PM",
"mac": "fa:dc:ad:c7:93:00",
"netmask": "255.255.0.0",
"uuid": "64b8a43af86f4440a50054da219a80c6",
"vmInstanceUuid": "d911e5f5dc674370b273b4f511058fec"
}
],
"zoneUuid": "75230372b0aa4aa89bb3983120931344"
},
"success": true
}
返回结果中显示虚拟机 state:suspended

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 要暂停虚拟机的uuid 1.8

备注

暂停的虚拟机处于“”Suspended“状态

Feature_link

https://github.com/zxwing/premium/issues/1073

[0.6][Vm]org.zstack.header.vm.APICreateVmInstanceMsg

描述

创建云主机(CreateVmInstance)
用户可以用CreateVmInstance来创建一台云主机

API

org.zstack.header.vm.APICreateVmInstanceMsg

举例(Example)

管理员可以使用CreateVmInstance来创建一个云主机. 例如:

CreateVmInstance name=testvm imageUuid=c56c58d5a5954bcf89d574b29deac3be instanceOfferingUuid=fc676d3efa624afe9c0ba0e100ec7bb2 l3NetworkUuids=7c58161234074fe99d2094952fe63b6e

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name 云主机名称 0.6
imageUuid �创建云主机所用镜像uuid 0.6
instanceOfferingUuid 创建云主机所用规格uuid 0.6
l3NetworkUuids 创建云主机所用3层网络uuid列表 0.6
clusterUuid 集群uuid,如果非null,云主机将在所指定的集群上创建;hostUuid优先于本参数设置 0.6
dataDiskOfferingUuids 数据盘规格uuid 0.6
rootDiskOfferingUuid 数据盘规格uuid 0.6
description 资源的描述 0.6
hostUuid 如果非null,云主机将在所指定的物理机上创建 0.6
defaultL3NetworkUuid 如果l3NetworkUuids包含了多余一个的L3网络的UUID,这个参数指定哪个L3网络是默认的 0.6
resourceUuid 指定资源的uuid 0.6
strategy InstantStart or JustCreate 0.x
systemTags 0.x
type 保留的域,默认为UserVm 0.6
userTags
zoneUuid 如果非null, 云主机将在所指定的区域上创建; clusterUuid和hostUuid优先于这个参数的设置 0.6
primaryStorageUuidForRootVolume 创建云主机时可设置根云盘所使用的主存储 1.8

备注

  • rootDiskOfferingUuid
    如果云主机是从ISO镜像创建的, 用户必须指定一个rootDiskOfferingUuid,这样ZStack才能知道根云盘的磁盘大小; 如果云主机是从RootVolumeTemplate镜像创建的, 可以忽略这个域.

  • dataDiskOfferingUuids
    通过在dataDiskOfferingUuids指定云盘规格的UUID列表, 用户可以创建一个挂载了多个数据云盘的云主机. 如果某个数据云盘创建失败了,整个云主机的创建也会失败.

[Image] APICommitVolumeAsImageMsg is deleted

描述

根据 Issue https://github.com/zxwing/premium/issues/988 的讨论,我们在 1.9 中删除了
APICommitVolumeAsImageMsg,转而用 APICreateRootVolumeTemplateFromRootVolumeMsg 作为统一的接口。

在开源版 ZStack,APICreateRootVolumeTemplateFromRootVolumeMsg 保持不变。
在商业版 Mevoco,APICreateRootVolumeTemplateFromRootVolumeMsg 在BS是 ImageStore 的时候,会使用内部的 CommitVolumeAsImage 语义。

APICreateRootVolumeTemplateFromRootVolumeMsg 的接口保持不变。

API

org.zstack.header.image.APICreateRootVolumeTemplateFromRootVolumeMsg

[1.8][VM]org.zstack.header.storage.snapshot.APIReimageVmInstanceMsg

描述

如果虚拟机是使用镜像创建的(区别于使用ISO安装创建的方式),使用该API可以重置虚拟机到创建时的状态。要求该虚拟机处于Stopped状态。

API

org.zstack.header.storage.snapshot.APIReimageVmInstanceMsg

举例(Example)

管理员和普通账户可以使用该API来重置一个虚拟机实例. 例如:

APIReimageVmInstanceMsg vmInstanceUuid=f995b4e3593c45fabeabd92185d33f91

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
vmInstanceUuid 虚拟机实例的Uuid 1.8

备注

Feature_link

https://github.com/zxwing/premium/issues/898

[1.8][Vm]org.zstack.header.vm.APIChangeVmPasswordMsg

描述

修改云主机密码(ChangePassword)
不同虚拟机管理程序添加主机的命令不同.

API

org.zstack.header.vm.APIChangeVmPasswordMsg

举例(Example)

管理员可以使用ChangeVmPassword来添加一个KVM主机. 例如:

ChangeVmPassword uuid=8524072a4274403892bcc5b1972c2576 account=root password=password

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 云主机uuid 1.8
account 云主机登录名 1.8
password 云主机登录密码 1.8

备注

  • 更改密码生效前提条件
    云主机想要开启在线更改密码,所使用的imageUuid必须满足以下条件:
    升级到1.8以后的zstack,并重新往backupstorage中import image,1.8版本仅支持backupstorage类型为sftp,ceph以及imagestore,在此之前在backupstorage中的image无法开启在线更改密码功能,建议用户重新import想要开启密码修改功能的image
    添加镜像(AddImage)时,必须添加SystemTag,值为qemuga,即使用systemtag=qemuga

  • account限制
    只支持对己有的account进行密码修改,如果用户不存在,会报'user [YOUR ACCOUNT] not exist!' 的错误

  • password限制
    长度为1-32
    支持的字符集为:0-9 a-z A-Z `=[];’,./~!@#$%^&*()_+|{}:”<>?

  • 支持的版本
    image type
    -- qcow2, not support iso or other raw type
    host version:
    -- CentOS 7.x
    support Guest OS version:
    -- CentOS 7.x(i386/x86_64)
    -- CentOS 6.x(i386/x86_64)
    -- Ubuntu 16.x(x86_64)
    -- Ubuntu 15.x(x86_64)
    -- Ubuntu 14.x(x86_64)
    -- Ubuntu 13.x(x86_64)
    -- Ubuntu 12.x(x86_64)
    support BS type:
    -- imagebackupstorage
    -- sftpbackupstorage
    -- cephbackupstorage
    support PS type:
    -- Localstorage
    -- NFS
    -- Share Mount Point
    -- Ceph

[Scheduler]org.zstack.scheduler.APICreateSchedulerJobMsg

描述

创建任务(Create Scheduler job)

API

org.zstack.scheduler.APICreateSchedulerJobMsg

举例(Example)

够用可以使用CreateSchedulerJob来创建一个任务. 例如:

CreateSchedulerJob name=job description='this is a job' targetResourceUuid=vmUuid type=startVm

返回结果:

{
    "inventory": {
        "createDate": "Jun 20, 2017 10:31:52 AM",
        "description": "this is a job",
        "lastOpDate": "Jun 20, 2017 10:31:52 AM",
        "name": "job",
        "targetResourceUuid": "vmUuid",
        "triggersUuid": [],
        "uuid": "ce506484b3684359b39a8ebeba576621"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
name
targetResourceUuid 目标的uuid
description 0.6
type 进行的任务类型现在支持(startVm, stopVm, rebootVm, volumeSnapshot)
parameters 附加参数

备注

Feature_link

https://github.com/zstackio/functional-spec/issues/29

[IPsec]org.zstack.ipsec.APIDeleteIPsecConnectionMsg

描述

删除一个IPsec链接
IPsec链接相关介绍参考 #76

API

org.zstack.ipsec.APIDeleteIPsecConnectionMsg

举例(Example)

DeleteIPsecConnection uuid=01efdcb10bcf4a3a8ca0e3e3f0820881

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid IPsec 链接 UUID 1.8

备注

Feature_link

[Volume]org.zstack.header.volume.APISetVolumeQosMsg

描述

修改云主机的磁盘限速

API

org.zstack.header.volume.APISetVolumeQosMsg

举例(Example)

用户可以设置云主机的磁盘限速,并立即生效。该磁盘不包括根盘, 只限数据盘

SetVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d volumeBandwidth=10240

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 磁盘uuid
volumeBandwidth 磁盘带宽限制

备注

  • 限制
    磁盘带宽最小限制为1024Byte/s
  • 备注2
    若云主机为running或paused状态,则会立即取消限速,否则会等重启后生效

Feature_link

恢复虚拟机API文档

描述

恢复处于暂停状态的虚拟机

API

org.zstack.kvm.APIResumeVmInstanceMsg

举例(Example)

用户可以使用ResumeVmInstance恢复一个处于暂停状态的虚拟机. 例如:

ResumeVmInstance uuid=d911e5f5dc674370b273b4f511058fec

返回结果:

{
    "inventory": {
        "allVolumes": [
            {
                "actualSize": 1099563008,
                "createDate": "Nov 5, 2016 12:29:31 PM",
                "description": "Root volume for VM[uuid:d911e5f5dc674370b273b4f511058fec]",
                "deviceId": 0,
                "format": "qcow2",
                "installPath": "/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-07e91f0990fc401387d4263051a248f2/07e91f0990fc401387d4263051a248f2.qcow2",
                "lastOpDate": "Nov 5, 2016 12:29:32 PM",
                "name": "ROOT-for-lucky",
                "primaryStorageUuid": "c74b252a9c62486dbe752878a4dad1f9",
                "rootImageUuid": "78819898580d48808fcc1a5e2c36c210",
                "size": 42949672960,
                "state": "Enabled",
                "status": "Ready",
                "type": "Root",
                "uuid": "07e91f0990fc401387d4263051a248f2",
                "vmInstanceUuid": "d911e5f5dc674370b273b4f511058fec"
            }
        ],
        "allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy",
        "clusterUuid": "312e0c28846c42c0b4b3674eae100632",
        "cpuNum": 1,
        "cpuSpeed": 1,
        "createDate": "Nov 5, 2016 12:29:31 PM",
        "defaultL3NetworkUuid": "921679f8011840429f40727cd8b9d606",
        "description": "",
        "hostUuid": "9390e5ad0e6c44b89727e7f383d6416c",
        "hypervisorType": "KVM",
        "imageUuid": "78819898580d48808fcc1a5e2c36c210",
        "instanceOfferingUuid": "64a8b35974b34732b5a8b1665f173938",
        "lastHostUuid": "9390e5ad0e6c44b89727e7f383d6416c",
        "lastOpDate": "Nov 5, 2016 1:48:23 PM",
        "memorySize": 1073741824,
        "name": "lucky",
        "platform": "Linux",
        "rootVolumeUuid": "07e91f0990fc401387d4263051a248f2",
        "state": "Running",
        "type": "UserVm",
        "uuid": "d911e5f5dc674370b273b4f511058fec",
        "vmNics": [
            {
                "createDate": "Nov 5, 2016 12:29:31 PM",
                "deviceId": 0,
                "gateway": "172.20.0.1",
                "ip": "172.20.68.28",
                "l3NetworkUuid": "921679f8011840429f40727cd8b9d606",
                "lastOpDate": "Nov 5, 2016 12:29:31 PM",
                "mac": "fa:dc:ad:c7:93:00",
                "netmask": "255.255.0.0",
                "uuid": "64b8a43af86f4440a50054da219a80c6",
                "vmInstanceUuid": "d911e5f5dc674370b273b4f511058fec"
            }
        ],
        "zoneUuid": "75230372b0aa4aa89bb3983120931344"
    },
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 要恢复的虚拟机uuid 1.8

备注

目前支持恢复(resume)或者关闭(stop)处于暂停(suspended)状态的虚拟机

  • 备注2

Feature_link

https://github.com/zxwing/premium/issues/1073

[VM]org.zstack.header.vm.APISetNicQosMsg

描述

设置云主机的网卡限速

API

org.zstack.header.vm.APISetNicQosMsg

举例(Example)

用户可以设置云主机的网卡限速,包括入网速度和出网速度

SetNicQos uuid=20d4521dcd0547f790bcfa4186c0e30e outboundBandwidth=1024000 inboundBandwidth=1024000

返回结果:

{
    "success": true
}

参数(Parameters)

名字 描述 可选的参数 起始支持版本
uuid 资源网卡的uuid
outboundBandwidth 出流量限制
inboundBandwidth 入流量限制

备注

  • outboundBandwidth和inboundBandwidth的说明
    最小值均为1024,二者至少有一个要有值。如果传入过大的值,会报错,但mevoco不会进行大值校验

  • 备注2
    若云主机为running或paused状态,则会立即取消限速,否则会等重启后生效

Feature_link

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.