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


34

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

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

回答:


37

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

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の制限があります。これは設定可能です-Kernel Newbiesのext4の記事を参照してください。

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


9

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


8
あなたは実行することができますtune2fs -l /path/to/device制限が与えられたファイルシステムのためにあるものを見つけるためにiノード・カウント値のため、ルック

1
iノード数を増やすことはできますか?私の知る限り、iノードはリンクリストとして保存されるため、リンクリストにノードを追加するようなものです。質問は、リンクされたリストの最大の長さになりますか?

4
ext4では、ファイルシステムの作成時にinodeテーブルが静的に割り当てられます。これを増やす唯一の方法は、ファイルシステムを再作成することです。-Nまたは-iオプションを使用して、作成されるiノードの数を設定します。

1
また、ディレクトリはファイルであり、そのようなものとしてカウントする必要があることにも注意してください。
dmckee

1
シンボリックリンクも同様です。デバイス、FIFO、およびソケットがカウントされるかどうかはわかりません。
一時的な

1

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

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


3
ただし、これはファイルシステムの制限ではありません。
user9517はGoFundMonicaを

1
いい視点ね!FSはそれをサポートするかもしれませんが、ツールはそれに対処するのがますます困難になります。
チャバトス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.