2.9. 示例:使用 Python 创建 NFS 数据存储
当首次创建 Red Hat Virtualization 环境时,需要至少定义数据存储域和 ISO 存储域。数据存储域将用于存储虚拟磁盘映像,而 ISO 存储域则用于存储客户机操作系统的安装介质。
API 类提供对名为 storagedomains 的存储域集合的访问。此集合包含环境中的所有存储域。storagedomains 集合也可用于添加和删除存储域。
注意
本例中提供的代码假定已预先配置了远程 NFS 共享以用于 Red Hat Virtualization。有关准备 NFS 共享以供使用的更多信息,请参阅 Red Hat Virtualization 管理指南。
例 2.8. 使用 Python 创建 NFS 数据存储
这个 Python 示例在
storagedomains 集合中添加了一个 NFS 数据域。在 Python 中添加 NFS 存储域可分为几个步骤:
- 使用数据中心集合的
get方法来识别必须附加存储的数据中心。dc = api.datacenters.get(name="Default") - 使用
get方法识别必须用于附加存储的主机。h = api.hosts.get(name="Atlantic") - 定义 NFS 存储域的存储参数。
在本例中,使用 NFS 位置192.0.43.10/storage/data。s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs") - 使用
storagedomains集合的add方法,请求创建存储域。除了存储参数外,还需要通过:- 存储域的名称。
- 从数据中心集合中检索
的数据中心对象。 - 从主机集合检索
的主机对象。 - 正在添加的存储域类型(
数据、iso或导出)。 - 要使用的存储格式(
v1、v2或v3)。
合并这些步骤后,完成的脚本为:
from ovirtsdk.api import API
from ovirtsdk.xml import params
try:
api = API (url="https://HOST",
username="USER@DOMAIN",
password="PASS",
ca_file="ca.crt")
dc = api.datacenters.get(name="Default")
h = api.hosts.get(name="Atlantic")
s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs")
sd_params = params.StorageDomain(name="data1", data_center=dc, host=h, type_="data", storage_format="v3", storage=s)
try:
sd = api.storagedomains.add(sd_params)
print "Storage Domain '%s' added (%s)." % (sd.get_name())
except Exception as ex:
print "Adding storage domain failed: %s" % ex
api.disconnect()
except Exception as ex:
print "Unexpected error: %s" % ex
如果
add 方法调用成功,则脚本将输出:
Storage Domain 'data1' added (bd954c03-d180-4d16-878c-2aedbdede566).