[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

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

A.3.2 記憶ビットマップ・ファイルBITMAP.SYS

記憶ビットマップ・ファイルは,ボリューム上で使用できる空間量をファイル・ システムが記録するために使用する連続ファイルです。このファイルには, 記憶制御ブロック(SCB)が入っています。SCBには,Files-11空間割り当てを最適化するための情報と個々のブロックの使用可能性を示すビットマップが入っています。

SCBの情報の内容は,クラスタの要素の数,ボリューム・サイズ,ブロッキング・ ファクタなどです。ビットマップの各ビットは,各クラスタを示します。 ビットが設定されている場合,対応するクラスタを使用することができます。 ビットがクリアされている場合,クラスタを使用することはできません。

オペレーティング・システムは,ビットマップの一部をキャッシュ・メモリとの間で移動します。 メモリ内の各ビットの状態は,クラスタを割り当てたり割り当て解除したりするたびに, 変更されます。キャッシュに入っているビットマップをディスクに戻したとき,BITMAP.SYS は更新されます。 ビットマップの一部は必ずキャッシュに入っているので,(ディスクをディスマウントするか, またはライト・ロックしないかぎり)ディスクに割り当てられているクラスタの現在の状態をBITMAP.SYS が反映することはあり得ません。

ANALYZE/DISK_STRUCTUREには,INDEXF.SYSから取り出したデータをもとにBITMAP.SYS の現在のバージョンを作成し,ディスク上の空きクラスタの状態をBITMAP.SYS に正確に反映させるという機能があります。

A.3.3 不良ブロック・ファイルBADBLK.SYS

不良ブロック・ファイルには,ボリューム上の不良ブロックがすべて入ります。 システムは不良ブロックを動的に検出し,不良ブロックを使用しているファイルを削除した後にこれらの不良ブロックが再び使用されることを防止します。

A.3.4 マスタ・ファイル・ディレクトリ

MFDは,Files-11ボリューム・ディレクトリ構造を制御する予約ファイルを含むファイルです。 またMFDは,ユーザが使用するファイルやディレクトリ, および既知ファイルをリストします。マスタ・ファイル・ディレクトリ自体は,MFD でリストされるファイル(000000.DIR;1)の1つです。

ただし,MFDは,予約ファイルとユーザのファイル・ディレクトリのリストに使用されることが多く, プライベート・ボリュームにおいてさえ, ユーザがMFDにファイルを入力することはほとんどありません。プライベート・ ボリュームでは,システム・ディスクの省略時ディレクトリと同じ名前のディレクトリを作成した方が便利です。 ユーザのファイル・ ディレクトリとファイル指定については,『OpenVMSユーザーズ・マニュアル』を参照してください。

BACKUPユーティリティで順編成ディスク・セーブ・セットを作成すると, セーブ・セット・ファイルがMFDに格納されます。

ANALYZE/DISK_STRUCTUREは,INDEXF.SYSとの比較を行うことにより,ディレクトリ構造に属する全ファイルをチェックします。 ディレクトリ構造で追跡できないファイルは," 失われた"ファイルです。/REPAIRが指定されている場合, これらのファイルは最上位レベルのSYSLOST.DIRディレクトリに入れられます。

A.3.5 コア・イメージ・ファイルCORIMG.SYS

オペレーティング・システムでは,コア・イメージ・ファイルを使用していません。

A.3.6 ボリューム・セット・リスト・ ファイルVOLSET.SYS

ボリューム・セット・リスト・ファイルは,ボリューム・セットの相対ボリューム1 でのみ使用します。このファイルには,ボリューム・セットに属する全ボリュームのラベルとボリューム・ セット名が入っています。

ANALYZE/DISK_STRUCTUREでは,VOLSET.SYSを使用してボリューム・セット内の各ボリュームの記憶位置を調べ, 各ボリュームの属性を確認します。 すべてのボリューム・セット情報が相対ボリューム1のVOLSET.SYSに入っているので, 他のボリュームに存在するVOLSET.SYSは無視されます。

A.3.7 継続ファイルCONTIN.SYS

継続ファイルは,1つのファイルが2つのボリュームにまたがるときに拡張ファイル識別子として使用されます。 このファイルは,順編成ディスク・ セーブ・セットの最初のボリュームを除くすべてのボリュームに使用されます。

A.3.8 バックアップ・ログ・ファイルBACKUP.SYS

バックアップ・ログ・ファイルは,今後の使用のため予約されています。

A.3.9 保留不良ブロック・ログ・ ファイルBADLOG.SYS

保留不良ブロック・ログ・ファイルには,不良ブロック・ファイルに入っていないけれども不良であると思われるブロックのリストが入っています。

A.3.10 クォータ・ファイルQUOTA.SYS

クォータ・ファイルは,ボリューム上の各UICのディスク使用量を記録するためにファイル・ システムが使用する,予約ファイルです。ボリュームのクォータ・ チェックを許可している場合,ボリューム上の全UICがQUOTA.SYS ファイルに格納されます。QUOTA.SYSは常に更新されるので,現在のディスク使用量, 許可されている最大ディスク使用量,許可されている超過値が,UIC ごとに示されます。

ANALYZE/DISK_STRUCTUREは,その動作時に,各UICの実際のディスク使用量を反映するQUOTA.SYS のコピーをメモリに作成します。このコピーは, ディスク上のQUOTA.SYSと比較されます。矛盾点がある場合は,メッセージが表示されます。/REPAIR 修飾子を指定した場合,ディスク上のQUOTA.SYS が更新されます。

A.3.11 ボリューム機密保護プロファイルSECURITY.SYS

ボリューム機密保護プロファイルには,ボリュームの所有者UIC,ボリュームのシステム- 所有者-グループ-一般ユーザ(SOGW)保護マスク,およびボリュームのアクセス制御リスト(ACL) が含まれます。

A.4 Files-11 ODSレベル1と2,5の違い(VAX のみ)

VAXシステムでは,性能,信頼性,機密保護の点で,ODSレベル1の互換スーパーセットであるFiles-11 ODS レベル2が標準のディスク構造です。 ボリューム初期化時の省略時の値は,構造レベル2です。『OpenVMS DCLディクショナリ』のINITIALIZE コマンドを参照してください。

RSX-11M,RSX-11D,RSX-11M-PLUS,IASはODSレベル1以外をサポートしていないので, これらのシステムに移植する必要があるVAXボリュームの場合には,ODS レベル1を指定します。また,これらのシステムから移植した構造レベル1 ボリュームを扱う必要が生じる場合もあります。

構造レベル1のボリュームを使用している場合,表 A-4 に示す制限に注意してください。

表 A-4 Files-11構造レベル1のボリュームにおける制限

ディスク 保護対象オブジェクトは,Files- 11 ODS-2ディスクだけである。
ディレクトリ ディレクトリとサブディレクトリの階層がなく, ディレクトリ・エントリつまりファイル名の順序も定められていない。RSX-11M ,RSX-11D,RSX-11M-PLUS,IASは,サブディレクトリをサポートしておらず, ディレクトリ・エントリをアルファベット順に並べない。
ディスク・クォータ サポートしていない。
マルチボリューム・ ファイルとボリューム・セット サポートしていない。
位置制御 サポートしていない。
キャッシュ ファイル・ヘッダ・ブロック,ファイル識別スロット,エクステント・ エントリのキャッシングを行わない。
システム・ディスク 構造レベル1ボリュームを使用できない。
OpenVMS Cluster アクセス ローカル・アクセスのみ。クラスタ全体で共用できない。
クラスタ化割り当て サポートしていない。
バックアップ・ホーム・ブロック サポートしていない。
保護コードE E は,RSX-11Mオペレーティング・システムで"拡張"を意味するが,OpenVMS では無視される。
ファイル・バージョン 32,767までに制限される。バージョン制限はサポートしていない。
高度保護機能
(アクセス制御リストなど)
サポートしていない。
ロング・ファイル名 サポートしていない。
RMSジャーナル機能 サポートしていない。
RMS実行統計監視 サポートしていない。

OpenVMSソフトウェアの今後の機能強化では,構造レベル5が中心となります。 したがって,構造レベル1における制限はさらに多くなる可能性があります。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]