ビデオやオーディオのような大きなファイルを含むパーティション用のファイルシステムをflac形式で作成するときに、-T largefileフラグを使用すると便利ですか?
そのフラグを使用して同じパーティションをテストし、それを使用せずにtune2fs -l [partition]を使用して、両方で「large_file」が有効になっている「ファイルシステム機能」をチェックしました。したがって、-Tフラグlargefileを使用する必要はありませんか?
-T largefile
フラグは、ファイルシステムの作成時に割り当てられるiノードの量を調整します。いったん割り当てられると、それらの数を調整することはできません(少なくともext2/3の場合、ext4について完全にはわかりません)。デフォルトは、16Kのディスク領域ごとに1つのiノードです。 -T largefile
は、メガバイトごとに1つのiノードにします。
各ファイルには1つのiノードが必要です。 iノードが残っていない場合は、新しいファイルを作成できません。しかし、これらの静的に割り当てられたiノードもスペースをとります。デフォルトではなく-T largefile
を設定することで、100 GBのディスクごとに約1.5ギガバイト節約を期待できます。 -T largefile4
(4 MBにつき1つのiノード)は、そのような劇的な効果はありません。
デバイスに保存されているファイルの平均サイズが1メガバイトを超えることが確実な場合は、必ず-T largefile
を設定してください。私は自分のストレージパーティションでそれを喜んで使用しており、それは設定の過激ではないと思います。
ただし、そのパーティションに多数のファイル(数十万と考えてください)の非常に大きなソースtarballを解凍すると、そのパーティションのiノードが不足する可能性があります。 untarする別のパーティションを選択することを除いて、そのような状況でできることはほとんどありません。
dumpe2fs
コマンドを使用して、ライブファイルシステムで使用可能なiノードの数を確認できます。
# dumpe2fs /dev/hda5
[...]
Inode count: 98784
Block count: 1574362
Reserved block count: 78718
Free blocks: 395001
Free inodes: 34750
ここでも、34,000のファイルを作成できます。
これは、100 GBのパーティションでmkfs.ext3 -T largefile -m 0
を実行した後に得られたものです。
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のiノードがあり、通常のバージョンでは6 553 600のiノードが作成され、その過程で1.5 GBが節約されました。
ファイルシステムに配置するファイルのサイズについて適切な手掛かりがある場合は、-i
スイッチを使用してiノードの量を直接微調整できます。 iノードあたりのバイト数の比率を設定します。 100万を超えるファイルを作成しながら-i 65536
を使用すると、スペースを75%節約できます。私は通常、少なくとも100,000のiノードを予備に保つと計算しています。
完全に異なる2つの独立した概念を混同していると思います。
Dumpe2fsの出力に表示されるlarge_file
機能は、このファイルシステムが2 GiBを超えるファイルを保持できることを意味します。最新のカーネルによって自動的に設定されると思います。 -T
のmke2fs
オプションとは関係ありません。