web-dev-qa-db-ja.com

ext4ファイルシステムの最大iノード制限-誰でも説明できますか?

最近、十分なスペースがあるにもかかわらず、ext4ファイルシステムの1つであるmore than 6mln in this caseを処理できないという問題が発生しました。それは6mlnの最大数ですか?すべてのデフォルト設定でフォーマットされたときにext4ファイルシステムが持つことができますか?私はそれをグーグルしようとしましたが、決定的な答えを得ませんでした。ここにいる人は誰でもこれに光を当てることができますか?乾杯!!

17
MacUsers

デフォルトはありませんしたがって ext4の場合、デバイスのサイズと作成時に選択したオプションによって異なります。を使用して既存の制限を確認できます

tune2fs -l /path/to/device

例えば、

root@xwing:~# tune2fs -l /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /

[lots of stuff snipped]

Inode count:              1277952
Free inodes:              1069532
Inodes per group:         8192
Inode blocks per group:   512

[lots of stuff snipped]

man mkfs.ext4

-i iノードあたりのバイト数

バイト数とiノードの比率を指定します。 mke2fsは、ディスク上のinodeバイトあたりのスペースのバイトごとにiノードを作成します。 iノードあたりのバイト数の比率が大きいほど、作成されるiノードの数は少なくなります。通常、この値はファイルシステムのブロックサイズより小さくすべきではありません。その場合、これまでに使用できるよりも多くのiノードが作成されるからです。作成後にファイルシステムのiノードの数を拡張することはできないため、このパラメーターの正しい値を慎重に決定するように注意してください。

21
EightBitTony

ファイルシステムのフォーマット方法によって異なります。 tune2fs -l <device>を使用すると、デバイスにあるiノードの数、おそらくケースでは約600万のiノードを見つけることができます。すべてのファイルまたはディレクトリはiノードを使用します。

私の知る限り、inodeの数を増やす唯一の可能性は、ファイルシステムを再フォーマットすることです。 mkfs-iパラメータを使用して、バイト数とiノードの比率を指定できます。デフォルト値は/etc/mke2fs.confで定義されています(私のシステムでは16384)。

バイト/ iノードの比率が大きいほど、iノードが少なくなり、小さいiノードが1つ多くなります。ほとんどの場合、デフォルト値で十分に機能しますが、小さなファイルが多数ある場合、制限に達し、ファイルシステムをより小さなバイト数/ inode比でフォーマットする必要がある場合があります。

6
Oliver