ディスク・スペースは、1024 バイトのセクタ単位に割り振られて、論理ブロックを形成します。VxFS では、1024、2048、4096、および 8192 バイトの大きさの論理ブロックがサポートされています。デフォルトのブロック・サイズは、8GB 以下のファイルシステムの場合は 1KB、16GB 以下のファイルシステムの場合は 2KB、32GB 以下のファイルシステムの場合は 4KB、これより大きいファイルシステムの場合は 8KB になります。
エクステントとは、ファイルシステム内の 1 つ、または複数の隣接したデータ・ブロックを指します。エクステントは、1 組のアドレス長の形で表現され、これにより開始ブロック・アドレスとエクステント長
(ファイルシステムまたは論理ブロック単位) が示されます。VxFS では記憶域の割り当て時に、HFS ファイルシステムのように一度に 1 つのブロックを割り当てるのではなく、複数のエクステント単位で割り当てます
。
エクステントは、記憶域が連続したブロック単位で割り当てられている場合に、複数ブロック単位でのディスク I/O を可能にします。シーケンシャル I/O の場合は、一度に 1 つのブロックを操作するのに比べて、複数ブロックを同時に操作する方がはるかに処理速度が向上します。なおほとんどすべてのディスク・ドライブで、複数ブロック単位の I/O 操作が可能です。
エクステント割り当てでは、アドレス指定されたブロックを i ノード構造に基づき解釈する方法が、ブロック・ベースの i ノードの場合と比べて少しだけ異なっています。HFS ファイルシステムの i ノード構造には、12 個の直接ブロック、1 個の間接ブロック、および 1 個の二重間接ブロックのアドレスが含まれています。間接ブロック内には、ほかの複数のブロックのアドレスが格納されています。HFS の間接ブロック・サイズは 8KB で、各アドレスの長さは 4 バイトです。したがって、HFS の i ノードでは 12 個のブロックを直接アドレスで指定でき、さらに 1 つの間接アドレスを介して最大 2048 個のブロックをアドレス指定できることになります。
VxFS の i ノードは、HFS の i ノードと似ており、10 個の直接エクステントを参照します。これらのエクステントは、開始ブロック・アドレスとエクステント長
(ブロック単位) のペアの形で示されます。さらに VxFS の i ノードは、2 個の間接アドレス・エクステントもポイントします。間接エクステント内には、ほかの複数のエクステントのアドレスが格納されています。
最初の間接アドレス・エクステントは、一重の間接指定に使用されます。つまり、このエクステント内の各エントリは、間接データ・エクステントの開始ブロック番号を示します。
2 番目の間接アドレス・エクステントは、二重の間接指定に使用されます。つまり、このエクステント内の各エントリは、一重の間接アドレス・エクステントの開始ブロック番号を示します。
各間接アドレス・エクステントの長さは 8KB で、それぞれに 2048 個のエントリが含まれます。1 つのファイルに対する間接データ・エクステントは、すべて同じサイズでなければなりません。このサイズは、最初の間接データ・エクステントが割り当てられて i ノードに保存された時点で設定されます。ディレクトリの i ノードは、常に 8KB の間接データ・エクステントを使用します。通常ファイルの i ノードもデフォルトの 8KB の間接データ・エクステントを使用しますが、より大きいエクステントをシミュレートするために、複数の間接データ・エクステントをひとまとめにして割り当てを行います。
型付きエクステント |
 |
 |
 |  |
 |
 | 注記: この項の説明は、VxFS のバージョン 3 およびバージョン 4 ディスク・レイアウトにのみ適用されます。 |
 |
 |  |
 |
VxFS のバージョン 3 およびバージョン 4 ディスク・レイアウトでは、型付きエクステントと呼ばれる間接エクステントのために、新しい i ノード・ブロック・マップ構成が導入されています。このブロック・マップ内の各エントリは型付き記述子レコードを持っており、このレコード内には型、オフセット、開始ブロック、およびブロック数に関する情報が含まれています。
間接エクステントおよびデータ・エクステントは、各エクステントの論理ファイル・オフセットと物理ディスク位置を特定するために、このフォーマットを使用します。エクステント記述子のフィールドは、以下のように定義されています。
:
型 | エクステント記述子レコードを一意に識別する働きをし、レコードの長さとフォーマットを定義します。 |
オフセット | 記述子の論理ファイル・オフセットをブロック単位で示します。ルックアップを最適化し、ホール記述子エントリを削除するために使用されます。 |
開始ブロック | エクステントの開始ファイルシステム・ブロックです。 |
ブロック数 | エクステント内の連続したブロック数です。 |
間接アドレス・ブロックは完全に型付けされており、長さは可変ですが、最大かつ最適なサイズは 8KB です。フラグメント化されたファイルシステム上では、使用可能なスペースに応じて、間接エクステントが 8KB より小さくなることもあります。VxFS では、常に 8KB の間接エクステントを取得しようとしますが、必要に応じてより小さな間接エクステントも使用します。
間接データ・エクステントのサイズは可変ですが、これは、連続した大きなエクステントをファイルに割り当てられるようにして、VxFS の最適化された I/O 機能を活用できるようにするためです。
疎ファイルにおけるホール部分は、記憶域を必要とせず、型付きレコードによって除外されます。ホール部分は、記述子のオフセットと長さを加算したものと、次のレコードのオフセットを比較することにより特定されます。
間接指定のレベルには制限がなく、データ・エクステントの長さは可変であるため、このフォーマットでは下位レベルの存在が予想されます。
このフォーマットは型インジケータを使用します。このインジケータにより、レコードのフォーマットと内容が決定され、将来的な型に対する新たな要件および機能にも適応できます。
現在の型付きフォーマットは、間接指定が必要な場合に、通常のファイルに対してのみ使用されます。型付きレコードは、従来のフォーマットより長く、i ノード内の直接エントリを以前ほど必要としません。新たに作成されたファイルについては、i ノード内の 10 個の直接エクステントを参照できる従来のフォーマットがまず使用されます。両方のフォーマットの利点を生かすために間接指定が必要になった時点で、i ノードのブロック・マップが型付きフォーマットに変換されます。