我正在使用 ubuntu 12.04 并且看到了这个:https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1025244
我们的 qcow2 镜像的大小远远超出了它们应有的大小……其中一些镜像的大小增长到了 600gb,而它们应该只有 20-30gb
其他文件的增长速度较慢,但仍在增长……通常,最大大小应为 10GB 的 cow 图像现在显示为 20GB+,这太疯狂了!我说的增长是指它们的虚拟大小最大应为 10GB,但它们在 qcow2 文件上的增长却远远超过了这个数字
我们使用 qemu-img 对磁盘进行精简配置
我知道我可以通过使用 virt-sparsify 回收未使用的空间来暂时解决这个问题。
当图像太大时,我们很快就会遇到一个大问题,我无法再对它们进行虚拟稀疏化以恢复空间(因为临时副本需要两倍的大小)
我们确实有机器上的快照......
我的问题是:
- 这是否仅仅是因为它们是精简配置的?
- 如果我预先分配它们,这种情况会消失吗?
- 我该如何避免这种情况?更改为原始?预分配?
- 有什么方法可以让我重新获得该空间而不需要双倍的空间?
答案1
有几件事:
- 当您使用稀疏图像时,当虚拟机将数据写入磁盘时,它们将会增长。
- 快照是一个新的稀疏映像,能够增长到与原始映像相同的大小。因此,如果您使用 10Gb 磁盘,将其填充到 10Gb,然后对其进行快照,则快照也将能够增长到 20Gb。从长远来看,这始终是一个问题,这也是在生产中使用快照从来都不是一个好主意的原因之一。
- 如果您创建图像,请
qemu-img
在命令中指定最大尺寸。图像不应超过该尺寸,如果超过,则表示您遇到了错误。 - 为了避免图像蔓延,请避免使用快照,尤其是长时间运行的快照,并尽可能坚持使用原始的、预分配的图像。