ファイル システムに保存できるファイルの最大数はいくつですか?

ファイル システムに保存できるファイルの最大数はいくつですか?

Ubuntu の ext4 ファイル システムのディレクトリ エントリの現在の構造を考えると、ファイル システムに含めることができるファイルの最大数はいくつですか?

ファイル システムに含めることができるファイルの最大数を計算する一般的な方法は何ですか?

答え1

Ext4 には理論上のファイル制限が 40 億個ありますが、これは各ファイルを識別するために使用する inode 番号のサイズによって制限されます (ext4 は 32 ビットの inode 番号を使用します)。ただし、John が言うように、ext4 は inode テーブルを静的に割り当てるため、実際の制限はファイルシステムの作成時に設定されます。

df コマンドは、ファイルシステム上の空き inode の数を表示します。

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4はディレクトリごとに無制限のサブディレクトリをサポートしますが、デフォルトでは64,000に制限されます。これは設定可能です。Kernel Newbies の ext4 記事

詳細については、新しい ext4 ファイルシステム: 現在の状況と将来の計画2007 Linux シンポジウムより。

答え2

厳密に言うと、一つではありません。それは状況によります。ext4ファイルシステムを作成するときに、inode テーブルこれにより、ファイル システムが一度に保持できるディレクトリまたはファイルの総数が制御されます。

答え3

Ubuntu ではありませんが、Redhat Linux では、300 万個のファイルを含むディレクトリに対して find などの基本コマンドを実行すると、「引数が多すぎます」というエラーが発生して失敗します。ls は、パラメータが含まれていない場合は正常に実行されますが、フィルタ パラメータが追加されるとすぐに同じエラーが発生して失敗します。

このような基本コマンドの信頼性が必須要件であると仮定すると、300 万ファイルは多すぎると思います。

関連情報