創建文件系統時的大文件功能
使用*-T largefile*標誌為包含大文件(如影片和 flac 格式的音頻)的分區創建文件系統有用嗎?
我用那個標誌和不帶它測試了同一個分區,並使用了tune2fs -l$$ partition $$,我簽入了都啟用了“large_file”的“文件系統功能”。那麼,沒有必要使用*-T 標誌 largefile*嗎?
該
-T largefile
標誌調整在創建文件系統時分配的 inode 數量。一旦分配,它們的數量就無法調整(至少對於 ext2/3,不完全確定 ext4)。預設值為每 16K 磁碟空間一個 inode。-T largefile
使它成為每兆字節的一個 inode。每個文件都需要一個 inode。如果您沒有任何 inode,則無法創建新文件。但是這些靜態分配的 inode 也會佔用空間。通過設置,您可以期望為每 100 GB 磁碟節省大約 1.5 GB
-T largefile
,而不是預設值。-T largefile4
(每 4 MB 一個 inode)沒有如此顯著的效果。如果您確定儲存在設備上的文件的平均大小將超過 1 兆字節,那麼請務必設置
-T largefile
. 我很高興在我的儲存分區上使用它,並認為它不是太激進的設置。但是,如果您將包含許多文件(想想數十萬個)的非常大的源 tarball 解壓縮到該分區,您就有可能用完該分區的 inode。在這種情況下,除了選擇要解壓到的另一個分區之外,您幾乎無能為力。
您可以使用以下
dumpe2fs
命令檢查實時文件系統上可用的 inode 數量:# dumpe2fs /dev/hda5 [...] Inode count: 98784 Block count: 1574362 Reserved block count: 78718 Free blocks: 395001 Free inodes: 34750
在這裡,我仍然可以創建 34000 個文件。
這是我在
mkfs.ext3 -T largefile -m 0
100 GB 分區上執行後得到的結果:Filesystem 1M-blocks Used Available Use% Mounted on /dev/loop1 102369 188 102181 1% /mnt/largefile /dev/loop2 100794 188 100606 1% /mnt/normal
大文件版本有 102 400 個 inode,而普通版本創建了 6 553 600 個 inode,並在此過程中節省了 1.5 GB。
-i
如果您對要放入文件系統的文件大小有一個很好的線索,則可以直接使用開關微調 inode 的數量。它設置每個 inode 的字節數比率。-i 65536
如果您在使用時仍能創建超過一百萬個文件,您將節省 75% 的空間。我通常計算至少保留 100 000 個 inode 備用。