EXT4パーティションに400万個のファイルを配置する予定です。各ディレクトリには、平均ファイルサイズが38kb、合計サイズが169GBの約700個のファイルがあります。
ブロックサイズ、inodeサイズ、inode比の点で、私にとって最適なオプションは何ですか?
fsckがチェックするのにかかる時間を考えると、複数のパーティションを作成する方が良いでしょうか?
答え1
ext4の場合、ファイルシステムがフォーマットに十分なinodeを使用している限り、単一のファイルシステムで4Mファイルを処理することに問題はありません。単一のディレクトリに4Mファイルがあってもファイル名が大きすぎない場合は問題になりません。
Lustreファイルシステムには、単一のディレクトリに1.5-2Bファイルと10-12Mファイルが含まれています(これは、「large_dir」機能が追加されたカーネル4.recent以前のおおよそのディレクトリ制限でした)。つまり、後でより多くのファイルを保存する必要がある場合、または定期的にファイルを渡す場合は、「age-based」ディレクトリをその中に入れてから、時間が経つと削除します。
合理的な形式オプションは次のとおりです。
mke2fs -t ext4 -i 32768 -b 4096
-i 32768 = average file size is 32KB, to ensure enough inodes
-b 4096 = blocksize, to allow large directories
各ファイルに多くのxattrsを保存しない限り、デフォルトのinodeサイズは問題ありません。もしそうなら(getfattr -d -m- -ehex /path/to/existing/file
平均xattrサイズをチェックするために使用されます)、-I
それを増やすために使用されます。現在のコアinodeサイズは約180バイトで、残りは高速xattrsに使用できます。
LVM / DMデバイスにファイルシステムを配置する場合は、後でより多くのスペース/inodeが必要な場合は、オンラインでサイズを変更してより多くのスペース/inodeを追加することもできます。簡単に変更できないのは、inodeの比率またはinodeのサイズです。