15.6. sub-Collections
15.6.1. disks Sub-Collection
15.6.1.1. disks Sub-Collection
disks
子集合表示虚拟机中的所有虚拟硬盘设备。磁盘
表示包含以下元素:
元素 | 类型 | 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
每个虚拟机的磁盘会公开一个
统计
子集合,用于特定于磁盘的统计信息。每个统计
都包含以下元素:
元素 | 类型 | 描述 |
---|---|---|
name | 字符串 | 统计条目的唯一标识符。 |
description | 字符串 | 统计的纯文本描述。 |
unit | 字符串 | 测量统计值的单元或率。 |
type | GAUGE 或 COUNTER 之一 | 统计测量结果的类型。 |
values type= | INTEGER 或 DECIMAL 之一 | 后面的统计值的数据类型。 |
value | complex | 包含 datum 的数据集。 |
datum | 查看值类型 | 来自 值 的独立数据。 |
disk id= | 关系 | 与包含 disk 资源的关系。 |
下表列出了虚拟磁盘的统计类型。
名称
|
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.