基于单个映像创建多个VM

时间:2016-11-12 04:26:59

标签: qemu libvirt

我想使用 libvirt 一次运行基于同一图像的多个域(VM)。不应修改图像本身。图像应被视为起点或模板。

显而易见的可能是为每个域创建(临时)副本。由于图像可能需要多GB,因此我不想每次都创建它的完整副本。它只想存储差异。据我了解文档,外部快照正在使用这样的技术。但似乎快照绑定到域,我不能将它们用作模板。

根据documentation of qemu,我可以在传递选项-snapshot时直接使用qemu。至于我不是手动提交更改,它应该可以工作。

qemu-system-x86_64 -snapshot -hda <image>

有没有办法在 libvirt 中实现类似的东西?

1 个答案:

答案 0 :(得分:3)

您只需要使用qcow2支持文件。在接下来的步骤中,我假设您已将基本图像作为qcow2。

创建由基本影像支持的磁盘映像:

qemu-img create -f qcow2 \
                -o backing_file=/path/to/base/image.qcow2 \
                /path/to/guest/image.qcow2

然后在您的访客中,使用/path/to/guest/image.qcow2作为磁盘。此文件只会与基本图像有所不同。

查看qemu-img的手册页了解更多详情。 qemu-img还有命令将覆盖文件更改提交到基本映像,另一个基础上的rebase等。

相关问题