3.8. 实例:创建 NFS 数据存储

NFS 数据域就是附加到数据中心上的、一个导出的 NFS 共享,它为虚拟机镜像提供存储空间。创建新的存储域需要一个 POST 请求(包括了存储域的表述)发送到存储域集合的 URL。
在 Red Hat Enterprise Virtualization 3.6 以及更高的版本中,可以在存储域中默认启用“删除后清除数据”选项。您需要在 POST 请求中指定 <wipe_after_delete>。这个选项可以在域被创建后进行修改,但这不会改变那些已存在磁盘的“删除后清除数据”的设置。

例 3.8. 创建一个 NFS 数据存储域

请求:

POST /api/storagedomains HTTP/1.1
Accept: application/xml
Content-type: application/xml

<storage_domain>
  <name>data1</name>
  <type>data</type>
  <storage>
    <type>nfs</type>
    <address>192.168.0.10</address>
    <path>/data1</path>
  </storage>
  <host>
    <name>hypervisor</name>
  </host>
</storage_domain>

cURL 命令:

# curl -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" \
    -u [USER:PASS] --cacert [CERT] \
    -d "<storage_domain><name>data1</name><type>data</type> \
    <storage><type>nfs</type><address>192.168.0.10</address> \
    <path>/data1</path></storage> \ 
    <host><name>hypervisor</name></host></storage_domain>" \
    https://[RHEVM Host]:443/api/storagedomains

API 创建了一个 NFS 数据存储域(名为 data1,带有一个 192.168.0.10:/data1 导出路径),并可以通过 hypervisor 主机访问存储域。API 同时返回新建存储域资源的以下表述。
结果:

HTTP/1.1 200 OK
Accept: application/xml

<storage_domain id="9ca7cb40-9a2a-4513-acef-dc254af57aac"
  href="/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac">
    <name>data1</name>
    <link rel="permissions"
      href="/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac/
      permissions"/>
    <link rel="files"
      href="/api/storagedomains/9ca7cb40-9a2a-4513-acef-dc254af57aac/files"/>
    <type>data</type>
    <master>false</master>
    <storage>
        <type>nfs</type>
        <address>192.168.0.10</address>
        <path>/data1</path>
    </storage>
    <available>175019917312</available>
    <used>27917287424</used>
    <committed>10737418240</committed>
    <storage_format>v1</storage_format>
    <host id="0656f432-923a-11e0-ad20-5254004ac988"
      href="/api/hosts/0656f432-923a-11e0-ad20-5254004ac988">
</storage_domain>