DSS ファイルシステムのディスク上の構造を説明します。
DSS ファイルシステムのディスク上の構造は、以下の要素から構成されています。
スーパブロック
パーティション構成情報
メタデータ領域 (領域管理情報、iノード領域、Vデータ領域)
アップデートログ領域
ファイルデータ領域
図D.1 DSS ファイルシステムのディスク上の構造
DSS ファイルシステムでは、Vデータ領域は 1024 バイト単位、ファイルデータ領域はファイルデータ領域の大きさに応じて 8192 ~ 33554432バイト単位で管理しています。
従来のファイルシステムでは、メタデータ管理域をディスクに分散していました。しかし、DSS ファイルシステムではメタデータを集中させることにより、メタデータへのアクセス性能を高めます。また、ファイルシステムのリカバリ時には、更新箇所が局所化されるため、アップデートログによるリカバリ時間の短縮効果があります。
スーパブロックは、ファイルシステムタイプ、作成・更新の日付、ラベル情報、ファイルシステムのサイズとレイアウト、空き領域情報の履歴を含んでいます。
最後部のスーパブロックの複製は、スーパブロックを格納した領域でディスクデバイスのブロック故障が発生した場合も、処理を継続できるようにするために存在します。
パーティション構成情報には、以下の情報が含まれています。
あるファイルシステムがどのパーティションから構成されているかを示す情報 (DSS ファイルシステムは、複数のパーティションから構成することが可能)
パーティション内の領域の割付情報
ファイルシステム構成を拡張する場合、そして共用デバイス情報を変更する場合はこの領域が変更されます。
スーパブロックと同じく、ファイルシステムが動作するうえで、重要なパーティション構成情報は、パーティションの最後部に複製を持ち、ディスクデバイスのブロック故障に耐えられるように工夫しています。
メタデータ領域は、メタデータを格納する領域です。以降でメタデータの 3つについて説明します。
領域管理情報は、iノード、Vデータ、ファイルデータの割付情報を格納しています。
ファイルデータの割付情報はエクステントベースで管理しており、エクステント情報を格納する部分と、連続の度合いごとに管理するリストとを組み合わせて管理しています。
iノード、Vデータ、領域管理情報は、sfcmkfs(8) によるファイルシステム作成時に固定量を確保します。
iノード領域は、ファイルに関する情報を含むデータ構造です。それぞれの iノードは、ファイルの種類、ファイルの長さ、ファイルの所有者とグループの ID、アクセス権、ファイルデータを含むエクステント情報へのポインタなどを格納しています。ファイルごとに 1つの iノードが存在します。
Vデータ領域は、ディレクトリブロック、シンボリックリンクのパス名、間接ブロックの領域をまとめて Vデータ領域と呼び、必要に応じて、ここから領域を獲得して使用します。Vデータ領域は 1024 バイト単位で管理しており、ディレクトリブロックに関して、効率的に利用できるようになっています。
アップデートログ領域は、ファイルシステム回復を高速に行うため、ファイルシステム構造への変更履歴情報を格納します。この領域
は、循環ログとして使用します。
アップデートログ領域には、以下に示す処理に関する情報が含まれます。
iノードの獲得、解放
iノード情報の更新
1つの単位として扱われる連続ファイルシステムデータブロックのグループであるエクステントの割付、解放
Vデータの獲得、解放
Vデータの更新
DSS ファイルシステムでは、ファイルシステム構造への更新に先立って、Vデータ領域に情報を書き出すことを保証しています。システムの障害が起きた場合には、ファイルシステムに対して未処理の変更は、sfcfsck(8) により、無効化するか、再実行するかのどちらかによりファイルシステムの整合性を回復します。また、ダウンリカバリ時の回復処理を行います。アップデートログでは、ファイルシステム構造に対する変更だけを記録し、ファイルデータについては記録しません。
ファイルデータ領域は、ファイルデータを格納する領域です。ファイルデータ領域は、ファイルシステム作成時に設定されたデータブロックサイズ (8192 バイトから 33554432 バイト) を最小ブロックとし、ファイルの領域割付に対して連続的に割り当てるように管理しています。
DSS ファイルシステムでは、1つのパーティションからなるシングルパーティション構成、または、複数のパーティションを 1つのファイルシステムに割り当てるマルチパーティション構成をとることが可能です。
メタデータ領域、およびアップデートログ領域は、1つのパーティションに集約して配置されます。メタデータ領域が配置されたパーティションを代表パーティションと呼びます。
シングルパーティション構成では、メタデータ領域、アップデートログ領域、ファイルデータ領域を 1つのパーティションにとります。
図D.2 シングルパーティション構成
マルチパーティション構成では、ファイルデータ領域を複数のパーティションで持つことができます。 また、ファイルデータ領域をメタデータ領域から分離してファイルシステムを作成することができます。
マルチパーティション構成のうち、代表的なパターンを以下に示します。
ファイルデータ領域に新規パーティションを追加する (ファイルデータ領域追加)
図D.3 ファイルデータ領域追加
ファイルデータ領域を代表パーティションから分離したパーティション構成
図D.4 ファイルデータ領域分離
マルチパーティション構成では、すべてのパーティションに、スーパブロック、パーティション構成情報を保持しています。