zstackio / doc-ch Goto Github PK
View Code? Open in Web Editor NEWZStack Chinese user manual
License: Apache License 2.0
ZStack Chinese user manual
License: Apache License 2.0
.. _backup storage:
.. contents:: 目录
:depth: 6
备份存储是保存用于创建云盘的: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:
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
resource properties
resource properties
resource properties
url <backup storage url>
capacity <backup storage capacity>
capacity <backup storage capacity>
state <backup storage state>
status <backup storage status>
resource properties
resource properties
示例
+++++++
::
{
"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是一个目录在文件系统中的绝对路径. 例如, /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备份存储是使用本地文件系统(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
::
{
"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"
}
不同的备份存储类型使用不同的添加命令.
添加SFTP备份存储(Add SFTP Backup Storage)
+++++++++++++++++++++++++++++++++++++++++++++++++++
管理员可以使用AddSftpBackupStorage来添加一个新的备份存储. 例如::
AddSftpBackupStorage name=sftp1 url=/storage/sftp1 hostname=192.168.0.220 username=root password=password
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
resource properties
create resource
resource properties
url <backup storage url>
管理员可以使用DeleteBackupStorage来删除备份存储. 例如::
DeleteBackupStorage uuid=1613b627cb2e4ffcb30e7e59935064be
.. 警告:: 删除备份存储, 会使备份存储从挂载的区域上卸载. 所有的备份存储上的镜像或云盘快照的拷贝都会被删除;
如果被删除的拷贝是镜像或云盘快照的唯一拷贝,相对应的镜像或快照也会被删除.
没有办法恢复一个已经删除了的备份存储.
参数(Parameters)
++++++++++++++++++++++
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
delete resource
管理员可以使用ChangeBackupStorageState来改变备份存储的可用状态. 例如::
ChangeBackupStorageState uuid=33a35f75885f45ab96ea2626ce9c05a6 stateEvent=enable
参数(Parameters)
++++++++++++++++++++++
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
stateEvent
状态触发事件
0.6
.. _attach backup storage to zone:
管理员可以使用AttachBackupStorageToZone将备份存储挂载到区域上. 例如::
AttachBackupStorageToZone backupStorageUuid=d086c30f33914c98a6078269bab7bc8f zoneUuid=d086c30f33914c98a6078269bab7bc8f
参数(Parameters)
++++++++++++++++++++++
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
.. _detach backup storage from zone:
管理员可以使用DetachBackupStorageFromZone从一个区域卸载备份存储. 例如::
DetachBackupStorageFromZone backupStorageUuid=d086c30f33914c98a6078269bab7bc8f zoneUuid=d086c30f33914c98a6078269bab7bc8f
参数(Parameters)
++++++++++++++++++++++
.. list-table::
:widths: 20 40 10 20 10
:header-rows: 1
管理员可以使用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
zone inventory <zone inventory>
image inventory <image inventory>
volume snapshot inventory <volume snapshot inventory>
管理员可以使用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>
.. _ping.interval:
.. list-table::
:widths: 20 30 20 30
:header-rows: 1
0
管理节点发送ping命令到备份存储的间隔时间, 单位是秒.
.. _ping.parallelismDegree:
.. list-table::
:widths: 20 30 20 30
:header-rows: 1
0
管理节点可以同时ping的最大并行数量.
管理员可以使用resourceType=BackupStorageVO在备份存储上创建用户标签. 例如::
CreateUserTag tag=lab1 resourceType=BackupStorageVO resourceUuid=2906471068802c501773d3ee55b7766e
使用LogInByLdap以使用绑定的Ldap账户的UID和密码登录。
org.zstack.ldap.APILogInByLdapMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uid | 绑定的Ldap账户的UID | ||
password |
查询Ldap账户绑定情况。可以使用任意字段查询。
org.zstack.ldap.APIQueryLdapBindingMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|
查询IPsec connection
org.zstack.ipsec.APIQueryIPSecConnectionMsg
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
}
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=
获取管理节点当前时间
org.zstack.header.managementnode.APIGetCurrentTimeMsg
管理员可以使用GetCurrentTime来获取系统当前时间. 例如:
admin >>>GetCurrentTime
返回结果:
{
"currentTime": {
"MillionSeconds": 1478510223514,
"Seconds": 1478510223
},
"success": true
}
其中,MillionSeconds是按照毫秒计算的时间戳,Seconds是按照秒计算的时间戳
添加Ldap 账户绑定, 添加成功后, 账户可以通过其绑定的Ldap UID和相应的密码登录.
org.zstack.ldap.APICreateLdapBindingMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | |||
ldapUid | LdapServer上的一个用户的UID | ||
ldapServerUuid | LdapServer的UUID | ||
accountuuid | 账户的UUID | ||
createDate | 创建时间 | ||
lastOpDate | 最后操作时间 |
删除对VIP的网络带宽限制(set vip qos)
org.zstack.network.service.vip.APIDeleteVipQosMsg
管理员可以使用DeleteVipQos来删除对VIP的网络带宽限制. 例如:
DeleteVipQos uuid=f995b4e3593c45fabeabd92185d33f91 direction = in
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | |||
Direction | 选择删除下行(in)/上行(out)带宽 | 是 |
http://confluence.zstack.io/pages/viewpage.action?pageId=3051551
添加LdapServer配置,或用于测试连接。
org.zstack.ldap.APIAddLdapServerMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
name | LdapServer连接的一个用于识别的名字 | ||
description | LdapServer连接的一个简短的描述 | ||
username | 连接该LdapServer的用户DN | ||
password | 密码 | ||
url | LdapServer的连接地址 | ||
base | 用于查询的LdapServer起始DN | ||
encryption | 加密方式:None或者TLS。需要注意url要与该参数对应 |
查询 vCenter 资源(QueryVCenter)
org.zstack.vmware.APIQueryVCenterMsg
管理员可以使用 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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
name= | 根据名字查询 | 是 | 1.8 |
uuid= | 根据 uuid 查询 | 是 | 1.8 |
查询 API 由 Mevoco 框架统一管理,并提供丰富的查询条件。以上 Parameters 只是举例。
获取创建的定时任务
org.zstack.scheduler.APIQuerySchedulerJobMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | |||
triggers | |||
targetResourceUuid |
ZStack的定时任务 (Scheduler ) 是在指定的时间点对云主机或云盘执行周期性的相关操作。
定时任务包含云主机的定时任务和数据盘的定时任务。云主机的定时任务分为以下四种:启动云主机、停止云主机、重启云主机、 创建根云盘快照。数据盘的定时任务目前包含创建数据盘快照。
定时任务支持两种配置方式: 简单定时任务和cron定时任务
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
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"
}
定时任务支持两种类型: 简单定时任务和cron定时任务
注意: cron定时任务和Linux的crontab配置格式上不同,ZStack的定时任务使用的格式需要与JAVA Quartz库中cron任务格式保持一致
简单定时任务是根据时间间隔来执行周期性的任务。
例如:创建启动云主机定时任务
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,四个时间点
警告: 请慎重设置间隔时间。过短的任务间隔时间会导致系统资源紧张,最终导致定时任务无法正常执行。
定时任务有以下两种可用状态
Enabled
在这种状态下,表明定时任务仍然在工作
Disabled
在这种状态下,表明定时任务已经被暂时停止
用户可以通过API ChangeSchedulerState 更改定时任务的状态
不同类型的定时任务创建的命令不同。下文描述的是创建云主机定时停止任务(CreateStartVmInstanceScheduler),创建云主机定时重启任务(CreateRebootVmInstanceScheduler),创建云硬盘定时快照任务(CreateVolumeSnapshotScheduler), 创建云主机定时启动任务(CreateStartVmInstanceScheduler)。
管理员可以使用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'
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
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时,定时任务将以当前系统时间作为启动时间
管理员可以通过CreateStartVmInstanceScheduler对资源创建cron类型的定时任务,例如:
>>> CreateStartVmInstanceScheduler type=cron cron='0 30 17 ? * * ' schedulerName=cron-scheduler schedulerDescription='Test cron scheduler' vmUuid=a633cc08d8574c58b4e599697befc42f
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
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格式保持一致
管理员可以使用ChangeSchedulerState命令来改变一个主机的可用状态. 例如::
ChangeSchedulerState uuid=1114cbbc86b243bc83771d6140134ea8 stateEvent=disable
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
uuid | 请参见 资源属性 | 0.6 | ||
stateEvent | 定时任务状态, 请参见 可用状态(state)章节 | disable, enable | 0.6 |
管理员可以使用QueryScheduler来查询主机. 例如::
根据目标资源的uuid来查询定时任务
>>>QueryScheduler targetResourceUuid=a633cc08d8574c58b4e599697befc42f
根据定时任务的类型来查询所有定时任务
>>>QueryScheduler schedulerJob=StopVmInstanceJob
根据scheduler的uuid来查询定时任务
>>>QueryScheduler uuid=a7e840685329474aa0293ac2af91df87
管理员可以通过UpdateScheduler更新定时任务的名称和描述
>>>UpdateScheduler uuid=a7e840685329474aa0293ac2af91df87 schedulerName='new name' schedulerDescription='test update name'
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
uuid | 请参见 资源属性 | 0.6 | ||
schedulerName | 定时任务名称,请参见 资源属性 | 是 | 1.6 | |
schedulerDescription | 定时任务描述,请参见 资源属性 | 是 | 1.6 |
管理员可以通过DeleteScheduler删除一个定时任务
>>>DeleteScheduler uuid=a7e840685329474aa0293ac2af91df87
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
uuid | 请参见 资源属性 | 0.6 |
取消云主机的磁盘限速
org.zstack.header.volume.APIDeleteVolumeQosMsg
用户可以取消云主机的磁盘限速,并立即生效。该磁盘包括根盘与限数据盘
DeleteVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 磁盘uuid |
创建数据云盘。在第一次挂载之前不会被实例化。
org.zstack.header.volume.APICreateDataVolumeMsg
可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
name | |||
uuid | |||
name | |||
description | |||
primaryStorageUuid | |||
vmInstanceUuid | |||
diskOfferingUuid | |||
rootImageUuid | |||
installPath | |||
type | |||
status | |||
size | |||
actualSize | |||
deviceId | |||
format | |||
state | |||
createDate | |||
lastOpDate | |||
isShareable |
在线扩展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
删除一个指定的Ldap账户绑定
org.zstack.ldap.APIDeleteLdapBindingMsg
管理员可以使用DeleteLdapBinding来删除一个Ldap账户绑定. 例如:
DeleteLdapBinding uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 要删除的Ldap账户绑定的UUID |
sdfas
用户可以使用CreatePortForwardingRule来创建一个端口转发规则, 并可以同时挂载或者不挂载到虚拟机网卡上. 例如::
CreatePortForwardingRule name=pf1 vipPortStart=22 vipUuid=433769b59a7c42199d762af01e08ec16 protocolType=TCP vmNicUuid=4b9c27321b794679a9ba8c18239bbb0d
一个未被挂载的规则可以稍后再挂载到虚拟机网卡上.
获取可以添加到指定负载均衡监听器的虚拟机网卡。分为两种情况:
负载均衡器还未在后端真正创建
是指负载均衡上还未添加任何网卡。org.zstack.network.service.lb.APIGetCandidateVmNicsForLoadBalancerMsg
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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
listenerUuid | 监听器UUID | 否 | 1.8 |
限制VIP的网络带宽(set vip qos)
org.zstack.network.service.vip.APISetVipQosMsg
管理员可以使用SetVipQos来限制Vip网络带宽. 例如:
SetVipQos vipUuid=f995b4e3593c45fabeabd92185d33f91 inboundBandwidth = 81920
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
vipUuid | |||
inBoundBandwidth | 下行带宽 | 是 | |
outBoundBandwidth | 上行带宽 | 是 |
更新LdapServer配置。
org.zstack.ldap.APIUpdateLdapServerMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
name | LdapServer连接的一个用于识别的名字 | ||
description | LdapServer连接的一个简短的描述 | ||
username | 连接该LdapServer的用户DN | ||
password | 密码 | ||
url | LdapServer的连接地址 | ||
base | 用于查询的LdapServer起始DN | ||
encryption | 加密方式:None或者TLS。需要注意url要与该参数对应 |
创建云主机(CreateVmInstance)
用户可以用CreateVmInstance来创建一台云主机
org.zstack.header.vm.APICreateVmInstanceMsg
管理员可以使用CreateVmInstance来创建一个云主机. 例如:
CreateVmInstance name=testvm imageUuid=c56c58d5a5954bcf89d574b29deac3be instanceOfferingUuid=fc676d3efa624afe9c0ba0e100ec7bb2 l3NetworkUuids=7c58161234074fe99d2094952fe63b6e
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
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大小而定
UI很多情况需要做一些参数的Validation,但在不查数据库的情况下很难做。但实际上在管理节点这端,API interceptors已经做的api validation了,所以应该后端应该提供一种方法让API只做validation。
调用API时,指定一个system tag ephemeral::validationOnly
,API只会做validation,不会真正执行。如果validation失败,返回success = false和error;否则返回success = true
admin >>>CreateZone name=xxx systemTags=ephemeral::validationOnly
{
"success": true
}
创建IPsec site-to-site VPN链接
site-to-site VPN用于连接两个私有网络,上图中192.168.1.0/24和92.168.3.0/24是两个私有网络,他们通过64.49.246.101和198.61.180.101两个公网IP连接。
org.zstack.ipsec.APICreateIPsecConnectionMsg
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
}
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 | 验证方式,支持psk 和certs 两种方式。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-256 ;NOTE:如果网络服务提供者为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模式,可选值为tunnel 和transport 。1.8只支持tunnel |
是,默认为tunnel |
1.8 |
transformProtocol | 协议类型,可选值为esp , ah , 1.8只支持esp |
是,默认为esp |
1.8 |
Configure a Site-to-site VPN using the Vyatta Network Appliance
AH and ESP protocols
从 Mevoco 删除导入的 vCenter资源(DeleteVCenter)
org.zstack.kvm.APIDeleteVCenterMsg
管理员可以使用DeleteVCenter 来删除导入到 Mevoco 的 vCenter 资源. 例如:
DeleteVCenter uuid=258893c49b204c9189efd40373ef7b7d
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 待删除 vCenter 的 uuid | 否 | 1.8 |
deleteMode | 删除模式 | 是 | 1.8 |
n/a
fasfasf
sdfdasfasdf
设置镜像为支持qemu-guest-agent的类型
使用此API,用户必须手动在vm内安装qemu-guest-agent,并设置为开机自启动
从此镜像创建出的云主机也支持qemu-guest-agent
org.zstack.header.vm.APISetVmQgaEnableMsg
用户可以设置一个云主机为支持qemu-guest-agent的类型. 例如:
SetVmQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 云主机的uuid | 是 |
获取对某VIP的网络带宽限制(get vip qos)
org.zstack.network.service.vip.APIGetVipQosMsg
管理员可以使用GetVipQos来获取对某VIP的网络带宽限制. 例如:
GetVipQos vipUuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"inventory": {
"vipUuid" : "f995b4e3593c45fabeabd92185d33f91"
"inboundBandwidth" : "81920"
"outboundBandwidth" : "81920"
}
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
vipUuid |
让普通用户可以给云主机或镜像打开/关闭修改密码的开关
org.zstack.header.tag.APIEnableChangeVmPasswordMsg
(仅限于mevoco)
由于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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
resourceUuid | 资源的uuid | ||
resourceType | 资源的类型(限制为VmInstanceVO or ImageVO,且必须匹配) | ||
enable | 打开还是关闭开关 |
名字 | 描述 |
---|---|
enableChangePassword | 操作完成后,该资源是否己经打上tag |
resourceUuid | 资源的uuid |
查询Vm是否包含qemu-guest-agent属性
org.zstack.header.vm.APIGetVmQgaEnableMsg
用户可以查询vm是否包含qemu-guest-agent属性,例如
GetVmQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"uuid": "f995b4e3593c45fabeabd92185d33f91"
"enable": true
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 云主机的uuid | 是 |
取消主机对qemu-guest-agent的支持,则从此主机克隆出的云主机,或创建出的镜像也不支持qemu-guest-agent
org.zstack.header.vm.APISetVmQgaDisableMsg
用户可以设置一个云主机为不支持qemu-guest-agent的类型. 例如:
SetVmQgaDisable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 云主机的uuid | 是 |
在zstack中有一类操作是重耗时操作,希望在这类操作的时候能够实时获取操作进度,并展现给用户
org.zstack.header.core.progress.APIGetTaskProgressMsg
当正在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"
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
processType | 操作类型 | 是 | 1.9 |
resourceUuid | 资源的uuid | 否 | 1.9 |
名字 | 描述 |
---|---|
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
为了增强作为云路由的vrouter安全性,我们通过GlobalConfig可以配置云路由默认密码。
vrouter镜像只支持用户: vrouter 登录,默认密码由全局设置控制:
类别 | 名称 | 默认值 | 起始支持版本 |
---|---|---|---|
virtualRouter | vrouter.password | vrouter12# | 1.8 |
查询该配置:
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 Server配置下,无效的Ldap账户绑定。
org.zstack.ldap.APICleanInvalidLdapBindingMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|
设置镜像为支持qemu-guest-agent的类型
使用此API,用户必须确保该镜像是包含qemu-guest-agent的,并且己设置为了开机自启动
从此镜像创建出的云主机也包含qemu-guest-agent属性
org.zstack.header.image.APISetImageQgaEnableMsg
用户可以设置一个镜像为支持qemu-guest-agent的类型. 例如:
SetImageQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 镜像的uuid |
�查看云主机的磁盘限速
org.zstack.header.volume.APIGetVolumekQosMsg
用户可以查看自己的云主机磁盘限速,主要是指带宽
GetVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d
返回结果:
{
"success": true,
"volumeBandwidth": 10240,
"volumeUuid": "2266a5b92ad6432781fd089ce7e6d08d"
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 磁盘的uuid |
限制
返回bandwidth值-1为不限制
备注2
查询Image是否包含qemu-guest-agent属性
org.zstack.header.image.APIGetImageQgaEnableMsg
用户可以查询image是否包含qemu-guest-agent属性,例如
GetImageQgaEnable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"uuid": "f995b4e3593c45fabeabd92185d33f91"
"enable": true
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 镜像的uuid | 是 |
查看云主机的网卡限速
org.zstack.header.vm.APIGetNicQosMsg
用户可以查看云主机的网卡限速,单位为Byte
GetNicQos uuid=20d4521dcd0547f790bcfa4186c0e30e
返回结果:
{
"success": true,
"inboundBandwidth": 1024000,
"outboundBandwidth": 1024000,
"vmNicUuid": "20d4521dcd0547f790bcfa4186c0e30e",
}
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 云主机的网卡uuid |
初始-1为不限制,但-1不可以作为值赋予网卡
取消云主机的网卡限速
org.zstack.header.vm.APIDeleteNicQosMsg
用户可以取消云主机的网卡限速,包括入网速度和出网速度
DeleteNicQos uuid=20d4521dcd0547f790bcfa4186c0e30e direction=in
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 资源网卡的uuid | ||
direction | 流量方向,值为in或out |
导入vCenter资源(AddVCenter)
org.zstack.vmware.APIAddVCenterMsg
管理员可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
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 许可证即将过期 (一个小时内),会拒绝添加。
test3
取消镜像对qemu-guest-agent的支持,则从此镜像创建出的云主机也不支持qemu-guest-agent
org.zstack.header.image.APISetImageQgaDisableMsg
用户可以设置一个镜像为不支持qemu-guest-agent的类型. 例如:
SetImageQgaDisable uuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 镜像的uuid |
暂停虚拟机
org.zstack.kvm.APISPauseVmInstanceMsg
用户可以使用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
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 要暂停虚拟机的uuid | 1.8 |
暂停的虚拟机处于“”Suspended“状态
创建云主机(CreateVmInstance)
用户可以用CreateVmInstance来创建一台云主机
org.zstack.header.vm.APICreateVmInstanceMsg
管理员可以使用CreateVmInstance来创建一个云主机. 例如:
CreateVmInstance name=testvm imageUuid=c56c58d5a5954bcf89d574b29deac3be instanceOfferingUuid=fc676d3efa624afe9c0ba0e100ec7bb2 l3NetworkUuids=7c58161234074fe99d2094952fe63b6e
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
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列表, 用户可以创建一个挂载了多个数据云盘的云主机. 如果某个数据云盘创建失败了,整个云主机的创建也会失败.
根据 Issue https://github.com/zxwing/premium/issues/988 的讨论,我们在 1.9 中删除了
APICommitVolumeAsImageMsg
,转而用 APICreateRootVolumeTemplateFromRootVolumeMsg
作为统一的接口。
在开源版 ZStack,APICreateRootVolumeTemplateFromRootVolumeMsg
保持不变。
在商业版 Mevoco,APICreateRootVolumeTemplateFromRootVolumeMsg
在BS是 ImageStore 的时候,会使用内部的 CommitVolumeAsImage
语义。
APICreateRootVolumeTemplateFromRootVolumeMsg
的接口保持不变。
org.zstack.header.image.APICreateRootVolumeTemplateFromRootVolumeMsg
如果虚拟机是使用镜像创建的(区别于使用ISO安装创建的方式),使用该API可以重置虚拟机到创建时的状态。要求该虚拟机处于Stopped状态。
org.zstack.header.storage.snapshot.APIReimageVmInstanceMsg
管理员和普通账户可以使用该API来重置一个虚拟机实例. 例如:
APIReimageVmInstanceMsg vmInstanceUuid=f995b4e3593c45fabeabd92185d33f91
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
vmInstanceUuid | 虚拟机实例的Uuid | 1.8 |
修改云主机密码(ChangePassword)
不同虚拟机管理程序添加主机的命令不同.
org.zstack.header.vm.APIChangeVmPasswordMsg
管理员可以使用ChangeVmPassword来添加一个KVM主机. 例如:
ChangeVmPassword uuid=8524072a4274403892bcc5b1972c2576 account=root password=password
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
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
创建任务(Create Scheduler job)
org.zstack.scheduler.APICreateSchedulerJobMsg
够用可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
name | |||
targetResourceUuid | 目标的uuid | ||
description | 是 | 0.6 | |
type | 进行的任务类型现在支持(startVm, stopVm, rebootVm, volumeSnapshot) | ||
parameters | 附加参数 | 是 |
删除一个IPsec链接
IPsec链接相关介绍参考 #76
org.zstack.ipsec.APIDeleteIPsecConnectionMsg
DeleteIPsecConnection uuid=01efdcb10bcf4a3a8ca0e3e3f0820881
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | IPsec 链接 UUID | 否 | 1.8 |
修改云主机的磁盘限速
org.zstack.header.volume.APISetVolumeQosMsg
用户可以设置云主机的磁盘限速,并立即生效。该磁盘不包括根盘, 只限数据盘
SetVolumeQos uuid=2266a5b92ad6432781fd089ce7e6d08d volumeBandwidth=10240
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 磁盘uuid | ||
volumeBandwidth | 磁盘带宽限制 |
恢复处于暂停状态的虚拟机
org.zstack.kvm.APIResumeVmInstanceMsg
用户可以使用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
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 要恢复的虚拟机uuid | 1.8 |
目前支持恢复(resume)或者关闭(stop)处于暂停(suspended)状态的虚拟机
设置云主机的网卡限速
org.zstack.header.vm.APISetNicQosMsg
用户可以设置云主机的网卡限速,包括入网速度和出网速度
SetNicQos uuid=20d4521dcd0547f790bcfa4186c0e30e outboundBandwidth=1024000 inboundBandwidth=1024000
返回结果:
{
"success": true
}
名字 | 描述 | 可选的参数 | 起始支持版本 |
---|---|---|---|
uuid | 资源网卡的uuid | ||
outboundBandwidth | 出流量限制 | 是 | |
inboundBandwidth | 入流量限制 | 是 |
outboundBandwidth和inboundBandwidth的说明
最小值均为1024,二者至少有一个要有值。如果传入过大的值,会报错,但mevoco不会进行大值校验
备注2
若云主机为running或paused状态,则会立即取消限速,否则会等重启后生效
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.