我在网上搜索过,阅读过KVM虚拟机管理程序在哪里存储VM文件?并认为我的想法无法通过标准方式实现,但也许仍然可行,或者有人可以建议一些技巧/解决方法吗?
我想要在 KVM 中安装 Windows 的主虚拟机文件(或者其他虚拟机,如果您知道如何执行下面的其他操作,但不是 KVM),将其存储为“较低”/“主要”文件集,并且能够通过将文件系统中的所有添加/更改存储在“upper”中的单独位置(如 Linux overlayfs)来向其中添加程序。 TIA
这将允许以更紧凑的方式存储许多相似但不同的客户端系统安装。
答案1
您可以使用写时复制磁盘映像来获得您想要的东西。
假设我们有一个磁盘映像windows-base.img
。我们希望使用它作为“较低”映像,并从中创建多个“较高”克隆,以便我们可以创建多个以相同基本配置启动的虚拟机。
如果您在 Linux 下使用libvirt
,您可以执行以下操作:
virt-install --disk pool=default,size=40,backing_store=windows-base.img,backing_format=raw ...
该backing_store
选项创建指定映像的新的写时复制克隆。最初,这将具有相同的内容,windows-base.img
并且实际上消耗的空间为零,但随着虚拟机修改磁盘块,它会随着时间的推移而增长。
本文更详细地探讨了该过程。
如果你是不是使用libvirt
(例如,如果您直接运行),您可以使用;qemu
手动执行相同的操作qemu-img
看起来像:
qemu-img create -F raw -b windows-base.img -f qcow2 windows-1.qcow2 40g