Compaq OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引



付録 A
Files--11 ディスク構造

この付録では,ディスクの概念と用語について説明します。予約ファイルについても解説し, ANALYZE/DISK_STRUCTURE ユーティリティで使用するファイルを紹介して, Files--11 オン・ディスク構造 (ODS) レベル 1,2,5 の違いについて述べます。以降の説明において,Files--11 ディスク構造とは Files--11 オン・ディスク構造のことを指します。

A.1 ディスクの概念

この節では,ディスクの物理的構造と論理的構造に関する用語について説明します。

A.1.1 ディスクの論理的構造

ディスクに記録されるアドレス可能な最小情報単位を, ブロック と呼びます。 Files--11 ディスク構造のブロック 1 つは,512 バイト (1 バイト = 8 ビット) で構成されます。Files--11 ディスク・ボリュームとメモリとの間では,ブロック単位で転送を行うことができます。ただし, Files--11 ODS において,1 つのディスクは複数のブロックで構成される 1 つの配列であるとみなし,ブロック単位で扱うことは通常ありません。

ブロックは,論理的にクラスタ にまとめられます。ディスク空間は,このクラスタ単位で割り当てられます。 ボリューム と呼ばれるディスクを使用可能状態にするとき,つまり初期化したときに,クラスタに入れるブロックの数を指定します。 クラスタ・サイズは,媒体の種類によって異なりますが,サイズが小さいほど実用的です。一般的に,ブロック数が少ないディスクには小さいクラスタ・サイズを指定し,ブロック数が多いディスクには大きいクラスタ・サイズを指定して,ディスク空間を割り当てる際のオーバヘッドを抑えるようにします。

1 つのファイルに割り当てられた連続するクラスタを, エクステント と呼びます。エクステントは,ファイル全体であることもファイルの一部であることもあります。連続するエリアがディスクに充分に存在する場合,1 つのエクステントとしてファイル全体を割り当てます。一方,ファイル全体を入れるのに充分な量の連続エリアが存在しない場合もあります。また,ファイルを作成した時点では,必要な空間すべてを予約しない場合もあると思われます。いったん作成した後でファイルを拡張する場合,隣接するクラスタは,おそらく別のファイルにすでに割り当てられています。したがって,連続しないクラスタが拡張に使用されます。

ファイルを複数の部分に分割した場合,各部分が 1 つのエクステントとなります。この結果, 図 A-1 に示すとおり,1 つのファイルを構成するエクステントがディスク上の別々のエリアに位置することもあり得ます。ファイルの拡張は,自動的に行われます。

図 A-1 ファイルのエクステント


A.1.2 ディスクの物理的構造

Files--11 構造が認識する最小単位を,セクタと呼びます。ほとんどの Files--11 ディスクの場合,セクタはブロックと同じ意味であり,512 バイトです。 ディスクに関するその他の基本用語として,トラックシリンダがあります。トラックとは,ディスクの記録面上で同じ径を持つセクタの集まりです (Files--11 構造ではブロックの集まり)。ディスク装置上の特定の読み書きヘッド位置にアクセスすることができます。シリンダは,ディスクの全記録面に存在する,同じ径を持つ全トラックで構成されます。

あるシリンダのブロックにアクセスする場合,ディスクの読み書きヘッドを動かす必要はないので,関連性のあるデータ・ブロックを 1 つのシリンダにまとめると便利です。このため,大容量ディスクの場合には,シリンダ・サイズ単位で分割できるクラスタ・サイズを指定するようにしてください。

図 A-2 は,トラックとシリンダを示しています。

図 A-2 トラックとシリンダ


A.2 Files--11 構造

Files--11 構造では,ボリュームまたはボリューム・セットを初期化したときに,削除不可能な予約ファイルの集合が作成されます。 Files--11 ディスクの構造は,これらのファイルによって制御されます。 Files--11 構造は,ディスク・パックなどの物理媒体であるボリュームに存在します。Files--11 ボリュームは,一定の順序で並ぶブロックの集合です (1 ブロック = 512 バイト)。ブロックには,0 から n - 1 の番号が連続して付けられます。n - 1 は,ブロック単位によるディスク・サイズです。

A.2.1 ファイル識別子 (FID)

