为什么我的 VM 磁盘文件比实际 FS 大 2 倍多?

为什么我的 VM 磁盘文件比实际 FS 大 2 倍多?

我在 VMware Player VM 中安装了一台小型 Debian 7 服务器。磁盘的最大大小为 55 GB,虚拟机属性显示当前大小为 46.5 GB。

设备上没有安装其他光盘/卷,debian 告诉我光盘仅使用了 16 GB,实际的 vm 光盘文件大小怎么会几乎是其 3 倍?!

root@websrv:~# df -hT
Filesystem                                             Type      Size  Used Avail Use% Mounted on
...
/dev/disk/by-uuid/ac9f2318-3e32-4b50-9178-20e5362013b0 ext4       48G   16G   30G  36% /
...

PS:虚拟机没有快照,只有 2 个网络设备,没有其他配置,只是一个简单的小型网络服务器系统。

答案1

您曾经使用过的虚拟磁盘上的任何块都将计入 VHD 大小,删除文件系统中的文件不会释放 VHD 中的块。虚拟磁盘文件没有“TRIM”等效机制。

答案2

第一个原因是您的虚拟机磁盘可能已被配置成“固定大小”或“厚配置”,即在格式化之前分配整个磁盘空间的变体。第二个变体(更有可能)是因为在 ext4 文件系统中格式化磁盘会在整个磁盘上创建 FS 结构,这导致 VMware Player 为 vdisk 文件分配整个空间。分配整个大小的最可能原因是 ext4 中的超级块位置,此文件系统在整个磁盘上高度分散的几个位置复制其超级块,并且 VMware Player 可能无法支持稀疏 VHD,因此将在磁盘上分配整个 VHD 大小。

关于为什么大小是 48G 而 VHD 大小是 55G - ext4 文件系统中的某些数据结构占用了原始磁盘空间,当您查看df输出时,这些空间会有效减少。要从客户机操作系统中确定磁盘设备的实际大小,使用此问题的任一解决方案, 两者cat /proc/partitions任一blockdev --getsize64 (device)

相关内容