日本−日本語 |
|
|
HP OpenVMS: システム管理者マニュアル (下巻)付録 A Files-11 ディスク構造 |
|
目次
この付録では,ディスクの概念と用語について説明します。 予約ファイルについても解説し,ANALYZE/DISK_STRUCTURE ユーティリティで使用するファイルを紹介して,Files-11 オン・ディスク構造 (ODS) レベル 1,2,5 の違いについて述べます。 以降の説明において,Files-11 ディスク構造とは Files-11 オン・ディスク構造のことを指します。 この節では,ディスクの物理的構造と論理的構造に関する用語について説明します。 ディスクに記録されるアドレス可能な最小情報単位を,ブロック と呼びます。 Files-11 ディスク構造のブロック 1 つは,512 バイト (1 バイト = 8 ビット) で構成されます。 Files-11 ディスク・ボリュームとメモリとの間では,ブロック単位で転送を行うことができます。 ただし,Files-11 ODS において,1 つのディスクは複数のブロックで構成される 1 つの配列であるとみなし,ブロック単位で扱うことは通常ありません。 ブロックは,論理的にクラスタ にまとめられます。 ディスク空間は,このクラスタ単位で割り当てられます。 ボリューム と呼ばれるディスクを使用可能状態にするとき,つまり初期化したときに,クラスタに入れるブロックの数を指定します。 クラスタ・サイズは,媒体の種類によって異なりますが,サイズが小さいほど実用的です。 一般的に,ブロック数が少ないディスクには小さいクラスタ・サイズを指定し,ブロック数が多いディスクには大きいクラスタ・サイズを指定して,ディスク空間を割り当てる際のオーバヘッドを抑えるようにします。 1 つのファイルに割り当てられた連続するクラスタを,エクステント と呼びます。 エクステントは,ファイル全体であることもファイルの一部であることもあります。 連続するエリアがディスクに充分に存在する場合,1 つのエクステントとしてファイル全体を割り当てます。 一方,ファイル全体を入れるのに充分な量の連続エリアが存在しない場合もあります。 また,ファイルを作成した時点では,必要な空間すべてを予約しない場合もあると思われます。 いったん作成した後でファイルを拡張する場合,隣接するクラスタは,おそらく別のファイルにすでに割り当てられています。 したがって,連続しないクラスタが拡張に使用されます。 ファイルを複数の部分に分割した場合,各部分が 1 つのエクステントとなります。 この結果,図 A-1 「ファイルのエクステント」 に示すとおり,1 つのファイルを構成するエクステントがディスク上の別々のエリアに位置することもあり得ます。 ファイルの拡張は,自動的に行われます。 Files-11 構造が認識する最小単位を,セクタと呼びます。 ほとんどの Files-11 ディスクの場合,セクタはブロックと同じ意味であり,512 バイトです。 ディスクに関するその他の基本用語として,トラックとシリンダがあります。 トラックとは,ディスクの記録面上で同じ径を持つセクタの集まりです (Files-11 構造ではブロックの集まり)。 ディスク・デバイス上の特定の読み書きヘッド位置にアクセスすることができます。 シリンダは,ディスクの全記録面に存在する,同じ径を持つ全トラックで構成されます。 あるシリンダのブロックにアクセスする場合,ディスクの読み書きヘッドを動かす必要はないので,関連性のあるデータ・ブロックを 1 つのシリンダにまとめると便利です。 このため,大容量ディスクの場合には,シリンダ・サイズ単位で分割できるクラスタ・サイズを指定するようにしてください。 図 A-2 「トラックとシリンダ」 は,トラックとシリンダを示しています。 Files-11 構造では,ボリュームまたはボリューム・セットを初期化したときに,削除不可能な予約ファイルの集合が作成されます。 Files-11 ディスクの構造は,これらのファイルによって制御されます。 Files-11 構造は,ディスク・パックなどの物理媒体であるボリュームに存在します。 Files-11 ボリュームは,一定の順序で並ぶブロックの集合です (1 ブロック = 512 バイト)。 ブロックには,0 から n - 1 の番号が連続して付けられます。 n - 1 は,ブロック単位によるディスク・サイズです。 Files-11 ディスク上の各ファイルは,システムが割り当てる一意のファイル識別子 (FID) によって識別されます。 また,ユーザが英数名を設定することもできます。 Files-11 ディレクトリの主たる機能は,ユーザが設定した英数名を,対応する FID と対応づけることにあります。 この結果,ファイルをファイル名で検索することができます。 ファイルの FID は,3 つの番号で構成されます。 最初の番号は,ファイル番号 (NUM) です。 ファイル・システムは,索引ファイル (予約ファイル INDEXF.SYS) へのオフセットとしてこの番号を使用します。 索引ファイルには,ボリューム上の全ファイルに関する情報が入っています。 FID の 2 番目の部分は,ファイル・シーケンス番号 (SEQ) です。 この番号は,ファイル番号を使用した回数を示します。 ファイルを作成するとファイル番号が割り当てられ,ファイルを削除するとファイル番号の割り当てが解除されます。 このため,ファイル番号だけではファイルを一意で識別することができません。 ファイル番号を使用するたびにシーケンス番号を 1 ずつ増やすことにより,INDEXF.SYS に記録されている全ファイルの識別子を一意に保つことができます。 FID の 3 番目の番号は,相対ボリューム番号 (RVN)です。 この番号は,ファイルが存在するボリューム (ボリューム・セット内の) を指します (ODS-2 専用)。 ボリューム・セットに属するボリュームが 1 つだけである場合,このボリュームに存在するファイルの RVN は,すべて 0 です。 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) に入ります。 この項では,Files-11 で使用する予約ファイルについて説明します。 予約ファイルの FID は,すべて定数です。 また,ANALYZE/DISK_STRUCTURE で使用するファイルについても説明します。 ANALYZE/DISK_STRUCTURE は,これらのファイルがあるべき姿をメモリにコピーし,現在のバージョンと比較します。 /REPAIR 修飾子を指定すると,この比較処理で矛盾点が見つかった場合,これらの矛盾点をレポートして,修正します。 表 A-1 「予約ファイル」 は,Files-11 レベル 1, 2, 5 で使用する予約ファイルと,ANALYZE/DISK_STRUCTURE で使用するファイルの一覧です。 表 A-1 予約ファイル
あらゆる Files-11 ボリュームに対し,ボリューム初期化時に索引ファイルが作成されます。 Files-11 ディスクとしてディスクを使用するには,INITIALIZE コマンドで初期化する必要があります。 INDEXF.SYS は,いくつかのセクションで構成される,大型の拡張可能なファイルです。 これらのセクションには,オペレーティング・システムのほか,Files-11 ボリュームの識別,ボリュームへの初期アクセス,ボリューム上の全ファイルの確認に必要な情報が入っています (INDEXF.SYS 自体も含む)。 表 A-2 「Files-11 索引ファイルの内容」 は,INDEXF.SYS に入っている情報を示しています。 ブート・ブロック,ホーム・ブロック,ファイル・ヘッダについては,後の項で詳しく説明します。 表 A-2 Files-11 索引ファイルの内容
システム・ディスクのブロック 0 は,ブート・ブロックです。 ブート・ブロックには,システムのブート時に使用する一次ブートストラップ・イメージの記憶位置とサイズが入っています。 一部のプロセッサをブートする場合,ブート・ブロックを読み込んでブート・イメージの記憶位置を取り出す必要があります。 詳細は,『OpenVMS システム管理者マニュアル (上巻)』のプロセス制御の章を参照してください。 ホーム・ブロックは,通常,ブート・ブロックの次のブロックです。 ホーム・ブロックは,ディスクが Files-11 ボリュームであることを示します。 ホーム・ブロックを読み込めない場合,つまり物理的に使用不能である場合は,別のブロックがホーム・ブロックとして選択されます。 ボリューム自体の情報やボリューム上のファイルの省略時の値など,次のような項目がホーム・ブロックに入っています。
Files-11 ボリュームでは,ホーム・ブロックのコピーがいくつか用意されるので,ホーム・ブロックの情報を誤って消してしまうことを防止でき,ファイルへのアクセスも常に確保できます。 索引ファイルの大部分は,ファイル・ヘッダです。 1 つのファイル・ヘッダには,ボリュームに存在するファイルの内,1 つのファイルに関する情報が入っています。 具体的には,所有者 UIC,保護コード,作成日時,ACL (アクセス制御リスト) などです。 さらに,ファイルを構成するエクステントのリストが入っており,ボリューム上におけるファイルの論理位置が分かります。 多数のエクステントで構成されるファイルの場合,複数のファイル・ヘッダを使用することができます。 各ファイル・ヘッダには,ファイル識別番号が付いています。 ファイルを作成する場合,通常は,OpenVMS RMS に対してファイル名を指定します。 このファイル名は,Files-11 ボリューム上のファイルに割り当てられます。 OpenVMS RMS は,新たに作成したファイルのファイル名とファイル識別子を,ファイルの記憶位置を示すエントリが入っているディレクトリに入れます。 このファイルにアクセスするには,ファイル名を入力します。 ファイル名は,ディレクトリ・エントリを通じてファイル識別子を指すパスとなります。 ファイル識別子は,ファイル・ヘッダの記憶位置を指し,ファイル・ヘッダに入っているエクステント・リストによって,実データの記憶位置が分かります。 ファイル・ヘッダは,ファイルの現在の記憶状態を示すので,ANALYZE/DISK_STRUCTURE においては特に意味を持ちます。 Files-11 ディスク上のファイルは,INDEXF.SYS の 1 次ヘッダで表されます。 必要に応じて,拡張ヘッダも使用されます。 各固定長ヘッダには,固定長データと可変長データの両方が入っています。 このデータは,表 A-3 「ファイル・ヘッダのデータ・エリア」 に示す 6 つのエリアのいずれかに入っています。 表 A-3 ファイル・ヘッダのデータ・エリア
連続するクラスタの集合を,エクステント と呼びます。 エクステントのサイズは,連続クラスタの数によって決まります。 たとえば,1000 ブロックの容量を要するファイルがあるときに,800 ブロックと 200 ブロックの連続空間が存在する場合,このファイルは 800 ブロックと 200 ブロックの 2 つのエクステントに入れられます。 ファイルの 1 次ヘッダは,そのファイルの第 1 エクステントをはじめ,1 次ヘッダのマップ・エリアに入れることができる数のエクステントを指します。 ファイルで必要なエクステントの数がマップ・エリアを超える場合や,ACL が 1 次ヘッダに入りきらないほど大きい場合,拡張ヘッダが割り当てられます。 拡張ヘッダには,1次ヘッダの固定データのほか,拡張ヘッダが指すエクステントの記憶位置を指定する可変データ (ヘッダ・マップ・エリアとアクセス制御リスト) が入ります。 ANALYZE/DISK_STRUCTURE は,1 次ヘッダと拡張ヘッダのリスト全体に対し,ファイルの妥当性をチェックします。 チェック対象項目は,ファイル・ヘッダ,拡張ヘッダを指す全ポインタで構成されるチェーン,全ヘッダの検索ポインタ,ファイルの属性です。 ストレージ・ビットマップ・ファイルは,ボリューム上で使用できる空間量をファイル・システムが記録するために使用する連続ファイルです。 このファイルには,ストレージ制御ブロック (SCB) が入っています。 SCB には,Files-11 空間割り当てを最適化するための情報と個々のブロックの使用可能性を示すビットマップが入っています。 SCB の情報の内容は,クラスタの要素の数,ボリューム・サイズ,ブロッキング・ファクタなどです。 ビットマップの各ビットは,各クラスタを示します。 ビットが設定されている場合,対応するクラスタを使用することができます。 ビットがクリアされている場合,クラスタを使用することはできません。 オペレーティング・システムは,ビットマップの一部をキャッシュ・メモリとの間で移動します。 メモリ内の各ビットの状態は,クラスタを割り当てたり割り当て解除したりするたびに,変更されます。 キャッシュに入っているビットマップをディスクに戻したとき,BITMAP.SYS は更新されます。 ビットマップの一部は必ずキャッシュに入っているので,(ディスクをディスマウントするか,またはライト・ロックしないかぎり) ディスクに割り当てられているクラスタの現在の状態を BITMAP.SYS が反映することはあり得ません。 ANALYZE/DISK_STRUCTURE には,INDEXF.SYS から取り出したデータをもとに BITMAP.SYS の現在のバージョンを作成し,ディスク上の空きクラスタの状態をBITMAP.SYS に正確に反映させるという機能があります。 不良ブロック・ファイルには,ボリューム上の不良ブロックがすべて入ります。 システムは不良ブロックを動的に検出し,不良ブロックを使用しているファイルを削除した後にこれらの不良ブロックが再び使用されることを防止します。 MFD は,Files-11 ボリューム・ディレクトリ構造を制御する予約ファイルを含むファイルです。 また MFD は,ユーザが使用するファイルやディレクトリ,および既知ファイルをリストします。 マスタ・ファイル・ディレクトリ自体は,MFD でリストされるファイル(000000.DIR;1) の 1 つです。 ただし,MFD は,予約ファイルとユーザのファイル・ディレクトリのリストに使用されることが多く,プライベート・ボリュームにおいてさえ,ユーザが MFD にファイルを入力することはほとんどありません。 プライベート・ボリュームでは,システム・ディスクの省略時ディレクトリと同じ名前のディレクトリを作成した方が便利です。 ユーザのファイル・ディレクトリとファイル指定については,『OpenVMS ユーザーズ・マニュアル』を参照してください。 BACKUP ユーティリティで順編成ディスク・セーブ・セットを作成すると,セーブ・セット・ファイルが MFD に格納されます。 ANALYZE/DISK_STRUCTURE は,INDEXF.SYS との比較を行うことにより,ディレクトリ構造に属する全ファイルをチェックします。 ディレクトリ構造で追跡できないファイルは," 失われた " ファイルです。 /REPAIR が指定されている場合,これらのファイルは最上位レベルのSYSLOST.DIR ディレクトリに入れられます。 ボリューム・セット・リスト・ファイルは,ボリューム・セットの相対ボリューム 1 でのみ使用します。 このファイルには,ボリューム・セットに属する全ボリュームのラベルとボリューム・セット名が入っています。 ANALYZE/DISK_STRUCTURE では,VOLSET.SYS を使用してボリューム・セット内の各ボリュームの記憶位置を調べ,各ボリュームの属性を確認します。 すべてのボリューム・セット情報が相対ボリューム 1 の VOLSET.SYS に入っているので,他のボリュームに存在する VOLSET.SYS は無視されます。 継続ファイルは,1 つのファイルが 2 つのボリュームにまたがるときに拡張ファイル識別子として使用されます。 このファイルは,順編成ディスク・セーブ・セットの最初のボリュームを除くすべてのボリュームに使用されます。 クォータ・ファイルは,ボリューム上の各 UIC のディスク使用量を記録するためにファイル・システムが使用する,予約ファイルです。 ボリュームのクォータ・チェックを許可している場合,ボリューム上の全 UIC が QUOTA.SYS ファイルに格納されます。 QUOTA.SYS は常に更新されるので,現在のディスク使用量,許可されている最大ディスク使用量,許可されている超過値が,UIC ごとに示されます。 ANALYZE/DISK_STRUCTURE は,その動作時に,各 UIC の実際のディスク使用量を反映する QUOTA.SYS のコピーをメモリに作成します。 このコピーは,ディスク上の QUOTA.SYS と比較されます。 矛盾点がある場合は,メッセージが表示されます。 /REPAIR 修飾子を指定した場合,ディスク上の QUOTA.SYS が更新されます。 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 「Files-11 構造レベル 1 のボリュームにおける制限」 に示す制限に注意してください。 表 A-4 Files-11 構造レベル 1 のボリュームにおける制限
OpenVMS ソフトウェアの今後の機能強化では,構造レベル 5 が中心となります。 したがって,構造レベル 1 における制限はさらに多くなる可能性があります。 |
|