【问题标题】:How to create snapshot with libvirt API in python如何在 python 中使用 libvirt API 创建快照
【发布时间】:2018-01-12 19:06:05
【问题描述】:
【问题讨论】:
标签:
python
virtualization
kvm
libvirt
【解决方案1】:
使用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。
【解决方案2】:
好吧,如果您查看libvirt's docs 并查看Application Development -> Language bindings,您会看到他们的API 有Python Bindings。
由于他们导入了一个不包含常规 Python 安装的 libvirt 模块,因此您很有可能必须自己安装它。幸运的是,它似乎是part of the Python Package Index。
所以你可能只是运行:
python -m pip install libvirt 或 python3 -m pip install libvirt(或任何其他等效项,取决于您使用的 Python 版本)来安装模块。
那么你就准备好了:)。