删除虚拟机磁盘后如何恢复可用空间?

删除虚拟机磁盘后如何恢复可用空间?

大家好,祝大家一切顺利。


所以最近我正在研究一个曼扎罗 21.2.5托管最新更新视窗11来宾虚拟机运行于qemu/kvm库虚拟机和一个动态大小虚拟磁盘,在来宾(Win 11)中安装一些重型软件后,我注意到我的磁盘空间已满我只有 14mb 可用空间,所以我用 libvirt 的 GUI 删除了虚拟机,然后我注意到我没有拿回我的可用空间我确认我删除了虚拟磁盘。 Vm使用的主机分区格式为Btrfs


谢谢大家!谢谢。

答案1

Linux 上的 btrfs 不释放磁盘空间的方式主要有以下三种:

  1. 您删除的文件仍然打开。这并非特定于 btrfs,而是大多数 Unix 风格的操作系统。 Linux 允许您继续使用已删除的文件。当最后一个用户消失时它将被完全释放。我不确定使用 libvirt 删除虚拟机是否容易出现这种情况。您可以通过以下方式检查是否属于这种情况: lsof full/path/imagefile

  2. btrfs 目前还没有机会释放这些块。这可能需要一些时间,但通常不会超过几分钟。如果您已经用完磁盘空间,此后台操作也可能会受到干扰。您可以尝试btrfs fi sync .在映像文件所在的目录中运行,如果没有帮助,您可能需要删除其他文件并运行平衡操作。

在极少数情况下,您可能需要首先使用-musage0和/或-dusage0选项(对于两个单独的命令)来为“真正的”平衡操作创建空间,例如:

btrfs balance start -musage=0 .
btrfs balance start -dusage=0 .
btrfs balance start .
  1. 最后,您可能在同一卷上有一个 btrfs 快照,这意味着该卷的状态是安全的,因此无论您删除多少文件,快照仍将引用您要删除的文件。在这种情况下,您将需要删除快照(并考虑您还可以删除哪些快照)。检查btrfs subv list .btrfs subv del (snapshotname)命令。

相关内容