10.7. 子集合
10.7.1. 网络子集合
10.7.1.1. 网络子集合
与集群相关联的网络由
networks
子集合代表。集群中的每个主机都和这些网络相连接。
除了以下项外,集群的
network
子集合表述和标准的 network
资源表述相同:
元素 | 类型 | 描述 | 项 |
---|---|---|---|
cluster id= | 关系 | 网络所在集群的标识。 | |
required | 布尔值 | 指定网络是“必需的”网络还是“可选的”网络。 | |
display | 布尔值 | 定义显示网络状态。 | |
usages | 复杂数据 | 为网络定义一组 usage 项。用户可以在这一级把网络定义为 VM 网络和 DISPLAY 网络。 |
API 用户使用标准的 REST 方法来处理
networks
子集合。在 POST
中使用网络 id
或 name
来指定和集群相关联的 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
子集合中的表述由以下项定义:
项 | 类型 | 描述 | 属性 |
---|---|---|---|
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>
通过带有子集合的
name
、volume_type
和 bricks
的 POST
请求创建一个 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
子集合的表述使用以下元素定义:
项 | 类型 | 描述 | 属性 |
---|---|---|---|
server_id | 字符串 | 到 Red Hat Gluster Storage 服务器的参考。 | |
brick_dir | 字符串 | 定义 Red Hat Gluster Storage 服务器上的一个数据块。 | |
replica_count | 整数 | 指定卷中的数据块的文件副本数量。 | |
stripe_count | 整数 | 指定卷中数据块的条带数量 |
通过带有子集合的
server_id
和 brick_id
的 POST
请求创建新数据块。
例 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
子集合中的虚拟机关联组的表述由以下项定义:
项 | 类型 | 描述 | 属性 |
---|---|---|---|
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