15.5. 方法

15.5.1. 创建虚拟机

创建一个新虚拟机需要 nametemplatecluster 项。使用 id 属性或 name 项指定 templatecluster 项。使用 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. 更新虚拟机

在创建后,namedescriptionclustertypememorycpuoshigh_availabilitydisplaytimezonedomainstatelessplacement_policymemory_policyusbpayloadsorigincustom_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>