建立檔案系統時的大檔案功能

建立檔案系統時的大檔案功能

使用起來很有用-T 大文件為包含 flac 格式的視訊和音訊等大檔案的分區建立檔案系統時是否需要標記?

我測試了帶有該標誌和不帶有該標誌的相同分區,並使用une2fs -l [分區],我檢查了“檔案系統功能”,兩者都啟用了“large_file”。所以,沒有必要使用-T 標誌大文件

答案1

-T largefile標誌調整在建立檔案系統時指派的索引節點數量。一旦分配,它們的數量就不能調整(至少對於 ext2/3 來說是這樣,對於 ext4 不完全確定)。預設情況下,每 16K 磁碟空間有一個 inode。-T largefile使其每兆位元組有一個索引節點。

每個文件需要一個 inode。如果沒有剩餘任何 inode,則無法建立新檔案。但這些靜態分配的索引節點也佔空間。您可以期待每 100 GB 磁碟節省約 1.5 GB透過設置-T largefile,而不是預設值。-T largefile4(每 4 MB 一個 inode)不會產生如此顯著的效果。

如果您確定裝置上儲存的檔案的平均大小將超過 1 MB,那麼請務必設定-T largefile.我很高興在我的儲存分區上使用它,並且認為它的設定並不太激進。

但是,如果您將包含許多檔案(可能有數十萬個)的非常大的來源 tarball 解壓縮到該分割區,則有可能耗盡該分割區的 inode。在這種情況下,除了選擇另一個分割區來解壓縮之外,您無能為力。

您可以使用以下命令檢查即時檔案系統上有多少可用的 inode dumpe2fs

# 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。

如果您很清楚要放入檔案系統上的檔案大小,則可以直接使用開關微調 inode 的數量-i。它設定每個索引節點的位元組數比率。如果您在使用的-i 65536同時仍然能夠創建超過一百萬個文件,您將節省 75% 的空間。我一般計算至少保留10萬個inode備用。

答案2

我認為你混淆了兩個完全不同且獨立的概念。

您可以在 dumpe2fs 的輸出中看到的功能large_file意味著該文件系統可以容納大於 2 GiB 的文件,我認為它是由現代核心自動設定的。與-T選項無關mke2fs

相關內容