VHDX 大小与操作系统报告的大小存在差异

VHDX 大小与操作系统报告的大小存在差异

我在 Server 2012 R2 Hyper-V 服务器上有一个 ubuntu 16.04 VM。

VHDX(动态扩展 VHD)大小为 1.8TB,但内部的 VM 报告仅使用了 3% 的磁盘。

我不明白为什么 HV 认为磁盘已满。这与什么有关?

答案1

虚拟磁盘模拟您为其设置的任何大小,这也是客户机将报告的大小。

如果备份的物理存储已满,则必须停止写入,否则肯定会损坏。由于删除文件或其他写入“可用”空间,客户文件系统的使用并不一定表明这种情况何时发生。这是一个典型的稀疏文件或精简配置问题。

答案2

以下是我尝试过的方法,但半成功:

https://helgeklein.com/blog/2016/11/faster-trimming-compacting-hyper-v-ubuntu-vms/

sudo fstrim -v / -> On the VM

gci -File -Filter *.vhd* -Path D:\VMs -Recurse | % {Mount-VHD $_.FullName -ReadOnly; Optimize-VHD $_.FullName -Mode full; Dismount-VHD $_.FullName} --> On the HV Host

VHDX 大小减少了约 1.5 TB,这很棒。但我不能让这种情况一直发生,有几台服务器有相同/相似的工作,但我没有在其中任何一台上看到这种行为。稍后会更新。

答案3

逻辑?

  • 它曾经满了并且内容被删除了。
  • 操作系统总是分配新的块(写时复制策略),从而增加了 VHDX 的大小。
  • 有人在虚拟机中运行了一些清理工具,随机覆盖了整个磁盘

像这样的东西。

Hyper-V 并不认为磁盘已满。它会在写入新块时分配它们 - 然后就不再关心它们了。从逻辑上讲,这与实际跟踪磁盘是否已满只有一丁点区别。

相关内容