Files--11 ディスク上の各ファイルは,システムが割り当てる一意のファイル識別子 (FID) によって識別されます。また,ユーザが英数名を設定することもできます。Files--11 ディレクトリの主たる機能は,ユーザが設定した英数名を,対応する FID と対応づけることにあります。この結果,ファイルをファイル名で検索することができます。

ファイルの FID は,3 つの番号で構成されます。最初の番号は,ファイル番号 (NUM) です。ファイル・システムは,索引ファイル (予約ファイル INDEXF.SYS) へのオフセットとしてこの番号を使用します。索引ファイルには,ボリューム上の全ファイルに関する情報が入っています。

FID の 2 番目の部分は,ファイル・シーケンス番号 (SEQ) です。この番号は,ファイル番号を使用した回数を示します。ファイルを作成するとファイル番号が割り当てられ,ファイルを削除するとファイル番号の割り当てが解除されます。このため,ファイル番号だけではファイルを一意で識別することができません。ファイル番号を使用するたびにシーケンス番号を 1 ずつ増やすことにより, INDEXF.SYS に記録されている全ファイルの識別子を一意に保つことができます。

FID の 3 番目の番号は,相対ボリューム番号 (RVN)です。この番号は,ファイルが存在するボリューム (ボリューム・セット内の) を指します (ODS-2 専用)。ボリューム・セットに属するボリュームが 1 つだけである場合,このボリュームに存在するファイルの RVN は,すべて 1 です。

A.2.2 ODS ディレクトリ階層

Files--11 ODS-2 構造は,マルチレベルのディレクトリ階層です。ディレクトリ構造の最上位レベルは,マスタ・ファイル・ディレクトリ (MFD) です。ボリュームの MFD は,必ず [000000] と名付けられます。 MFD には,MFD をはじめとする最上位レベルのディレクトリすべてと,予約ファイルが入っています。

ディレクトリとは,他のファイルが入っている 1 つのファイルです。ディレクトリに入っているファイルも,他のファイルを入れるディレクトリとなることができます。ディレクトリをネストすることにより,マスタ・ファイル・ディレクトリを含めて 9 レベルまでのディレクトリ階層を作ることができます

ボリューム・セットの場合,ボリューム・セットに存在する全ユーザ・ディレクトリの MFD が,相対ボリューム 1 に存在します。この MFD のエントリは,ボリューム・セット内の任意のボリュームに存在するディレクトリを指し,これらのディレクトリは,ボリューム・セット内の任意のボリュームに存在するファイルとサブディレクトリを指します。残りのボリュームの MFD には,そのボリュームの予約ファイルの名前だけが入っています。

VAX システムの場合,Files--11 ODS-1 構造は,2 レベルのディレクトリ階層をサポートします。各 UIC (利用者識別コード) は,ユーザ・ファイル・ディレクトリ (UFD) と対応づけられます。 各 UFD は,ボリュームのマスタ・ファイル・ディレクトリ (MFD) に入ります。

A.3 予約ファイル

この項では,Files--11 で使用する予約ファイルについて説明します。予約ファイルの FID は,すべて定数です。

また,ANALYZE/DISK_STRUCTURE で使用するファイルについても説明します。 ANALYZE/DISK_STRUCTURE は,これらのファイルがあるべき姿をメモリにコピーし,現在のバージョンと比較します。 /REPAIR 修飾子を指定すると,この比較処理で矛盾点が見つかった場合,これらの矛盾点をレポートして,修正します。

表 A-1 は,Files--11 レベル 1, 2, 5 で使用する予約ファイルと,ANALYZE/DISK_STRUCTURE で使用するファイルの一覧です。

表 A-1 予約ファイル
予約ファイル ファイル名 + 構造
レベル 1
構造
レベル 2,5
ANALYZE/
DISK_STRUCTURE
索引ファイル INDEXF.SYS;1 X X X
記憶ビットマップ・ファイル BITMAP.SYS;1 X X X
不良ブロック・ファイル BADBLK.SYS;1 X X  
マスタ・ファイル・ディレクトリ 000000.DIR;1 X X X
コア・イメージ・ファイル CORIMG.SYS;1 X X  
ボリューム・セット・リスト・ファイル VOLSET.SYS;1   X X
継続ファイル CONTIN.SYS;1   X  
バックアップ・ログ・ファイル BACKUP.SYS;1   X  
保留不良ブロック BADLOG.SYS;1   X  
クォータ・ファイル QUOTA.SYS     X
ボリューム機密保護プロファイル SECURITY.SYS   X  


