Ext4
為什麼我的 VM 磁碟文件比實際 FS 大 2 倍以上?
我在 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)
。