ファイル/ブロックを指すために inode 構造を使用するファイル システムを設計する場合、実際に必要な inode の数はどのように決定されますか?
2 に答える
最近のファイルシステム(1つはXFS)の中には、必要に応じてiノードを動的に割り当てるものがあります。この機能のないファイルシステムは、ディスクサイズに関連するエクスペリエンスベースの値を選択し(たとえば、ext2 / 3/4は4KBディスクスペースIIRCごとに1つのiノードを作成します)、通常、ファイルシステムを作成するときにこの値を調整する方法があります。
一部のUnixファイルシステム(ext * fsなど)では、実際にはシステム管理者がファイルシステムの作成時に相対パラメータを設定します。
ファイルシステムが多数の小さなファイルをホストする場合(ニュースやメールサーバーが典型的な例です)、オブジェクト(ファイルまたはディレクトリ)ごとにiノードが必要になるため、多数のiノードが必要になります。
一方、ファイルシステムがより大きなファイル(ビデオサーバーなど)をホストする場合は、多くのiノードは必要ありません。
iノードはスペースを占有するため、パフォーマンスと効率のバランスをとることと、目的に十分なiノードを用意することが重要です。簡単な方法は、同様の使用パターンを持つアクティブなファイルシステムの平均ファイルサイズを計算し、その数値を新しいFSのバイト/iノード比の基本値として使用することです。これにより、使用パターンが大幅に変化しない限り、ボリュームがいっぱいになってもFSが機能し続けることができます。
ボリュームを作成するだけでなく、実際に新しいファイルシステムを設計している場合は、他の一般的なUnixファイルシステム(JFS、XFS、Reiserfsなど)のようにiノードを動的に割り当てるというアイデアを検討する必要があります。これにより、ファイルシステムの柔軟性が少し向上しますが、動的FS構造を使用すると、破損の問題からの回復が非常に困難になると一般に考えられています。