版本 3 REST API 指南


Red Hat Virtualization 4.1

使用 Red Hat Virtualization 版本 3 REST 应用程序编程接口

摘要

Red Hat Virtualization Manager 的版本 4 支持表述性状态转移 API 的版本 3 和 4。本指南中的信息和示例适用于 REST API 版本 3。

第 1 章 简介

Red Hat Virtualization Manager 提供了一个 Representational State Transfer (REST) API。API 为软件开发人员和系统管理员提供在标准 Web 界面之外对 Red Hat Virtualization 环境进行控制。REST API 适用于旨在将 Red Hat Virtualization 环境的功能与通过标准 Hypertext 传输协议(HTTP)访问 API 的自定义脚本或外部应用程序集成的开发人员和管理员。
REST API 的优点是:
  • 广泛的客户端支持 - 任何支持 HTTP 协议的编程语言、框架或系统都可以使用 API;
  • 自我描述性 - 客户端应用程序需要对虚拟化基础架构的了解最少,因为运行时发现许多详细信息;
  • 基于资源的模型 - 基于资源的 REST 模型提供了管理虚拟化平台的自然方法。
这为开发人员和管理员提供以下功能:
  • 与企业 IT 系统集成.
  • 与第三方虚拟化软件集成.
  • 执行自动化维护或错误检查任务。
  • 使用脚本在 Red Hat Virtualization 环境中实现重复性任务的自动化。
本文档充当 Red Hat Virtualization Manager REST API 的参考。它旨在为开发人员和管理员提供说明和示例,以帮助通过 REST API 直接或使用提供的 Python 库利用其 Red Hat Virtualization 环境的功能。

1.1. Representational State Transfer

表述性状态转移(REST) 是一种设计架构,专注于特定服务的资源及其表示法。资源表示是信息的一个关键抽象,对应于服务器上的特定受管元素。客户端将请求发送到位于统一资源标识符(URI)的服务器元素,并使用标准 HTTP 方法(如 GETPOSTPUTDELETE )执行操作。这提供了客户端和服务器之间的无状态通信,每个请求都独立于任何其他请求,并且包含完成该请求所需的所有信息。

1.2. Red Hat Virtualization REST API 先决条件

Red Hat Virtualization REST API 先决条件

  • Red Hat Virtualization Manager 的联网安装,其中包括 REST API。
  • 用于从 REST API 发起和接收 HTTP 请求的客户端或编程库。例如:
    • Python 软件开发套件(SDK)
    • Java 软件开发套件(SDK)
    • curl 命令行工具
    • select,用于 RESTful Web 服务的 debugger
  • 了解 Hypertext 传输协议(HTTP),这是用于 REST API 交互的协议。Internet 工程任务 Force 提供了一个 Request for Comments (RFC)解释了 Hypertext Transfer Protocol :http://www.ietf.org/rfc/rfc2616.txt。
  • 了解可扩展标记语言(XML)或 JavaScript 对象表示法(JSON),API 用来构建资源表示法。W3C 在 http://www.w3.org/TR/xml/ 提供了完整的 XML 规格。ECMA International 在 http://www.ecma-international.org 上提供 JSON 的免费发布。

第 2 章 身份验证和安全性

2.1. TLS/SSL 认证

Red Hat Virtualization Manager API 需要 Hypertext Transfer Protocol Secure (HTTPS) [1] 用于与客户端软件进行安全交互,如管理器的 SDK 和 CLI 组件。这包括从 Red Hat Virtualization Manager 获取证书并将其导入到客户端的证书存储中的过程。
重要
使用安全网络连接从 Red Hat Virtualization Manager 获取您的证书。

过程 2.1. 获取证书

您可以从 Red Hat Virtualization Manager 获取证书,并使用以下三种方法之一将其传送到客户端机器:
  1. 方法 1 - 使用命令行工具从管理器下载证书。命令行工具示例包括 cURLWget,这两个工具均在多个平台上可用。
    1. 如果使用 cURL
      $ curl -o rhvm.cer http://[manager-fqdn]/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
    2. 如果使用 Wget
      $ wget -O rhvm.cer http://[manager-fqdn]/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
  2. 方法 2 - 使用 Web 浏览器导航到位于以下证书:
    http://[manager-fqdn]/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
    根据所选的浏览器,证书下载或导入到浏览器的密钥存储。
    1. 如果浏览器下载证书: 将文件保存为 rhvm.cer
      如果浏览器导入证书: 将其从浏览器的认证选项导出,并将它保存为 rhvm.cer
  3. 方法 3 - 登录到 Manager,从信任存储中导出证书并将其复制到您的客户端机器中。
    1. root 用户身份登录 Manager。
    2. 使用 Java keytool 管理工具从信任存储中导出证书:
      $ keytool -exportcert -keystore /etc/pki/ovirt-engine/.truststore -alias cacert -storepass mypass -file rhvm.cer
      这会创建一个名为 rhvm.cer 的证书文件。
    3. 使用 scp 命令将证书复制到客户端机器中:
      $ scp rhvm.cer [username]@[client-machine]:[directory]
每个方法都会在客户端计算机上生成名为 rhvm.cer 的证书文件。API 用户将此文件导入到客户端的证书存储中。

过程 2.2. 将证书导入到客户端

  • 将证书导入到客户端依赖于客户端本身存储和解释证书的方式。本指南包含导入证书的一些示例。有关导入证书的更多信息,对于不使用网络安全服务(NSS)或 Java KeyStore (JKS)的客户端,请参阅您的客户端文档。

2.2. HTTP 身份验证

具有 Red Hat Virtualization 帐户的任何用户可以访问 REST API。API 用户通过对 API 的所有请求提交强制的 Red Hat Virtualization Manager 用户名和密码。每个请求都使用 HTTP 基本身份验证 [2] 对这些凭证进行编码。如果请求不包含适当的 Authorization 标头,API 会发送 所需的 401 Authorization

例 2.1. 在没有适当的凭证的情况下访问 REST API

HEAD [base] HTTP/1.1
Host: [host]

HTTP/1.1 401 Authorization Required
请求通过指定域的 Authorization 标头发出。API 用户使用 username@domain:password 约定对提供的凭证中的相应 Red Hat Virtualization Manager 域和用户进行编码。
下表显示了 base64 中编码凭据的流程。
表 2.1. API 访问的编码凭证
用户名 rhevmadmin
domain domain.example.com
密码 123456
取消编码的凭证 rhevmadmin@domain.example.com:123456
base64 编码凭证 cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2
API 用户提供 base64 编码凭证,如下所示:

例 2.2. 使用适当的凭证访问 REST API

HEAD [base] HTTP/1.1
Host: [host]
Authorization: Basic cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2

HTTP/1.1 200 OK
...
重要
基本身份验证涉及潜在的敏感信息,如密码,以纯文本形式发送。REST API 需要 Hypertext 传输协议安全(HTTPS)进行纯文本请求的传输级别加密。
重要
有些 base64 库将结果分解成多行,并使用换行符终止每行。这会破坏标头,并导致有故障的请求。Authorization 标头需要在标头中的一行中编码的凭据。

2.3. 身份验证会话

API 还提供身份验证会话支持的功能。API 用户发送带有身份验证详细信息的初始请求,然后使用会话 Cookie 发送所有后续请求以进行身份验证。以下步骤演示了如何使用经过身份验证的会话。

过程 2.3. 请求经过身份验证的会话

  1. 使用 AuthorizationPrefer: persistent-auth发送请求
    HEAD [base] HTTP/1.1
    Host: [host]
    Authorization: Basic cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2
    Prefer: persistent-auth
    
    HTTP/1.1 200 OK
    ...
    
    这会返回带有以下标头的响应:
    Set-Cookie: JSESSIONID=5dQja5ubr4yvI2MM2z+LZxrK; Path=/ovirt-engine/api; Secure
    
    注意 JSESSIONID= 值。在本例中,值为 JSESSIONID=5dQja5ubr4yvI2MM2z+LZxrK
  2. 使用 Prefer: persistent-authcookie 标头发送所有后续请求,值为 JSESSIONID=。使用经过身份验证的会话时,不再需要 授权
    HEAD [base] HTTP/1.1
    Host: [host]
    Prefer: persistent-auth
    cookie: JSESSIONID=5dQja5ubr4yvI2MM2z+LZxrK
    
    HTTP/1.1 200 OK
    ...
    
  3. 当不再需要会话时,如果没有 Prefer: persistent-auth 标头,向其执行请求。
    HEAD [base] HTTP/1.1
    Host: [host]
    Authorization: Basic cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2
    
    HTTP/1.1 200 OK
    ...
    


[1] RFC 2818 HTTP Over TLS 中描述了 HTTPS。

第 3 章 REST API 快速入门示例

本章介绍了一个示例,它演示了 REST API 能够设置基本的 Red Hat Virtualization 环境并创建虚拟机。
除了标准先决条件外,此示例还需要以下内容:
  • A networked and configured Red Hat Virtualization Host;
  • 包含要安装的所需虚拟机操作系统的 ISO 文件。本章使用 Red Hat Enterprise Linux Server 6 进行我们的安装 ISO 示例;以及
  • Red Hat Virtualization 的 engine-iso-uploader 工具上传您选择的操作系统 ISO 文件。
本例使用 cURL 来通过客户端应用程序演示 REST 请求。请注意,任何支持 HTTP 请求的应用程序都可以替换 cURL
重要的
为简单起见,本例中的 HTTP 请求标头省略 Host:Authorization: 字段。但是,这些字段是必须的,需要特定于您的 Red Hat Virtualization Manager 安装的数据。
重要的
所有 cURL 示例包括身份验证详细信息的占位符(USER:PASS)和证书位置(CERT)。确保通过 cURL 执行的所有请求均满足认证和身份验证要求。
备注
Red Hat Virtualization Manager 为每个资源的 id 属性生成全局唯一标识符(GUID)。本例中的标识符代码可能与 Red Hat Virtualization 环境中的标识符代码不同。

3.1. 示例:访问 API 条目点

以下请求检索 API 版本 3 的主入口点的表示。

例 3.1. 访问 API v3 入口点

Request (带有标头):

GET /ovirt-engine/api HTTP/1.1
Version: 3
Accept: application/xml

请求(不带标头):

GET /ovirt-engine/api/v3 HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] https://[RHEVM Host]:443/ovirt-engine/api

结果:

HTTP/1.1 200 OK
Content-Type: application/xml

<api>
    <link rel="capabilities" href="/ovirt-engine/api/capabilities"/>
    <link rel="clusters" href="/ovirt-engine/api/clusters"/>
    <link rel="clusters/search" href="/ovirt-engine/api/clusters?search={query}"/>
    <link rel="datacenters" href="/ovirt-engine/api/datacenters"/>
    <link rel="datacenters/search" href="/ovirt-engine/api/datacenters?search={query}"/>
    <link rel="events" href="/ovirt-engine/api/events"/>
    <link rel="events/search" href="/ovirt-engine/api/events?search={query}"/>
    <link rel="hosts" href="/ovirt-engine/api/hosts"/>
    <link rel="hosts/search" href="/ovirt-engine/api/hosts?search={query}"/>
    <link rel="networks" href="/ovirt-engine/api/networks"/>
    <link rel="roles" href="/ovirt-engine/api/roles"/>
    <link rel="storagedomains" href="/ovirt-engine/api/storagedomains"/>
    <link rel="storagedomains/search" href="/ovirt-engine/api/storagedomains?search={query}"/>
    <link rel="tags" href="/ovirt-engine/api/tags"/>
    <link rel="templates" href="/ovirt-engine/api/templates"/>
    <link rel="templates/search" href="/ovirt-engine/api/templates?search={query}"/>
    <link rel="users" href="/ovirt-engine/api/users"/>
    <link rel="groups" href="/ovirt-engine/api/groups"/>
    <link rel="domains" href="/ovirt-engine/api/domains"/>
    <link rel="vmpools" href="/ovirt-engine/api/vmpools"/>
    <link rel="vmpools/search" href="/ovirt-engine/api/vmpools?search={query}"/>
    <link rel="vms" href="/ovirt-engine/api/vms"/>
    <link rel="vms/search" href="/ovirt-engine/api/vms?search={query}"/>
    <special_objects>
        <link rel="templates/blank"
          href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"/>
        <link rel="tags/root"
          href="/ovirt-engine/api/tags/00000000-0000-0000-0000-000000000000"/>
    </special_objects>
    <product_info>
        <name>Red Hat Virtualization</name>
        <vendor>Red Hat</vendor>
        <version revision="0" build="0" minor="0" major="4"/>
    </product_info>
    <summary>
        <vms>
            <total>5</total>
            <active>0</active>
        </vms>
        <hosts>
            <total>1</total>
            <active>1</active>
        </hosts>
        <users>
            <total>1</total>
            <active>1</active>
        </users>
        <storage_domains>
            <total>2</total>
            <active>2</active>
        </storage_domains>
    </summary>
</ovirt-engine/api>

重要
如果没有使用标头和 URL 前缀,服务器会自动选择版本。默认为版本 4。您可以使用 ENGINE_API_DEFAULT_VERSION 参数更改默认版本:
# echo "ENGINE_API_DEFAULT_VERSION=3" > \
  /etc/ovirt-engine/engine.conf.d/99-set-default-version.conf
# systemctl restart ovirt-engine
更改此参数会影响未明确指定版本的管理器的所有用户。
该入口点为用户提供了到虚拟化环境中的集合的链接。每个集合链接的 rel= 属性为每个链接提供一个参考点。本示例中的下一步将检查 datacenter 集合,该集合可通过 rel="datacenter" 链接获得。
入口点还包含其他数据,如 product_infospecial_objectssummary。该数据在本示例之外的章节中阐述。

3.2. 示例:列出数据中心集合

Red Hat Virtualization Manager 在安装时会创建一个 Default 数据中心。这个示例使用 Default 数据中心作为我们虚拟环境的基础。
以下请求检索数据中心集合的表示:

例 3.2. 列出数据中心集合

request:

GET /ovirt-engine/api/datacenters HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/datacenters

结果:

HTTP/1.1 200 OK
Content-Type: application/xml

<data_centers>
    <data_center href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab" id="00000002-0002-0002-0002-0000000003ab">
        <name>Default</name>
        <description>The default Data Center</description>
        <link rel="storagedomains"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/storagedomains"
        <link rel="clusters"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/clusters" 
        <link rel="networks"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/networks" 
        <link rel="permissions"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/permissions" 
        <link rel="quotas"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/quotas" 
        <link rel="iscsibonds"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/iscsibonds" 
        <link rel="qoss"/>
          href="/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000003ab/qoss" 
        <local>false</local>
        <storage_format>v3</storage_format>
        <version major="4" minor="0"/>
        <supported_versions>
            <version major="4" minor="0"/>
        </supported_versions>
        <status>
            <state>up</state>
        </status>
    </data_center>
</data_centers>

请注意 Default 数据中心的 id 代码。此代码标识了此数据中心与虚拟环境的其他资源相关。
数据中心还包含指向 storagedomains 子集合的链接。数据中心使用此子集合从 storagedomains 主集合中附加存储域,本例将在以后介绍。

3.3. 示例:列出主机集群集合

Red Hat Virtualization Manager 在安装时会创建一个 Default 主机集群。这个示例使用 Default 集群对 Red Hat Virtualization 环境中的资源进行分组。
以下请求检索集群集合的表示:

例 3.3. 列出主机集群集合

request:

GET /ovirt-engine/api/clusters HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/clusters

结果:

HTTP/1.1 200 OK
Content-Type: application/xml

<clusters>
    <cluster id="99408929-82cf-4dc7-a532-9d998063fa95"
      href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95">
        <name>Default</name>
        <description>The default server cluster</description>
        <link rel="networks"
          href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks"/>
        <link rel="permissions"
          href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/permissions"/>
        <cpu id="Intel Penryn Family"/>
        <data_center id="01a45ff0-915a-11e0-8b87-5254004ac988"
          href="/ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988"/>
        <memory_policy>
            <overcommit percent="100"/>
            <transparent_hugepages>
                <enabled>false</enabled>
            </transparent_hugepages>
        </memory_policy>
        <scheduling_policy/>
        <version minor="0" major="4"/>
        <error_handling>
            <on_error>migrate</on_error>
        </error_handling>
    </cluster>
</clusters>

记录下您的 Default 主机集群的 id 代码。此代码标识此主机集群与虚拟环境的其他资源相关。
Default 集群使用 data_center 元素的 idhref 属性通过关系与 Default 数据中心关联。
networks 子集合包含此集群的关联网络资源列表。下一小节将更加详细地 检查网络 集合。

3.4. 示例:列出逻辑网络集合

Red Hat Virtualization Manager 在安装时会创建一个默认的 ovirtmgmt 网络。此网络充当 Red Hat Virtualization Manager 的管理网络来访问主机。
此网络与我们的 Default 集群关联,是 Default 数据中心的成员。这个示例使用 ovirtmgmt 网络来连接我们的虚拟机。
以下请求检索逻辑网络集合的表示:

例 3.4. 列出逻辑网络集合

request:

GET /ovirt-engine/api/networks HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/networks

结果:

HTTP/1.1 200 OK
Content-Type: application/xml

<networks>
    <network id="00000000-0000-0000-0000-000000000009"
      href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009">
        <name>ovirtmgmt</name>
        <description>Management Network</description>
        <data_center id="01a45ff0-915a-11e0-8b87-5254004ac988"
          href="/ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988"/>
        <stp>false</stp>
        <status>
            <state>operational</state>
        </status>
        <display>false</display>
    </network>
</networks>

ovirtmgmt 网络使用数据中心的 id 代码通过关系附加到 Default 数据中心。
ovirtmgmt 网络还通过集群网络子集合中的关系附加到 Default 集群。

3.5. 示例:列出主机集合

这个示例使用 Red Hat Virtualization Host。Red Hat Virtualization Manager 会自动注册任何配置的 Red Hat Virtualization 主机。这个示例检索主机集合的表示,并显示使用虚拟化环境注册的名为 hypervisor 的 Red Hat Virtualization 主机。

例 3.5. 列出主机集合

request:

GET /ovirt-engine/api/hosts HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/hosts

结果:

HTTP/1.1 200 OK
Accept: application/xml

<hosts>
    <host id="0656f432-923a-11e0-ad20-5254004ac988"
      href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988">
        <name>hypervisor</name>
        <actions>
            <link rel="install"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/install"/>
            <link rel="activate"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/activate"/>
            <link rel="fence"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/fence"/>
            <link rel="deactivate"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/deactivate"/>
            <link rel="approve"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/approve"/>
            <link rel="iscsilogin"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/iscsilogin"/>
            <link rel="iscsidiscover"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/iscsidiscover"/>
            <link rel="commitnetconfig"
              href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/
              commitnetconfig"/>
        </actions>
        <link rel="storage"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/storage"/>
        <link rel="nics"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/nics"/>
        <link rel="tags"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/tags"/>
        <link rel="permissions"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/permissions"/>
        <link rel="statistics"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988/statistics"/>
        <address>10.64.14.110</address>
        <status>
            <state>non_operational</state>
        </status>
        <cluster id="99408929-82cf-4dc7-a532-9d998063fa95"
          href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
        <port>54321</port>
        <storage_manager>true</storage_manager>
        <power_management>
            <enabled>false</enabled>
            <options/>
        </power_management>
        <ksm>
            <enabled>false</enabled>
        </ksm>
        <transparent_hugepages>
            <enabled>true</enabled>
        </transparent_hugepages>
        <iscsi>
            <initiator>iqn.1994-05.com.example:644949fe81ce</initiator>
        </iscsi>
        <cpu>
            <topology cores="2"/>
            <name>Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz</name>
            <speed>2993</speed>
        </cpu>
        <summary>
            <active>0</active>
            <migrating>0</migrating>
            <total>0</total>
        </summary>
    </host>
</hosts>

记录您的 Default 主机的 id 代码。此代码标识此主机与虚拟环境的其他资源相关。
此主机是 Default 集群的成员,访问 nics 子集合显示此主机与 ovirtmgmt 网络的连接。

3.6. 示例:列出 CPU 配置文件

以下请求检索 CPU 配置集的表示:

例 3.6. 列出 CPU 配置集

request:

GET /ovirt-engine/api/cpuprofiles HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] --cacert [CERT] https://[RHEVM Host]:443/ovirt-engine/api/cpuprofiles

结果:

HTTP/1.1 200 OK
Content-Type: application/xml

<cpu_profiles>
    <cpu_profile href="0000001a-001a-001a-001a-00000000035e" id="0000001a-001a-001a-001a-00000000035e">
        <name>Default</name>
        <link href="/ovirt-engine/api/cpuprofiles/0000001a-001a-001a-001a-00000000035e/permissions" rel="permissions"/>
        <cluster href= "/ovirt-engine/api/clusters/00000001-0001-0001-0001-00000000021b" id="00000001-0001-0001-0001-00000000021b"/>
    </cpu_profile>
    <cpu_profile href="fc4b9188-f87f-44f9-b9c5-c7665e10e0a2" id="fc4b9188-f87f-44f9-b9c5-c7665e10e0a2">
        <name>Premium</name>
        <description>Full service available</description>
        <link href="/ovirt-engine/api/cpuprofiles/fc4b9188-f87f-44f9-b9c5-c7665e10e0a2/permissions" rel="permissions"/>
        <qos href= "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-0000000000f7/qoss/5afe49e3-aac4-4b7b-bb83-11b9aef285e1" id="5afe49e3-aac4-4b7b-bb83-11b9aef285e1"/>
        <cluster href= "/ovirt-engine/api/clusters/00000001-0001-0001-0001-00000000021b" id="00000001-0001-0001-0001-00000000021b"/>
    </cpu_profile>
    <cpu_profile href="48c600f4-6768-49ca-9c16-a877d0e586e5" id="48c600f4-6768-49ca-9c16-a877d0e586e5">
        <name>Budget</name>
        <description>Limited CPU</description>
        <link href="/ovirt-engine/api/cpuprofiles/48c600f4-6768-49ca-9c16-a877d0e586e5/permissions" rel="permissions"/>
        <cluster href= "/ovirt-engine/api/clusters/00000001-0001-0001-0001-00000000021b" id="00000001-0001-0001-0001-00000000021b"/>
    </cpu_profile>
    <cpu_profile href="48c600f4-6768-49ca-9c16-a877d0e586e5" id="48c600f4-6768-49ca-9c16-a877d0e586e5">
        <name>Backup</name>
        <link href="/ovirt-engine/api/cpuprofiles/d510b042-42f0-4cb2-9d2e-25fcc28d6c5f/permissions" rel="permissions"/>
        <cluster href= "/ovirt-engine/api/clusters/668cab0c-9185-4eaa-9942-658284eeecdd" id="668cab0c-9185-4eaa-9942-658284eeecdd"/>
    </cpu_profile>
</cpu_profiles>

3.7. 示例:创建 NFS 数据存储

NFS 数据存储域是附加到数据中心导出的 NFS 共享,并为虚拟化客户机镜像提供存储。创建新存储域需要 POST 请求,其中包含存储域表示,发送到存储域集合的 URL。
您可以在存储域中默认启用 wipe after delete 选项。要配置此功能,请在 POST 请求中指定 < wipe_after_delete >。可以在创建域后编辑此选项,但是这样做不会在删除已存在的磁盘属性后更改擦除。

例 3.7. 创建 NFS 数据存储域

request:

POST /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>data1</name>
  <type>data</type>
  <storage>
    <type>nfs</type>
    <address>192.168.0.10</address>
    <path>/data1</path>
  </storage>
  <host>
    <name>hypervisor</name>
  </host>
</storage_domain>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<storage_domain><name>data1</name><type>data</type> \
    <storage><type>nfs</type><address>192.168.0.10</address> \
    <path>/data1</path></storage> \ 
    <host><name>hypervisor</name></host></storage_domain>" \
    https://[RHEVM Host]:443/ovirt-engine/api/storagedomains

API 创建一个称为 data1 的 NFS 数据存储域,其导出路径为 192.168.0.10:/data1,并通过 虚拟机监控程序主机 设置对存储域的访问。API 也返回新创建的存储域资源的以下表示。

结果:

HTTP/1.1 200 OK
Accept: application/xml

<storage_domain id="9ca7cb40-9a2a-4513-acef-dc254af57aac"
  href="/ovirt-engine/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac">
    <name>data1</name>
    <link rel="permissions"
      href="/ovirt-engine/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac/
      permissions"/>
    <link rel="files"
      href="/ovirt-engine/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac/files"/>
    <type>data</type>
    <master>false</master>
    <storage>
        <type>nfs</type>
        <address>192.168.0.10</address>
        <path>/data1</path>
    </storage>
    <available>175019917312</available>
    <used>27917287424</used>
    <committed>10737418240</committed>
    <storage_format>v1</storage_format>
    <host id="0656f432-923a-11e0-ad20-5254004ac988"
      href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988">
</storage_domain>

3.8. 示例:创建 NFS ISO 存储

NFS ISO 存储域是附加到数据中心挂载的 NFS 共享,并为 DVD/CD-ROM ISO 和虚拟软盘磁盘(VFD)镜像文件提供存储。创建新存储域需要 POST 请求,其中包含存储域表示,发送到存储域集合的 URL。
您可以在存储域中默认启用 wipe after delete 选项。要配置此功能,请在 POST 请求中指定 < wipe_after_delete >。可以在创建域后编辑此选项,但是这样做不会在删除已存在的磁盘属性后更改擦除。

例 3.8. 创建 NFS ISO 存储域

request:

POST /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>iso1</name>
  <type>iso</type>
  <storage>
    <type>nfs</type>
    <address>192.168.0.10</address>
    <path>/iso1</path>
  </storage>
  <host>
    <name>hypervisor</name>
  </host>
</storage_domain>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<storage_domain><name>iso1</name><type>iso</type> \
    <storage><type>nfs</type><address>192.168.0.10</address> \
    <path>/iso1</path></storage> \
    <host><name>hypervisor</name></host></storage_domain>" \
    https://[RHEVM Host]:443/ovirt-engine/api/storagedomains

API 创建一个称为 iso1 的 NFS iso 存储域,其导出路径为 192.168.0.10:/iso1,并通过 虚拟机监控程序主机 访问存储域。API 也返回新创建的存储域资源的以下表示。

结果:

HTTP/1.1 200 OK
Accept: application/xml

<storage_domain id="00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"
  href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da">
    <name>iso1</name>
    <link rel="permissions"
      href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/
      permissions"/>
    <link rel="files"
      href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files"/>
    <type>iso</type>
    <host id="" href="">
    <master>false</master>
    <storage>
        <type>nfs</type>
        <address>192.168.0.10</address>
        <path>/iso1</path>
    </storage>
    <available>82678120448</available>
    <used>18253611008</used>
    <committed>0</committed>
    <storage_format>v1</storage_format>
    <host id="0656f432-923a-11e0-ad20-5254004ac988"
      href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988">        
</storage_domain>

3.9. 示例:将存储域连接到数据中心

以下示例将 data1iso1 存储域附加到 Default 数据中心。

例 3.9. 将 data1 存储域附加到 Default 数据中心

request:

POST /ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>data1</name>
</storage_domain>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<storage_domain><name>data1</name></storage_domain>" \
    https://[RHEVM Host]:443/ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988/storagedomains

例 3.10. 将 iso1 存储域附加到 Default 数据中心

request:

POST /ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>iso1</name>
</storage_domain>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<storage_domain><name>iso1</name></storage_domain>" \
    https://[RHEVM Host]:443/ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988/storagedomains

这些 POST 请求将两个新的 storage_domain 资源放在 Default 数据中心的 storagedomains 子集合中。这意味着 storagedomains 子集合包含数据中心的附加存储域。

3.10. 示例:激活存储域

这个示例激活 Red Hat Virtualization Manager 使用的 data1iso1 存储域。

例 3.11. 激活 data1 存储域

request:

POST /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/
9ca7cb40-9a2a-4513-acef-dc254af57aac/activate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<action/>" \
    https://[RHEVM Host]:443/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac/activate

例 3.12. 激活 iso1 存储域

request:

POST /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/
00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/activate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<action/>"
    https://[RHEVM Host]:443/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/activate

这会激活两个存储域以用于数据中心。

3.11. 示例:创建虚拟机

以下示例将使用虚拟化环境的 Blank 模板作为基础,在 Default 集群上创建一个名为 vm1 的虚拟机。该请求还将 虚拟机的内存 定义为 512 MB,并将 引导设备 设置为虚拟硬盘。

例 3.13. 创建虚拟机

request:

POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <name>vm1</name>
    <cluster>
        <name>default</name>
    </cluster>
    <template>
        <name>Blank</name>
    </template>
    <memory>536870912</memory> 
    <os>
        <boot dev="hd"/>
    </os>
    <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/>
</vm>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" -u [USER:PASS] --cacert [CERT] -d "<vm><name>vm1</name><cluster><name>default</name></cluster><template><name>Blank</name></template><memory>536870912</memory><os><boot dev='hd'/></os><cpu_profile id='0000001a-001a-001a-001a-00000000035e'/></vm>" https://[RHEVM Host]:443/ovirt-engine/api/vms

结果:

HTTP/1.1 200 OK
Accept: application/xml    

<vm id="6efc0cfa-8495-4a96-93e5-ee490328cf48"
  href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48">
    <name>vm1</name>
    <actions>
        <link rel="shutdown"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/shutdown"/>
        <link rel="start"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/start"/>
        <link rel="stop"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/stop"/>
        <link rel="reboot"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/reboot"/>
        <link rel="suspend"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/suspend"/>
        <link rel="detach"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/detach"/>
        <link rel="export"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/export"/>
        <link rel="move"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/move"/>
        <link rel="ticket"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/ticket"/>
        <link rel="migrate"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/migrate"/>
        <link rel="undo_snapshot"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/undo_snapshot"/>
        <link rel="commit_snapshot"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/commit_snapshot"/>
        <link rel="preview_snapshot"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/preview_snapshot"/>
        <link rel="logon"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/logon"/>
        <link rel="cancelmigration"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/cancelmigration"/>
        <link rel="maintenance"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/maintenance"/>
        <link rel="clone"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/clone"/>
    </actions>
    <link rel="applications"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/applications"/>
    <link rel="disks"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/disks"/>
    <link rel="nics"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/nics"/>
    <link rel="cdroms"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/cdroms"/>
    <link rel="snapshots"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/snapshots"/>
    <link rel="tags"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/tags"/>
    <link rel="permissions"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/permissions"/>
    <link rel="statistics"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/statistics"/>
    <link rel="reporteddevices"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/reporteddevices"/>
    <link rel="watchdogs"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/watchdogs"/>
    <link rel="sessions"
      href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/sessions"/>
    <type>desktop</type>
    <status>
        <state>down</state>
    </status>
    <memory>536870912</memory>
    <cpu>
        <topology cores="1" sockets="1"/>
    </cpu>
    <os type="Unassigned">
        <boot dev="cdrom"/>
    </os>
    <high_availability>
        <enabled>false</enabled>
        <priority>0</priority>
    </high_availability>
    <display>
        <type>spice</type>
        <monitors>1</monitors>
        <single_qxl_pci>false</single_qxl_pci>
        <allow_override>false</allow_override>
        <smartcard_enabled>false</smartcard_enabled>
        <file_transfer_enabled>true</file_transfer_enabled>
        <copy_paste_enabled>true</copy_paste_enabled>
    </display>
    <cluster id="99408929-82cf-4dc7-a532-9d998063fa95"
      href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
    <template id="00000000-0000-0000-0000-000000000000"
      href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"/>
    <stop_time>2011-06-15T04:48:02.167Z</stop_time>
    <creation_time>2011-06-15T14:48:02.078+10:00</creation_time>
    <origin>rhev</origin>
    <stateless>false</stateless>
    <delete_protected>false</delete_protected>
    <sso>
        <methods>
            <method id="GUEST_AGENT"/>
        </methods>
    </sso>
    <console enabled="false"/>
    <timezone>Etc/GMT</timezone>
    <initialization>
        <configuration>
            <type>ovf</type>
            <data>...</data>
        </configuration> 
    </initialization>
    <placement_policy>
        <affinity>migratable</affinity>
    </placement_policy>
    <memory_policy>
        <guaranteed>536870912</guaranteed>
        <ballooning>true</ballooning>
    </memory_policy>
    <usb>
        <enabled>false</enabled>
    </usb>
    <soundcard_enabled>true</soundcard_enabled>
    <migration_downtime>-1</migration_downtime>
    <virtio_scsi enabled="true"/>
    <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/>
    <next_run_configuration_exists>false</next_run_configuration_exists>
    <numa_tune_mode>interleave</numa_tune_mode>
</vm>

3.12. 示例:创建虚拟机 NIC

以下示例创建一个虚拟网络接口,将示例虚拟机连接到 ovirtmgmt 网络。

例 3.14. 创建虚拟机 NIC

request:

POST /ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/nics HTTP/1.1
Accept: application/xml
Content-type: application/xml

<nic>
  <interface>virtio</interface>
  <name>nic1</name>
  <network>
    <name>ovirtmgmt</name>
  </network>
</nic>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<nic><name>nic1</name><network><name>ovirtmgmt</name></network></nic>" \
    https://[RHEVM Host]:443/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/nics

3.13. 示例:创建虚拟机存储磁盘

以下示例为 example 虚拟机创建一个 8 GB Copy-On-Write 存储磁盘。

例 3.15. 创建虚拟机存储磁盘

request:

POST /ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/disks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <storage_domains>
        <storage_domain id="9ca7cb40-9a2a-4513-acef-dc254af57aac"/>  
    </storage_domains>    
    <size>8589934592</size>
    <type>system</type>
    <interface>virtio</interface>
    <format>cow</format>
    <bootable>true</bootable>
</disk>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<disk><storage_domains> \
    <storage_domain id='9ca7cb40-9a2a-4513-acef-dc254af57aac'/> \
    </storage_domains><size>8589934592</size><type>system</type> \
    <interface>virtio</interface><format>cow</format> \
    <bootable>true</bootable></disk>" \
    https://[RHEVM Host]:443/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/disks

storage_domain 元素告知 API 将磁盘存储在 data1 存储域中。

3.14. 示例:将 ISO 镜像附加到虚拟机

示例虚拟机的引导介质需要用于操作系统安装的 CD-ROM 或者 DVD ISO 镜像。这个示例使用 Red Hat Enterprise Server 6 ISO 镜像进行安装。
ISO 镜像必须在 iso1 ISO 域中可用,供虚拟机使用。Red Hat Virtualization Platform 提供了一个上传程序工具,用于确保 ISO 镜像以正确的用户权限上传到正确的目录路径中。
上传 ISO 后,API 用户请求 ISO 存储域 的文件 子集合来查看 file 资源:

例 3.16. 查看 ISO 存储域中的文件子集合

request:

GET /ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files

API 返回文件子集合的以下表示:
<files>
    <file id="rhel-server-6.0-x86_64-dvd.iso"
      href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/
      files/rhel-server-6.0-x86_64-dvd.iso.iso">
        <name>rhel-server-6.0-x86_64-dvd.iso.iso</name>
        <storage_domain id="00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"
          href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"/>
    </file>
</files>
API 用户将 rhel-server-6.0-x86_64-dvd.iso 附加到我们的 example 虚拟机。连接 ISO 镜像等同于使用管理门户中的 Change CD 按钮。

例 3.17. 将 ISO 镜像附加到虚拟机

request:

POST /ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/cdroms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<cdrom>
  <file id="rhel-server-6.0-x86_64-dvd.iso"/>
</cdrom>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<cdrom><file id='rhel-server-6.0-x86_64-dvd.iso'/></cdrom>" \
    https://[RHEVM Host]:443/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/cdroms

3.15. 示例:启动虚拟机

虚拟环境已完成,虚拟机包含所有必要的组件才能正常工作。这个示例使用 start 操作启动虚拟机。

例 3.18. 启动虚拟机

request:

POST /ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/start HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
  <vm>
    <os>
      <boot dev="cdrom"/>
    </os>
  </vm>
</action>

curl 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<action><vm><os><boot dev='cdrom'/></os></vm></action>" \
    https://[RHEVM Host]:443/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48/start

其他消息实体仅将虚拟机的引导设备设置为 CD-ROM。这可让虚拟机从附加的 ISO 镜像安装 Red Hat Enterprise Server 6。引导设备会恢复到 磁盘 以便以后进行所有引导。

3.16. 示例:检查系统事件

vm1start 操作会在 events 集合中创建多个条目。本例列出了事件集合,并标识特定于启动虚拟机的 API 的事件。

例 3.19. 列出事件集合

request:

GET /ovirt-engine/api/events HTTP/1.1
Accept: application/xml

curl 命令:

# curl -X GET -H "Accept: application/xml" -u [USER:PASS] \
    --cacert [CERT] \
    https://[RHEVM Host]:443/ovirt-engine/api/events

结果:

<events>
    ...
    <event id="103" href="/ovirt-engine/api/events/103">
        <description>User admin logged out.</description>
        <code>31</code>
        <severity>normal</severity>
        <time>2011-06-29T17:42:41.544+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73" 
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    <event id="102" href="/ovirt-engine/api/events/102">
        <description>vm1 was started by admin (Host: hypervisor).</description>
        <code>153</code>
        <severity>normal</severity>
        <time>2011-06-29T17:42:41.499+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
        <vm id="6efc0cfa-8495-4a96-93e5-ee490328cf48"
          href="/ovirt-engine/api/vms/6efc0cfa-8495-4a96-93e5-ee490328cf48"/>
        <host id="0656f432-923a-11e0-ad20-5254004ac988"
          href="/ovirt-engine/api/hosts/0656f432-923a-11e0-ad20-5254004ac988"/>
    </event>
    <event id="101" href="/ovirt-engine/api/events/101">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-06-29T17:42:40.505+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    ...
</events>

发生以下事件:
  • id="101" - API 使用 admin 用户的用户名和密码进行身份验证。
  • ID="102" - 作为 admin 用户的 API,在 虚拟机监控程序 主机上启动 vm1
  • id="103" - API 注销 admin 用户帐户。

第 4 章 入口点

用户开始通过由 主机和 基础 组成的入口点 URI 上的 GET 请求与 API 交互。

例 4.1. 访问 API 条目点

如果主机是 www.example.com 且 基础 是 /ovirt-engine/api,则入口点会出现有以下请求:
GET /ovirt-engine/api HTTP/1.1
Accept: application/xml
Host: www.example.com
Authorization: [base64 encoded credentials]

HTTP/1.1 200 OK
Content-Type: application/xml

<api>
    <link rel="hosts" href="/ovirt-engine/api/hosts"/>
    <link rel="vms" href="/ovirt-engine/api/vms"/>
    ...
    <product_info>
        <name>Red Hat Virtualization</name>
        <vendor>Red Hat</vendor>
        <version revision="0" build="0" minor="0" major="4"/>
    </product_info>    
    <special_objects>
        <link rel="templates/blank" href="..."/>
        <link rel="tags/root" href="..."/>
    </special_objects>
    <summary>
        <vms>
            <total>10</total>
            <active>3</active>
        </vms>
        <hosts>
            <total>2</total>
            <active>2</active>
        </hosts>
        <users>
            <total>8</total>
            <active>2</active>
        </users>
        <storage_domains>
            <total>2</total>
            <active>2</active>
        </storage_domains>
    </summary>
</ovirt-engine/api>
注意
为简单起见,所有其他示例都省略 Host:Authorization: 请求标头,并假定 base 是默认的 /ovirt-engine/api 路径。这个基础路径根据您的实施而有所不同。

4.1. 产品信息

入口点包含一个 product_info 元素,用于帮助 API 用户决定 Red Hat Virtualization 环境的 legitimacy。这包括产品 的名称vendorversion

例 4.2. 验证 genuine Red Hat Virtualization 环境

以下元素标识了 Red Hat Virtualization 4.0 环境:
<api>
    ...
    <product_info>
        <name>Red Hat Virtualization</name>
        <vendor>Red Hat</vendor>
				<version>
						<build>2</build>
						<full_version>4.0.2.3-0.1.el7ev</full_version>
						<major>4</major>
						<minor>0</minor>
						<revision>0</revision>
				</version>
    </product_info>
    ...
</ovirt-engine/api>

4.3. 特殊对象元素

特殊对象元素定义在虚拟化环境中特殊固定资源的关系。
表 4.3. 特殊对象
关系 Description
templates/blank 虚拟化环境的默认 空白 虚拟机模板。此模板与每个集群中都存在,而不是标准的模板,该模板仅存在于单个集群中。
tags/root 作为虚拟化环境中标签层次结构的基础的 root 标签。

4.4. 摘要元素

summary 元素显示系统统计数据的高级摘要。
表 4.4. 摘要元素
元素 Description
vms 虚拟机总数和活动虚拟机总数.
主机 主机总数和活动主机总数。
users 用户总数和活动用户总数.
storage_domains 存储域总数和活跃存储域总数。

4.5. RESTful 服务描述语言(RSDL)

RESTful 服务描述语言(RSDL)提供了整个 XML 规范中 REST API 中的结构和元素的说明。使用以下请求调用 RSDL:
GET /ovirt-engine/api?rsdl HTTP/1.1
Accept: application/xml
这会以以下格式生成 XML 文档:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rsdl href="/ovirt-engine/api?rsdl" rel="rsdl">
    <description>...</description>
    <version major="4" minor="0" build="0" revision="0"/>
    <schema href="/ovirt-engine/api?schema" rel="schema">
        <name>...</name>
        <description>...</description>
    </schema>
    <links>
        <link href="/ovirt-engine/api/capabilities" rel="get">
            ...
        </link>
        ...
    </links>
</rsdl>
表 4.5. RSDL 结构元素
元素 Description
description RSDL 文档的纯文本描述。
version API 版本,包括 主发行版本次版本构建和 修订
schema XML 模式(XSD)文件的链接。
links 定义 API 中的每个 链接
每个 link 元素都包含以下结构:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rsdl href="/ovirt-engine/api?rsdl" rel="rsdl">
    ...
    <links>
        <link href="/ovirt-engine/api/..." rel="...">
            <request>
                <http_method>...</http_method>
                <headers>
                    <header>
                        <name>...</name>
                        <value>...</value>
                    </header>
                    ...
                </headers>
                <body>
                    <type>...</type>
                    <parameters_set>
                        <parameter required="..." type="...">
                            <name>...</name>
                        </parameter>
                        ...
                    </parameters_set>
                </body>
            </request>
            <response>
                <type>...</type>
            </response>
        </link>
        ...
    </links>
</rsdl>
表 4.6. RSDL 链接结构元素
元素 Description
link API 请求的 URI。包含 URI 属性(href)和关系类型属性(rel)。
request 定义链接所需的请求属性。
http_method 用于访问此链接的方法类型。包含用于 REST API 访问的标准 HTTP 方法: GETPOSTPUTDELETE
标头 定义 HTTP 请求的标头。包含一系列 标头 元素,它们各自包含用于定义标头的标头名称和值。
正文(body) 定义 HTTP 请求的正文。包含 资源类型和 parameter _set,它包含一组带有属性的参数元素,用于定义请求是否需要以及 数据类型参数 元素还包括一个 name 元素,用于定义 Red Hat Virtualization Manager 属性来修改以及进一步的 parameter_set 子集(如果 type 设置为 collection )。
response 定义 HTTP 请求的输出。包含 type 元素,用于定义要输出的资源结构。
使用应用程序中的 RSDL 作为映射控制 Red Hat Virtualization 环境的所有链接和参数要求的方法。

4.6. Red Hat Virtualization Windows Guest VSS 支持

Red Hat Virtualization Backup 和 Restore API 提供了使用 qemu-ga 与 Microsoft Windows Volume Shadow Copy Service (VSS)集成。VSS 提供程序注册在客户机级别上进行,作为客户机工具部署的一部分。
QEMU-ga 提供 VSS 支持和实时快照,尽可能尝试静止。

4.7. QEMU 客户机代理概述

在 Red Hat Enterprise Linux 6.4 中,QEMU 客户机代理(QEMU GA)为 Linux 客户机虚拟机的损坏提供了保护。在发出快照请求或创建磁盘备份副本之前,管理堆栈(libvirt)通过 virtio-serial 端口向 QEMU GA 发送 guest-fsfreeze-freeze QMP 命令。此命令通过 FIFREEZE ioctl() 内核功能导致客户机代理冻结所有客户虚拟机的文件系统。这个 ioctl() 功能是由客户端虚拟机中的 Linux 内核实现的。此函数清除客户机虚拟机内核中的文件系统缓存,使文件系统进入一致的状态,并拒绝所有用户空间线程对文件系统进行写入访问。
只有在 QEMU GA 报告成功后,libvirt 才会继续执行快照。完成后,libvirt 通过 virtio-serial 端口将 guest-fsfreeze-thaw QMP 命令发送到 QEMU GA。此命令告知 QEMU GA 发布 FITHAW ioctl (),它会取消阻止之前被拒绝的写入访问的用户空间线程,并恢复正常处理。当执行虚拟磁盘快照时,这个过程不会确保应用程序级别数据处于一致的状态。如果 fsck 实用程序从快照恢复了文件系统时没有发现问题,这很明显,但应用程序无法从拍摄快照的时间和用户空间进程时恢复处理,而用户空间进程可能没有将其内部缓冲区写入磁盘上的文件。
Red Hat Enterprise Linux 6.5 确保完成文件和应用程序级同步(清空)。客户机系统管理员可以编写和安装特定于应用程序的空闲和解放 hook 脚本。在冻结文件系统前,QEMU GA 会调用主 hook 脚本(包括在 QEMU GA 软件包中)。主钩子脚本反过调用各个应用特定脚本(由客户机系统管理员准备),该脚本会临时停用所有客户虚拟机应用程序。当模式更改为"冻结"时,所有这些操作都会发生。
在文件系统被冻结之前,客户机系统管理员的脚本会导致数据库和其他文件系统应用程序将其工作缓冲区刷新到虚拟磁盘,并停止接受进一步的客户端连接。然后,应用程序将其数据文件置于一致状态,在恢复处理时,使用重新激活(或全新启动)应用程序实例(从备份中恢复虚拟磁盘后)。当所有脚本都进行各自的应用程序不活跃时,主 hook 脚本返回时,QEMU GA 会进入冻结文件系统,管理堆栈会获取快照。完成所有操作后,并确认拍摄快照,文件系统将恢复以提供写入请求。这个过程被称为 thawing。
解封是以相反的顺序释放的。由 libvirt 的指示,QEMU GA 分解客户虚拟机的文件系统。然后,它会调用单独的钩子脚本(通过主 hook 脚本)恢复或重新启动在冻结过程中激活的应用程序。

4.8. VSS 事务流

在处理备份时,请求者和作者协调执行一些操作:提供稳定的系统镜像,以便从备份数据(影子复制卷)以分组文件,并在保存的数据上存储信息。这必须通过写入器的正常工作流的最小中断来完成。
请求者(在我们的备份供应商中)查询写入器获取其元数据,处理此数据,在影子副本和备份操作开始前通知写入器,然后在影子副本和备份操作结束时再次通知写入器。
以下是在 guest 工具安装后,QEMU VSS 供应商如何在 Windows OS 中注册:
C:\Users\Administrator>vssadmin list providers
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2005 Microsoft Corp.

Provider name: 'QEMU Guest Agent VSS Provider'
   Provider type: Software
   Provider Id: {3629d4ed-ee09-4e0e-9a5c-6d8ba2872aef}
   Version: 0.12.1

第 5 章 兼容性级别版本

连接到 Red Hat Virtualization Manager 的每个主机都包含 VDSM 版本。VDSM 是虚拟化基础架构中在虚拟机监控程序或主机上运行的代理,并为虚拟机、网络和存储提供本地管理。Red Hat Virtualization Manager 使用当前或更早版本的 VDSM 控制 hypervisor 和主机。
管理器将虚拟机从主机迁移到集群内的主机。这意味着,管理器从当前版本的 VDSM 中排除某些功能,直到集群中安装了相同的 VDSM 版本或最新的主机。
API 将这个概念表示为 每个主机的兼容性级别,对应于安装的 VDSM 版本。version 元素包含 主要和次要 属性,用于描述兼容性级别。
当管理员将集群中的所有主机升级到特定级别时,版本 级别会出现在 supported_versions 元素下。这表示 集群的版本 现在对那个级别是 updatable。当管理员将数据中心中的所有集群更新至给定级别后,数据中心就可以进入这个级别。

5.1. 升级兼容性等级

例 5.1. 升级兼容性级别

API 报告 Red Hat Enterprise Virtualization Manager 3.4 实例的以下兼容性级别:
<host ...>
    ...
    <version major="4" minor="14" build="11" revision="0" full_version="vdsm-4.14.11-5.el6ev"/>
    ...
</host>

<cluster ...>
    ...
    <version major="3" minor="4"/>
    ...
</cluster>

<data_center ...>
    ...
    <version major="3" minor="4"/>
    </supported_versions>
    ...
</data_center>

集群中的所有主机都更新至 VDSM 3.5 和 API 报告:
<host ...>
    ...
    <version major="4" minor="16" build="7" revision="4" full_version="vdsm-4.16.7.4-1.el6ev"/>
    ...
</host>

<cluster ...>
    ...
    <version major="3" minor="4"/>
    <supported_versions>
        <version major="3" minor="5"/>
    </supported_versions>
    ...
</cluster>

<data_center ...>
    ...
    <version major="3" minor="4"/>
    <supported_versions/>
    ...
</data_center>
集群现在最多为 3.5。更新集群时,API 报告:
<cluster ...>
    ...
    <version major="3" minor="5"/>
    <supported_versions/>
    ...
</cluster>

<data_center ...>
    ...
    <version major="3" minor="4"/>
    <supported_versions>
        <version major="3" minor="5"/>
    </supported_versions>
    ...
</data_center>
API 用户将数据中心更新为 3.5。升级后,API 会公开此数据中心的 Red Hat Enterprise Virtualization 3.5 中提供的功能。

第 6 章 功能

capabilities 集合提供有关 Red Hat Virtualization 支持的功能信息。这些功能包括活动的功能,以及特定属性的可用枚举值。
要从 3.2 检索所有版本的 Red Hat Enterprise Virtualization 功能的完整列表,请提交以下请求:
GET /ovirt-engine/api/capabilities/ HTTP/1.1
Content-Type: application/xml
Accept: application/xml

6.1. version-Dependent Capabilities

capabilities 元素包含各种 版本 元素,它们描述功能依赖于兼容性级别。
version 元素包括 主版本和次版本 号的属性。这表示当前版本级别。
以下表示显示特定于 Red Hat Enterprise Virtualization Manager 3.53.64.0 的功能:
<capabilities>
    <version major="3" minor="5">
        ...
    </version>
    <version major="3" minor="6">
        ...
    </version>
    <version major="4" minor="0">
        ...
    </version>
    ...
</capabilities>
每个版本都 包含一系列功能,具体取决于指定的版本。

6.2. 当前版本

当前 元素表示 指定的版本 是最新支持的兼容性级别。该值是一个布尔值 truefalse
<capabilities>
    <version major="4" minor="0">
        ...
        <current>true</current>
        ...
    </version>
</capabilities>

6.3. 功能

每个版本都包含兼容功能列表。下表列出了与 Red Hat Virtualization 4.0 兼容的功能。
表 6.1. 功能类型
功能 Description
透明大内存页内存策略 允许您为主机定义透明巨页的可用性。可接受值为 truefalse
Gluster 支持 此功能提供对将 Gluster 卷和 Bricks 用作存储的支持。
POSIX-FS 存储类型 此功能提供对 POSIX-FS 存储类型的支持。
端口镜像 允许您为虚拟网络接口卡定义端口镜像的可用性。可接受值为 truefalse
显示服务器时间 API 中显示当前日期和时间。
显示主机内存 显示特定主机的总内存。
显示主机套接字 允许您定义主机 CPU 的拓扑。取三个属性 - 套接字线程 和内核 - 定义显示的主机套接字数量、线程数和每个插槽的内核数。
搜索问题单敏感度 允许您通过提供 case-sensitive=true|false URL 参数来指定搜索查询是否区分大小写。
GET 请求的最大结果 允许您指定从 GET 请求返回的最大结果数。
JSON 内容类型 允许您定义一个标头,使它能够为 POSTPUT 请求设置关联 ID。
激活和取消激活磁盘 允许您在特定虚拟磁盘上指定 激活或取消激活 作为操作来激活或取消激活磁盘。
激活和停用网络接口卡 允许您指定激活或停用特定网卡上的操作,来 激活或取消激活 网卡。
快照重构 允许您为虚拟机重构快照。
从指定的存储域中删除模板磁盘 允许您使用 DELETE 请求从特定存储域中删除虚拟机模板磁盘。
浮动磁盘 浮动磁盘是未附加到任何虚拟机的磁盘。借助此功能,此类磁盘也会出现在 root 集合中,而不是在特定的虚拟机中。
异步删除 允许您指定通过指定 async URL 参数来异步执行 DELETE 请求。
基于会话的身份验证 允许您通过提供适当的标头来维护客户端-服务器会话,无需使用每个请求登录。
虚拟机应用程序 允许您查看在特定虚拟机上安装的应用程序列表。此列表位于特定虚拟机的 apps 元素中。
virtio-SCSI 支持 此功能提供对半虚拟化 SCSI 控制器设备的支持。
自定义资源注释 允许您在数据中心和其他资源中添加自定义注释。
刷新主机功能 允许您同步主机上的数据,并刷新可用于特定主机的网络接口列表。
内存快照 允许您包含内存状态作为虚拟机快照的一部分。
watchdog 设备 允许您为虚拟机创建 watchdog 设备。
SSH 验证方法 允许您使用管理用户密码或 SSH 公钥通过 SSH 使用主机进行身份验证。
强制选择 SPM 允许您强制选择主机作为 SPM
控制台设备 允许您控制虚拟机中的控制台设备的附加。
存储域的存储服务器连接 允许您查看到特定存储域或特定存储域的存储服务器连接。
附加和分离存储服务器连接 允许您向特定存储域附加或分离存储服务器连接。
单个 PCI 用于 Qxl 允许您通过单一 PCI 客户机设备查看多个视频设备。
OVF 配置添加虚拟机 允许您从提供的 OVF 配置中添加虚拟机。
虚拟网络接口卡配置集 允许您配置一个配置集,为特定虚拟网络接口卡定义服务质量、自定义属性和端口镜像。
镜像存储域(技术预览) 允许您从镜像导入镜像,并将其导出到 OpenStack 镜像服务(Glance)等镜像存储域。
虚拟机完全限定域名 允许您检索特定虚拟机的完全限定域名。
将磁盘快照附加到虚拟机 此功能支持将磁盘快照附加到虚拟机。
Cloud-Init 允许您使用 Cloud Init 初始化虚拟机。
Gluster brick 管理 允许您使用操作 migrateDELETE 删除带有数据迁移的 gluster brick。migrate 操作和 stopmigrate 操作允许您迁移数据并重复利用 brick。
复制和移动后端磁盘 允许您在额外上下文中复制和移动磁盘。
网络标签 允许您使用标签在主机上调配网络。
重启虚拟机 允许您通过单一操作重新引导虚拟机。
功能元素及其属性的完整列表位于相关版本的部分的顶部:
<capabilities>
    <version major="4" minor="0">
        ...
        <features>
            <feature>
            	<name>Transparent-Huge-Pages Memory Policy</name>
            	<transparent_huepages/>
            </feature>
        </features>
        ...
    </version>
</capabilities>

第 7 章 常见功能

7.1. 元素属性图标

备注
在本指南中,每个资源的元素在表格中详细介绍。这些表包含一个 properties 列,显示图标描述元素属性。这些图标的含义在 表 7.1 “元素属性图标” 中显示。
表 7.1. 元素属性图标
属性 Description 图标
创建所需 这些元素必须包含在创建资源的客户端提供的表示中,但更新资源时并不是必须的。
non-updatable 这些元素在更新资源时无法更改它们的值。只有在 API 用户没有更改其值时,仅在更新的客户端提供表示中包括这些元素。如果更改,API 会报告错误。
只读 这些元素是只读的。只读元素的值不会被创建或修改。

7.2. 表示

7.2.1. 表示

以下 XML 文档结构中的 API 结构资源表示:
<resource id="resource_id" href="/ovirt-engine/api/collection/resource_id">
    <name>Resource-Name</name>
    <description>A description of the resource</description>
    ...
</resource>
在虚拟机上下文中,表示如下所示:
<vm id="5b9bbce5-0d72-4f56-b931-5d449181ee06"
  href="/ovirt-engine/api/vms/5b9bbce5-0d72-4f56-b931-5d449181ee06">
    <name>RHEL6-Machine</name>
    <description>Red Hat Enterprise Linux 6 Virtual Machine</description>
    ...
</vm>

7.2.2. 资源代表的常见属性

所有资源表示都包含一组通用属性
表 7.2. 资源表示法的通用属性
属性 类型 Description Properties
id GUID 虚拟化基础架构中的每个资源都包含一个 id,它充当全局唯一标识符(GUID)。GUID 是资源识别的主要方法。
href 字符串 资源规范位置作为绝对路径。

7.2.3. 到资源代表的常见元素

所有资源表示都包含一组通用元素。
表 7.3. 资源表示的常见元素
元素 类型 Description Properties
name 字符串 用户提供的人类可读名称。名称 在其类型的所有资源中是唯一的。
description 字符串 由用户提供的、自由格式的人类可读描述。 

7.3. 集合

7.3.1. 集合

集合是一组相同类型的资源。API 提供顶层集合和子集合。顶级集合的示例是包含环境中所有虚拟化主机的 主机集合。子集合的示例是 host.nics 集合,其中包含附加到主机资源的所有网络接口卡的资源。

7.3.2. 列出集合中的所有资源

在从入口点获取的集合 URI 上,获取集合中带有 GET 请求的资源列表。
包括一个 Accept HTTP 标头来为响应格式定义 MIME 类型。
GET /ovirt-engine/api/[collection] HTTP/1.1
Accept: [MIME type]

7.3.3. 列出扩展的资源子-Collections

Accept 标头包含 detail 参数时,API 会扩展集合表示法,使其包含子集合。
GET /ovirt-engine/api/collection HTTP/1.1
Accept: application/xml; detail=subcollection
这包括使用任一独立 详情 参数的多个子集合请求:
GET /ovirt-engine/api/collection HTTP/1.1
Accept: application/xml; detail=subcollection1; detail=subcollection2
或者一个将子集合与 + operator 分隔的 detail 参数:
GET /ovirt-engine/api/collection HTTP/1.1
Accept: application/xml; detail=subcollection1+subcollection2+subcollection3
API 支持下列主要集合的扩展子集合:
表 7.4. 使用扩展子集合的集合
集合 延长的子组件支持
主机 statistics
vms 统计信息,nics,磁盘

例 7.1. vms 集合中扩展统计、NIC 和磁盘子集合的请求

GET /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml; detail=statistics+nics+disks

7.3.4. 使用 Queries 搜索集合

"collection/search" 链接上的 GET 请求会导致该集合的搜索查询。API 仅返回满足搜索查询约束的集合中的资源。
GET /ovirt-engine/api/collection?search={query} HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<collection>
    <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id">
        ...
    </resource>
    ...
</collection>

7.3.5. 最大结果参数

使用 max URL 参数来限制结果列表。没有指定 max 参数的 API 搜索查询将返回所有值。建议指定 max 参数,以防止 API 搜索查询减慢 UI 性能。
GET /ovirt-engine/api/collection;max=1 HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<collection>
    <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id">
        <name>Resource-Name</name>
        <description>A description of the resource</description>
        ...
    </resource>
</collection>

7.3.6. case Sensitivity

所有搜索查询默认为区分大小写。URL 语法提供了一个布尔值选项,用于切换问题单敏感度。

例 7.2. 不区分大小写的搜索查询

GET /ovirt-engine/api/collection;case-sensitive=false?search={query} HTTP/1.1
Accept: application/xml

7.3.7. 查询语法

API 使用 URI 模板来执行带有 GET 请求的搜索查询:
GET /ovirt-engine/api/collection?search={query} HTTP/1.1
Accept: application/xml
query 模板值引用 API 定向到 集合的 搜索查询。这个 查询 使用与 Red Hat Virtualization Query Language 相同的格式:
(criteria)[sortby (element) asc|desc]
sortby 子句是可选的,仅在排序结果时才需要。
表 7.5. 搜索查询示例
集合 标准 结果
主机 vms.status=up 显示所有运行状态为 up 的虚拟机的主机的列表。
vms domain=qa.company.com 显示在指定域中运行的所有虚拟机的列表。
vms users.name=mary 显示属于用户名为 mary 的所有虚拟机的列表。
events severity> 常规排序时间 显示所有严重性高于 normal 的事件 的列表,并根据 time element 值进行排序。
events severity>normal sortby time desc 显示所有严重性高于 normal事件列表,并按 时间 元素值降序排列。
API 要求 查询 模板为 URL 编码,才能转换保留字符,如 operators 和空格。

例 7.3. URL 编码的搜索查询

GET /ovirt-engine/api/vms?search=name%3Dvm1 HTTP/1.1
Accept: application/xml

7.3.8. 通配符

搜索查询将值的一部分替换为星号作为通配符。

例 7.4. name=vm* 的通配符搜索查询

GET /ovirt-engine/api/vms?search=name%3Dvm* HTTP/1.1
Accept: application/xml
此查询将生成名称以 vm 开头的所有虚拟机,如 vm 1、vm2、 vm avm-webserver

例 7.5. name=v*1 的通配符搜索查询

GET /ovirt-engine/api/vms?search=name%3Dv*1 HTTP/1.1
Accept: application/xml
此查询将生成名称以 v 开头的所有虚拟机,并以 1 结尾,如 vm1、vr1 virtualmachine1

7.3.9. 分页

一些 Red Hat Virtualization 环境包含大量资源集合。但是,API 仅显示一个对集合搜索查询的默认资源数量。要显示多于默认值,API 通过包含 page 命令的搜索查询将集合分开到 页面中

例 7.6. 分页资源

这个示例在集合中分页资源。URL 编码的请求为:
GET /ovirt-engine/api/collection?search=page%201 HTTP/1.1
Accept: application/xml
增加 page 值以查看结果的下一页:
GET /ovirt-engine/api/collection?search=page%202 HTTP/1.1
Accept: application/xml
在搜索查询中使用 page 命令和其他命令。例如:
GET /ovirt-engine/api/collection?search=sortby%20element%20asc%20page%202 HTTP/1.1
Accept: application/xml
此查询在由所选元素排序的集合列表中显示第二个页面。
重要的
REST API 是无状态的;因此无法在不同请求之间保持状态,因为所有请求都相互独立。因此,如果您的请求间更改了状态,则页面结果可能是不一致的。
例如,如果您从虚拟机列表请求特定页面,且在请求下一页前发生状态更改,那么您的结果可能会缺少条目或包含重复的条目。

7.3.10. 在集合中创建资源

使用 POST 请求创建新资源到集合 URI,其中包含新资源的表示。
POST 请求需要 Content-Type 标头。这会通知正文内容中表示 MIME 类型的 API 作为请求的一部分。
包括一个 Accept HTTP 标头来为响应格式定义 MIME 类型。
每个资源类型都有自己的特定必要属性。客户端在创建新资源时提供这些属性。如需了解更多详细信息,请参阅单独的资源类型文档。
如果没有所需的属性,则创建会失败,并显示指示缺失元素的表示。
POST /ovirt-engine/api/[collection] HTTP/1.1
Accept: [MIME type]
Content-Type: [MIME type]

[body]

7.3.11. 异步请求

API 执行异步 POST 请求,除非用户用 Expect: 201-created 标头覆盖它们。
例如,某些资源(如虚拟机、磁盘、快照和模板)会异步创建。创建异步资源的请求会导致 202 Accepted 状态。202 Accepted 资源的初始文档结构还包含 creation_status 元素和创建状态更新的链接。例如:
POST /ovirt-engine/api/collection HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<resource>
    <name>Resource-Name</name>
</resource>

HTTP/1.1 202 Accepted
Content-Type: application/xml

<resource id="resource_id" href="/ovirt-engine/api/collection/resource_id">
    <name>Resource-Name</name>
    <creation_status>
        <state>pending</state>
    </creation status>
    <link rel="creation_status" 
      href="/ovirt-engine/api/collection/resource_id/creation_status/creation_status_id"/>
      ...
</resource>
creation_status 链接的 GET 请求提供创建状态更新:
GET /ovirt-engine/api/collection/resource_id/creation_status/creation_status_id HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<creation id="creation_status_id"
  href="/ovirt-engine/api/collection/resource_id/creation_status/creation_status_id">
    <status>
        <state>complete</state>
    </status>
</creation>
覆盖异步资源创建需要一个 Expect: 201-created 标头:
POST /ovirt-engine/api/collection HTTP/1.1
Accept: application/xml
Content-Type: application/xml
Expect: 201-created

<resource>
    <name>Resource-Name</name>
</resource>

7.4. Resources

7.4.1. Resources

资源是 RESTful Web 服务中的数据源。每种资源类型包含一组常见参数,REST API 抽象以形成 资源表示,通常采用 XML 或 JSON。用户可以查看资源表示,然后编辑参数,并将表示返回至 API 中的资源 URL,以修改资源。用户还可以通过 REST 删除单个资源。
RESTful Web 服务还会将资源分组到 集合中。用户可以查看集合中所有资源的表示。用户还会向特定集合发送资源表示,以便在该特定集合中创建新资源。

7.4.2. 检索资源

在从集合列表中获取的 URI 上通过 GET 请求获取资源状态。
包括一个 Accept HTTP 标头来为响应格式定义 MIME 类型。
GET /ovirt-engine/api/[collection]/[resource_id] HTTP/1.1
Accept: [MIME type]
您可以使用 All-Content: true 标头从某些资源获取更多信息。RESTful 服务描述语言描述了哪个链接支持此标头。
GET /ovirt-engine/api/[collection]/[resource_id] HTTP/1.1
Accept: [MIME type]
All-Content: true

7.4.3. 更新资源

使用 PUT 请求修改资源属性,其中包含之前 GET 请求中针对资源 URI 更新的描述。有关可修改属性的详情,请参考单独的资源类型文档。
PUT 请求需要 Content-Type 标头。这会通知正文内容中表示 MIME 类型的 API 作为请求的一部分。
包括一个 Accept HTTP 标头来为响应格式定义 MIME 类型。
PUT /ovirt-engine/api/collection/resource_id HTTP/1.1
Accept: [MIME type]
Content-Type: [MIME type]

[body]
这不包括 API 用户尝试修改的不可变资源属性。如果尝试修改 严格的不可变资源属性,API 会报告与响应正文中的错误消息表示冲突。
在表示中省略的属性将被忽略,且不会更改。

7.4.4. 删除资源

删除使用发送到其 URI 的 DELETE 请求的资源。
包括一个 Accept HTTP 标头来为响应格式定义 MIME 类型。
DELETE /ovirt-engine/api/[collection]/[resource_id] HTTP/1.1
Accept: [MIME type]
有些情况需要 DELETE 请求中的可选正文内容来指定额外的属性。带有可选正文内容的 DELETE 请求需要 Content-Type 标头来通知正文内容中表示 MIME 类型的 API。如果 DELETE 请求不包含正文内容,请省略 Content-Type 标头。

7.4.5. sub-Collection relationships

子集合关系定义资源和子集合之间的分层链接。子集合存在,或者在父资源上下文中有一些含义。例如,虚拟机包含网络接口,这意味着 API 映射虚拟机资源和网络接口子集合之间的关系。
子集合用于对以下关系类型建模:
  • 一个父资源可以包含多个子资源,反之亦然。例如,虚拟机可以包含多个磁盘,一些磁盘由多个虚拟机共享。
  • 映射的资源依赖于父资源。如果没有父资源,则依赖的资源不存在。例如,虚拟机和快照之间的链接。
  • 其中映射的资源独立于父资源存在,但数据仍然与关系关联。例如,集群和网络之间的链接。
API 使用 link rel= 属性定义资源和子集合之间的关系:
GET /ovirt-engine/api/collection/resource_id HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<resource id="resource_id" href="/ovirt-engine/api/collection/resource_id">
    ...
    <link rel="subcollection"
      href="/ovirt-engine/api/collection/resource_id/subcollection"/>
    ...
</resource>
API 用户现在查询 sub-collection。
GET /ovirt-engine/api/collection/resource_id/subcollection HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<subcollection>
    <subresource id="subresource_id"
      href="/ovirt-engine/api/collection/resource_id/subcollection/subresource_id">
        ...
    </subresource>
    ...
</subcollection>

7.4.6. XML 元素关系

XML 元素链接充当子集合的替代选择,以表达资源之间的关系。XML 元素链接只是包含指向链接元素的"href"属性的元素。
XML 元素链接用于对资源间的简单 1:N 映射,而无需依赖项,且没有与关系关联的数据。例如,主机和集群之间的关系。
这种关系的示例包括:
  • 从子集合中的资源重新链接到父资源;或者
  • 具有任意关系的资源之间的链接。

例 7.7. 使用 XML 元素将子集合资源链接到资源

GET /ovirt-engine/api/collection/resource_id/subcollection/subresource_id HTTP/1.1

HTTP/1.1 200 OK
Content-Type: application/xml

<subcollection>
    <subresource id="subresource_id"
      href="/ovirt-engine/api/collection/resource_id/subcollection/subresource_id">
        <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id"/>
        ...
    </subresource>
</subcollection>

7.4.7. Actions

大多数资源都包括一种操作链接,用于提供不是通过标准 HTTP 方法实现的功能。
<resource>
    ...
    <actions>
        <link rel="start" href="/ovirt-engine/api/collection/resource_id/start"/>
        <link rel="stop" href="/ovirt-engine/api/collection/resource_id/stop"/>
        ...
    </actions>
    ...
</resource>
API 通过 POST 请求调用提供的 URI 的操作。POST 正文需要一个 操作 表示封装通用和任务特定参数。
表 7.6. 常见操作参数
元素 Description
async 如果服务器 立即响应使用 202 Accepted,且操作表示包含 href 链接,则需要轮询完成。
grace_period 以毫秒为单位的宽限期,必须在启动操作前过期。
各个操作及其参数记录在单独的资源类型的文档中。某些参数对于具体操作来说是必需的,它们没有表示有故障 响应
操作还需要 Content-Type: application/xml 标头,因为 POST 请求需要在正文内容中有一个 XML 表示。
当异步启动该操作时,立即 202 Accepted 响应提供一个链接来监控任务的状态:
POST /ovirt-engine/api/collection/resource_id/action HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<action>
    <async>true</async>
</action>

HTTP/1.1 202 Accepted
Content-Type: application/xml

<action id="action_id"
  href="/ovirt-engine/api/collection/resource_id/action/action_id">
    <async>true</async>
    ...
</action>
操作 URI 上的后续 GET 提供异步任务的状态。
表 7.7. 操作状态
状态 Description
待定 任务尚未启动。
in_progress 任务处于操作状态。
complete 任务成功完成。
失败 任务失败。返回的 操作 表示会包含 描述 失败的错误。
任务完成后,会在确定周期内保留该操作。过期后,后续的 GETs 为 301 movesd Permanently 重新重定向到目标资源。
GET /ovirt-engine/api/collection/resource_id/action/action_id HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<action id="action_id"
  href="/ovirt-engine/api/collection/resource_id/action/action_id">
    <status>
        <state>pending</state>
    </status>
    <link rel="parent" /ovirt-engine/api/collection/resource_id"/>
    <link rel="replay" href="/ovirt-engine/api/collection/resource_id/action"/>
</action>
操作表示还包括一些由 rel 属性标识的链接:
表 7.8. 操作关系
类型 Description
parent 这个操作的资源的链接。
replay 到原始操作 URI 的链接。发布到此 URI 会导致重新发起操作。

7.4.8. 权限

每个资源都包含 权限 子集合。每个 权限都 包含用户、分配 的角色和 指定资源。例如:
GET /ovirt-engine/api/collection/resource_id/permissions HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<permissions>
    <permission id="permission-id"
      href="/ovirt-engine/api/collection/resource_id/permissions/permission_id">
        <role id="role_id" href="/ovirt-engine/api/roles/role_id"/>
        <user id="user_id" href="/ovirt-engine/api/users/user_id"/>
        <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id"/>
    </permission>
    ...
</permissions>
当 API 用户使用权限表示和 Content-Type: application/xml 标头向 资源的权限 子集合发送 POST 请求时,资源会获取新权限。每个新权限都需要一个 角色 和用户
POST /ovirt-engine/api/collection/resource_id/permissions HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<permission>
    <role id="role_id"/>
    <user id="user_id"/>
</permission>

HTTP/1.1 201 Created
Content-Type: application/xml

<permission id="permission_id"
  href="/ovirt-engine/api/resources/resource_id/permissions/permission_id">
    <role id="role_id" href="/ovirt-engine/api/roles/role_id"/>
    <user id="user_id" href="/ovirt-engine/api/users/user_id"/>
    <resource id="resource_id" href="/ovirt-engine/api/collection/resource_id"/>
</permission>

7.4.9. 处理错误

除了标准 HTTP 状态代码外,有些错误需要进一步解释。例如,API 报告资源状态更新失败,或者响应实体正文中带有错误表示的操作。故障包含 原因 和详细 字符串。根据响应状态代码,客户端必须通过提取 错误或 预期的资源表示来容纳失败的请求。此类情况在单独的资源文档中明确指明。
PUT /ovirt-engine/api/collection/resource_id HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<resource>
    <id>id-update-test</id>
</resource>

HTTP/1.1 409 Conflict
Content-Type: application/xml

<fault>
    <reason>Broken immutability constraint</reason>
    <detail>Attempt to set immutable field: id</detail>
</fault>

第 8 章 备份和恢复 API

备份和恢复 API 是一个功能集合,允许您对虚拟机执行完整或文件级备份和恢复。API 结合了 Red Hat Virtualization 的多个组件,如实时快照和 REST API,用于创建和处理可附加到包含独立软件供应商提供的备份软件的临时卷。
有关支持的第三方备份供应商,请参阅 Red Hat Virtualization 生态系统

8.1. 备份虚拟机

使用备份和恢复 API 备份虚拟机。此流程假设您有两个虚拟机:要备份的虚拟机,以及安装用于管理备份的软件的虚拟机。

过程 8.1. 备份虚拟机

  1. 使用 REST API 创建虚拟机的快照来备份:
    POST /ovirt-engine/api/vms/11111111-1111-1111-1111-111111111111/snapshots/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <snapshot>
        <description>BACKUP</description>
    </snapshot>
    注意
    当您对虚拟机执行快照时,生成快照时虚拟机的配置数据副本将存储在快照下的 初始化时,配置属性的 data 属性中。
    重要
    您不能获取标记为可共享或者基于直接 LUN 磁盘的磁盘快照。
  2. 从快照下的 data 属性检索虚拟机的配置数据:
    GET /ovirt-engine/api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  3. 识别快照的磁盘 ID 和快照 ID:
    GET /ovirt-engine/api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111/disks HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  4. 将快照附加到备份虚拟机并激活磁盘:
    POST /ovirt-engine/api/vms/22222222-2222-2222-2222-222222222222/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
        <snapshot id="11111111-1111-1111-1111-111111111111"/>
        <active>true</active>
    </disk>
    
  5. 使用备份虚拟机上的备份软件备份快照磁盘中的数据。
  6. 从备份虚拟机中分离快照磁盘:
    DELETE /ovirt-engine/api/vms/22222222-2222-2222-2222-222222222222/disks/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <detach>true</detach>
    </action>
    
  7. 另外,还可删除快照:
    DELETE /ovirt-engine/api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
已使用在独立虚拟机上安装的备份软件,以固定时间点备份虚拟机状态。

8.2. 恢复虚拟机

恢复使用备份和恢复 API 备份的虚拟机。此流程假设您有一个备份虚拟机,在其中安装用于管理之前备份的软件。

过程 8.2. 恢复虚拟机

  1. 将磁盘附加到备份虚拟机:
    POST /ovirt-engine/api/vms/22222222-2222-2222-2222-222222222222/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>
    
  2. 使用备份软件将备份恢复到磁盘。
  3. 从备份虚拟机中分离磁盘:
    DELETE /ovirt-engine/api/vms/22222222-2222-2222-2222-222222222222/disks/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <detach>true</detach>
    </action>
    
  4. 使用正在恢复的虚拟机的配置数据创建新虚拟机:
    POST /ovirt-engine/api/vms/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <vm>
        <cluster>
            <name>cluster_name</name>
        </cluster>
        <name>NAME</name>
        ...
    </vm>
  5. 将磁盘附加到新虚拟机:
    POST /ovirt-engine/api/vms/33333333-3333-3333-3333-333333333333/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>
    
您已使用备份和恢复 API 创建的备份恢复虚拟机。

第 9 章 数据中心

9.1. 数据中心元素

datacenters 集合提供有关 Red Hat Virtualization 环境中数据中心的信息。API 用户通过从入口点 URI 获取的 rel="datacenters" 链接访问此信息。
下表显示了数据中心资源表示法中包含的特定元素。
表 9.1. 数据中心元素
元素 类型 Description Properties
name 字符串 数据中心的纯文本、人类可读名称。该名称在 所有数据中心资源中是唯一的。
description 字符串 数据中心的纯文本、人类可读的描述  
link rel="storagedomains" 关系 附加到此数据中心的存储域的子集合。 
link rel="clusters" 关系 附加到此数据中心的集群的子集合链接。 
link rel="networks" 关系 到子集合(用于可用于此数据中心的网络)的链接。 
link rel="permissions" 关系 到数据中心权限的子集合的链接。 
link rel="quotas" 关系 到与此数据中心关联的配额的子集合的链接。 
local 布尔值: true 或 false 指定数据中心是一个本地数据中心,如在 all-in-one 实例中创建。
storage_format Enumerated 描述数据中心的存储格式版本。功能 中提供了枚举的值的列表。
version major= minor= complex 数据中心的兼容性级别。
supported_versions complex 数据中心可能的版本级别列表,包括 版本 major= minor=
mac_pool 字符串 与数据中心关联的 MAC 地址池。如果没有指定 MAC 地址池,则使用默认的 MAC 地址池。
status 请参见以下 数据中心状态。
该状态 包含以下枚举的值之一: 未初始化upmaintenancenot_operationalproblematiccontend。这些状态列在 capabilities 下的 data_center_states 中。

9.2. 数据中心的 XML 表述

例 9.1. 数据中心的 XML 表示

<data_center href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000">
  <name>Default</name>
  <description>The default Data Center</description>
  <link href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/storagedomains" rel="storagedomains"/>
  <link href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/clusters" rel="clusters"/>
  <link href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/networks" rel="networks"/>
  <link href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/permissions" rel="permissions"/>
  <link href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/quotas" rel="quotas"/>
  <local>false</local>
  <storage_format>v3</storage_format>
  <version major="4" minor="0"/>
  <supported_versions>
    <version major="4" minor="0"/>
  </supported_versions>
  <status>
    <state>up</state>
  </status>
  <mac_pool href="/ovirt-engine/api/macpools/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
</data_center>

9.3. 数据中心的 JSON 表

例 9.2. 数据中心的 JSON 表示

{
  "data_center" : [ {
    "local" : "false",
    "storage_format" : "v3",
    "version" : {
      "major" : "4",
      "minor" : "0"
    },
    "supported_versions" : {
      "version" : [ {
        "major" : "4",
        "minor" : "0"
      } ]
    },
    "status" : {
      "state" : "up"
    },
    "mac_pool":
            {
                "href": "/ovirt-engine/api/macpools/00000000-0000-0000-0000-000000000000",
                "id": "00000000-0000-0000-0000-000000000000"
            },
    "name" : "Default",
    "description" : "The default Data Center",
    "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255",
    "id" : "00000002-0002-0002-0002-000000000255",
    "link" : [ {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/storagedomains",
      "rel" : "storagedomains"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/clusters",
      "rel" : "clusters"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/networks",
      "rel" : "networks"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/permissions",
      "rel" : "permissions"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/quotas",
      "rel" : "quotas"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/iscsibonds",
      "rel" : "iscsibonds"
    }, {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255/qoss",
      "rel" : "qoss"
    } ]
  } ]
}

9.4. Methods

9.4.1. 创建新数据中心

创建新数据中心需要 namelocal 元素。

例 9.3. 创建数据中心

POST /ovirt-engine/api/datacenters HTTP/1.1
Accept: application/xml
Content-type: application/xml

<data_center>
    <name>NewDatacenter</name>
    <local>false</local>
</data_center>

9.4.2. 更新数据中心

名称,description,storage_type,version,storage_formatmac_pool 元素在创建后是 updatable。

例 9.4. 更新数据中心

PUT /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<data_center>
    <name>UpdatedName</name>
    <description>An updated description for the data center</description>
</data_center>

9.4.3. 删除数据中心

删除数据中心需要 DELETE 请求。

例 9.5. 删除数据中心

DELETE /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

9.5. sub-Collections

9.5.1. Storage Domains Sub-Collection

9.5.1.1. Storage Domains Sub-Collection
每个数据中心包含一个附加存储域的子集合。API 用户使用标准的 REST 方法与此子集合交互。
连接的存储域与顶级存储域类似,但有一个特定于数据中心的 状态和 一组操作。status 元素的状态列在 capabilities 下的 storage_domain_states 中。
重要的
如本节所述的 API 是实验性的,可能随时更改。它不包含在向后兼容声明中。
9.5.1.2. 附加和分离存储域
数据中心仅在至少附加一个存储域时使用,API 用户 POST到数据中心的存储域子集合。
在附加存储域时,必须提供其 idname。将存储域附加到数据中心的示例:

例 9.6. 将存储域附加到数据中心

POST /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"/>

HTTP/1.1 201 Created
Location: /datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed
Content-Type: application/xml

<storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"
  href="/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/
  fabe0451-701f-4235-8f7e-e20e458819ed">
    <name>images0</name>
    <type>data</type>
    <status>
        <state>inactive</state>
    </status>
    <master>true</master>
    <storage>
        <type>nfs</type>
        <address>172.31.0.6</address>
        <path>/exports/RHEVX/images/0</path>
    </storage>
    <data_center id="d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"
      href="/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"/>
    <actions>
        <link rel="activate"
          href="/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/
          storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/activate"/>
        <link rel="deactivate"
          href="/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/
          storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/deactivate"/>
    </actions>
</storage_domain>
使用 DELETE 请求从数据中心分离存储域。包括一个可选的 async 元素,此请求是异步的。

例 9.7. 将存储域从数据中心分离

DELETE /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
  <async>true</async>
</action>
9.5.1.3. Actions
9.5.1.3.1. 激活存储域操作
使用前,连接的存储域需要在数据中心上激活。激活操作不会采取任何具体操作的参数。

例 9.8. 在数据中心上激活存储域的操作

POST /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/activate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
9.5.1.3.2. 取消激活存储域操作
在删除前,在数据中心上取消激活附加的存储域。deactivate 操作不会采取任何具体操作的参数。

例 9.9. 停用数据中心的存储域的操作

POST /ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/deactivate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

9.5.2. 网络 Sub-Collection

9.5.2.1. 网络子注入
与数据中心关联的网络通过网络子集合表示。数据中心的 网络 子集合的表示包含以下元素:
表 9.2. 网络元素
元素 类型 描述
name 字符串 网络的纯文本,人类可读的名称。
description 字符串 网络的纯文本、人类可读的描述。
rel="permissions" 关系 网络权限 子集合的链接。
rel="vnicprofiles" 关系 到网络的 vnicprofiles 子集合的链接。
rel="labels" 关系 到网络 的标签 子集合的链接。
data_center id= 关系 对网络所属的数据中心的引用。
stp 布尔值: true 或 false 指定是否为网络启用跨树协议。
mtu 整数 指定网络的最大传输单元。
usages complex 定义网络的一组 使用 元素。用户可以将网络定义为 vm,并在此级别上 显示网络
在 REST API 中,您可以使用标准的 REST 方法操作 网络 子集合。例如,POST 方法可用于更新网络 ID 或名称

例 9.10. 将网络资源与数据中心关联

POST /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/networks HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<network id="da05ac09-00be-45a1-b0b5-4a6a2438665f">
    <name>ovirtmgmt</name>
</network>

HTTP/1.1 201 Created
Location: http://{host}/clusters/00000000-0000-0000-0000-000000000000/networks/00000000-0000-0000-0000-000000000000
Content-Type: application/xml

<network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000">
  <name>Network_001</name>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/permissions"
    rel="permissions"/>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/vnicprofiles"
    rel="vnicprofiles"/>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/labels"
    rel="labels"/>
  <data_center href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000"/>
  <stp>false</stp>
  <mtu>0</mtu>
  <usages>
    <usage>vm</usage>
  </usages>
</network>
使用 PUT 请求更新资源。网络的最大传输单元使用 PUT 请求来设置,以指定 mtu 元素的整数值。

例 9.11. 设置网络最大传输单元

PUT /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/networks/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<network>
    <mtu>1500</mtu>
</network>
将关联与 DELETE 请求删除到集合中适当的元素。

例 9.12. 从数据中心中删除网络关联

DELETE /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000/networks/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

9.5.3. Quota Sub-Collection

9.5.3.1. Quota Sub-Collection
配额子集合列出了 Red Hat Virtualization Manager 对资源实施的限制。API 用户使用 GET 方法查看此子集合及其资源。

例 9.13. 配额的 XML 表示

<quota href="/ovirt-engine/api/datacenters/56087282-d7a6-11e1-af44-001a4a400e0c
  /quotas/e13ff85a-b2ba-4f7b-8010-e0d057c03dfe" 
  id="e13ff85a-b2ba-4f7b-8010-e0d057c03dfe">
    <name>MyQuota</name>
    <description>A quota for my Red Hat Enterprise
      Virtualization environment</description>
    <data_center href= "/ovirt-engine/api/datacenters/56087282-d7a6-11e1-af44-001a4a400e0c" 
    id="56087282-d7a6-11e1-af44-001a4a400e0c"/>
</quota>
创建新配额需要 namedescription 元素。

例 9.14. 创建配额

POST /ovirt-engine/api/datacenters/56087282-d7a6-11e1-af44-001a4a400e0c/quotas HTTP/1.1
Accept: application/xml
Content-type: application/xml

<quota>
    <name>VMQuota</name>
    <description>My new quota for virtual machines</description>
</quota>
删除配额需要 DELETE 请求。

例 9.15. 删除配额

DELETE /ovirt-engine/api/datacenters/01a45ff0-915a-11e0-8b87-5254004ac988/quotas/e13ff85a-b2ba-4f7b-8010-e0d057c03dfe HTTP/1.1

HTTP/1.1 204 No Content

9.6. Actions

9.6.1. 强制删除数据中心操作

API 用户强制在存储域中遇到无法解析的问题时删除数据中心,例如在删除存储域时丢失与 master 存储域的连接或缺少可用主机。API 包括针对这些情况的帮助 强制 操作。
此操作会在 API 从 Red Hat Virtualization 环境中删除与所选数据中心关联的数据库条目。这意味着,无论关联的存储域是什么,API 都会删除数据中心。
此操作需要 DELETE 方法。请求正文包含将 force 参数设置为 true 的操作 表示。请求还需要额外的 Content-type: application/xml 标头来处理正文中的 XML 表示。

例 9.16. 对数据中心强制删除操作

DELETE /ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
  <force>true</force>
</action>
此操作:
  • 删除与数据中心关联的 数据存储域 的所有数据库信息 ;
  • 删除与数据中心关联的 数据存储域 中资源的所有数据库信息,如虚拟机和模板;
  • iso 和导出存储域 从数据中心分离;以及
  • 删除数据中心的数据库信息。
此操作会覆盖在删除前数据中心为空的要求。
重要的
此操作只删除与数据中心关联的资源的数据库条目。与数据中心关联的 数据存储域 需要在重复使用前手动格式。在另一个数据中心上使用之前,iso导出域 的元数据需要手动清理。

第 10 章 集群

10.1. 集群元素

集群 集合提供有关 Red Hat Virtualization 环境中集群的信息。API 用户通过从入口点 URI 获取的 rel="clusters" 链接访问此信息。
下表显示了集群资源表示法中包含的特定元素。
表 10.1. 集群元素
元素 类型 Description Properties
name 字符串 用户提供的、人类可读的名称。该名称在 所有集群资源中都是唯一的。
description 字符串 集群的自由格式、用户提供的、人类可读的描述。 
link rel="networks" 关系 与此集群关联的网络的子集合的链接。 
link rel="permissions" 关系 集群权限的子集合链接。 
link rel="glustervolumes" 关系 与此集群关联的 Red Hat Gluster Storage 卷的子集合链接。 
link rel="glusterhooks" 关系 与此集群关联的 Red Hat Gluster Storage 卷 hook 的子集合链接。 
link rel="affinitygroups" 关系 与此集群关联的虚拟机关联性组的链接。 
cpu id= complex 定义所有主机所有主机的服务器 CPU 引用必须在集群中支持。
data_center id= GUID 对这个集群的数据中心成员资格的引用。
memory_policy complex 定义主机内存使用率上的集群策略。
scheduling_policy complex 为集群中的主机定义负载平衡或节能模式。
version major= minor= complex 集群的兼容性级别。
supported_versions complex 集群的可能 版本 级别列表。
error_handling complex/enumerated 定义当集群中的主机无法正常运行时处理虚拟机。需要一个 on_error 元素,其中包含在 capabilities 中列出的枚举类型属性。 
virt_service 布尔值 定义是否为此集群公开虚拟化服务。 
gluster_service 布尔值 定义是否为此集群公开 Red Hat Gluster Storage 服务。 
threads_as_cores 布尔值 定义主机是否可以运行的虚拟机,其处理器内核总数大于主机中的内核数。 
tunnel_migration 布尔值 定义虚拟机在迁移过程中是否使用 libvirt-to-libvirt 隧道。 
trusted_service 布尔值 定义是否使用 OpenAttestation 服务器来验证主机。 
ballooning_enabled 布尔值 定义是否为集群启用气球功能。 
ksm 布尔值 定义是否为集群启用 ksm。 
注意
当主机的可用内存低于 20% 时,像 mom.Controllers.Balloon - INFO Ballooning guest:half1 from 1096400 to 1991580 等气球命令会记录到 /etc/vdsm/mom.conf/etc/vdsm/mom.conf 是 Memory Overcommit Manager 日志文件。如果虚拟机没有遵循气球功能,也会将事件添加到事件日志中。

10.2. 内存策略元素

memory_policy 元素包含以下元素:
表 10.2. 内存策略元素
元素 类型 Description Properties
overcommit percent= complex 在主机上没有更多虚拟机启动前允许使用的主机内存百分比。由于 KSM 下的内存共享,虚拟机可以使用超过可用内存。建议的值包括 100 (None), 150 (Server Load)和 200 (Desktop Load)。
transparent_hugepages complex 定义 Transparent Hugepages 的 启用状态。状态可以是 true 或 false。检查 功能 功能集,以确保您的版本支持 透明巨页

10.3. 调度策略元素

scheduling_policy 元素包含以下元素:
表 10.3. 调度策略元素
元素 类型 Description Properties
policy Enumerated 集群中的主机的虚拟机调度模式。功能 中列出了枚举的类型列表。
阈值低= high= duration= complex 定义主机的 CPU 限值。high 属性控制主机在被视为超载前可以具有的最高 CPU 用量百分比。low 属性控制主机在被视为使用率不足前可以拥有的最小 CPU 用量百分比。duration 属性指的是在调度程序启动并将负载移到另一主机前需要超载的主机的秒数。

10.4. 一个集群的 XML 代表

例 10.1. 集群的 XML 表示

<cluster id="00000000-0000-0000-0000-000000000000"
  href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000">
    <name>Default</name>
    <description>The default server cluster</description>
    <link rel="networks"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/networks"/>
    <link rel="permissions"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/permissions"/>
          <link rel="glustervolumes"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/glustervolumes"/>
          <link rel="glusterhooks"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/glusterhooks"/>
          <link rel="affinitygroups"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/affinitygroups"/>
    <cpu id="Intel Penryn Family"/>
        <architecture>X86_64<architecture/>
    <data_center id="00000000-0000-0000-0000-000000000000"
      href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000"/>
    <memory_policy>
        <overcommit percent="100"/>
        <transparent_hugepages>
            <enabled>false</enabled>
        </transparent_hugepages>
    </memory_policy>
    <scheduling_policies>
      <policy>evenly_distributed</policy>
      <thresholds low="10" high="75" duration="120"/>
    </scheduling_policies>
    <version major="4" minor="0"/>
    <supported_versions>
        <version major="4" minor="0"/>
    </supported_versions>
    <error_handling>
        <on_error>migrate</on_error>
    </error_handling>
    <virt_service>true</virt_service>
    <gluster_service>false</gluster_service>
    <threads_as_cores>false</threads_as_cores>
    <tunnel_migration>false</tunnel_migration>
    <trusted_service>false</trusted_service>
    <ha_reservation>false</ha_reservation>
    <ballooning_enabled>false</ballooning_enabled>
    <ksm>
        <enabled>true</enabled>
    </ksm>
</cluster>

10.5. 集群的 JSON 代表

例 10.2. 集群的 JSON 表示

{
  "cluster" : [ {
    "cpu" : {
      "architecture" : "X86_64",
      "id" : "Intel Penryn Family"
    },
    "data_center" : {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255",
      "id" : "00000002-0002-0002-0002-000000000255"
    },
    "memory_policy" : {
      "overcommit" : {
        "percent" : "100"
      },
      "transparent_hugepages" : {
        "enabled" : "true"
      }
    },
    "scheduling_policy" : {
      "policy" : "none",
      "name" : "none",
      "href" : "/ovirt-engine/api/schedulingpolicies/b4ed2332-a7ac-4d5f-9596-99a439cb2812",
      "id" : "b4ed2332-a7ac-4d5f-9596-99a439cb2812"
    },
    "version" : {
      "major" : "4",
      "minor" : "0"
    },
    "error_handling" : {
      "on_error" : "migrate"
    },
    "virt_service" : "true",
    "gluster_service" : "false",
    "threads_as_cores" : "false",
    "tunnel_migration" : "false",
    "trusted_service" : "false",
    "ha_reservation" : "false",
    "optional_reason" : "false",
    "ballooning_enabled" : "false",
    "ksm" : {
      "enabled" : "true"
    },
    "required_rng_sources" : { },
    "name" : "Default",
    "description" : "The default server cluster",
    "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb",
    "id" : "00000001-0001-0001-0001-0000000002fb",
    "link" : [ {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/networks",
      "rel" : "networks"
    }, {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/permissions",
      "rel" : "permissions"
    }, {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/glustervolumes",
      "rel" : "glustervolumes"
    }, {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/glusterhooks",
      "rel" : "glusterhooks"
    }, {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/affinitygroups",
      "rel" : "affinitygroups"
    }, {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb/cpuprofiles",
      "rel" : "cpuprofiles"
    } ]
  } ]
}

10.6. Methods

10.6.1. 创建集群

创建新集群需要 名称cpu id=datacenter 元素。使用 id 属性或 name 元素识别 数据中心

例 10.3. 创建集群

POST /ovirt-engine/api/clusters HTTP/1.1
Accept: application/xml
Content-type: application/xml

<cluster>
    <name>cluster1</name>
    <cpu id="Intel Penryn Family"/>
    <data_center id="00000000-0000-0000-0000-000000000000"/>
</cluster>

10.6.2. 更新集群

名称描述cpu id=error_handling 元素在创建后是 updatable。

例 10.4. 更新集群

PUT /ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<cluster>
    <description>Cluster 1</description>
</cluster>

10.6.3. 删除集群

删除集群需要 DELETE 请求。

例 10.5. 删除集群

DELETE /ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

10.7. sub-Collections

10.7.1. 网络子注入

10.7.1.1. 网络子注入
与集群关联的网络通过网络子集合表示。集群中的每个主机都连接到这些关联的网络。
集群的网络子集合的表示与标准 网络资源 相同,但以下附加元素除外:
表 10.4. 额外网络元素
元素 类型 Description Properties
cluster id= 关系 对这个网络所属的集群的引用。
required 布尔值 定义必填或可选网络状态。 
显示 布尔值 定义显示网络状态。用于向后兼容。 
usages complex 定义网络的一组 使用 元素。用户可以在此级别上将网络定义为 VMDISPLAY 网络。 
API 用户使用标准的 REST 方法操作 网络 子集合。向 网络 子集合的 POSTing a network idname 引用将网络与集群相关联。

例 10.6. 将网络资源与集群关联

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<network id="da05ac09-00be-45a1-b0b5-4a6a2438665f">
    <name>ovirtmgmt</name>
</network>

HTTP/1.1 201 Created
Location: http://{host}/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks/da05ac09-00be-45a1-b0b5-4a6a2438665f
Content-Type: application/xml

<network id="da05ac09-00be-45a1-b0b5-4a6a2438665f"
  href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks/
  da05ac09-00be-45a1-b0b5-4a6a2438665f">
    <name>ovirtmgmt</name>
    <status>
        <state>operational</state>
    </status>
    <description>Display Network</description>
    <cluster id="99408929-82cf-4dc7-a532-9d998063fa95"
      href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
    <data_center id="d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"
      href="/ovirt-engine/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"/>
    <required>true</required>
    <usages>
        <usage>VM</usage>
    </usages>
</network>
使用 PUT 请求更新资源。

例 10.7. 设置显示网络状态

PUT /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks/da05ac09-00be-45a1-b0b5-4a6a2438665f HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<network>
    <required>false</required>
    <usages>
        <usage>VM</usage>
        <usage>DISPLAY</usage>
    </usages>
</network>
使用 PUT 请求设置所需的或可选网络状态,以指定 所需 元素的布尔值(true 或 false)。

例 10.8. 设置可选网络状态

PUT /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks/da05ac09-00be-45a1-b0b5-4a6a2438665f HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<network>
    <required>false</required>
</network>
将关联与 DELETE 请求删除到集合中适当的元素。

例 10.9. 从集群中移除网络关联

DELETE /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/networks/da05ac09-00be-45a1-b0b5-4a6a2438665f HTTP/1.1

HTTP/1.1 204 No Content

10.7.2. Storage Volumes Sub-Collection

10.7.2.1. Red Hat Gluster Storage Volumes Sub-Collection
Red Hat Virtualization 提供了创建和管理 Red Hat Gluster Storage 卷的方法。Red Hat Gluster Storage 卷与集群关联,并使用 glustervolumes 子集合表示。
glustervolumes 子集合中的 Red Hat Gluster Storage 卷资源的表示使用以下元素定义:
表 10.5. Gluster 卷元素
元素 类型 Description Properties
volume_type Enumerated 定义卷类型。有关卷类型列表,请参阅 能力 集合。
bricks 关系 红帽 Gluster 存储 brick 的子集合。在创建新卷时,请求需要一组 brick 元素来在此集群中创建和管理。需要 Red Hat Gluster Storage 服务器的 server_id,以及 brick 目录的 brick_dir 元素
transport_types complex 定义一组卷 transport_type 元素。有关可用传输类型的列表,请查看 capabilities 集合。
replica_count 整数 定义复制卷的文件复制数。
stripe_count 整数 定义条状卷的条带数
选项 complex 组额外的红帽 Gluster 存储选项 元素。每个 选项 都包括一个选项 name一个值

例 10.10. Red Hat Gluster Storage 卷的 XML 表示

<gluster_volume id="99408929-82cf-4dc7-a532-9d998063fa95"
  href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95
  /glustervolume/e199f877-900a-4e30-8114-8e3177f47651">
    <name>GlusterVolume1</name>
    <link rel="bricks"
      href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95
      /glustervolume/e199f877-900a-4e30-8114-8e3177f47651/bricks"/>
    <volume_type>DISTRIBUTED_REPLICATE</volume_type>
    <transport_types>
        <transport_type>TCP</transport_type>
    </transport_types>
    <replica_count>2</replica_count>
    <stripe_count>1</stripe_count>
    <options>
        <option>
            <name>cluster.min-free-disk</name>
            <value>536870912</value>
        </option>
    </options>   
</gluster_volume>
通过 POST 请求创建 Red Hat Gluster Storage,其名称为、volume_typebricks 到 sub-collection。

例 10.11. 创建 Red Hat Gluster Storage 卷

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<gluster_volume>
    <name>GlusterVolume1</name>
    <volume_type>DISTRIBUTED_REPLICATE</volume_type>
    <bricks>
        <brick>
            <server_id>server1</server_id>
            <brick_dir>/exp1</brick_dir>
        </brick>
    <bricks>
</gluster_volume>
删除具有 DELETE 请求的 Red Hat Gluster Storage 卷。

例 10.12. 删除 Red Hat Gluster Storage 卷

DELETE /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651 HTTP/1.1

HTTP/1.1 204 No Content
重要
glustervolumes 子集合中的资源无法更新。
10.7.2.2. bricks Sub-Collection
glustervolumes 子集合包含自己的 brick 子集合,用于在 Red Hat Gluster Storage 卷中定义各个 brick。可以使用 All-Content: true 标头检索 GET 请求的其他信息。
卷的 brick 子集合的表示使用以下元素定义:
表 10.6. Brick 元素
元素 类型 Description Properties
server_id 字符串 对 Red Hat Gluster 存储服务器的引用。
brick_dir 字符串 定义 Red Hat Gluster Storage 服务器上的 brick 目录。
replica_count 整数 定义卷中 brick 的文件复制数。
stripe_count 整数 定义卷中 brick 的条带数
利用所需的 server_idbrick_dir 到子集合,通过 POST 请求创建新 brick。

例 10.13. 添加 brick

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/bricks HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<brick>
    <server_id>server1</server_id>
    <brick_dir>/exp1</brick_dir>
</brick>
使用 DELETE 请求删除 brick。

例 10.14. 删除 brick

DELETE /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/bricks/0a473ebe-01d2-444d-8f58-f565a436b8eb HTTP/1.1

HTTP/1.1 204 No Content
重要
bricks 子集合中的资源无法更新。
10.7.2.3. Actions
10.7.2.3.1. 开始操作
start 操作使得 Gluster 卷可供使用。

例 10.15. 启动一个卷

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/start HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action/>
使用可选的 force boolean 元素强制对正在运行的卷执行操作。这可用于在正在运行的卷中启动禁用的 brick 进程。
10.7.2.3.2. 停止操作
stop 操作取消激活 Gluster 卷。

例 10.16. 停止卷

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/stop HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action/>
使用可选的 force boolean 元素来暴力强制停止操作。
10.7.2.3.3. 设置选项操作
setoption 操作设定卷选项。

例 10.17. 设置选项

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/setoption HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action>
    <option>
        <name>cluster.min-free-disk</name>
        <value>536870912</value>
    </option>
</action>
10.7.2.3.4. 重置选项操作
resetoption 操作重置卷选项。

例 10.18. 重置选项

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/resetoption HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action>
        <option>
            <name>cluster.min-free-disk</name>
        </option>
</action>
10.7.2.3.5. 重置所有选项操作
resetalloptions 操作重置所有卷选项。

例 10.19. 重置所有选项

POST /ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95/glustervolumes/e199f877-900a-4e30-8114-8e3177f47651/resetalloptions HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action/>

10.7.3. 关联性组子集合

10.7.3.1. 关联性组 Sub-Collection
affinitygroups 子集合中的虚拟机关联性组资源的表示使用以下元素定义:
表 10.7. 关联性组元素
元素 类型 Description Properties
name 字符串 affinity 组的纯文本可读名称。
cluster 关系 对 affinity 组应用到的集群的引用。 
positive 布尔值: true 或 false 指定关联性组是否将正关联性或负关联性应用到该关联性组成员的虚拟机。 
enforcing 布尔值: true 或 false 指定关联性组是否使用应用到该关联性组成员的关联性的硬或软实施。 

例 10.20. 虚拟机关联性组的 XML 表示

<affinity_group href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/affinitygroups/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
  <name>AF_GROUP_001</name>
  <cluster href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000"/>
  <positive>true</positive>
  <enforcing>true</enforcing>
</affinity_group>
通过带有 required name 属性的 POST 请求创建虚拟机关联性组。

例 10.21. 创建虚拟机关联性组

POST https://XX.XX.XX.XX/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/affinitygroups HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<affinity_group>
  <name>AF_GROUP_001</name>
  <positive>true</positive>
  <enforcing>true</enforcing>
</affinity_group>
使用 DELETE 请求删除虚拟机关联性组。

例 10.22. 删除虚拟机关联性组

DELETE https://XX.XX.XX.XX/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000/affinitygroups/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

第 11 章 网络

11.1. 网络元素

网络 集合提供有关 Red Hat Virtualization 环境中的逻辑网络的信息。API 用户通过从入口点 URI 获取的 rel="networks" 链接访问此信息。
下表显示了网络资源表示法中包含的特定元素。
表 11.1. 网络元素
元素 类型 Description Properties
link rel="vnicprofiles" 关系 附加到此逻辑网络的 VNIC 配置集的子集合链接。 
link rel="labels" 关系 附加到此逻辑网络的标签的子集合链接。 
data_center id= GUID 对这个集群所属的数据中心的引用。
vlan id= 整数 VLAN 标签。
stp 布尔值: true 或 false 如果在此网络上启用了生成树协议,则为 true
mtu 整数 设置逻辑网络的最大传输单元。如果省略,则逻辑网络将使用默认值。
status 操作 或非操作之一 网络的状态。这些状态列在 capabilities 下的 network_states 中。
usages complex 定义网络的一组 使用 元素。用户可以在此级别上定义网络作为 虚拟机网络 
重要的
如本节所述的 API 是实验性的,可能随时更改。它不包含在向后兼容声明中。

11.2. XML 代表网络资源

例 11.1. 网络资源的 XML 表示

<network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000"
  id="00000000-0000-0000-0000-000000000000">
  <name>ovirtmgmt</name>
  <description>Management Network</description>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/permissions" rel="permissions"/>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/vnicprofiles" rel="vnicprofiles"/>
  <link href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/labels" rel="labels"/>
  <data_center href="/ovirt-engine/api/datacenters/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000"/>
  <stp>false</stp>
  <mtu>0</mtu>
  <usages>
    <usage>vm</usage>
  </usages>
</network>

11.3. 网络资源的 JSON 表示

例 11.2. 网络资源的 JSON 表示

{
  "network" : [ {
    "data_center" : {
      "href" : "/ovirt-engine/api/datacenters/00000002-0002-0002-0002-000000000255",
      "id" : "00000002-0002-0002-0002-000000000255"
    },
    "stp" : "false",
    "mtu" : "0",
    "usages" : {
      "usage" : [ "vm" ]
    },
    "name" : "ovirtmgmt",
    "description" : "Management Network",
    "href" : "/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009",
    "id" : "00000000-0000-0000-0000-000000000009",
    "link" : [ {
      "href" : "/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009/permissions",
      "rel" : "permissions"
    }, {
      "href" : "/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009/vnicprofiles",
      "rel" : "vnicprofiles"
    }, {
      "href" : "/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009/labels",
      "rel" : "labels"
    } ]
  } ]
}

11.4. Methods

11.4.1. 创建网络资源

创建新网络需要 namedatacenter 元素。

例 11.3. 创建网络资源

POST /ovirt-engine/api/networks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<network>
    <name>network 1</name>
    <data_center id="00000000-0000-0000-0000-000000000000"/>
</network>

11.4.2. 更新网络资源

名称,description,ip,vlan,stpdisplay 元素在创建后是 updatable。

例 11.4. 更新网络资源

PUT /ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<network>
    <description>Network 1</description>
</network>

11.4.3. 删除网络资源

删除网络需要 DELETE 请求。

例 11.5. 删除网络

DELETE /ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

11.5. 子集合

11.5.1. 网络 VNIC Profile Sub-Collection

VNIC (虚拟网络接口控制器)配置集(也称为虚拟机接口配置集)是应用于用户和组的自定义配置集来限制网络带宽。每个 vnicprofile 都包含以下元素:
表 11.2. vnic 配置集的元素
元素 类型 描述
name 字符串 配置集的唯一标识符。
description 字符串 配置集的纯文本描述。
network 字符串 配置集应用到的逻辑网络的唯一标识符。
port_mirroring 布尔值: truefalse 默认值为 false

例 11.6. 网络的 vnicprofile 子集合的 XML 表示

<vnic_profile href= "/ovirt-engine/api/vnicprofiles/f9c2f9f1-3ae2-4100-a9a5-285ebb755c0d" id="f9c2f9f1-3ae2-4100-a9a5-285ebb755c0d">
	<name>Peanuts</name>
	<description>shelled</description>
	<network href= "/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009" id="00000000-0000-0000-0000-000000000009"/>
	<port_mirroring>false</port_mirroring>
	</vnic_profile>
</vnic_profiles>

11.5.2. Network Labels Sub-Collection

网络标签是纯文本、人类可读的标签,允许您自动关联逻辑网络和物理主机网络接口。每个 标签 都包含以下元素:
表 11.3. 标签的元素
元素 类型 Description
network 字符串 标签附加到的网络的 hrefid

例 11.7. 网络标签子集合的 XML 表示

<labels>
  <label href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/labels/eth0" id="eth0">
    <network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000"
      id="00000000-0000-0000-0000-000000000000"/>
  </label>
</labels>

11.5.3. Methods

11.5.3.1. 将标签附加到逻辑网络操作
您可以将标签附加到逻辑网络,以自动化将该逻辑网络与附加相同标签的物理主机网络接口关联。

例 11.8. 将标签附加到逻辑网络的操作

POST /ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/labels/ HTTP/1.1
Accept: application/xml
Content-type: application/xml

<label id="Label_001" />
11.5.3.2. 从逻辑网络中删除标签
从逻辑网络中删除标签需要 DELETE 请求。

例 11.9. 从逻辑网络中删除标签

DELETE /ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000/labels/[label_id] HTTP/1.1

HTTP/1.1 204 No Content

第 12 章 存储域

12.1. 存储域元素

storagedomains 集合提供有关 Red Hat Virtualization 环境中存储域的信息。API 用户通过从入口点 URI 获取的 rel="storagedomains" 链接访问此信息。
下表显示了存储域资源表示法中包含的特定元素。
表 12.1. 存储域元素
元素 类型 Description Properties
link rel="permissions" 关系 到存储域权限的子集合的链接。 
link rel="files" 关系 到这个存储域 的文件 子集合的链接。 
link rel="vms" 关系 vms 子集合的链接,用于 类型为 export 的存储域。 
link rel="templates" 关系 类型为 export 的存储域的 templates 子集合的链接。 
type Enumerated 存储域类型。功能 中提供了枚举的值的列表。
external_status complex/enumerated 外部系统和插件报告的存储域健康状况。state 元素包含 okinfowarningerrorfailure 的枚举值。 
master 布尔值: true 或 false 如果这是数据中心的 master 存储域,则为 true
主机 complex 对应初始化此存储域的主机的引用。此主机的唯一限制是它应当有权访问指定的物理存储。
storage complex 描述存储域的底层存储。
可用 整数 以字节为单位的可用空间。
使用的 整数 以字节为单位使用的空间。
已提交 整数 以字节为单位提交的空间。
storage_format Enumerated 描述存储域的存储格式版本。功能 中提供了枚举的值的列表。
wipe_after_delete 布尔值: true 或 false 在存储域中默认设置 wipe after delete 选项。可以在创建域后编辑此选项,但是这样做不会在删除已存在的磁盘属性后更改擦除。 
warning_low_space_indicator 整数 设置警告低空间指示符选项的百分比值。如果存储域中的可用空间低于这个百分比,则会向用户显示警告消息并记录日志。 
critical_space_action_blocker 整数 以 GB 为单位的值,用于设置 critical space action blocker 选项。如果存储域中可用的可用空间低于此值,则会向用户和记录错误消息显示,并且任何占用空间的新操作(即便是临时使用)都会被阻止。 
重要的
如本章所述的 API 是实验性的,可能随时更改。它不包含在向后兼容声明中。

12.2. 存储域的 XML 表

例 12.1.  存储域的 XML 表示

<storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"
  href="/ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed">
    <name>data0</name>
    <link rel="permissions"
      href="/ovirt-engine/api/storagedomains/be24cd98-8e23-49c7-b425-1a12bd12abb0/permissions"/>
    <link rel="files"
      href="/ovirt-engine/api/storagedomains/be24cd98-8e23-49c7-b425-1a12bd12abb0/files"/>
    <type>data</type>
    <master>true</master>
    <storage>
        <type>nfs</type>
        <address>172.31.0.6</address>
        <path>/exports/RHEVX/images/0</path>
    </storage>
    <available>156766306304</available>
    <used>433791696896</used>
    <committed>617401548800</committed>
    <storage_format>v1</storage_format>
    <wipe_after_delete>true</wipe_after_delete>
    <warning_low_space_indicator>10</warning_low_space_indicator>
    <critical_space_action_blocker>5</critical_space_action_blocker>
</storage_domain>

12.3. 存储域的 JSON 代表

例 12.2. 存储域的 JSON 表示

{
  "storage_domain" : [ {
    "type" : "data",
    "master" : "false",
    "storage" : {
      "address" : "192.0.2.0",
      "type" : "nfs",
      "path" : "/storage/user/nfs"
    },
    "available" : 193273528320,
    "used" : 17179869184,
    "committed" : 0,
    "storage_format" : "v3",
    "name" : "NFS_01",
    "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba",
    "id" : "8827b158-6d2e-442d-a7ee-c6fd4718aaba",
    "link" : [ {
      "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba/permissions",
      "rel" : "permissions"
    }, {
      "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba/disks",
      "rel" : "disks"
    }, {
      "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba/storageconnections",
      "rel" : "storageconnections"
    }, {
      "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba/disksnapshots",
      "rel" : "disksnapshots"
    }, {
      "href" : "/ovirt-engine/api/storagedomains/8827b158-6d2e-442d-a7ee-c6fd4718aaba/diskprofiles",
      "rel" : "diskprofiles"
    } ]
  } ]
}

12.4. Methods

12.4.1. 创建存储域

创建新存储域需要 名称类型主机和存储 元素。使用 id 属性或 name 元素识别 host 元素。
您可以通过在 POST 请求中指定 <wipe _after_delete> 来默认在存储域上启用 wipe after delete 选项。可以在创建域后编辑此选项,但是这样做不会在删除已存在的磁盘属性后更改擦除。

例 12.3.  创建存储域

POST /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml
    
<storage_domain>
    <name>data1</name>
    <type>data</type>
    <host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
    <storage>
        <type>nfs</type>
        <address>172.31.0.6</address>
        <path>/exports/RHEVX/images/0</path>
    </storage>
</storage_domain>
API 用户在创建后将存储域附加到数据中心。

12.4.2. 更新存储域

只有 删除元素后 的名称和 擦除 才是创建后的 updatable。在删除元素后更改擦除,在删除已存在的磁盘属性后不会改变擦除。

例 12.4.  更新存储域

PUT /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml
    
<storage_domain>
    <name>data2</name>
    ...
    <wipe_after_delete>true</wipe_after_delete>
    ...
</storage_domain>

12.4.3. 删除存储域

删除存储域需要 DELETE 请求。

例 12.5. 删除存储域

DELETE /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed HTTP/1.1

HTTP/1.1 204 No Content

12.5. 存储类型

12.5.1. 存储类型

storage 元素包含一个 type 元素,这是在 capabilities 集合下找到的枚举值。
storage 元素还包含特定于每种 存储类型 的额外元素。接下来的几个部分将检查这些额外的 存储类型 元素。

12.5.2. NFS 存储

下表包含 存储 描述中的 nfs 特定元素。
表 12.2. 特定于 NFS 的元素
元素 类型 Description Properties
address 字符串 NFS 服务器的主机名或 IP 地址。
path 字符串 服务器上可挂载的 NFS 挂载目录的路径。

12.5.3. PosixFS 存储

下表包含 存储 描述中的 posixfs 特定的元素。
表 12.3. 特定于 PosixFS 的元素
元素 类型 Description Properties
address 字符串 PosixFS 服务器的主机名或 IP 地址。
path 字符串 服务器上可挂载的 PosixFS 挂载目录的路径。
vfs_type 字符串 Linux 支持的 PosixFS 共享的文件系统类型。
mount_options 字符串 挂载 PosixFS 共享的选项。

12.5.4. iSCSI 和 FCP 存储

下表包含存储描述中的 iscsifcp 特定的元素。
表 12.4. iSCSI 和 FCP 特定元素
元素 类型 Description Properties
logical_unit id= complex 逻辑单元的 id。存储域也接受多个 iSCSI 或 FCP 逻辑单元。
override_luns 布尔值 定义是否将所有逻辑单元设置替换为新设置。设置为 true 以覆盖。
logical_unit 包含一组子元素。
表 12.5. 逻辑单元元素
元素 类型 Description Properties
address 字符串 包含存储设备的服务器地址。
port 整数 服务器的端口号。
target 字符串 存储设备的目标 IQN。
用户名 字符串 用于登录到目标的 CHAP 用户名。
密码 字符串 用于登录到目标的 CHAP 密码。
serial 字符串 目标的串行 ID。
vendor_id 字符串 目标的供应商名称。
product_id 字符串 目标的产品代码。
lun_mapping 整数 目标的逻辑单元号设备映射。
如果是 iSCSI,如果 logical_unit 描述还包含涉及 LUN 的 iSCSI 目标的详细信息,则目标会在创建存储域时执行自动登录。

12.5.5. LocalFS Storage

存储描述中的 localfs 特定的元素有:
表 12.6. localfs 特定的元素
元素 类型 Description Properties
path 字符串 主机上本地存储域的路径。
localfs 存储域需要一个数据中心,其 storage_type 设为 localfs。此数据中心仅包含单个主机集群,主机集群仅包含单个主机。

12.6. 导出存储域

12.6.1. 导出存储域

注意
导出存储域已弃用。存储数据域可以从数据中心取消附加,并导入到同一环境中或不同环境中的其他数据中心。然后,可以将虚拟机、浮动虚拟磁盘镜像和模板从导入的存储域上传到附加的数据中心。有关 导入存储域 的信息,请参阅 Red Hat Virtualization 管理指南中的 导入现有存储域部分。
设置为 export 的存储域包含 vmstemplates 子集合,它列出了存储在该特定存储域上的导入候选虚拟机和模板。

例 12.6. 列出导出存储域的虚拟机子集合

GET /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/vms
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<vms>
    <vm id="082c794b-771f-452f-83c9-b2b5a19c0399"
      href="/ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/
      vms/082c794b-771f-452f-83c9-b2b5a19c0399">
        <name>vm1</name>
        ...
        <storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"
          href="/ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed"/>
        <actions>
            <link rel="import" href="/ovirt-engine/api/storagedomains/
              fabe0451-701f-4235-8f7e-e20e458819ed/vms/
              082c794b-771f-452f-83c9-b2b5a19c0399/import"/>
        </actions>
    </vm>
</vms>
这些集合中的虚拟机和模板在顶级虚拟机和模板集合中对应部分具有相似的表示,但它们还包含 storage_domain 引用和 导入操作
导入操作导出存储域 导入虚拟机或模板。目标集群和存储域使用 clusterstorage_domain 引用来指定。
包括一个可选 name 元素,为虚拟机或模板指定特定名称。

例 12.7. 从导出存储域导入虚拟机的操作

POST /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/vms/
082c794b-771f-452f-83c9-b2b5a19c0399/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>images0</name>
    </storage_domain>
    <cluster>
        <name>Default</name>
    </cluster>
</action>

例 12.8. 从导出存储域导入模板的操作

POST /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/templates/
082c794b-771f-452f-83c9-b2b5a19c0399/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>images0</name>
    </storage_domain>
    <cluster>
        <name>Default</name>
    </cluster>
</action>
包含可选的 克隆 布尔值元素,以导入虚拟机为新实体。

例 12.9. 将虚拟机导入为新实体的操作

POST /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/vms/
082c794b-771f-452f-83c9-b2b5a19c0399/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>images0</name>
    </storage_domain>
    <cluster>
        <name>Default</name>
    </cluster>
    <clone>true</clone>
    <vm>
        <name>MyVM</name>
    </vm>
    ...
</action>
包括一个可选的 disk 元素,用于选择使用独立磁盘 id 元素导入的 磁盘

例 12.10. 为导入操作选择磁盘

POST /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/vms/
082c794b-771f-452f-83c9-b2b5a19c0399/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <cluster>
        <name>Default</name>
    </cluster>
    <vm>
        <name>MyVM</name>
    </vm>
    ...
    <disks>
        <disk id="4825ffda-a997-4e96-ae27-5503f1851d1b"/>
    </disks>
</action>
使用 DELETE 请求从 导出存储域中 删除虚拟机或模板。

例 12.11. 从导出存储域中删除虚拟机

DELETE /ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed/vms/
082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml

HTTP/1.1 204 No Content

12.7. Glance 镜像存储域

12.7.1. Glance 镜像存储域

类型为 Image 的存储域代表作为外部提供程序添加到 Red Hat Virtualization 环境中的 OpenStack 镜像服务实例。这些 Glance 镜像存储域包含一个 镜像 子集合,其中包含已导出到的虚拟机镜像,或者从该 Glance 镜像存储域导入。

例 12.12. 列出 Glance 镜像存储域的镜像子集合

GET /ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000/images
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<images>
  <image href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000/images/
    00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
    <actions>
      <link href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000/images/
        00000000-0000-0000-0000-000000000000/import" rel="import"/>
    </actions>
    <name>RHEL_65_Disk_001</name>
    <storage_domain href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000"
      id="00000000-0000-0000-0000-000000000000"/>
  </image>
  <image href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000/images/
    00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
    <actions>
      <link href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000/images/
        00000000-0000-0000-0000-000000000000/import" rel="import"/>
    </actions>
    <name>RHEL_65_Disk_002</name>
    <storage_domain href="/ovirt-engine/api/storagedomains/00000000-0000-0000-0000-000000000000"
      id="00000000-0000-0000-0000-000000000000"/>
  </image>
</images>
导入操作 从 Glance 镜像存储域导入虚拟机映像。目标存储域使用 storage_domain 引用和带有集群引用的目标集群指定。
包括一个可选 name 元素,为虚拟机或模板指定特定名称。

例 12.13. 从 Glance 镜像存储域导入虚拟机的操作

POST /ovirt-engine/api/storagedomains/00000000-0000-0000-000000000000/images/
00000000-0000-0000-000000000000/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>images0</name>
    </storage_domain>
    <cluster>
        <name>images0</name>
    </cluster>
</action>
您还可以通过指定 import_as_template 参考来将镜像导入为模板:

例 12.14. 作为模板从 Glance 镜像存储域导入虚拟机的操作

POST /ovirt-engine/api/storagedomains/00000000-0000-0000-000000000000/images/
00000000-0000-0000-000000000000/import HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>images0</name>
    </storage_domain>
    <cluster>
        <name>images0</name>
    </cluster>
    </import_as_template>true</import_as_template>
</action>

12.8. 导入块存储域

12.8.1. 导入块存储域

可以使用 REST API 将 type 设置为 iscsifcp 的现有块存储域导入到引擎中。通过导入存储域,您可以在引擎数据库中故障时恢复数据,并将数据从一个数据中心或环境迁移到另一个数据中心。
此流程假设存储域没有附加到任何环境中的数据中心或主机。要导入并附加现有的块存储域到数据中心,必须初始化目标数据中心。

过程 12.1. 导入块存储域

  1. 在 iSCSI 存储服务器中发现目标:
    POST /ovirt-engine/api/hosts/052a880a-53e0-4fe3-9ed5-01f939d1df66/iscsidiscover
    Accept: application/xml
    Content-Type: application/xml
    
    <action>
        <iscsi>
            <address>192.0.2.0</address>
            <port>3260</port>
        </iscsi>
    </action>
    
  2. 使用上一步中发现的 iSCSI 目标,获取导入候选的存储域列表:
    POST /ovirt-engine/api/hosts/052a880a-53e0-4fe3-9ed5-01f939d1df66/unregisteredstoragedomainsdiscover HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <iscsi>
            <address>192.0.2.0</address>
        </iscsi>
        <iscsi_target>iqn.name1.120.01</iscsi_target>
        <iscsi_target>iqn.name2.120.02</iscsi_target>
        <iscsi_target>iqn.name3.120.03</iscsi_target>
    </action>
    
    响应显示没有与主机关联的存储域列表,如下所示:
    <action>
        <iscsi>
            <address>192.0.2.0</address>
        </iscsi>
        <storage_domains>
            <storage_domain id="6ab65b16-0f03-4b93-85a7-5bc3b8d52be0">
                <name>scsi4</name>
                <type>data</type>
                <external_status>
                  <state>ok</state>
                </external_status>
                <master>false</master>
                <storage>
                    <type>iscsi</type>
                    <volume_group id="OLkKwa-VmEM-abW7-hPiv-BGrw-sQ2E-vTdAy1"/>
                </storage>
                <available>0</available>
                <used>0</used>
                <committed>0</committed>
                <storage_format>v3</storage_format>
            </storage_domain>
        <status>
            <state>complete</state>
        </status>
        <iscsi_target>iqn.name1.120.01</iscsi_target>
        <iscsi_target>iqn.name2.120.02</iscsi_target>
        <iscsi_target>iqn.name3.120.03</iscsi_target>
    </action>
    
    
  3. 将 iSCSI 存储域导入到主机:
    POST /ovirt-engine/api/storagedomains/ HTTP/1.1
      Accept: application/xml
      Content-type: application/xml
    
    <storage_domain id="6ab65b16-0f03-4b93-85a7-5bc3b8d52be0">
        <import>true</import>
        <host id="052a880a-53e0-4fe3-9ed5-01f939d1df66" />
        <type>data</type>
        <storage>
            <type>iscsi</type>
        </storage>
    </storage_domain>
    
您现在已将块存储域导入到主机。
现在,您可能想要将存储域附加到主机,并查找任何未注册的磁盘。按照以下步骤附加存储域和相关磁盘:

过程 12.2. 附加块存储域

  1. 将存储域附加到数据中心:
    POST /ovirt-engine/api/datacenters/01a45ff0-915a-45e0-8d56-5253234ac988/storagedomains
    Accept: application/xml
    Content-Type: application/xml
    
    <storage_domain>
        <name>scsi4</name>
    </storage_domain>
    
  2. 在存储域中查找未注册的磁盘:
    GET /ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks;unregistered
    Accept: application/xml
    Content-Type: application/xml
    
    这将返回有关存储域中任何未注册磁盘的信息,其响应如下:
    <disk href= "/ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks/b662f6da-3e97-4bb6-8a50-bda9980a6e83" id="b662f6da-3e97-4bb6-8a50-bda9980a6e83">
      <actions>
          <link href= "/ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks/b662f6da-3e97-4bb6-8a50-bda9980a6e83/export" rel="export"/>
      </actions>
      <name>disk1</name>
      <description/>
      <link href= "/ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks/b662f6da-3e97-4bb6-8a50-bda9980a6e83/permissions" rel="permissions"/>
      <link href= "/ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks/b662f6da-3e97-4bb6-8a50-bda9980a6e83/statistics" rel="statistics"/>
      <alias>disk1</alias>
      <image_id>930d653e-2a11-45ce-8042-9935584a3f87</image_id>
      <storage_domain href= "/ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0" id="8ac10ec5-7cc9-4b1c-9c97-f121a9e4679a"/>
      <storage_domains>
          <storage_domain id="6ab65b16-0f03-4b93-85a7-5bc3b8d52be0"/>
      </storage_domains>
      <size>10737418240</size>
      <provisioned_size>10737418240</provisioned_size>
      <actual_size>10737418240</actual_size>
      <status>
          <state>ok</state>
      </status>
      <interface>ide</interface>
      <format>raw</format>
      <sparse>false</sparse>
      <bootable>false</bootable>
      <shareable>false</shareable>
      <wipe_after_delete>false</wipe_after_delete>
      <propagate_errors>false</propagate_errors>
      <storage_type>image</storage_type>
    </disk>
    
  3. 将磁盘附加到存储域:
    POST /ovirt-engine/api/storagedomains/6ab65b16-0f03-4b93-85a7-5bc3b8d52be0/disks;unregistered
    Accept: application/xml
    Content-Type: application/xml
    
    <disk id='b662f6da-3e97-4bb6-8a50-bda9980a6e83'></disk>
    
磁盘现在附加到导入的块存储域。

12.9. sub-Collections

12.9.1. files Sub-Collection

每个存储域下的 文件 子集合提供了一种方式,供客户端列出可用的文件。此子集合专门针对 ISO 存储域,其中包含管理员通过 Red Hat Virtualization Manager 上传的 ISO 镜像和虚拟软盘磁盘(VFD)。
向虚拟机添加 CD-ROM 设备需要 ISO 镜像,来自 ISO 存储域 的文件 子集合。

例 12.15. 列出 ISO 存储域的文件子集合

GET /ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<files>
    <file id="en_winxp_pro_with_sp2.iso"
      href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files/
      en_winxp_pro_with_sp2.iso">
        <name>en_winxp_pro_with_sp2.iso</name>
        <type>iso</type>
        <storage_domain id="00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"
          href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"/>
    </file>
    <file id="boot.vfd"
      href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da/files/
      boot.vfd">
        <name>boot.vfd</name>
        <type>vfd</type>
        <storage_doman id="00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"
          href="/ovirt-engine/api/storagedomains/00f0d9ce-da15-4b9e-9e3e-3c898fa8b6da"/>
    </file>
</files>
与其他资源一样,文件具有不透明 IDhref 属性。name 元素包含 filename。

12.10. Actions

12.10.1. 导入现有存储域

注意
导出存储域已弃用。存储数据域可以从数据中心取消附加,并导入到同一环境中或不同环境中的其他数据中心。然后,可以将虚拟机、浮动虚拟磁盘镜像和模板从导入的存储域上传到附加的数据中心。有关 导入存储域 的信息,请参阅 Red Hat Virtualization 管理指南中的 导入现有存储域部分。
API 为用户提供一个 Red Hat Virtualization Manager 实例中删除 ISO 或导出存储域的功能,而无需重新格式化底层存储并将其导入到另一个实例。除了指定名称外,导入与添加新存储域类似。

例 12.16. 导入现有的导出存储域

POST /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<storage_domain>
    <type>export</type>
    <storage>
        <type>nfs</type>
        <address>172.31.0.6</address>
        <path>/exports/RHEVX/export-domain</path>
    </storage>
    <host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
</storage_domain>

HTTP/1.1 201 Created
Content-Type: application/xml

<storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"
  href="/ovirt-engine/api/storagedomains/fabe0451-701f-4235-8f7e-e20e458819ed">
    <name>export1</name>
    ...
</storage_domain>

12.10.2. 删除存储域

storage_domain 引用在存储域的 DELETE 请求正文中传递。storage_domain 引用采用以下格式:
<storage_domain>
    <host id="..."/>
</storage_domain>
<storage_domain>
    <host>
        <name>...</name>
    </host>
</storage_domain>

格式化存储域

API 用户提供了一个可选 格式 元素,用于指定在删除后是否格式化存储域。

例 12.17. 删除后格式化存储域

<storage_domain>
    <host id="..."/>
    <format>true</format>
</storage_domain>
如果没有传递 格式 元素,则存储域将保持未格式化。

存储域的逻辑删除

API 还提供用于逻辑删除存储域的功能。这会保留存储域的数据来导入。使用 destroy 元素以逻辑方式删除存储域并保留数据。

例 12.18. 对存储域进行逻辑删除

<storage_domain>
    <host id="..."/>
    <destroy>true</destroy>
</storage_domain>

12.10.3. 刷新 LUN 大小

用户可以在增大存储服务器上底层 LUN 的大小后刷新 LUN 大小。refreshluns 操作会强制重新扫描提供的 LUN,并在需要时使用新大小更新数据库。

例 12.19. 刷新 LUN 大小

POST /ovirt-engine/api/storagedomains/262b056b-aede-40f1-9666-b883eff59d40/refreshluns HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
   <logical_units>
      <logical_unit id="1IET_00010001"/>
      <logical_unit id="1IET_00010002"/>
   </logical_units>
</action>

第 13 章 存储连接

13.1. 存储连接元素

表 13.1. 存储连接基础元素
元素 类型 Description Properties
type nfs 之一posixfslocaliscsi 存储域的类型。
address 字符串 存储域的主机名或 IP 地址。
(仅 NFS 和 iSCSI 需要)
主机 字符串 hypervisor 的 idname主机 是可选的。提供它将尝试通过主机连接到存储;不提供它会导致数据库中保留存储详细信息。
表 13.2. 存储连接基于文件的存储元素
元素 类型 Description Properties
path 字符串 存储域挂载的文件路径。该路径 不能更新为存储连接已使用的路径。
mount_options 字符串 挂载 PosixFS 共享的选项。 
vfs_type 字符串 Linux 支持的 PosixFS 共享的文件系统类型。
nfs_version 字符串 使用的 NFS 版本。 
nfs_timeo 整数 NFS 客户端将等待请求完成的时间(以秒为单位)。 
nfs_retrans 整数 NFS 客户端重新传输的请求数量将尝试完成请求。 
表 13.3. 存储连接 iSCSI 元素
元素 类型 Description Properties
port 整数 用于 iSCSI 存储域的 TCP 端口。
target 字符串 存储设备的目标 IQN。
用户名 字符串 用于登录到目标的 CHAP 用户名。 
密码 字符串 用于登录到目标的 CHAP 密码。 

13.2. 存储连接资源的 XML 表示

例 13.1. 存储连接资源的 XML 表示

<storage_connections>
  <storage_connection href= "/ovirt-engine/api/storageconnections/608c5b96-9939-4331-96b5-197f28aa2e35"    id="608c5b96-9939-4331-96b5-197f28aa2e35">
    <address>domain.example.com</address>
    <type>nfs</type>
    <path>/var/lib/exports/iso</path>
  </storage_connection>
  <storage_connection href= "/ovirt-engine/api/storageconnections/2ebb3f78-8c22-4666-8df4-e4bb7fec6b3a" id="2ebb3f78-8c22-4666-8df4-e4bb7fec6b3a">
    <address>domain.example.com</address>
    <type>posixfs</type>
    <path>/export/storagedata/username/data</path>
    <vfs_type>nfs</vfs_type>
  </storage_connection>
</storage_connections>

13.3. Methods

13.3.1. 创建新存储连接

创建新存储连接需要 POST 请求。
可以在不添加存储域的情况下创建新的存储连接。主机 idname 是可选的;提供它将尝试通过主机连接到存储。

例 13.2. 创建新存储连接

POST /ovirt-engine/api/storageconnections HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_connection>
   <type>nfs</type>
   <address>domain.example.com</address>
   <path>/export/storagedata/username/data</path>
   <host>
     <name>Host_Name</name>
   </host>
</storage_connection>

13.3.2. 删除存储连接

删除存储连接需要 DELETE 请求。只有存储域和 LUN 磁盘都引用它时,才能删除存储连接。
主机名或 id 是可选的;提供它从该主机卸载连接。

例 13.3. 删除存储连接

DELETE /ovirt-engine/api/storageconnections/Storage_Connection_ID HTTP/1.1
Accept: application/xml
Content-type: application/xml

<host>
  <name>Host_Name</name>
</host>

13.3.3. 更新存储连接

更新现有存储连接需要 PUT 请求。存储域必须处于维护模式或未附加才能成功更新连接。
提供 主机名或 id 是可选的;如果提供,主机会尝试与更新的存储详细信息的连接。

例 13.4. 更新存储连接

PUT /ovirt-engine/api/storageconnections/Storage_Connection_ID HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_connection>   
  <address>updated.example.domain.com</address>
  <host>
      <name>Host_name</name>
   </host>
</storage_connection>

13.3.4. 更新 iSCSI 存储连接

更新现有 iSCSI 存储连接需要 PUT 请求。iSCSI 存储域必须处于维护模式或未附加才能成功更新连接。

例 13.5. 更新存储连接

PUT /ovirt-engine/api/storageconnections/Storage_Connection_ID HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_connection>   
  <port>3456</port>
</storage_connection>

13.3.5. 使用现有存储连接添加新存储域

使用现有存储连接添加新存储域需要 POST 请求。这仅适用于基于文件的存储域: NFSPOSIX 和本地

例 13.6. 使用现有存储连接添加新存储域

POST /ovirt-engine/api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>New_Domain</name>
  <type>data</type>
 <storage id="Storage_Connection_ID"/>
  <host>
    <name>Host_Name</name>
  </host>
</storage_domain>

13.3.6. 将额外的存储连接附加到 iSCSI 存储

将额外的存储连接附加到 iSCSI 存储域需要 POST 请求。

例 13.7. 将额外的存储连接附加到 iSCSI 存储

POST /ovirt-engine/api/storagedomains/iSCSI_Domain_ID/storageconnections HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_connection id="Storage_Connection_ID">
</storage_connection>

13.3.7. 从 iSCSI 存储分离存储连接

从 iSCSI 存储域中分离存储连接需要 DELETE 请求。

例 13.8. 从 iSCSI 存储分离存储连接

DELETE /ovirt-engine/api/storagedomains/iSCSI_Domain_ID/storageconnections/Storage_Connection_ID HTTP/1.1
Accept: application/xml
Content-type: application/xml

13.3.8. 定义到 iSCSI 目标的凭证

使用管理门户添加 iSCSI 存储域时,只能为该域指定单个用户名和密码。但是,一些设置要求集群中的每个主机都使用单独的用户名和密码。可以使用 storageconnectionextensions 元素将特定凭证应用到每个主机的每个 iSCSI 目标。

例 13.9. 为 iSCSI 目标定义凭证

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/storageconnectionextensions HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storageconnectionextension>
    <target>iqn.2010.05.com.example:iscsi.targetX</target>
    <username>jimmy</username>
    <password>p@55w0Rd!</password>
</storageconnectionextension>

第 14 章 主机

14.1. 主机元素

主机集合 提供有关 Red Hat Virtualization 环境中主机的信息。API 用户通过从入口点 URI 获取的 rel="hosts" 链接访问此信息。
可以使用 All-Content: true 标头检索 GET 请求的其他信息。
下表显示了主机资源表示法中包含的特定元素。
表 14.1. 主机元素
元素 类型 Description Properties
link rel="storage" 关系 到主机存储的 storage 子集合的链接。
link rel="nics" 关系 到主机网络接口的 nics 子集合的链接。 
link rel="numanodes" 关系 主机 NUMA 节点的 numanodes 子集合的链接。 
link rel="tags" 关系 到主机标签 标签 子集合的链接。 
link rel="permissions" 关系 到主机 权限权限 子集合的链接。 
link rel="statistics" 关系 到主机 统计数据的统计信息 子集合的链接。
link rel="hooks" 关系 到主机 hook 的 hook 子集合的链接。
link rel="fenceagents" 关系 到主机隔离代理的 fenceagents 子集合的链接。
link rel="katelloerrata" 关系 到主机勘误表的 katelloerrata 子集合的链接。
link rel="devices" 关系 主机设备的 devices 子集合的链接。
link rel="networkattachments" 关系 到 host 网络配置的 networkattachments 子集合的链接。
link rel="unmanagednetworks" 关系 到主机上非受管网络的 unmanagednetworks 子集合的链接。
link rel="storageconnectionextensions" 关系 到 host 存储连接扩展的 storageconnectionextensions 子集合的链接。
name 字符串 主机的唯一标识符。 
root_password 字符串 此主机的 root 密码仅包含在客户端提供的主机表示法中。
注释 字符串 有关主机的任何注释。 
address 字符串 主机的 IP 地址或主机名。
certificate complex 对主机证书详细信息的引用,包括 组织 和主题
status 请参见以下 主机状态。
external_status complex/enumerated 外部系统和插件报告的主机健康状态。state 元素包含 okinfowarningerrorfailure 的枚举值。 
cluster id= GUID 对包含此主机的集群的引用。 
port 整数 在此主机上运行的 VDSM 守护进程的监听端口。
type rhelovirt_node之一 主机类型。
storage_manager priority= 布尔值: true 或 false 指定主机是否为存储管理器。
version major= minor= build= revision= full_version= complex 主机的兼容性级别。
hardware_information complex 有关主机硬件的信息,包括 制造商,版本,serial_number,product_name,uuid, 和 family 
power_management type= complex 主机电源管理的配置选项,包括 启用选项kdump_detectionauto_pm_enabled代理。有关主机电源管理选项的更多信息,请参阅 第 14.4 节 “电源管理元素” 
ksm 布尔值: true 或 false 如果启用了内核同页合并(KSM),则为 true 
transparent_hugepages 布尔值: true 或 false 如果启用了 Transparent Hugepages,则为 true 
iscsi complex 主机的 SCSI 启动器
ssh complex 有关与主机 SSH 连接的详细信息,包括 端口和 指纹 
cpu complex 主机 CPU 的统计信息。包括 CPU 名称、拓扑内核=、拓扑 socket=拓扑 threads=速度的子元素拓扑 cores=拓扑 socket= 聚合总内核时聚合了总核。虚拟机可用的内核总数等于插槽的数量乘以每个插槽的内核。
内存 整数 主机内存量(以字节为单位)。
max_scheduling_memory 整数 可以字节为单位使用的最大内存量。
summary complex 主机上虚拟机的摘要统计信息。包括 活动迁移 和虚拟机 总数的子元素
os type= complex 主机上安装的操作系统的详细信息,包括 版本 full_version=
libvirt_version major= minor= build= revision= full_version= complex 主机的 libvirt 兼容性级别。
status 包含以下枚举的值之一: downerror、initialize、Installing、install_failedmaintenancenon_operationalnon_responsivePending_approval、preparing_ for_maintenance、connect、boott assigned 和 up 这些状态列在 capabilities 下的 host_states 中。

14.2. 主机的 XML 表述

例 14.1. 主机的 XML 表示

<host href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
    <actions>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/upgrade" rel="upgrade"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/setupnetworks" rel="setupnetworks"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/fence" rel="fence"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/refresh" rel="refresh"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/install" rel="install"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/activate" rel="activate"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/deactivate" rel="deactivate"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/approve" rel="approve"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/forceselectspm" rel="forceselectspm"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/enrollcertificate" rel="enrollcertificate"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/iscsilogin" rel="iscsilogin"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/unregisteredstoragedomainsdiscover" rel="unregisteredstoragedomainsdiscover"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/iscsidiscover" rel="iscsidiscover"/>
        <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/commitnetconfig" rel="commitnetconfig"/>
    </actions>
    <name>host1</name>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/storage" rel="storage"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics" rel="nics"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/numanodes" rel="numanodes"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/tags" rel="tags"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/permissions" rel="permissions"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/statistics" rel="statistics"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/hooks" rel="hooks"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/fenceagents" rel="fenceagents"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/katelloerrata" rel="katelloerrata"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/devices" rel="devices"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/networkattachments" rel="networkattachments"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/unmanagednetworks" rel="unmanagednetworks"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/storageconnectionextensions" rel="storageconnectionextensions"/>
    <address>host1.example.com</address>
    <certificate>
        <organization>exampleorg</organization>
        <subject>O=exampleorg,CN=XX.XX.XX.XX</subject>
    </certificate>
    <status>
        <state>up</state>
    </status>
    <external_status>
        <state>ok</state>
    </external_status>
    <cluster href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <port>54321</port>
    <type>rhel</type>
    <storage_manager priority="2">false</storage_manager>
    <spm>
        <priority>2</priority>
        <status>
            <state>none</state>
        </status>
    </spm>
    <version major="4" minor="17" build="20" revision="0" full_version="vdsm-4.17.20-0.el7ev"/>
    <power_management>
        <enabled>false</enabled>
        <pm_proxies/>
        <automatic_pm_enabled>true</automatic_pm_enabled>
        <kdump_detection>true</kdump_detection>
    </power_management>
    <ksm>
        <enabled>true</enabled>
    </ksm>
    <transparent_hugepages>
        <enabled>true</enabled>
    </transparent_hugepages>
    <iscsi>
        <initiator>iqn.2001-04.com.example:diskarrays-sn-a8675309</initiator>
    </iscsi>
    <ssh>
        <port>22</port>
        <fingerprint>00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00</fingerprint>
    </ssh>
    <cpu>
        <topology cores="2" sockets="1"/>
        <name>Intel(R) Xeon(R) CPU E5430 @ 2.66GHz</name>
        <speed>2656</speed>
    </cpu>
    <memory>12430868480</memory>
    <max_scheduling_memory>12026118144</max_scheduling_memory>
    <summary>
        <active>2</active>
        <migrating>0</migrating>
        <total>3</total>
    </summary>
    <protocol>stomp</protocol>
    <os type="RHEL">
        <version full_version="7.2-9.el7_2.1"/>
    </os>
    <libvirt_version major="1" minor="2" build="17" revision="0" full_version="libvirt-1.2.17-13.el7_2.2"/>
    <kdump_status>disabled</kdump_status>
    <selinux>
        <mode>enforcing</mode>
    </selinux>
    <auto_numa_status>disable</auto_numa_status>
    <numa_supported>false</numa_supported>
    <live_snapshot_support>true</live_snapshot_support>
    <update_available>false</update_available>
    <device_passthrough>
        <enabled>true</enabled>
    </device_passthrough>
</host>

14.3. 主机的 JSON 代表

例 14.2. 主机的 JSON 表示

{
  "host" : [ {
    "address" : "198.51.100.0",
    "certificate" : {
      "organization" : "example.com",
      "subject" : "O=example.com,CN=192.0.2.0"
    },
    "status" : {
      "state" : "up"
    },
    "cluster" : {
      "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb",
      "id" : "00000001-0001-0001-0001-0000000002fb"
    },
    "port" : "54321",
    "type" : "rhel",
    "storage_manager" : {
      "value" : "true",
      "priority" : "5"
    },
    "spm" : {
      "priority" : "5"
    },
    "version" : {
      "major" : "4",
      "minor" : "16",
      "build" : "8",
      "revision" : "1",
      "full_version" : "vdsm-4.16.8.1-6.el6ev"
    },
    "hardware_information" : {
      "manufacturer" : "System Manufacturer To Be Filled By O.E.M.",
      "version" : "System Version To Be Filled By O.E.M.",
      "serial_number" : "Serial Number To Be Filled By O.E.M.",
      "product_name" : "Product Name To Be Filled By O.E.M.",
      "uuid" : "9fa0a1a2-a3a4-a5a6-a7a8-a9aaabacadae",
      "family" : "Family To Be Filled By O.E.M.",
      "supported_rng_sources" : {
        "source" : [ "RANDOM" ]
      }
    },
    "power_management" : {
      "enabled" : "false",
      "options" : {
        "option" : [ {
          "name" : "secure",
          "value" : "false"
        } ]
      },
      "automatic_pm_enabled" : "true",
      "kdump_detection" : "true",
      "type" : "apc"
    },
    "ksm" : {
      "enabled" : "false"
    },
    "transparent_hugepages" : {
      "enabled" : "true"
    },
    "iscsi" : {
      "initiator" : "iqn.1994-05.com.example:795610ff2632"
    },
    "ssh" : {
      "port" : "22",
      "fingerprint" : "77:27:38:25:8f:60:8d:93:9c:2c:b0:cb:5e:19:f4:53"
    },
    "cpu" : {
      "topology" : {
        "sockets" : "1",
        "cores" : "4",
        "threads" : "1"
      },
      "name" : "Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz",
      "speed" : 2833
    },
    "memory" : 2989490176,
    "max_scheduling_memory" : 2584739840,
    "summary" : {
      "active" : "0",
      "migrating" : "0",
      "total" : "0"
    },
    "protocol" : "stomp",
    "os" : {
      "version" : {
        "full_version" : "6Server - 6.6.0.2.el6"
      },
      "type" : "RHEL"
    },
    "libvirt_version" : {
      "major" : "0",
      "minor" : "10",
      "build" : "2",
      "revision" : "0",
      "full_version" : "libvirt-0.10.2-46.el6_6.2"
    },
    "kdump_status" : "disabled",
    "selinux" : {
      "mode" : "enforcing"
    },
    "auto_numa_status" : "unknown",
    "numa_supported" : "false",
    "live_snapshot_support" : "true",
    "actions" : {
      "link" : [ {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/fence",
        "rel" : "fence"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/approve",
        "rel" : "approve"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/forceselectspm",
        "rel" : "forceselectspm"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/iscsilogin",
        "rel" : "iscsilogin"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/iscsidiscover",
        "rel" : "iscsidiscover"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/commitnetconfig",
        "rel" : "commitnetconfig"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/deactivate",
        "rel" : "deactivate"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/install",
        "rel" : "install"
      }, {
        "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/activate",
        "rel" : "activate"
      } ]
    },
    "name" : "Host-07",
    "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe",
    "id" : "ea7aa772-d2af-4a5c-9350-d86f005c93fe",
    "link" : [ {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/storage",
      "rel" : "storage"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/nics",
      "rel" : "nics"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/numanodes",
      "rel" : "numanodes"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/tags",
      "rel" : "tags"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/permissions",
      "rel" : "permissions"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/statistics",
      "rel" : "statistics"
    }, {
      "href" : "/ovirt-engine/api/hosts/ea7aa772-d2af-4a5c-9350-d86f005c93fe/hooks",
      "rel" : "hooks"
    } ]
  } ]
}

14.4. 电源管理元素

power_management 元素允许用户设置电源管理配置,这是主机隔离所需要的。配置 power_management 时,需要特定的子元素。
表 14.2. 电源管理选项
元素 类型 Description Properties
type= 隔离设备代码 capabilities 集合中提供了有效的隔离设备代码列表。
enabled 布尔值: true 或 false 指明是否启用或禁用电源管理配置。
address 字符串 主机的主机名或 IP 地址。
用户名 字符串 电源管理的有效用户名。 
密码 字符串 用于电源管理的有效、强大的密码。 
选项 complex 所选 type= 的隔离选项使用选项 name=""value="" 字符串指定。 
agents complex 当使用多个隔离时指定隔离代理选项。使用 order 子元素来对隔离代理进行优先排序。代理会根据顺序运行,直到隔离操作成功为止。当两个或多个隔离代理具有相同的 顺序 时,它们会同时运行。其他子元素包括 类型ipuserpasswordoptions 
automatic_pm_enabled 布尔值: true 或 false 切换主机的自动电源控制,以节省能源。当设置为 true 时,如果集群的负载较低,则主机将自动关闭,并在需要时再次开机。当创建主机时,这设置为 true,除非由用户禁用。 
kdump_detection 布尔值: true 或 false 在关闭前,切换决定是否在主机上运行 kdump。当设置为 true 时,主机不会在 kdump 过程中关闭。当主机启用了电源管理时,这设置为 true,除非由用户禁用。 
options 元素需要 选项 子元素列表。每个 选项 都需要一个 名称和类型 属性。某些选项仅适用于功能集合中定义的特定隔离类型。
新主机在 POST到主机资源时包括可选的 power_management 配置。power_management 配置使用 PUT 请求。

例 14.3. 主机的电源管理配置的 XML 表示

<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"
  href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3">
    <name>host1</name>
    ...
    <power_management type="ilo">
        <enabled>true</enabled>
        <address>192.168.1.107</address>
        <username>admin</username>
        <password>p@55w0Rd!</password>
        <options>
            <option name="secure" value="true"/>
            <option name="port" value="54345"/>
            <option name="slot" value="3"/>
        </options>
        <agents>
            <agent id="07f0b9ce-923a-4a96-a532-3c898fa8b6da">
                <type>apc</type>
                <order>1</order>
                <ip>192.168.1.111</ip>
                <user>example</user>
                <password>p@55w0rd!</password>
                <port>9</port>
                <options>
                    <option name="power_wait" value="5"/> 
                    <option name="secure" value="false"/>
                </options>
            </agent>
            <agent id="50c71ba2-8495-11e0-b931-e20e458819ed">
                <type>rsa</type>
                <order>2</order>
                <ip>192.168.1.112</ip>
                <user>example</user>
                <password>p@55w0rd!</password>
                <port>9</port>
                <options>
                    <option name="power_wait" value="5"/> 
                    <option name="secure" value="false"/>
                </options>
            </agent>
        </agents>
        <automatic_pm_enabled>true</automatic_pm_enabled>
        <kdump_detection>true</kdump_detection>
    </power_management>
    ...
</host>

14.5. 内存管理元素

API 为主机的内存管理提供了两个配置设置。
内核同页合并(KSM) 可减少从多个相同页面到单个页面参考对内存页面的引用。这有助于优化内存密度。KSM 使用 ksm 元素。

例 14.4. 设置 KSM 内存管理

PUT /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3 HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"
  href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3">
    <ksm>true</ksm>
</host>
透明巨页支持将内存页 的大小扩展到标准 4kB 限制之外。这可减少内存消耗并增加主机性能。透明巨页支持使用 transparent_hugepages 元素。

例 14.5. 设置透明巨页内存管理

PUT /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3 HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"
  href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3">
    <transparent_hugepages>true</transparent_hugepages>
</host>
Transparent Hugepage 支持的可用性包括在 功能 集合中。

14.6. Methods

14.6.1. 创建主机

创建新主机需要 名称、address root_password 元素。

例 14.6. 创建主机

POST /ovirt-engine/api/hosts HTTP/1.1
Accept: application/xml
Content-type: application/xml

<host>
    <name>host2</name>
    <address>host2.example.com</address>
    <root_password>p@55w0Rd!</root_password>
</host>
root_password 元素仅包含在客户端提供的初始表示中,它不在从后续请求返回的表示中公开。

14.6.2. 更新主机

name,description,cluster,power_management,transparent_hugepagesksm 元素是创建后的 updatable。

例 14.7. 更新主机

PUT /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<host>
    <name>host3</name>
</host>

14.6.3. 删除主机

删除主机需要 DELETE 请求。

例 14.8. 删除主机

DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

14.7. sub-Collections

14.7.1. Host Network Attachments Sub-Collection

network_attachments 子集合表示主机的网络配置。每个 network_attachment 元素代表附加到主机的网络,包含以下元素:
表 14.3. 主机网络附加的元素
元素
类型
Description
Properties
network id=
GUID
对主机附加到的网络的引用。
host_nic id=
GUID
对网络附加到的主机网络接口的引用。
ip_address_assignments
complex
网络的 IP 配置。每个 ip_address_assignment 包含 assignment_methodip address= netmask= gateway= 子元素。
 
属性
complex
定义网络的自定义属性键。每个属性 都包含 namevalue 子元素。请参阅 第 14.7.2.3.2 节 “网络附加自定义属性”
 
reported_configurations
complex
网络附加的配置属性的只读列表。当网络附加与数据中心的逻辑网络定义不同步时,in_sync 布尔值为 false。每个 reported_configuration 包含 名称,expected_value,actual_value, 和 in_sync 子元素。
host id=
GUID
对主机的引用。

例 14.9. 主机上网络附加的 XML 表示

<network_attachment href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
    <network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009" id="00000000-0000-0000-0000-000000000009"/>
    <host_nic href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <ip_address_assignments>
        <ip_address_assignment>
            <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
            <assignment_method>dhcp</assignment_method>
        </ip_address_assignment>
    </ip_address_assignments>
    <reported_configurations>
        <in_sync>true</in_sync>
        <reported_configuration>
            <name>mtu</name>
            <expected_value>1500</expected_value>
            <actual_value>1500</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>bridged</name>
            <expected_value>true</expected_value>
            <actual_value>true</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>vlan</name>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>boot_protocol</name>
            <expected_value>DHCP</expected_value>
            <actual_value>DHCP</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
    </reported_configurations>
    <host href="/ovirt-engine/api/hosts/f59a29cd-587d-48a3-b72a-db537eb21957" id="f59a29cd-587d-48a3-b72a-db537eb21957"/>
</network_attachment>
将网络附加到主机时,需要使用 idname网络和 host_nic 元素。host_nic ID 可以引用未使用的网络接口卡或绑定。

例 14.10. 将网络附加到主机

POST /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments HTTP/1.1
Accept: application/xml
Content-type: application/xml

<network_attachment>
    <network id="00000000-0000-0000-0000-000000000000"/>
    <host_nic id="00000000-0000-0000-0000-000000000000"/>
</network_attachment>
host_nicip_address_assignmentsproperties 元素是创建后的 updatable。更改 host_nic ID 将网络移动到不同的网络接口卡。

例 14.11. 修改主机网络附加

PUT /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<network_attachment>
    <host_nic id="00000000-0000-0000-0000-000000000000"/>
    <ip_address_assignments>
        <ip_address_assignment> 
            <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
	    <assignment_method>static</assignment_method>
	</ip_address_assignment>
    </ip_address_assignments>
    <properties>
        <property>
	    <name>bridge_opts</name>
	    <value>
	        forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
	    </value>
        </property>
    </properties>
</network_attachment>
在网络附加上使用 DELETE 请求从主机分离网络。

例 14.12. 从主机中分离网络

DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

HTTP/1.1 204 No Content
重要
必须明确提交对网络附加配置的更改。请参阅 第 14.8.8 节 “提交主机网络配置操作”

14.7.2. 主机网络接口子检测

14.7.2.1. 主机网络接口子检测
nics 子集合代表主机的物理网络接口。可以使用 All-Content: true 标头检索 GET 请求的其他信息。表示法中的每个 host_nic 元素都充当网络接口,包含以下元素:
表 14.4. 主机网络接口的元素
元素 类型 Description Properties
name 字符串 主机网络接口的名称,如 eth0 [a]
link rel="statistics" 关系 到主机网络接口 统计的统计信息 子集合的链接。
link rel="labels" 关系 到主机网络接口 标签的标签 子集合的链接。
link rel="networkattachments" 关系 到主机网络接口配置的 networkattachments 子集合的链接。 
link rel="master" 关系 如果这是从接口,则对主绑定接口的引用。
host id= GUID 对主机的引用。
network id= GUID 对网络的引用(如果有的话),该接口被附加。 [b]
mac address= 字符串 接口的 MAC 地址。
ip address= netmask= gateway= mtu= complex 接口的 IP 级别配置。 
mtu complex 接口的最大传输单元。 
boot_protocol Enumerated 主机引导时 IP 地址分配的协议。枚举的值列表包括在 能力 中。 
status Enumerated 网络接口的链接状态。这些状态列在 capabilities 下的 host_nic_states 中。
VLAN ID 整数 此接口代表的 VLAN。
绑定 complex 绑定接口 的选项 和从属 NIC 列表。 [c]
bridged 布尔值 定义网桥网络状态。对于网桥网络,设置为 true;对于无网桥网络,设置为 false 
[a] 仅在添加绑定接口时需要。其他接口是只读的,无法添加。
[b] 仅在添加绑定接口时需要。其他接口是只读的,无法添加。
[c] 仅在添加绑定接口时需要。其他接口是只读的,无法添加。

例 14.13. 主机上网络接口的 XML 表示

<host_nic id="00000000-0000-0000-0000-000000000000"
  href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
  00000000-0000-0000-0000-000000000000">
    <actions>
        <link rel="attach"
      href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
      00000000-0000-0000-0000-000000000000/attach"/>
        <link rel="detach"
      href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
      00000000-0000-0000-0000-000000000000/detach"/>
    </actions>
    <name>bond0</name>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/statistics" rel="statistics"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/labels" rel="labels"/>
    <link href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments" rel="networkattachments"/>
    <host href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <mac address="00:00:00:00:00:00"/>
    <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
    <boot_protocol>dhcp</boot_protocol>
    <status>
        <state>up</state>
    </status>
    <bonding>
        <options>
            <option name="mode" value="4" type="Dynamic link aggregation (802.3ad)"/>
            <option name="miimon" value="100"/>
        </options>
        <slaves>
            <host_nic id="00000000-0000-0000-0000-000000000000"/>
            <host_nic id="00000000-0000-0000-0000-000000000000"/>
        </slaves>
    </bonding>
    <mtu>1500</mtu>
    <bridged>true</bridged>
    <custom_configuration>false</custom_configuration>
</host_nic>
在 REST API 中,您只能创建绑定接口。请参阅 第 14.7.2.2 节 “绑定接口”。所有其他网络接口都包含 updatable 网络ipboot_protocol 元素。
使用 PUT 请求修改网络接口。
PUT /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<host_nic>
    <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
    <boot_protocol>static</boot_protocol>
</host_nic>
删除具有 DELETE 请求的网络接口。
DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content
14.7.2.2. 绑定接口
绑定接口表示为 host_nic 资源,其中包含 bonding 元素。
表 14.5. 绑定接口属性
元素 类型 Description Properties
选项 complex 绑定接口 的选项 元素列表。每个 选项 都包含属性 namevalue 属性。 [a]
Slaves complex 绑定接口从属 host_nic id= 元素的列表。 [b]
[a] 仅在添加绑定接口时需要。其他接口是只读的,无法添加。
[b] 仅在添加绑定接口时需要。其他接口是只读的,无法添加。
在创建新 host_nic (POST)或更新 host_nic (PUT)时,API 用户创建新的绑定。使用 idname 元素来识别从属 host_nic 元素。添加新网络接口时,需要 namenetwork 元素。使用 id 属性或 name 元素标识 network 元素。

例 14.14. 创建绑定接口

POST /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<host_nic>
    <name>bond4</name>
    <network id="00000000-0000-0000-0000-000000000000"/>
    <bonding>
        <slaves>
            <host_nic id="00000000-0000-0000-0000-000000000000"/>
            <host_nic id="00000000-0000-0000-0000-000000000000"/>
        </slaves>
    </bonding>
</host_nic>
重要的
bond0bond1、 bond2、bond3bond4 是绑定接口的唯一有效名称。

例 14.15. 删除绑定接口

删除带有 DELETE 请求的绑定接口。
DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content
重要的
必须明确提交对绑定接口配置的更改。请参阅 第 14.8.8 节 “提交主机网络配置操作”
14.7.2.3. 网络接口网络附件
14.7.2.3.1. 网络接口网络附件
主机上的每个网络接口都公开一个 network_attachments 子集合,代表网卡的网络附加定义。每个 network_attachment 代表附加到网络接口的网络,并包含以下元素:
表 14.6. 主机网络接口网络附加的元素
元素
类型
Description
Properties
network id=
GUID
对接口附加到的网络的引用。
host_nic id=
GUID
对主机网络接口的引用。
ip_address_assignments
complex
网络的 IP 配置。每个 ip_address_assignment 包含 assignment_methodip address= netmask= gateway= 子元素。
 
属性
complex
定义网络的自定义属性键。每个属性 都包含 namevalue 子元素。
 
reported_configurations
complex
网络附加的配置属性的只读列表。当网络附加包含未提交的网络配置时,in_sync 布尔值为 false。每个 reported_configuration 包含 名称,expected_value,actual_value, 和 in_sync 子元素。

例 14.16. 网络接口卡中网络附加定义的 XML 表示

<network_attachment href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
    <network href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009" id="00000000-0000-0000-0000-000000000009"/>
    <host_nic href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <ip_address_assignments>
        <ip_address_assignment>
            <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
            <assignment_method>static</assignment_method>
        </ip_address_assignment>
    </ip_address_assignments>
    <reported_configurations>
        <in_sync>true</in_sync>
        <reported_configuration>
            <name>mtu</name>
            <expected_value>1500</expected_value>
            <actual_value>1500</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>bridged</name>
            <expected_value>true</expected_value>
            <actual_value>true</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>vlan</name>
            <in_sync>true</in_sync>
        </reported_configuration>
        <reported_configuration>
            <name>boot_protocol</name>
            <expected_value>DHCP</expected_value>
            <actual_value>DHCP</actual_value>
            <in_sync>true</in_sync>
        </reported_configuration>
    </reported_configurations>
</network_attachment>
将网络附加到网卡时,需要使用 idnamenetwork 元素。

例 14.17. 将网络附加到主机网卡

POST /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments HTTP/1.1
Accept: application/xml
Content-type: application/xml

<networkattachment>
    <network id="00000000-0000-0000-0000-000000000000"/>
</networkattachment>
ip_address_assignmentsproperties 元素是创建后的 updatable。

例 14.18. 修改网络附加

PUT /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<networkattachment>
    <ip_address_assignments>
        <ip_address_assignment> 
            <ip address="XX.XX.XX.XX" netmask="255.255.255.0" gateway="XX.XX.XX.XX"/>
	    <assignment_method>static</assignment_method>
	</ip_address_assignment>
    </ip_address_assignments>
</networkattachment>
使用网络附加上的 DELETE 请求从网卡中分离网络。

例 14.19. 从主机网络接口卡中分离网络

DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/networkattachments/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

HTTP/1.1 204 No Content
重要
必须明确提交对网络附加配置的更改。请参阅 第 14.8.8 节 “提交主机网络配置操作”
14.7.2.3.2. 网络附加自定义属性
自定义属性可应用于网络附加。每个属性都包含 namevalue 子元素。要修改自定义属性,请在网络附加上执行 PUT 请求,或使用 setupnetworks 操作执行 POST 请求。
表 14.7. 主机网络接口的自定义网桥选项的元素
元素 类型 描述
name 字符串 属性的唯一标识符。网桥选项设置 bridge_opts 的名称。
value 字符串 网桥选项,由有效键和值表示,语法如下: [key]=[value]。使用空格字符分隔多个条目。以下键有效,示例提供的值:

forward_delay=1500
gc_timer=3765 
group_addr=1:80:c2:0:0:0
group_fwd_mask=0x0
hash_elasticity=4
hash_max=512
hello_time=200
hello_timer=70
max_age=2000
multicast_last_member_count=2
multicast_last_member_interval=100
multicast_membership_interval=26000
multicast_querier=0
multicast_querier_interval=25500
multicast_query_interval=13000
multicast_query_response_interval=1000
multicast_query_use_ifaddr=0
multicast_router=1
multicast_snooping=1
multicast_startup_query_count=2
multicast_startup_query_interval=3125

例 14.20. 网络附加属性子集合的 XML 表示

<network_attachment>
  ...
  <properties>
    <property>
      <name>bridge_opts</name>
      <value>
        forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
      </value>
    </property>
  </properties>
  ...
</network_attachment>
14.7.2.4. 网络接口标签
您可以将标签附加到主机网卡,以自动将该网卡与附加相同标签的逻辑网络的关联。

例 14.21. 将标签附加到网卡

POST /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/labels HTTP/1.1
Accept: application/xml
Content-type: application/xml

<label id="Label_001" />
从物理主机网卡中删除标签需要 DELETE 请求。

例 14.22. 从网卡中删除标签

DELETE /ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/00000000-0000-0000-0000-000000000000/labels/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content
14.7.2.5. 网络接口统计信息
每个主机的网络接口会公开主机网络接口 统计信息的统计信息 子集合。每个统计 都包含以下元素:
表 14.8. 主机网络接口统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
host_nic id= 关系 与包含 host_nic 资源的关系。
下表列出了主机上网络接口的统计类型。
表 14.9. 主机 NIC 统计类型
名称
Description
data.current.rx
接收的数据每秒的速率(以字节/秒为单位)。
data.current.tx
传输数据的每秒速率(以字节/秒为单位)。
data.total.rx
接收的总数据。
data.total.tx
传输的总数据。
errors.total.rx
接收数据的总错误。
errors.total.tx
传输数据的总错误。

例 14.23. 主机网络接口统计子集合的 XML 表示

<statistics>
    <statistic id="00000000-0000-0000-0000-000000000000"
      href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
      00000000-0000-0000-0000-000000000000/statistics/
      00000000-0000-0000-0000-000000000000">
        <name>data.current.rx</name>
        <description>Receive data rate</description>
        <values type="DECIMAL">
            <value>
                <datum>0</datum>
            </value>
        </values>
        <type>GAUGE</type>
        <unit>BYTES_PER_SECOND</unit>
        <host_nic id="00000000-0000-0000-0000-000000000000"
          href="/ovirt-engine/api/hosts/00000000-0000-0000-0000-000000000000/nics/
          00000000-0000-0000-0000-000000000000"/>
    </statistic>
    ...
</statistics>
注意
这个 统计 子集合是只读的。

14.7.3. Storage Sub-Collection

存储 子集合提供了主机上可用的 iSCSI 和 FCP 存储表示列表。此存储用于创建存储域。
子集合中的每个 存储 代表 SCSI LUN。

例 14.24. 主机上存储子集合的 XML 表示

<host_storage>
    <storage id="82fb123b-321e-40a1-9889-95dcd2654463"
      href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/storage/
      82fb123b-321e-40a1-9889-95dcd2654463">
        <name>LUN0</name>
        <type>iscsi</type>
        <logical_unit id="LUN0">
            <address>mysan.example.com</address>
            <target>iqn.2009-08.com.example:mysan.foobar</target>
        </logical_unit>
    </storage>
</host_storage>
注意
host_storage 集合是只读的。
重要的
如本节所述的 API 是实验性的,可能随时更改。它不包含在向后兼容声明中。

14.7.4. 主机 NUMA 节点子注入

14.7.4.1. NUMA 节点子注入
numanodes 子集合表示主机的 NUMA 拓扑。子集合中的每个 host_numa_node 元素代表 NUMA 节点。

例 14.25. 主机上 numanodes 子集合的 XML 表示

<host_numa_nodes>
    <host_numa_node href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2/numanodes/91d8537c-699e-460b-9a70-285f651e7d68" id="91d8537c-699e-460b-9a70-285f651e7d68">
        <link href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2/numanodes/91d8537c-699e-460b-9a70-285f651e7d68/statistics" rel="statistics"/>
        <host href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2" id="f6735fa9-4ee5-47ce-b750-a87863736cc2"/>
        <index>0</index>
        <memory>8157</memory>
        <cpu>
            <cores>
                <core index="0"/>
                <core index="2"/>
                <core index="4"/>
                <core index="6"/>
            </cores>
        </cpu>
        <node_distance>10 16</node_distance>
    </host_numa_node>
    <host_numa_node href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2/numanodes/4b18926e-6faf-43f5-9fc2-0503f1531562" id="4b18926e-6faf-43f5-9fc2-0503f1531562">
        <link href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2/numanodes/4b18926e-6faf-43f5-9fc2-0503f1531562/statistics" rel="statistics"/>
        <host href="/ovirt-engine/api/hosts/f6735fa9-4ee5-47ce-b750-a87863736cc2" id="f6735fa9-4ee5-47ce-b750-a87863736cc2"/>
        <index>2</index>
        <memory>8175</memory>
        <cpu>
            <cores>
                <core index="1"/>
                <core index="3"/>
                <core index="5"/>
                <core index="7"/>
            </cores>
        </cpu>
        <node_distance>16 10</node_distance>
    </host_numa_node>
</host_numa_nodes>
注意
host_numa_nodes 子集合为只读。
14.7.4.2. NUMA 节点统计信息
每个主机 NUMA 节点会公开 NUMA 节点 统计的统计信息 子集合。每个统计 都包含以下元素:
表 14.10. 主机的 NUMA 节点统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
host_numa_node id= 关系 与包含 numanode 资源的关系。
下表列出了主机 NUMA 节点的统计类型。
表 14.11. 主机 NUMA 节点统计信息
名称 描述
memory.total NUMA 节点上的内存总量(以字节为单位)。
memory.used NUMA 节点上使用的内存(以字节为单位)。
memory.free NUMA 节点上可用内存(以字节为单位)。
cpu.current.user 用户的 CPU 用量百分比。
cpu.current.system 系统的 CPU 用量百分比。
cpu.current.idle 空闲 CPU 用量百分比。

例 14.26. 主机 NUMA 节点统计子集合的 XML 表示

<statistics>
    <statistic href="/ovirt-engine/api/hosts/f6745fa9-4ee5-47ce-b750-a87863736cc2/numanodes/91d8537c-689e-460b-9a70-285f651e7d68/statistics/7816602b-c05c-3dc7-a4da-3769f7ad8896" id="7816602b-c05c-3dc7-a4da-3769f7ad8896">
        <name>memory.total</name>
        <description>Total memory</description>
        <values type="INTEGER">
            <value>
                <datum>8157</datum>
            </value>
        </values>
        <type>GAUGE</type>
        <unit>BYTES</unit>
        <host_numa_node href="/ovirt-engine/api/hosts/f6745fa9-4ee5-47ce-b750-a87863736cc2/numanodes/91d8537c-689e-460b-9a70-285f651e7d68" id="91d8537c-689e-460b-9a70-285f651e7d68"/>
    </statistic>
    ...
</statistics>
注意
主机 NUMA 节点的 统计 子集合是只读的。

14.7.5. 主机统计信息 Sub-Collection

14.7.5.1. 主机统计信息 Sub-Collection
每个主机资源会公开特定于主机的 统计的统计 子集合。每个统计 都包含以下元素:
表 14.12. 主机统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
host id= 关系 与包含 主机资源 的关系。
下表列出了主机的统计类型。
表 14.13. 主机统计类型
名称
描述
memory.total
主机上内存总量(以字节为单位)。
memory.used
主机上使用的内存(以字节为单位)。
memory.free
主机上可用内存(以字节为单位)。
memory.shared
主机上共享的内存(以字节为单位)。
memory.buffers
I/O 缓冲区以字节为单位。
memory.cached
OS 以字节为单位缓存。
swap.total
主机上的交换内存总量(以字节为单位)。
swap.free
主机上空闲的交换内存(以字节为单位)。
swap.used
主机上使用的交换内存(以字节为单位)。
swap.cached
交换内存(以字节为单位)也缓存在主机的内存中。
ksm.cpu.current
内核同页合并的 CPU 用量百分比。
cpu.current.user
用户的 CPU 用量百分比。
cpu.current.system
系统的 CPU 用量百分比。
cpu.current.idle
空闲 CPU 用量百分比。
cpu.load.avg.5m
五分钟的平均 CPU 负载平均值。

例 14.27. 主机统计子集合的 XML 表示

<statistics>
    <statistic id="4ae97794-f56d-3f05-a9e7-8798887cd1ac"
      href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/
      statistics/4ae97794-f56d-3f05-a9e7-8798887cd1ac">
        <name>memory.total</name>
        <description>Total memory</description>
        <unit>BYTES</unit>
        <type>GUAGE</type>
        <values type="INTEGER">
            <value>
                <datum>3983540224<datum>
            </value>
        </values>
        <host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"
          href="/ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
    </statistic>
    ...
</statistics>
备注
主机 统计 子集合是只读的。

14.8. Actions

14.8.1. 安装 VDSM 操作

在主机上安装 VDSM 及相关软件。

例 14.28. 在虚拟化主机上安装 VDSM 的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/install HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <root_password>p@55w0Rd!</root_password>
</action>

14.8.2. 激活主机操作

激活主机以供使用,如正在运行的虚拟机。

例 14.29. 激活主机的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/activate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

14.8.3. 主机网络设置操作

在主机上配置多个网络设置。setupnetworks 操作可用于复杂的网络配置,如将网络从一个网络接口移动到另一个网络接口。

例 14.30. 编辑主机网络配置的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/setupnetworks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <modified_network_attachments>
        <network_attachment id="41561e1c-c653-4b45-b9c9-126630e8e3b9">
            <host_nic id="857a46d3-5f64-68bd-f456-c70de5b2d569"/>
        </network_attachment<
        <network_attachment id="3c3f442f-948b-4cdc-9a48-89bb0593cfbd">
            <network id="00000000-0000-0000-0000-000000000010"/>
            <ip address="10.35.1.247" netmask="255.255.254.0" gateway="10.35.1.254"/>
	    <properties>
		<property>
		    <name>bridge_opts</name>
		    <value>
			forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
		    </value>
		</property>
	    </properties>
        </network_attachment>
    </modified_network_attachments>
    <synchronized_network_attachments>
        <network_attachment id="3c3f442f-948b-4cdc-9a48-89bb0593cfbd">
    </synchronized_network_attachments> 
    <removed_network_attachments>
        <network_attachment id="7f456dae-c57f-35d5-55a4-20b74dc53af9">
    </removed_network_attachments>
    <modified_bonds>
        <host_nic id="a56b212d-2bc4-4120-9136-53be6cacb39a">
	    <bonding>
		<slaves>
		    <host_nic id="75ac21f7-4aa3-405a-a022-341e5f525b85">
		    <host_nic id="f3dda04c-1233-41af-a111-74327b876487">
		</slaves>
	    </bonding>
        </host_nic>
    </modified_bonds>
    <removed_bonds>
        <host_nic id="36ab5c7f-647a-bc64-f5e7-ba5d74f8e4ba">
    </removed_bonds>
    <modified_labels>
        <label id="Label002">
	    <host_nic id="857a46d3-5f64-68bd-f456-c70de5b2d569"/>
        </label>
        <label>
	    <host_nic id="a56b212d-2bc4-4120-9136-53be6cacb39a"/>
	    <label id="Label003/>
        </label>
    </modified_labels>  
    <removed_labels>
        <label id="Label001">
    </removed_labels>
    <checkConnectivity>true</checkConnectivity>
    <connectivityTimeout>60</connectivityTimeout>
</action>
此操作使用标准 NIC 元素更新所有指定的主机网络资源。请求包括下表中指定的其他元素。
表 14.14. 多个主机网络接口设置的元素
元素 类型 Description
modified_bonds complex 创建或更新绑定。每个 host_nic 元素都包含标准 绑定 元素。请参阅 第 14.7.2.2 节 “绑定接口”
removed_bonds complex 要删除的绑定的 ID 列表。
modified_network_attachments complex 在主机上添加或更新网络附加。每个 network_attachment 元素都包含标准主机 network_attachment 元素。请参阅 第 14.7.1 节 “Host Network Attachments Sub-Collection”。更改 host_nic ID 将网络移动到不同的网络接口卡。
synchronized_network_attachments complex 与数据中心的逻辑网络定义同步的非同步网络附加定义的 ID 列表。
removed_network_attachments complex 要删除的网络附加的 ID 列表。
modified_labels complex 创建或修改标签。每个 标签 元素包含一个 标签 id (创建标签时),以及通过名称或 ID 标识的 host_nic。更改 host_nic ID 将标签移到不同的网卡中。
removed_labels complex 要删除的标签的 ID 列表。
checkConnectivity 布尔值 设置为 true 以验证主机和 Red Hat Virtualization Manager 之间的连接。如果连接丢失,Red Hat Virtualization Manager 会恢复设置。
connectivityTimeout 整数 定义连接丢失的超时。

14.8.4. 隔离主机操作

API 用户使用 隔离操作 控制主机的电源管理设备。capabilities 列出了可用的 fence_type 选项。

例 14.31. 隔离主机的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/fence
Accept: application/xml
Content-Type: application/xml

<action>
    <fence_type>start</fence_type>
</action>

14.8.5. 取消激活主机操作

取消激活主机来执行维护任务。

例 14.32. 取消激活主机的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/deactivate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

14.8.6. 主机 iSCSI 登录操作

iscsilogin 操作可让主机登录到 iSCSI 目标。登录目标可让 host_storage 集合中可用包含的 LUN。

例 14.33. 启用主机登录到 iSCSI 目标的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/iscsilogin HTTP/1.1
Accept: application/xml
Content-Type: application/xml


<action>
    <iscsi>
        <address>mysan.example.com</address>
        <target>iqn.2009-08.com.example:mysan.foobar</target>
        <username>jimmy</username>
        <password>s3kr37</password>
    </iscsi>
</action>

14.8.7. 主机 iSCSI 发现操作

iscsidiscover 操作可让 iSCSI 门户查询其目标列表。

例 14.34. 查询 iSCSI 门户目标列表的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/iscsidiscover HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<action>
    <iscsi>
        <address>mysan.example.com</address>
        <port>3260</port>
    </iscsi>
</action>

14.8.8. 提交主机网络配置操作

API 用户提交网络配置以持久保留主机网络接口附加或分离,或者持续创建和删除绑定接口。

例 14.35. 提交网络配置的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/commitnetconfig HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
重要的
只有在管理器建立主机连接后,才会提交网络配置,因为配置更改不会丢失。如果主机连接丢失,主机需要重新引导,并自动恢复到前面的网络配置。

14.8.9. 设置 SPM

手动将主机设置为存储池管理程序(SPM)。

例 14.36. 将主机设置为 SPM 的操作

POST /ovirt-engine/api/hosts/2ab5e1da-b726-4274-bbf7-0a42b16a0fc3/forceselectspm HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

第 15 章 虚拟机

15.1. 虚拟机元素

vms 集合提供有关 Red Hat Virtualization 环境中虚拟机的信息。API 用户通过从入口点 URI 获取的 rel="vms" 链接访问此信息。
可以使用 All-Content: true 标头检索 GET 请求的其他信息。
下表显示了虚拟机资源表示法中包含的特定元素。
表 15.1. 虚拟机元素
元素 类型 Description Properties
link rel="applications" 关系 到虚拟机资源的 applications 子集合的链接,它显示虚拟机上安装的应用程序。 
link rel="disks" 关系 与虚拟机资源 的磁盘 子集合的链接。 
link rel="nics" 关系 到虚拟机资源的 nics 子集合的链接。 
link rel="numanodes" 关系 虚拟机资源的 numanodes 子集合的链接。 
link rel="cdroms" 关系 到虚拟机资源的 cdroms 子集合的链接。 
link rel="snapshots" 关系 到虚拟机资源 的快照 子集合的链接。 
link rel="tags" 关系 到虚拟机资源的 tags 子集合的链接。 
link rel="permissions" 关系 到虚拟机 权限权限 子集合的链接。 
link rel="statistics" 关系 到虚拟机资源 统计 子集合的链接。
link rel="reporteddevices"
关系
到虚拟机资源的 reporteddevices 子集合的链接。
 
link rel="watchdogs"
关系
到虚拟机资源的 watchdogs 子集合的链接。
 
link rel="sessions"
关系
到虚拟机资源的 sessions 子集合的链接。
 
type Enumerated 虚拟机类型。功能 中提供了枚举的值的列表。
status 请参见以下 虚拟机状态。
内存 整数 分配给客户机的内存量,以字节为单位。
cpu complex
定义虚拟机的 CPU 详情。拓扑 子元素设置可用于客户机的逻辑 套接字数量,以及 每个插槽的内核数。虚拟机可用的内核总数等于插槽的数量乘以每个插槽的内核。
cputune 子元素使用一系列 vcpupin 元素将虚拟 CPU 映射到物理主机 CPU。每个 vcpupin 元素都包含虚拟 CPU 属性(vcpu)和用于定义要使用的物理(cpuset)的属性。将 cpuset 设置为单个 CPU (cpuset="0")、多个 CPU (cpuset="0,2")、CPU 范围(cpuset="0-3")或具有排除的 CPU 范围(cpuset="0-3,^2")。
cpu_mode 子元素定义虚拟 CPU 与主机 CPU 的关系。它有三个值:如果没有给出任何模式,host_model 复制主机 CPU 的最佳值,host_passthrough 会将主机的所有方面传递给客户机,即使 libvirt 无法识别这些模式。但是,host_passthrough 将阻止迁移该虚拟机。
os type= 字符串,如 RHEL5WindowsXP 客户机操作系统类型。
OS 引导 dev= Enumerated 在引导元素中 dev 属性描述的 引导设备 列表。功能 中提供了枚举的值的列表。
OS 内核 字符串 为虚拟机配置的内核镜像的路径。这个选项支持直接引导 Linux 内核,而不是通过 BIOS 引导装载程序引导。
OS initrd 字符串 与之前指定内核一起使用的 initrd 镜像的路径。这个选项支持直接引导 Linux 内核,而不是通过 BIOS 引导装载程序引导。
OS cmdline 字符串 与定义的内核一起使用的内核命令行参数字符串。这个选项支持直接引导 Linux 内核,而不是通过 BIOS 引导装载程序引导。
high_availability complex 如果虚拟机或其主机崩溃,则设置为 true优先级 元素控制虚拟机重新启动的顺序。 
显示 complex
显示 类型 ( vncspice)、port 以及 监视器 的数量。allow_reconnect 布尔值指定客户端是否可以通过显示重新连接到机器。
smartcard_enabled 子元素是一个布尔值(truefalse),用于指定附加到客户端的智能卡是否传递到虚拟机。默认值为 false
 
cluster id= GUID 对虚拟机的主机集群的引用。
template id= GUID 对此虚拟机所基于的模板的引用。
domain id= GUID 对虚拟机域的引用。
start_time xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 此虚拟机启动的日期和时间。
stop_time xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 此虚拟机停止的日期和时间。
creation_time xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 创建此虚拟机的日期和时间。
origin rhev,ovirt,vmwarexen之一 此虚拟机源自的系统。
无状态 布尔值: true 或 false 如果虚拟机无状态,则为 true。无状态虚拟机包含在启动时获取的磁盘镜像的快照,并在关机时删除。这意味着状态更改在重启后不会保留。 
delete_protected 布尔值: true 或 false 如果设置为 true,则无法删除虚拟机。 
sso 字符串 对虚拟机单点登录方法的引用。包括带有 ip 属性 的方法 元素。 
placement_policy complex 为虚拟机迁移设置放置策略。需要默认的 host=关联性 (一个可 migratableuser_migratable固定)。将 host 元素留空,以设置任何首选主机。使用多个主机元素来指定集群中首选主机的子集。 
memory_policy complex 为虚拟机设置内存策略。定义主机上 保证的 最小内存量,以便虚拟机运行。 
quota id= GUID 为虚拟机设置配额。 
custom_properties complex 一组用户定义的环境变量,作为参数传递给自定义脚本。每个 custom_property 都包含 namevalue 属性。功能 中提供了枚举的值的列表。 
usb complex 定义虚拟机的 USB 策略。要求将 enabled 元素设置为布尔值,并且 type 元素设为 nativelegacy
重要
Legacy USB 选项已弃用,并将在 Red Hat Virtualization 4.1 中删除。
 
migration_downtime 整数 代表虚拟机在实时迁移期间可以停机的最大毫秒数。值 0 表示将使用 VDSM 默认值。 
cpu_profile id= GUID 对虚拟机的 cpu 配置集的引用。 
next_run_configuration 布尔值: true 或 false 如果虚拟机下次重启时将应用对虚拟机的配置进行更改,则为 true 
numa_tune_mode 字符串 引用主机 NUMA 节点的内存分配模式(交集严格首选)。 
guest_info complex 对客户机客户端信息的引用。包含带有 address= 属性的 ip 元素。
vmpool complex 对虚拟机池的引用。这个元素仅针对池的虚拟机部分出现。
timezone tz 数据库格式: Area/Location Windows 虚拟机的 Sysprep 时区设置。 
domain complex Windows 虚拟机的 Sysprep 域设置。需要 集合中的 名称 
初始化 complex
定义在启动时应用于虚拟机的值列表,使用 Cloud-Init 用于基于 Linux 的虚拟机,或 Sysprep 为基于 Windows 的虚拟机。
  • HOST_NAME :虚拟机的主机名
  • timezone :虚拟机的时区。
  • user_name :虚拟机的用户名。
  • root_password :用户的密码,如果未指定用户,则为 root 密码。
  • authorized_ssh_keys :添加到虚拟机的授权密钥文件中的SSH 密钥。您可以通过用换行符分隔每个 SSH 密钥来输入多个 SSH 密钥。
  • regenerate_ssh_keys :是否为虚拟机重新生成 SSH 密钥。可能的值为 truefalse
  • dns_serversDNS 服务器以空格分隔的列表。
  • dns_searchDNS 搜索域以空格分隔的列表。
  • nic_configurations :为虚拟机定义网络接口控制器。网络接口控制器在这个集合下被定义为 nic_configuration 对象,每个对象都指定名称、ipboot_protocolon_boot
  • custom_script :在启动时在虚拟机上运行的自定义脚本。
  • HOST_NAME :虚拟机的主机名
  • :虚拟机所属的域。
  • authorized_ssh_keys :添加到虚拟机的授权密钥文件中的SSH 密钥。您可以通过用换行符分隔每个 SSH 密钥来输入多个 SSH 密钥。
  • regenerate_ssh_keys :是否为虚拟机重新生成 SSH 密钥。可能的值为 truefalse
  • timezone :虚拟机的时区。
  • root_password :虚拟机的 admin 用户的密码。
  • custom_script :在启动时在虚拟机上运行的自定义脚本。
  • input_locale :用户输入的区域设置。
  • ui_language :用于用户界面元素的语言,如按钮和菜单。
  • system_locale :整个系统的区域设置。
  • user_locale :用户的区域设置。
  • active_directory_ou :虚拟机所属的 Active Directory 域中的组织单元。
  • org_name :虚拟机所属组织的名称。
有效负载 complex
定义一组 有效负载 元素,以便在引导时向虚拟机提供内容。每个 有效负载 都需要 type 属性,可以是 cdromfloppy,以及一组文件元素。各个文件元素都是 name 元素,用于指定文件的名称和位置,以及定义要发送到该文件的内容的内容。
payloads 元素供 cloud-init 功能使用。当使用 cloud-init 配置虚拟机时,会自动创建一个有效负载,并将 type 属性设置为 cd-rom,以及两个文件子元素,openstack/latest/meta_data.jsonopenstack/latest/user_data,它将配置参数传递给虚拟机。
 
status 包含以下枚举的值之一: 未分配,down,up,powering_up,powered_down,paused,migrate_from,migrate_to,unknown,not_responding,wait_for_launch,reboot_in_progress, saving_state,restoring_state , suspended ,image_illegal,image_lockedpowering_down.这些状态列在 capabilities 下的 vm_states 中。

15.2. 虚拟机 XML 表述

例 15.1. 虚拟机的 XML 表示

<vm id="70b4d9a7-4f73-4def-89ca-24fc5f60e01a"
  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a">
    <actions>
        <link rel="move"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/move"/>
        <link rel="ticket"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/ticket"/>
        <link rel="reboot"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/reboot"/>
        <link rel="undo_snapshot"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/undo_snapshot"/>
        <link rel="commit_snapshot"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/commit_snapshot"/>
        <link rel="preview_snapshot"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/preview_snapshot"/>
        <link rel="logon"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/logon"/>
        <link rel="cancelmigration"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/cancelmigration"/>
        <link rel="maintenance"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/maintenance"/>
        <link rel="clone"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/clone"/>
        <link rel="migrate"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/migrate"/>
        <link rel="detach"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/detach"/>
        <link rel="export"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/export"/>
        <link rel="shutdown"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/shutdown"/>
        <link rel="start"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/start"/>
        <link rel="stop"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/stop"/>
        <link rel="suspend"
	  href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/suspend"/>
    </actions>
    <name>VM_01</name>
    <description>Testing Virtual Machine</description>
    <link rel="applications"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/applications"/>
    <link rel="disks"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/disks"/>
    <link rel="nics"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/nics"/>
    <link rel="numanodes"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/numanodes"/>
    <link rel="cdroms"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/cdroms"/>
    <link rel="snapshots"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/snapshots"/>
    <link rel="tags"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/tags"/>
    <link rel="permissions"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/permissions"/>
    <link rel="statistics"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/statistics"/>
    <link rel="reporteddevices"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/reporteddevices"/>
    <link rel="watchdogs"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/watchdogs"/>
    <link rel="sessions"
      href="/ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a/sessions"/>
    <type>server</type>
    <status>
        <state>down</state>
    </status>
    <memory>1073741824</memory>
    <cpu>
        <topology sockets="1" cores="1"/>
        <architecture>X86_64</architecture>
    </cpu>
    <cpu_shares>0</cpu_shares>
    <bios>
        <boot_menu>
            <enabled>false</enabled>
        </boot_menu>
    </bios>
    <os type="other">
        <boot dev="hd"/>
    </os>
    <high_availability>
        <enabled>false</enabled>
        <priority>1</priority>
    </high_availability>
    <display>
        <type>spice</type>
        <monitors>1</monitors>
        <single_qxl_pci>false</single_qxl_pci>
        <allow_override>true</allow_override>
        <smartcard_enabled>false</smartcard_enabled>
        <file_transfer_enabled>true</file_transfer_enabled>
        <copy_paste_enabled>true</copy_paste_enabled>
    </display>
    <cluster href="/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb" id="00000001-0001-0001-0001-0000000002fb"/>
    <template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
    <stop_time>2014-12-03T14:25:45.588+10:00</stop_time>
    <creation_time>2014-12-03T14:25:45.535+10:00</creation_time>
    <origin>ovirt</origin>
    <stateless>false</stateless>
    <delete_protected>false</delete_protected>
    <sso>
        <methods>
            <method id="GUEST_AGENT"/>
        </methods>
    </sso>
    <timezone>Etc/GMT</timezone>
    <placement_policy>
        <affinity>migratable</affinity>
    </placement_policy>
    <memory_policy>
        <guaranteed>1073741824</guaranteed>
    </memory_policy>
    <usb>
        <enabled>false</enabled>
    </usb>
    <migration_downtime>-1</migration_downtime>
    <cpu_profile href="/ovirt-engine/api/cpuprofiles/0000001a-001a-001a-001a-0000000002e3" id="0000001a-001a-001a-001a-0000000002e3"/>
    <next_run_configuration_exists>false</next_run_configuration_exists>
    <numa_tune_mode>interleave</numa_tune_mode>
</vm>

15.3. 虚拟机的 XML 表表示虚拟机的额外 OVF 数据

使用带有 All-Content: true 标头的虚拟机的 GET 请求,使其包含带有虚拟机表示的额外 OVF 数据。
如果留空,则 Accept 标头默认为 application/xml,数据则以 HTML 实体表示,从而不会影响 XML 标签。指定 Accept: application/json 标头将在标准 XML 标记中返回数据。此示例表示已从标准块格式格式化,以提高 leg 可访问性。

例 15.2. 虚拟机的附加 ovf 数据的 XML 表示

GET /ovirt-engine/api/vms/70b4d9a7-4f73-4def-89ca-24fc5f60e01a HTTP/1.1
All-Content: true
	
<?xml version='1.0' encoding='UTF-8'?> 
<ovf:Envelope xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1/" 
  xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" 
  xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  ovf:version="3.5.0.0"> 
  <References/> 
  <Section xsi:type="ovf:NetworkSection_Type"> 
    <Info>List of networks</Info> 
    <Network ovf:name="Network 1"/> 
  </Section> 
  <Section xsi:type="ovf:DiskSection_Type"> 
    <Info>List of Virtual Disks</Info> 
  </Section> 
  <Content ovf:id="out" xsi:type="ovf:VirtualSystem_Type"> 
    <CreationDate>2014/12/03 04:25:45</CreationDate> 
    <ExportDate>2015/02/09 14:12:24</ExportDate> 
    <DeleteProtected>false</DeleteProtected> 
    <SsoMethod>guest_agent</SsoMethod> 
    <IsSmartcardEnabled>false</IsSmartcardEnabled> 
    <TimeZone>Etc/GMT</TimeZone> 
    <default_boot_sequence>0</default_boot_sequence> 
    <Generation>1</Generation> 
    <VmType>1</VmType> 
    <MinAllocatedMem>1024</MinAllocatedMem> 
    <IsStateless>false</IsStateless> 
    <IsRunAndPause>false</IsRunAndPause> 
    <AutoStartup>false</AutoStartup> 
    <Priority>1</Priority> 
    <CreatedByUserId>fdfc627c-d875-11e0-90f0-83df133b58cc</CreatedByUserId> 
    <IsBootMenuEnabled>false</IsBootMenuEnabled> 
    <IsSpiceFileTransferEnabled>true</IsSpiceFileTransferEnabled> 
    <IsSpiceCopyPasteEnabled>true</IsSpiceCopyPasteEnabled> 
    <Name>VM_export</Name> 
    <TemplateId>00000000-0000-0000-0000-000000000000</TemplateId> 
    <TemplateName>Blank</TemplateName> 
    <IsInitilized>false</IsInitilized> 
    <Origin>3</Origin> 
    <DefaultDisplayType>1</DefaultDisplayType> 
    <TrustedService>false</TrustedService> 
    <OriginalTemplateId>00000000-0000-0000-0000-000000000000</OriginalTemplateId> 
    <OriginalTemplateName>Blank</OriginalTemplateName> 
    <UseLatestVersion>false</UseLatestVersion> 
    <Section ovf:id="70b4d9a7-4f73-4def-89ca-24fc5f60e01a" 
      ovf:required="false" 
      xsi:type="ovf:OperatingSystemSection_Type"> 
      <Info>Guest Operating System</Info> 
      <Description>other</Description> 
    </Section>
    <Section xsi:type="ovf:VirtualHardwareSection_Type"> 
      <Info>1 CPU, 1024 Memeory</Info> 
      <System> 
        <vssd:VirtualSystemType>ENGINE 3.5.0.0</vssd:VirtualSystemType> 
      </System> 
      <Item> 
        <rasd:Caption>1 virtual cpu</rasd:Caption> 
        <rasd:Description>Number of virtual CPU</rasd:Description> 
        <rasd:InstanceId>1</rasd:InstanceId> 
        <rasd:ResourceType>3</rasd:ResourceType> 
        <rasd:num_of_sockets>1</rasd:num_of_sockets> 
        <rasd:cpu_per_socket>1</rasd:cpu_per_socket> 
      </Item> 
      <Item> 
        <rasd:Caption>1024 MB of memory</rasd:Caption> 
        <rasd:Description>Memory Size</rasd:Description> 
        <rasd:InstanceId>2</rasd:InstanceId> 
        <rasd:ResourceType>4</rasd:ResourceType> 
        <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits> 
        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity> 
      </Item> 
      <Item> 
        <rasd:Caption>USB Controller</rasd:Caption> 
        <rasd:InstanceId>3</rasd:InstanceId> 
        <rasd:ResourceType>23</rasd:ResourceType> 
        <rasd:UsbPolicy>DISABLED</rasd:UsbPolicy> 
      </Item> 
    </Section> 
  </Content> 
</ovf:Envelope>

15.4. JSON 代表虚拟机

例 15.3. 虚拟机的 JSON 表示

{
  "type" : "server",
  "status" : {
    "state" : "down"
  },
  "stop_reason" : "",
  "memory" : 1073741824,
  "cpu" : {
    "topology" : {
      "sockets" : "1",
      "cores" : "1"
    },
    "architecture" : "X86_64"
  },
  "cpu_shares" : "0",
  "bios" : {
    "boot_menu" : {
      "enabled" : "false"
    }
  },
  "os" : {
    "boot" : [ {
      "dev" : "hd"
    } ],
    "type" : "other"
  },
  "high_availability" : {
    "enabled" : "false",
    "priority" : "1"
  },
  "display" : {
    "type" : "spice",
    "monitors" : "1",
    "single_qxl_pci" : "false",
    "allow_override" : "false",
    "smartcard_enabled" : "false",
    "file_transfer_enabled" : "true",
    "copy_paste_enabled" : "true"
  },
  "cluster" : {
    "href" : "/ovirt-engine/api/clusters/00000001-0001-0001-0001-0000000002fb",
    "id" : "00000001-0001-0001-0001-0000000002fb"
  },
  "template" : {
    "href" : "/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000",
    "id" : "00000000-0000-0000-0000-000000000000"
  },
  "stop_time" : 1423550982110,
  "creation_time" : 1423490033647,
  "origin" : "ovirt",
  "stateless" : "false",
  "delete_protected" : "false",
  "sso" : {
    "methods" : {
      "method" : [ {
        "id" : "GUEST_AGENT"
      } ]
    }
  },
  "timezone" : "Etc/GMT",
  "initialization" : {
    "regenerate_ssh_keys" : "false",
    "nic_configurations" : { }
  },
  "placement_policy" : {
    "affinity" : "migratable"
  },
  "memory_policy" : {
    "guaranteed" : 1073741824,
    "ballooning" : "true"
  },
  "usb" : {
    "enabled" : "false"
  },
  "migration_downtime" : "-1",
  "cpu_profile" : {
    "href" : "/ovirt-engine/api/cpuprofiles/0000001a-001a-001a-001a-0000000002e3",
    "id" : "0000001a-001a-001a-001a-0000000002e3"
  },
  "next_run_configuration_exists" : "false",
  "numa_tune_mode" : "interleave",
  "actions" : {
    "link" : [ {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/ticket",
      "rel" : "ticket"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/move",
      "rel" : "move"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/clone",
      "rel" : "clone"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/commit_snapshot",
      "rel" : "commit_snapshot"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/preview_snapshot",
      "rel" : "preview_snapshot"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/logon",
      "rel" : "logon"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/cancelmigration",
      "rel" : "cancelmigration"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/maintenance",
      "rel" : "maintenance"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/reboot",
      "rel" : "reboot"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/undo_snapshot",
      "rel" : "undo_snapshot"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/migrate",
      "rel" : "migrate"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/detach",
      "rel" : "detach"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/export",
      "rel" : "export"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/shutdown",
      "rel" : "shutdown"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/start",
      "rel" : "start"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/stop",
      "rel" : "stop"
    }, {
      "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/suspend",
      "rel" : "suspend"
    } ]
  },
  "name" : "VM_01",
  "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e",
  "id" : "42ec2621-7ad6-4ca2-bd68-973a44b2562e",
  "link" : [ {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/applications",
    "rel" : "applications"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/disks",
    "rel" : "disks"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/nics",
    "rel" : "nics"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/numanodes",
    "rel" : "numanodes"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/cdroms",
    "rel" : "cdroms"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/snapshots",
    "rel" : "snapshots"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/tags",
    "rel" : "tags"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/permissions",
    "rel" : "permissions"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/statistics",
    "rel" : "statistics"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/reporteddevices",
    "rel" : "reporteddevices"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/watchdogs",
    "rel" : "watchdogs"
  }, {
    "href" : "/ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/sessions",
    "rel" : "sessions"
  } ]
}

15.5. Methods

15.5.1. 创建虚拟机

创建新虚拟机需要 名称模板cluster 元素。使用 id 属性或 name 元素识别 模板和 集群 元素。使用 cpuprofiles 属性识别 CPU 配置集 ID。

例 15.4. 创建从 CD-ROM 引导的 512 MB 的虚拟机

POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <name>vm2</name>
    <description>Virtual Machine 2</description>
    <type>desktop</type>
    <memory>536870912</memory>
    <cluster>
        <name>default</name>
    </cluster>
    <template>
        <name>Blank</name>
    </template>
    <os>
        <boot dev="cdrom"/>
    </os>
    <cdroms>
        <cdrom>
            <file id="example_windows_7_x64_dvd_u_677543.iso"/>
        </cdrom>
    </cdroms>
    <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/>
</vm>

例 15.5. 创建 512 MB 的虚拟机,该虚拟机从虚拟硬盘引导

POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <name>vm2</name>
    <description>Virtual Machine 2</description>
    <type>desktop</type>
    <memory>536870912</memory>
    <cluster>
        <name>default</name>
    </cluster>
    <template>
        <name>Blank</name>
    </template>
    <os>
      <boot dev="hd"/>
    </os>
    <cpu_profile id="0000001a-001a-001a-001a-00000000035e"/>
</vm>
注意
以上示例中的内存使用以下公式转换为字节:
512MB * 1024 2 = 536870912 bytes

15.5.2. 更新虚拟机

name,description,cluster,type,memory,cpu,os,high_availability,display,timezone,domain,stateless,placement_policy,memory_policy,usb,payloads,origincustom_properties 元素是 updatable post-creation。

例 15.6. 更新虚拟机使其包含 1 GB 内存

PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <memory>1073741824</memory>
</vm>
注意
以上示例中的内存使用以下公式转换为字节:
1024MB * 1024 2 = 1073741824 bytes
注意
Red Hat Virtualization 支持内存热插。如果虚拟机的操作系统支持内存热插拔,您可以使用上例在虚拟机运行时增加内存。

例 15.7. 热插 vCPU

将虚拟 CPU 添加到正在运行的虚拟机中,而无需重新引导它。在本例中,套接字的数量更改为 2。
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <cpu>
        <topology sockets="2" cores="1"/>
    </cpu>
</vm>
注意
Red Hat Virtualization 目前不支持 CPU 热拔。

例 15.8. 将虚拟机固定到多个主机

固定至多个主机的虚拟机无法进行实时迁移,但在主机出现故障时,配置为高可用性的任何虚拟机将自动在虚拟机固定到的其他主机上重新启动。多主机固定可用于限制虚拟机到具有相同硬件配置的主机。
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <high_availability>
        <enabled>true</enabled>
        <priority>1</priority>
    </high_availability>
    <placement_policy>
        <hosts>
            <host><name>Host1</name></host>
            <host><name>Host2</name></host>
        </hosts>
        <affinity>pinned</affinity>
    </placement_policy>
</vm>

15.5.3. 删除虚拟机

删除虚拟机需要 DELETE 请求。

例 15.9. 删除虚拟机

DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1

HTTP/1.1 204 No Content

15.5.4. 删除虚拟机,而不是虚拟磁盘

在删除虚拟机前分离虚拟磁盘。这会保留虚拟磁盘。删除虚拟机需要 DELETE 请求。

例 15.10. 删除虚拟机

DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <vm>
        <disks>
            <detach_only>true</detach_only>
        </disks>
    </vm>
</action>

15.6. sub-Collections

15.6.1. disks Sub-Collection

15.6.1.1. disks Sub-Collection
disks 子集合表示虚拟机中的所有虚拟硬盘设备。磁盘 表示包含以下元素:
表 15.2. 虚拟磁盘的元素
元素 类型 Description Properties
link rel="statistics" 关系 到虚拟机磁盘 统计的统计信息 子集合的链接。
link rel="permissions" 关系 权限 子集合的链接。
alias 字符串 磁盘的唯一标识符。使用 alias 而不是 name
image_id 字符串 对存储在定义的存储域中的虚拟机镜像的引用。
storage_domains complex 与此磁盘关联的存储域。每个 storage_domain 元素包含一个 id 属性,其中包含关联的存储域的 GUID。使用 POST 更新此元素,以执行磁盘从一个数据存储域的实时迁移到另一个数据存储域。 [a]
size 整数 磁盘大小(以字节为单位)。弃用; 被 provisioned_size 替代。
provisioned_size 整数 磁盘置备大小(以字节为单位)。
actual_size 整数 磁盘的实际大小(以字节为单位)。
status 其中一个 非法无效锁定正常 磁盘设备的状态。这些状态列在 capabilities 下的 disk_states 中。
interface Enumerated 用于连接到磁盘设备的接口驱动程序的类型。枚举的值列表包括在 能力 中。 
格式 Enumerated 底层存储格式。枚举的值列表包括在 能力 中。Copy On Write (COW)允许快照,且性能小。raw 不允许快照,但提供更好的性能。
sparse 布尔值: true 或 false 如果磁盘的物理存储不应预分配,则为 true
bootable 布尔值: true 或 false 如果此磁盘被标记为可引导,则为 true 
可共享 布尔值: true 或 false true 与多个虚拟机共享磁盘。 
wipe_after_delete 布尔值: true 或 false 如果删除磁盘时,磁盘的底层物理存储应为零为 true。这会提高安全性,但是一个更密集的操作,可能会延长删除时间。 
propagate_errors 布尔值: true 或 false 如果磁盘错误不应导致虚拟机暂停,且应该向客户端操作系统传播磁盘错误,则为 true 
vm id= GUID 包含虚拟机的 ID。
quota id= GUID 为磁盘设置配额。 
lun_storage complex 对存储使用直接 LUN 映射的引用。需要包含 iSCSI 或 FCP 设备详情的 logical_unit 元素。
active 布尔值 定义磁盘是否已连接到虚拟机。
read_only 布尔值 定义磁盘是否只读。
link rel="disk_profile" 关系 disk_profile 子集合的链接。
[a] 只有在磁盘被添加到虚拟机且没有从虚拟机模板创建时,才需要此元素。

例 15.11. 磁盘设备的 XML 表示

<disk id="ed7feafe-9aaf-458c-809a-ed789cdbd5b4"
  href="/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/
  ed7feafe-9aaf-458c-809a-ed789cdbd5b4">
    <link rel="statistics"
      href="/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/
      ed7feafe-9aaf-458c-809a-ed789cdbd5b4/statistics"/>
    <link rel="permissions"
      href="/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/
      ed7feafe-9aaf-458c-809a-ed789cdbd5b4/permissions"/>
    <vm id="082c794b-771f-452f-83c9-b2b5a19c0399"
      href="/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399"/> 
    <alias>Classic_VM</alias>
    <image_id>cac69a29-ccff-49d4-8a26-e4cdacd83e34</image_id> 
    <storage_domains>
        <storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"/>
    </storage_domains> 
    <size>12884901888</size>
    <provisioned_size>12884901888</provisioned_size>
    <actual_size>1073741824</actual_size>
    <type>system</type>
    <status>
        <state>ok</state>
    </status>
    <interface>virtio</interface>
    <format>raw</format>
    <bootable>true</bootable>
    <shareable>true</shareable>
    <wipe_after_disk>true</wipe_after_disk>
    <propagate_errors>false</propagate_errors>
    <active>true</active>
    <read_only>false</read_only>
    <disk_profile id="23fb2e0d-3062-4819-8165-3be88f2f587e"
      href="/ovirt-engine/api/diskprofiles/23fb2e0d-3062-4819-8165-3be88f2f587e"/>
    <lun_storage>
        <logical_unit id="lun1">
                ...
        </logical_unit>
    </lun_storage>
</disk>

添加新虚拟磁盘。在添加新的内部磁盘时,需要 provisioned_size 元素。使用 storage_domains 元素指定要在其中创建磁盘的存储域。同一虚拟机的多个磁盘可以驻留在不同的存储域中。

例 15.12. 在虚拟机上创建新磁盘设备

POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <storage_domains>
        <storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"/>
    </storage_domains>        
    <provisioned_size>8589934592</provisioned_size>
    <type>system</type>
    <interface>virtio</interface>
    <format>cow</format>
    <bootable>true</bootable>
</disk>
将新的外部(直接 LUN)磁盘添加到虚拟机。这个方法需要 lun_storage 元素和 logical_unit 元素,其中包含 iSCSI 或 FCP 设备详情。

例 15.13. 在虚拟机上创建新的直接 LUN 磁盘设备

POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks HTTP/1.1
Accept: application/xml
Content-type: application/xml
		
<disk>
    <interface>virtio</interface>
    <lun_storage>
        <type>iscsi</type>
        <logical_unit id="lun1">
            <address>iscsi.example.com</address>
            <port>3260</port>
            <target>iqn.2010.05.com.example:iscsi.targetX</target>
        </logical_unit>
    </lun_storage>
</disk>
别名,description,storage_domains,provisioned_size,interface,bootable,shareable,wipe_after_delete and propagate_errors 元素在创建后是 updatable。
用户可以调整一个或多个虚拟机使用的虚拟磁盘,而无需暂停、休眠或重启虚拟机。

例 15.14. 更新虚拟磁盘

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <bootable>false</bootable>
    <shareable>false</shareable>
</disk>

例 15.15. 将虚拟磁盘更新为 20GB

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <provisioned_size>21474836480</provisioned_size>
</disk>
注意
上例中的磁盘大小使用以下公式转换为字节:
20480MB * 1024 2 = 21474836480 bytes

例 15.16. 重命名虚拟磁盘

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <alias>Classic_VM2</alias>
</disk>
删除虚拟磁盘需要 DELETE 请求。

例 15.17. 删除虚拟磁盘

DELETE /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4 HTTP/1.1

HTTP/1.1 204 No Content
15.6.1.2. 磁盘克隆
使用 clone 元素从模板克隆磁盘。在创建虚拟机时,在 disks 子集合中将 clone 元素设置为 true。这会从基本模板克隆磁盘并将其附加到虚拟机。

例 15.18. 从模板克隆磁盘

以下示例在创建虚拟机期间从模板克隆磁盘。
POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml
        
<vm>
    <name>cloned_vm</name>
    <template id="64d4aa08-58c6-4de2-abc4-89f19003b886"/>
    <cluster id="99408929-82cf-4dc7-a532-9d998063fa95"/>
    <disks>
        <clone>true</clone>
        <disk id="4825ffda-a997-4e96-ae27-5503f1851d1b">
            <format>COW</format>
        </disk>
        <disk id="42aef10d-3dd5-4704-aa73-56a023c1464c">
            <format>COW</format>
        </disk>
    </disks>
</vm>
重要
根据磁盘名称搜索查询需要 别名 搜索参数,而不是 名称
15.6.1.3. Disk Statistics Sub-Collection
每个虚拟机的磁盘会公开一个 统计 子集合,用于特定于磁盘的统计信息。每个统计 都包含以下元素:
表 15.3. 虚拟磁盘统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
disk id= 关系 与包含 disk 资源的关系。
下表列出了虚拟磁盘的统计类型。
表 15.4. 虚拟磁盘统计类型
名称
Description
data.current.read
从磁盘读取时,数据传输速率(以字节/秒为单位)。
data.current.write
在写入磁盘时,数据传输速率(以字节/秒为单位)。

例 15.19. 虚拟机统计子集合的 XML 表示

<statistics>
    <statistic id="33b9212b-f9cb-3fd0-b364-248fb61e1272"
      href="/ovirt-engine/api/vms/3a42530e-3bc5-4094-829d-489257894c2a/disks/
      f28ec14c-fc85-43e1-818d-96b49d50e27b/statistics/
      33b9212b-f9cb-3fd0-b364-248fb61e1272">
        <name>data.current.read</name>
        <description>Read data rate</description>
        <values type="DECIMAL">
            <value>
                <datum>0</datum>
            </value>
        </values>
        <type>GAUGE</type>
        <unit>BYTES_PER_SECOND</unit>
        <disk id="f28ec14c-fc85-43e1-818d-96b49d50e27b" 
          href="/ovirt-engine/api/vms/3a42530e-3bc5-4094-829d-489257894c2a/
          disks/f28ec14c-fc85-43e1-818d-96b49d50e27b"/>
    </statistic>
    ...
</statistics>
注意
这个 统计 子集合是只读的。
15.6.1.4. 浮动磁盘附加和分离操作
使用虚拟机磁盘子集合上的 POST 请求从主 rel=" disks " 集合中附加磁盘。包含要附加的磁盘的 id

例 15.20. 附加浮动磁盘

POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk id="d135f1c5-b5e1-4238-9381-b3277f5a3742">
</disk>
使用 disk 资源的 DELETE 请求从虚拟机的磁盘子集合 中分离磁盘,但请确保包含分离 的布尔值元素,以便磁盘不会被销毁。

例 15.21. 从虚拟机中分离磁盘

DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/
  d135f1c5-b5e1-4238-9381-b3277f5a3742 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <detach>true</detach>
</action>
15.6.1.5. 磁盘激活和取消激活操作
每个虚拟机的磁盘提供了一组 激活和停用 操作,以在虚拟机中添加和删除磁盘。

例 15.22. 激活虚拟磁盘的操作

POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/a42ada0e-1d69-410d-a392-a6980d873e5d/activate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

例 15.23. 取消激活虚拟磁盘的操作

POST /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/disks/a42ada0e-1d69-410d-a392-a6980d873e5d/deactivate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
使用这些操作将磁盘热插拔到虚拟机并激活新附加的浮动磁盘。
重要
热插拔功能只支持支持热插操作的 VirtIO 磁盘和虚拟机操作系统。操作系统示例包括:
  • Red Hat Enterprise Linux 6;
  • Red Hat Enterprise Linux 5;
  • Windows Server 2008;以及.
  • Windows Server 2003.

15.6.2. Network Interfaces Sub-Collection

15.6.2.1. Network Interfaces Sub-Collection
nics 子集合表示虚拟机上的所有网络接口设备。nic representation 包含以下元素:
表 15.5. 虚拟机网络接口的元素
元素 类型 Description Properties
link rel="statistics" 关系 到虚拟机网络接口 统计的统计信息 子集合的链接。
network id= GUID 对接口应该连接的网络的引用。允许空白网络 ID。
interface Enumerated 用于 nic 的驱动程序类型。枚举的值列表包括在 能力 中。 
mac address= 字符串 接口的 MAC 地址。
port_mirroring complex 定义 NIC 是否接收镜像流量。定义包含一系列 网络 id= 引用的网络元素
plugged 布尔值 定义 NIC 是否插入到虚拟机。
链接 布尔值 定义 NIC 是否链接到虚拟机。

例 15.24. 网络接口的 XML 表示

<nic id="7a3cff5e-3cc4-47c2-8388-9adf16341f5e" 
  ref="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/nics/
  7a3cff5e-3cc4-47c2-8388-9adf16341f5e">
    <link rel="statistics"
      href="/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399/nics/
      7a3cff5e-3cc4-47c2-8388-9adf16341f5e/statistics"/>   
    <name>nic1</name>
    <interface>virtio</interface>
    <mac address="00:1a:4a:16:84:07"/>
    <network id="00000000-0000-0000-0000-000000000009"
      href="/ovirt-engine/api/networks/00000000-0000-0000-0000-000000000009"/>
    <vm id="cdc0b102-fbfe-444a-b9cb-57d2af94f401"
      href="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401"/>
    <port_mirroring>
        <networks>
            <network id="56087282-d7a6-11e1-af44-001a4a400e0c"
              href="/ovirt-engine/api/networks/56087282-d7a6-11e1-af44-001a4a400e0c"/>
        </networks>
    </port_mirroring>
</nic>
添加新网络接口时,需要 namenetwork 元素。使用 id 属性或 name 元素标识 network 元素。

例 15.25. 创建虚拟机 NIC

POST /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/nics HTTP/1.1
Accept: application/xml
Content-type: application/xml

<nic>
    <name>nic1</name>
    <network id="00000000-0000-0000-0000-000000000009"/>
</nic>
API 用户使用 PUT 请求修改网络接口。

例 15.26. 更新虚拟机 NIC

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/nics/
7a3cff5e-3cc4-47c2-8388-9adf16341f5e HTTP/1.1
Accept: application/xml
Content-type: application/xml

<nic>
    <name>nic2</name>
    <network id="00000000-0000-0000-0000-000000000010"/>
    <type>e1000</type>
</nic>
API 用户删除具有 DELETE 请求的网络接口。

例 15.27. 删除虚拟机 NIC

DELETE /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/nics/
7a3cff5e-3cc4-47c2-8388-9adf16341f5e HTTP/1.1

HTTP/1.1 204 No Content
重要
热插拔功能只支持具有热插操作的虚拟机操作系统。操作系统示例包括:
  • Red Hat Enterprise Linux 6;
  • Red Hat Enterprise Linux 5;
  • Windows Server 2008;以及.
  • Windows Server 2003.
15.6.2.2. 网络接口统计信息 Sub-Collection
每个虚拟机的网络接口会公开一个 统计 子集合,用于网络接口统计信息。每个统计 都包含以下元素:
表 15.6. 虚拟机网络接口统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
nic id= 关系 与包含 nic 资源的关系。
下表列出了虚拟机上网络接口的统计类型。
表 15.7. 虚拟机 NIC 统计类型
名称
Description
data.current.rx
接收的数据每秒的速率(以字节/秒为单位)。
data.current.tx
传输数据的每秒速率(以字节/秒为单位)。
errors.total.rx
接收数据的总错误。
errors.total.tx
传输数据的总错误。

例 15.28. 虚拟机的 NIC 统计子集合的 XML 表示

<statistics>
    <statistic id="ecd0559f-e88f-3330-94b4-1f091b0ffdf7"
      href="/ovirt-engine/api/vms/3a42530e-3bc5-4094-829d-489257894c2a/nics/
      6cd08e76-57c0-41ba-a728-7eba46ae1e36/statistics/
      ecd0559f-e88f-3330-94b4-1f091b0ffdf7">
        <name>data.current.rx</name>
        <description>Receive data rate</description>
        <values type="DECIMAL">
            <value>
                <datum>0</datum>
            </value>
        </values>
        <type>GAUGE</type>
        <unit>BYTES_PER_SECOND</unit>
        <nic id="6cd08e76-57c0-41ba-a728-7eba46ae1e36"
          href="/ovirt-engine/api/vms/3a42530e-3bc5-4094-829d-489257894c2a/
          nics/6cd08e76-57c0-41ba-a728-7eba46ae1e36"/>
    </statistic>
    ...
</statistics>
注意
这个 统计 子集合是只读的。

15.6.3. 虚拟 NUMA 节点子检测

numanodes 子集合表示虚拟机上的所有虚拟 NUMA 节点。vm_numa_node 表示包含以下元素:
表 15.8. 虚拟 NUMA 节点的元素
元素 类型 Description Properties
index 整数 虚拟 NUMA 节点的索引号。
内存 整数 分配给虚拟 NUMA 节点的内存量,以 MB 为单位。
cpu complex 与此虚拟 NUMA 节点关联的 CPU 拓扑。每个 core 元素 包含一个带有 关联核心索引号的 index 属性。
vm id= GUID 包含虚拟机的 ID。
numa_node_pins complex 将虚拟 NUMA 节点固定到主机 NUMA 节点。每个 numa_node_pin 元素包含一个 pinned="true" 布尔值和主机 NUMA 节点的索引 号。 

例 15.29. 虚拟 NUMA 节点的 XML 表示

<vm_numa_node href="/ovirt-engine/api/vms/c7ecd2dc-dbd3-4419-956f-1249651c0f2b/numanodes/3290b973-ed3e-4f0b-bbf5-9be10d229e50" id="3290b973-ed3e-4f0b-bbf5-9be10d229e50">
        <index>0</index>
        <memory>1024</memory>
        <cpu>
            <cores>
                <core index="0"/>
            </cores>
        </cpu>
        <vm href="/ovirt-engine/api/vms/c7ecd2dc-dbd3-4419-956f-1249651c0f2b" id="c7ecd2dc-dbd3-4419-956f-1249651c0f2b"/>
        <numa_node_pins>
            <numa_node_pin pinned="true" index="0">
                <host_numa_node id="417cdefb-8c47-4838-87f3-dd0498fdf6c7"/>
            </numa_node_pin>
        </numa_node_pins>
</vm_numa_node>
在添加新的虚拟 NUMA 节点时,需要 索引memorycpu 元素。

例 15.30. 将新的虚拟 NUMA 节点添加到虚拟机

POST /ovirt-engine/api/vms/c7ecd2dc-dbd3-4419-956f-1249651c0f2b/numanodes HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm_numa_node>
  <index>0</index>
  <memory>1024</memory>
  <cpu>
    <cores>
      <core index="0"/>
    </cores>
  </cpu>
</vm_numa_nodes>
使用 PUT 请求更新虚拟 NUMA 节点。您可以使用 PUT 请求将虚拟 NUMA 节点固定到主机上的物理 NUMA 节点。

例 15.31. 更新虚拟 NUMA 节点

PUT /ovirt-engine/api/vms/c7ecd2dc-dbd3-4419-956f-1249651c0f2b/numanodes/3290b973-ed3e-4f0b-bbf5-9be10d229e50 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm_numa_node>
  <numa_node_pins>
    <numa_node_pin pinned="true" index="0">
      <host_numa_node id="417cdefb-8c47-4838-87f3-dd0498fdf6c7"/>
    </numa_node_pin>
  </numa_node_pins>
</vm_numa_node>
使用 DELETE 请求删除虚拟 NUMA 节点。

例 15.32. 删除虚拟 NUMA 节点

DELETE /ovirt-engine/api/vms/c7ecd2dc-dbd3-4419-956f-1249651c0f2b/numanodes/3290b973-ed3e-4f0b-bbf5-9be10d229e50 HTTP/1.1

HTTP/1.1 204 No Content

15.6.4. CD-ROMs Sub-Collection

cdroms 子集合表示虚拟机上的 CD-ROM 设备。cdrom 表示包含以下元素:
表 15.9. 虚拟机 CD-ROM 的元素
元素 类型 Description Properties
file id= string/filename 对 ISO 镜像的引用。 

例 15.33. CD-ROM 设备的 XML 表示

<cdrom id="00000000-0000-0000-0000-000000000000"
  href="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/
  00000000-0000-0000-0000-000000000000">
    <file id="rhel-server-6.0-x86_64-dvd.iso"/>
    <vm id="cdc0b102-fbfe-444a-b9cb-57d2af94f401"
      href="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401"/>
</cdrom>
使用 file id 元素发送 PUT 请求,以添加新的 CD-ROM 资源。

例 15.34. 添加新 CD-ROM 文件

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml
      
<cdrom>
    <file id="fedora-15-x86_64-dvd.iso"/>
</cdrom>
API 使用 PUT 请求更改 CD-ROM:

例 15.35. 更改 CD-ROM 文件

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml
      
<cdrom>
    <file id="fedora-15-x86_64-dvd.iso"/>
</cdrom>
API 仅使用 PUT 请求和其他当前 URI 参数更改 当前会话 的 CD-ROM:

例 15.36. 在当前会话中更改 CD-ROM 文件

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/00000000-0000-0000-0000-000000000000;current=true HTTP/1.1
Accept: application/xml
Content-type: application/xml
      
<cdrom>
    <file id="fedora-15-x86_64-dvd.iso"/>
</cdrom>
要临时弹出 CD-ROM,请向虚拟机的 cdroms 子集合发送 PUT 请求,添加 current=true matrix 参数:

例 15.37. 在当前会话中弹出 CD-ROM 文件

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/00000000-0000-0000-0000-000000000000;current=true HTTP/1.1
Accept: application/xml
Content-type: application/xml
<cdrom>
  <file id=""/>
</cdrom>
注意
重新启动虚拟机将再次连接 CD-ROM。
要永久弹出 CD-ROM,请向虚拟机的 cdroms 子集合发送 PUT 请求:

例 15.38. 永久弹出 CD-ROM 文件

PUT /ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/cdroms/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml
<cdrom>
  <file id=""/>
</cdrom>
注意
虚拟机仅包含单个 CD-ROM 设备。

15.6.5. 快照 Sub-Collection

15.6.5.1. 快照 Sub-Collection
虚拟机将磁盘状态保存并恢复为多个快照。它们通过一个 rel="snapshot" 子集合来表示和管理,它的行为与其他集合类似。
每个虚拟机快照都由一个单独的 snapshot 元素来表示,其中包含以下子元素:
表 15.10. 虚拟机快照的元素
元素 类型 Description Properties
vm id= GUID 与此快照相关的虚拟机的 ID 和 URI。
link rel="restore" 关系 恢复虚拟机快照的链接。
link rel="prev" 关系 此虚拟机之前快照的链接。
type 字符串 快照的类型。例如: activeregular
date xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 创建快照的日期和时间。
snapshot_status 字符串 快照的当前状态。
persist_memorystate 布尔值 定义快照是否还包括执行快照时虚拟机的内存状态。
注意
无法使用 PUT 修改快照元素。

例 15.39. 虚拟机快照的 XML 表示

<snapshot id="00000000-0000-0000-0000-000000000000"
  href="/ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000/snapshots/
  00000000-0000-0000-0000-000000000000">
    <actions>
      <link rel="restore"
      href="/ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000/snapshots/
      00000000-0000-0000-0000-000000000000/restore"/>
    <link rel="prev"
      href="/ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000/snapshots/
    </actions>
    <vm id="00000000-0000-0000-0000-000000000000"
      href="/ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000"/>
    <description>Virtual Machine 1 - Snapshot A</description>
    <type>active</type>
    <date>2010-08-16T14:24:29</date>
    <snapshot_status>ok</snapshot_status>
    <persist_memorystate>false</persist_memorystate>
</snapshot>
使用带有 All-Content: true 标头的虚拟机快照的 GET 请求,使其包含带有快照表示的额外 OVF 数据。
如果留空,则 Accept 标头默认为 application/xml,数据则以 HTML 实体表示,从而不会影响 XML 标签。指定 Accept: application/json 标头将在标准 XML 标记中返回数据。此示例表示已从标准块格式格式化,以提高 leg 可访问性。

例 15.40. 快照的额外 ovf 数据的 XML 表示

GET /ovirt-engine/api/vms/42ec2621-7ad6-4ca2-bd68-973a44b2562e/snapshots HTTP/1.1
All-Content: true
	
<?xml version='1.0' encoding='UTF-8'?>
<ovf:Envelope xmlns:ovf=\"http://schemas.dmtf.org/ovf/envelope/1/\" 
  xmlns:rasd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData\" 
  xmlns:vssd=\"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData\" 
  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ovf:version=\"3.5.0.0\"> 
  <References>
  <File ovf:href=\"ad353554-f668-46cf-aa3c-e57383de2c92/40456d92-3687-4a85-bab3-87b4cc7af459\" 
    ovf:id=\"40456d92-3687-4a85-bab3-87b4cc7af459\" ovf:size=\"10737418240\" 
    ovf:description=\"Active VM\"/>
  <Nic ovf:id=\"be14bfc8-3dbd-4ac1-ba02-c6dfa7fc707c\"/>
  </References>
  <Section xsi:type=\"ovf:NetworkSection_Type\"> 
    <Info>List of networks</Info><Network ovf:name=\"Network 1\"/>
  </Section>
  <Section 
    xsi:type=\"ovf:DiskSection_Type\"> 
    <Info>List of Virtual Disks</Info>
    <Disk ovf:diskId=\"40456d92-3687-4a85-bab3-87b4cc7af459\" 
    ovf:size=\"10\" ovf:actual_size=\"0\" 
    ovf:vm_snapshot_id=\"a209216d-2909-4802-8886-02aad55dccc8\" 
    ovf:parentRef=\"\" 
    ovf:fileRef=\"ad353554-f668-46cf-aa3c-e57383de2c92/40456d92-3687-4a85-bab3-87b4cc7af459\" 
    ovf:format=\"http://www.vmware.com/specifications/vmdk.html#sparse\" 
    ovf:volume-format=\"RAW\" 
    ovf:volume-type=\"Preallocated\" 
    ovf:disk-interface=\"VirtIO\" 
    ovf:boot=\"true\" 
    ovf:disk-alias=\"VM_01_Disk1\" 
    ovf:wipe-after-delete=\"false\"/>
  </Section>
  <Content 
    ovf:id=\"out\" 
    xsi:type=\"ovf:VirtualSystem_Type\"> 
    <CreationDate>2015/02/09 13:53:53</CreationDate> 
    <ExportDate>2015/02/10 00:39:24</ExportDate> 
    <DeleteProtected>false</DeleteProtected> 
    <SsoMethod>guest_agent</SsoMethod> 
    <IsSmartcardEnabled>false</IsSmartcardEnabled> 
    <TimeZone>Etc/GMT</TimeZone><default_boot_sequence>0</default_boot_sequence> 
    <Generation>1</Generation> 
    <VmType>1</VmType> 
    <MinAllocatedMem>1024</MinAllocatedMem> 
    <IsStateless>false</IsStateless> 
    <IsRunAndPause>false</IsRunAndPause> 
    <AutoStartup>false</AutoStartup> 
    <Priority>1</Priority> 
    <CreatedByUserId>fdfc627c-d875-11e0-90f0-83df133b58cc</CreatedByUserId> 
    <IsBootMenuEnabled>false</IsBootMenuEnabled> 
    <IsSpiceFileTransferEnabled>true</IsSpiceFileTransferEnabled> 
    <IsSpiceCopyPasteEnabled>true</IsSpiceCopyPasteEnabled> 
    <Name>VM_01</Name> 
    <TemplateId>00000000-0000-0000-0000-000000000000</TemplateId> 
    <TemplateName>Blank</TemplateName> 
    <IsInitilized>true</IsInitilized> 
    <Origin>3</Origin> 
    <DefaultDisplayType>1</DefaultDisplayType> 
    <TrustedService>false</TrustedService> 
    <OriginalTemplateId>00000000-0000-0000-0000-000000000000</OriginalTemplateId> 
    <OriginalTemplateName>Blank</OriginalTemplateName> 
    <UseLatestVersion>false</UseLatestVersion>
    <Section ovf:id=\"42ec2621-7ad6-4ca2-bd68-973a44b2562e\" ovf:required=\"false\" xsi:type=\"ovf:OperatingSystemSection_Type\"> 
      <Info>Guest Operating System</Info> 
      <Description>other</Description>
    </Section>
    <Section xsi:type=\"ovf:VirtualHardwareSection_Type\"> 
      <Info>1 CPU, 1024 Memeory</Info> 
      <System>
        <vssd:VirtualSystemType>ENGINE 3.5.0.0</vssd:VirtualSystemType>
      </System> 
      <Item> 
        <rasd:Caption>1 virtual cpu</rasd:Caption> 
        <rasd:Description>Number of virtual CPU</rasd:Description> 
        <rasd:InstanceId>1</rasd:InstanceId> 
        <rasd:ResourceType>3</rasd:ResourceType> 
        <rasd:num_of_sockets>1</rasd:num_of_sockets> 
        <rasd:cpu_per_socket>1</rasd:cpu_per_socket>
      </Item> 
      <Item> 
        <rasd:Caption>1024 MB of memory</rasd:Caption> 
        <rasd:Description>Memory Size</rasd:Description> 
        <rasd:InstanceId>2</rasd:InstanceId> 
        <rasd:ResourceType>4</rasd:ResourceType> 
        <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits> 
        <rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
      </Item> 
      <Item> 
        <rasd:Caption>VM_01_Disk1</rasd:Caption> 
        <rasd:InstanceId>40456d92-3687-4a85-bab3-87b4cc7af459</rasd:InstanceId> 
        <rasd:ResourceType>17</rasd:ResourceType> 
        <rasd:HostResource>ad353554-f668-46cf-aa3c-e57383de2c92/40456d92-3687-4a85-bab3-87b4cc7af459</rasd:HostResource> 
        <rasd:Parent>00000000-0000-0000-0000-000000000000</rasd:Parent> 
        <rasd:Template>00000000-0000-0000-0000-000000000000</rasd:Template> 
        <rasd:ApplicationList></rasd:ApplicationList> 
        <rasd:StoragePoolId>00000002-0002-0002-0002-000000000255</rasd:StoragePoolId> 
        <rasd:CreationDate>2015/02/09 13:54:41</rasd:CreationDate> 
        <rasd:LastModified>1970/01/01 00:00:00</rasd:LastModified> 
        <rasd:last_modified_date>2015/02/10 00:39:22</rasd:last_modified_date> 
        <Type>disk</Type> 
        <Device>disk</Device> 
        <rasd:Address>{slot=0x06, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>1</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>virtio-disk0</Alias>
      </Item> 
      <Item> 
        <rasd:Caption>Ethernet adapter on ovirtmgmt</rasd:Caption> 
        <rasd:InstanceId>be14bfc8-3dbd-4ac1-ba02-c6dfa7fc707c</rasd:InstanceId> 
        <rasd:ResourceType>10</rasd:ResourceType> 
        <rasd:OtherResourceType>ovirtmgmt</rasd:OtherResourceType> 
        <rasd:ResourceSubType>3</rasd:ResourceSubType> 
        <rasd:Connection>ovirtmgmt</rasd:Connection> 
        <rasd:Linked>true</rasd:Linked> 
        <rasd:Name>nic1</rasd:Name> 
        <rasd:MACAddress>00:1a:4a:87:cb:00</rasd:MACAddress> 
        <rasd:speed>1000</rasd:speed> 
        <Type>interface</Type> 
        <Device>bridge</Device> 
        <rasd:Address>{slot=0x03, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>net0</Alias>
      </Item> 
      <Item> 
        <rasd:Caption>USB Controller</rasd:Caption> 
        <rasd:InstanceId>3</rasd:InstanceId> 
        <rasd:ResourceType>23</rasd:ResourceType> 
        <rasd:UsbPolicy>DISABLED</rasd:UsbPolicy>
      </Item> 
      <Item> 
        <rasd:Caption>Graphical Controller</rasd:Caption> 
        <rasd:InstanceId>17bbf0db-7cf0-4529-9b53-dee6dee41cfd</rasd:InstanceId> 
        <rasd:ResourceType>20</rasd:ResourceType> 
        <rasd:VirtualQuantity>1</rasd:VirtualQuantity> 
        <rasd:SinglePciQxl>false</rasd:SinglePciQxl> 
        <Type>video</Type> 
        <Device>qxl</Device> 
        <rasd:Address>{slot=0x02, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>true</IsReadOnly> 
        <Alias>video0</Alias> 
        <SpecParams>  
          <vram>32768</vram> 
          <heads>1</heads>
        </SpecParams>
      </Item> 
      <Item> 
        <rasd:Caption>CDROM</rasd:Caption> 
        <rasd:InstanceId>7ce1bd14-d98a-43ba-beee-520bdfd9c698</rasd:InstanceId> 
        <rasd:ResourceType>15</rasd:ResourceType> 
        <Type>disk</Type> 
        <Device>cdrom</Device> 
        <rasd:Address>{bus=1, controller=0, type=drive, target=0, unit=0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>true</IsReadOnly> 
        <Alias>ide0-1-0</Alias></Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>8758c42f-7523-461b-82bb-41d91e46fd36</rasd:InstanceId> 
        <Type>controller</Type> 
        <Device>usb</Device> 
        <rasd:Address>{slot=0x01, bus=0x00, domain=0x0000, type=pci, function=0x2}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>usb0</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>58f1a596-553e-4e95-9331-64b5d8cebe2e</rasd:InstanceId> 
        <Type>controller</Type> 
        <Device>ide</Device> 
        <rasd:Address>{slot=0x01, bus=0x00, domain=0x0000, type=pci, function=0x1}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>ide0</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>2f4f8aa5-25eb-4a31-b841-50dc48fce4a7</rasd:InstanceId> 
        <Type>channel</Type> 
        <Device>unix</Device> 
        <rasd:Address>{bus=0, controller=0, type=virtio-serial, port=1}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>channel0</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>edaac3ed-2ab6-48b1-ae77-cc98f8b45bd8</rasd:InstanceId> 
        <Type>channel</Type> 
        <Device>unix</Device> 
        <rasd:Address>{bus=0, controller=0, type=virtio-serial, port=2}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>channel1</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>8dfed248-5164-41d3-8b6e-46aef9798d84</rasd:InstanceId> 
        <Type>channel</Type> 
        <Device>spicevmc</Device> 
        <rasd:Address>{bus=0, controller=0, type=virtio-serial, port=3}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>channel2</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>d184185e-ee19-442a-88f5-6a48f14164e1</rasd:InstanceId> 
        <Type>controller</Type> 
        <Device>virtio-scsi</Device> 
        <rasd:Address>{slot=0x04, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>scsi0</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>374d219e-e2ff-4755-a544-d537c87e82df</rasd:InstanceId> 
        <Type>controller</Type> 
        <Device>virtio-serial</Device> 
        <rasd:Address>{slot=0x05, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>false</IsReadOnly> 
        <Alias>virtio-serial0</Alias>
      </Item> 
      <Item> 
        <rasd:ResourceType>0</rasd:ResourceType> 
        <rasd:InstanceId>cf3d7121-9db0-4fd1-bd12-50ce4e1ce379</rasd:InstanceId> 
        <Type>balloon</Type> 
        <Device>memballoon</Device> 
        <rasd:Address>{slot=0x07, bus=0x00, domain=0x0000, type=pci, function=0x0}</rasd:Address> 
        <BootOrder>0</BootOrder> 
        <IsPlugged>true</IsPlugged> 
        <IsReadOnly>true</IsReadOnly> 
        <Alias>balloon0</Alias> 
        <SpecParams> 
          <model>virtio</model>
        </SpecParams>
      </Item>
    </Section>
  </Content>
</ovf:Envelope>
您可以为正在运行(实时快照)的虚拟机创建快照,或使用 POST 方法关闭:

例 15.41. 创建虚拟机快照

POST /ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000/snapshots/ HTTP/1.1
Accept: application/xml
Content-type: application/xml

<snapshot>
<description>Snapshot description</description>
</snapshot>
重要
在对使用 OpenStack 卷(Cinder)磁盘的虚拟机进行实时快照前,您必须手动冻结并解解客户机文件系统。如需更多信息,请参阅 第 15.7.14 节 “冻结虚拟机文件系统操作”第 15.7.15 节 “thaw 虚拟机文件系统操作”
您可以使用快照表示法中的 rel="restore" 操作链接恢复虚拟机快照:

例 15.42. 恢复虚拟机快照

POST /ovirt-engine/api/vms/00000000-0000-0000-0000-000000000000/snapshots/00000000-0000-0000-0000-000000000000/restore HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
15.6.5.2. 从快照克隆虚拟机
API 提供了从之前机器的快照创建虚拟机的功能。API 用户创建新的虚拟机,同时保留带有所有快照的原始虚拟机。
从快照创建虚拟机时,需要额外的 快照 元素到虚拟机的标准表示,用户会在 POST 请求中向 vms 集合发送。
snapshots 元素包含 快照 id= 元素,用于定义用作虚拟机基础的特定快照。

例 15.43. 从快照克隆虚拟机

POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
  ...
  <snapshots>
    <snapshot id="3f68ee63-0016-4f8c-9b8a-11d9f28f7c9e"/>
  </snapshots>
  ...
</vm>

15.6.6. statistics Sub-Collection

每个虚拟机资源会为特定于虚拟机的 统计 公开一个统计子集合。每个统计 都包含以下元素:
表 15.11. 虚拟机统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
vm id= 关系 与包含 vm 资源的关系。
下表列出了虚拟机的统计类型。
表 15.12. 虚拟机统计类型
名称
Description
memory.installed
为虚拟机使用分配的内存总量(以字节为单位)。
memory.used
虚拟机使用的当前内存(以字节为单位)。
cpu.current.guest
客户机使用的 CPU 百分比。
cpu.current.hypervisor
hypervisor 上的 CPU 开销百分比。
cpu.current.total
正在使用的当前 CPU 的总百分比。

例 15.44. 虚拟机统计子集合的 XML 表示

<statistics>
    <statistic id="ef802239-b74a-329f-9955-be8fea6b50a4"
      href="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401/
      statistics/ef802239-b74a-329f-9955-be8fea6b50a4">
        <name>memory.installed</name>
        <description>Total memory configured</description>
        <unit>BYTES</unit>
        <type>GUAGE</type>
        <values type="DECIMAL">
            <value>
                <datum>1073741824<datum>
            </value>
        </values>
        <vm id="cdc0b102-fbfe-444a-b9cb-57d2af94f401"
          href="/ovirt-engine/api/vms/cdc0b102-fbfe-444a-b9cb-57d2af94f401"/>
    </statistic>
    ...
</statistics>
注意
虚拟机 的统计数据 子集合为只读。

15.6.7. 显示虚拟机会话信息

提交虚拟机的 GET 请求,并使用 会话 子集合来查看启动 SPICE 控制台会话的用户的会话信息,以及登录到虚拟机的用户。
虚拟机的会话信息列为子集合:

例 15.45. 显示虚拟机的会话信息

GET /ovirt-engine/api/roles/a1a701f1-aa06-4f02-af17-158be31489b3/sessions HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<sessions>
  <session id="37a6259c-c0c1-dae2-99a7-866489dff0bd"
    href= "/ovirt-engine/api/vms/a1a701f1-aa06-4f02-af17-158be31489b3/sessions/37a6259c-c0c1-dae2-99a7-866489dff0bd">
  <vm href= "/ovirt-engine/api/vms/a1a701f1-aa06-4f02-af17-158be31489b3" id="a1a701f1-aa06-4f02-af17-158be31489b3"/>
  <ip address="192.0.2.0"/>
  <user href= "/ovirt-engine/api/users/fdfc627c-d875-11e0-90f0-83df133b58cc" id="fdfc627c-d875-11e0-90f0-83df133b58cc">
    <domain href= "/ovirt-engine/api/domains/696e7465-726e-616c-696e-7465726e616c" id="696e7465-726e-616c-696e-7465726e616c">
      <name>internal</name>
    </domain>
    <user_name>admin</user_name>
    </user>
    <console_user>true</console_user>
  </session>
  <session id="37a6259c-c0c1-dae2-99a7-866489dff0bd"
    href= "/ovirt-engine/api/vms/a1a701f1-aa06-4f02-af17-158be31489b3/sessions/37a6259c-c0c1-dae2-99a7-866489dff0bd" >
    <vm href= "/ovirt-engine/api/vms/a1a701f1-aa06-4f02-af17-158be31489b3" id="a1a701f1-aa06-4f02-af17-158be31489b3"/>
    <user>
      <user_name>root</user_name>
    </user>
  </session>
</sessions>

15.7. Actions

15.7.1. 启动虚拟机操作

start 操作将启动已停止、关闭或暂停的虚拟机。

例 15.46. 启动虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/start HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
start 操作允许提供 vm 元素作为参数。如果提供了 vm 元素,虚拟机将使用提供的元素中的值,并在启动时覆盖系统设置。在 REST API 中将 start 操作与 vm 元素一起使用等同于在管理门户或用户门户中使用 Run Once 窗口。这些设置会保留,直到用户停止虚拟机。这些元素的示例包括 osdomainplacement_policycdromsstatelessdisplay 类型

例 15.47. 使用覆盖参数启动虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/start HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <pause>true</pause>
    <vm>
        <stateless>true</stateless>
        <display>
            <type>spice</type>
        </display>
        <os>
            <boot dev="cdrom"/>
        </os>
        <cdroms>
            <cdrom>
                <file id="windows-xp.iso"/>
            </cdrom>
        </cdroms>
        <floppies>
            <floppy>
                <file id="virtio-win_x86.vfd"/>
            </floppy>
       </floppies>
        <domain>
            <name>domain.example.com</name>
            <user>
                <user_name>domain_user</user_name>
                <password>domain_password</password>
            </user>
        </domain>
        <placement_policy>
            <host id="02447ac6-bcba-448d-ba2b-f0f453544ed2"/>       
        </placement_policy>
    </vm>
</action>
注意
  • domain 元素仅用于 Windows 系统,用于启动时使用 start 操作覆盖参数。domain 元素决定 Windows 虚拟机加入的域。如果域集合中不存在 ,此元素需要额外的用户身份验证详细信息,包括 user _name 和密码。如果域集合中存在 ,则操作不需要额外的 用户身份验证 详情。
  • CD 镜像和软盘文件必须已经在 ISO 域中可用。如果没有,使用 ISO uploader 工具上传文件。如需更多信息,请参阅 ISO 上传工具

15.7.2. 使用 Cloud-Init Action 启动虚拟机

Cloud-Init 是自动化虚拟机初始设置的工具。您可以使用 工具配置主机名、网络接口、DNS 服务、授权密钥以及设置用户名和密码。您还可以使用 custom_script 标签指定要在启动时在虚拟机上运行的自定义脚本。
注意
cloud-init 元素只能用于启动安装有 cloud-init 软件包的虚拟机。使用 cloud-init 元素时,initialization 元素中的任何元素都会被忽略,但 cloud-init 元素以外的任何元素都会被忽略。

例 15.48. 使用 Cloud-Init 启动虚拟机的操作

本例演示了如何使用 Cloud-Init 工具启动虚拟机,以设置主机名,更改 root 密码,为 eth0 接口设置静态 IP,配置 DNS,并为 root 用户添加 SSH 密钥。
POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/start HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <vm>
       <initialization>
        <cloud_init>
          <host>
           <address>MyHost.MyDomain.com</address>
          </host>
          <users>
           <user>
            <user_name>root</user_name>
            <password>p@55w0rd!</password>
           </user>
          </users>
          <network_configuration>
           <nics>
            <nic>
              <name>eth0</name>
              <boot_protocol>static</boot_protocol>
              <network>
                <ip address="192.168.122.31" netmask="255.255.255.0" gateway="192.168.122.1"/>
              </network>
              <on_boot>true</on_boot>
            </nic>
           </nics>
           <dns>
            <servers>
              <host>
                <address>192.168.122.1</address>
              </host>
            </servers>
            <search_domains>
              <host>
                <address>MyDomain.com</address>
              </host>
            </search_domains>
          </dns>
        </network_configuration>
        <authorized_keys>
         <authorized_key>
           <user>
             <user_name>root</user_name>
           </user>
           <key>ssh-rsa AAAAB3Nza[...]75zkdD root@MyDomain.com</key>
         </authorized_key>
        </authorized_keys>
       </cloud_init>
       <custom_script><![CDATA[your script]]></custom_script>
      </initialization>
  </vm>
</action>

15.7.3. 停止虚拟机操作

stop 操作会强制虚拟机关机。

例 15.49. 停止虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/stop HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.4. 关闭虚拟机操作

shutdown 操作会将关闭请求发送到虚拟机。

例 15.50. 将关闭请求发送到虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/shutdown HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.5. 挂起虚拟机操作

suspend 操作会将虚拟机状态保存到磁盘,并停止它。启动暂停的虚拟机,并使用 start 操作恢复虚拟机状态。

例 15.51. 保存虚拟机状态并暂停虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/suspend HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.6. 重启虚拟机操作

reboot 操作会将重启请求发送到虚拟机。

例 15.52. 将重启请求发送到虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/reboot HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.7. 启用用户登录,从外部控制台访问虚拟机

logon 操作可让用户从 Red Hat Virtualization 环境外的控制台访问虚拟机。
此操作要求安装 ovirt-guest-agent-gdm-pluginovirt-guest-agent-pam-module 软件包,并在虚拟机上运行 ovirt-guest-agent 服务。
用户为虚拟机需要适当的用户权限,以便从外部控制台访问虚拟机。

例 15.53. 登录虚拟机

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/logon HTTP/1.1
Content-Type: application/json
Content-Length: 2

{}

15.7.8. 从池操作中分离虚拟机

分离操作从池中分离虚拟机。

例 15.54. 分离虚拟机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/detach HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.9. 迁移虚拟机操作

migrate 操作将虚拟机迁移到另一个物理主机。目的地主机元素是一个可选的元素,因为 Red Hat Virtualization Manager 会自动选择默认主机进行迁移。如果 API 用户需要特定主机,用户可以使用 idname 参数指定主机。

例 15.55. 将虚拟机迁移到另一台主机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/migrate HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
</action>

15.7.10. 取消虚拟机迁移操作

取消迁移操作会停止虚拟机到另一个物理主机的任何迁移。

例 15.56. 取消将虚拟机迁移到另一台主机的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/cancelmigration HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

15.7.11. 导出虚拟机操作

注意
导出存储域已弃用。存储数据域可以从数据中心取消附加,并导入到同一环境中或不同环境中的其他数据中心。然后,可以将虚拟机、浮动虚拟磁盘镜像和模板从导入的存储域上传到附加的数据中心。有关 导入存储域 的信息,请参阅 Red Hat Virtualization 管理指南中的 导入现有存储域部分。
export 操作会将虚拟机 导出到 导出存储域。必须使用 storage_domain 引用来指定目标存储域。
如果目标域中存在相同名称的虚拟机,则 export 操作会报告失败的操作。将 exclusive 参数设置为 true 以更改此行为并覆盖任何现有的虚拟机。
如果导出的虚拟机没有包括虚拟机快照,请将 discard_snapshots 参数设置为 true

例 15.57. 将虚拟机导出到导出存储域的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/export HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain>
        <name>export1</name>
    </storage_domain>
    <exclusive>true</exclusive>
    <discard_snapshots>true</discard_snapshots>
</action>

15.7.12. 虚拟机票据操作

ticket 操作会生成一个用于访问虚拟机显示的时间敏感的身份验证令牌。客户端提供 的操作 (可选)包括了一个 ticket 表示,其中包含一个 (如果令牌字符串需要在特定表单上需要)和/或以分钟为单位 的到期时间。在任何情况下,响应都指定了实际使用的 ticket 值和到期时间。

例 15.58. 为虚拟机生成身份验证令牌的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/ticket HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <ticket>
        <expiry>120</expiry>
    </ticket>
</action>

200 OK
Content-Type: application/xml

<action id="94e07552-14ba-4c27-8ce6-2cc75190d3ef"
  href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/ticket/
  94e07552-14ba-4c27-8ce6-2cc75190d3ef">
    <status>
        <state>complete</state>
    </status>
    <ticket>
        <value>5c7CSzK8Sw41</value>
        <expiry>120</expiry>
    </ticket>
    <link rel="parent"
      href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720"/>
    <link rel="replay"
      href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/ticket"/>
</action>

15.7.13. 强制删除虚拟机操作

API 用户强制使用 force 操作删除有问题的虚拟机。此操作需要 DELETE 方法。请求正文包含将 force 参数设置为 true 的操作 表示。请求还需要额外的 Content-type: application/xml 标头来处理正文中的 XML 表示。

例 15.59. 在虚拟机上强制删除操作

DELETE /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <force>true</force>
</action>

15.7.14. 冻结虚拟机文件系统操作

在对正在运行的虚拟机进行实时快照时,冻结文件系统 会冻结使用 QEMU 客户机代理的文件系统。通常,这由管理器自动执行,但必须使用 OpenStack 卷(Cinder)磁盘的虚拟机使用 REST API 手动执行。
释放客户机操作系统上的文件系统可确保快照的一致性。完成快照后,客户机文件系统必须被解封。在不使用 OpenStack 卷磁盘的虚拟机上,也可以使用 REST API 手动调用冻结和解放操作,这在快照过程中故障时很有用。

例 15.60. 冻结虚拟机的文件系统的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/freezefilesystems HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
有关快照的更多信息,请参阅 Red Hat Virtualization 虚拟机管理指南中的 第 15.6.5.1 节 “快照 Sub-Collection”快照 部分

15.7.15. thaw 虚拟机文件系统操作

在对正在运行的虚拟机执行实时快照时,thaw filesystems 操作使用 QEMU 客户机代理来解封虚拟机文件系统。通常,这由管理器自动执行,但必须使用 OpenStack 卷(Cinder)磁盘的虚拟机使用 REST API 手动执行。
释放客户机操作系统上的文件系统可确保快照的一致性。完成快照后,客户机文件系统必须被解封。在不使用 OpenStack 卷磁盘的虚拟机上,也可以使用 REST API 手动调用冻结和解放操作,这在快照过程中故障时很有用。例如,如果虚拟机在 thaw 期间变得无响应,您可以手动执行 thaw 操作;否则,虚拟机可能会保持无响应。

例 15.61. 处理虚拟机文件系统的操作

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/thawfilesystems HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>
有关快照的更多信息,请参阅 Red Hat Virtualization 虚拟机管理指南中的 第 15.6.5.1 节 “快照 Sub-Collection”快照 部分

第 16 章 浮动磁盘

16.1. 浮动磁盘元素

磁盘 集合提供有关 Red Hat Virtualization 环境中所有磁盘的信息。用户从任何虚拟机中附加和分离磁盘,并在虚拟机之间进行浮点浮点。API 用户通过从入口点 URI 获取的 rel="disks" 链接访问此信息。
下表显示了 磁盘 资源表示法中包含的特定元素。
表 16.1. 浮动磁盘的元素
元素 类型 Description Properties
link rel="statistics" 关系 到虚拟机磁盘 统计的统计信息 子集合的链接。
image_id GUID 对存储在定义的存储域中的虚拟机镜像的引用。
storage_domains 复杂 与此磁盘关联的存储域。每个 storage_domain 元素包含一个 id 属性,其中包含关联的存储域的 GUID。使用 POST 更新此元素,以执行磁盘从一个数据存储域的实时迁移到另一个数据存储域。
size 整数 磁盘大小(以字节为单位)。
provisioned_size 整数 磁盘置备大小(以字节为单位)。
actual_size 整数 磁盘的实际大小(以字节为单位)。
status 其中一个 非法无效锁定正常 磁盘设备的状态。这些状态列在 capabilities 下的 disk_states 中。
interface Enumerated 用于连接到磁盘设备的接口驱动程序的类型。枚举的值列表包括在 能力 中。 
格式 Enumerated 底层存储格式。枚举的值列表包括在 能力 中。Copy On Write (COW)允许快照,且性能小。raw 不允许快照,但提供更好的性能。
sparse 布尔值: true 或 false 如果磁盘的物理存储不应预分配,则为 true
bootable 布尔值: true 或 false 如果此磁盘被标记为可引导,则为 true 
可共享 布尔值: true 或 false true 与多个虚拟机共享磁盘。 
wipe_after_delete 布尔值: true 或 false 如果删除磁盘时,磁盘的底层物理存储应为零为 true。这会提高安全性,但是一个更密集的操作,可能会延长删除时间。 
propagate_errors 布尔值: true 或 false 如果磁盘错误不应导致虚拟机暂停,且应该向客户端操作系统传播磁盘错误,则为 true 
quota id= GUID 为磁盘设置配额。 
lunStorage complex 对存储使用直接 LUN 映射的引用。需要包含 iSCSI 或 FCP 设备详情 的存储 元素。
active 布尔值 定义磁盘是否已连接到虚拟机。
重要
根据名称搜索磁盘搜索查询需要 别名 搜索参数,而不是 名称

16.2. XML 代表浮动磁盘

例 16.1. 磁盘设备的 XML 表示

<disk id="ed7feafe-9aaf-458c-809a-ed789cdbd5b4"
  href="/ovirt-engine/api/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4">
    <link rel="statistics"
      href="/ovirt-engine/api/disks/ed7feafe-9aaf-458c-809a-ed789cdbd5b4/statistics"/>  
    <storage_domains>
        <storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"/>
    </storage_domains> 
    <size>10737418240</size>
    <type>system</type>
    <status>
        <state>ok</state>
    </status>
    <interface>virtio</interface>
    <format>raw</format>
    <bootable>true</bootable>
    <shareable>true</shareable>
    <lunStorage>
        <storage>
            <logical_unit id="lun1">
                ...
            </logical_unit>
        <storage>
    </lunStorage>
</disk>

16.3. Methods

16.3.1. 创建浮动磁盘

在创建新浮动磁盘时,API 需要 sizestorage_domains 元素。

例 16.2. 创建新的浮动磁盘设备

POST /ovirt-engine/api/disks HTTP/1.1
Accept: application/xml
Content-type: application/xml

<disk>
    <storage_domains>
        <storage_domain id="fabe0451-701f-4235-8f7e-e20e458819ed"/>
    </storage_domains>        
    <size>8589934592</size>
    <type>system</type>
    <interface>virtio</interface>
    <format>cow</format>
</disk>

16.4. sub-Collections

16.4.1. statistics Sub-Collection

每个浮动磁盘会公开一个 统计 子集合,用于特定于磁盘的统计信息。每个统计 都包含以下元素:
表 16.2. 虚拟磁盘统计的元素
元素 类型 描述
name 字符串 统计条目的唯一标识符。
description 字符串 统计的纯文本描述。
unit 字符串 测量统计值的单元或率。
type GAUGECOUNTER之一 统计测量结果的类型。
values type= INTEGERDECIMAL之一 后面的统计值的数据类型。
value complex 包含 datum 的数据集。
datum 查看值类型 来自 的独立数据。
disk id= 关系 与包含 disk 资源的关系。
下表列出了浮动磁盘的统计类型。
表 16.3. 磁盘统计类型
名称
Description
data.current.read
从磁盘读取时,数据传输速率(以字节/秒为单位)。
data.current.write
在写入磁盘时,数据传输速率(以字节/秒为单位)。

例 16.3. 虚拟机统计子集合的 XML 表示

<statistics>
    <statistic id="33b9212b-f9cb-3fd0-b364-248fb61e1272"
      href="/ovirt-engine/api/disks/f28ec14c-fc85-43e1-818d-96b49d50e27b/statistics/
      33b9212b-f9cb-3fd0-b364-248fb61e1272">
        <name>data.current.read</name>
        <description>Read data rate</description>
        <values type="DECIMAL">
            <value>
                <datum>0</datum>
            </value>
        </values>
        <type>GAUGE</type>
        <unit>BYTES_PER_SECOND</unit>
        <disk id="f28ec14c-fc85-43e1-818d-96b49d50e27b" 
          href="/ovirt-engine/api/disks/f28ec14c-fc85-43e1-818d-96b49d50e27b"/>
    </statistic>
    ...
</statistics>
注意
这个 统计 子集合是只读的。

16.5. Actions

16.5.1. 复制浮动磁盘

在复制浮动磁盘时,API 需要 storage_domain 元素。可选的 name 元素指定磁盘的别名。

例 16.4. 复制浮动磁盘

POST /ovirt-engine/api/disks/54a81464-b758-495a-824b-1e7937116ae5/copy HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain id="c8e108f7-c049-40d2-ad3d-620e4638828e"/>
    <disk>
        <name>rhel_disk2</name>
    </disk>
</action>

第 17 章 模板

17.1. 虚拟机模板元素

templates 集合提供有关 Red Hat Virtualization 环境中的虚拟机模板的信息。API 用户通过从入口点 URI 获取的 rel="templates" 链接访问此信息。
可以使用 All-Content: true 标头检索 GET 请求的其他信息。
下表显示了虚拟机模板资源表示法中包含的特定元素。
表 17.1. 虚拟机模板元素
元素 类型 Description Properties
link rel="disks" 关系 到虚拟机模板 资源的 disk 子集合的链接。
link rel="nics" 关系 虚拟机模板资源的 nics 子集合的链接。 
link rel="cdroms" 关系 虚拟机模板资源的 cdroms 子集合的链接。
link rel="permissions" 关系 到虚拟机模板 权限权限 子集合的链接。 
type Enumerated 模板提供的虚拟机类型。功能 中提供了枚举的值的列表。
status 其中一个 非法锁定正常 模板状态。这些状态列在 capabilities 下的 template_states 中。
内存 整数 分配给客户机的内存量,以字节为单位。
cpu complex 可供客户机使用的 CPU 拓扑 (如 套接字内核数量)。
os type= 字符串,如 RHEL5WindowsXP 客户机操作系统类型。
OS 引导 dev= Enumerated 引导设备列表,由 引导 元素中的 dev 属性描述。功能 中提供了枚举的值的列表。
OS 内核 字符串 配置为从中引导模板的内核镜像的路径。 
OS initrd 字符串 与内核一起使用的 initrd 镜像的路径。 
OS cmdline 字符串 与上述内核一起使用的内核命令行参数字符串。 
cluster id= GUID 对模板的主机集群的引用。
vm id= GUID 对此模板所基于的虚拟机的引用。
domain id= GUID 对模板的域的引用。
creation_time xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 创建此模板的日期和时间。
origin rhev,ovirt,vmwarexen之一 此模板源自的系统。
high_availability complex 如果虚拟机在 主机崩溃时应自动重启,则设置为 truepriority 元素控制虚拟机重新启动的顺序。 
显示 complex 显示 类型 ( vncspice)、port 以及 监视器 的数量。allow_reconnect 布尔值指定客户端是否可以通过显示重新连接到机器。 
无状态 布尔值: true 或 false 无状态模板包含引导时获取的磁盘镜像的快照,并在关机时删除。这意味着状态更改在重启后不会保留。
usb complex 定义虚拟机模板的 USB 策略。要求将 enabled 元素设置为布尔值,并且 type 元素设为 nativelegacy
重要
Legacy USB 选项已弃用,并将在 Red Hat Virtualization 4.1 中删除。
 
placement_policy complex 为虚拟机迁移设置放置策略。需要默认的 host=关联性 (一个可 migratableuser_migratable固定)。将 host 元素留空,以设置任何首选主机。 
custom_properties complex 一组用户定义的环境变量,作为参数传递给自定义脚本。每个 custom_property 都包含 namevalue 属性。功能 中提供了枚举的值的列表。 
timezone tz 数据库格式: Area/Location Windows 虚拟机模板的 Sysprep 时区设置。 
domain complex Windows 虚拟机模板的 Sysprep 域设置。需要 集合中的 名称 

17.2. 虚拟机模板的 XML 表

例 17.1. 虚拟机模板的 XML 表示

<template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"
  id="00000000-0000-0000-0000-000000000000">
    <actions>
        <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/export"
          rel="export"/>
    </actions>
    <name>Blank</name>
    <description>Blank template</description>
    <comment>Blank template</comment>
    <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/disks"
      rel="disks"/>
    <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/nics" 
      rel="nics"/>
    <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/cdroms"
      rel="cdroms"/>
    <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/permissions" 
      rel="permissions"/>
    <link href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/watchdogs" 
      rel="watchdogs"/>
    <type>server</type>
    <status>
        <state>ok</state>
    </status>
    <memory>536870912</memory>
    <cpu>
        <topology sockets="1" cores="1"/>
        <architecture>X86_64<architecture/>
    </cpu>
    <cpu_shares>0</cpu_shares>
    <os type="rhel_6x64">
        <boot dev="hd"/>
        <boot dev="cdrom"/>;
    </os>
    <cluster id="00000000-0000-0000-0000-000000000000"
      href="/ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000"/>
    <creation_time>2010-08-16T14:24:29</creation_time>
    <origin>ovirt</origin>
    <high_availability>
        <enabled>true</enabled>
        <priority>100</priority>
    </high_availability>
    <display>
        <type>spice</type>
        <monitors>1</monitors>
        <single_qxl_pci>false</single_qxl_pci>
        <allow_override>true</allow_override>
        <smartcard_enabled>true</smartcard_enabled>
    </display>
    <stateless>false</stateless>
    <delete_protected>false</delete_protected>
    <sso>
      <methods>
        <method id="GUEST_AGENT">true</enabled>
      </methods>
    </sso>
    <usb>
        <enabled>true</enabled>
    </usb>
    <migration_downtime>-1</migration_downtime>
    <version>
      <base_template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"
        id="00000000-0000-0000-0000-000000000000"/>
      <version_number>2</version_number>
      <version_name>RHEL65_TMPL_001</version_name>
    </version>
</template>

17.3. Methods

17.3.1. 创建新模板

创建新模板需要 namevm 元素。使用 id 属性或 name 元素识别 vm

例 17.2. 从虚拟机创建模板

POST /ovirt-engine/api/templates HTTP/1.1
Accept: application/xml
Content-type: application/xml

<template>
    <name>template1</name>
    <vm id="00000000-0000-0000-0000-000000000000"/>
</template>

17.3.2. 创建新模板子版本

创建新模板子版本需要新模板的 namevm 元素,以及新模板版本的 base_templateversion_name 元素。base_template version _name 元素必须在 template 部分中包含的版本部分指定。使用 id 属性或 name 元素识别 vm

例 17.3. 从模板创建模板子版本

POST /ovirt-engine/api/templates HTTP/1.1
Accept: application/xml
Content-type: application/xml

<template>
  <name>template1_001</name>
  <vm id="00000000-0000-0000-0000-000000000000"/>
  <version>
    <base_template id="00000000-0000-0000-0000-000000000000"/>
    <version_name>"template1_001"</version_name>
  </version>
</template>

17.3.3. 更新模板

在创建模板后,可以更新 名称描述typecpu 拓扑OS、OS、High_availability显示无状态usbtimezone 元素。

例 17.4. 更新虚拟机模板使其包含 1 GB 内存

PUT /ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<template>
    <memory>1073741824</memory>
</template>

17.3.4. 更新模板子版本

只有 version_name 元素可以在模板子版本创建后更新。

例 17.5. 更新虚拟机模板子版本名称

PUT /ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<template>
  <version>
    <version_name>template1_002</version_name>
  </version>
</template>

17.3.5. 删除模板

删除虚拟机模板需要 DELETE 请求。

例 17.6. 删除虚拟机模板

DELETE /ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content

17.4. Actions

17.4.1. 导出模板操作

注意
导出存储域已弃用。存储数据域可以从数据中心取消附加,并导入到同一环境中或不同环境中的其他数据中心。然后,可以将虚拟机、浮动虚拟磁盘镜像和模板从导入的存储域上传到附加的数据中心。有关 导入存储域 的信息,请参阅 Red Hat Virtualization 管理指南中的 导入现有存储域部分。
templates 集合包含一个 导出 操作。
export 操作会将模板导出到 导出存储域。目标存储域通过 storage_domain 引用来指定。
如果目标域中存在相同名称的虚拟机模板,则 export 操作会报告失败的操作。将 exclusive 参数设置为 true 以更改此行为并覆盖任何现有的虚拟机模板。

例 17.7. 将模板导出到导出存储域的操作

POST /ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000/export HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
    <storage_domain id="00000000-0000-0000-0000-000000000000"/>
    <exclusive>true<exclusive/>
</action>

第 18 章 虚拟机池

18.1. 虚拟机池元素

vmpools 集合提供有关 Red Hat Virtualization 环境中的虚拟机池的信息。API 用户通过从入口点 URI 获取的 rel="vmpools" 链接访问此信息。
下表显示了虚拟机池资源表示法中包含的特定元素。
表 18.1. 虚拟机池元素
元素 类型 Description Properties
name 字符串 用户提供的、人类可读的名称。名称 在所有池资源中是唯一的。
description 字符串 用户提供的、人类可读的、对虚拟机池的描述。 
link rel="permissions" 关系 到虚拟机池 权限权限 子集合的链接。 
size 整数 池中的虚拟机数量。
cluster id= GUID 对此池中的虚拟机运行的集群资源的引用。
template id= GUID 对此池中的虚拟机所基于的模板资源的引用。
prestarted_vms 整数 虚拟机池中预先启动的虚拟机数量。 
max_user_vms 整数 一个用户可从虚拟机池中获取的最大虚拟机数量。 
重要的
如本章所述的 API 是实验性的,可能随时更改。它不包含在向后兼容声明中。

18.2. 虚拟机池的 XML 表

例 18.1. 虚拟机池的 XML 表示

<vmpool href="/ovirt-engine/api/vmpools/2d2d5e26-1b6e-11e1-8cda-001320f76e8e">
  id="2d2d5e26-1b6e-11e1-8cda-001320f76e8e"
    <actions>
    	<link href="/ovirt-engine/api/vmpools/2d2d5e26-1b6e-11e1-8cda-001320f76e8e/allocatevm"
    	  rel="allocatevm"/>
    </actions>
    <name>VMPool1</name>
    <description>Virtual Machine Pool 1</description>
    <size>2</size>
    <cluster href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
      id="99408929-82cf-4dc7-a532-9d998063fa95"
    <template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"/>
      id="00000000-0000-0000-0000-000000000000"
    <prestarted_vms>0</prestarted_vms>
    <max_user_vms>1</max_user_vms>
</vmpool>

18.3. Methods

18.3.1. 创建新虚拟机池

新池需要 名称clustertemplate 元素。使用 id 属性或 name 元素识别 集群和 模板

例 18.2. 创建虚拟机池

POST /ovirt-engine/api/vmpools HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vmpool>
    <name>VM_Pool_A</name>
    <cluster href="/ovirt-engine/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
      id="99408929-82cf-4dc7-a532-9d998063fa95"
    <template href="/ovirt-engine/api/templates/00000000-0000-0000-0000-000000000000"/>
      id="00000000-0000-0000-0000-000000000000"
</vmpool>

18.3.2. 更新虚拟机池

在创建虚拟机后,可以更新 名称描述sizeprestarted_vmsmax_user_vms

例 18.3. 更新虚拟机池

PUT /ovirt-engine/api/vmpools/2d2d5e26-1b6e-11e1-8cda-001320f76e8e HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vmpool>
    <name>VM_Pool_B</name>
    <description>Virtual Machine Pool B</description>
    <size>3</size>
    <prestarted_vms>1</size>
    <max_user_vms>2</size>
</vmpool>

18.3.3. 删除虚拟机池

删除虚拟机池需要 DELETE 请求。

例 18.4. 删除虚拟机

DELETE /ovirt-engine/api/vmpools/2d2d5e26-1b6e-11e1-8cda-001320f76e8e HTTP/1.1

HTTP/1.1 204 No Content

18.4. Actions

18.4.1. 分配虚拟机操作

分配虚拟机操作在虚拟机池中分配虚拟机。

例 18.5. 从虚拟机池分配虚拟机的操作

POST /ovirt-engine/api/vmpools/2d2d5e26-1b6e-11e1-8cda-001320f76e8e/allocatevm HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action/>

第 19 章 Domains

19.1. 域元素

API 提供了使用 集合从组织的目录服务访问用户和组信息的功能。使用 rel="domains" 链接引用域信息。
表 19.1. 域元素
元素 类型 描述
name 字符串 域名。
link rel="users" 关系 与这个域关联的用户的子集合的链接。
link rel="groups" 关系 到与此域关联的组的子集合的链接。
用户和组 子集合的链接也接受搜索查询。
注意
domains 集合及其子集合是只读的。

19.2. XML 代表一个域资源

例 19.1. 域资源的 XML 表示

<domain id="77696e32-6b38-7268-6576-2e656e676c61"
  href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61">
    <name>domain.example.com</name>
    <link rel="users"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/users"/>
    <link rel="groups"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/groups"/>
    <link rel="users/search"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/
      users?search={query}"/>
    <link rel="groups/search"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/
      groups?search={query}"/>
</domain>

19.3. sub-Collections

19.3.1. 域用户 Sub-Collection

users 子集合包含目录服务中的所有用户。这些信息用于在 Red Hat Virtualization 环境中添加新用户。
表 19.2. 域用户元素
元素 类型 描述
name 字符串 用户名称。
last_name 字符串 用户的姓氏。
user_name 字符串 来自目录服务的用户名。
域 ID GUID 包含目录服务域。
groups complex 此用户的目录服务组群列表。

例 19.2. 用户子集合中的用户的 XML 表示

<user id="225f15cd-e891-434d-8262-a66808fcb9b1"
  href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/users/
  d3b4e7be-5f57-4dac-b937-21e1771a501f">
    <name>RHEV-M Admin</name>
    <user_name>rhevmadmin@domain.example.com</user_name>
    <domain id="77696e32-6b38-7268-6576-2e656e676c61"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61"/>
    <groups>
        <group>
            <name>domain.example.com/Users/Enterprise Admins</name>
        </group>
        <group>
            <name>domain.example.com/Users/Domain Admins</name>
        </group>
        ...
    </groups>
</user>

19.3.2. 域组 Sub-Collection

groups 子集合包含目录服务中的所有组。域 组资源 包含一组元素。
表 19.3. 域组元素
元素 类型 描述
name 字符串 组名称。
域 ID GUID 包含目录服务域。

例 19.3. 组子集合中的组的 XML 表示

<group id="85bf8d97-273c-4a5c-b801-b17d58330dab"
  href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61/groups/
  85bf8d97-273c-4a5c-b801-b17d58330dab">
    <name>example.com/Users/Enterprise Admins</name>
    <domain id="77696e32-6b38-7268-6576-2e656e676c61"
      href="/ovirt-engine/api/domains/77696e32-6b38-7268-6576-2e656e676c61"/>
</group>

第 20 章 组

20.1. 导入的组元素

groups 集合包含从目录服务导入的组。group 资源包含一组元素。
表 20.1. 导入的组元素
元素 类型 Description
link rel="tags" 关系 到附加到此组的标签的标签的 tags 子集合的链接。
link rel="permissions" 关系 附加到该 组的权限 子集合的链接。
link rel="roles" 关系 附加到此组的角色的 roles 子集合的链接。

20.2. 一个组群资源的 XML 代表

例 20.1. 组资源的 XML 表示

<group id="85bf8d97-273c-4a5c-b801-b17d58330dab"
  href="/ovirt-engine/api/groups/85bf8d97-273c-4a5c-b801-b17d58330dab">
    <name>Everyone</name>
    <link rel="tags"
      href="/ovirt-engine/api/groups/85bf8d97-273c-4a5c-b801-b17d58330dab/tags"/>
    <link rel="permissions"
      href="/ovirt-engine/api/groups/85bf8d97-273c-4a5c-b801-b17d58330dab/permissions"/>
    <link rel="roles"
      href="/ovirt-engine/api/groups/85bf8d97-273c-4a5c-b801-b17d58330dab/roles"/>
    <domain_entry_id>
          65656530303030302D303030302D303030302D303030
    </domain_entry_id>
    <namespace>*</namespace>
</group>

20.3. 从目录服务添加组

API 使用 POST 请求到组集合,将现有目录服务组添加到 Red Hat Virtualization Manager 数据库中。

例 20.2. 从目录服务添加组

POST /ovirt-engine/api/group HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<group>
    <name>www.example.com/accounts/groups/mygroup</name>
    <domain> 
     <name>example.com</name>
    </domain> 
</group>

第 21 章 角色

21.1. 角色元素

从入口点 URI 获取的 rel="roles" 链接提供对静态系统角色集的访问权限。每个单独的 role 元素都包含以下内容:
表 21.1. 角色元素
元素 类型 Description Properties
link="permits" 关系 角色允许 子集合的链接。
可变 布尔值: true 或 false 定义更新或删除角色的能力。mutable 设置为 false 的角色是 Red Hat Virtualization 环境中构建的角色。
administrative 布尔值: true 或 false 角色仅定义为仅限管理。

21.2. 角色集合的 XML 表

例 21.1. 角色集合的 XML 表示

<roles>
    <role id="00000000-0000-0000-0000-000000000001"
      href="/ovirt-engine/api/roles/00000000-0000-0000-0000-000000000001">
        <name>SuperUser</name>
        <description>Roles management administrator</description>
        <link rel="permits"
          href="/ovirt-engine/api/roles/00000000-0000-0000-0000-000000000001/permits"/>
        <mutable>false</mutable>
        <administrative>true</administrative>
    </role>
    <role id="00000000-0000-0000-0001-000000000001"
      href="/ovirt-engine/api/roles/00000000-0000-0000-0001-000000000001">
        <name>RHEVMUser</name>
        <description>RHEVM user</description>
        <link rel="permits"
          href="/ovirt-engine/api/roles/00000000-0000-0000-0001-000000000001/permits"/>
        <mutable>false</mutable>
        <administrative>false</administrative>
    </role>
    <role id="00000000-0000-0000-0001-000000000002"
       href="/ovirt-engine/api/roles/00000000-0000-0000-0001-000000000002">
        <name>RHEVMPowerUser</name>
        <description>RHEVM power user</description>
        <link rel="permits"
          href="/ovirt-engine/api/roles/00000000-0000-0000-0001-000000000002/permits"/>
        <mutable>false</mutable>
        <administrative>false</administrative>
    </role>
</roles>

21.3. Methods

21.3.1. 创建角色

创建角色需要 名称 的值、管理 以及初始列表 允许

例 21.2. 创建角色

POST /ovirt-engine/api/roles HTTP/1.1
Accept: application/xml
Content-type: application/xml

<role>
    <name>Finance Role</name>
    <administrative>true</administrative>
    <permits>
        <permit id="1"/>
    </permits>
</role>

21.3.2. 更新角色

名称描述 和管理 元素是创建后的 updatable。

例 21.3. 更新角色

PUT /ovirt-engine/api/roles/8de42ad7-f307-408b-80e8-9d28b85adfd7 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<role>
    <name>Engineering Role</name>
    <description>Standard users in the Engineering Role</description>
    <administrative>false</administrative>
</role>

21.3.3. 删除角色

删除角色需要 DELETE 请求。

例 21.4. 删除角色

DELETE /ovirt-engine/api/roles/8de42ad7-f307-408b-80e8-9d28b85adfd7 HTTP/1.1

HTTP/1.1 204 No Content

21.4. 角色 Permits Sub-Collection

21.4.1. 角色 Permits Sub-Collection

每个角色都包含一组允许的操作,或允许,API 列表在 功能 中。
角色的 允许 列为子集合:

例 21.5. 列出角色的允许

GET /ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9/permits HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<permits>
    <permit id="1"
      href="/ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9/permits/1">
        <name>create_vm</name>
        <administrative>false</administrative>
        <role id="b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9"
          href="/ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9"/>
    </permit>
    ...
</permits>

21.4.2. 为角色分配一个 Permit

permit 分配给带有 POST 请求到 允许 子集合的角色。使用 id 属性或 name 元素来指定要分配的 允许

例 21.6. 为角色分配 permit

POST /ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9/permits HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<permit id="1"/>

HTTP/1.1 201 Created
Content-Type: application/xml

<permits>
    <permit id="1"
      href="/ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9/permits/1">
        <name>create_vm</name>
        <administrative>false</administrative>
        <role id="b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9"
          href="/ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9"/>
    </permit>
</permits>

21.4.3. 从角色中删除 Permit

从具有 DELETE 请求到 permit 资源的角色中删除 permit

例 21.7. 从角色中删除允许

DELETE /ovirt-engine/api/roles/b67dfbe2-0dbc-41e4-86d3-a2fbef02cfa9/permits/1 HTTP/1.1

HTTP/1.1 204 No Content

第 22 章 用户

22.1. 用户元素

用户在顶级集合中公开,并使用 rel="users" 链接来引用。每个用户 元素包括:
表 22.1. 用户元素
元素 类型 Description Properties
user_name 字符串 用户主体名称(UPN)。UPN 在添加新用户时用作更方便的标识符。
link rel="tags" 关系 到 user 资源的 tags 子集合的链接。 
link rel="roles" 关系 到 user 资源的 roles 子集合的链接。 
name 字符串 用户的自由文本名称。
domain 字符串 包含目录服务域。
groups complex 此用户的目录服务组群列表。

22.2. 用户资源的 XML 表示

例 22.1. 用户资源的 XML 表示

GET /ovirt-engine/api/users HTTP/1.1
Accept: application/xml

<user id="225f15cd-e891-434d-8262-a66808fcb9b1"
  href="/ovirt-engine/api/users/225f15cd-e891-434d-8262-a66808fcb9b1">
    <name>RHEV-M Admin</name>
    <actions/>
    <link rel="roles"
      href="/ovirt-engine/api/users/225f15cd-e891-434d-8262-a66808fcb9b1/roles"/>
    <link rel="tags"
      href="/ovirt-engine/api/users/225f15cd-e891-434d-8262-a66808fcb9b1/tags"/>
    <domain>domain.example.com</domain>
    <logged_in>false</logged_in>
    <user_name>rhevmadmin@domain.example.com</user_name>
    <groups>
        <group>Group Policy Creator Owners@domain.example.com/Users</group>
        <group>Domain Admins@domain.example.com/Users</group>
        <group>Enterprise Admins@domain.example.com/Users</group>
        <group>Schema Admins@domain.example.com/Users</group>
        <group>Administrators@domain.example.com/Builtin</group>
    </groups>
</user>

22.3. Methods

22.3.1. 添加用户

API 通过 向用户 集合的 POST 请求向 Red Hat Virtualization Manager 数据库添加一个现有目录服务用户。客户端提供的新用户表示中包括至少一个可分配给用户的初始 角色的 嵌入式 角色列表。例如,以下请求将两个初始 角色分配给用户 joe@domain.example.com:

例 22.2. 从目录服务添加用户并分配两个角色

POST /ovirt-engine/api/users HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<user>
    <user_name>joe@domain.example.com</user_name>
    <roles>
        <role>
            <name>RHEVMPowerUser</name>
        </role>
        <role id="00000000-0000-0000-0001-000000000003"/>
    </roles>
</user>
新用户可通过 Red Hat Virtualization Manager 用户 ID 或通过目录服务用户主体名称(UPN)标识。从目录服务域报告的用户 ID 格式可能与预期的 Red Hat Virtualization Manager 格式不同,比如在 LDIF 中 [5] ,ID 具有相反的字节顺序,采用 base-64 编码。因此,通过 UPN 引用新用户通常更为方便。
注意
在将用户添加到 Red Hat Virtualization Manager 数据库之前,该用户存在于目录服务域中。API 用户有选项,可以在创建用户 之前通过域 集合查询这个域。
角色按名称或 ID 标识。上面的例子显示了这两种方法。

22.3.2. 向用户添加角色

通过 POSTDELETE 请求将进一步角色附加或分离到单个用户的角色子集合。以下示例说明了 API 如何将 RHEVMVDIUser 角色添加到特定用户的角色分配中。
注意
user 元素的嵌入式用户角色列表仅用于初始创建。所有创建后与用户角色分配的交互都通过 角色 子集合。

例 22.3. 向用户添加角色

POST /ovirt-engine/api/users/225f15cd-e891-434d-8262-a66808fcb9b1/roles HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<role>
    <name>RHEVMVDIUser</name>
</role>


[5] RFC 2849 中描述了 LDAP 数据交换格式。

第 23 章 MAC 地址池

23.1. MAC 地址池元素

macpools 集合提供有关 Red Hat Virtualization 环境中 MAC 地址池的信息。API 用户通过从入口点 URI 获取的 rel="macpools" 链接访问此信息。下表显示了 MAC 地址池资源表示法中包含的特定元素。
表 23.1. MAC 地址池元素
元素 类型 Description Properties
name 字符串 MAC 地址池的纯文本可读名称。
description 字符串 MAC 地址池的纯文本、人类可读的描述。
allow_duplicates 布尔值: true 或 false 定义池中是否允许重复的 MAC 地址。如果没有指定,则 allow_duplicates 默认为 false。
default_pool 布尔值: true 或 false 定义是否是默认池。如果没有指定,default_pool 默认为 false。
范围 complex 定义池的 MAC 地址范围。可以在 ranges 元素中定义多个 范围

23.2. MAC 地址池集合的 XML 代表

例 23.1. MAC 地址池集合的 XML 表示

<mac_pools>
    <mac_pool href="/ovirt-engine/api/macpools/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
        <name>Default</name>
        <description>Default MAC pool</description>
        <allow_duplicates>false</allow_duplicates>
        <default_pool>true</default_pool>
        <ranges>
            <range>
                <from>00:1A:4A:16:01:51</from>
                <to>00:1A:4A:16:01:e6</to>
            </range>
        </ranges>
    </mac_pool>
</mac_pools>

23.3. Methods

23.3.1. 创建 MAC 地址池

创建 MAC 地址池需要 nameranges 的值。

例 23.2. 创建 MAC 地址池

POST /ovirt-engine/api/macpools HTTP/1.1
Accept: application/xml
Content-type: application/xml

<mac_pool>
    <name>MACPool</name>
    <description>A MAC address pool</description>
    <allow_duplicates>true</allow_duplicates>
    <default_pool>false</default_pool>
    <ranges>
        <range>
            <from>00:1A:4A:16:01:51</from>
            <to>00:1A:4A:16:01:e6</to>
        </range>
    </ranges>
</mac_pool>

23.3.2. 更新 MAC 地址池

名称描述allow_duplicatesranges 元素在创建后是 updatable。

例 23.3. 更新 MAC 地址池

PUT /ovirt-engine/api/macpools/ab39bbc1-1d64-4737-9b20-ce081f99b0e1 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<mac_pool>
    <name>UpdatedMACPool</name>
    <description>An updated MAC address pool</description>
    <allow_duplicates>false</allow_duplicates>
    <ranges>
        <range>
            <from>00:1A:4A:16:01:51</from>
            <to>00:1A:4A:16:01:e6</to>
        </range>
        <range>
            <from>02:1A:4A:01:00:00</from>
            <to>02:1A:4A:FF:FF:FF</to>
        </range>
    </ranges>
</mac_pool>

23.3.3. 删除 MAC 地址池

删除 MAC 地址池需要 DELETE 请求。

例 23.4. 删除 MAC 地址池

DELETE /ovirt-engine/api/macpools/ab39bbc1-1d64-4737-9b20-ce081f99b0e1 HTTP/1.1

HTTP/1.1 204 No Content

第 24 章 Tags

24.1. 标签元素

tags 集合提供有关 Red Hat Virtualization 环境中标签的信息。API 用户通过从入口点 URI 获取的 rel="tags" 链接访问此信息。
下表显示了标签资源表示法中包含的特定元素。
表 24.1. 标签元素
元素 类型 Description Properties
主机 GUID 对附加标签的主机的引用。
user GUID 对附加标签的用户的引用。
vm GUID 对附加标签的虚拟机的引用。
parent complex 对附加标签的虚拟机的引用。 

24.2. XML 代表标签资源

例 24.1. 标签资源的 XML 表示

<tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"
  href="/ovirt-engine/api/tags/f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e">
    <name>Finance</name>
    <description>Resources for the Finance department</description>
    <parent>
        <tag id="-1" href="/ovirt-engine/api/tags/-1"/>
    </parent>
</tag>

24.3. 关联标签

24.3.1. 将标签与主机、用户或虚拟机关联

通过 主机 中的 链接 rel="tags" 引用的集合,用户或 vms 代表与实体关联的一组标签。
这些标签表示法也包含 主机 ID、用户 IDvm id 引用问题中的实体。
通过 POST标签引用(通过其 idname)与集合来实现,即可实现标签与实体。

例 24.2. 将标签与虚拟机关联

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<tag>
    <name>Finance</name>
</tag>

HTTP/1.1 201 Created
Content-Type: application/xml

<tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"
  href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags/
  f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e">
    <name>Finance</name>
    <description>Resources for the Finance department</description>
    <vm id="5114bb3e-a4e6-44b2-b783-b3eea7d84720"
      href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720"/>
</tag>

24.3.2. 删除标签

通过到集合中适当元素的 DELETE 请求实现删除关联。

例 24.3. 从虚拟机中删除标签

DELETE /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags/f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e HTTP/1.1

HTTP/1.1 204 No Content

24.3.3. 查询一组标记的资源

要查询与给定标签关联的实体集合,应使用相应 集合的集合/搜索 URI 模板来搜索与 tag=MyTag 匹配的实体。

例 24.4. 查询已标记资源的集合

GET /ovirt-engine/api/vms?search=tag%3DFinance HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<vms>
    <vm id="5114bb3e-a4e6-44b2-b783-b3eea7d84720"
      href="/ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720">
        ...
    </vm>
    ...
</vms>

24.4. 父标签

24.4.1. 父标签

API 用户为标签分配一个 元素,以创建指向父标签的分层链接。标签以扁平集合的形式显示,该集合来自 root 标签,带有标签表示,包含链接元素到父标签
备注
如果未指定父标签,则 root 标签是一个特殊的伪标签,假定为默认的父标签。root 标签不能被删除或分配父标签。
此标签层次结构采用以下方法表示:

例 24.5. Tag Hierarchy

<tags>
    <tag id="-1" href="/ovirt-engine/api/tags/-1">
        <name>root</name>
        <description>root</description>
        <parent>
            <tag id="-1" href="/ovirt-engine/api/tags/-1"/>
        </parent>
    </tag>
    <tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"
      href="/ovirt-engine/api/tags/f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e">
        <name>Finance</name>
        <description>Resources for the Finance department</description>
        <parent>
            <tag id="-1" href="/ovirt-engine/api/tags/-1"/>
        </parent>
    </tag>
    <tag id="ac18dabf-23e5-12be-a383-a38b165ca7bd"
      href="/ovirt-engine/api/tags/ac18dabf-23e5-12be-a383-a38b165ca7bd">
        <name>Billing</name>
        <description>Billing Resources</description>
        <parent>
            <tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"
              href="/ovirt-engine/api/tags/f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"/>
        </parent>
    </tag>
</tags>
在这个 XML 表示法中,标签遵循以下层次结构:
root              (id: -1)
  - Finance       (id: f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e)
      - Billing   (id: ac18dabf-23e5-12be-a383-a38b165ca7bd)

24.4.2. 设置父标签

POST使用 元素的新标签创建与父标签关联,使用 id 属性或 name 元素来引用父标签

例 24.6. 设置与 id 属性的父标签的关联

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags HTTP/1.1
Accept: application/xml
Content-Type: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<tag>
    <name>Billing</name>
    <description>Billing Resources</description>
    <parent>
        <tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"/>
    </parent>
</tag>

例 24.7. 设置与父标签与 name 元素的关联

POST /ovirt-engine/api/vms/5114bb3e-a4e6-44b2-b783-b3eea7d84720/tags HTTP/1.1
Accept: application/xml
Content-Type: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<tag>
    <name>Billing</name>
    <description>Billing Resources</description>
    <parent>
        <tag>
            <name>Finance</name>
        </tag>
    </parent>
</tag>

24.4.3. 更改父标签

标签使用 PUT 请求更改父项:

例 24.8. 更改父标签

PUT /ovirt-engine/api/tags/ac18dabf-23e5-12be-a383-a38b165ca7bd HTTP/1.1
Accept: application/xml
Content-Type: application/xml

<tag>
    <parent>
        <tag id="f436ebfc-67f2-41bd-8ec6-902b6f7dcb5e"/>
    </parent>
</tag>

第 25 章 事件

25.1. 事件元素

从入口点 URI 获取的 rel="events" 链接可以访问 事件 集合,并列出 Red Hat Virtualization Manager 中的系统事件。
表 25.1. 事件元素
元素 类型 描述
description 字符串 系统事件的描述
code 整数 整数事件代码。
严重性 正常warningerroralert之一 事件的严重性等级。
time xsd:dateTime 格式: YYYY-MM-DDTh:mm:ss 事件发生的时间戳。
correlation_id 字符串 在 Red Hat Virtualization 层间分布的操作识别字符串。
user id= GUID 触发该事件的用户的识别代码。
origin 字符串 事件源。oVirt 报告标准事件.
custom_id 整数 自定义事件标识号。标准事件的 custom_id-1
flood_rate 整数 在事件列表中,同一事件无法重新调用的时间(以秒为单位)。默认值为 30
external_status complex 主机的外部健康状态。包含 state 元素,可以是 ok 之一、infoerrorwarningfailure

25.2. 事件集合的 XML 表

例 25.1. 事件集合的 XML 表示

<events>
    <event id="537" href="/ovirt-engine/api/events/537">
        <description>User vdcadmin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-01-12T10:48:27.827+02:00</time>
        <user id="9b9002d1-ec33-4083-8a7b-31f6b8931648"
          href="/ovirt-engine/api/users/9b9002d1-ec33-4083-8a7b-31f6b8931648"/>
    </event>
    ...
</events>

25.3. XML 代表虚拟机创建事件

除了 用户 外,事件 表示法还包含一组与事件相关的资源的 XML 元素关系。

例 25.2. 虚拟机创建事件的 XML 表示

<event id="635" href="/ovirt-engine/api/events/635">
    <description>VM bar was created by rhevadmin.</description>
    <code>34</code>
    <severity>normal</severity>
    <time>2011-07-11T16:32:03.172+02:00</time>
    <user id="4621b611-43eb-4d2b-ae5f-1180850268c4"
      href="/ovirt-engine/api/users/4621b611-43eb-4d2b-ae5f-1180850268c4"/>
    <vm id="9b22d423-e16b-4dd8-9c06-c8e9358fbc66"
      href="/ovirt-engine/api/vms/9b22d423-e16b-4dd8-9c06-c8e9358fbc66"/>
    <storage_domain id="a8a0e93d-c570-45ab-9cd6-3c68ab31221f"
      href="/ovirt-engine/api/storagedomains/a8a0e93d-c570-45ab-9cd6-3c68ab31221f"/>
</event>
这个示例表示提供与虚拟机资源和存储域资源相关的 XML 元素。

25.4. Methods

25.4.1. 搜索事件

events 集合提供与其他资源集合类似的搜索查询。搜索事件集合时的附加功能是能够从特定事件搜索。这会查询指定事件之后的所有事件。
从事件查询需要额外添加 from 参数,然后再搜索查询。这一 from 参数引用事件 ID 代码。

例 25.3. 从事件搜索

GET /ovirt-engine/api/events;from=1012?search=type%3D30 HTTP/1.1
Accept: application/xml
这将显示所有事件,其 type 设为 30,因为 id="1012"
HTTP/1.1 200 OK
Content-Type: application/xml
<events>
    <event id="1018" href="/ovirt-engine/api/events/1018">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:03:22.485+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    <event id="1016" href="/ovirt-engine/api/events/1016">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:03:07.236+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    <event id="1014" href="/ovirt-engine/api/events/1014">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:02:16.009+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/ovirt-engine/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
</events>

例 25.4. 使用特定事件严重性搜索

GET /ovirt-engine/api/events?search=severity>normal HTTP/1.1
Accept: application/xml
这将显示严重性高于 normal 的所有事件。严重级别包括 常规warningerroralert
HTTP/1.1 200 OK
Content-Type: application/xml
<events>
    <event id="2823" href="/ovirt-engine/api/events/2823">
        <description>Host Host-05 has time-drift of 36002 seconds while maximum configured value is 300 seconds.</description>
        <code>604</code>
        <severity>warning</severity>
        <time>2015-07-11T14:03:22.485+10:00</time>
        <host href= "/ovirt-engine/api/hosts/44e52bb2-27d6-4d35-8038-0c4b4db89789" id="44e52bb2-27d6-4d35-8038-0c4b4db89789"/>
        <cluster href= "/ovirt-engine/api/clusters/00000001-0001-0001-0001-00000000021b" id="00000001-0001-0001-0001-00000000021b"/>
        <origin>oVirt</origin>
        <custom_id>-1</custom_id>
        <flood_rate>30</flood_rate>
    </event>
...
</events>

25.4.2. 分页事件

虚拟化环境会在一段时间内生成大量事件。但是,API 仅显示一个搜索查询的默认事件数。要显示多于默认值,API 在搜索查询中用 page 命令分隔到 页面
以下搜索查询告知 API 使用 page 值与 sortby 子句的组合来分页结果:
按时间排序页 1
sortby 子句定义用于订购结果的基本元素,以及结果是升序还是降序。对于 事件 的搜索查询,请将基础元素设置为 time,以及升序(asc)的顺序,以便 API 显示从创建虚拟化环境中的所有事件。
页面 条件定义页面号。一个页面等于要列出的默认事件数。分页从第 1 页 开始。要查看更多页面,请增加 页面 值:
按时间排序第 2 页
按时间排序第 3 页
按时间排序 4 页

例 25.5. 分页事件

这个示例分页 事件 资源。URL 编码的请求为:
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%201 HTTP/1.1
Accept: application/xml
增加 page 值以查看结果的下一页。
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202 HTTP/1.1
Accept: application/xml
使用参数中 的其他参数 设置起始 ID
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202&from=30 HTTP/1.1
Accept: application/xml

25.4.3. 添加事件

API 可以通过 POST 请求将自定义事件添加到 事件 集合中。新事件需要 描述严重性origincustom_id 元素。自定义事件还可以包括 flood_rate用户 ID 以及与事件相关的任何资源的 id 代码。hoststorage_domain 元素可以包含 external_status 元素来设置外部健康状态。

例 25.6. 将自定义事件添加到事件列表中

POST /ovirt-engine/api/events HTTP/1.1
Accept: application/xml
Content-type: application/xml

<event>
  <description>The heat of the host is above 30 Oc</description>
  <severity>warning</severity>
  <origin>HP Openview</origin>
  <custom_id>1</custom_id>
  <flood_rate>30</flood_rate>
  <host id="f59a29cd-587d-48a3-b72a-db537eb21957" >
    <external_status>
       <state>warning</state>
    </external_status>
  </host>
</event>

25.4.4. 删除事件

从事件列表中删除事件需要 DELETE 请求。

例 25.7. 删除事件

DELETE /ovirt-engine/api/events/1705 HTTP/1.1

HTTP/1.1 204 No Content

附录 A. 使用 cURL 的 API 使用情况

A.1. 使用 cURL 的 API 使用情况

本附录提供了调整 REST 请求以用于 cURL 的说明。curl 是一个命令行工具,用于跨各种协议传输数据,包括 HTTP,并支持多个平台,如 Linux、Windows、Mac 和 Solaris。大多数 Linux 发行版包括 cURL 作为软件包。

A.2. 安装 cURL

Red Hat Enterprise Linux 用户使用以下终端命令安装 cURL
yum install curl
有关其他平台,请参阅 cURL 网站(http://curl.haxx.se/)的安装说明。

A.3. 使用 cURL

curl 使用命令行界面将请求发送到 HTTP 服务器。集成请求需要以下命令语法:
Usage: curl [options] uri
uri 指的是发送请求的目标 HTTP 地址。这是 API 入口点路径(/ovirt-engine/api)中的 Red Hat Virtualization Manager 主机上的位置。

curl 选项

-X COMMAND, --request COMMAND
要使用的请求命令。在 REST API 的上下文中,使用 GETPOSTPUTDELETE
示例: -X GET
-H , --header LINE
与请求包含的 HTTP 标头。如果需要多个标头,请使用多个标头选项。
示例: -H "Accept: application/xml" -H "Content-Type: application/xml"
-u USERNAME:PASSWORD, --user USERNAME:PASSWORD
Red Hat Virtualization 用户的用户名和密码。此属性充当 Authorization: 标头的便捷替换。
示例: -u admin@internal:p@55w0rd!
--cacert CERTIFICATE
用于 SSL 与 REST API 通信的证书文件的位置。证书文件保存在客户端计算机上。使用 -k 属性来绕过 SSL。
示例 :--cacert ~/Certificates/rhevm.cer
-d BODY, --data BODY
发送请求的正文。与 POSTPUTDELETE 请求一起使用。如果请求中存在正文,请确保指定 Content-Type: application/xml 标头。
示例: -d "<cdrom><file id='rhel-server-6.0-x86_64-dvd.iso'/></cdrom>"

A.4. 例子

A.4.1. 使用 cURL 的 GET 请求

例 A.1. GET 请求

以下 GET 请求列出了 vms 集合中的虚拟机。请注意,GET 请求不包含正文。
GET /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
将方法(GET)、标头(Accept: application/xml)和 URI (https://[RHEVM-Host]:443/ovirt-engine/api/vms)调整为以下 cURL 命令:
$ curl -X GET -H "Accept: application/xml" -u [USER:PASS] --cacert [CERT] https://[RHEVM-Host]:443/ovirt-engine/api/vms
此时会显示 vms 集合的 XML 表示。

A.4.2. 使用 cURL POST 请求

例 A.2. POST 请求

以下 POST 请求会在 vms 集合中创建一个虚拟机。请注意,POST 请求需要一个正文。
POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
  <name>vm1</name>
  <cluster>
    <name>default</name>
  </cluster>
  <template>
    <name>Blank</name>
  </template>
  <memory>536870912</memory> 
  <os>
    <boot dev="hd"/>
  </os>
</vm>
调整方法(POST)、标头(Accept: application/xml and Content-type: application/xml), URI (https://[RHEVM-Host]:443/ovirt-engine/api/vms),以及请求正文到以下 cURL 命令中:
$ curl -X POST -H "Accept: application/xml" -H "Content-type: application/xml" -u [USER:PASS] --cacert [CERT] -d "<vm><name>vm1</name><cluster><name>default</name></cluster><template><name>Blank</name></template><memory>536870912</memory><os><boot dev='hd'/></os></vm>" https://[RHEVM-Host]:443/ovirt-engine/api/vms
REST API 创建新虚拟机,并显示资源的 XML 表示。

A.4.3. PUT 请求及 cURL

例 A.3. PUT 请求

以下 PUT 请求更新了虚拟机资源的内存。请注意,PUT 请求需要一个正文。
PUT /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<vm>
    <memory>1073741824</memory>
</vm>
调整方法(PUT)、标头(Accept: application/xml and Content-type: application/xml), URI (https://[RHEVM-Host]:443/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399),请求正文到以下 cURL 命令中:
$ curl -X PUT -H "Accept: application/xml" -H "Content-type: application/xml" -u [USER:PASS] --cacert [CERT] -d "<vm><memory>1073741824</memory></vm>" https://[RHEVM-Host]:443//ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c039
REST API 使用新的内存配置来更新虚拟机。

A.4.4. 使用 cURL DELETE 请求

例 A.4. DELETE 请求

以下 DELETE 请求会删除虚拟机资源。
DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
将方法(DELETE)和 URI (https://[RHEVM-Host]:443/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399)调整为以下 cURL 命令:
$ curl -X DELETE -u [USER:PASS] --cacert [CERT] https://[RHEVM-Host]:443//ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c039
REST API 删除虚拟机。注意 Accept: application/xml 请求标头是可选的,因为 DELETE 请求为空的结果。

A.4.5. DELETE 请求包含带有 cURL 的 Body

例 A.5. 使用正文的 DELETE 请求

以下 DELETE 请求强制删除虚拟机资源,如可选正文所示。
DELETE /ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1
Accept: application/xml
Content-type: application/xml

<action>
  <force>true</force>
</action>
调整方法(DELETE)、标头(Accept: application/xml and Content-type: application/xml), URI (https://[RHEVM-Host]:443/ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c0399),请求正文到以下 cURL 命令中:
$ curl -X DELETE -H "Accept: application/xml" -H "Content-type: application/xml" -u [USER:PASS] --cacert [CERT] -d "<action><force>true</force></action>" https://[RHEVM-Host]:443//ovirt-engine/api/vms/082c794b-771f-452f-83c9-b2b5a19c039
REST API 强制删除虚拟机。

附录 B. 枚举的值转换

B.1. 枚举的值转换

API 使用 Red Hat Virtualization Query 语言来执行搜索查询。有关查询语言的更多信息,请参阅 Red Hat Virtualization 管理指南中的 执行搜索的完整规格。
请注意,API 中的一些枚举值在使用 Query 语言时需要不同的搜索查询。下表提供了这些键枚举的值的转换。
表 B.1. 枚举的值转换
资源类型
API 可枚举的类型
API 可枚举的值
查询语言属性
查询语言值
数据中心
data_center_states not_operational status notoperational
主机
host_states non_responsive status nonresponsive
install_failed installfailed
preparing_for_maintenance preparingformaintenance
non_operational nonoperational
pending_approval pendingapproval
虚拟机
vm_states powering_up status poweringup
powering_down poweringdown
迁移 migratingfrom
迁移 migratingto
not_responding Notresponding
wait_for_launch waitforlaunch
reboot_in_progress rebootinprogress
saving_state savingstate
restoring_state restoringstate
image_locked imagelocked

附录 C. 事件代码

C.1. 事件代码

此表列出所有事件代码。
表 C.1. 事件代码
代码 名称 重要性 消息
0 未分配 info
1 VDC_START info 启动 oVirt Engine.
2 VDC_STOP info 停止 oVirt Engine.
12 VDS_FAILURE Error 主机 ${VdsName} 未响应。
13 VDS_DETECTED info 主机 ${VdsName} 的状态已设置为 ${HostStatus}。
14 VDS_RECOVER info 主机 ${VdsName} 正在重新启动。
15 VDS_MAINTENANCE Normal 主机 ${VdsName} 已切换到维护模式。
16 VDS_ACTIVATE info 由 ${UserName} 启动的主机 ${VdsName} 激活。
17 VDS_MAINTENANCE_FAILED Error 将 Host ${VdsName} 切换到 Maintenance 模式失败。
18 VDS_ACTIVATE_FAILED Error 激活 Host ${VdsName} 失败。(User: ${UserName})。
19 VDS_RECOVER_FAILED Error 主机 ${VdsName} 无法恢复。
20 USER_VDS_START info 主机 ${VdsName} 由 ${UserName} 启动。
21 USER_VDS_STOP info 主机 ${VdsName} 由 ${UserName} 停止。
22 IRS_FAILURE Error 访问 Host ${VdsName} 上的存储失败。
23 VDS_LOW_DISK_SPACE 警告 警告,低磁盘空间。主机 ${VdsName} 小于 ${DiskSpace} MB 的可用空间:${Disks}。
24 VDS_LOW_DISK_SPACE_ERROR Error Critical,低磁盘空间。主机 ${VdsName} 小于 ${DiskSpace} MB 的可用空间:${Disks}。低磁盘空间可能会导致升级此主机的问题。
25 VDS_NO_SELINUX_ENFORCEMENT 警告 主机 ${VdsName} 不强制执行 SELinux。当前状态:${Mode}
26 IRS_DISK_SPACE_LOW 警告 警告,低磁盘空间。${StorageDomainName} 域具有 ${DiskSpace} GB 的可用空间。
27 VDS_STATUS_CHANGE_FAILED_DUE_TO_STOP_SPM_FAILURE 警告 因为无法停止 spm,因此更改主机 ${VdsName} 的状态失败。
28 VDS_PROVISION 警告 使用 Hostgroup ${HostGroupName} 在 Host ${VdsName} 上安装 OS。
29 USER_ADD_VM_TEMPLATE_SUCCESS info 模板 ${VmTemplateName} 已创建成功。
31 USER_VDC_LOGOUT info 用户 ${UserName} 注销.
32 USER_RUN_VM info VM ${VmName} 在 Host ${VdsName} 上启动
33 USER_STOP_VM info VM ${VmName} 关闭 ${UserName}(Host: ${VdsName})${OptionalReason}。
34 USER_ADD_VM info VM ${VmName} 由 ${UserName} 创建。
35 USER_UPDATE_VM info VM ${VmName} 配置由 ${UserName} 更新。
36 USER_ADD_VM_TEMPLATE_FAILURE Error 创建模板 ${VmTemplateName} 失败。
37 USER_ADD_VM_STARTED info VM ${VmName} 创建由 ${UserName} 启动。
38 USER_CHANGE_DISK_VM info CD ${DiskName} 被 ${UserName} 插入到 VM ${VmName} 中。
39 USER_PAUSE_VM info VM ${VmName} 由 ${UserName} 暂停(Host: ${VdsName})。
40 USER_RESUME_VM info VM ${VmName} 被 ${UserName} 恢复(Host: ${VdsName})。
41 USER_VDS_RESTART info 主机 ${VdsName} 被 ${UserName} 重新启动。
42 USER_ADD_VDS info 主机 ${VdsName} 由 ${UserName} 添加。
43 USER_UPDATE_VDS info 主机 ${VdsName} 配置由 ${UserName} 更新。
44 USER_REMOVE_VDS info 主机 ${VdsName} 已被 ${UserName} 删除。
45 USER_CREATE_SNAPSHOT info 快照 '${SnapshotName}' 为 VM '${VmName}' 创建由 ${UserName} 启动。
46 USER_TRY_BACK_TO_SNAPSHOT info 用于 VM ${VmName} 的 snapshot-Preview ${SnapshotName} 由 ${UserName} 启动。
47 USER_RESTORE_FROM_SNAPSHOT info VM ${VmName} 从 Snapshot by ${UserName} 恢复.
48 USER_ADD_VM_TEMPLATE info 从 VM ${VmName} 创建模板 ${VmTemplateName} 由 ${UserName} 启动。
49 USER_UPDATE_VM_TEMPLATE info 模板 ${VmTemplateName} 配置由 ${UserName} 更新。
50 USER_REMOVE_VM_TEMPLATE info 删除模板 ${VmTemplateName} 由 ${UserName} 启动。
51 USER_ADD_VM_TEMPLATE_FINISHED_SUCCESS info 从 VM ${VmName} 创建模板 ${VmTemplateName} 已完成。
52 USER_ADD_VM_TEMPLATE_FINISHED_FAILURE Error 无法从 VM ${VmName} 完成模板 ${VmTemplateName} 创建失败。
53 USER_ADD_VM_FINISHED_SUCCESS info 虚拟机 ${VmName} 创建已完成。
54 USER_FAILED_RUN_VM Error 运行 VM ${VmName} 失败(用户:${UserName})。
55 USER_FAILED_PAUSE_VM Error 暂停 VM ${VmName}(主机:${VdsName}、User: ${UserName})失败。
56 USER_FAILED_STOP_VM Error 未能关闭 VM ${VmName}(Host: ${VdsName}, User: ${UserName})。
57 USER_FAILED_ADD_VM Error 创建 VM ${VmName} 失败(用户:${UserName})。
58 USER_FAILED_UPDATE_VM Error 更新 VM ${VmName} 失败(用户:${UserName})。
59 USER_FAILED_REMOVE_VM Error
60 USER_ADD_VM_FINISHED_FAILURE Error 未能完成 VM ${VmName} 创建.
61 VM_DOWN info VM ${VmName} 为 down. ${ExitMessage}
62 VM_MIGRATION_START info 迁移已启动(VM: ${VmName}, Source: ${VdsName}, Destination: ${DestinationVdsName}, User: ${UserName}). ${OptionalReason}
63 VM_MIGRATION_DONE info 迁移已完成(VM: ${VmName}, Source: ${VdsName}, Destination: ${DestinationVdsName}, Duration: ${Duration}, Total: ${TotalDuration}, Actual downtime: ${ActualDowntime})
64 VM_MIGRATION_ABORT Error 迁移失败:${MigrationError}(VM: ${VmName}, Source: ${VdsName})。
65 VM_MIGRATION_FAILED Error 迁移 failed${DueToMigrationError}(VM: ${VmName}, Source: ${VdsName})。
66 VM_FAILURE Error VM ${VmName} 无法在 Host ${VdsName} 上找到。
67 VM_MIGRATION_START_SYSTEM_INITIATED info 系统启动迁移(VM: ${VmName}, Source: ${VdsName}, Destination: ${DestinationVdsName}, Reason: ${OptionalReason})。
68 USER_CREATE_SNAPSHOT_FINISHED_SUCCESS info Snapshot '${SnapshotName}' creation for VM '${VmName}' has been completed.
69 USER_CREATE_SNAPSHOT_FINISHED_FAILURE Error 为 VM '${VmName}' 完成快照 '${SnapshotName}' 创建失败。
70 USER_RUN_VM_AS_STATELESS_FINISHED_FAILURE Error 无法启动 VM ${VmName} 失败。
71 USER_TRY_BACK_TO_SNAPSHOT_FINISH_SUCCESS info 用于 VM ${VmName} 的 snapshot-Preview ${SnapshotName} 已完成。
73 USER_INITIATED_SHUTDOWN_VM info VM ${VmName} 上由 ${UserName} 启动的虚拟机关机(Host: ${VdsName})${OptionalReason}.
74 USER_FAILED_SHUTDOWN_VM Error 在 VM ${VmName} 上启动关闭失败(主机:${VdsName}、User: ${UserName})。
76 USER_STOPPED_VM_INSTEAD_OF_SHUTDOWN info VM ${VmName} 被 ${UserName}(Host: ${VdsName})${OptionalReason} 关闭。
77 USER_FAILED_STOPPING_VM_INSTEAD_OF_SHUTDOWN Error 未能关闭 VM ${VmName}(Host: ${VdsName}, User: ${UserName})。
78 USER_ADD_DISK_TO_VM info 在 VM ${VmName} 上由 ${UserName} 启动 ${DiskAlias} 的 add-Disk 操作。
79 USER_FAILED_ADD_DISK_TO_VM Error VM ${VmName}(User: ${UserName})上的 add-Disk 操作失败。
80 USER_REMOVE_DISK_FROM_VM info 磁盘已从 VM ${VmName} 中删除,地址为 ${UserName}。
81 USER_FAILED_REMOVE_DISK_FROM_VM Error 无法从 VM ${VmName}(User: ${UserName})中删除 Disk 失败。
88 USER_UPDATE_VM_DISK info VM ${VmName} ${DiskAlias} 磁盘由 ${UserName} 更新。
89 USER_FAILED_UPDATE_VM_DISK Error 更新 VM ${VmName} 磁盘 ${DiskAlias}(User: ${UserName})失败。
90 VDS_FAILED_TO_GET_HOST_HARDWARE_INFO 警告 无法获取主机 ${VdsName} 的硬件信息
97 USER_ADD_DISK_TO_VM_FINISHED_SUCCESS info 磁盘 ${DiskAlias} 成功添加到 VM ${VmName} 中。
98 USER_ADD_DISK_TO_VM_FINISHED_FAILURE Error 在 VM ${VmName} 中,add-Disk 操作无法完成。
99 USER_TRY_BACK_TO_SNAPSHOT_FINISH_FAILURE Error 未能为 VM ${VmName} 完成 Snapshot-Preview ${SnapshotName}。
100 USER_RESTORE_FROM_SNAPSHOT_FINISH_SUCCESS info 从快照中恢复虚拟机 ${VmName} 已完成。
101 USER_RESTORE_FROM_SNAPSHOT_FINISH_FAILURE Error 无法从 VM ${VmName} 快照中恢复失败。
102 USER_FAILED_CHANGE_DISK_VM Error 在 VM ${VmName} 中更改磁盘失败(主机:${VdsName}、User: ${UserName})。
103 USER_FAILED_RESUME_VM Error 恢复 VM ${VmName}(Host: ${VdsName}, User: ${UserName})失败。
104 USER_FAILED_ADD_VDS Error 添加 Host ${VdsName} 失败(用户:${UserName})。
105 USER_FAILED_UPDATE_VDS Error 更新 Host ${VdsName} 失败(用户:${UserName})。
106 USER_FAILED_REMOVE_VDS Error 删除 Host ${VdsName} 失败(用户:${UserName})。
107 USER_FAILED_VDS_RESTART Error 重启 Host ${VdsName} 失败,(User: ${UserName})。
108 USER_FAILED_ADD_VM_TEMPLATE Error 无法从 VM ${VmName}(User: ${UserName})启动 Template ${VmTemplateName} 创建失败。
109 USER_FAILED_UPDATE_VM_TEMPLATE Error 更新模板 ${VmTemplateName} 失败(User: ${UserName})。
110 USER_FAILED_REMOVE_VM_TEMPLATE Error 启动删除模板 ${VmTemplateName}(User: ${UserName})失败。
111 USER_STOP_SUSPENDED_VM info 暂停的虚拟机 ${VmName} 的保存状态为 ${UserName}${OptionalReason}。
112 USER_STOP_SUSPENDED_VM_FAILED Error 关闭暂停的虚拟机 ${VmName} 失败(用户:${UserName})。
113 USER_REMOVE_VM_FINISHED info VM ${VmName} 已被成功删除。
114 USER_VDC_LOGIN_FAILED Error 用户 ${UserName} 无法登录。
115 USER_FAILED_TRY_BACK_TO_SNAPSHOT Error VM ${VmName}(User: ${UserName})未能预览快照 ${SnapshotName}。
116 USER_FAILED_RESTORE_FROM_SNAPSHOT Error 从快照恢复 VM ${VmName} 失败(User: ${UserName})。
117 USER_FAILED_CREATE_SNAPSHOT Error 为虚拟机 ${VmName}(User: ${UserName})创建 Snapshot ${SnapshotName} 失败。
118 USER_FAILED_VDS_START Error 启动 Host ${VdsName} 失败,(用户:${UserName})。
119 VM_DOWN_ERROR Error VM ${VmName} 为 down,有 error. ${ExitMessage}。
120 VM_MIGRATION_TO_SERVER_FAILED Error 迁移 failed${DueToMigrationError}(VM: ${VmName}, Source: ${VdsName}, Destination: ${DestinationVdsName})。
121 SYSTEM_VDS_RESTART info 主机 ${VdsName} 由引擎重新启动。
122 SYSTEM_FAILED_VDS_RESTART Error 引擎启动到 Host ${VdsName} 的重启失败。
123 VDS_SLOW_STORAGE_RESPONSE_TIME 警告 主机 ${VdsName} 上的存储响应时间较慢。
124 VM_IMPORT info 启动的虚拟机导入 ${ImportedVmName}(User: ${UserName})
125 VM_IMPORT_FAILED Error 导入 VM ${ImportedVmName} 失败(用户:${UserName})
126 VM_NOT_RESPONDING 警告 VM ${VmName} 没有响应。
127 VDS_RUN_IN_NO_KVM_MODE Error 在没有虚拟化硬件加速的情况下运行主机 ${VdsName}
128 VM_MIGRATION_TRYING_RERUN 警告 将 VM ${VmName} 迁移到 Host ${DestinationVdsName}${DueToMigrationError} 失败。尝试迁移到其他主机。
129 VM_CLEARED info 未使用
130 USER_SUSPEND_VM_FINISH_FAILURE_WILL_TRY_AGAIN Error 未能完全暂停 VM ${VmName},将重试。
131 USER_EXPORT_VM info VM ${VmName} 按 ${UserName} 导出至 ${ExportPath}
132 USER_EXPORT_VM_FAILED Error 将 VM ${VmName} 导出到 ${ExportPath} 失败(用户:${UserName})
133 USER_EXPORT_TEMPLATE info 模板 ${VmTemplateName} 按 ${UserName} 导出至 ${ExportPath}
134 USER_EXPORT_TEMPLATE_FAILED Error 将 Template ${VmTemplateName} 导出到 ${ExportPath} 失败(用户:${UserName})
135 TEMPLATE_IMPORT info Started Template import of ${ImportedVmTemplateName}(User: ${UserName})
136 TEMPLATE_IMPORT_FAILED Error 导入模板 ${ImportedVmTemplateName} 失败(用户:${UserName})
137 USER_FAILED_VDS_STOP Error 停止 Host ${VdsName} 失败,(用户:${UserName})。
138 VM_PAUSED_ENOSPC Error VM ${VmName} 已暂停,因为没有存储空间错误。
139 VM_PAUSED_ERROR Error VM ${VmName} 已暂停,因为存储错误未知。
140 VM_MIGRATION_FAILED_DURING_MOVE_TO_MAINTENANCE Error 迁移 failed${DueToMigrationError} while Host is in 'preparing for maintenance' state.\n Consider manual intervention\: stop/migrating Vms as Host's state not\n turn to maintenance while VMs still running on it. (VM: ${VmName}, Source: ${VdsName}, Destination: ${DestinationVdsName})。
141 VDS_VERSION_NOT_SUPPORTED_FOR_CLUSTER Error 主机 ${VdsName} 安装有 VDSM 版本(${VdsSupportedVersions}),且无法加入与 VDSM 版本 ${CompatibilityVersion} 兼容的集群 ${ClusterName}。
142 VM_SET_TO_UNKNOWN_STATUS 警告 VM ${VmName} 设置为 Unknown 状态。
143 VM_WAS_SET_DOWN_DUE_TO_HOST_REBOOT_OR_MANUAL_FENCE info 虚拟机 ${VmName} 被关闭,因为 ${VdsName} 主机重新引导或手动隔离
144 VM_IMPORT_INFO info 导入 VM ${VmName} 的字段 ${FieldName} 的值为 ${FieldValue}。字段将重置为默认值
145 VM_PAUSED_EIO Error 虚拟机 ${VmName} 已暂停,因为存储 I/O 问题。
146 VM_PAUSED_EPERM Error 由于存储权限问题,虚拟机 ${VmName} 已暂停。
147 VM_POWER_DOWN_FAILED 警告 虚拟机 ${VmName} 关闭失败。
148 VM_MEMORY_UNDER_GUARANTEED_VALUE Error 主机 ${VdsName} 上的 VM ${VmName} 已保证 ${MemGuaranteed} MB,但目前具有 ${MemActual} MB
149 USER_ADD info 用户 '${NewUserName}' 已被成功添加到系统中。
150 USER_INITIATED_RUN_VM info 启动虚拟机 ${VmName} 由 ${UserName} 启动。
151 USER_INITIATED_RUN_VM_FAILED 警告 在 Host ${VdsName} 上运行 VM ${VmName} 失败。
152 USER_RUN_VM_ON_NON_DEFAULT_VDS 警告 在主机 ${VdsName} 上启动了 guest ${VmName}。(默认 Host 参数被忽略 - 分配的主机不可用)。
153 USER_STARTED_VM info VM ${VmName} 由 ${UserName} 启动(Host: ${VdsName})。
154 VDS_CLUSTER_VERSION_NOT_SUPPORTED Error 主机 ${VdsName} 与版本(${VdsSupportedVersions})兼容,且无法加入 Cluster ${ClusterName},它被设置为版本 ${CompatibilityVersion}。
155 VDS_ARCHITECTURE_NOT_SUPPORTED_FOR_CLUSTER Error 主机 ${VdsName} 具有架构 ${VdsArchitecture},且无法加入具有架构 ${ClusterArchitecture} 的 Cluster ${ClusterName}。
156 CPU_TYPE_UNSUPPORTED_IN_THIS_CLUSTER_VERSION Error 主机 ${VdsName} 移到 Non-Operational 状态,因为此集群兼容性版本不支持主机 CPU 类型,或者根本不受支持
157 USER_REBOOT_VM info 用户 ${UserName} 启动重启 VM ${VmName}.
158 USER_FAILED_REBOOT_VM Error 重启 VM ${VmName} 失败(用户:${UserName})。
159 USER_FORCE_SELECTED_SPM info 主机 ${VdsName} 被 ${UserName} 强制选择
160 USER_ACCOUNT_DISABLED_OR_LOCKED Error 用户 ${UserName} 无法登录,因为它已禁用或锁定。请联系系统管理员。
161 VM_CANCEL_MIGRATION info migration cancelled (VM: ${VmName}, Source: ${VdsName}, User: ${UserName})。
162 VM_CANCEL_MIGRATION_FAILED Error 为虚拟机取消迁移失败:${VmName}
163 VM_STATUS_RESTORED info VM ${VmName} 状态已恢复到 ${VmStatus}。
164 VM_SET_TICKET info 用户 ${UserName} 启动的控制台会话用于 VM ${VmName}
165 VM_SET_TICKET_FAILED Error 用户 ${UserName} 无法为 VM ${VmName} 启动控制台会话
166 VM_MIGRATION_NO_VDS_TO_MIGRATE_TO 警告 没有找到可用的主机来将虚拟机 ${VmName} 迁移到.
167 VM_CONSOLE_CONNECTED info 用户 ${UserName} 连接到 VM ${VmName}。
168 VM_CONSOLE_DISCONNECTED info 用户 ${UserName} 从 VM ${VmName} 断开连接。
169 VM_FAILED_TO_PRESTART_IN_POOL 警告 无法在池 '${VmPoolName}' 中启动虚拟机。系统将继续尝试。
170 USER_CREATE_LIVE_SNAPSHOT_FINISHED_FAILURE 警告 为虚拟机 '${VmName}' 创建实时快照 '${SnapshotName}' 失败。建议重启虚拟机。请注意,使用创建的快照可能会导致数据不一致。
171 USER_RUN_VM_AS_STATELESS_WITH_DISKS_NOT_ALLOWING_SNAPSHOT 警告 VM ${VmName} 作为无状态运行,其中一个或多个不允许快照(User:${UserName})的磁盘。
172 USER_REMOVE_VM_FINISHED_WITH_ILLEGAL_DISKS 警告 虚拟机 ${VmName} 已被删除,但无法删除以下磁盘:${DisksNames}。这些磁盘将显示在 illegal 状态的主磁盘选项卡中,请尽可能手动删除。
173 USER_CREATE_LIVE_SNAPSHOT_NO_MEMORY_FAILURE Error 未能将内存保存为 Snapshot ${SnapshotName} 的一部分,用于 VM ${VmName}(User: ${UserName})。
174 VM_IMPORT_FROM_CONFIGURATION_EXECUTED_SUCCESSFULLY info 虚拟机 ${VmName} 已从给定配置成功导入。
175 VM_IMPORT_FROM_CONFIGURATION_ATTACH_DISKS_FAILED 警告 VM ${VmName} 已从给定配置导入,但以下磁盘无法附加:${DiskAliases}。
176 VM_BALLOON_DRIVER_ERROR Error 主机 ${VdsName} 上的虚拟机 ${VmName} 上的 Balloon 驱动程序会被请求但不可用。
177 VM_BALLOON_DRIVER_UNCONTROLLED Error 主机 ${VdsName} 上的虚拟机 ${VmName} 上的 Balloon 设备已被取消,但无法控制该设备(客户机代理已停机)。
178 VM_MEMORY_NOT_IN_RECOMMENDED_RANGE 警告 VM ${VmName} 被配置为 ${VmMemInMb}mb 内存,而推荐的值范围为 ${VmMinMemInMb}mb - ${VmMaxMemInMb}mb
179 USER_INITIATED_RUN_VM_AND_PAUSE info 从暂停模式虚拟机 ${VmName} 开始,由 ${UserName} 启动。
180 TEMPLATE_IMPORT_FROM_CONFIGURATION_SUCCESS info 模板 ${VmTemplateName} 已成功从给定配置导入。
181 TEMPLATE_IMPORT_FROM_CONFIGURATION_FAILED Error 从给定配置中导入模板 ${VmTemplateName} 失败。
182 USER_FAILED_ATTACH_USER_TO_VM Error 将 User ${AdUserName} 附加到 VM ${VmName}(User: ${UserName})失败。
183 USER_ATTACH_TAG_TO_TEMPLATE info 标签 ${TagName} 已附加到模板(s)${TemplatesNames} by ${UserName}。
184 USER_ATTACH_TAG_TO_TEMPLATE_FAILED Error 将 Tag ${TagName} 附加到模板失败:${TemplatesNames}(User: ${UserName})。
185 USER_DETACH_TEMPLATE_FROM_TAG info tag ${TagName} 被 ${UserName} 从 Template (s)${TemplatesNames} 分离。
186 USER_DETACH_TEMPLATE_FROM_TAG_FAILED Error 无法从 TEMPLATE (s)${TemplatesNames}(User: ${UserName})中分离 Tag ${TagName} 失败。
187 VDS_STORAGE_CONNECTION_FAILED_BUT_LAST_VDS Error 由于与存储的连接错误,无法将 Host ${VdsName} 连接到数据中心。主机 ${VdsName} 将保持在 Up 状态(但不活跃),因为它是 Data Center 中的最后一个主机,以便管理员启用手动干预。
188 VDS_STORAGES_CONNECTION_FAILED Error 将 Host ${VdsName} 连接到 Storage Domains ${failedStorageDomains} 失败。
189 VDS_STORAGE_VDS_STATS_FAILED Error 主机 ${VdsName} 报告一个 Active Storage Domains 作为问题。
190 UPDATE_OVF_FOR_STORAGE_DOMAIN_FAILED 警告 在 Data Center ${StoragePoolName} 中更新 Storage Domain ${StorageDomainName} 的 VM/Templates OVF 数据失败。
191 CREATE_OVF_STORE_FOR_STORAGE_DOMAIN_FAILED 警告 为 Storage Domain ${StorageDomainName} 创建 OVF 存储磁盘失败。\n The Disk with the id ${DiskId} 可能会手动删除,以自动尝试创建新磁盘。\n OVF 更新不会在创建磁盘上尝试。
192 CREATE_OVF_STORE_FOR_STORAGE_DOMAIN_INITIATE_FAILED 警告 为 Storage Domain ${StorageDomainName} 创建 OVF 存储磁盘失败。对于该域,则不会更新 \n OVF 数据。
193 DELETE_OVF_STORE_FOR_STORAGE_DOMAIN_FAILED 警告 删除 Storage Domain ${StorageDomainName}.\n 的 OVF 存储磁盘失败。为了分离域,请手动删除它,或者尝试再次分离域进行另一个尝试。
194 VM_CANCEL_CONVERSION info 转换取消(VM: ${VmName}, Source: ${VdsName}, User: ${UserName})。
195 VM_CANCEL_CONVERSION_FAILED Error 为虚拟机取消转换失败:${VmName}
196 VM_RECOVERED_FROM_PAUSE_ERROR Normal VM ${VmName} 已从暂停恢复至启动。
197 SYSTEM_SSH_HOST_RESTART info 主机 ${VdsName} 被引擎使用 SSH 重新启动。
198 SYSTEM_FAILED_SSH_HOST_RESTART Error 使用引擎向 Host ${VdsName} 启动的 SSH 重启失败。
199 USER_UPDATE_OVF_STORE info domain ${StorageDomainName} 的 OVF_STORE 由 ${UserName} 更新。
200 IMPORTEXPORT_GET_VMS_INFO_FAILED Error 无法从导出域 ${StorageDomainName} 检索 VM/Templates 信息
201 IRS_DISK_SPACE_LOW_ERROR Error Critical, Low disk space. ${StorageDomainName} 域有 ${DiskSpace} GB 的可用空间。
202 IMPORTEXPORT_GET_EXTERNAL_VMS_INFO_FAILED Error 无法从外部服务器 ${URL} 检索虚拟机信息失败。
204 IRS_HOSTED_ON_VDS info 存储池管理器在 Host ${VdsName} 上运行(地址:${ServerIp})。
205 PROVIDER_ADDED info 添加了供应商 ${ProviderName}。(用户:${UserName})
206 PROVIDER_ADDITION_FAILED Error 添加 provider ${ProviderName} 失败。(用户:${UserName})
207 PROVIDER_UPDATED info provider ${ProviderName} 已更新。(用户:${UserName})
208 PROVIDER_UPDATE_FAILED Error 更新供应商 ${ProviderName} 失败。(用户:${UserName})
209 PROVIDER_REMOVED info 已删除供应商 ${ProviderName}。(用户:${UserName})
210 PROVIDER_REMOVAL_FAILED Error 删除供应商 ${ProviderName} 失败。(用户:${UserName})
213 PROVIDER_CERTIFICATE_IMPORTED info 导入供应商 ${ProviderName} 的证书。(用户:${UserName})
214 PROVIDER_CERTIFICATE_IMPORT_FAILED Error 为 provider ${ProviderName} 导入证书失败。(用户:${UserName})
250 USER_UPDATE_VM_CLUSTER_DEFAULT_HOST_CLEARED info ${vmname} 集群由 ${UserName} 更新,默认主机被重置为自动分配。
251 USER_REMOVE_VM_TEMPLATE_FINISHED info 删除模板 ${VmTemplateName} 已完成。
252 SYSTEM_FAILED_UPDATE_VM Error 更新由系统启动的虚拟机 ${VmName} 失败。
253 SYSTEM_UPDATE_VM info 虚拟机 ${VmName} 配置已被系统更新。
254 VM_ALREADY_IN_REQUESTED_STATUS info VM ${VmName} 已跳过 ${VmStatus}, ${Action}。用户:${UserName}.
302 USER_ADD_VM_POOL_WITH_VMS info VM Pool ${VmPoolName}(包含 ${VmsCount} 虚拟机)由 ${UserName} 创建。
303 USER_ADD_VM_POOL_WITH_VMS_FAILED Error 创建 VM Pool ${VmPoolName} 失败(用户:${UserName})。
304 USER_REMOVE_VM_POOL info VM Pool ${VmPoolName} 已被 ${UserName} 删除。
305 USER_REMOVE_VM_POOL_FAILED Error 删除 VM Pool ${VmPoolName} 失败(用户:${UserName})。
306 USER_ADD_VM_TO_POOL info VM ${VmName} 被添加到 VM Pool ${VmPoolName} by ${UserName} 中。
307 USER_ADD_VM_TO_POOL_FAILED Error 将 VM ${VmName} 添加到 VM Pool ${VmPoolName}(User: ${UserName})失败。
308 USER_REMOVE_VM_FROM_POOL info VM ${VmName} 已从 VM Pool ${VmPoolName} 中删除,地址为 ${UserName}。
309 USER_REMOVE_VM_FROM_POOL_FAILED Error 无法从 VM Pool ${VmPoolName}(User: ${UserName})中删除 VM ${VmName} 失败。
310 USER_ATTACH_USER_TO_POOL info 用户 ${AdUserName} 已附加到 VM Pool ${VmPoolName} by ${UserName}。
311 USER_ATTACH_USER_TO_POOL_FAILED Error 将 User ${AdUserName} 附加到 VM Pool ${VmPoolName}(User: ${UserName})失败。
312 USER_DETACH_USER_FROM_POOL info 用户 ${AdUserName} 由 ${UserName} 从 VM Pool ${VmPoolName} 分离。
313 USER_DETACH_USER_FROM_POOL_FAILED Error 无法从 VM Pool ${VmPoolName}(User: ${UserName})中分离 User ${AdUserName} 失败。
314 USER_UPDATE_VM_POOL info VM Pool ${VmPoolName} 配置由 ${UserName} 更新。
315 USER_UPDATE_VM_POOL_FAILED Error 更新 VM Pool ${VmPoolName} 配置失败(用户:${UserName})。
316 USER_ATTACH_USER_TO_VM_FROM_POOL info 将 VM Pool ${VmPoolName} 中的用户 ${AdUserName} 附加到 VM ${VmPoolName} 中由 ${UserName} 启动。
317 USER_ATTACH_USER_TO_VM_FROM_POOL_FAILED Error 无法从 VM Pool ${VmPoolName}(User: ${UserName})将 User ${AdUserName} 附加到虚拟机失败。
318 USER_ATTACH_USER_TO_VM_FROM_POOL_FINISHED_SUCCESS info 用户 ${AdUserName} 成功附加到 VM Pool ${VmPoolName} 中的 VM ${VmName}。
319 USER_ATTACH_USER_TO_VM_FROM_POOL_FINISHED_FAILURE Error 未能将用户 ${AdUserName} 附加到 VM Pool ${VmPoolName} 中的 VM ${VmName} 中。
320 USER_ADD_VM_POOL_WITH_VMS_ADD_VDS_FAILED Error 池 ${VmPoolName} Created,但一些 Vms 无法创建(User: ${UserName})。
321 USER_REMOVE_VM_POOL_INITIATED info VM Pool ${VmPoolName} 删除由 ${UserName} 启动。
325 USER_REMOVE_ADUSER info 用户 ${AdUserName} 被 ${UserName} 删除。
326 USER_FAILED_REMOVE_ADUSER Error 删除用户 ${AdUserName} 失败(用户:${UserName})。
327 USER_FAILED_ADD_ADUSER 警告 在系统中添加用户 '${NewUserName}' 失败。
342 USER_REMOVE_SNAPSHOT info 为虚拟机 '${VmName}' 删除快照 '${VmName}' 被 ${UserName} 启动。
343 USER_FAILED_REMOVE_SNAPSHOT Error 未能为 VM ${VmName} 删除 Snapshot ${SnapshotName}(User: ${UserName})。
344 USER_UPDATE_VM_POOL_WITH_VMS info VM Pool ${VmPoolName} 已被 ${UserName}, ${VmsCount} 虚拟机更新。
345 USER_UPDATE_VM_POOL_WITH_VMS_FAILED Error 更新 VM Pool ${VmPoolName}(User: ${UserName})失败。
346 USER_PASSWORD_CHANGED info 成功更改 ${UserName} 的密码.
347 USER_PASSWORD_CHANGE_FAILED Error 更改密码失败。(用户:${UserName})
348 USER_CLEAR_UNKNOWN_VMS info Non Responsive Host ${VdsName} 上的所有虚拟机状态都改为 'Down' by ${UserName}
349 USER_FAILED_CLEAR_UNKNOWN_VMS Error 在 Non Responsive Host ${VdsName} 上清除虚拟机的状态失败。(用户:${UserName})。
350 USER_ADD_BOOKMARK info 书签 ${BookmarkName} 由 ${UserName} 添加。
351 USER_ADD_BOOKMARK_FAILED Error 添加书签失败:${BookmarkName}(User: ${UserName})。
352 USER_UPDATE_BOOKMARK info 书签 ${BookmarkName} 由 ${UserName} 更新。
353 USER_UPDATE_BOOKMARK_FAILED Error 更新书签失败:${BookmarkName}(用户:${UserName})
354 USER_REMOVE_BOOKMARK info 书签 ${BookmarkName} 已被 ${UserName} 删除。
355 USER_REMOVE_BOOKMARK_FAILED Error 删除书签 ${BookmarkName} 失败(用户:${UserName})
356 USER_REMOVE_SNAPSHOT_FINISHED_SUCCESS info Snapshot '${SnapshotName}' delete for VM '${VmName}' has been completed.
357 USER_REMOVE_SNAPSHOT_FINISHED_FAILURE Error 为 VM '${VmName}' 删除快照 '${SnapshotName}' 失败。
358 USER_VM_POOL_MAX_SUBSEQUENT_FAILURES_REACHED 警告 不是在 VM Pool ${VmPoolName} 中成功创建的虚拟机。
359 USER_REMOVE_SNAPSHOT_FINISHED_FAILURE_PARTIAL_SNAPSHOT 警告 由于删除部分快照,VM '${VmName}' 的 Snapshot '${SnapshotName}' 现在只包含以下磁盘: '${DiskAliases}'。
360 USER_DETACH_USER_FROM_VM info 用户 ${AdUserName} 被 ${UserName} 从 VM ${VmName} 分离。
361 USER_FAILED_DETACH_USER_FROM_VM Error 从 VM ${VmName}(User: ${UserName})分离用户 ${AdUserName} 失败。
362 USER_REMOVE_SNAPSHOT_FINISHED_FAILURE_BASE_IMAGE_NOT_FOUND Error 合并快照 '${SnapshotName}':基本卷 '${BaseVolumeId}' 的镜像失败。这可能是因为尝试删除父快照失败造成的;如果出现这种情况,请在删除此快照前重试删除父快照。
370 USER_EXTEND_DISK_SIZE_FAILURE Error 将磁盘 '${DiskAlias}' 的大小扩展到 ${NewSize} GB, User: ${UserName}.
371 USER_EXTEND_DISK_SIZE_SUCCESS info 磁盘 '${DiskAlias}' 的大小被 ${UserName} GB 成功更新至 ${NewSize} GB。
372 USER_EXTEND_DISK_SIZE_UPDATE_VM_FAILURE 警告 使用新卷大小更新 VM '${VmName}' 失败。建议重启虚拟机。
373 USER_REMOVE_DISK_SNAPSHOT info 从 Snapshot (s)'${Snapshots}' of VM '${VmName}' 删除的磁盘 '${DiskAlias}' 被 ${UserName} 启动。
374 USER_FAILED_REMOVE_DISK_SNAPSHOT Error 从 VM ${VmName}(User: ${UserName})的 Snapshot (s)${Snapshots} 中删除 Disk '${DiskAlias}' 失败。
375 USER_REMOVE_DISK_SNAPSHOT_FINISHED_SUCCESS info 虚拟机 '${VmName}' delete has been completed (User: ${UserName})中的 Disk '${DiskAlias}' from Snapshot (${Snapshots}'' of VM '${VmName}'
376 USER_REMOVE_DISK_SNAPSHOT_FINISHED_FAILURE Error 无法从虚拟机 '${VmName}'(User: ${UserName}')的 snapshot (s)'${Snapshots}'(User: ${UserName})中完全删除 Disk '${DiskAlias}'。
377 USER_EXTENDED_DISK_SIZE info 将磁盘 '${DiskAlias}' 扩展到 ${NewSize} GB 由 ${UserName} 启动。
378 USER_REGISTER_DISK_FINISHED_SUCCESS info 磁盘 '${DiskAlias}' 已被成功注册为浮动磁盘。
379 USER_REGISTER_DISK_FINISHED_FAILURE Error 注册 Disk '${DiskAlias}' 失败。
380 USER_EXTEND_DISK_SIZE_UPDATE_HOST_FAILURE 警告 在主机 '${VdsName}' 上刷新卷大小失败。请再次尝试该操作。
381 USER_REGISTER_DISK_INITIATED info 注册磁盘 '${DiskAlias}' 已被启动。
400 USER_ATTACH_VM_TO_AD_GROUP info 组 ${GroupName} 由 ${UserName} 附加到虚拟机 ${VmName}。
401 USER_ATTACH_VM_TO_AD_GROUP_FAILED Error 将 Group ${GroupName} 附加到 VM ${VmName}(User: ${UserName})失败。
402 USER_DETACH_VM_TO_AD_GROUP info 组 ${GroupName} 被 ${UserName} 从 VM ${VmName} 分离。
403 USER_DETACH_VM_TO_AD_GROUP_FAILED Error 无法从 VM ${VmName}(User: ${UserName})中分离 Group ${GroupName} 失败。
404 USER_ATTACH_VM_POOL_TO_AD_GROUP info 组 ${GroupName} 已附加到 VM Pool ${VmPoolName} by ${UserName}。
405 USER_ATTACH_VM_POOL_TO_AD_GROUP_FAILED Error 将 Group ${GroupName} 附加到 VM Pool ${VmPoolName}(User: ${UserName})失败。
406 USER_DETACH_VM_POOL_TO_AD_GROUP info 组 ${GroupName} 从 VM Pool ${VmPoolName} 分离,地址为 ${UserName}。
407 USER_DETACH_VM_POOL_TO_AD_GROUP_FAILED Error 无法从 VM Pool ${VmPoolName}(User: ${UserName})中分离 Group ${GroupName} 失败。
408 USER_REMOVE_AD_GROUP info 组 ${GroupName} 由 ${UserName} 删除。
409 USER_REMOVE_AD_GROUP_FAILED Error 删除组 ${GroupName} 失败(用户:${UserName})。
430 USER_UPDATE_TAG info tag ${TagName} 配置由 ${UserName} 更新。
431 USER_UPDATE_TAG_FAILED Error 更新 Tag ${TagName} 失败(用户:${UserName})。
432 USER_ADD_TAG info 新的 Tag ${TagName} 由 ${UserName} 创建。
433 USER_ADD_TAG_FAILED Error 无法创建名为 ${TagName} 的 Tag (User: ${UserName})。
434 USER_REMOVE_TAG info tag ${TagName} 已被 ${UserName} 删除。
435 USER_REMOVE_TAG_FAILED Error 删除 Tag ${TagName} 失败(用户:${UserName})。
436 USER_ATTACH_TAG_TO_USER info 标签 ${TagName} 已附加到 User (s)${AttachUsersNames} by ${UserName}。
437 USER_ATTACH_TAG_TO_USER_FAILED Error 将 Tag ${TagName} 附加到 User (s)${AttachUsersNames}(User: ${UserName})失败。
438 USER_ATTACH_TAG_TO_USER_GROUP info 标签 ${TagName} 已附加到 Group (s)${AttachGroupsNames} by ${UserName}。
439 USER_ATTACH_TAG_TO_USER_GROUP_FAILED Error 将 ${AttachGroupsNames} 附加到 Tag ${TagName}(User: ${UserName})失败。
440 USER_ATTACH_TAG_TO_VM info 标签 ${TagName} 附加到虚拟机(s)${VmsNames} by ${UserName}。
441 USER_ATTACH_TAG_TO_VM_FAILED Error 将 Tag ${TagName} 附加到虚拟机失败:${VmsNames}(User: ${UserName})。
442 USER_ATTACH_TAG_TO_VDS info 标签 ${TagName} 已附加到 Host (s)${VdsNames} by ${UserName}。
443 USER_ATTACH_TAG_TO_VDS_FAILED Error 将 Tag ${TagName} 附加到主机失败:${VdsNames}(User: ${UserName})。
444 USER_DETACH_VDS_FROM_TAG info tag ${TagName} 被 Host (s)${VdsNames} by ${UserName} 分离。
445 USER_DETACH_VDS_FROM_TAG_FAILED Error 从主机中分离 Tag ${TagName} 失败:${VdsNames}(User: ${UserName})。
446 USER_DETACH_VM_FROM_TAG info 标签 ${TagName} 被 ${UserName} 从虚拟机分离。
447 USER_DETACH_VM_FROM_TAG_FAILED Error 无法从虚拟机分离 Tag ${TagName} 失败(User: ${UserName})。
448 USER_DETACH_USER_FROM_TAG info Tag ${TagName} 分离自 User (s)${DetachUsersNames} by ${UserName}。
449 USER_DETACH_USER_FROM_TAG_FAILED Error 从 User (s)${DetachUsersNames}(User: ${UserName})分离 Tag ${TagName} 失败。
450 USER_DETACH_USER_GROUP_FROM_TAG info Tag ${TagName} 被 ${UserName} 从 Group (s)${DetachGroupsNames} 分离。
451 USER_DETACH_USER_GROUP_FROM_TAG_FAILED Error 无法从 Group (s)${DetachGroupsNames}(User: ${UserName})中分离 Tag ${TagName} 失败。
452 USER_ATTACH_TAG_TO_USER_EXISTS 警告 标签 ${TagName} 已附加到 User (s)${AttachUsersNamesExists}。
453 USER_ATTACH_TAG_TO_USER_GROUP_EXISTS 警告 标签 ${TagName} 已附加到 Group (s)${AttachGroupsNamesExists}。
454 USER_ATTACH_TAG_TO_VM_EXISTS 警告 标签 ${TagName} 已附加到虚拟机 ${VmsNamesExists}。
455 USER_ATTACH_TAG_TO_VDS_EXISTS 警告 标签 ${TagName} 已附加到主机 ${VdsNamesExists}。
456 USER_LOGGED_IN_VM info 用户 ${GuestUser} 登录到 VM ${VmName}。
457 USER_LOGGED_OUT_VM info 用户 ${GuestUser} 从 VM ${VmName} 注销.
458 USER_LOCKED_VM info 用户 ${GuestUser} 锁定虚拟机 ${VmName}.
459 USER_UNLOCKED_VM info 用户 ${GuestUser} 解锁虚拟机 ${VmName}.
460 USER_ATTACH_TAG_TO_TEMPLATE_EXISTS 警告 标签 ${TagName} 已附加到 Template (s)${TemplatesNamesExists}。
467 UPDATE_TAGS_VM_DEFAULT_DISPLAY_TYPE info VM ${VmName} 标签默认显示类型已更新
468 UPDATE_TAGS_VM_DEFAULT_DISPLAY_TYPE_FAILED info 更新 Vm ${VmName} 标签默认显示类型失败
470 USER_ATTACH_VM_POOL_TO_AD_GROUP_INTERNAL info 组 ${GroupName} 附加到虚拟机池 ${VmPoolName}。
471 USER_ATTACH_VM_POOL_TO_AD_GROUP_FAILED_INTERNAL Error 将 Group ${GroupName} 附加到 VM Pool ${VmPoolName} 失败。
472 USER_ATTACH_USER_TO_POOL_INTERNAL info 用户 ${AdUserName} 附加到 VM Pool ${VmPoolName}。
473 USER_ATTACH_USER_TO_POOL_FAILED_INTERNAL Error 将 User ${AdUserName} 附加到 VM Pool ${VmPoolName}(User: ${UserName})失败。
493 VDS_ALREADY_IN_REQUESTED_STATUS 警告 主机 ${HostName} 是 ${AgentStatus}, Power Management ${Operation} 操作跳过。
494 VDS_MANUAL_FENCE_STATUS info 启动了主机 ${VdsName} 的手动隔离。
495 VDS_MANUAL_FENCE_STATUS_FAILED Error 为主机 ${VdsName} 手动隔离失败。
496 VDS_FENCE_STATUS info 主机 ${VdsName} 电源管理已被成功验证。
497 VDS_FENCE_STATUS_FAILED Error 验证 Host ${VdsName} 电源管理失败。
498 VDS_APPROVE info 主机 ${VdsName} 被用户 ${UserName} 成功批准。
499 VDS_APPROVE_FAILED Error 批准主机 ${VdsName} 失败。
500 VDS_FAILED_TO_RUN_VMS Error 主机 ${VdsName} 将切换到 Error 状态 for ${Time} 分钟,因为它无法运行虚拟机。
501 USER_SUSPEND_VM info 暂停 VM ${VmName} 由 User ${UserName}(Host: ${VdsName})启动。
502 USER_FAILED_SUSPEND_VM Error 暂停 VM ${VmName}(主机:${VdsName})失败。
503 USER_SUSPEND_VM_OK info Host ${VdsName} 上的 VM ${VmName} 已暂停。
504 VDS_INSTALL info 安装了主机 ${VdsName}
505 VDS_INSTALL_FAILED Error 主机 ${VdsName} 安装失败。${FailedInstallMessage}.
506 VDS_INITIATED_RUN_VM info 在 Host ${VdsName} 上尝试重启 VM ${VmName}
509 VDS_INSTALL_IN_PROGRESS info 安装主机 ${VdsName}. ${Message}.
510 VDS_INSTALL_IN_PROGRESS_WARNING 警告 主机 ${VdsName} 安装进度 . ${Message}.
511 VDS_INSTALL_IN_PROGRESS_ERROR Error 未能安装 Host ${VdsName}. ${Message}。
512 USER_SUSPEND_VM_FINISH_SUCCESS info 暂停 VM ${VmName} 已完成。
513 VDS_RECOVER_FAILED_VMS_UNKNOWN Error 无法访问主机 ${VdsName},此主机上的虚拟机状态被标记为 Unknown。
514 VDS_INITIALIZING 警告 主机 ${VdsName} 正在初始化。Message: ${ErrorMessage}
515 VDS_CPU_LOWER_THAN_CLUSTER 警告 主机 ${VdsName} 移到不可操作状态,因为主机不符合集群的最小 CPU 级别。缺少 CPU 功能:${CpuFlags}
516 VDS_CPU_RETRIEVE_FAILED 警告 无法确定 Host ${VdsName} CPU 级别 - 无法检索 CPU 标记。
517 VDS_SET_NONOPERATIONAL info 主机 ${VdsName} 移到不可操作状态。
518 VDS_SET_NONOPERATIONAL_FAILED Error 将 Host ${VdsName} 移到 Non-Operational 状态失败。
519 VDS_SET_NONOPERATIONAL_NETWORK 警告 主机 ${VdsName} 不遵循集群 ${ClusterName} 网络,在 host: '${Networks}' 上缺少以下网络:
520 USER_ATTACH_USER_TO_VM info 用户 ${AdUserName} 由 ${UserName} 附加到 VM ${VmName}。
521 USER_SUSPEND_VM_FINISH_FAILURE Error 未能完成 VM ${VmName} 的挂起。
522 VDS_SET_NONOPERATIONAL_DOMAIN 警告 主机 ${VdsName} 无法访问附加到 Data Center ${StoragePoolName} 的存储域 ${StorageDomainNames}。将主机状态设置为不可操作.
523 VDS_SET_NONOPERATIONAL_DOMAIN_FAILED Error 主机 ${VdsName} 无法访问附加到 Data Center ${StoragePoolName} 的存储域 ${StorageDomainNames}。将 Host 状态设置为 Non-Operational 失败。
524 VDS_DOMAIN_DELAY_INTERVAL 警告 存储域 ${StorageDomainName} 遇到了来自主机 ${VdsName} 的高延迟 ${Delay}。这可能导致性能和功能问题。请参考您的存储管理员。
525 VDS_INITIATED_RUN_AS_STATELESS_VM_NOT_YET_RUNNING info 启动作为无状态的虚拟机 ${VmName}。
528 USER_EJECT_VM_DISK info CD 由 ${UserName} 弹出自 VM ${VmName}。
530 VDS_MANUAL_FENCE_FAILED_CALL_FENCE_SPM 警告 手动隔离不会撤销所选的 SPM (${VdsName}),因为 master 存储域\n 没有激活,或者无法将其他主机用于隔离操作。
531 VDS_LOW_MEM 警告 主机 ${HostName} [${AvailableMemory} MB] 的可用内存低于定义的阈值 [${Threshold} MB]。
532 VDS_HIGH_MEM_USE 警告 主机 ${HostName} [${UsedMemory}%] 的内存超过定义的阈值 [${Threshold}%]。
533 VDS_HIGH_NETWORK_USE 警告
534 VDS_HIGH_CPU_USE 警告 使用的主机 ${HostName} [${UsedCpu}%] 超过定义的阈值 [${Threshold}%]。
535 VDS_HIGH_SWAP_USE 警告 使用的主机 ${HostName} [${UsedSwap}%] 超过定义的阈值 [${Threshold}%]。
536 VDS_LOW_SWAP 警告 主机 ${HostName} [${AvailableSwapMemory} MB] 的可用内存在定义的阈值 [${Threshold} MB] 下。
537 VDS_INITIATED_RUN_VM_AS_STATELESS info VM ${VmName} 被重启在 Host ${VdsName} 上作为无状态
538 USER_RUN_VM_AS_STATELESS info 在 Host ${VdsName} 上作为无状态启动的虚拟机 ${VmName}
539 VDS_AUTO_FENCE_STATUS info 启动了主机 ${VdsName} 的自动隔离。
540 VDS_AUTO_FENCE_STATUS_FAILED Error 主机 ${VdsName} 的自动隔离失败。
541 VDS_AUTO_FENCE_FAILED_CALL_FENCE_SPM 警告 由于 master 存储域\n 没有激活或者无法将其他主机用于隔离操作,自动隔离不会撤销所选的 SPM (${VdsName})。
550 VDS_PACKAGES_IN_PROGRESS info 软件包更新主机 ${VdsName}. ${Message}.
551 VDS_PACKAGES_IN_PROGRESS_WARNING 警告 主机 ${VdsName} 更新进度 . ${Message} 中的软件包.
552 VDS_PACKAGES_IN_PROGRESS_ERROR Error 更新软件包 Host ${VdsName}. ${Message} 失败。
555 USER_MOVE_TAG info 标签 ${TagName} 已从 ${OldParnetTagName} 移到 ${NewParentTagName} by ${UserName}。
556 USER_MOVE_TAG_FAILED Error 将 Tag ${TagName} 从 ${OldParnetTagName} 移到 ${NewParentTagName}(User: ${UserName})失败。
600 USER_VDS_MAINTENANCE info 主机 ${VdsName} 已被 ${UserName} 切换为维护模式(Reason: ${Reason})。
601 CPU_FLAGS_NX_IS_MISSING 警告 主机 ${VdsName} 缺少 NX cpu 标志。此标志可以通过主机 BIOS 启用。请为 Intel 主机设置 Disable Execute (XD),或为 AMD 设置 No Execute (NX)。请确定完全关闭主机,以使此更改生效。
602 USER_VDS_MAINTENANCE_MIGRATION_FAILED 警告 主机 ${VdsName} 无法更改为维护模式 - 并非所有 Vms 都已成功迁移。考虑手动干预:停止/现有 Vms: ${failedVms}(User: ${UserName})。
603 VDS_SET_NONOPERATIONAL_IFACE_DOWN 警告 主机 ${VdsName} 移到不可操作状态,因为当前集群中必需的网络需要的接口: '${NicsWithNetworks}'。
604 VDS_TIME_DRIFT_ALERT 警告 主机 ${VdsName} 具有 time-drift 为 ${Actual} 秒,而最大配置的值为 ${Max} 秒。
605 PROXY_HOST_SELECTION info 从 ${Origin} 主机 ${Proxy} 被选为在 Host ${VdsName} 上执行隔离的代理。
606 HOST_REFRESHED_CAPABILITIES info 成功刷新主机 ${VdsName} 的功能。
607 HOST_REFRESH_CAPABILITIES_FAILED Error 刷新主机 ${VdsName} 的功能失败。
608 HOST_INTERFACE_HIGH_NETWORK_USE 警告 主机 ${HostName} 具有超过定义的阈值 [${Threshold}%](${InterfaceName}: transfer rate[${TransmitRate}%], receive rate [${ReceiveRate}%])
609 HOST_INTERFACE_STATE_UP Normal 主机 ${VdsName} 上的接口 ${InterfaceName},将状态更改为 up
610 HOST_INTERFACE_STATE_DOWN 警告 主机 ${VdsName} 上的接口 ${InterfaceName},将状态更改为 down
611 HOST_BOND_SLAVE_STATE_UP Normal 主机 ${VdsName} 上的绑定 ${BondName} 的从属 ${SlaveName},将状态更改为 up
612 HOST_BOND_SLAVE_STATE_DOWN 警告 主机 ${VdsName} 上的绑定 ${BondName} 的从属 ${SlaveName},将状态更改为 down
613 FENCE_KDUMP_LISTENER_IS_NOT_ALIVE Error 无法确定在主机 ${VdsName} 上是否正在进行 Kdump,因为 fence_kdump 侦听程序没有运行。
614 KDUMP_FLOW_DETECTED_ON_VDS info kdump 流在主机 ${VdsName} 上进行。
615 KDUMP_FLOW_NOT_DETECTED_ON_VDS info kdump 流不在主机 ${VdsName} 上进行。
616 KDUMP_FLOW_FINISHED_ON_VDS info kdump 流在主机 ${VdsName} 上完成。
617 KDUMP_DETECTION_NOT_CONFIGURED_ON_VDS 警告 为主机 ${VdsName} 启用 kdump 集成,但主机上没有正确配置 kdump。
618 HOST_REGISTRATION_FAILED_INVALID_CLUSTER info 未找到默认或有效集群,Host ${VdsName} 注册失败
619 HOST_PROTOCOL_INCOMPATIBLE_WITH_CLUSTER 警告 主机 ${VdsName} 在激活过程中使用不兼容的协议(xmlrpc 而不是 jsonrpc)。请检查安装日志和 VDSM 日志,以查看失败并重新安装主机。
620 USER_VDS_MAINTENANCE_WITHOUT_REASON info 主机 ${VdsName} 已被 ${UserName} 切换到维护模式。
700 DISK_ALIGNMENT_SCAN_START info 开始对磁盘 '${DiskAlias}' 对齐扫描。
701 DISK_ALIGNMENT_SCAN_FAILURE 警告 磁盘 '${DiskAlias}' 对齐扫描失败。
702 DISK_ALIGNMENT_SCAN_SUCCESS info 磁盘 '${DiskAlias}' 对齐扫描已完成。
809 USER_ADD_CLUSTER info 集群 ${ClusterName} 由 ${UserName} 添加
810 USER_ADD_CLUSTER_FAILED Error 添加主机集群失败(用户:${UserName})
811 USER_UPDATE_CLUSTER info 主机集群 ${ClusterName} 由 ${UserName} 更新
812 USER_UPDATE_CLUSTER_FAILED Error 更新主机集群失败(用户:${UserName})
813 USER_REMOVE_CLUSTER info 主机集群 ${ClusterName} 被 ${UserName} 删除
814 USER_REMOVE_CLUSTER_FAILED Error 删除主机集群失败(用户:${UserName})
815 USER_VDC_LOGOUT_FAILED Error 注销用户 ${UserName} 失败。
816 MAC_POOL_EMPTY 警告 MAC 地址池中没有剩余的 MAC 地址。
817 CERTIFICATE_FILE_NOT_FOUND Error 无法找到 oVirt Engine 证书文件。
818 RUN_VM_FAILED Error 无法在 Host ${VdsName} 上运行 VM ${VmName}。错误:${ErrMsg}
819 VDS_REGISTER_ERROR_UPDATING_HOST Error 主机注册失败 - 无法更新 Host ${VdsName2} 的主机名。(Host: ${VdsName1})
820 VDS_REGISTER_ERROR_UPDATING_HOST_ALL_TAKEN Error 主机注册失败 - 执行所有可用的主机名。(Host: ${VdsName1})
821 VDS_REGISTER_HOST_IS_ACTIVE Error 主机注册失败 - 无法更改活动主机 ${VdsName2} 的主机名。(Host: ${VdsName1})
822 VDS_REGISTER_ERROR_UPDATING_NAME Error 主机注册失败 - 无法更新 Host ${VdsName2} 的主机名。(Host: ${VdsName1})
823 VDS_REGISTER_ERROR_UPDATING_NAMES_ALL_TAKEN Error 主机注册失败 - 执行所有可用的主机名。(Host: ${VdsName1})
824 VDS_REGISTER_NAME_IS_ACTIVE Error 主机注册失败 - 无法更改活动主机 ${VdsName2} 的主机名。(Host: ${VdsName1})
825 VDS_REGISTER_AUTO_APPROVE_PATTERN Error 主机注册失败 - 自动批准模式错误。(Host: ${VdsName1})
826 VDS_REGISTER_FAILED Error 主机注册失败。(Host: ${VdsName1})
827 VDS_REGISTER_EXISTING_VDS_UPDATE_FAILED Error 主机注册失败 - 无法更新现有主机。(Host: ${VdsName1})
828 VDS_REGISTER_SUCCEEDED info 主机 ${VdsName1} 注册。
829 VM_MIGRATION_ON_CONNECT_CHECK_FAILED Error VM 迁移逻辑失败。(VM 名称:${VmName})
830 VM_MIGRATION_ON_CONNECT_CHECK_SUCCEEDED info 迁移检查无法执行。
831 USER_VDC_SESSION_TERMINATED info 用户 ${UserName} 用于强制注销用户 ${TerminatedSessionUsername}.
832 USER_VDC_SESSION_TERMINATION_FAILED Error 用户 ${UserName} 无法强制注销用户 ${TerminatedSessionUsername}。
833 MAC_ADDRESS_IS_IN_USE 警告 网络接口 ${IfaceName} 具有正在使用的 MAC 地址 ${MACAddr}。
834 VDS_REGISTER_EMPTY_ID 警告 主机注册失败,空主机 ID (主机:${VdsHostName})
835 SYSTEM_UPDATE_CLUSTER info 主机集群 ${ClusterName} 由系统更新
836 SYSTEM_UPDATE_CLUSTER_FAILED info 系统更新主机集群失败
837 MAC_ADDRESSES_POOL_NOT_INITIALIZED 警告 MAC 地址池没有初始化。${Message}
838 MAC_ADDRESS_IS_IN_USE_UNPLUG 警告 网络接口 ${IfaceName} 具有 MAC 地址 ${MACAddr},因此它从 VM ${VmName} 中拔出。
839 HOST_AVAILABLE_UPDATES_FAILED Error 检查 host ${VdsName} 上有消息 '${Message}' 的可用更新失败。
840 HOST_UPGRADE_STARTED info 主机 ${VdsName} 升级已启动(用户:${UserName})。
841 HOST_UPGRADE_FAILED Error 升级 Host ${VdsName} 失败(用户:${UserName})。
842 HOST_UPGRADE_FINISHED info 主机 ${VdsName} 升级成功完成。
845 HOST_CERTIFICATION_IS_ABOUT_TO_EXPIRE 警告 主机 ${VdsName} 认证即将于 ${ExpirationDate} 到期。请续订主机的认证。
846 ENGINE_CERTIFICATION_HAS_EXPIRED info 引擎的认证已过期为 ${ExpirationDate}。请续订引擎的认证。
847 ENGINE_CERTIFICATION_IS_ABOUT_TO_EXPIRE 警告 引擎的认证即将于 ${ExpirationDate} 到期。请续订引擎的认证。
848 ENGINE_CA_CERTIFICATION_HAS_EXPIRED info 引擎的 CA 认证已过期为 ${ExpirationDate}。
849 ENGINE_CA_CERTIFICATION_IS_ABOUT_TO_EXPIRE 警告 引擎的 CA 认证即将于 ${ExpirationDate} 到期。
850 USER_ADD_PERMISSION info user/Group ${SubjectName}, Namespace ${Namespace}, Authorization provider: ${Authz} 被授予 ${VdcObjectType} ${VdcObjectType} ${VdcObjectName}, by ${UserName} 上的 Role ${RoleName} 权限。
851 USER_ADD_PERMISSION_FAILED Error 用户 ${UserName} 无法授予 ${VdcObjectType} ${VdcObjectName} 上的 Role ${RoleName} 的权限到 User/Group ${SubjectName}。
852 USER_REMOVE_PERMISSION info user/Group ${SubjectName} Role ${RoleName} 权限已从 ${VdcObjectType} ${VdcObjectName} by ${UserName} 中删除
853 USER_REMOVE_PERMISSION_FAILED Error 用户 ${UserName} 无法删除从 ${VdcObjectType} ${VdcObjectName} 到 User/Group ${SubjectName} 的 Role ${RoleName} 权限
854 USER_ADD_ROLE info 赋予 ${UserName} 的角色 ${RoleName}
855 USER_ADD_ROLE_FAILED Error 未能授予角色 ${RoleName}(User ${UserName})
856 USER_UPDATE_ROLE info ${username} 角色已更新至 ${RoleName} 角色
857 USER_UPDATE_ROLE_FAILED Error 将角色 ${RoleName} 更新至 ${UserName} 失败
858 USER_REMOVE_ROLE info 从 ${UserName} 中删除角色 ${RoleName}
859 USER_REMOVE_ROLE_FAILED Error 删除角色 ${RoleName} 失败(用户 ${UserName})
860 USER_ATTACHED_ACTION_GROUP_TO_ROLE info 操作组 ${ActionGroup} 由 ${UserName} 附加到 Role ${RoleName}
861 USER_ATTACHED_ACTION_GROUP_TO_ROLE_FAILED Error 将 Action group ${ActionGroup} 附加到 Role ${RoleName}(User: ${UserName})
862 USER_DETACHED_ACTION_GROUP_FROM_ROLE info 操作组 ${ActionGroup} 被 ${UserName} 从 Role ${RoleName} 分离。
863 USER_DETACHED_ACTION_GROUP_FROM_ROLE_FAILED Error 将 Action 组 ${ActionGroup} 附加到 Role ${RoleName} by ${UserName} 失败
864 USER_ADD_ROLE_WITH_ACTION_GROUP info 角色 ${RoleName} 由 ${UserName} 添加
865 USER_ADD_ROLE_WITH_ACTION_GROUP_FAILED Error 添加角色 ${RoleName} 失败
866 USER_ADD_SYSTEM_PERMISSION info user/Group ${SubjectName} 被 ${VdcObjectType} 上 Role ${RoleName} 的权限授予了 ${UserName} 的权限。
867 USER_ADD_SYSTEM_PERMISSION_FAILED Error 用户 ${UserName} 无法将 ${VdcObjectType} 上的 Role ${RoleName} 的权限授予 User/Group ${SubjectName}。
868 USER_REMOVE_SYSTEM_PERMISSION info user/Group ${SubjectName} Role ${RoleName} 权限已从 ${VdcObjectType} 中删除,使用 ${UserName}
869 USER_REMOVE_SYSTEM_PERMISSION_FAILED Error 用户 ${UserName} 无法删除从 ${VdcObjectType} 到 User/Group ${SubjectName} 的 Role ${RoleName} 权限
870 USER_ADD_PROFILE info 为 ${UserName} 创建的配置集
871 USER_ADD_PROFILE_FAILED Error 为 ${UserName} 创建配置集失败
872 USER_UPDATE_PROFILE info 为 ${UserName} 更新的配置集
873 USER_UPDATE_PROFILE_FAILED Error 为 ${UserName} 更新配置集失败
874 USER_REMOVE_PROFILE info 删除 ${UserName} 的配置集
875 USER_REMOVE_PROFILE_FAILED Error 为 ${UserName} 删除配置集失败
876 HOST_CERTIFICATION_IS_INVALID Error 主机 ${VdsName} 认证无效。认证没有对等证书。
877 HOST_CERTIFICATION_HAS_EXPIRED info 主机 ${VdsName} 认证已过期为 ${ExpirationDate}。请续订主机的认证。
878 ENGINE_CERTIFICATION_IS_ABOUT_TO_EXPIRE_ALERT info 引擎的认证即将于 ${ExpirationDate} 到期。请续订引擎的认证。
879 HOST_CERTIFICATION_IS_ABOUT_TO_EXPIRE_ALERT info 主机 ${VdsName} 认证即将于 ${ExpirationDate} 到期。请续订主机的认证。
880 HOST_CERTIFICATION_ENROLLMENT_STARTED Normal 为主机 ${VdsName} 注册证书已启动(用户:${UserName})。
881 HOST_CERTIFICATION_ENROLLMENT_FINISHED Normal 为主机 ${VdsName} 注册证书已成功完成(用户:${UserName})。
882 HOST_CERTIFICATION_ENROLLMENT_FAILED Error 为主机 ${VdsName}(用户:${UserName})注册证书失败。
883 ENGINE_CA_CERTIFICATION_IS_ABOUT_TO_EXPIRE_ALERT info 引擎的 CA 认证即将于 ${ExpirationDate} 到期。
884 HOST_AVAILABLE_UPDATES_STARTED info 已开始检查 host ${VdsName} 上的可用更新。
885 HOST_AVAILABLE_UPDATES_FINISHED info 检查 host ${VdsName} 上的可用更新已成功完成,并显示消息 '${Message}'。
886 HOST_AVAILABLE_UPDATES_PROCESS_IS_ALREADY_RUNNING 警告 检查主机 ${VdsName} 上的可用更新失败:另一个进程已在运行。
890 HOST_UPGRADE_FINISHED_MANUAL_HA 警告 主机 ${VdsName} 升级成功完成,但托管引擎 HA 服务可能仍处于维护模式。如有必要,请手动纠正。
900 AD_COMPUTER_ACCOUNT_SUCCEEDED info 帐户创建成功.
901 AD_COMPUTER_ACCOUNT_FAILED Error 帐户创建失败。
918 USER_FORCE_REMOVE_STORAGE_POOL info 数据中心 ${StoragePoolName} 被 ${UserName} 强制删除
919 USER_FORCE_REMOVE_STORAGE_POOL_FAILED Error 无法删除 Data Center ${StoragePoolName}。(用户:${UserName})
925 MAC_ADDRESS_IS_EXTERNAL 警告 VM ${VmName} 具有 MAC 地址(es)${MACAddr},即/are 从其 MAC 池定义中。
926 NETWORK_REMOVE_BOND info 为 Host 删除 bond: ${BondName}: ${VdsName}(User:${UserName})。
927 NETWORK_REMOVE_BOND_FAILED Error 删除 Host 的 bond: ${BondName} 失败:${VdsName}(User:${UserName})。
928 NETWORK_VDS_NETWORK_MATCH_CLUSTER info Vds ${VdsName} 网络与集群 ${ClusterName} 匹配
929 NETWORK_VDS_NETWORK_NOT_MATCH_CLUSTER Error Vds ${VdsName} 网络与集群 ${ClusterName} 不匹配。
930 NETWORK_REMOVE_VM_INTERFACE info 接口 ${InterfaceName}(${InterfaceType})已从 VM ${VmName} 中删除。(用户:${UserName})
931 NETWORK_REMOVE_VM_INTERFACE_FAILED Error 无法从 VM ${VmName} 中删除 Interface ${InterfaceName}(${InterfaceType})失败。(用户:${UserName})
932 NETWORK_ADD_VM_INTERFACE info 接口 ${InterfaceName}(${InterfaceType})被添加到 VM ${VmName} 中。(用户:${UserName})
933 NETWORK_ADD_VM_INTERFACE_FAILED Error 将 Interface ${InterfaceName}(${InterfaceType})添加到 VM ${VmName} 失败。(用户:${UserName})
934 NETWORK_UPDATE_VM_INTERFACE info 为 VM ${VmName}. ${LinkState}(User: ${UserName})更新了 interface ${InterfaceName}(${InterfaceType})
935 NETWORK_UPDATE_VM_INTERFACE_FAILED Error 为虚拟机 ${VmName} 更新 Interface ${InterfaceName}(${InterfaceType})失败。(用户:${UserName})
936 NETWORK_ADD_TEMPLATE_INTERFACE info 接口 ${InterfaceName}(${InterfaceType})已添加到 Template ${VmTemplateName} 中。(用户:${UserName})
937 NETWORK_ADD_TEMPLATE_INTERFACE_FAILED Error 将 Interface ${InterfaceName}(${InterfaceType})添加到 Template ${VmTemplateName} 失败。(用户:${UserName})
938 NETWORK_REMOVE_TEMPLATE_INTERFACE info 接口 ${InterfaceName}(${InterfaceType})已从 Template ${VmTemplateName} 中删除。(用户:${UserName})
939 NETWORK_REMOVE_TEMPLATE_INTERFACE_FAILED Error 无法从 Template ${VmTemplateName} 中删除 Interface ${InterfaceName}(${InterfaceType})。(用户:${UserName})
940 NETWORK_UPDATE_TEMPLATE_INTERFACE info 为 Template ${VmTemplateName} 更新接口 ${InterfaceName}(${InterfaceType})。(用户:${UserName})
941 NETWORK_UPDATE_TEMPLATE_INTERFACE_FAILED Error 为 Template ${VmTemplateName} 更新 Interface ${InterfaceName} 失败。(用户:${UserName})
942 NETWORK_ADD_NETWORK info 网络 ${NetworkName} 添加到数据中心:${StoragePoolName}
943 NETWORK_ADD_NETWORK_FAILED Error 将网络 ${NetworkName} 添加到数据中心失败:${StoragePoolName}
944 NETWORK_REMOVE_NETWORK info 从 Data Center: ${StoragePoolName} 中删除网络 ${NetworkName}
945 NETWORK_REMOVE_NETWORK_FAILED Error 从 Data Center: ${StoragePoolName} 中删除 Network ${NetworkName} 失败
946 NETWORK_ATTACH_NETWORK_TO_CLUSTER info 附加到 Cluster ${ClusterName} 的网络 ${NetworkName}
947 NETWORK_ATTACH_NETWORK_TO_CLUSTER_FAILED Error 将 Network ${NetworkName} 附加到 Cluster ${ClusterName} 失败
948 NETWORK_DETACH_NETWORK_TO_CLUSTER info 从 Cluster ${ClusterName} 分离网络 ${NetworkName}
949 NETWORK_DETACH_NETWORK_TO_CLUSTER_FAILED Error 从 Cluster ${ClusterName} 中分离 Network ${NetworkName} 失败
950 USER_ADD_STORAGE_POOL info Data Center ${StoragePoolName}, Compatibility Version ${CompatibilityVersion} 和 Quota Type ${QuotaEnforcementType} 由 ${UserName} 添加
951 USER_ADD_STORAGE_POOL_FAILED Error 添加 Data Center ${StoragePoolName} 失败。(用户:${UserName})
952 USER_UPDATE_STORAGE_POOL info 数据中心 ${StoragePoolName} 由 ${UserName} 更新
953 USER_UPDATE_STORAGE_POOL_FAILED Error 更新 Data Center ${StoragePoolName} 失败。(用户:${UserName})
954 USER_REMOVE_STORAGE_POOL info 数据中心 ${StoragePoolName} 被 ${UserName} 删除
955 USER_REMOVE_STORAGE_POOL_FAILED Error 删除 Data Center ${StoragePoolName} 失败。(用户:${UserName})
956 USER_ADD_STORAGE_DOMAIN info 存储域 ${StorageDomainName} 由 ${UserName} 添加
957 USER_ADD_STORAGE_DOMAIN_FAILED Error 添加 Storage Domain ${StorageDomainName} 失败。(用户:${UserName})
958 USER_UPDATE_STORAGE_DOMAIN info 存储域 ${StorageDomainName} 由 ${UserName} 更新
959 USER_UPDATE_STORAGE_DOMAIN_FAILED Error 更新 Storage Domain ${StorageDomainName} 失败。(用户:${UserName})
960 USER_REMOVE_STORAGE_DOMAIN info 存储域 ${StorageDomainName} 由 ${UserName} 删除
961 USER_REMOVE_STORAGE_DOMAIN_FAILED Error 删除 Storage Domain ${StorageDomainName} 失败。(用户:${UserName})
962 USER_ATTACH_STORAGE_DOMAIN_TO_POOL info 存储域 ${StorageDomainName} 由 ${UserName} 附加到数据中心 ${StoragePoolName}
963 USER_ATTACH_STORAGE_DOMAIN_TO_POOL_FAILED Error 将存储域 ${StorageDomainName} 附加到数据中心 ${StoragePoolName} 失败。(用户:${UserName})
964 USER_DETACH_STORAGE_DOMAIN_FROM_POOL info 存储域 ${StorageDomainName} 被 Data Center ${StoragePoolName} by ${UserName} 分离.
965 USER_DETACH_STORAGE_DOMAIN_FROM_POOL_FAILED Error 无法从 Data Center ${StoragePoolName} 中分离 Storage Domain ${StorageDomainName}。(用户:${UserName})
966 USER_ACTIVATED_STORAGE_DOMAIN info 存储域 ${StorageDomainName}(Data Center ${StoragePoolName})由 ${UserName} 激活
967 USER_ACTIVATE_STORAGE_DOMAIN_FAILED Error 未能激活 Storage Domain ${StorageDomainName}(Data Center ${StoragePoolName}) by ${UserName}
968 USER_DEACTIVATED_STORAGE_DOMAIN info 存储域 ${StorageDomainName}(Data Center ${StoragePoolName})已被停用,并已移到 'Preparing for maintenance',直到它不再被数据中心的任何主机访问。
969 USER_DEACTIVATE_STORAGE_DOMAIN_FAILED Error 取消激活 Storage Domain ${StorageDomainName}(Data Center ${StoragePoolName})失败。
970 SYSTEM_DEACTIVATED_STORAGE_DOMAIN 警告 存储域 ${StorageDomainName}(Data Center ${StoragePoolName})已被系统停用,因为它对任何主机都不可见。
971 SYSTEM_DEACTIVATE_STORAGE_DOMAIN_FAILED Error 取消激活 Storage Domain ${StorageDomainName}(Data Center ${StoragePoolName})失败。
972 USER_EXTENDED_STORAGE_DOMAIN info 存储 ${StorageDomainName} 已由 ${UserName} 扩展。请等待刷新。
973 USER_EXTENDED_STORAGE_DOMAIN_FAILED Error 扩展 Storage Domain ${StorageDomainName} 失败。(用户:${UserName})
974 USER_REMOVE_VG info 由 ${UserName} 删除的卷组 ${VgId}。
975 USER_REMOVE_VG_FAILED Error 删除卷组 ${VgId} 失败。(用户:UserName)
976 USER_ACTIVATE_STORAGE_POOL info 数据中心 ${StoragePoolName} 已激活。(用户:${UserName})
977 USER_ACTIVATE_STORAGE_POOL_FAILED Error 激活 Data Center ${StoragePoolName} 失败。(用户:${UserName})
978 SYSTEM_FAILED_CHANGE_STORAGE_POOL_STATUS Error 更改 Data Center ${StoragePoolName} 状态失败。
979 SYSTEM_CHANGE_STORAGE_POOL_STATUS_NO_HOST_FOR_SPM Error 在 Storage Pool Manager ${VdsName} 中隔离失败。将 status 设置为 Non-Operational。
980 SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC 警告 Data Center ${StoragePoolName} 无效状态。将 status 设置为 Non Responsive。
981 USER_FORCE_REMOVE_STORAGE_DOMAIN info 存储域 ${StorageDomainName} 被 ${UserName} 强制删除
982 USER_FORCE_REMOVE_STORAGE_DOMAIN_FAILED Error 无法强制删除存储域 ${StorageDomainName}。(用户:${UserName})
983 RECONSTRUCT_MASTER_FAILED_NO_MASTER 警告 Data Center ${StoragePoolName} 中没有有效的数据存储域(请检查您的存储基础架构)。
984 RECONSTRUCT_MASTER_DONE info 为 Data Center ${StoragePoolName} 重新创建 Master 域已完成。
985 RECONSTRUCT_MASTER_FAILED Error Data Center ${StoragePoolName} 的 Reconstruct Master Domain 失败。
986 SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_SEARCHING_NEW_SPM 警告 数据中心将被初始化,请等待初始化完成。
987 SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_WITH_ERROR 警告 Data Center ${StoragePoolName} 无效状态。将 Data Center status 设置为 Non Responsive (On host ${VdsName}, Error: ${Error})。
988 USER_CONNECT_HOSTS_TO_LUN_FAILED Error 将 Host ${VdsName} 连接到 device 失败。(用户:${UserName})
989 SYSTEM_CHANGE_STORAGE_POOL_STATUS_PROBLEMATIC_FROM_NON_OPERATIONAL info 尝试恢复 Data Center ${StoragePoolName}。将 status 设置为 Non Responsive。
990 SYSTEM_MASTER_DOMAIN_NOT_IN_SYNC 警告 Host ${VdsName} 和 oVirt Engine 之间的主域同步错误.域:${StorageDomainName} 在 oVirt Engine 数据库中被标记为 Master,但不在 Storage 端。请咨询有关如何修复此问题的支持。
991 RECOVERY_STORAGE_POOL info 数据中心 ${StoragePoolName} 由 ${UserName} 恢复
992 RECOVERY_STORAGE_POOL_FAILED Error 恢复 Data Center ${StoragePoolName}(User:${UserName})失败
993 SYSTEM_CHANGE_STORAGE_POOL_STATUS_RESET_IRS info 数据中心 ${StoragePoolName} 被重置。将 status 设置为 Non Responsive (Elect new Storage Pool Manager)。
994 CONNECT_STORAGE_SERVERS_FAILED 警告 将 Host ${VdsName} 连接到存储服务器失败
995 CONNECT_STORAGE_POOL_FAILED 警告 将 Host ${VdsName} 连接到 Storage Pool ${StoragePoolName} 失败
996 STORAGE_DOMAIN_ERROR Error VDSM 返回的连接 ${Connection} 的错误消息为:${ErrorMessage}
997 REFRESH_REPOSITORY_IMAGE_LIST_FAILED Error 为 domain (s): ${imageDomains} 刷新镜像列表失败。请检查域活动。
998 REFRESH_REPOSITORY_IMAGE_LIST_SUCCEEDED info 为域刷新镜像列表成功:${imageDomains}
999 STORAGE_ALERT_VG_METADATA_CRITICALLY_FULL Error 系统在 ${StorageDomainName} 上的 VG 元数据区域上达到了 80% 水位线。\nThis is due of of Vdisks or large Vdisks size on this specific VG.
1000 STORAGE_ALERT_SMALL_VG_METADATA 警告 在 ${StorageDomainName} 上分配的 VG 元数据区域大小小于 50MB,\n它可能会限制其容量(Vdisks 和/或其大小)。
1001 USER_RUN_VM_FAILURE_STATELESS_SNAPSHOT_LEFT Error 启动 VM ${VmName} 失败,因为存在无状态状态的快照。快照将被删除。
1002 USER_ATTACH_STORAGE_DOMAINS_TO_POOL info 存储域通过 ${UserName} 附加到数据中心 ${StoragePoolName}
1003 USER_ATTACH_STORAGE_DOMAINS_TO_POOL_FAILED Error 将存储域附加到数据中心 ${StoragePoolName} 失败。(用户:${UserName})
1004 STORAGE_DOMAIN_TASKS_ERROR 警告 存储域 ${StorageDomainName} 在其上运行任务时停机。这些任务可能会失败。
1005 UPDATE_OVF_FOR_STORAGE_POOL_FAILED 警告 在 Data Center ${StoragePoolName} 中更新 VM/Templates OVF 数据失败。
1006 UPGRADE_STORAGE_POOL_ENCOUNTERED_PROBLEMS 警告 数据中心 ${StoragePoolName} 在升级过程中遇到问题。
1007 REFRESH_REPOSITORY_IMAGE_LIST_INCOMPLETE 警告 对于 domain ${imageDomain},刷新镜像列表可能不完整,只有 ${imageListSize} 镜像被发现。
1008 NUMBER_OF_LVS_ON_STORAGE_DOMAIN_EXCEEDED_THRESHOLD 警告 域 ${storageDomainName} 超过 ${maxNumOfLVs} 上的 LV 数量,您要接近性能可能会降级的限制。
1009 USER_DEACTIVATE_STORAGE_DOMAIN_OVF_UPDATE_INCOMPLETE 警告 取消激活 Storage Domain ${StorageDomainName} 失败,因为引擎会在操作过程中重启,请重试。(Data Center ${StoragePoolName}).
1010 RELOAD_CONFIGURATIONS_SUCCESS info 系统配置成功重新加载。
1011 RELOAD_CONFIGURATIONS_FAILURE Error 系统配置无法重新加载。
1012 NETWORK_ACTIVATE_VM_INTERFACE_SUCCESS info 网络接口 ${InterfaceName}(${InterfaceType})已插入到 VM ${VmName}。(用户:${UserName})
1013 NETWORK_ACTIVATE_VM_INTERFACE_FAILURE Error 将 Network Interface ${InterfaceName}(${InterfaceType})插入 VM ${VmName} 失败。(用户:${UserName})
1014 NETWORK_DEACTIVATE_VM_INTERFACE_SUCCESS info 网络接口 ${InterfaceName}(${InterfaceType})从 VM ${VmName} 中拔出。(用户:${UserName})
1015 NETWORK_DEACTIVATE_VM_INTERFACE_FAILURE Error 从 VM ${VmName} 中拔出网络接口 ${InterfaceName}(${InterfaceType})失败。(用户:${UserName})
1016 UPDATE_FOR_OVF_STORES_FAILED 警告 更新 OVF 磁盘 ${DisksIds} 失败,在这些 OVF 存储上没有更新 OVF 数据(Data Center ${DataCenterName}, Storage Domain ${StorageDomainName})。
1017 RETRIEVE_OVF_STORE_FAILED 警告 无法从 Storage Domain ${StorageDomainName} 的 OVF 磁盘检索虚拟机和模板。
1018 OVF_STORE_DOES_NOT_EXISTS 警告 此数据中心兼容性版本不支持使用其实体(VM 和模板)导入数据域。导入的域将不进行导入。
1019 UPDATE_DESCRIPTION_FOR_DISK_FAILED Error 更新 disk ${DiskName}(Data Center ${DataCenterName}, Storage Domain ${StorageDomainName})的元数据描述失败。
1020 UPDATE_DESCRIPTION_FOR_DISK_SKIPPED_SINCE_STORAGE_DOMAIN_NOT_ACTIVE 警告 不会更新 Disk ${DiskName}(Data Center ${DataCenterName})的元数据。由于存储域 ${StorageDomainName} 不处于活动状态。
1022 USER_REFRESH_LUN_STORAGE_DOMAIN info 成功调整 LUN 操作的大小。
1023 USER_REFRESH_LUN_STORAGE_DOMAIN_FAILED Error 重新定义 LUN 的大小失败。
1024 USER_REFRESH_LUN_STORAGE_DIFFERENT_SIZE_DOMAIN_FAILED Error 重新定义 LUN 的大小失败。\n Not the hosts see the same LUN size.
1025 VM_PAUSED info VM ${VmName} 已暂停。
1026 FAILED_TO_STORE_ENTIRE_DISK_FIELD_IN_DISK_DESCRIPTION_METADATA 警告 由于存储空间限制,存储字段 ${DiskFieldName} 作为 ${DiskAlias} 描述元数据的一部分失败。字段 ${DiskFieldName} 将截断。
1027 FAILED_TO_STORE_ENTIRE_DISK_FIELD_AND_REST_OF_FIELDS_IN_DISK_DESCRIPTION_METADATA 警告 由于存储空间限制,存储字段 ${DiskFieldName} 作为 ${DiskAlias} 描述元数据的一部分失败。该值将被截断,以下字段将不会存储在 all: ${DiskFieldsNames} 中。
1028 FAILED_TO_STORE_DISK_FIELDS_IN_DISK_DESCRIPTION_METADATA 警告 因为存储空间限制,在 disk ${DiskAlias} 描述元数据中存储以下字段失败:${DiskFieldsNames}。
1029 STORAGE_DOMAIN_MOVED_TO_MAINTENANCE info 存储域 ${StorageDomainName}(Data Center ${StoragePoolName})可以成功移到 Maintenance,因为它不再可以被数据中心的任何主机访问。
1030 USER_DEACTIVATED_LAST_MASTER_STORAGE_DOMAIN info 存储域 ${StorageDomainName}(Data Center ${StoragePoolName})已被停用。
1031 TRANSFER_IMAGE_INITIATED info 带有 disk ${DiskAlias} 的 image ${TransferType} 由 ${UserName} 启动。
1032 TRANSFER_IMAGE_SUCCEEDED info Image ${TransferType} 带有 disk ${DiskAlias} 成功。
1033 TRANSFER_IMAGE_CANCELLED info 带有 disk ${DiskAlias} 的镜像 ${TransferType} 被取消。
1034 TRANSFER_IMAGE_FAILED Error 镜像 ${TransferType} 失败,磁盘 ${DiskAlias} 失败。
1035 TRANSFER_IMAGE_TEARDOWN_FAILED info 在镜像传输会话后停止镜像 ${DiskAlias} 失败。
1036 USER_SCAN_STORAGE_DOMAIN_FOR_UNREGISTERED_DISKS info 存储域 ${StorageDomainName} 完成扫描 ${UserName} 取消注册的磁盘。
1037 USER_SCAN_STORAGE_DOMAIN_FOR_UNREGISTERED_DISKS_FAILED Error 存储域 ${StorageDomainName} 无法扫描 ${UserName} 取消注册的磁盘。
1038 UPLOAD_IMAGE_NETWORK_ERROR 警告 由于网络错误,无法将镜像上传到磁盘 ${DiskId}。确保已安装并配置了 ovirt-imageio-proxy 服务,并在浏览器中将 ovirt-engine 的证书注册为有效的 CA。证书可以从 https://<engine_url>/ovirt-engine/services/pki-resource?resource 获取
1039 LUNS_BROKE_SD_PASS_DISCARD_SUPPORT 警告 在 db 中更新了 ID 为 [${LunsIds}] 的 LUN,但会导致带有 id ${storageDomainId} 的存储域停止支持将丢弃从客户机传递给底层存储。请在底层存储中配置这些 luns 的丢弃支持,或者为这个存储域中的 vm 磁盘禁用 'Enable Discard'。
1040 DISKS_WITH_ILLEGAL_PASS_DISCARD_EXIST 警告 ID 的磁盘 [${DisksIds}] 在 上具有"Enable Discard",即使底层存储不支持它。请将底层存储配置为支持丢弃或对这些磁盘禁用"启用通配符"。
1041 USER_REMOVE_DEVICE_FROM_STORAGE_DOMAIN_FAILED Error 从 Storage Domain ${StorageDomainName} 中删除 ${LunId} 失败。(用户:${UserName})
1042 USER_REMOVE_DEVICE_FROM_STORAGE_DOMAIN info ${LunId} 已从 Storage Domain ${StorageDomainName} 中删除。(用户:${UserName})
1043 USER_REMOVE_DEVICE_FROM_STORAGE_DOMAIN_STARTED info 已启动,从 Storage Domain ${StorageDomainName} 中删除 ${LunId}。(用户:${UserName})
1044 ILLEGAL_STORAGE_DOMAIN_DISCARD_AFTER_DELETE 警告 具有 id ${storageDomainId} 的存储域将其"Discard After Delete"启用,即使底层存储不支持 discard。因此,在此存储域上的磁盘和快照不会在删除之前丢弃。
1045 LUNS_BROKE_SD_DISCARD_AFTER_DELETE_SUPPORT 警告 在 db 中更新了 ID 为 [${LunsIds}] 的 LUN,但会导致 ID 为 ${storageDomainId} 的存储域在删除后停止支持丢弃。请在底层存储中配置这些 luns 的丢弃支持,或者为此存储域禁用 'Discard After Delete'。
1046 STORAGE_DOMAINS_COULD_NOT_BE_SYNCED info ID 为 [${StorageDomainsIds}] 的存储域无法同步。要同步它们,请将它们移到维护中,然后激活。
1047 UPLOAD_IMAGE_CLIENT_ERROR Error 由于客户端错误,无法将镜像上传到磁盘 ${DiskId}。确保所选文件可读。
1098 NETWORK_UPDATE_DISPLAY_FOR_HOST_WITH_ACTIVE_VM 警告 显示网络已在 Host ${VdsName} 上更新,并附加了活动虚拟机。这些更改将在下一次重启后应用到这些虚拟机。运行虚拟机可能会松散显示连接,直到随后出现。
1099 NETWORK_UPDATE_DISPLAY_FOR_CLUSTER_WITH_ACTIVE_VM 警告 为附加活跃虚拟机的 Cluster ${ClusterName} 更新显示网络(${NetworkName})。这些更改将在下一次重启后应用到这些虚拟机。
1100 NETWORK_UPDATE_DISPLAY_TO_CLUSTER info 更新 Cluster ${ClusterName} 的 Display Network (${NetworkName})。(用户:${UserName})
1101 NETWORK_UPDATE_DISPLAY_TO_CLUSTER_FAILED Error 未能为 Cluster ${ClusterName} 更新 Display Network (${NetworkName})。(用户:${UserName})
1102 NETWORK_UPDATE_NETWORK_TO_VDS_INTERFACE info 更新 Host ${VdsName} 中的 Network ${NetworkName}。(用户:${UserName})
1103 NETWORK_UPDATE_NETWORK_TO_VDS_INTERFACE_FAILED Error 在 Host ${VdsName} 中无法更新 Network ${NetworkName}。(用户:${UserName})
1104 NETWORK_COMMINT_NETWORK_CHANGES info 网络更改保存在主机 ${VdsName} 上。
1105 NETWORK_COMMINT_NETWORK_CHANGES_FAILED Error 在 ${VdsName} 上提交网络更改失败
1106 NETWORK_HOST_USING_WRONG_CLUSER_VLAN 警告 ${VdsName} 为错误的 vlan id: ${VlanIdHost},预期的 vlan id: ${VlanIdCluster}
1107 NETWORK_HOST_MISSING_CLUSER_VLAN 警告 ${VdsName} 缺少集群预期的 vlan id: ${VlanIdCluster}
1108 VDS_NETWORK_MTU_DIFFER_FROM_LOGICAL_NETWORK info
1109 BRIDGED_NETWORK_OVER_MULTIPLE_INTERFACES 警告 网桥网络 ${NetworkName} 附加到 Host ${VdsName} 上的多个接口:${Interfaces}。
1110 VDS_NETWORKS_OUT_OF_SYNC 警告 主机 ${VdsName} 的以下网络未与其逻辑网络配置同步:${Networks}。
1112 NETWORK_UPDTAE_NETWORK_ON_CLUSTER info Cluster ${ClusterName} 上的网络 ${NetworkName} 更新。
1113 NETWORK_UPDTAE_NETWORK_ON_CLUSTER_FAILED Error 在 Cluster ${ClusterName} 上更新 Network ${NetworkName} 失败。
1114 NETWORK_UPDATE_NETWORK info 在 Data Center: ${StoragePoolName} 上更新了网络 ${NetworkName}
1115 NETWORK_UPDATE_NETWORK_FAILED Error 在 Data Center: ${StoragePoolName} 上更新 Network ${NetworkName} 失败。
1116 NETWORK_UPDATE_VM_INTERFACE_LINK_UP info 链接状态为 UP。
1117 NETWORK_UPDATE_VM_INTERFACE_LINK_DOWN info 链接状态为 DOWN。
1118 INVALID_BOND_INTERFACE_FOR_MANAGEMENT_NETWORK_CONFIGURATION Error 在主机 ${VdsName} 上配置管理网络失败。主机 ${VdsName} 具有管理网络配置的无效绑定接口(${InterfaceName} 包含少于 2 个活跃的从接口)。
1119 VLAN_ID_MISMATCH_FOR_MANAGEMENT_NETWORK_CONFIGURATION Error 在主机 ${VdsName} 上配置管理网络失败。主机 ${VdsName} 具有接口 ${InterfaceName},用于 VLAN-ID (${VlanId}),它与 data-center 定义(${MgmtVlanId} 的不同。
1120 SETUP_NETWORK_FAILED_FOR_MANAGEMENT_NETWORK_CONFIGURATION Error 由于设置网络失败,在主机 ${VdsName} 上配置管理网络失败。
1121 PERSIST_NETWORK_FAILED_FOR_MANAGEMENT_NETWORK 警告 因为丢失管理网络配置失败,因此无法激活主机 ${VdsName}。
1122 ADD_VNIC_PROFILE info VM 网络接口配置集 ${VnicProfileName} 添加到 Data Center: ${DataCenterName} 中的网络 ${NetworkName} 中。(用户:${UserName})
1123 ADD_VNIC_PROFILE_FAILED Error 将虚拟机网络接口配置集 ${VnicProfileName} 添加到 Data Center: ${DataCenterName}(User: ${UserName})中的网络 ${NetworkName} 中失败。
1124 UPDATE_VNIC_PROFILE info 为 Data Center: ${DataCenterName} 中的网络 ${NetworkName} 更新了虚拟机网络接口配置文件 ${VnicProfileName}。(用户:${UserName})
1125 UPDATE_VNIC_PROFILE_FAILED Error 在 Data Center: ${DataCenterName} 中为网络 ${NetworkName} 更新虚拟机网络接口配置集 ${VnicProfileName} 失败。(用户:${UserName})
1126 REMOVE_VNIC_PROFILE info VM 网络接口配置集 ${VnicProfileName} 已从 Data Center: ${DataCenterName} 的网络 ${NetworkName} 中删除。(用户:${UserName})
1127 REMOVE_VNIC_PROFILE_FAILED Error 从 Data Center: ${DataCenterName} 中的网络 ${NetworkName} 中删除虚拟机网络接口配置集 ${VnicProfileName} 失败。(用户:${UserName})
1128 NETWORK_WITHOUT_INTERFACES 警告 网络 ${NetworkName} 没有附加到主机 ${VdsName} 上的任何接口。
1129 VNIC_PROFILE_UNSUPPORTED_FEATURES 警告 VM ${VmName} 具有网络接口 ${NicName},它使用带有不支持功能的配置集 ${VnicProfile}' by VM cluster ${ClusterName}(version ${CompatibilityVersion})。
1131 REMOVE_NETWORK_BY_LABEL_FAILED Error 网络 ${Network} 不能从以下主机中删除:Data-center ${StoragePoolName} 中的 ${HostNames}。
1132 LABEL_NETWORK info 在 data-center ${StoragePoolName} 中,网络 ${NetworkName} 被标记为 ${Label}。
1133 LABEL_NETWORK_FAILED Error 在 data-center ${StoragePoolName} 中标签 network ${NetworkName} 失败。
1134 UNLABEL_NETWORK info 在 data-center ${StoragePoolName} 中未标记网络 ${NetworkName}。
1135 UNLABEL_NETWORK_FAILED Error 在 data-center ${StoragePoolName} 中取消标签网络 ${NetworkName} 失败。
1136 LABEL_NIC info 网络接口卡 ${NicName} 在主机 ${VdsName} 上被标记为 ${Label}。
1137 LABEL_NIC_FAILED Error 在 host ${VdsName} 上标记网络接口卡 ${NicName} 失败。
1138 UNLABEL_NIC info 标签 ${Label} 从 host ${VdsName} 上的网络接口卡 ${NicName} 中删除。
1139 UNLABEL_NIC_FAILED Error 在 host ${VdsName} 上从网络接口卡 ${NicName} 中删除标签 ${Label} 失败。
1140 SUBNET_REMOVED info 子网 ${SubnetName} 已从供应商 ${ProviderName} 中删除。(用户:${UserName})
1141 SUBNET_REMOVAL_FAILED Error 从供应商 ${ProviderName} 中删除子网 ${SubnetName} 失败。(用户:${UserName})
1142 SUBNET_ADDED info 在供应商 ${ProviderName} 上添加了子网 ${SubnetName}。(用户:${UserName})
1143 SUBNET_ADDITION_FAILED Error 在供应商 ${ProviderName} 中添加子网 ${SubnetName} 失败。(用户:${UserName})
1144 CONFIGURE_NETWORK_BY_LABELS_WHEN_CHANGING_CLUSTER_FAILED Error 在更改其集群时,在主机 ${VdsName} 上配置网络失败。
1145 PERSIST_NETWORK_ON_HOST info (${sequence}/${Total}):在主机 ${VdsName} 上为网络应用更改 ${NetworkNames}。(用户:${UserName})
1146 PERSIST_NETWORK_ON_HOST_FINISHED info (${sequence}/${Total}):在主机 ${VdsName} 上成功应用对网络 ${NetworkNames} 的更改。(用户:${UserName})
1147 PERSIST_NETWORK_ON_HOST_FAILED Error (${sequence}/${Total}): Failed to apply changes for network (s)${NetworkNames} on host ${VdsName}。(用户:${UserName})
1148 MULTI_UPDATE_NETWORK_NOT_POSSIBLE 警告 无法对不支持的数据中心 ${StoragePoolName} 上的主机应用网络 ${NetworkName} 更改。(用户:${UserName})
1149 REMOVE_PORT_FROM_EXTERNAL_PROVIDER_FAILED 警告 无法从外部网络供应商 ${ProviderName} 中删除 vNIC ${NicName}。vNIC 可以通过设备 ID ${NicId} 识别。
1150 IMPORTEXPORT_EXPORT_VM info VM ${VmName} 已成功导出至 ${StorageDomainName}
1151 IMPORTEXPORT_EXPORT_VM_FAILED Error 将 Vm ${VmName} 导出到 ${StorageDomainName} 失败
1152 IMPORTEXPORT_IMPORT_VM info VM ${VmName} 成功导入到 Data Center ${StoragePoolName}, Cluster ${ClusterName}
1153 IMPORTEXPORT_IMPORT_VM_FAILED Error 将 Vm ${VmName} 导入到 Data Center ${StoragePoolName}, Cluster ${ClusterName} 失败
1154 IMPORTEXPORT_REMOVE_TEMPLATE info 模板 ${VmTemplateName} 已从 ${StorageDomainName} 中删除
1155 IMPORTEXPORT_REMOVE_TEMPLATE_FAILED Error 从 ${StorageDomainName} 中删除 Template ${VmTemplateName} 失败
1156 IMPORTEXPORT_EXPORT_TEMPLATE info 模板 ${VmTemplateName} 已成功导出至 ${StorageDomainName}
1157 IMPORTEXPORT_EXPORT_TEMPLATE_FAILED Error 将 Template ${VmTemplateName} 导出到 ${StorageDomainName} 失败
1158 IMPORTEXPORT_IMPORT_TEMPLATE info 模板 ${VmTemplateName} 成功导入到 Data Center ${StoragePoolName}, Cluster ${ClusterName}
1159 IMPORTEXPORT_IMPORT_TEMPLATE_FAILED Error 将 Template ${VmTemplateName} 导入到 Data Center ${StoragePoolName}, Cluster ${ClusterName} 失败
1160 IMPORTEXPORT_REMOVE_VM info VM ${VmName} 已从 ${StorageDomainName} 中删除
1161 IMPORTEXPORT_REMOVE_VM_FAILED Error 删除来自 ${StorageDomainName} 的 Vm ${VmName} 失败
1162 IMPORTEXPORT_STARTING_EXPORT_VM info 启动 export Vm ${VmName} to ${StorageDomainName}
1163 IMPORTEXPORT_STARTING_IMPORT_TEMPLATE info 开始将 Template ${VmTemplateName} 导入到 Data Center ${StoragePoolName}, Cluster ${ClusterName}
1164 IMPORTEXPORT_STARTING_EXPORT_TEMPLATE info 启动将模板 ${VmTemplateName} 导出到 ${StorageDomainName}
1165 IMPORTEXPORT_STARTING_IMPORT_VM info 从导入 Vm ${VmName} to Data Center ${StoragePoolName}, Cluster ${ClusterName}
1166 IMPORTEXPORT_STARTING_REMOVE_TEMPLATE info 开始删除 Template ${VmTemplateName} remove ${StorageDomainName}
1167 IMPORTEXPORT_STARTING_REMOVE_VM info Start to remove Vm ${VmName} remove from ${StorageDomainName}
1168 IMPORTEXPORT_FAILED_TO_IMPORT_VM 警告 未能读取 VM '${ImportedVmName}' OVF,它可能会损坏。底层错误消息:${ErrorMessage}
1169 IMPORTEXPORT_FAILED_TO_IMPORT_TEMPLATE 警告 读取模板 '${Template}' OVF 失败,它可能会损坏。底层错误消息:${ErrorMessage}
1170 IMPORTEXPORT_IMPORT_TEMPLATE_INVALID_INTERFACES Normal 在导入模板 ${EntityName} 时,网络/s ${Networks} 是 Non-VM 网络,或者集群中不存在。在 Interface/s ${Interfaces} 中没有设置网络名称。
1171 USER_ACCOUNT_PASSWORD_EXPIRED Error 用户 ${UserName} 无法登录,因为用户帐户密码已过期。请联系系统管理员。
1172 AUTH_FAILED_INVALID_CREDENTIALS Error 用户 ${UserName} 无法登录,请验证用户名和密码。
1173 AUTH_FAILED_CLOCK_SKEW_TOO_GREAT Error 用户 ${UserName} 无法登录,引擎时钟不会与目录服务同步。请联系系统管理员。
1174 AUTH_FAILED_NO_KDCS_FOUND Error 用户 ${UserName} 无法登录,无法找到身份验证域。请联系系统管理员。
1175 AUTH_FAILED_DNS_ERROR Error 用户 ${UserName} 无法登录,DNS 配置中出现错误。请联系系统管理员。
1176 AUTH_FAILED_OTHER Error 用户 ${UserName} 无法登录,未知 kerberos 错误。请联系系统管理员。
1177 AUTH_FAILED_DNS_COMMUNICATION_ERROR Error 用户 ${UserName} 无法登录,无法为 SRV 记录查找 DNS。请联系系统管理员。
1178 AUTH_FAILED_CONNECTION_TIMED_OUT Error 用户 ${UserName} 无法登录,到 LDAP 服务器的连接超时。请联系系统管理员。
1179 AUTH_FAILED_WRONG_REALM Error 用户 ${UserName} 无法登录,请验证您的域名。
1180 AUTH_FAILED_CONNECTION_ERROR Error 用户 ${UserName} 无法登录、拒绝连接或存在一些配置问题。可能的 DNS 错误。请联系系统管理员。
1181 AUTH_FAILED_CANNOT_FIND_LDAP_SERVER_FOR_DOMAIN Error 用户 ${UserName} 无法登录,无法查找域的有效 LDAP 服务器。请联系系统管理员。
1182 AUTH_FAILED_NO_USER_INFORMATION_WAS_FOUND Error 用户 ${UserName} 无法登录,找不到任何用户信息。请联系系统管理员。
1183 AUTH_FAILED_CLIENT_NOT_FOUND_IN_KERBEROS_DATABASE Error 用户 ${UserName} 无法登录,在域中未找到用户。请联系系统管理员。
1184 AUTH_FAILED_INTERNAL_KERBEROS_ERROR Error 用户 ${UserName} 无法登录,在 JVM 的 Kerberos 实施中引入了一个内部错误。请联系系统管理员。
1185 USER_ACCOUNT_EXPIRED Error ${UserName} 的帐户已过期。请联系系统管理员。
1186 IMPORTEXPORT_NO_PROXY_HOST_AVAILABLE_IN_DC Error Data Center '${StoragePoolName}' 中无法充当检索远程虚拟机信息的代理(User: ${UserName})。
1187 IMPORTEXPORT_HOST_CANNOT_SERVE_AS_PROXY Error 主机 ${VdsName} 不能用作代理来检索远程虚拟机信息(用户:${UserName})。
1188 IMPORTEXPORT_PARTIAL_VM_DISKS_NOT_EXISTS 警告 以下磁盘无法验证,且不会成为导入的虚拟机 ${VmName}: '${DiskAliases}'(User: ${UserName})的一部分。
1189 IMPORTEXPORT_IMPORT_VM_FAILED_UPDATING_OVF Error 将 Vm ${VmName} 导入到 Data Center ${StoragePoolName} 失败,Cluster ${ClusterName} 无法更新导出中的虚拟机数据。
1190 USER_RESTORE_FROM_SNAPSHOT_START info 从用户 ${UserName} 启动的快照中恢复 VM ${VmName}。
1191 VM_DISK_ALREADY_CHANGED info CD ${DiskName} 已插入到 VM ${VmName},跳过磁盘更改操作。用户:${UserName}.
1192 VM_DISK_ALREADY_EJECTED info CD 已从 VM ${VmName} 中弹出,磁盘更改操作被跳过。用户:${UserName}.
1193 IMPORTEXPORT_STARTING_CONVERT_VM info 启动以转换 Vm ${VmName}
1194 IMPORTEXPORT_CONVERT_FAILED info 转换 Vm ${VmName} 失败
1195 IMPORTEXPORT_CANNOT_GET_OVF info 获取已转换 Vm ${VmName} 的配置失败
1196 IMPORTEXPORT_INVALID_OVF info 处理转换 Vm ${VmName} 的配置失败
1197 IMPORTEXPORT_PARTIAL_TEMPLATE_DISKS_NOT_EXISTS 警告 无法验证以下磁盘,且不会成为导入的模板 ${VmTemplateName}: '${DiskAliases}'(User: ${UserName})的一部分。
1200 ENTITY_RENAMED info ${EntityType} ${OldEntityName} 从 ${OldEntityName} 重命名为 ${NewEntityName} by ${UserName}。
1201 UPDATE_HOST_NIC_VFS_CONFIG info 主机 ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置已更新。
1202 UPDATE_HOST_NIC_VFS_CONFIG_FAILED Error 在 host ${VdsName} 上更新网络接口卡 ${NicName} 的 VF 配置失败。
1203 ADD_VFS_CONFIG_NETWORK info 网络 ${NetworkName} 添加到 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中。
1204 ADD_VFS_CONFIG_NETWORK_FAILED info 将 ${NetworkName} 添加到 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中失败。
1205 REMOVE_VFS_CONFIG_NETWORK info 网络 ${NetworkName} 从 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中删除。
1206 REMOVE_VFS_CONFIG_NETWORK_FAILED info 从 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中删除 ${NetworkName} 失败。
1207 ADD_VFS_CONFIG_LABEL info 标签 ${Label} 添加到 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中。
1208 ADD_VFS_CONFIG_LABEL_FAILED info 将 ${Label} 添加到 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中失败。
1209 REMOVE_VFS_CONFIG_LABEL info 标签 ${Label} 从 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中删除。
1210 REMOVE_VFS_CONFIG_LABEL_FAILED info 从 host ${VdsName} 上的网络接口卡 ${NicName} 的 VF 配置中删除 ${Label} 失败。
1211 USER_REDUCE_DOMAIN_DEVICES_STARTED info 开始减少 Storage ${StorageDomainName} 设备。(用户:${UserName})。
1212 USER_REDUCE_DOMAIN_DEVICES_FAILED_METADATA_DEVICES Error 无法减少 Storage ${StorageDomainName}。以下设备包含域元数据 ${deviceIds},无法从域减少。(用户:${UserName})。
1213 USER_REDUCE_DOMAIN_DEVICES_FAILED Error 无法减少 Storage ${StorageDomainName}。(用户:${UserName})。
1214 USER_REDUCE_DOMAIN_DEVICES_SUCCEEDED info 存储 ${StorageDomainName} 已减少。(用户:${UserName})。
1215 USER_REDUCE_DOMAIN_DEVICES_FAILED_NO_FREE_SPACE Error 无法减少 Storage ${StorageDomainName}。存储域的目标设备上没有足够的空间。(用户:${UserName})。
1216 USER_REDUCE_DOMAIN_DEVICES_FAILED_TO_GET_DOMAIN_INFO Error 无法减少 Storage ${StorageDomainName}。获取域信息失败。(用户:${UserName})。
1217 CANNOT_IMPORT_VM_WITH_LEASE_COMPAT_VERSION 警告 VM ${VmName} 定义了虚拟机租用,如果没有虚拟机兼容性版本,则不支持虚拟机租用。
1218 CANNOT_IMPORT_VM_WITH_LEASE_STORAGE_DOMAIN 警告 虚拟机 ${VmName} 尚未定义虚拟机租用,如果没有将其作为租期的存储域不存在或未激活。
1300 NUMA_ADD_VM_NUMA_NODE_SUCCESS info 成功添加 VM NUMA 节点。
1301 NUMA_ADD_VM_NUMA_NODE_FAILED Error 添加 VM NUMA 节点失败。
1310 NUMA_UPDATE_VM_NUMA_NODE_SUCCESS info 成功更新 VM NUMA 节点。
1311 NUMA_UPDATE_VM_NUMA_NODE_FAILED Error 更新 VM NUMA 节点失败。
1320 NUMA_REMOVE_VM_NUMA_NODE_SUCCESS info 成功删除 VM NUMA 节点。
1321 NUMA_REMOVE_VM_NUMA_NODE_FAILED Error 删除 VM NUMA 节点失败。
1322 USER_ADD_VM_TEMPLATE_CREATE_TEMPLATE_FAILURE Error 无法从 VM ${VmName} 创建 Template ${VmTemplateName} 或其磁盘失败。
1323 USER_ADD_VM_TEMPLATE_ASSIGN_ILLEGAL_FAILURE Error 为密封准备模板 ${VmTemplateName} 失败(VM: ${VmName})。
1324 USER_ADD_VM_TEMPLATE_SEAL_FAILURE Error 封装模板 ${VmTemplateName} 失败(VM: ${VmName})。
1325 USER_SPARSIFY_IMAGE_START info 开始使用 sparsify ${DiskAlias}
1326 USER_SPARSIFY_IMAGE_FINISH_SUCCESS info ${DiskAlias} sparsified successfully.
1327 USER_SPARSIFY_IMAGE_FINISH_FAILURE Error sparsify ${DiskAlias} 失败。
1328 USER_AMEND_IMAGE_START info started to amend ${DiskAlias}
1329 USER_AMEND_IMAGE_FINISH_SUCCESS info ${DiskAlias} 已被成功修改。
1330 USER_AMEND_IMAGE_FINISH_FAILURE Error 未能修改 ${DiskAlias}。
1402 USER_LOGIN_ON_BEHALF_FAILED Error 未能代表 - ${LoginOnBehalfLogInfo} 执行登录。
2000 USER_HOTPLUG_DISK info VM ${VmName} disk ${DiskAlias} 被 ${UserName} 插入。
2001 USER_FAILED_HOTPLUG_DISK Error 将 disk ${DiskAlias} 插入 VM ${VmName} 失败(User: ${UserName})。
2002 USER_HOTUNPLUG_DISK info VM ${VmName} disk ${DiskAlias} 被 ${UserName} 未插入。
2003 USER_FAILED_HOTUNPLUG_DISK Error 无法从 VM ${VmName}(User: ${UserName})中拔出 disk ${DiskAlias} 失败。
2004 USER_COPIED_DISK info 用户 ${UserName} 将磁盘 ${DiskAlias} 复制到域 ${StorageDomainName}。
2005 USER_FAILED_COPY_DISK Error 用户 ${UserName} 无法将磁盘 ${DiskAlias} 复制到域 ${StorageDomainName}。
2006 USER_COPIED_DISK_FINISHED_SUCCESS info 用户 ${UserName} 完成将磁盘 ${DiskAlias} 复制到域 ${StorageDomainName}。
2007 USER_COPIED_DISK_FINISHED_FAILURE Error 用户 ${UserName} 完成错误,并将 disk ${DiskAlias} 复制到域 ${StorageDomainName}。
2008 USER_MOVED_DISK info 用户 ${UserName} 将磁盘 ${DiskAlias} 移到域 ${StorageDomainName}。
2009 USER_FAILED_MOVED_VM_DISK Error 用户 ${UserName} 无法将磁盘 ${DiskAlias} 移到 domain ${StorageDomainName}。
2010 USER_MOVED_DISK_FINISHED_SUCCESS info 用户 ${UserName} 完成将磁盘 ${DiskAlias} 移到 domain ${StorageDomainName}。
2011 USER_MOVED_DISK_FINISHED_FAILURE Error 用户 ${UserName} 无法将磁盘 ${DiskAlias} 移到 domain ${StorageDomainName}。
2012 USER_FINISHED_REMOVE_DISK_NO_DOMAIN info 磁盘 ${DiskAlias} 已被成功删除(User ${UserName})。
2013 USER_FINISHED_FAILED_REMOVE_DISK_NO_DOMAIN 警告 删除 disk ${DiskAlias}(User ${UserName})失败。
2014 USER_FINISHED_REMOVE_DISK info 磁盘 ${DiskAlias} 成功从域 ${StorageDomainName}(User ${UserName})中删除。
2015 USER_FINISHED_FAILED_REMOVE_DISK 警告 从存储域 ${StorageDomainName}(User: ${UserName})中删除 disk ${DiskAlias} 失败。
2016 USER_ATTACH_DISK_TO_VM info 磁盘 ${DiskAlias} 被 ${UserName} 成功附加到虚拟机 ${VmName}。
2017 USER_FAILED_ATTACH_DISK_TO_VM Error 将 Disk ${DiskAlias} 附加到 VM ${VmName}(User: ${UserName})失败。
2018 USER_DETACH_DISK_FROM_VM info 磁盘 ${DiskAlias} 被 ${UserName} 成功从 VM ${VmName} 中分离。
2019 USER_FAILED_DETACH_DISK_FROM_VM Error 无法从 VM ${VmName}(User: ${UserName})中分离 Disk ${DiskAlias} 失败。
2020 USER_ADD_DISK info '${DiskAlias}' 的 add-Disk 操作是由 ${UserName} 启动的。
2021 USER_ADD_DISK_FINISHED_SUCCESS info 已成功添加磁盘 '${DiskAlias}'。
2022 USER_ADD_DISK_FINISHED_FAILURE Error add-Disk 操作无法完成。
2023 USER_FAILED_ADD_DISK Error add-Disk 操作失败(用户:${UserName})。
2024 USER_RUN_UNLOCK_ENTITY_SCRIPT info
2025 USER_MOVE_IMAGE_GROUP_FAILED_TO_DELETE_SRC_IMAGE 警告 在移动操作期间,从源存储域 ${StorageDomainName} 中删除 ${DiskAlias} 时可能出现故障。存储域可以从可能的左侧(User:${UserName})手动清理。
2026 USER_MOVE_IMAGE_GROUP_FAILED_TO_DELETE_DST_IMAGE 警告 在 move 操作失败后,从目标 Storage Domain ${StorageDomainName} 中清除可能的 ${DiskAlias} 失败,以正确将镜像复制到其中。存储域可以从可能的左侧(User:${UserName})手动清理。
2027 USER_IMPORT_IMAGE info 用户 ${UserName} 将镜像 ${RepoImageName} 导入到域 ${StorageDomainName}。
2028 USER_IMPORT_IMAGE_FINISHED_SUCCESS info 用户 ${UserName} 成功将镜像 ${RepoImageName} 导入到域 ${StorageDomainName}。
2029 USER_IMPORT_IMAGE_FINISHED_FAILURE Error 用户 ${UserName} 无法将镜像 ${RepoImageName} 导入到域 ${StorageDomainName}。
2030 USER_EXPORT_IMAGE info 用户 ${UserName} 将镜像 ${RepoImageName} 导出为域 ${DestinationStorageDomainName}。
2031 USER_EXPORT_IMAGE_FINISHED_SUCCESS info 用户 ${UserName} 成功地将镜像 ${RepoImageName} 导出到域 ${DestinationStorageDomainName}。
2032 USER_EXPORT_IMAGE_FINISHED_FAILURE Error 用户 ${UserName} 无法将镜像 ${RepoImageName} 导出到域 ${DestinationStorageDomainName}。
2033 HOT_SET_NUMBER_OF_CPUS info 热插拔 CPU:将 VM ${vmName} 上的 CPU 数量从 ${previousNumberOfCpus} 改为 ${numberOfCpus}
2034 FAILED_HOT_SET_NUMBER_OF_CPUS Error 热设置到 VM ${vmName} 的 CPU 数量失败。底层错误消息:${ErrorMessage}
2035 USER_ISCSI_BOND_HOST_RESTART_WARNING 警告 以下网络已从 iSCSI 绑定 ${IscsiBondName}: ${NetworkNames} 中删除。要使这些更改生效,主机必须移到维护并再次激活。
2036 ADD_DISK_INTERNAL info 系统启动 '${DiskAlias}' 的 add-Disk 操作。
2037 ADD_DISK_INTERNAL_FAILURE info '${DiskAlias}' 的 add-Disk 操作无法完成。
2038 USER_REMOVE_DISK_INITIATED info 从域 ${StorageDomainName} 中删除 Disk ${DiskAlias} 由 ${UserName} 启动。
2039 HOT_SET_MEMORY info Hotset memory:将 VM ${vmName} 上的内存量从 ${previousMem} 改为 ${newMem}
2040 FAILED_HOT_SET_MEMORY Error 热设置内存到 VM ${vmName} 失败。底层错误消息:${ErrorMessage}
2041 DISK_PREALLOCATION_FAILED Error
2042 USER_FINISHED_REMOVE_DISK_ATTACHED_TO_VMS info 与虚拟机 ${VmNames} 关联的磁盘 ${DiskAlias} 成功从域 ${StorageDomainName}(User ${UserName})中删除。
2043 USER_FINISHED_REMOVE_DISK_ATTACHED_TO_VMS_NO_DOMAIN info 与虚拟机 ${VmNames} 关联的磁盘 ${DiskAlias} 已被成功删除(User ${UserName})。
2044 USER_REMOVE_DISK_ATTACHED_TO_VMS_INITIATED info 从域 ${StorageDomainName} 中删除与 VM ${VmNames} 关联的 Disk ${DiskAlias} 由 ${UserName} 启动。
2045 USER_COPY_IMAGE_GROUP_FAILED_TO_DELETE_DST_IMAGE 警告 在操作失败后,从目标存储域 ${StorageDomainName} 中清除可能的 ${DiskAlias} 失败。存储域可以从可能的左侧(User:${UserName})手动清理。
3000 USER_ADD_QUOTA info quota ${QuotaName} 已被 ${UserName} 添加。
3001 USER_FAILED_ADD_QUOTA Error 添加 Quota ${QuotaName} 失败。该操作由 ${UserName} 启动。
3002 USER_UPDATE_QUOTA info quota ${QuotaName} 已被 ${UserName} 更新。
3003 USER_FAILED_UPDATE_QUOTA Error 更新 Quota ${QuotaName} 失败。该操作由 ${UserName} 启动。
3004 USER_DELETE_QUOTA info quota ${QuotaName} 已被 ${UserName} 删除。
3005 USER_FAILED_DELETE_QUOTA Error 删除 Quota ${QuotaName} 失败。该操作由 ${UserName} 启动。
3006 USER_EXCEEDED_QUOTA_CLUSTER_GRACE_LIMIT Error 超过了 cluster-Quota ${QuotaName} 限制,且操作被阻止。利用率:${Utilization},请求:${Requested} - 请选择不同的配额或联系您的管理员扩展配额。
3007 USER_EXCEEDED_QUOTA_CLUSTER_LIMIT 警告 超过 cluster-Quota ${QuotaName} 限制并输入 grace 区域。利用率:${Utilization}(建议选择不同的配额或联系您的管理员扩展配额)。
3008 USER_EXCEEDED_QUOTA_CLUSTER_THRESHOLD 警告 cluster-Quota ${QuotaName} 大约被超过。利用率:${Utilization}
3009 USER_EXCEEDED_QUOTA_STORAGE_GRACE_LIMIT Error storage-Quota ${QuotaName} 限制超过和操作被禁止。utilization (used/requested): ${CurrentStorage}%/${Requested}% - 请选择不同的配额或联系您的管理员扩展配额。
3010 USER_EXCEEDED_QUOTA_STORAGE_LIMIT 警告 超过 storage-Quota ${QuotaName} 限制并输入 grace 区域。利用率:${CurrentStorage}%(建议选择不同的配额或联系您的管理员扩展配额)。
3011 USER_EXCEEDED_QUOTA_STORAGE_THRESHOLD 警告 storage-Quota ${QuotaName} 大约被超过。使用率:${CurrentStorage}%
3012 QUOTA_STORAGE_RESIZE_LOWER_THEN_CONSUMPTION 警告 storage-Quota ${QuotaName} :为此配额设置的新大小小于当前磁盘使用率。
3013 MISSING_QUOTA_STORAGE_PARAMETERS_PERMISSIVE_MODE 警告 磁盘缺少配额,从 Permissive (Audit)模式后继续。
3014 MISSING_QUOTA_CLUSTER_PARAMETERS_PERMISSIVE_MODE 警告 VM ${VmName} 缺少配额,从 Permissive (Audit)模式后继续。
3015 USER_EXCEEDED_QUOTA_CLUSTER_GRACE_LIMIT_PERMISSIVE_MODE 警告 超过了 cluster-Quota ${QuotaName} 限制,自 Permissive (Audit)模式后继续。利用率:${Utilization},请求:${Requested} - 请选择不同的配额或联系您的管理员扩展配额。
3016 USER_EXCEEDED_QUOTA_STORAGE_GRACE_LIMIT_PERMISSIVE_MODE 警告 存储-Quota ${QuotaName} 限制超过,自 Permissive (Audit)模式后继续。utilization (used/requested): ${CurrentStorage}%/${Requested}% - 请选择不同的配额或联系您的管理员扩展配额。
3017 USER_IMPORT_IMAGE_AS_TEMPLATE info 用户 ${UserName} 将镜像 ${RepoImageName} 导入模板 ${TemplateName} 到 domain ${StorageDomainName}。
3018 USER_IMPORT_IMAGE_AS_TEMPLATE_FINISHED_SUCCESS info 用户 ${UserName} 成功将镜像 ${RepoImageName} 作为模板 ${TemplateName} 导入到域 ${StorageDomainName}。
3019 USER_IMPORT_IMAGE_AS_TEMPLATE_FINISHED_FAILURE Error 用户 ${UserName} 无法将镜像 ${RepoImageName} 作为模板 ${TemplateName} 导入到 domain ${StorageDomainName}。
4000 GLUSTER_VOLUME_CREATE info 在集群 ${clusterName} 上创建 Gluster 卷 ${glusterVolumeName}。
4001 GLUSTER_VOLUME_CREATE_FAILED Error 在集群 ${clusterName} 上创建 Gluster Volume ${glusterVolumeName} 失败。
4002 GLUSTER_VOLUME_OPTION_ADDED info 卷选项 ${Key}
4003 GLUSTER_VOLUME_OPTION_SET_FAILED Error 卷选项 ${Key}
4004 GLUSTER_VOLUME_START info 启动集群 ${clusterName} 的 Gluster Volume ${glusterVolumeName}。
4005 GLUSTER_VOLUME_START_FAILED Error 无法启动集群 ${clusterName} 的 Gluster Volume ${glusterVolumeName}。
4006 GLUSTER_VOLUME_STOP info Gluster Volume ${glusterVolumeName} 在集群 ${clusterName} 上停止。
4007 GLUSTER_VOLUME_STOP_FAILED Error 无法在集群 ${clusterName} 上停止 Gluster Volume ${glusterVolumeName}。
4008 GLUSTER_VOLUME_OPTIONS_RESET info 卷选项 ${Key}
4009 GLUSTER_VOLUME_OPTIONS_RESET_FAILED Error 无法在集群 ${clusterName} 上重置 Gluster 卷 ${glusterVolumeName} 选项。
4010 GLUSTER_VOLUME_DELETE info 集群 ${clusterName} 上删除了 Gluster 卷 ${glusterVolumeName}。
4011 GLUSTER_VOLUME_DELETE_FAILED Error 无法删除集群 ${clusterName} 上的 Gluster Volume ${glusterVolumeName}。
4012 GLUSTER_VOLUME_REBALANCE_START info Gluster Volume ${glusterVolumeName} 在集群 ${clusterName} 上重新平衡启动。
4013 GLUSTER_VOLUME_REBALANCE_START_FAILED Error 无法在集群 ${clusterName} 上重新平衡 Gluster Volume ${glusterVolumeName}。
4014 GLUSTER_VOLUME_REMOVE_BRICKS info brick 从集群 ${clusterName} 的 Gluster Volume ${glusterVolumeName} 中删除。
4015 GLUSTER_VOLUME_REMOVE_BRICKS_FAILED Error 无法从集群 ${clusterName} 的 Gluster Volume ${glusterVolumeName} 中删除 brick。
4016 GLUSTER_VOLUME_REPLACE_BRICK_FAILED Error 在集群 ${clusterName} 上替换 Gluster Volume ${glusterVolumeName} Brick failed failed
4017 GLUSTER_VOLUME_REPLACE_BRICK_START info Gluster Volume ${glusterVolumeName} 替换 Brick started on cluster ${clusterName}。
4018 GLUSTER_VOLUME_REPLACE_BRICK_START_FAILED Error 无法在集群 ${clusterName} 上启动 Gluster Volume ${glusterVolumeName} 替换 Brick。
4019 GLUSTER_VOLUME_ADD_BRICK info 添加至集群 ${glusterVolumeName} 的 volume ${glusterVolumeName} 的 ${NoOfBricks} brick.
4020 GLUSTER_VOLUME_ADD_BRICK_FAILED Error 未能将 brick 添加到集群 ${clusterName} 的 Gluster 卷 ${glusterVolumeName} 中。
4021 GLUSTER_SERVER_REMOVE_FAILED Error 从 Cluster ${ClusterName} 中删除 host ${VdsName} 失败。
4022 GLUSTER_VOLUME_PROFILE_START info Gluster Volume ${glusterVolumeName} 分析在集群 ${clusterName} 上启动。
4023 GLUSTER_VOLUME_PROFILE_START_FAILED Error 无法在集群 ${clusterName} 的 gluster 卷 ${glusterVolumeName} 上开始性能分析。
4024 GLUSTER_VOLUME_PROFILE_STOP info Gluster Volume ${glusterVolumeName} 分析在集群 ${clusterName} 上停止。
4025 GLUSTER_VOLUME_PROFILE_STOP_FAILED Error 无法停止在集群 ${clusterName} 的 gluster 卷 ${glusterVolumeName} 上进行提供。
4026 GLUSTER_VOLUME_CREATED_FROM_CLI 警告 在集群 ${ClusterName} 上检测到新卷 ${glusterVolumeName},并将其添加到 engine DB 中。
4027 GLUSTER_VOLUME_DELETED_FROM_CLI info 在集群 ${ClusterName} 上检测到删除卷 ${glusterVolumeName},并从引擎 DB 中删除。
4028 GLUSTER_VOLUME_OPTION_SET_FROM_CLI 警告 检测到新选项 ${key}
4029 GLUSTER_VOLUME_OPTION_RESET_FROM_CLI 警告 检测到的选项 ${key}
4030 GLUSTER_VOLUME_PROPERTIES_CHANGED_FROM_CLI 警告 检测到集群 ${ClusterName} 的卷 ${glusterVolumeName} 中的更改,并在 engine DB 中更新它们。
4031 GLUSTER_VOLUME_BRICK_ADDED_FROM_CLI 警告 在集群 ${ClusterName} 的 volume ${glusterVolumeName} 上检测到新的 brick ${brick},并将其添加到 engine DB 中。
4032 GLUSTER_VOLUME_BRICK_REMOVED_FROM_CLI info 检测到从集群 ${ClusterName} 的 Volume ${glusterVolumeName} 中删除的 brick ${brick},并将其从引擎 DB 中删除。
4033 GLUSTER_SERVER_REMOVED_FROM_CLI info 检测到的服务器 ${VdsName} 从 Cluster ${ClusterName} 中删除,并将其从 engine DB 中删除。
4034 GLUSTER_VOLUME_INFO_FAILED Error 无法从服务器 ${VdsName} 获取 gluster 卷列表。
4035 GLUSTER_COMMAND_FAILED Error Gluster 命令 [${Command}] 在 server ${Server} 上失败。
4038 GLUSTER_SERVER_REMOVE info 主机 ${VdsName} 从 Cluster ${ClusterName} 中删除。
4039 GLUSTER_VOLUME_STARTED_FROM_CLI 警告 检测到 Cluster ${ClusterName} 的卷 ${glusterVolumeName} 是否已启动,并使用新的状态更新引擎 DB。
4040 GLUSTER_VOLUME_STOPPED_FROM_CLI 警告 检测到 Cluster ${ClusterName} 的卷 ${glusterVolumeName} 已停止,并使用新的状态更新引擎数据库。
4041 GLUSTER_VOLUME_OPTION_CHANGED_FROM_CLI info 检测到集群 ${ClusterName} 卷 ${glusterVolumeName} 上的选项 ${key} 的值从 ${oldValue} 改为 ${newValue},并将它更新为 engine DB。
4042 GLUSTER_HOOK_ENABLE info 在集群 ${ClusterName} 上启用 Gluster Hook ${GlusterHookName}。
4043 GLUSTER_HOOK_ENABLE_FAILED Error 在集群 ${ClusterName}. ${FailureMessage} 上启用 Gluster Hook ${GlusterHookName} 失败
4044 GLUSTER_HOOK_ENABLE_PARTIAL 警告 在集群 ${ClusterName}. ${FailureMessage} 的一些服务器上启用 Gluster Hook ${GlusterHookName}
4045 GLUSTER_HOOK_DISABLE info 集群 ${ClusterName} 上禁用了 Gluster Hook ${GlusterHookName}。
4046 GLUSTER_HOOK_DISABLE_FAILED Error 在集群 ${ClusterName}. ${FailureMessage} 上禁用 Gluster Hook ${GlusterHookName} 失败
4047 GLUSTER_HOOK_DISABLE_PARTIAL 警告 在集群 ${ClusterName}. ${FailureMessage} 的一些服务器上禁用 Gluster Hook ${GlusterHookName}
4048 GLUSTER_HOOK_LIST_FAILED Error 无法从 Cluster ${ClusterName} 的 ${VdsName} 检索 hook 列表。
4049 GLUSTER_HOOK_CONFLICT_DETECTED 警告 在 Cluster ${ClusterName} 的 hook ${HookName} 中检测到冲突。
4050 GLUSTER_HOOK_DETECTED_NEW info 在 Cluster ${ClusterName} 中检测到新的 hook ${HookName}。
4051 GLUSTER_HOOK_DETECTED_DELETE info 在 Cluster ${ClusterName} 中检测到删除 hook ${HookName}。
4052 GLUSTER_VOLUME_OPTION_MODIFIED info 卷选项 ${Key} 从 ${glusterVolumeName} 上的 ${oldvalue} 改为 ${Value}。
4053 GLUSTER_HOOK_GETCONTENT_FAILED Error 在 Cluster ${ClusterName} 中读取 hook ${HookName} 的内容失败。
4054 GLUSTER_SERVICES_LIST_FAILED Error 无法从服务器 ${VdsName} 获取服务状态。将此服务器上所有服务的状态更新为 UNKNOWN。
4055 GLUSTER_SERVICE_TYPE_ADDED_TO_CLUSTER info 服务类型 ${ServiceType} 没有映射到集群 ${ClusterName}。现在对其进行映射。
4056 GLUSTER_CLUSTER_SERVICE_STATUS_CHANGED info 在集群 ${ClusterName} 上,服务类型 ${ServiceType} 的状态从 ${OldStatus} 改为 ${NewStatus}
4057 GLUSTER_SERVICE_ADDED_TO_SERVER info 服务 ${ServiceName} 没有映射到 server ${VdsName}。现在对其进行映射。
4058 GLUSTER_SERVER_SERVICE_STATUS_CHANGED info server ${VdsName} 上的服务 ${ServiceName} 状态从 ${OldStatus} 改为 ${NewStatus}。现在,在引擎中进行更新.
4059 GLUSTER_HOOK_UPDATED info 在冲突服务器上更新了 Gluster Hook ${GlusterHookName}。
4060 GLUSTER_HOOK_UPDATE_FAILED Error 在冲突的服务器上更新 Gluster Hook ${GlusterHookName} 失败。${FailureMessage}
4061 GLUSTER_HOOK_ADDED info 在冲突服务器上添加了 Gluster Hook ${GlusterHookName}。
4062 GLUSTER_HOOK_ADD_FAILED Error 在冲突的服务器中添加 Gluster Hook ${GlusterHookName} 失败。${FailureMessage}
4063 GLUSTER_HOOK_REMOVED info Gluster Hook ${GlusterHookName} 从集群 ${ClusterName} 中的所有服务器中删除。
4064 GLUSTER_HOOK_REMOVE_FAILED Error 无法从集群 ${ClusterName}. ${FailureMessage} 中删除 Gluster Hook ${GlusterHookName}
4065 GLUSTER_HOOK_REFRESH info 在 Cluster ${ClusterName} 中刷新的 gluster hook。
4066 GLUSTER_HOOK_REFRESH_FAILED Error 在 Cluster ${ClusterName} 中刷新 gluster hook 失败。
4067 GLUSTER_SERVICE_STARTED info ${ServiceType} 服务在集群 ${ClusterName} 的 host ${VdsName} 上启动。
4068 GLUSTER_SERVICE_START_FAILED Error 无法在集群 ${ClusterName} 的 host ${VdsName} 上启动 ${servicetype}。
4069 GLUSTER_SERVICE_STOPPED info ${ServiceType} 服务停止在集群 ${ClusterName} 的 host ${VdsName} 上。
4070 GLUSTER_SERVICE_STOP_FAILED Error 无法在集群 ${ClusterName} 的 host ${VdsName} 上停止 ${servicetype} 服务。
4071 GLUSTER_SERVICES_LIST_NOT_FETCHED info 无法从名为 ${ServiceGroupType} 的 ${ServiceGroupType} 获取服务列表。
4072 GLUSTER_SERVICE_RESTARTED info ${ServiceType} 服务在集群 ${ClusterName} 的 host ${VdsName} 上重新启动。
4073 GLUSTER_SERVICE_RESTART_FAILED Error 无法在集群 ${ClusterName} 的 host ${VdsName} 上重新启动 ${servicetype}。
4074 GLUSTER_VOLUME_OPTIONS_RESET_ALL info 在集群 ${clusterName} 的 ${glusterVolumeName} 上重置所有卷选项。
4075 GLUSTER_HOST_UUID_NOT_FOUND Error 在 Cluster ${ClusterName} 上找不到 server ${VdsName} 的 gluster uuid。
4076 GLUSTER_VOLUME_BRICK_ADDED info host [${brickpath}] on host [${servername}] 添加到 cluster ${clusterName} 的 volume [${glusterVolumeName}]
4077 GLUSTER_CLUSTER_SERVICE_STATUS_ADDED info 集群 ${ClusterName} 上的服务类型 ${ServiceType} 设置为 ${NewStatus}
4078 GLUSTER_VOLUME_REBALANCE_STOP info Gluster Volume ${glusterVolumeName} rebalance stopped of cluster ${clusterName}.
4079 GLUSTER_VOLUME_REBALANCE_STOP_FAILED Error 无法停止为集群 ${clusterName} 的 gluster 卷 ${glusterVolumeName} 重新平衡。
4080 START_REMOVING_GLUSTER_VOLUME_BRICKS info 开始从集群 ${clusterName} 的 Volume ${glusterVolumeName} 中删除 brick
4081 START_REMOVING_GLUSTER_VOLUME_BRICKS_FAILED Error 无法从集群 ${clusterName} 的 Volume ${glusterVolumeName} 中删除 brick
4082 GLUSTER_VOLUME_REMOVE_BRICKS_STOP info 停止从集群 ${clusterName} 的 Volume ${glusterVolumeName} 中删除 brick
4083 GLUSTER_VOLUME_REMOVE_BRICKS_STOP_FAILED Error 无法从集群 ${clusterName} 的 Volume ${glusterVolumeName} 中删除 brick 失败
4084 GLUSTER_VOLUME_REMOVE_BRICKS_COMMIT info Gluster 卷 ${glusterVolumeName} 删除在集群 ${clusterName} 上提交的 brick。${NoOfBricks} brick 从卷 ${glusterVolumeName} 中删除。
4085 GLUSTER_VOLUME_REMOVE_BRICKS_COMMIT_FAILED Error Gluster 卷 ${glusterVolumeName} 删除 brick 无法在集群 ${clusterName} 上提交
4086 GLUSTER_BRICK_STATUS_CHANGED 警告 检测到集群 ${glusterVolumeName} 从 ${oldValue} 到 ${newValue} 的 brick ${brickpath} 状态的变化。
4087 GLUSTER_VOLUME_REBALANCE_FINISHED info 集群 ${clusterName} 的 volume ${glusterVolumeName} 上的 ${action} ${status}。
4088 GLUSTER_VOLUME_MIGRATE_BRICK_DATA_FINISHED info 集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上的 brick ${action} ${status}。请检查以中止或提交。
4089 GLUSTER_VOLUME_REBALANCE_START_DETECTED_FROM_CLI info 从 CLI 检测到在 Cluster ${ClusterName} 的 volume ${glusterVolumeName} 上重新平衡的开始。
4090 START_REMOVING_GLUSTER_VOLUME_BRICKS_DETECTED_FROM_CLI info 从 CLI 检测到在 Cluster ${ClusterName} 卷 ${glusterVolumeName} 上为 brick ${brick} 移除的 brick 开始。
4091 GLUSTER_VOLUME_REBALANCE_NOT_FOUND_FROM_CLI 警告 无法从 CLI 找到在 Cluster ${ClusterName} 的 volume ${glusterVolumeName} 上重新平衡的信息。将它标记为 unknown。
4092 REMOVE_GLUSTER_VOLUME_BRICKS_NOT_FOUND_FROM_CLI 警告 无法找到从 CLI 中删除集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上的 brick 的信息。将它标记为 unknown。
4093 GLUSTER_VOLUME_DETAILS_REFRESH info 集群 ${clusterName} 卷 ${glusterVolumeName} 的刷新详情。
4094 GLUSTER_VOLUME_DETAILS_REFRESH_FAILED Error 刷新集群 ${glusterVolumeName} 卷详情失败。
4095 GLUSTER_HOST_UUID_ALREADY_EXISTS Error Cluster ${ClusterName} 上的主机 ${VdsName} 的 Gluster UUID 已存在。
4096 USER_FORCE_SELECTED_SPM_STOP_FAILED Error 由于未能停止当前 SPM,未能强制选择 ${VdsName} 作为 SPM。
4097 GLUSTER_GEOREP_SESSION_DELETED_FROM_CLI 警告 检测到从集群 ${glusterVolumeName} 卷删除 geo-replication 会话 ${geoRepSessionKey}
4098 GLUSTER_GEOREP_SESSION_DETECTED_FROM_CLI 警告 为集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 检测到新的 geo-replication 会话 ${geoRepSessionKey}。将它添加到引擎.
4099 GLUSTER_GEOREP_SESSION_REFRESH info 刷新了集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 的 geo-replication 会话。
4100 GLUSTER_GEOREP_SESSION_REFRESH_FAILED Error 未能为集群 ${glusterVolumeName} 卷刷新 geo-replication 会话失败。
4101 GEOREP_SESSION_STOP info 集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上的 geo-replication 会话已被停止。
4102 GEOREP_SESSION_STOP_FAILED Error 在集群 ${glusterVolumeName} 的卷 ${glusterVolumeName} 上停止 geo-replication 会话失败
4103 GEOREP_SESSION_DELETED info 集群 ${glusterVolumeName} 卷 ${gluster-replication 会话删除
4104 GEOREP_SESSION_DELETE_FAILED Error 删除集群 ${glusterVolumeName} 上的 geo-replication 会话失败
4105 GLUSTER_GEOREP_CONFIG_SET info geo-rep 会话 ${geoRepSessionKey} 上的配置 ${key} 已设为 ${value}。
4106 GLUSTER_GEOREP_CONFIG_SET_FAILED Error 在 geo-rep 会话 ${geoRepSessionKey} 上将配置 ${key} 设置为 ${value} 失败。
4107 GLUSTER_GEOREP_CONFIG_LIST info 为 geo-replication 会话 ${geoRepSessionKey} 刷新的配置选项.
4108 GLUSTER_GEOREP_CONFIG_LIST_FAILED Error 为 geo-replication 会话 ${geoRepSessionKey} 刷新配置选项失败
4109 GLUSTER_GEOREP_CONFIG_SET_DEFAULT info 配置会话 ${geoRepSessionKey} 的 ${key} 会重置为默认值。
4110 GLUSTER_GEOREP_CONFIG_SET_DEFAULT_FAILED Error 将会话 ${geoRepSessionKey} 的 ${key} 设置为其默认值失败。
4111 GLUSTER_VOLUME_SNAPSHOT_DELETED info Gluster 卷快照 ${snapname} 已删除。
4112 GLUSTER_VOLUME_SNAPSHOT_DELETE_FAILED Error 删除 gluster 卷快照 ${snapname} 失败。
4113 GLUSTER_VOLUME_ALL_SNAPSHOTS_DELETED info 已删除集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 的所有 gluster 卷快照。
4114 GLUSTER_VOLUME_ALL_SNAPSHOTS_DELETE_FAILED Error 未能删除集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 的所有 gluster 卷快照。
4115 GLUSTER_VOLUME_SNAPSHOT_ACTIVATED info 在集群 ${glusterVolumeName} 的 volume ${glusterVolumeName} 上激活 gluster 卷快照 ${snapname}。
4116 GLUSTER_VOLUME_SNAPSHOT_ACTIVATE_FAILED Error 在集群 ${glusterVolumeName} 的 volume ${glusterVolumeName} 上激活 gluster 卷快照 ${snapname} 失败。
4117 GLUSTER_VOLUME_SNAPSHOT_DEACTIVATED info 在集群 ${glusterVolumeName} 的 volume ${glusterVolumeName} 上停用 gluster 卷快照 ${snapname}。
4118 GLUSTER_VOLUME_SNAPSHOT_DEACTIVATE_FAILED Error 在集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上停用 gluster 卷快照 ${snapname} 失败。
4119 GLUSTER_VOLUME_SNAPSHOT_RESTORED info 将集群 ${clusterName} 的卷 ${glusterVolumeName} 恢复到 gluster 卷快照 ${snapname} 的状态。
4120 GLUSTER_VOLUME_SNAPSHOT_RESTORE_FAILED Error 未能将集群 ${clusterName} 的卷 ${glusterVolumeName} 恢复到 gluster 卷快照 ${snapname} 的状态。
4121 GLUSTER_VOLUME_SNAPSHOT_CONFIG_UPDATED info 更新了 Gluster 卷快照配置。
4122 GLUSTER_VOLUME_SNAPSHOT_CONFIG_UPDATE_FAILED Error 更新 gluster 卷快照配置失败。
4123 GLUSTER_VOLUME_SNAPSHOT_CONFIG_UPDATE_FAILED_PARTIALLY Error 更新 gluster 卷快照配置失败:${failedSnapshotConfigs}。
4124 NEW_STORAGE_DEVICE_DETECTED info 在主机 ${VdsName} 上找到新的存储设备 ${storageDevice},并将其添加到 engine DB 中"。
4125 STORAGE_DEVICE_REMOVED_FROM_THE_HOST info 在主机 ${VdsName} 上检测到删除存储设备 ${storageDevice},并从引擎 DB 中删除。
4126 SYNC_STORAGE_DEVICES_IN_HOST info 从主机 ${VdsName} 手动同步存储设备
4127 SYNC_STORAGE_DEVICES_IN_HOST_FAILED Error 从主机 ${VdsName} 同步存储设备失败
4128 GEOREP_OPTION_SET_FROM_CLI 警告 检测到新选项 ${key}
4129 GEOREP_OPTION_CHANGED_FROM_CLI 警告 对于集群 ${glusterVolumeName} 的 volume ${glusterVolumeName} 的 geo-replication 会话,检测到选项 ${key} 选项的值的变化,并将它更新为 engine。
4130 GLUSTER_MASTER_VOLUME_STOP_FAILED_DURING_SNAPSHOT_RESTORE Error 在快照恢复过程中,无法停止集群 ${clusterName} 的 master 卷 ${glusterVolumeName}。
4131 GLUSTER_MASTER_VOLUME_SNAPSHOT_RESTORE_FAILED Error 无法恢复集群 ${clusterName} 的 master 卷 ${glusterVolumeName}。
4132 GLUSTER_VOLUME_SNAPSHOT_CREATED info 为集群 ${glusterVolumeName} 的卷 ${glusterVolumeName} 创建的快照 ${snapname}。
4133 GLUSTER_VOLUME_SNAPSHOT_CREATE_FAILED Error 无法为集群 ${clusterName} 的卷 ${glusterVolumeName} 创建快照。
4134 GLUSTER_VOLUME_SNAPSHOT_SCHEDULED info 在集群 ${clusterName} 的 volume ${glusterVolumeName} 上调度的快照。
4135 GLUSTER_VOLUME_SNAPSHOT_SCHEDULE_FAILED Error 在集群 ${clusterName} 的卷 ${glusterVolumeName} 上调度快照失败。
4136 GLUSTER_VOLUME_SNAPSHOT_RESCHEDULED info 在集群 ${clusterName} 的 volume ${glusterVolumeName} 上重新调度快照。
4137 GLUSTER_VOLUME_SNAPSHOT_RESCHEDULE_FAILED Error 在集群 ${clusterName} 的卷 ${glusterVolumeName} 上重新调度快照失败。
4138 CREATE_GLUSTER_BRICK info brick ${brickName} 在集群 ${clusterName} 的主机 ${vdsName} 上成功创建。
4139 CREATE_GLUSTER_BRICK_FAILED Error 在集群 ${vdsName} 的 host ${vdsName} 上创建 brick ${brickName} 失败。
4140 GLUSTER_GEO_REP_PUB_KEY_FETCH_FAILED Error 获取公钥失败。
4141 GLUSTER_GET_PUB_KEY info 获取的公钥.
4142 GLUSTER_GEOREP_PUBLIC_KEY_WRITE_FAILED Error 将公钥写入 ${VdsName} 失败
4143 GLUSTER_WRITE_PUB_KEYS info 写入 ${VdsName} 的公钥
4144 GLUSTER_GEOREP_SETUP_MOUNT_BROKER_FAILED Error 在 slave 卷 ${geoRepUserName} 上为用户 ${geoRepUserName} 设置 geo-replication 挂载代理失败。
4145 GLUSTER_SETUP_GEOREP_MOUNT_BROKER info 在从卷 ${geoRepSlaveVolumeName} 上为用户 ${geoRepUserName} 设置 geo-replication 挂载代理。
4146 GLUSTER_GEOREP_SESSION_CREATE_FAILED Error 在 master 卷 : ${glusterVolumeName} 和 slave 卷 : ${geoRepSlaveVolumeName} 之间创建 geo-replication 会话失败。
4147 CREATE_GLUSTER_VOLUME_GEOREP_SESSION info 在 master 卷 : ${glusterVolumeName} 和从卷 : ${geoRepSlaveVolumeName} 之间创建 geo-replication 会话。
4148 GLUSTER_VOLUME_SNAPSHOT_SOFT_LIMIT_REACHED info 在集群 ${clusterName} 上为卷 ${glusterVolumeName} 达到 Gluster 卷快照软限制。
4149 HOST_FEATURES_INCOMPATIBILE_WITH_CLUSTER Error 主机 ${VdsName} 不遵循集群 ${ClusterName} 所支持的功能列表。主机不支持 ${UnSupportedFeature}
4150 GLUSTER_VOLUME_SNAPSHOT_SCHEDULE_DELETED info 为 ${clusterName} 的卷 ${glusterVolumeName} 删除快照调度。
4151 GLUSTER_BRICK_STATUS_DOWN info 集群 ${ClusterName} 上卷 ${glusterVolumeName} 的 brick ${brickpath} 的状态为 down。
4152 GLUSTER_VOLUME_SNAPSHOT_DETECTED_NEW info 在集群 ${ClusterName} 上为卷 ${glusterVolumeName} 找到新的 gluster 卷快照 ${snapname},并将其添加到 engine DB 中"。
4153 GLUSTER_VOLUME_SNAPSHOT_DELETED_FROM_CLI info 在集群 ${ClusterName} 上为卷 ${glusterVolumeName} 检测到 gluster 卷快照 ${snapname} 删除,并从引擎 DB 中删除。
4154 GLUSTER_VOLUME_SNAPSHOT_CLUSTER_CONFIG_DETECTED_NEW info 在集群 ${ClusterName} 上找到新的 gluster 卷快照配置 ${snapConfigName},并将其添加到 engine DB"。
4155 GLUSTER_VOLUME_SNAPSHOT_VOLUME_CONFIG_DETECTED_NEW info 在集群 ${ClusterName} 上为卷 ${glusterVolumeName} 找到新的 gluster volume snapshot configuration ${snapConfigName} 的值为 ${snapConfigValue},并将其添加到 engine DB"。
4156 GLUSTER_VOLUME_SNAPSHOT_HARD_LIMIT_REACHED info 在集群 ${clusterName} 上为卷 ${glusterVolumeName} 达到 Gluster 卷快照硬限制。
4157 GLUSTER_CLI_SNAPSHOT_SCHEDULE_DISABLE_FAILED Error 在集群 ${clusterName} 上禁用基于 gluster CLI 的快照调度失败。
4158 GLUSTER_CLI_SNAPSHOT_SCHEDULE_DISABLED info 在集群 ${clusterName} 上成功禁用 gluster CLI。
4159 SET_UP_PASSWORDLESS_SSH info 在远程卷 ${geoRepUserName} 的节点中为用户 ${geoRepUserName} 设置免密码 SSH,来自卷 ${glusterVolumeName} 的节点。
4160 SET_UP_PASSWORDLESS_SSH_FAILED Error 在远程卷 ${geoRepUserName} 的节点中为用户 ${geoRepSlaveVolumeName} 设置无密码 ssh 失败。
4161 GLUSTER_VOLUME_TYPE_UNSUPPORTED 警告 在集群 ${Cluster} 上检测到类型为 ${glusterVolumeType} 的卷 ${glusterVolumeType},并且引擎没有完全支持它。
4162 GLUSTER_VOLUME_BRICK_REPLACED info 将 brick '${brick}' 替换为集群 ${clusterName} 上的 Gluster Volume ${glusterVolumeName} 的新 brick '${newBrick}'
4163 GLUSTER_SERVER_STATUS_DISCONNECTED info 集群 ${clusterName} 上的 Gluster 服务器 ${vdsName} 设置为 DISCONNECTED。
4164 GLUSTER_STORAGE_DOMAIN_SYNC_FAILED info 将数据从存储域 ${storageDomainName} 同步到远程位置失败。
4165 GLUSTER_STORAGE_DOMAIN_SYNCED info 成功将数据从存储域 ${storageDomainName} 同步到远程位置。
4166 GLUSTER_STORAGE_DOMAIN_SYNC_STARTED info 成功启动数据从存储域 ${storageDomainName} 同步到远程位置。
4167 STORAGE_DOMAIN_DR_DELETED Error 删除了存储域 ${storageDomainName} 的数据同步调度,作为底层 geo-replication 会话 ${geoRepSessionKey} 已被删除。
4436 GLUSTER_SERVER_ADD_FAILED Error 将 host ${VdsName} 添加到 Cluster ${ClusterName}. ${ErrorMessage} 中失败
4437 GLUSTER_SERVERS_LIST_FAILED Error 在 Cluster ${ClusterName}. ${ErrorMessage} 上从 server ${VdsName} 获取 gluster peer 列表失败
4595 GLUSTER_VOLUME_GEO_REP_START_FAILED_EXCEPTION Error 在集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上启动 geo-replication 会话失败
4596 GLUSTER_VOLUME_GEO_REP_START info 集群 ${clusterName} 的卷 ${glusterVolumeName} 上的 geo-replication 会话已启动。
4597 GLUSTER_VOLUME_GEO_REP_PAUSE_FAILED Error 在集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上暂停 geo-replication 会话失败
4598 GLUSTER_VOLUME_GEO_REP_RESUME_FAILED Error 在集群 ${glusterVolumeName} 的卷 ${glusterVolumeName} 上恢复 geo-replication 会话失败
4599 GLUSTER_VOLUME_GEO_REP_RESUME info 集群 ${clusterName} 的卷 ${glusterVolumeName} 上的 geo-replication 会话已被恢复。
4600 GLUSTER_VOLUME_GEO_REP_PAUSE info 集群 ${glusterVolumeName} 卷 ${glusterVolumeName} 上的 geo-replication 会话已暂停。
9000 VDS_ALERT_FENCE_IS_NOT_CONFIGURED info 验证 Host ${VdsName} 的电源管理配置失败。
9001 VDS_ALERT_FENCE_TEST_FAILED info 对于 Host ${VdsName}.${Reason},电源管理测试失败
9002 VDS_ALERT_FENCE_OPERATION_FAILED info 电源隔离主机 ${VdsName} 失败。请检查主机状态及其电源管理设置,然后手动重启并单击"确认主机崩溃"
9003 VDS_ALERT_FENCE_OPERATION_SKIPPED info 主机 ${VdsName} 变得没有响应。它没有配置电源管理。请检查主机状态,手动重新启动,然后单击"确认主机已重新启动"
9004 VDS_ALERT_FENCE_NO_PROXY_HOST info 数据中心中没有其他主机来测试电源管理设置。
9005 VDS_ALERT_FENCE_STATUS_VERIFICATION_FAILED info 未能验证 Host ${Host} ${Status} 状态失败,请手动验证 ${Status} Host ${Host}。
9006 CANNOT_HIBERNATE_RUNNING_VMS_AFTER_CLUSTER_CPU_UPGRADE 警告 不支持在集群 ${Cluster} 升级后虚拟机休眠。如果您要休眠它们,请停止并重启这些虚拟机
9007 VDS_ALERT_SECONDARY_AGENT_USED_FOR_FENCE_OPERATION info 二级隔离代理用于 ${Operation} Host ${VdsName}
9008 VDS_HOST_NOT_RESPONDING_CONNECTING 警告 主机 ${VdsName} 没有响应。它将在 ${Seconds} 秒的宽限期内保持连接状态,并在尝试隔离主机后保持连接状态。
9009 VDS_ALERT_PM_HEALTH_CHECK_FENCE_AGENT_NON_RESPONSIVE info Host ${VdsName} 上的健康检查表示 Fence-Agent ${AgentId} 是不响应的。
9010 VDS_ALERT_PM_HEALTH_CHECK_START_MIGHT_FAIL info Host ${VdsName} 上的健康检查表示将来尝试使用 Power-Management 启动此主机预期失败。
9011 VDS_ALERT_PM_HEALTH_CHECK_STOP_MIGHT_FAIL info Host ${VdsName} 上的健康检查表示将来尝试使用 Power-Management 停止此主机有预期失败。
9012 VDS_ALERT_PM_HEALTH_CHECK_RESTART_MIGHT_FAIL info Host ${VdsName} 上的健康检查表示,未来尝试使用 Power-Management 重启此主机预期会失败。
9013 VDS_ALERT_FENCE_OPERATION_SKIPPED_BROKEN_CONNECTIVITY info 主机 ${VdsName} 变得没有响应,且因隔离策略而没有重启,但由于集群中的主机具有连接问题,即 ${Percents} 百分比。
9014 VDS_ALERT_NOT_RESTARTED_DUE_TO_POLICY info 主机 ${VdsName} 变得没有响应,且因集群隔离策略而没有重启。
9015 VDS_ALERT_FENCE_DISABLED_BY_CLUSTER_POLICY info 主机 ${VdsName} 成为 Non Responsive 状态,在群集隔离策略中禁用隔离而没有重启。
9016 FENCE_DISABLED_IN_CLUSTER_POLICY info 在集群 ${ClusterName} 的隔离策略中禁用隔离功能,因此在不响应的主机上运行的 HA 虚拟机不会在其他位置重启。
9017 FENCE_OPERATION_STARTED info 启动主机 ${VdsName} 的电源管理 ${Action}
9018 FENCE_OPERATION_SUCCEEDED info Host ${VdsName} 的电源管理 ${Action} 成功.
9019 FENCE_OPERATION_FAILED Error Host ${VdsName} 的电源管理 ${Action} 失败.
9020 FENCE_OPERATION_USING_AGENT_AND_PROXY_STARTED info 使用 Proxy Host ${ProxyHost} 和 Fence Agent ${AgentType}:${AgentIp} 在 Host ${Host} 上执行电源管理 ${Action}。
9021 FENCE_OPERATION_USING_AGENT_AND_PROXY_FAILED 警告 使用 Proxy Host ${ProxyHost} 和 Fence Agent ${AgentType}:${AgentIp} 在 Host ${Host} 上执行电源管理 ${Action} 失败。
9022 ENGINE_NO_FULL_BACKUP info 没有完全备份可用,请运行 engine-backup 以防止损坏数据丢失。
9023 ENGINE_NO_WARM_BACKUP info 完整备份是在 ${Date} 上创建的,它太老了。请在损坏时运行 engine-backup 以防止数据丢失。
9024 ENGINE_BACKUP_STARTED Normal 引擎备份已启动。
9025 ENGINE_BACKUP_COMPLETED Normal 引擎备份成功完成。
9026 ENGINE_BACKUP_FAILED Error 引擎备份失败。
9500 TASK_STOPPING_ASYNC_TASK info 停止在 ${Date} 启动的 async 任务 ${CommandName}
9501 TASK_CLEARING_ASYNC_TASK info 清除在 ${Date} 启动的异步任务 ${CommandName}
9506 USER_ACTIVATE_STORAGE_DOMAIN_FAILED_ASYNC 警告 自动恢复存储域 ${StorageDomainName}(Data Center ${StoragePoolName})失败。
9600 IMPORTEXPORT_IMPORT_VM_INVALID_INTERFACES 警告 在导入 VM ${EntityName} 时,Network/s ${Networks} 可以被发现为 Non-VM Networks,或者没有存在于集群中,或者缺少合适的虚拟机网络接口配置集。在 Interface/s ${Interfaces} 中没有设置网络名称。
9601 VDS_SET_NON_OPERATIONAL_VM_NETWORK_IS_BRIDGELESS 警告 主机 ${VdsName} 不遵循集群 ${ClusterName} 网络,以下虚拟机网络为非VM 网络:'${Networks}'
9602 HA_VM_FAILED Error 高可用性 VM ${VmName} 失败.它将自动重启。
9603 HA_VM_RESTART_FAILED Error 重启高可用性 VM ${VmName} 失败。
9604 EMULATED_MACHINES_INCOMPATIBLE_WITH_CLUSTER 警告 主机 ${VdsName} 不遵循集群 ${ClusterName} 模拟机器。集群模拟机器为 ${clusterEmulatedMachines},主机模拟机器为 ${hostSupportedEmulatedMachines}。
9605 EXCEEDED_MAXIMUM_NUM_OF_RESTART_HA_VM_ATTEMPTS Error 高可用性 VM ${VmName} 无法自动重启,超过最大尝试次数。
9606 IMPORTEXPORT_SNAPSHOT_VM_INVALID_INTERFACES 警告 虽然预览 VM ${EntityName} 的快照,但 Network/s ${Networks} 可以被发现为 Non-VM Networks,或者集群中不存在。在 Interface/s ${Interfaces} 中没有设置网络名称。
9607 ADD_VM_FROM_SNAPSHOT_INVALID_INTERFACES 警告 从快照添加 vm ${EntityName} 时,Network/s ${Networks} 被发现为 Non-VM Networks,或者集群中不存在。在 Interface/s ${Interfaces} 中没有设置网络名称。
9608 RNG_SOURCES_INCOMPATIBLE_WITH_CLUSTER 警告 主机 ${VdsName} 不遵循集群 ${ClusterName} Random Number Generator 源。主机支持的源有:${hostSupportedRngSources},集群要求为:${clusterRequiredRngSources}。
9609 EMULATED_MACHINES_INCOMPATIBLE_WITH_CLUSTER_LEVEL 警告 主机 ${VdsName} 不遵循集群 ${ClusterName} 模拟机器。当前的集群兼容性级别支持 ${clusterEmulatedMachines},主机模拟机器为 ${hostSupportedEmulatedMachines}。
9610 MIXING_RHEL_VERSIONS_IN_CLUSTER 警告 不可能在一个集群中混合 RHEL 6.x 和 7.x 主机。尝试在具有 ${previousRhel} 主机的集群中添加 ${addingRhel} 主机。
9611 COLD_REBOOT_VM_DOWN info VM ${VmName} 作为冷重启过程的一部分停机
9612 COLD_REBOOT_FAILED Error VM ${VmName} 冷重启失败
9613 EXCEEDED_MAXIMUM_NUM_OF_COLD_REBOOT_VM_ATTEMPTS Error 虚拟机 ${VmName} 无法重启,超过最大尝试次数。
9700 DWH_STARTED info ETL 服务已启动。
9701 DWH_STOPPED info ETL 服务已停止。
9704 DWH_ERROR Error ETL 服务中的错误.
9801 EXTERNAL_EVENT_NORMAL info 添加了具有 NORMAL 严重性的外部事件。
9802 EXTERNAL_EVENT_WARNING 警告 添加了严重性为 WARNING 的外部事件。
9803 EXTERNAL_EVENT_ERROR Error 添加了具有 ERROR 严重性的外部事件。
9804 EXTERNAL_ALERT info 添加了 ALERT 严重性的外部事件。
9901 WATCHDOG_EVENT 警告 在 ${VmName} 上触发的 watchdog 事件(${wdaction})位于 ${wdevent} (主机时间)。
9910 USER_ADD_CLUSTER_POLICY info 添加了调度策略 ${ClusterPolicy}。(用户:${UserName})
9911 USER_FAILED_TO_ADD_CLUSTER_POLICY Error 添加调度策略失败:${ClusterPolicy}。(用户:${UserName})
9912 USER_UPDATE_CLUSTER_POLICY info 调度策略 ${ClusterPolicy} 已更新。(用户:${UserName})
9913 USER_FAILED_TO_UPDATE_CLUSTER_POLICY Error 更新调度策略失败:${ClusterPolicy}。(用户:${UserName})
9914 USER_REMOVE_CLUSTER_POLICY info 调度策略 ${ClusterPolicy} 已被删除。(用户:${UserName})
9915 USER_FAILED_TO_REMOVE_CLUSTER_POLICY Error 删除调度策略失败:${ClusterPolicy}。(用户:${UserName})
9920 FAILED_TO_CONNECT_TO_SCHEDULER_PROXY Error 连接到外部调度程序代理失败。外部过滤器,不会执行评分功能和负载平衡。
10000 VDS_UNTRUSTED Error 主机 ${VdsName} 设置为不正常运行。主机不被 attestation 服务信任。
10001 USER_UPDATE_VM_FROM_TRUSTED_TO_UNTRUSTED 警告 VM ${VmName} 从可信集群更新为非可信集群。
10002 USER_UPDATE_VM_FROM_UNTRUSTED_TO_TRUSTED 警告 VM ${VmName} 从非信任集群更新为可信集群。
10003 IMPORTEXPORT_IMPORT_VM_FROM_TRUSTED_TO_UNTRUSTED 警告 虚拟机 ${VmName} 是在可信集群中创建的,并导入到非信任集群中
10004 IMPORTEXPORT_IMPORT_VM_FROM_UNTRUSTED_TO_TRUSTED 警告 VM ${VmName} 在非信任集群中创建,并导入到可信集群中
10005 USER_ADD_VM_FROM_TRUSTED_TO_UNTRUSTED 警告 虚拟机 ${VmName} 在不受信任的集群中创建。它源自在可信集群中创建的模板 ${VmTemplateName}。
10006 USER_ADD_VM_FROM_UNTRUSTED_TO_TRUSTED 警告 虚拟机 ${VmName} 在可信集群中创建。它源自在不受信任的集群中创建的模板 ${VmTemplateName}。
10007 IMPORTEXPORT_IMPORT_TEMPLATE_FROM_TRUSTED_TO_UNTRUSTED 警告 在受信任的集群中创建了 Template ${VmTemplateName},并导入到非信任集群中
10008 IMPORTEXPORT_IMPORT_TEMPLATE_FROM_UNTRUSTED_TO_TRUSTED 警告 在非信任集群中创建 Template ${VmTemplateName},并导入到可信集群中
10009 USER_ADD_VM_TEMPLATE_FROM_TRUSTED_TO_UNTRUSTED 警告 非可信模板 ${VmTemplateName} 从可信 Vm ${VmName} 创建。
10010 USER_ADD_VM_TEMPLATE_FROM_UNTRUSTED_TO_TRUSTED 警告 可信模板 ${VmTemplateName} 是从非可信 Vm ${VmName} 创建的。
10011 USER_UPDATE_VM_TEMPLATE_FROM_TRUSTED_TO_UNTRUSTED 警告 模板 ${VmTemplateName} 从可信集群更新为非可信集群。
10012 USER_UPDATE_VM_TEMPLATE_FROM_UNTRUSTED_TO_TRUSTED 警告 Template ${VmTemplateName} 从非信任集群更新为可信集群。
10013 IMPORTEXPORT_GET_EXTERNAL_VMS_NOT_IN_DOWN_STATUS 警告 从外部服务器 ${URL} 检索的以下虚拟机不在 down 状态:${Vms}。
10100 USER_ADDED_NETWORK_QOS info 添加了网络 QoS ${QosName}。(用户:${UserName})
10101 USER_FAILED_TO_ADD_NETWORK_QOS Error 添加网络 QoS ${QosName} 失败。(用户:${UserName})
10102 USER_REMOVED_NETWORK_QOS info 网络 QoS ${QosName} 已被删除。(用户:${UserName})
10103 USER_FAILED_TO_REMOVE_NETWORK_QOS Error 删除网络 QoS ${QosName} 失败。(用户:${UserName})
10104 USER_UPDATED_NETWORK_QOS info 网络 QoS ${QosName} 已更新。(用户:${UserName})
10105 USER_FAILED_TO_UPDATE_NETWORK_QOS Error 更新网络 QoS ${QosName} 失败。(用户:${UserName})
10110 USER_ADDED_QOS info 添加了 QoS ${QoSName}。(用户:${UserName})
10111 USER_FAILED_TO_ADD_QOS Error 添加 QoS ${QoSName} 失败。(用户:${UserName})
10112 USER_REMOVED_QOS info 已删除 QoS ${QoSName}。(用户:${UserName})
10113 USER_FAILED_TO_REMOVE_QOS Error 删除 QoS ${QoSName} 失败。(用户:${UserName})
10114 USER_UPDATED_QOS info QoS ${QoSName} 已更新。(用户:${UserName})
10115 USER_FAILED_TO_UPDATE_QOS Error 更新 QoS ${QoSName} 失败。(用户:${UserName})
10120 USER_ADDED_DISK_PROFILE info 已成功添加磁盘配置文件 ${ProfileName}(User: ${UserName})。
10121 USER_FAILED_TO_ADD_DISK_PROFILE Error 添加磁盘配置文件失败(用户:${UserName})。
10122 USER_REMOVED_DISK_PROFILE info 磁盘配置文件 ${ProfileName} 已被成功删除(用户:${UserName})。
10123 USER_FAILED_TO_REMOVE_DISK_PROFILE Error 删除 Disk Profile ${ProfileName} 失败(用户:${UserName})。
10124 USER_UPDATED_DISK_PROFILE info 磁盘配置文件 ${ProfileName} 已被成功更新(用户:${UserName})。
10125 USER_FAILED_TO_UPDATE_DISK_PROFILE Error 更新 Disk Profile ${ProfileName}(User: ${UserName})失败。
10130 USER_ADDED_CPU_PROFILE info 成功添加 CPU Profile ${ProfileName}(User: ${UserName})。
10131 USER_FAILED_TO_ADD_CPU_PROFILE Error 添加 CPU 配置文件失败(用户:${UserName})。
10132 USER_REMOVED_CPU_PROFILE info CPU Profile ${ProfileName} 已被成功删除(用户:${UserName})。
10133 USER_FAILED_TO_REMOVE_CPU_PROFILE Error 删除 CPU Profile ${ProfileName}(User: ${UserName})失败。
10134 USER_UPDATED_CPU_PROFILE info CPU Profile ${ProfileName} 已被成功更新(用户:${UserName})。
10135 USER_FAILED_TO_UPDATE_CPU_PROFILE Error 更新 CPU Profile ${ProfileName}(User: ${UserName})失败。
10200 USER_UPDATED_MOM_POLICIES info JS 策略在主机 ${VdsName} 上已更新。
10201 USER_FAILED_TO_UPDATE_MOM_POLICIES 警告 host ${VdsName} 上无法更新 mysqldump 策略。
10250 PM_POLICY_UP_TO_MAINTENANCE info 当前不需要主机 ${Host},激活维护模式以准备关闭。
10251 PM_POLICY_MAINTENANCE_TO_DOWN info 当前不需要主机 ${Host},关闭。
10252 PM_POLICY_TO_UP info 根据当前的电源管理策略,重新激活主机 ${Host}。
10300 CLUSTER_ALERT_HA_RESERVATION info 集群 ${ClusterName} 失败 HA Reservation 检查, host (s)上的 HA 虚拟机在故障转移时可能无法迁移,请考虑添加资源或关闭未使用的虚拟机。
10301 CLUSTER_ALERT_HA_RESERVATION_DOWN info 集群 ${ClusterName} 通过 HA Reservation 检查。
10350 USER_ADDED_AFFINITY_GROUP info 添加了关联性组 ${affinityGroupName}。(用户:${UserName})
10351 USER_FAILED_TO_ADD_AFFINITY_GROUP Error 添加 Affinity Group ${affinityGroupName} 失败。(用户:${UserName})
10352 USER_UPDATED_AFFINITY_GROUP info 关联性组 ${affinityGroupName} 已更新。(用户:${UserName})
10353 USER_FAILED_TO_UPDATE_AFFINITY_GROUP Error 更新 Affinity Group ${affinityGroupName} 失败。(用户:${UserName})
10354 USER_REMOVED_AFFINITY_GROUP info 关联性组 ${affinityGroupName} 已被删除。(用户:${UserName})
10355 USER_FAILED_TO_REMOVE_AFFINITY_GROUP Error 删除 Affinity Group ${affinityGroupName} 失败。(用户:${UserName})
10356 VM_TO_HOST_CONFLICT_IN_ENFORCING_POSITIVE_AND_NEGATIVE_AFFINITY Error 关联性组:${AffinityGroups}(主机 :${Hosts} 和虚拟机 : ${Vms})可让虚拟机在正和负强制关联性组之间主机冲突。
10357 VM_TO_HOST_CONFLICT_IN_POSITIVE_AND_NEGATIVE_AFFINITY 警告 关联性组:${AffinityGroups},具有 hosts: ${Hosts} 和 VM: ${Vms},可让虚拟机在正和负关联性组之间主机冲突。
10358 VM_TO_HOST_CONFLICTS_POSITIVE_VM_TO_VM_AFFINITY 警告 关联性组:${AffinityGroups}(主机 : ${Hosts} 和虚拟机:${Vms})存在 VM 到主机关联性和虚拟机之间的冲突。
10359 VM_TO_HOST_CONFLICTS_NEGATIVE_VM_TO_VM_AFFINITY 警告 关联性组:${AffinityGroups},主机 : ${Hosts} 和 VM: ${Vms} 存在冲突,VM 到主机关联性和虚拟机到虚拟机负关联性之间有冲突。
10360 NON_INTERSECTING_POSITIVE_HOSTS_AFFINITY_CONFLICTS 警告 关联性组:${AffinityGroups},主机 : ${Hosts} 和虚拟机 : ${Vms} 具有非交集主机冲突。
10361 VM_TO_VM_AFFINITY_CONFLICTS Error
10380 USER_ADDED_AFFINITY_LABEL info 添加了关联性标签 ${labelName}。(用户:${UserName})
10381 USER_FAILED_TO_ADD_AFFINITY_LABEL Error 添加 Affinity Label ${labelName} 失败。(用户:${UserName})
10382 USER_UPDATED_AFFINITY_LABEL info 关联性标签 ${labelName} 已更新。(用户:${UserName})
10383 USER_FAILED_TO_UPDATE_AFFINITY_LABEL Error 更新 Affinity Label ${labelName} 失败。(用户:${UserName})
10384 USER_REMOVED_AFFINITY_LABEL info 关联性标签 ${labelName} 已被删除。(用户:${UserName})
10385 USER_FAILED_TO_REMOVE_AFFINITY_LABEL Error 删除 Affinity Label ${labelName} 失败。(用户:${UserName})
10400 ISCSI_BOND_ADD_SUCCESS info 在 Data Center '${StoragePoolName}' 中已成功创建 iSCSI bond '${IscsiBondName}'。
10401 ISCSI_BOND_ADD_FAILED Error 在 Data Center '${StoragePoolName}' 中创建 iSCSI bond '${IscsiBondName}' 失败。
10402 ISCSI_BOND_EDIT_SUCCESS info iSCSI bond '${IscsiBondName}' 已成功更新。
10403 ISCSI_BOND_EDIT_FAILED Error 更新 iSCSI 绑定 '${IscsiBondName}' 失败。
10404 ISCSI_BOND_REMOVE_SUCCESS info iSCSI bond '${IscsiBondName}' 已从数据中心 '${StoragePoolName}' 中删除。
10405 ISCSI_BOND_REMOVE_FAILED Error 从 Data Center '${StoragePoolName}' 中删除 iSCSI bond '${IscsiBondName}' 失败
10406 ISCSI_BOND_EDIT_SUCCESS_WITH_WARNING 警告 iSCSI bond '${IscsiBondName}' 已成功更新,但某些主机遇到连接问题。
10407 ISCSI_BOND_ADD_SUCCESS_WITH_WARNING 警告 在 Data Center '${StoragePoolName}' 中成功创建了 iSCSI bond '${IscsiBondName}',但某些主机遇到连接问题。
10450 USER_SET_HOSTED_ENGINE_MAINTENANCE info 主机 ${VdsName} 上更新了托管引擎 HA 维护模式。
10451 USER_FAILED_TO_SET_HOSTED_ENGINE_MAINTENANCE Error 托管引擎 HA 维护模式无法在主机 ${VdsName} 上更新。
10452 VDS_MAINTENANCE_MANUAL_HA 警告 主机 ${VdsName} 已切换到维护模式,但无法启用托管引擎 HA 维护。请手动启用它。
10453 USER_VDS_MAINTENANCE_MANUAL_HA 警告 主机 ${VdsName} 被 ${UserName} 切换到维护模式,但无法启用托管引擎 HA 维护。请手动启用它。
10454 VDS_ACTIVATE_MANUAL_HA 警告 主机 ${VdsName} 由 ${UserName} 激活,但托管引擎 HA 服务可能仍处于维护模式。如有必要,请手动纠正。
10455 VDS_ACTIVATE_MANUAL_HA_ASYNC 警告 主机 ${VdsName} 被自动恢复,但托管引擎 HA 服务可能仍处于维护模式。如有必要,请手动纠正。
10456 HOSTED_ENGINE_VM_IMPORT_SUCCEEDED Normal 已成功导入托管引擎虚拟机
10460 HOSTED_ENGINE_DOMAIN_IMPORT_SUCCEEDED Normal 已成功导入托管引擎存储域
10461 HOSTED_ENGINE_DOMAIN_IMPORT_FAILED Error 导入托管引擎存储域失败
10500 EXTERNAL_SCHEDULER_PLUGIN_ERROR Error 运行外部调度程序插件 '${PluginName}' failed: '${ErrorMessage}'
10501 EXTERNAL_SCHEDULER_ERROR Error 运行外部调度程序失败: '${ErrorMessage}'
10550 VM_SLA_POLICY_CPU info 虚拟机 ${VmName} SLA 策略已设置.CPU 限制设置为 ${cpuLimit}
10551 VM_SLA_POLICY_STORAGE info 虚拟机 ${VmName} SLA 策略已设置.磁盘的存储策略更改了:[${diskList}]
10552 VM_SLA_POLICY_CPU_STORAGE info 虚拟机 ${VmName} SLA 策略已设置.CPU 限制设置为 ${cpuLimit}。磁盘的存储策略更改了:[${diskList}]
10553 FAILED_VM_SLA_POLICY Error 将 SLA 策略设置为 VM ${VmName} 失败。底层错误消息:${ErrorMessage}
10600 USER_REMOVE_AUDIT_LOG info 事件列表消息 ${AuditLogId} 已被 User ${UserName} 删除。
10601 USER_REMOVE_AUDIT_LOG_FAILED Error 用户 ${UserName} 无法删除事件列表消息 ${AuditLogId}。
10602 USER_CLEAR_ALL_AUDIT_LOG info
10603 USER_CLEAR_ALL_AUDIT_LOG_FAILED Error
10604 USER_DISPLAY_ALL_AUDIT_LOG info
10605 USER_DISPLAY_ALL_AUDIT_LOG_FAILED Error
10700 MAC_POOL_ADD_SUCCESS info MAC Pool '${MacPoolName}'(id
10701 MAC_POOL_ADD_FAILED Error 创建 MAC Pool '${MacPoolName}' 失败。(用户:${UserName})
10702 MAC_POOL_EDIT_SUCCESS info MAC Pool '${MacPoolName}'(id
10703 MAC_POOL_EDIT_FAILED Error 更新 MAC Pool '${MacPoolName}'(id
10704 MAC_POOL_REMOVE_SUCCESS info MAC Pool '${MacPoolName}'(id
10705 MAC_POOL_REMOVE_FAILED Error 删除 MAC Pool '${MacPoolName}'(id
10750 CINDER_PROVIDER_ERROR Error Cinder 提供程序上出现错误: '${CinderException}'
10751 CINDER_DISK_CONNECTION_FAILURE Error 获取 Cinder Disk '${DiskAlias}' 的连接信息失败。
10752 CINDER_DISK_CONNECTION_VOLUME_DRIVER_UNSUPPORTED Error Cinder Disk '${DiskAlias}' 不支持的卷驱动程序。
10753 USER_FINISHED_FAILED_REMOVE_CINDER_DISK Error 从存储域 ${StorageDomainName} 中删除 disk ${DiskAlias} 失败。以下实体 ID 无法从 Cinder 提供程序 '${imageId}' 中删除。(用户:${UserName})。
10754 USER_ADDED_LIBVIRT_SECRET info 添加了身份验证密钥 ${LibvirtSecretUUID}。(用户:${UserName})。
10755 USER_FAILED_TO_ADD_LIBVIRT_SECRET Error 添加身份验证密钥 ${LibvirtSecretUUID} 失败。(用户:${UserName})。
10756 USER_UPDATE_LIBVIRT_SECRET info 身份验证密钥 ${LibvirtSecretUUID} 已更新。(用户:${UserName})。
10757 USER_FAILED_TO_UPDATE_LIBVIRT_SECRET Error 更新身份验证密钥 ${LibvirtSecretUUID} 失败。(用户:${UserName})。
10758 USER_REMOVED_LIBVIRT_SECRET info 验证 Key ${LibvirtSecretUUID} 已被删除。(用户:${UserName})。
10759 USER_FAILED_TO_REMOVE_LIBVIRT_SECRET Error 删除 Authentication Key ${LibvirtSecretUUID} 失败。(用户:${UserName})。
10760 FAILED_TO_REGISTER_LIBVIRT_SECRET Error 在主机 ${VdsName} 上为存储域 ${StorageDomainName} 注册身份验证密钥失败。
10761 FAILED_TO_UNREGISTER_LIBVIRT_SECRET Error 在主机 ${VdsName} 上取消注册存储域 ${StorageDomainName} 的身份验证密钥失败。
10762 FAILED_TO_REGISTER_LIBVIRT_SECRET_ON_VDS Error 在主机 ${VdsName} 上注册身份验证密钥失败。
10763 NO_LIBRBD_PACKAGE_AVAILABLE_ON_VDS Error 主机 ${VdsName} 上不可用 Librbd1 软件包,这是使用 Cinder 存储域所必需的。
10764 FAILED_TO_FREEZE_VM 警告 在 VM ${VmName} 上冻结客户机文件系统失败。请注意,使用创建的快照可能会导致数据不一致。
10765 FAILED_TO_THAW_VM 警告 未能在 VM ${VmName} 上 thaw guest 文件系统.在虚拟机重启前,文件系统可能会无响应。
10766 FREEZE_VM_INITIATED Normal 启动了虚拟机 ${VmName} 上的客户机文件系统冻结。
10767 FREEZE_VM_SUCCESS Normal 虚拟机 ${VmName} 上的客户机文件系统已被成功冻结。
10768 THAW_VM_SUCCESS Normal VM ${VmName} 上的客户机文件系统已被成功破解。
10769 USER_FAILED_TO_FREEZE_VM 警告 在 ${VmName} 上冻结客户机文件系统失败(主机:${VdsName}、User: ${UserName})。
10770 USER_FAILED_TO_THAW_VM 警告 在 ${VmName} 上 thaw guest 文件系统失败(主机:${VdsName}、User: ${UserName})。
10771 VDS_CANNOT_CONNECT_TO_GLUSTERFS Error 主机 ${VdsName} 无法连接到 Glusterfs。验证主机上已安装了 glusterfs-cli 软件包。
10780 AFFINITY_RULES_ENFORCEMENT_MANAGER_START Normal 关联性规则强制管理器启动。
10781 AFFINITY_RULES_ENFORCEMENT_MANAGER_INTERVAL_REACHED Normal
10800 VM_ADD_HOST_DEVICES info 主机设备 ${NamesAdded} 由 User ${UserName} 附加到 Vm ${VmName}。
10801 VM_REMOVE_HOST_DEVICES info 主机设备 ${NamesRemoved} 被 User ${UserName} 从 Vm ${VmName} 分离。
10802 VDS_BROKER_COMMAND_FAILURE Error VDSM ${VdsName} command ${CommandName} failed: ${message}
10803 IRS_BROKER_COMMAND_FAILURE Error VDSM 命令 ${CommandName} 失败:${message}
10804 VDS_UNKNOWN_HOST Error 无法确定主机 ${VdsName} 地址
10810 SYSTEM_CHANGE_STORAGE_POOL_STATUS_UP_REPORTING_HOSTS Normal 数据中心 ${StoragePoolName} 状态已更改为 UP,因为其部分主机处于 UP 状态。
10811 SYSTEM_CHANGE_STORAGE_POOL_STATUS_NON_RESPONSIVE_NO_REPORTING_HOSTS info 数据中心 ${StoragePoolName} 状态已更改为 Non Responsive,因为其任何主机都处于 UP 状态。
10812 STORAGE_POOL_LOWER_THAN_ENGINE_HIGHEST_CLUSTER_LEVEL info 数据中心 ${StoragePoolName} 兼容性版本是 ${dcVersion},它低于最新的引擎版本 ${engineVersion}。请将您的数据中心升级到最新版本,以成功完成您的设置升级。
10900 HOST_SYNC_ALL_NETWORKS_FAILED Error 同步所有主机 ${VdsName} 网络失败
10901 HOST_SYNC_ALL_NETWORKS_FINISHED info 受管以同步所有主机 ${VdsName} 网络。
10902 PERSIST_HOST_SETUP_NETWORK_ON_HOST info (${sequence}/${Total}):在主机 ${VdsName} 上应用网络更改。(用户:${UserName})
10903 PERSIST_SETUP_NETWORK_ON_HOST_FINISHED info (${sequence}/${Total}):在主机 ${VdsName} 上成功应用更改。(用户:${UserName})
10904 PERSIST_SETUP_NETWORK_ON_HOST_FAILED Error (${sequence}/${Total}): Failed to apply changes on host ${VdsName}.(用户:${UserName})
11000 USER_ADD_EXTERNAL_JOB info 用户 ${UserName} 添加新的外部作业 ${description}
11001 USER_ADD_EXTERNAL_JOB_FAILED Error 添加新的外部作业 ${description} 失败
12000 MIGRATION_REASON_AFFINITY_ENFORCEMENT info 关联性规则强制
12001 MIGRATION_REASON_LOAD_BALANCING info 负载平衡
12002 MIGRATION_REASON_HOST_IN_MAINTENANCE info 准备进行维护的主机
12003 VM_MIGRATION_NOT_ALL_VM_NICS_WERE_PLUGGED_BACK Error 迁移 ${VmName} 后,以下 vm nics 无法插入回:${NamesOfNotRepluggedNics}。
12004 VM_MIGRATION_PLUGGING_VM_NICS_FAILED Error 迁移 ${VmName} vm nics 后无法插入。
12005 CLUSTER_CANNOT_UPDATE_VM_COMPATIBILITY_VERSION Error 无法更新 Vm/Template 的兼容性版本:[${VmName}], Message: ${Message}

附录 D. timezones

D.1. timezones

在为虚拟机或虚拟机模板指定时区时,API 会将 Windows Standard Format timezone 名称映射到 tz 数据库格式。这意味着 API 只接受特定的 tz 数据库代码,下表列出了:
表 D.1. 接受 tz 数据库代码
tz 数据库格式 Windows 标准格式
Africa/Cairo Egypt 标准时间
Africa/Casablanca Morocco 标准时间
Africa/Johannesburg 南非标准时间
Africa/Lagos W.Central Africa 标准时间
Africa/Nairobi E.非洲标准时间
Africa/Reykjavik Greenwich 标准时间
Africa/Windhoek Namibia 标准时间
美国/不适用 Alaskan 标准时间
America/Bogota SA Pacific 标准时间
America/Buenos_Aires 阿根廷标准时间
America/Caracas Venezuela 标准时间
America/Chicago 中央标准时间
America/Chihuahua 墨西哥标准时间
America/Chihuahua Mountain 标准时间
America/Denver Mountain 标准时间
America/Godthab Greenland 标准时间
America/Guatemala 中央美国标准时间
America/Halifax 空白标准时间
America/La_Paz SA Western 标准时间
America/Los_Angeles 太老标准时间
America/Manaus 巴西标准时间
America/Mexico_City 中央标准时间
America/Mexico_City 墨西哥标准时间
America/Montevideo Montevideo 标准时间
America/New_York 东欧标准时间
America/Phoenix 美国挂载标准时间
America/Regina 加拿大中部标准时间
America/Santiago Pacific SA 标准时间
America/Sao_Paulo E.南美标准时间
America/St_Johns Newfoundland 标准时间
America/Tijuana 太老标准时间
Asia/Amman Jordan 标准时间
Asia/Baghdad 阿拉伯标准时间
Asia/Baku Azerbaijan 标准时间
Asia/Bangkok SE Asia 标准时间
Asia/Beirut 中东标准时间
Asia/Calcutta 印度标准时间
asia/Colombo Sri Lanka 标准时间
亚/Dhaka Central Asia 标准时间
亚/Dubai Arabian 标准时间
Asia/Irkutsk 北亚东部标准时间
Asia/Jerusalem 以色列标准时间
Asia/Kabul Afghanistan 标准时间
Asia/Karachi Pakistan 标准时间
Asia/Katmandu Nepal Standard Time
亚/Krasnoyarsk 北亚标准时间
亚/Novosibirsk N。Central Asia 标准时间
Asia/Rangoon Myanmar 标准时间
Asia/Riyadh Arab 标准时间
亚/首尔 韩国标准时间
亚/上海 中国标准时间
asia/Singapore 新加坡标准时间
asia/Taipei Taipei 标准时间
Asia/Tashkent 西亚标准时间
Asia/Tehran Iran 标准时间
asia/Tokyo 东京标准时间
Asia/Vladivostok Vladivostok 标准时间
Asia/Yakutsk Yakutsk 标准时间
Asia/Yekaterinburg Ekaterinburg 标准时间
亚/Yerevan Armenian 标准时间
亚/Yerevan Caucasus 标准时间
Atlantic/Azores Azores 标准时间
Atlantic/Cape_Verde Cape Verde Standard Time
Atlantic/South_Georgia mid-Atlantic Standard Time
澳大利亚/Adelaide Cen。澳大利亚标准时间
澳大利亚/布里斯班 E.澳大利亚标准时间
Australia/Darwin AUS Central 标准时间
Australia/Hobart Tasmania 标准时间
澳大利亚/永久 W.澳大利亚标准时间
Australia/Sydney AUS Eastern Standard Time
Etc/GMT-3 Georgian 标准时间
Etc/GMT+12 日期行标准时间
Etc/GMT+3 SA 东部标准时间
Etc/GMT+5 美国东部标准时间
Europe/Berlin W.欧洲标准时间
Europe/Budapest 中欧标准时间
europe/Istanbul GTB 标准时间
Europe/Kiev FLE 标准时间
Europe/London GMT 标准时间
Europe/Minsk E.欧洲标准时间
Europe/Moscow 俄罗斯标准时间
Europe/Paris Romance 标准时间
Europe/Warsaw 欧盟标准时间
印度/马里兰斯 Mauritius 标准时间
Pacific/Apia Samoa 标准时间
Pacific/Auckland 新西兰标准时间
Pacific/Fiji Fiji Standard Time
Pacific/Guadalcanal 中央太平标准时间
Pacific/Honolulu Hawaiian 标准时间
Pacific/Port_Moresby west Pacific 标准时间
Pacific/Tongatapu Tonga 标准时间
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.