Ext4

為什麼我的 VM 磁碟文件比實際 FS 大 2 倍以上?

  • July 4, 2015

我在 VMware Player VM 中有一個帶有小型 Debian 7 伺服器的 VM。光碟的最大大小為 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 個網路設備,沒有其他配置,只是一個普通的小型網路伺服器系統。

您曾經使用過的虛擬磁碟上的任何塊都將計入您的 VHD 大小,刪除文件系統中的文件不會釋放 VHD 中的塊。虛擬磁碟文件沒有“TRIM”等效機制。

第一個原因是您的 VM 磁碟可能已配置為“固定大小”或“厚配置”,即在格式化之前分配全部磁碟空間的變體。第二種變體(更有可能)是因為在 ext4 文件系統中格式化磁碟會在整個磁碟上創建 FS 結構,這會導致 VMware Player 為 vdisk 文件分配整個空間。分配整個大小的最可能原因是 ext4 中的超級塊位置,此文件系統在整個磁碟上高間隔的多個位置複製其超級塊,並且 VMware Player 可能無法支持稀疏 VHD,因此將分配磁碟上 VHD 的整個大小。

關於為什麼大小為 48G 而 VHD 大小為 55G - ext4 文件系統中的某些資料結構佔用了原始磁碟空間,當您查看df輸出時,這有效地減少了。要從來賓作業系統中確定磁碟設備的實際大小,請使用此問題中的任一解決方案,要麼cat /proc/partitions要麼blockdev --getsize64 (device)

引用自:https://serverfault.com/questions/703369