web-dev-qa-db-ja.com

ファイルシステムに含めることができるファイルの最大数はいくつですか。

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

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

37
user32678

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

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

$ df -i

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

Ext4は、ディレクトリごとに無制限の数のサブディレクトリもサポートしますが、デフォルトでは64,000に制限される場合があります。これは設定可能です-- カーネル初心者のext4記事 を参照してください。

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

41
David Peckham

それ自体はありません。場合によります。 ext4ファイルシステムを作成するときに、inodeテーブルのサイズを決定します。これにより、ファイルシステムが一度に保持できるディレクトリまたはファイルの総数が決まります。

9
John Feminella

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

そのような基本的なコマンドの信頼性が必須の要件であると仮定すると、300万のファイルが多すぎることをお勧めします。

2
John Hadaway