+VAX のみ

A.3.1 索引ファイル INDEXF.SYS

あらゆる Files--11 ボリュームに対し,ボリューム初期化時に索引ファイルが作成されます。Files--11 ディスクとしてディスクを使用するには,INITIALIZE コマンドで初期化する必要があります。

INDEXF.SYS は,いくつかのセクションで構成される,大型の拡張可能なファイルです。これらのセクションには,オペレーティング・システムのほか,Files--11 ボリュームの識別,ボリュームへの初期アクセス,ボリューム上の全ファイルの確認に必要な情報が入っています (INDEXF.SYS 自体も含む)。

表 A-2 は,INDEXF.SYS に入っている情報を示しています。ブート・ブロック,ホーム・ブロック,ファイル・ヘッダについては,後の項で詳しく説明します。

表 A-2 Files--11 索引ファイルの内容
用語 定義
ブート・ブロック 索引ファイルの仮想ブロック 1。ブート(またはブートストラップ)・ブロックは,たいていはボリュームの論理ブロック 0 にマップされる。ボリュームがシステム・ボリュームの場合は,ブート・ブロックには,オペレーティング・システムをメモリにロードするプログラムが入っている。ボリュームがシステム・ボリュームではない場合は,ブート・ブロックには,ボリュームがシステム装置ではなく,ユーザのファイルだけが入っていることを示すメッセージを表示するプログラムが入っている。
ホーム・ブロック ボリューム固有のIDが入っている。具体的には,ボリュームの名前と保護,ボリュームに格納できる最大ファイル数,ボリューム所有権情報である。ホーム・ブロックは,索引ファイルの仮想ブロック番号 2 である。
バックアップ・ホーム・ブロック ホーム・ブロックのコピー。1次ホーム・ブロックが破壊されても,ボリュームを使用できるようにする。
バックアップ索引ファイル・ヘッダ 索引ファイル・ヘッダが壊れたときに,ボリューム上のデータを回復できるようにする。 v * 3 + 1 から v * 4 の仮想ブロックを占有する。 v は,ボリューム・クラスタの要素の数である。
索引ファイル・ビットマップ ファイル・ヘッダの割り当てを制御し,結果的にボリューム上のファイル数を制御する。ファイル・ヘッダを示すビットが入っており,このビットが 0 である場合はファイルを作成でき, 1 である場合はファイルがすでに使用されている。
ファイル・ヘッダ 索引ファイルの大部分を占める。索引ファイルへのアクセスに必要な全情報が入っている。1 つのファイル・ヘッダには,ボリュームに存在する 1 つのファイルに関する情報が入っている。情報の内容は,所有者 UIC,保護コード,作成日時,アクセス制御リスト (ACL) などである。また,ファイルを構成するエクステントのリストも入っており,ボリューム上の論理位置が示される。ファイル・ヘッダは,拡張ヘッダともなる。
索引ファイル代替ヘッダ 索引ファイルの1次ヘッダが破損したときに,データを回復できるようにする。

A.3.1.1 ブート・ブロック

システム・ディスクのブロック 0 は,ブート・ブロックです。ブート・ブロックには,システムのブート時に使用する一次ブートストラップ・イメージの記憶位置とサイズが入っています。一部のプロセッサをブートする場合,ブート・ブロックを読み込んでブート・イメージの記憶位置を取り出す必要があります。詳細は 第 4.7 節 を参照してください。

A.3.1.2 ホーム・ブロック

ホーム・ブロックは,通常,ブート・ブロックの次のブロックです。ホーム・ブロックは,ディスクが Files--11 ボリュームであることを示します。ホーム・ブロックを読み込めない場合,つまり物理的に使用不能である場合は,別のブロックがホーム・ブロックとして選択されます。ボリューム自体の情報やボリューム上のファイルの省略時の値など,次のような項目がホーム・ブロックに入っています。

