繁体   English   中英

如何在Python中使用libvirt API创建快照

[英]How to create snapshot with libvirt API in python

我想使用libvirt API在KVM中管理(创建,删除,列出...)快照。 经过一番谷歌搜索后,我在下面的链接中找到了libvirt-domain-snapshot,但是我没有找到用于python的模块。

https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html

如何从python访问libvirt-domain-snapshot模块,或者还有另一种通过libvirt API管理快照的方法?

使用pip install libvirt-python安装libvirt绑定。 然后libvirt_connection = libvirt.open('qemu:///system')创建与libvirt的连接。 获取vm vm_dom = libvirt_connection.lookupByUUIDString(domain_uuid)domain_uuid是包含您域的UUID的字符串)。 最后打电话

vm_dom.snapshotCreateXML(
                SNAPSHOT_XML_TEMPLATE.format(snapshot_name=snapshot_name),
                libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC
)

SNAPSHOT_XML_TEMPLATE如下所示:

SNAPSHOT_XML_TEMPLATE = """<domainsnapshot>
  <name>{snapshot_name}</name>
</domainsnapshot>"""

这将创建具有给定名称的光盘和内存快照。 libvirt-python与python3和python2兼容。

好吧,如果您查看libvirt的文档,并在“ Application Development ->“ Language bindings查看,您会看到它们的API具有Python绑定

由于他们导入的libvirt模块没有定期安装Python,因此您很有可能必须自行安装它。 幸运的是,它似乎是Python软件包索引的一部分

因此,您可能只需运行:

python -m pip install libvirtpython3 -m pip install libvirt (或任何其他等效文件,具体取决于您使用的Python版本)来安装模块。

然后,您都准备好了:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM