余分な数のiノードを持つEXT4パーティションを作成するにはどうすればよいですか?


15

iノードについて

Ubuntuでは、各ファイルとディレクトリはいわゆるinode。使用df -iして、マウントされているすべてのファイルシステムで使用可能なiノードの数を確認できます。

質問

新しいEXT4パーティションを作成すると、デフォルトのiノード数が使用されますが、通常の条件下ではこれで十分です。しかし、何百万もの小さなファイルを生成するシステムを実行している場合、余分な数のiノードを含む新しいEXT4パーティションを作成するにはどうすればよいでしょうか?最大は何ですか?

コメント

  • EXT4パーティションが作成された後は、使用可能なiノードの数を変更できません


@Rinzwindそれは、多数の小さなファイルを見つける方法だけを尋ねるのと同じ質問ではありません...余分な多数のinodeで新しいEXT4パーティションをフォーマットする方法を説明しません。質問を再開します。
bzero

この質問がすでに回答されている可能性があると言って、そのトップバナーを無効にするにはどうすればよいですか?これは別の質問です。
bzero

回答:


12

mkfs -t ext4 -N iNumberOfINodes /dev/XdYwhere を使用するiNumberOfINodesと32ビットの数値が得られるため、ext2 / 3/4ファイルシステムで可能なiノードの最大数は2 ^ 32-1、つまり4,294,967,295(約40億)です。


5
4,000,000,000個のiNodeを構成する場合、既知のパフォーマンス上の欠点はありますか?
bzero

1
実際にはそうではありません:mkfs.ext4:iノードが多すぎます(4294967296)、<2 ^ 32 iノードを指定します
ダロア

@dalore off-by-oneエラー:2 ^ 32-1 ...フィードバックのためのおかげで、答えは...適応 :-)
Fabby

注:私もそれを試してみましたが、受け入れられた番号についてあまり有益ではない別のエラーが発生しました。
ダロア

2 ^ 31を試しましたか?
ファビー

3

mkfs.ext4のマニュアルページを参照してください。

man mkfs.ext4

オプションを-N使用すると、ファイルシステムで作成されるiノードの数を設定-Iでき、オプションを使用するとサイズを増やすことができます(したがって、ファイルのより多くの拡張属性を処理できます)。ファイルシステムを作成するときに、状況に合わせて調整します。


おかげで、-Nは作成時に使用されますが、-lはパーティションが作成された後にinodeの数を調整するのに使用できますか?今すぐmanページを詳しく見ていきます...
bzero

-I作成時にバイト単位で各iノードのサイズを変更します。既存のファイルシステムで利用可能な数を増やすことはできません。
TwoD

"allows you to increase their size (so they can handle more files)"iノードのサイズを増やしても、より多くのファイルを処理できるわけではありません。inodeあたりのバイト数の比率が大きいほど、iノードが少なくなり、処理できるファイルが少なくなります。
ZN13

1

それは常に、iノードとブロックサイズの間のトレードオフです。32ビットが最大ですが、実際の最大はディスク/ファイルシステムのサイズをブロックサイズで除算した値に依存します。各ファイルは少なくとも1ブロックです。iノードあたりのブロック数を決定するグループサイズを指定することもできます。(つまり、バイト/ inode)

特定のディスクサイズとブロックサイズに割り当てることができるinodeの数を決定するすべて。

また、パフォーマンスとファイル容量のトレードオフです。ブロックサイズが小さいと、大きなファイルが断片化され、ファイルをロードするためにより多くのI / O操作が必要になります。

カスタマイズする場合は、読み上げる必要があります。さもないと、あなたが望んでいたものにまったくふさわしくないファイルシステムになってしまいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.