次の情報は、マニュアルページから取得したものです。 inodeあたりのバイト数とinodeサイズの違いを知りたいです。
-i bytes-per-inode
バイト/アノード比を指定します。 mke2fs は、ディスク上の各 inode バイトスペースごとに inode を生成します。 inodeあたりのバイト比率が高いほど、生成されるinodeの数が減ります。この値は通常、ファイルシステムのブロックサイズより小さくしてはいけません。そうでなければ、あまりにも多くのinodeが生成されます。ファイルシステムが作成された後は、ファイルシステムのinode数を拡張できないため、このパラメータの正しい値を決定するときは注意が必要です。
-I inode-size
各inodeのサイズをバイト単位で指定します。 mke2fsはデフォルトで256バイトのinodeを生成します。 2.6.10以降のカーネルと一部の以前のベンダーカーネルでは、128バイトを超えるinodeを使用して拡張属性を保存してパフォーマンスを向上させることができます。 inode-size 値は 128 以上の 2 の累乗でなければなりません。 inode サイズが大きいほど、inode テーブルはより多くのスペースを消費するため、ファイルシステムで使用可能なスペースが減り、パフォーマンスに悪影響を及ぼします。大きな inode に格納されている拡張属性は、以前のカーネルでは表示できず、これらのファイルシステムは 2.4 カーネルのインストールでは機能しません。ファイルシステムが作成された後は、この値を変更することはできません。
ベストアンサー1
さて、まず、inodeとは何ですか? Unixの世界では、inodeはファイルエントリです。ディレクトリのファイル名はインデックスノード(リンク!)のラベルにすぎません。 inodeは複数の場所で参照できます(ハードリンク!)。
-i inodeあたりのバイト数(inode_ratioとも呼ばれる)
不明な理由から、このパラメータは時々次のように記録されます。inodeごとのバイト時々アノード比。文書によると、これはバイト/Inode率。ほとんどの人は、次のいずれかを説明するとよりよく理解できます。
- Xバイトの記憶領域ごとに1つのinodeがあります(ここでXはinodeあたりのバイト数)。
- 受け入れ可能な最小平均ファイルサイズ。
公式(からインポートmke2fs
ソースコード):
inode_count = (blocks_count * blocksize) / inode_ratio
あるいは、単純化することもできます(「パーティションサイズ」がほぼ同じであると仮定して割り当てを確認blocks_count * blocksize
しませんでした)。
inode_count = (partition_size_in_bytes) / inode_ratio
注 1: FS の作成時に固定数の inode を提供しても ( mkfs -N ...
) ファイルシステムのサイズを拡張すると、より多くの inode に対応できるように、その値が比率に変換されます。
注2:この比率を調整する場合は、使用したいよりもはるかに多くのinodeを割り当てる必要があります。ファイルシステムを再フォーマットしたくないでしょう。
-I インデックスノードサイズ
これは、ファイルシステムが持つことができる各inodeに対して、ファイルシステムが割り当て/予約するバイト数です。このスペースは、inode属性を保存するために使用されます(読み取りインデックスノードの紹介)。 Ext3では、デフォルトのサイズは128です。 Ext4では、デフォルトのサイズは256です(extra_isize
インライン拡張プロパティストア用のスペースを保存して提供するために使用されます)。読むLinux:inodeのサイズを変更するのはなぜですか?
注:Xバイトのdisjkspaceは、使用可能かどうかに関係なく、割り当てられた各inodeに割り当てられます。ここで、Xはinode-sizeです。