Files--11 ボリュームでは,ホーム・ブロックのコピーがいくつか用意されるので,ホーム・ブロックの情報を誤って消してしまうことを防止でき,ファイルへのアクセスも常に確保できます。

A.3.1.3 ファイル・ヘッダ

索引ファイルの大部分は,ファイル・ヘッダです。 1 つのファイル・ヘッダには,ボリュームに存在するファイルの内,1 つのファイルに関する情報が入っています。具体的には,所有者 UIC,保護コード,作成日時,ACL (アクセス制御リスト) などです。さらに,ファイルを構成するエクステントのリストが入っており,ボリューム上におけるファイルの論理位置が分かります。多数のエクステントで構成されるファイルの場合,複数のファイル・ヘッダを使用することができます。各ファイル・ヘッダには,ファイル識別番号が付いています。

ファイルを作成する場合,通常は,OpenVMS RMS に対してファイル名を指定します。このファイル名は,Files--11 ボリューム上のファイルに割り当てられます。OpenVMS RMS は,新たに作成したファイルのファイル名とファイル識別子を,ファイルの記憶位置を示すエントリが入っているディレクトリに入れます。このファイルにアクセスするには,ファイル名を入力します。ファイル名は,ディレクトリ・エントリを通じてファイル識別子を指すパスとなります。ファイル識別子は,ファイル・ヘッダの記憶位置を指し,ファイル・ヘッダに入っているエクステント・リストによって,実データの記憶位置が分かります。

ファイル・ヘッダは,ファイルの現在の記憶状態を示すので, ANALYZE/DISK_STRUCTURE においては特に意味を持ちます。 Files--11 ディスク上のファイルは,INDEXF.SYS の1次ヘッダで表されます。必要に応じて,拡張ヘッダも使用されます。

各固定長ヘッダには,固定長データと可変長データの両方が入っています。このデータは, 表 A-3 に示す 6 つのエリアのいずれかに入っています。

表 A-3 ファイル・ヘッダのデータ・エリア
データ・エリア 説明
Header ヘッダ識別子,ファイル番号,ファイル・シーケンス番号,ファイルの保護コード,他のファイル・ヘッダ・エリアへのオフセットが入っている。
Ident ファイルの識別子と会計情報データが入っている。具体的には,ファイル名,作成日時,バックアップ日時など。
Map ファイルの仮想ブロックをボリュームの論理ブロックにマップする検索ポインタのリストが入っている。各ポインタは,ファイルに割り当てられている,連続番号が付いたブロックで構成されるグループを示す。検索ポインタの順序は,対応する仮想ブロックの順序となる。
Access control list ACL 関係情報が入っている省略可能エリア。
Reserved 特殊なアプリケーション用に予約されている。
End checksum ファイル・ヘッダ末尾の 2 バイトは,その前の 255 ワードのチェックサムである。チェックサムにより,正しいファイル・ヘッダであるかどうかをチェックできる。

連続するクラスタの集合を,エクステント と呼びます。エクステントのサイズは,連続クラスタの数によって決まります。たとえば,1000 ブロックの容量を要するファイルがあるときに, 800 ブロックと 200 ブロックの連続空間が存在する場合,このファイルは 800 ブロックと 200 ブロックの 2 つのエクステントに入れられます。

ファイルの1次ヘッダは,そのファイルの第 1 エクステントをはじめ,1次ヘッダのマップ・エリアに入れることができる数のエクステントを指します。ファイルで必要なエクステントの数がマップ・エリアを超える場合や, ACL が1次ヘッダに入りきらないほど大きい場合, 拡張ヘッダ が割り当てられます。拡張ヘッダには,1次ヘッダの固定データのほか,拡張ヘッダが指すエクステントの記憶位置を指定する可変データ (ヘッダ・マップ・エリアとアクセス制御リスト) が入ります。

ANALYZE/DISK_STRUCTURE は,1次ヘッダと拡張ヘッダのリスト全体に対し,ファイルの妥当性をチェックします。チェック対象項目は,ファイル・ヘッダ,拡張ヘッダを指す全ポインタで構成されるチェーン,全ヘッダの検索ポインタ,ファイルの属性です。


前へ 次へ 目次 索引