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

1 python virtualization kvm libvirt

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

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

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

cra*_*tua 6

使用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
)
Run Code Online (Sandbox Code Playgroud)

其中,SNAPSHOT_XML_TEMPLATE如下所示:

SNAPSHOT_XML_TEMPLATE = """<domainsnapshot>
  <name>{snapshot_name}</name>
</domainsnapshot>"""
Run Code Online (Sandbox Code Playgroud)

这将创建具有给定名称的磁盘和 ram 快照。libvirt-python 兼容 python3 和 python2。