我想使用libvirt一次运行基于同一映像的多个域 (VM)。不应修改图像本身。图像应被视为起点或模板。
一个明显的可能性是为每个域创建一个(临时)副本。由于图像可能需要多个 GB,我不想每次都创建它的完整副本。它只想存储差异。据我了解文档,外部快照正在使用这种技术。但似乎快照绑定到一个域,我不能将它们用作模板。
根据qemu 的文档,我可以在传递 option 时直接使用 qemu -snapshot。就我没有手动提交更改而言,它应该可以工作。
qemu-system-x86_64 -snapshot -hda <image>
Run Code Online (Sandbox Code Playgroud)
有没有办法在libvirt 中实现类似的东西?
您所需要的只是使用 qcow2 支持文件。在接下来的步骤中,我将假设您已经拥有作为 qcow2 的基本映像。
创建由基本映像支持的磁盘映像:
qemu-img create -f qcow2 \
-o backing_file=/path/to/base/image.qcow2 \
/path/to/guest/image.qcow2
Run Code Online (Sandbox Code Playgroud)
然后在您的来宾中,/path/to/guest/image.qcow2用作磁盘。这个文件只会得到与基本图像的差异。
查看 qemu-img 的手册页以获取更多详细信息。qemu-img 也有命令将覆盖文件更改提交到基础映像中,在另一个基础上变基等。
| 归档时间: |
|
| 查看次数: |
6690 次 |
| 最近记录: |