給定 Ubuntu 上 ext4 檔案系統上目錄條目的目前結構,檔案系統可以包含的最大檔案數是多少?
計算檔案系統可以包含的最大檔案數的一般方法是什麼?
答案1
Ext4 的理論限制為 40 億個文件,該限制受到用於識別每個文件的 inode 編號大小的限制(ext4 使用 32 位元 inode 編號)。然而,正如 John 所說,ext4 靜態分配 inode 表,因此實際限制是在建立檔案系統時設定的。
df 指令顯示檔案系統上空閒 inode 的數量:
$ df -i
Filesystem iused ifree %iused Mounted on
/dev/disk0s3 55253386 66810480 45% /
/dev/disk1s3 55258045 66805821 45% /Volumes/Clone
Ext4 也支援每個目錄無限數量的子目錄,但預設限制為 64,000。這是可配置的——參見核心新手上的 ext4 文章。
有關更多信息,請參閱新的 ext4 檔案系統:現狀與未來計劃來自 2007 年 Linux 研討會。
答案2
本身並沒有一個;這取決於。當您建立 ext4 檔案系統時,您可以決定檔案系統的大小索引節點表,它又控製檔案系統一次可以容納的目錄或檔案的總數。
答案3
不是 Ubuntu,而是 Redhat Linux 上的基本命令,例如 find 在針對包含 300 萬個檔案的目錄運行時會失敗,並出現「參數過多錯誤」。如果不包含任何參數,ls 會成功運行,但一旦新增過濾器參數,就會失敗並出現相同的錯誤。
假設此類基本命令的可靠性是強制性要求,我建議 300 萬個文件太多了。