混乱していると思います。おそらく、異なる用語を使用しているいくつかのドキュメントを読んだことが原因でしょう。「ブロックサイズ」や「クラスターサイズ」などの用語は、ファイルシステムに関する文献のコンテキスト内であっても、普遍的な意味を持ちません。
ファイルシステム
以下のためのext2やext3の、状況は比較的簡単です:各ファイルには、特定の数の占有ブロックを。特定のファイルシステム上のすべてのブロックは同じサイズで、通常は1024、2048、または4096バイトのいずれかです。サイズがNブロック+ 1バイトとN + 1ブロックの間のファイル¹は、N + 1ブロックを占有します。そのブロックサイズは、で指定するものですmke2fs -b
。クラスターの別個の概念はありません。
FATの MS-DOSとWindowsの初期のバージョンで特に使用のファイルシステムは、同様に、単純なスペースの割り当てがあります。ext2がブロックと呼ぶもの、FATはクラスターを呼ぶ; 概念は同じです。
一部のファイルシステムには、より洗練された割り当てスキームがあります。固定サイズのブロックがありますが、同じブロックを使用して複数のファイルの最後の数バイトを保存できます。これはブロックのサブ割り当てとして知られています。ReiserfsとBtrfsはそれを行いますが、ext3またはext4でもありません。
公益事業
Unixユーティリティでは、「ブロック」という単語を使用して、通常は512バイトまたは1kBの任意のサイズのユニットを意味します。この使用法は、特定のファイルシステムまたはディスクハードウェアとは無関係です。歴史的には、当時のディスクとファイルシステムは512Bのチャンクで動作することが多かったため、512Bブロックが発生しましたが、現代の使用法は任意です。従来のUNIXユーティリティとインターフェイスでは、依然として512Bブロックが使用されることがありますが、現在では1kBブロックが好まれています。各ユーティリティのドキュメントをチェックして、使用しているブロックのサイズを確認する必要があります(たとえば、Linuxのdu -B
場合は、スイッチがありdf -B
ます)。
GNU / Linux stat
ユーティリティでは、blocks
数字はファイルで使用される512Bブロックの数です。このIO Block
数値は、ファイル入出力の推奨サイズです。これは原則的には無関係ですが、通常、基礎となるファイルシステムのブロックサイズ(または、それを呼び出したい場合はクラスターサイズ)を示しています。ここでは、13バイトのファイルがあり、これは2048のブロックサイズでext3ファイルシステムの1ブロックを占有しています。そのため、ファイルは4つの512バイト単位を占有します(「ブロック」と呼ばれますstat
)。
ディスク
ほとんどのディスクには、ディスクをセクターの束として表示するインターフェースがあります。ディスクは、個々のビットまたはバイトではなく、セクター全体のみを読み書きできます。ほとんどのハードディスクには512バイトのセクターがありますが、4kBセクターのディスクは数年前に登場し始めました。
ディスクのセクターサイズはファイルシステムのブロックサイズに直接関係しませんが、ブロックを整数のセクター数にするとパフォーマンスが向上します。
¹
例外:スパースファイルはスペースを節約します。