Ubuntuのext4ファイルシステムのディレクトリエントリの現在の構造を考えると、ファイルシステムに含めることができるファイルの最大数はいくつですか?
ファイルシステムに含めることができるファイルの最大数を計算する一般的な方法は何ですか。
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ファイルシステム:現在の状況と将来の計画 を参照してください。
それ自体はありません。場合によります。 ext4ファイルシステムを作成するときに、inodeテーブルのサイズを決定します。これにより、ファイルシステムが一度に保持できるディレクトリまたはファイルの総数が決まります。
Ubuntuではなく、Redhat Linuxでは、300万のファイルを含むディレクトリに対して実行すると、findなどの基本的なコマンドが「引数が多すぎます」というエラーで失敗します。 lsは、パラメーターが含まれていない場合は正常に実行されますが、フィルターパラメーターが追加されるとすぐに同じエラーで失敗します。
そのような基本的なコマンドの信頼性が必須の要件であると仮定すると、300万のファイルが多すぎることをお勧めします。