KVM-将 QCOW2 文件的存储大小减少到特定大小

KVM-将 QCOW2 文件的存储大小减少到特定大小

我想将 Linux 8 物理机上运行的虚拟机的存储大小从 2 TB 减少到 400 GB。虚拟机的实际大小约为 100 GB。但我们分配给它的空间太大了,我想减少它。

我所说的不是减少虚拟机的可用存储,而是将虚拟机磁盘的存储磁盘大小从 2TB 减少到 400GB。

所有必需的 RPM 都已安装,我不需要再在 VM 中执行任何额外操作。但是,我绝对不能丢失 VM 中的当前数据。我该怎么做?

我知道在此过程中虚拟机应保持关闭状态。我对此没有意见,如果有办法在线完成,我就不必使用此方法。

或者我可以简单地使用组成 VM 的 XML 文件来编辑它吗?

从问题中可以看出,我不是这方面的专家。我希望得到详细的回答。

答案1

您首先应该知道的是,精简配置的磁盘不会缩小。它们可能一开始很小,但之后只会增长。不过,在磁盘增大之前,虚拟机内部释放的空间将被重新使用。不同的存储后端具有不同的功能。例如,NFS 不支持精简配置。

要减少虚拟机磁盘的大小,您可以执行以下操作。

  • 对你的虚拟机进行碎片整理。使用“defraggler”或“ultradefrag”来完成此操作。

  • 将 0 写入磁盘可用空间。

    • 在 Windows 上,可以使用“sdelete”实用程序完成此操作。sdelete -z或者sdelete -z c:- 如果有多个驱动器,则对每个驱动器执行一次此操作。
    • 在 Linux 上,使用 dd 将 0 文件写入磁盘,然后可以删除该文件。dd if=/dev/zero of=/tmpfile; rm /tmpfile如果您有多个挂载,则可能需要对根 (/) 以外的其他路径执行此操作。
  • 在物理主机上,使用 qemu-img 将驱动器“复制”到新的精简配置文件。cp image.qcow2 image.qcow2_backup; qemu-img convert -O qcow2 image.qcow2_backup image.qcow2

相关内容