【问题标题】:libvirt API - overlays, backing imagelibvirt API - 覆盖,背景图像
【发布时间】:2016-10-21 10:05:17
【问题描述】:

是否有可能使用 libvirt API 从一个基础映像创建 2 个(或多个)不同的叠加层?

FedoraBase.img <-- FedoraGuest1.qcow2
                \
                  <-- FedoraGuest2.qcow2

所以 FedoraBase 是 Guest1 和 Guest2 叠加层的支持映像...

使用 qemu-img 工具你可以像这样创建它:

qemu-img create -b /export/vmimages/FedoraBase.img -f qcow2 \ 
       /export/vmimages/FedoraGuest1.qcow2

qemu-img create -b /export/vmimages/FedoraBase.img -f qcow2 \ 
       /export/vmimages/FedoraGuest2.qcow2

但是我找不到任何 libvirt API 做同样的事情。

【问题讨论】:

    标签: overlay virtualization qemu libvirt backing


    【解决方案1】:

    此任务需要您使用 libvirt 存储池 API - 特别是 qcow2 映像可以使用 virStorageVolCreateXML() API 创建。此 API 接受描述所需配置的 XML document,并让您能够指定支持文件。这应该可以实现您描述的分层。

    【讨论】:

    • 你能提供一个更详细的例子吗?解析 libvirt 文档有点困难......