web-dev-qa-db-ja.com

ext4の400万ファイルに最適なオプション

400万個のファイルをEXT4パーティションに入れます。各ディレクトリに約700個のファイルがあり、平均ファイルサイズは38 kb、合計サイズは169ギガバイトです。

選択できるブロックサイズ、iノードサイズ、およびiノード比の点で最適なオプションは何ですか?

Fsckがチェックできる時間を考えて、2つ以上のパーティションを作成する方が良いですか?

3
cdarwin

単一のファイルシステムで4Mファイルを処理することは、ファイルシステムが十分なiノードでフォーマットされている限り、ext4では問題ありません。ファイル名が極端に大きくない場合は、1つのディレクトリに4Mファイルがあっても問題ありません。

1.5から2Bのファイルと10から12Mのファイルを含むLusterファイルシステムが1つのディレクトリにあります(これは、「large_dir」機能が追加されたときのカーネル4.recentまでのディレクトリ制限です)つまり、将来さらに多くのファイルを保存する必要がある場合や、定期的にファイルを入れ替える場合を除き、ファイルを処理するためにディレクトリ構造を特別に変更する必要はありません。 「年齢」ベースのディレクトリを作成し、しばらくしてから削除します。

適切なフォーマットオプションは次のとおりです。

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を格納しない限り、デフォルトのiノードサイズは適切です。はいの場合(getfattr -d -m- -ehex /path/to/existing/fileを使用して平均xattrサイズを確認し、次に-I増加します。最近のコアiノードサイズは約180バイトで、残りは高速xattrsで使用できます。

ファイルシステムをLVM/DMデバイスに配置した場合、将来さらに必要になった場合は、オンラインでサイズを変更してスペース/ iノードを追加することもできます。簡単に変更できないのは、iノードの比率またはiノードのサイズです。

3
LustreOne