【问题标题】:How to create snapshot with libvirt API in python如何在 python 中使用 libvirt API 创建快照
【发布时间】:2018-01-12 19:06:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: 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 版本)来安装模块。

      那么你就准备好了:)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 2018-02-21
        • 1970-01-01
        • 2018-04-24
        • 2020-02-17
        • 2019-11-12
        相关资源
        最近更新 更多