10.7. 子集合

10.7.1. 网络子集合

10.7.1.1. 网络子集合

与集群相关联的网络由 networks 子集合代表。集群中的每个主机都和这些网络相连接。
除了以下项外,集群的 network 子集合表述和标准的 network 资源表述相同:

表 10.4. 额外的网络项

元素类型描述
cluster id=关系网络所在集群的标识。
required布尔值指定网络是“必需的”网络还是“可选的”网络。 
display布尔值定义显示网络状态。 
usages复杂数据为网络定义一组 usage 项。用户可以在这一级把网络定义为 VM 网络和 DISPLAY 网络。 
API 用户使用标准的 REST 方法来处理 networks 子集合。在 POST 中使用网络 idname 来指定和集群相关联的 networks 子集合。

例 10.6. 为集群关联一个网络资源

POST /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="/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="/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95"/>
    <data_center id="d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"
      href="/api/datacenters/d70d5e2d-b8ad-494a-a4d2-c7a5631073c4"/>
    <required>true</required>
    <usages>
        <usage>VM</usage>
    </usages>
</network>
使用 PUT 请求更新资源。

例 10.7. 设置显示网络状态

PUT /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 请求指定 required 项的值(true 或 false)可以把网络设置为“必需的”网络或“可选的”网络。

例 10.8. 设置“可选的”网络

PUT /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 /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. 存储卷子集合

10.7.2.1. Red Hat Gluster Storage 卷子集合

Red Hat Enterprise Virtualization 提供了创建和管理 Red Hat Gluster Storage 卷的方法。Red Hat Gluster Storage 卷可以和集群相关联,并由 glustervolumes 子集合代表。
Red Hat Gluster Storage 卷资源在 glustervolumes 子集合中的表述由以下项定义:

表 10.5. Gluster 卷项

类型描述属性
volume_type列举定义卷类型。capabilities 集合中包括了卷类型列表。
bricks关系Red Hat Gluster Storage 数据库(brick)的子集合。在创建一个新卷时,请求需要一组 brick 项。使用 server_id 代表 Red Hat Gluster Storage 服务器;使用 brick_dir 项代表数据块目录。
transport_types复杂数据定义一组卷 transport_type 项。capabilities 集合中包括了有效传输类型的列表。
replica_count整数指定一个重复的卷所具有的副本数量。
stripe_count整数指定一个条带卷的条带数量
options复杂数据一组额外的 Red Hat Gluster Storage option 项。每个 option 都包括一个选项 name 和相应的 value

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

<gluster_volume id="99408929-82cf-4dc7-a532-9d998063fa95"
  href="/api/clusters/99408929-82cf-4dc7-a532-9d998063fa95
  /glustervolume/e199f877-900a-4e30-8114-8e3177f47651">
    <name>GlusterVolume1</name>
    <link rel="bricks"
      href="/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>
通过带有子集合的 namevolume_typebricksPOST 请求创建一个 Red Hat Gluster Storage 卷

例 10.11. 创建一个 Red Hat Gluster Storage 卷

POST /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 /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. 数据块子集合

glustervolumes 子集合包括自己的 bricks 子集合来定义 Red Hat Gluster Storage 卷中的单独的数据块。额外信息可以通过使用 All-Content: true 头的 GET 请求获得。
一个卷的 bricks 子集合的表述使用以下元素定义:

表 10.6. 数据块项

类型描述属性
server_id字符串到 Red Hat Gluster Storage 服务器的参考。
brick_dir字符串定义 Red Hat Gluster Storage 服务器上的一个数据块。
replica_count整数指定卷中的数据块的文件副本数量。
stripe_count整数指定卷中数据块的条带数量
通过带有子集合的 server_idbrick_idPOST 请求创建新数据块。

例 10.13. 添加一个数据块

POST /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 请求删除一个数据块。

例 10.14. 删除一个数据块

DELETE /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. 操作

10.7.2.3.1. 启动操作
start 操作使 Gluster 卷可以被使用。

例 10.15. 启动一个卷

POST /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 项可以强制运行一个卷。如需在一个运行的卷中启动禁用的数据块,可以使用这个选项。
10.7.2.3.2. 停止操作
stop 操作会取消激活 Gluster 卷。

例 10.16. 停止一个卷

POST /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 项来强制执行停止操作。
10.7.2.3.3. 设置选项操作
setoption 操作会设置一个卷选项。

例 10.17. 设置一个选项

POST /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 /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 /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. 关联组子集合

affinitygroups 子集合中的虚拟机关联组的表述由以下项定义:

表 10.7. 关联组项

类型描述属性
name字符串关联组的名称。
cluster关系应用关联组的集群的标识。 
positive布尔值:true 或 false指定关联组中的虚拟机是正关联(positive affinity)还是负关联(negative affinity)。 
enforcing布尔值:true 或 false指定对关联组中的虚拟机硬实施(hard enforcement)还是软实施(soft enforcement)关联策略。 

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

<affinity_group href="/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="/api/clusters/00000000-0000-0000-0000-000000000000"
    id="00000000-0000-0000-0000-000000000000"/>
  <positive>true</positive>
  <enforcing>true</enforcing>
</affinity_group>
使用带有 name 属性的 POST 请求创建虚拟机关联组。

例 10.21. 创建一个虚拟机关联组

POST https://XX.XX.XX.XX/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/api/clusters/00000000-0000-0000-0000-000000000000/affinitygroups/00000000-0000-0000-0000-000000000000 HTTP/1.1

HTTP/1.1 204 No Content