inodeのサイズは固定されていますか?

inodeのサイズは固定されていますか?

ファイルを固定サイズのチャンクに分割して保存します。

ファイルのinodeサイズがブロックサイズと同じか、それとも異なる固定サイズかを知りたいです。

答え1

チャンクにはファイルの実際のデータが含まれているため、一般にチャンクはまだ良いパフォーマンスを維持しながらできるだけ大きくしたいと考えています。ブロックに適したサイズはおおよそページサイズであることがわかりました。引用するext4 Wiki:

ブロックサイズはmkfs時間で指定され、通常4KiBです。ブロックサイズがページサイズより大きい場合(つまり、4KiBメモリページのみを持つi386から64KiBブロック)、インストールの問題が発生する可能性があります。

「mkfs time」は、ファイルシステムが作成された時間を示します。したがって、ファイルシステムを作成すると、ブロックサイズは4KiBに固定されます。

inodeには、データブロックへのポインタ(およびファイルに関するいくつかのメタ情報(最後にアクセスした時間、そのファイルが属するユーザーなど))のみを含めることができます。中その他の部分Wikipediaによると

デフォルトでは、ext4 inodeレコードは256バイト(2013年10月現在)、inode構造は156バイトです[...]。 inode構造体の終わりとinodeレコードの終わりの間の余分なスペースを使用して、拡張属性を保存できます。各 inode レコードはファイルシステムのブロックサイズと同じくらい大きくすることができますが、それほど効率的ではありません。

だから私たちはできるこれはinodeをブロックほど大きくしますが、実際のシステムではそうではありません。気になるならアイノード構造データブロックへのポインタのみが議論される。したがって、実際のファイルの内容を指す156バイトのポインタがありますが、全体のinodeは256バイトを占めます。デフォルトでは、必要なメタデータに自由に使用できる100バイトがあります。

簡単に言えば、ext4は非常に設定可能です。ただし、ブロックサイズは4KiBであり、inodeレコードは256バイトである可能性が高いです。

関連情報