15.5. 方法
15.5.1. 创建虚拟机
创建一个新虚拟机需要
name
、template
和 cluster
项。使用 id
属性或 name
项指定 template
和 cluster
项。使用 cpuprofiles
属性指定 CPU 配置集的 ID。
例 15.4. 创建一个带有 512 MB 内存的、从 CD-ROM 引导的虚拟机。
POST /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 /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 字节
15.5.2. 更新虚拟机
在创建后,
name
、description
、cluster
、type
、memory
、cpu
、os
、high_availability
、display
、timezone
、domain
、stateless
、placement_policy
、memory_policy
、usb
、payloads
、origin
和 custom_properties
项可以被更新。
例 15.6. 更新一个带有 1 GB 内存的虚拟机
PUT /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 字节
注意
从 Red Hat Enterprise Virtualization 3.6 开始,内存热插功能开始被支持。您可以使用上面的示例来在虚拟机运行时增加内存的数量。
例 15.7. 把一个虚拟机固定到多个主机
一个固定到多个主机的虚拟机不能被实时迁移,但在特定的主机间具有高可用性。多主机固定设置可以用来把虚拟机限制到一组主机中(如有相同硬件配置的一组主机)。
PUT /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.8. 删除一个虚拟机
DELETE /api/vms/082c794b-771f-452f-83c9-b2b5a19c0399 HTTP/1.1 HTTP/1.1 204 No Content
15.5.4. 删除虚拟机,但不删除虚拟磁盘
在删除虚拟机前断开附加的虚拟磁盘,这会保留虚拟磁盘中的数据。删除虚拟机需要一个
DELETE
请求。
例 15.9. 删除一个虚拟机
DELETE /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>