(57)【要約】格納データへのアクセスは、少なくとも２つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、この仮想記憶エリアにはデータの区間を設けず、仮想記憶エリアのデータにアクセスする要求に応答して、別の記憶エリアのうちのデータを含む特定の１つのエリアを決定し、ポインタのテーブルを用いて、別の記憶エリアの特定の１つのエリアにあるデータにアクセスすることから成る。また、格納データへのアクセスは、別の記憶エリアのうちの第１のエリアを仮想記憶エリアと関連付けることを含んでもよく、仮想記憶エリアは別の記憶エリアのうちの第１エリアのデータのコピーを表す。また、格納されているデータへのアクセスは、仮想記憶エリアを別の記憶エリアのうちの第１エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第１エリアの区間を指し示すようにすることを含んでもよい。記憶エリアは記憶装置であってもよい。区間はトラックであってもよい。
2005532611.tif 000002
【特許請求の範囲】
【請求項１】
格納データへアクセスする方法であって、
少なくとも２つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、前記仮想記憶エリアにはデータの区間を設けず、
前記仮想記憶エリアのデータにアクセスする要求に応答して、前記別の記憶エリアのうちのデータを含む特定の１つのエリアを決定し、
ポインタの前記テーブルを用いて、前記別の記憶エリアの前記特定の１つのエリアにあるデータにアクセスすることを備える、方法。
【請求項２】
請求項１記載の方法において、
前記別の記憶エリアのうちの第１のエリアを仮想記憶エリアと関連付け、前記仮想記憶エリアは別の記憶エリアのうちの前記第１エリアのデータのコピーを表すことを更に備える、方法。
【請求項３】
請求項２記載の方法において、
前記仮想記憶エリアを別の記憶エリアのうちの前記第１エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第１エリアの区間を指し示すようにすることを更に備える、方法。
【請求項４】
請求項３記載の方法において、
前記別の記憶エリアの前記第１エリア上の第１区間への書き込みに応答して、前記第１区間のデータを前記別の記憶エリアの第２エリア上にある第２区間にコピーし、テーブルのポインタの対応する１つに前記第２区間を指し示させることを更に備える、方法。
【請求項５】
請求項４記載の方法において、前記第１区間から前記第２区間にデータをコピーする前に、前記第２区間を、データを含まない空き区間として保持することを更に備える、方法。
【請求項６】
請求項３記載の方法において、
データ・インディケータを前記別の記憶エリアの前記第１エリアの区間と関連付け、特定の区間に対するデータ・インディケータは、前記別の記憶エリアの前記第１エリアを前記仮想記憶エリアと関連付けた後に、前記特定の区間に対して書き込み動作が実行されたか否かを指示することを更に備える、方法。
【請求項７】
請求項１記載の方法において、データの区間の各々は、データのトラックである、方法。
【請求項８】
請求項１記載の方法において、前記記憶エリアの各々は記憶装置である、方法。
【請求項９】
格納データへアクセスする方法であって、
少なくとも２つの別の記憶エリアの区間を指し示すポインタの第１テーブルを有する第１仮想記憶エリアであって、データの区間を含んでいない第１仮想記憶エリアを設け、
前記別の記憶エリアの第１エリアを第１時点における別の記憶エリアの第１エリアのデータのコピーを表す第１仮想記憶エリアと関連付け、
少なくとも２つの別の記憶エリアの区間を指し示すポインタの第２テーブルを有する第２仮想記憶エリアであって、データの区間を含んでいない第２仮想記憶エリアを設け、
前記別の記憶エリアの前記第１エリアを第２時点における前記別の記憶エリアの前記第１エリアのデータのコピーを表す第２仮想記憶エリアと関連付け、
前記仮想記憶エリアの１つのデータにアクセスする要求に応答して、前記別の記憶エリアのうちの特定の１つがデータを収容しているか判定を行い、
ポインタの前記テーブルの１つを用いて、前記別の記憶エリアの特定の１つのデータにアクセスすることを備える、方法。
【請求項１０】
請求項９記載の方法において、
前記第１仮想記憶エリアを前記別の記憶エリアの前記第１エリアに最初に関連付けるときに、前記第１テーブルのポインタ全てに前記別の記憶エリアの前記第１エリアの区間を最初に指し示させ、
前記第２仮想記憶エリアを前記別の記憶エリアの前記第１エリアに最初に関連付けるときに、前記第２テーブルのポインタ全てに前記別の記憶エリアの前記第１エリアの区間を最初に指し示させることを更に備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ記憶装置に関し、更に特定すれば、コンピュータ記憶装置上に格納されたデータの一部のコピーを供給する分野に関する。
【背景技術】
【０００２】
ホスト・プロセッサ・システムは、複数のホスト・インターフェース・ユニット（ホスト・アダプタ）、ディスク・ドライブ、およびディスク・インターフェース・ユニット（ディスク・アダプタ）を内蔵した記憶装置を用いて、データの格納や検索が可能である。かかる記憶装置は、例えば、マサチューセッツ州Ｈｏｐｋｉｎｔｏｎのイーエムシー・コーポレーション（ＥＭＣ  Ｃｏｒｐｏｒａｔｉｏｎ）が供給しており、かかる記憶装置は、例えば、マサチューセッツ州Ｈｏｐｋｉｎｔｏｎのイーエムシー・コーポレーション（ＥＭＣ  Ｃｏｒｐｏｒａｔｉｏｎ）が供給しており、ヤナイその他（Ｙａｎａｉ  ｅｔ  ａｌ．）の米国特許第５，２０６，９３９号、ガルツアーその他（Ｇａｌｔｚｕｅｒ  ｅｔ  ａｌ．）の米国特許第５，７７８，３９４号、ビシュリスキーその他（Ｖｉｓｈｌｉｚｋｙ  ｅｔ  ａｌ．）の米国特許第５，８４５，１４７号、およびオフェック（Ｏｆｅｃｋ）の米国特許第５，８５７，２０８号に開示されている。ホスト・システムは、記憶装置に設けられている複数のチャネルを通じて記憶装置にアクセスする。ホスト・システムは、記憶装置のチャネルを通じてデータやアクセス制御情報を供給し、記憶装置もチャネルを通じてデータをホスト・システムに供給する。ホスト・システムは、記憶装置のディスク・ドライブに直接アドレスするのではなく、ホスト・システムにとっては複数の論理ボリュームのように見えるものにアクセスする。論理ボリュームは、実際のディスク・ドライブに対応する場合も、しない場合もある。
【０００３】
場合によっては、論理ボリュームのコピーを備え、このコピーに他のプロセスがアクセスすることが望ましいこともある。例えば、実際に格納されているデータに対して新たなソフトウエアを検査するには、このデータを含む論理ボリュームのコピーを作成し、元のデータではなく、このコピーを用いて新たなソフトウエアの検査が行われ得る。一旦検査が完了した場合、コピーは廃棄され得る。このようにすれば、実際のデータに影響を及ぼすことなく、実際のデータで新たなソフトウエアが検査できる。これによって、新たなソフトウエアの検査および／または機能が実際のデータにエラーが生じる可能性が減少する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
かかるコピー作成に伴う問題の１つに、データを得る元になる論理ボリュームと同じだけの記憶空間が必要となることがあげられる。何故なら、コピー・プロセスは、単に元のボリュームのデータ全てを含む新たなボリュームを作成するに過ぎないからである。加えて、場合によっては、元のボリュームとコピーとの間の差が極めて少ないこともある。つまり、かかる論理ボリュームのコピーに必要とされる余分な記憶空間はどちらかと言えば非効率的に用いられている。何故なら、これは既に存在するデータを単に複製するに過ぎないからである。したがって、記憶空間を効率的に用いる方法でデータをコピーする機構を提供することが望ましい。
【課題を解決するための手段】
【０００５】
本発明によれば、格納データへのアクセスは、少なくとも２つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアを設け、この仮想記憶エリアにはデータの区間を設けず、仮想記憶エリアのデータにアクセスする要求に応答して、別の記憶エリアのうちのデータを含む特定の１つのエリアを決定し、ポインタのテーブルを用いて、別の記憶エリアの特定の１つのエリアにあるデータにアクセスすることを含む。また、格納データへのアクセスは、別の記憶エリアのうちの第１のエリアを仮想記憶エリアと関連付けることを含んでもよく、仮想記憶エリアは別の記憶エリアのうちの第１エリアのデータのコピーを表す。また、格納されているデータへのアクセスは、仮想記憶エリアを別の記憶エリアのうちの第１エリアと最初に関連付けるときに、テーブルの全ポインタが初期状態において別の記憶エリアのうちの第１エリアの区間を指し示すようにすることを含んでもよい。また、格納データへのアクセスは、別の記憶エリアの第１エリア上の第１区間への書き込みに応答して、第１区間のデータを別の記憶エリアの第２エリア上にある第２区間にコピーし、テーブルのポインタの対応する１つに第２区間を指し示させることを含んでもよい。第１区間から第２区間にデータをコピーする前に、第２区間を、データを含まない空き区間として保持してもよい。また、格納データへのアクセスは、別の記憶エリアの第２エリアの空き区間全ての二重リンク・リストを保持することを含んでもよい。また、格納データへのアクセスは、データ・インディケータを別の記憶エリアの第１エリアの区間と関連付けることを含んでもよく、特定の区間に対するデータ・インディケータは、別の記憶エリアの第１エリアを仮想記憶エリアと関連付けた後に、この特定の区間に対して書き込み動作が実行されたか否かを指示する。また、格納データへのアクセスは、別の記憶エリアの第１エリア上の第１区間への書き込みと、別の記憶エリアの第１エリアを仮想記憶エリアと関連付けた後に第１区間に対して書き込み動作が行われていないことを示すインディケータとに応答して、第１区間のデータを別の記憶エリアの第２エリア上にある第２区間にコピーすることと、テーブルのポインタの対応する１つに第２区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第１区間から第２区間にデータをコピーした後に、書き込み動作を実行させた装置にステータス情報を送信することを含んでもよい。データの区間の各々は、データのトラックであってもよい。記憶エリアの各々は記憶装置であってもよい。
【０００６】
更に本発明によれば、格納データへのアクセスは、少なくとも２つの別の記憶エリアの区間を指し示すポインタの第１テーブルを有する第１仮想記憶エリアであって、データの区間を含んでいない第１仮想記憶エリアを設け、別の記憶エリアの第１エリアを第１時点における別の記憶エリアの第１エリアのデータのコピーを表す第１仮想記憶エリアと関連付け、少なくとも２つの別の記憶エリアの区間を指し示すポインタの第２テーブルを有する第２仮想記憶エリアであって、データの区間を含んでいない第２仮想記憶エリアを設け、別の記憶エリアの第１エリアを第２時点における別の記憶エリアの第１エリアのデータのコピーを表す第２仮想記憶エリアと関連付け、仮想記憶エリアの１つのデータにアクセスする要求に応答して、別の記憶エリアのうちの特定の１つがデータを収容しているか判定を行い、ポインタのテーブルの１つを用いて、別の記憶エリアの特定の１つのデータにアクセスすることを含む。また、格納データへのアクセスは、第１仮想記憶エリアを別の記憶エリアの第１エリアに最初に関連付けるときに、第１テーブルのポインタ全てに別の記憶エリアの第１エリアの区間を最初に指し示させ、第２仮想記憶エリアを別の記憶エリアの第１エリアに最初に関連付けるときに、第２テーブルのポインタ全てに別の記憶エリアの第１エリアの区間を最初に指し示させることを含んでもよい。更に、格納データへのアクセスは、第１データ・インディケータを別の記憶エリアの第１エリアの区間と関連付け、第２データ・インディケータを別の記憶エリアの第１エリアの区間と関連付けることを含む。ここで、記憶エリアの第１の別のエリアの特定の区間に対する第１データ・インディケータは、別の記憶エリアの第１エリアを第１仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作が実行されたか否かを示す。又、記憶エリアの第１の別のエリアの特定の区間に対する第２データ・インディケータは、別の記憶エリアの第２エリアを第２仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作を実行したか否かを示す。また、格納データへのアクセスは、別の記憶エリアの第１エリア上にある第１区間への書き込みと、別の記憶エリアの第１エリアを第１仮想記憶エリアと関連付けた後に、第１区間に対して書き込み動作を実行していないことを示すデータ・インディケータとに応答して、別の記憶エリアの第２エリア上にある第２区間に第１区間のデータをコピーし、第１テーブルのポインタの対応する１つに第２区間を指し示させることを含んでもよい。また、格納データへのアクセスは、別の記憶エリアの第１エリア上にある第１区間への書き込みと、別の記憶エリアの第１エリアを第１および第２仮想記憶エリアと関連付けた後に、第１区間に対して書き込み動作を実行していないことを示すデータ・インディケータとに応答して、第１区間のデータを別の記憶エリアの第２エリア上にある第２区間にコピーし、第１テーブルのポインタの対応する１つと第２テーブルのポインタの対応する１つとに第２区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第２区間に対応する第１仮想記憶エリアに対する書き込みに応答して、第２区間から第３区間にデータをコピーすることを含んでもよい。また、格納データへのアクセスは、第１テーブルのポインタの対応する１つに第３区間を指し示させることを含んでもよい。また、格納データへのアクセスは、第２テーブルのポインタの対応する１つに第３区間を指し示させることを含んでもよい。第１時点は、第２時点と同一であってもよい。第１時点は、第２時点と異なっていてもよい。データの区間の各々は、データのトラックであってもよい。記憶エリアの各々は記憶装置であってもよい。
【０００７】
更に、本発明によれば、コンピュータ・プログラム生産物が、少なくとも２つの別の記憶エリアの区間を指し示すポインタのテーブルを有する仮想記憶エリアであって、データの区間を含まない仮想記憶エリアを提供する実行可能コードと、仮想記憶エリアのデータにアクセスする要求に応答して別の記憶エリアのどの特定の１つがデータを収容しているかを判定する実行可能コードと、ポインタのテーブルを用いて、別の記憶エリアの特定の１つのデータにアクセスする実行可能コードとを含む。また、コンピュータ・プログラム生産物は、別の記憶エリアの第１エリアを別の記憶エリアの第１エリアのデータのコピーを表す仮想記憶エリアと関連付ける実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、仮想記憶エリアを別の記憶エリアの第１エリアに最初に関連付けるときに、テーブルのポインタ全てに別の記憶エリアの第１エリアの区間を最初に指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、別の記憶エリアの第１エリア上の第１区間に対する書き込みに応答して、別の記憶エリアの第２エリア上にある第２区間に第１区間のデータをコピーし、テーブルのポインタの対応する１つに第２区間を指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、データ・インディケータを別の記憶エリアの第１エリアの区間と関連付ける実行可能コードを含んでもよい。特定の区間に対するデータ・インディケータは、別の記憶エリアの第１エリアを仮想記憶エリアと関連付けた後に、特定の区間に対して書き込み動作が実行されたか否かを示す。また、コンピュータ・プログラム生産物は、別の記憶エリアの第１エリア上の第１区間に対する書き込みと、別の記憶エリアの第１エリアを仮想記憶エリアと関連付けた後に第１区間に書き込み動作が実行されていないことを示すデータ・インディケータとに応答して、第１区間のデータを、別の記憶エリアの第２エリア上にある第２区間にコピーし、テーブルのポインタの対応する１つに第２区間を指し示させる実行可能コードを含んでもよい。また、コンピュータ・プログラム生産物は、第１区間から第２区間へのデータ・コピーに続いて、書き込み動作を実行させた装置にステータス情報を送信する実行可能コードを含んでもよい。データの区間の各々は、データのトラックとすることができる。記憶エリアの各々は記憶装置としてもよい。
【０００８】
更に、本発明によれば、仮想記憶装置は、仮想記憶装置を仮想記憶装置のデータの区間の記憶領域である標準記憶装置と関連付け、区間の記憶領域の第１の部分が標準記憶装置のデータの区間である少なくとも１つのテーブルと、少なくとも１つのテーブルを備えた第１の複数のポインタとを含み、ポインタのうちの少なくとも一部が、第１の部分に対応する標準記憶装置の区間を指し示す。また、仮想記憶装置は、記憶領域の第２の部分であって、当該第２の部分にマップする標準記憶装置の対応する区間上のデータとは異なるデータを収容する区間の記憶領域の第２の部分と、少なくとも１つのテーブルを備えた第２の複数のポインタとを含んでもよく、第２の複数のポインタが、標準記憶装置とは異なる装置の区間を指し示す。第２の部分の各区間は、標準記憶装置の対応する区間上のデータの以前のバージョンを収容することができる。データの区間の各々は、データのトラックとすることができる。
【発明を実施するための最良の形態】
【０００９】
図１を参照すると、記憶装置３０は、複数のホスト・アダプタ（ＨＡ）３２〜３４、複数のディスク・アダプタ（ＤＡ）３６〜３８、および複数のディスク・ドライブ４２〜４４を含む。ディスク・ドライブ４２〜４４の各々は、ＤＡ３６〜３８のうちの対応する１つに接続されている。また、記憶装置３０は、ＨＡ３２〜３４およびＤＡ３６〜３８がアクセス可能なグローバル・メモリ４６も含む。また、記憶装置３０は、グローバル・メモリ４６にアクセス可能なＲＤＦアダプタ（ＲＡ）４８も含む。ＲＡ４８は、データ・リンク５２を通じて、１つ以上の追加の遠隔記憶装置（図示せず）および／または１つ以上の他の遠隔装置（図示せず）と通信することができる。ＨＡ３２〜３４、ＤＡ３６〜３８、グローバル・メモリ４６およびＲＡ４８は、バス５４に接続されている、バス５４は、これらの間の通信をしやすくするために設けられている。
【００１０】
ＨＡ３２〜３４の各々は、記憶装置３０にアクセスする１つ以上のホスト・コンピュータ（図示せず）に接続することができる。ホスト・コンピュータ（ホスト）は、ディスク・ドライブ４２〜４４上に格納されているデータを読み取り、ディスク・ドライブ４２〜４４にデータを書き込む。グローバル・メモリ４６は、ディスク・ドライブ４２〜４４からのデータ・トラックを保持するキャッシュ・メモリ、およびＨＡ３２〜３４、ＤＡ３６〜３８、およびＲＡ４８がアクセス可能なテーブル用の記憶領域を含む。尚、ここでの記載では、データ・ブロックのことをトラック又はデータ・トラックと記述することを注記しておく。しかしながら、ここに記載するシステムは、適当なデータ増分量またはデータ区間のいずれとでも動作し、可変データ増分量および／または固定データ増分量も含み得ることを、当業者には理解し得る。
【００１１】
図２を参照すると、記憶装置３０が、複数の標準論理装置６１〜６８を含むものとして示されている。標準論理装置６１〜６８の各々は、記憶装置３０に接続されている１つ以上のホストにアクセス可能なボリュームに対応している。標準論理装置６１〜６８の各々は、ディスク・ドライブ４２〜４４の１つに対応しても、しなくてもよい。したがって、例えば、標準論理装置６１はディスク・ドライブ４２に対応することができ、ディスク・ドライブ４２の一部に対応することができ、またディスク・ドライブ４２の一部およびディスク・ドライブ４３の一部に対応することもできる。標準論理装置６１〜６８の各々は、ホストにはディスクの記憶領域の連続ブロックのように見えるが、標準論理装置６１〜６８の各々は、ディスク・ドライブ４２〜４４の実際の連続物理記憶領域に対応しても、しなくてもよい。
【００１２】
また、記憶装置３０は、複数の仮想装置７１〜７４も含むことができる。仮想装置７１〜７４は、記憶装置３０に接続されているホストには、データ記憶領域の連続ブロックを含むボリュームのように見える。仮想装置７１〜７４の各々は、標準論理装置６１〜６８のうちの１つの全体、標準論理装置６１〜６８のうちの１つの一部、または標準論理装置６１〜６８のうちのいくつかの一部または全体の組み合わせのポイント・イン・タイム・コピー（point in time copy)を表すことができる。しかしながら、この明細書でいずれ更に詳しく述べるが、仮想装置７１〜７４は標準論理装置６１〜６８からのトラック・データを含まない。代わりに、仮想装置７１〜７４の各々は、トラック・データの一部または全部を格納するログ装置７６またはログ装置７８に接続されている。これについてはこの明細書中でいずれ更に詳しく説明する。仮想装置７１〜７４は、標準論理装置６１〜６８またはログ装置７６、７８のいずれかのデータのトラックを指し示すテーブルを含む。
【００１３】
仮想装置７１は、標準論理装置６１のポイント・イン・タイム・コピーを表すことができる。この明細書中でいずれ更に詳しく説明するが、仮想装置７１は、ホストに対して仮想装置７１が標準論理装置６１のポイント・イン・タイム・コピーであるかのように見えることを容易にするトラック・データを含むログ装置７６に接続されている。１つよりも多い仮想装置に対して単一のログ装置を用いることが可能である。したがって、仮想装置７２〜７４は、ログ装置７８に接続されるものとして示されている。同様に、１つよりも多い仮想装置が単一の標準論理装置のポイント・イン・タイム・コピーを表すことも可能である。したがって、仮想装置７２、７３は、標準論理装置６４のポイント・イン・タイム・コピーとして示されている。仮想装置７２、７３は、標準論理装置６４の同じポイント・イン・タイム・コピーを表すことができ、あるいは異なる時刻に取得した標準論理装置６４のポイント・イン・タイム・コピーを表すことができる。尚、標準論理装置６１〜６８の一部のみが、仮想装置７１〜７４の対応する一つのものと関連付けて示されており、その他の標準論理装置６１〜６８はそのようにされていないことを注記しておく。
【００１４】
実施形態によっては、記憶装置の代わりに、記憶エリアを用いて、本明細書に記載するシステムを実施することも可能である。したがって、例えば、仮想装置７１〜７４を仮想記憶エリアとし、標準論理装置６１〜６８を標準論理エリアとし、ログ装置７６、７８をログ・エリアとしてもよい。場合によっては、かかる実施態様は混成論理／仮想装置も考慮することができ、この場合、単一の論理装置は、標準論理装置として振る舞う部分、仮想装置として振る舞う部分、および／またはログ装置として振る舞う部分を有する。したがって、適当な場合には、この明細書中の説明における装置に対する言及を、記憶装置と直接対応する、または対応しない記憶エリアにも適用可能であることは言うまでもない。
【００１５】
図３を参照すると、図は、標準論理装置８２、仮想装置８４、およびログ装置８６を示す。先に説明したように、仮想装置８４は標準論理装置８２の全部または一部のポイント・イン・タイム・コピーを表す。仮想装置８４にアクセスする記憶装置に接続されているホストは、当該ホストが標準論理装置８２にアクセスするのと同様に、仮想装置８４にアクセスすることができる。しかしながら、仮想装置８４は、標準論理装置８２からのトラック・データを全く含んでいない。代わりに、仮想装置８４は、標準論理装置８２またはログ装置８６のいずれかのトラックを指し示す複数のテーブル・エントリを含む。
【００１６】
仮想装置８４を設置するとき（例えば、標準論理装置８２のポイント・イン・タイム・コピーを作成するとき）、仮想装置８４が作成され、設置の時点で標準論理装置８２のトラックを指し示す適切なテーブル・エントリが設けられる。仮想装置８４にアクセスしてトラックを読み取るホストは、標準論理装置８２のトラックを指し示す仮想装置８４のテーブル・エントリに基づいて、標準論理装置８２から適切なトラックを読み取る。
【００１７】
仮想装置８４が設置された後、ホストは標準論理装置８２にデータを書き込むことが可能となる。この場合、標準論理装置８２上に格納されていた以前のデータは、ログ装置８６にコピーされ、標準論理装置８２のトラックを以前に指し示していた仮想装置８４のテーブル・エントリは、データがコピーされたログ装置８６の新たなトラックを指し示すように変更される。このようにして、仮想装置８４にアクセスするホストは、仮想装置８４が設置されて以来変化していない標準論理装置８２からのトラックを読み取るか、あるいは仮想装置８４が設置された後に標準論理装置８２からコピーされたデータを含むログ装置８６から対応するトラックを読み取る。標準論理装置８２および仮想装置８４に対する読み出しおよび書き込みに伴うデータおよびポインタの調節については、この明細書中でいずれ更に詳しく説明する。
【００１８】
ここに記載する実施形態では、ホストは、ログ装置８６には直接アクセスすることができない。即ち、ログ装置８６は、仮想装置８４（およびこの明細書中でいずれ更に詳しく説明するような他の仮想装置も可能である）と共に用いられることに限られる。加えて、ここに記載する実施形態では、標準論理装置８２、仮想装置８４、およびログ装置８６を単一の記憶装置３０上に設けることができる。しかしながら、異なる論理装置およびログ装置を別個の記憶装置上に設け、例えば、ＲＤＦプロトコルまたはその他の遠隔通信プロトコルを用いて相互接続することも可能である。加えて、標準論理装置８２、仮想装置８４、および／またはログ装置８６の１つ以上の一部を、別個の記憶装置上に設け、適宜相互接続することも可能である。
【００１９】
図４を参照すると、仮想装置の別の使用例では、標準論理装置９２、複数の仮想装置９４〜９７、およびログ装置９８が示されている。図４の例では、仮想装置９４は、午前１０時に作成した標準論理装置９２のポイント・イン・タイム・コピーを表す。同様に、仮想装置９５は、正午に作成した標準論理装置９２のコピーを表し、仮想装置９７は、午後４時に作成した標準論理装置９２のコピーを表す。尚、仮想装置９４〜９７の全てがログ装置９８を共有してもよいことを注記しておく。加えて、仮想装置８４〜９７のうちの２台以上のテーブル・エントリ、または仮想装置９４〜９７のテーブル・エントリのサブセットが、ログ装置９８の同じトラックを指し示すことも可能である。図４では例えば、仮想装置９５および仮想装置９６は、ログ装置９８の同じトラックを指し示すテーブル・エントリを有するものとして示されている。
【００２０】
ここで説明する実施形態では、ログ装置９８および他のログ装置は、記憶装置３０が管理するログ装置の集合体によって設けられる。その場合、仮想装置はログ装置の追加のトラックを必要とするので、仮想装置のために、ログ装置集合体機構を用いて、余分なログ装置記憶領域が作成される（既存のログ装置または新たなログ装置のための追加トラックという形態）。このような記憶装置集合体資源は、当技術分野では公知である。集合体を用いない他の技法を用いても、ログ装置記憶領域を設けることは可能である。
【００２１】
図５を参照すると、図１００は、装置情報を追跡するために用いられるテーブルを示す。第１テーブル１０２は、記憶装置またはＨＡおよび／またはＤＡのような記憶装置の要素によって用いられる装置全てに対応する。テーブル１０２は、記憶装置（または記憶装置の一部）によって用いられる論理装置全てに対応する、複数の論理装置エントリ１０６〜１０８を含む。テーブル１０２内のエントリは、標準論理装置、仮想装置、ログ装置、およびその他の種類の論理装置についての記述を含む。
【００２２】
テーブル１０２のエントリ１０６〜１０８の各々は、各論理装置毎の情報を収容する別のテーブルに対応する。例えば、エントリ１０７はテーブル１１２に対応することができる。テーブル１１２は、オーバーヘッド情報を収容するヘッダを含む。また、テーブル１１２は、論理装置の各シリンダに対するエントリ１１６〜１１８を含む。ここに開示する実施形態では、論理装置をどのように初期化するかに応じて、論理装置はいずれの数のシリンダでも収容することができる。しかしながら、他の実施形態では、論理装置は固定数のシリンダを収容するようにしてもよい。
【００２３】
テーブル１１２は、余剰トラック・バイト１１９のための区間を含むものとして示されている。余剰トラック・バイト１１９は、この明細書中でいずれ説明する方法で、ログ装置と共に用いられる。ここに開示する実施形態では、ログ装置のトラック毎に８つの余剰トラック・バイトがある。論理装置ではない装置には、余剰トラック・バイト１１９を用いることはできない。
【００２４】
シリンダ・エントリ１１６〜１１８の各々は、トラック・テーブルに対応する。例えば、エントリ１１７は、オーバーヘッド情報を有するヘッダ１２４を含むトラック・テーブル１２２に対応することができる。また、トラック・テーブル１２２は、各トラックに対するエントリ１２６〜１２８も含む。ここに開示する実施形態では、全シリンダに対して１５個のトラックがある。しかしながら、別の実施形態では、シリンダ毎に異なる数のトラックを有することや、シリンダ毎に可変数のトラックを有することさえも可能な場合もある。標準論理装置およびログ装置では、エントリ１２６〜１２８の各々の情報は、記憶装置３０（または、システムの構成によっては、遠隔記憶装置）のディスク・ドライブ４２〜４４の１つの物理アドレスへの（直接的または間接的な）ポインタを含む。したがって、トラック・テーブル１２２を用いると、テーブル１０２、１１２、１２２に対応する論理装置の論理アドレスを、記憶装置３０のディスク・ドライブ４２〜４４上の物理アドレスにマップすることができる。仮想装置では、テーブル１２２のエントリ１２６〜１２８の各々は、対応する標準論理装置または対応するログ装置のトラックを指し示す。しかしながら、他の実施形態では、異なる機構を用いることも可能な場合もあり、その際、テーブル１０２、１１２、１２２は、データのトラックを収容する標準論理装置のみに用いられ、一方、単純なトラックのアレイのような、他の形式のテーブルが仮想装置によって用いられ、仮想装置のトラックが対応する標準論理装置またはログ装置のトラックにマップされる。
【００２５】
ログ装置の各トラックは、仮想装置によって用いられていないことを意味する空き状態か、あるいは当該トラックが１つ以上の仮想装置においてテーブル・エントリによって指し示されていることを意味する割当済み状態のいずれかにある。ここに開示する実施形態では、ログ装置のトラックを管理するには、最初に、ログ装置の空きトラック全ての二重リンク・リストを作成する。二重リンク・リストに対するポインタは、テーブル１１２の余剰トラック・バイト１１９によって与えられ、その結果ログ装置の余剰トラック・バイト１１９は、ログ装置のあらゆるトラックに対する８バイトを含む。ログ装置の各空きトラックについて、余剰８バイトは、ログ装置の次の空きトラックを指し示す順方向ポインタと、ログ装置の直前の空きトラックを指し示す逆方向ポインタとを含む。このように二重リンク・リストを用いることによって、ログ装置の空きトラックへのアクセスが容易となる。
【００２６】
加えて、ログ装置のトラックが割り当てられた場合（即ち、１つ以上の仮想装置によって用いられる場合）、当該トラックに対応する余剰トラック・バイト１１９を用いて、標準論理装置の対応するトラックを逆に指し示すことができる。したがって、仮想装置を設置した後に標準論理装置に書き込みを行う場合、標準論理装置からのデータをログ装置の新たなトラックにコピーし、論理装置の新たなトラックに対応する余剰トラック・バイトが、データの発信元である標準論理装置のトラックを逆に指し示すようにする。ログ装置の各トラックに、標準論理装置の対応するトラックを逆に指し示すようにさせることは、例えば、データ復元の状況では有用である。
【００２７】
加えて、ここに開示する実施形態では、割り当てられたトラックに対するトラック毎の余剰の８バイトに対するポインタも、データと共に格納される。即ち、ログ装置の特定のトラックが割り当てられると、標準論理装置の対応するトラックへ戻るポインタが、余剰トラック・バイト１１９と共に格納され、加えて、ログ装置のトラック上に、トラック・データ自体と共にポインタが格納される。ＣＫＤフォーマット・トラックでは、余剰の８バイトはブロック０に格納することができる。ＦＢＡフォーマット・トラックでは、余剰の８バイトは、トラック終端に添付される追加ブロック内に格納することができる。ここに開示する実施形態では、１ブロックは５１２バイトであり、ＦＢＡトラックは４０ブロックを含み、追加のブロックが添付されると、４１に増加する。例えば、ヤナイ他（Ｙａｎａｉ  ｅｔ  ａｌ．）の米国特許第５，２０６，９３９号に、異なるトラック・フォーマットが開示されている。その内容はこの言及により本願にも含まれるものとする。
【００２８】
図５のテーブル１０２、１１２、１２２は、記憶装置３０のグローバル・メモリ４６に格納することもできる。加えて、特定のホストによってアクセスされる装置に対応するテーブルも、ＨＡ３２〜３６のうちの対応する１つの内部メモリ内に格納することができる。加えて、ＲＡ４８および／またはＤＡ３６〜３８も、テーブル１０２、１１２、１２２の一部を用いてそれらデーブルを内部に格納することができる。
【００２９】
図６を参照すると、フロー・チャート１４０は、ホストが、仮想装置を介してアクセス可能なトラックに対応する装置テーブルからデータを読み出す際に実行するステップを示す。即ち、フロー・チャート１４０は、仮想装置に対してテーブル・エントリによって指し示されたトラックに関する情報を取得することを示す。
【００３０】
処理は、検査ステップ１４２から開始し、ここで、対象のトラック（即ち、読み出すテーブル・エントリに対応するトラック）が標準論理装置またはログ装置のどちらにあるか判断を下す。この決定を行うには、仮想装置の装置テーブル・エントリにアクセスし、対象のトラックのテーブル・エントリが、標準論理装置またはログ装置のいずれかを指し示しているか否かの判定を行う。検査ステップ１４２において、仮想装置のテーブル内のポインタが標準論理装置を指し示していると判断した場合、制御はステップ１４２からステップ１４８に移り、対象のテーブル・エントリを読み出す。ステップ１４８の後、処理は完了する。
【００３１】
検査ステップ１４２において、対象のトラックに対する仮想装置の装置テーブル内のポインタがログ装置を指し示していると判断した場合、制御はステップ１４２からステップ１５８に移行し、対象のログ・テーブル・エントリを読み出す。ステップ１５８の後、処理は完了する。
【００３２】
尚、場合によっては、データへのアクセスは、フラグまたはロックによって制御され、多数のプロセスが同時にデータにアクセスすることを禁止するようにしてもよいことを注記しておく。これは、特に、装置テーブルを読み出したり、変更している場合には有用である。ここに開示するシステムは、多数のプロセスによるデータへのアクセスを制御するための様々な機構のいずれをも想定しており、「フラグ」または「セマファー(semaphores)」としても知られている、ソフトウエアおよび／またはハードウエア・ロックの従来の組み合わせを含む。場合によっては、データにアクセスするプロセスは、別のプロセスがデータを解放するまで、待たなければならない場合もあり得る。一実施形態では、ハードウエア・ロックがソフトウエア・ロック（フラグ）へのアクセスを制御し、プロセスが最初にハードウエア・ロックの制御を取得し、ソフトウエア・ロックを検査し、次いでソフトウエア・ロックが解除されている場合、プロセスはソフトウエア・ロックを設定し、次いでハードウエア・ロックを解除する。プロセスがハードウエア・ロックを得て、ソフトウエア・ロックが解除されていないと判断すると、プロセスはハードウエア・ロックを解除し、ソフトウエア・ロックを設定した別のプロセスが、後の時点でソフトウエア・ロックを解除できるようにする。更に、場合によっては、最初に特定のトラックに対応するテーブル・エントリを読み出し、このトラックをキャッシュ・スロットに読み込み（トラックが未だキャッシュにない場合）、キャッシュ・スロットをロックし、次いで対応するテーブル・エントリを再度読み出すことも有用であることを注記しておく。
【００３３】
図７を参照すると、フロー・チャート１７０は、標準論理装置またはログ装置に対応する仮想装置に対する装置テーブルへの情報の書き込みに伴って実行されるステップを示す。処理は、第１ステップ１７２において開始し、書き込まれる装置テーブルのエントリに対応する特定のトラックは、標準論理装置またはログ装置のどちらにあるのか判断する。対象である特定のトラックが標準論理装置上にある場合、制御はステップ１７２からステップ１７８に移り、書き込まれる装置テーブルのエントリに対応するトラックをロックする。ステップ１７８においてトラックをロックすることによって、現プロセスが、トラックに対応する装置テーブルのエントリを修正している間他のプロセスがこのトラックにアクセスすることを防止し、かつ対応するテーブル・エントリを変更することを防止する。ステップ１７８に続いて、ステップ１８２において書き込み処理を実行する。ステップ１８２に続いて、ステップ１８４においてトラックのロックを解除する。ステップ１８４の後、処理は完了する。
【００３４】
検査ステップ１７２において、変更している仮想装置のテーブル・エントリに対応するトラックがログ装置を指し示す場合、制御はステップ１７２からステップ１９４に移り、書き込まれる装置テーブルのエントリに対応するログ装置のトラックをロックする。ステップ１９４に続くステップ１９６において、書き込み処理が実行される。ステップ１９６に続いて、ステップ１９８において、トラックのロックを解除する。ステップ１９４の後、処理は完了する。
【００３５】
図８を参照すると、フロー・チャート２１０は、仮想装置に対応する装置テーブルの変更に伴って実行するステップを示す。これは、仮想装置の装置テーブルのトラックのエントリが指し示す標準論理装置またはログ装置の装置テーブルの変更を示す図７のフロー・チャート１７０と対比するとよい。フロー・チャート２１０では、標準論理装置の装置テーブルやログ装置の装置テーブルではなく、仮想装置の装置テーブルが変更される。
【００３６】
処理は、第１ステップ２１２にて開始し、テーブルに対する変更が仮想装置の設置に関係するか否か判定を行う。この明細書中でいずれ説明するが、仮想装置の設置には、仮想装置を作成した後に、仮想装置へのホストによるアクセスを可能にすることが含まれる。仮想装置を設置することによって、仮想装置を標準論理装置と関連付けることになる（したがって、設置の時点における標準論理装置のポイント・イン・タイム・コピーを表す）。標準論理装置と関連付ける前では、仮想装置は設置されておらず、ホストによるアクセスも不可能である。設置後、仮想装置はホストによるアクセスが可能になる。
【００３７】
ステップ２１２において、テーブルに対する変更が仮想装置の設置に関係すると判定した場合、制御はステップ２１２からステップ２１４に移り、仮想装置に対する装置ロックを設定し、他のプロセスによるテーブルへのアクセスを禁止する。装置ロックは、この明細書中でいずれ説明するキャッシュ・スロット・ロックに匹敵する。
【００３８】
ステップ２１４に続いて、ステップ２１６において、仮想装置テーブルのポインタが、標準論理装置のトラックを指し示すようにし、更に設置した仮想装置に対応する標準論理装置のトラックの各々に対して保護ビットを設定する。ここに開示する実施形態では、標準論理装置のトラックは、各々、保護ビットとして設定可能な１６ビットを有し、標準論理装置に対して設置された各論理装置毎に１ビットずつである。実施形態の中には、仮想装置には無関係に保護ビットを用いる場合もある。新たに設置される仮想装置には、１６ビット・フィールド内に新たなビット位置が割り当てられるが、標準論理装置のトラック毎のビットを設定することができる。この明細書中でいずれ更に詳しく説明するが、保護ビットの設定、およびこれに続く標準論理装置に対する書き込みは、設置した仮想装置を標準論理装置に対応させるには特殊な処理を行う必要があることを示す。この特殊な処理については、この明細書中でいずれ更に詳しく説明する。ステップ２１６において、仮想装置の装置テーブルのトラック・エントリを全て、標準論理装置の対応するトラックを指し示すように変更する。したがって、仮想装置が最初に設置されるときには、仮想装置の装置テーブルのポインタは全て、標準論理装置のトラックを指し示すことになる。
【００３９】
ステップ２１６に続いて、ステップ２１７において、仮想装置をレディ状態(ready state)に設定し、仮想装置をホストに対してアクセス可能にする。ステップ２１７に続いて、ステップ２１８において仮想装置のロックを解除し、他の装置によるアクセスを可能にする。ステップ２１８の後、処理は完了する。
【００４０】
検査ステップ２１２において、仮想装置を設置していない（即ち、何らかの別の処理が実行されている）と判定した場合、制御は検査ステップ２１２からステップ２２２に移り、変更されている仮想装置の装置テーブルのエントリに対応するトラックをロックする。尚、ステップ２２２においてロックされるトラックは、標準論理装置上のトラック（仮想装置の装置テーブルにおける対象のエントリが標準論理装置を指し示す場合）、またはログ装置のトラック（対象のエントリがログ装置を指し示す場合）のいずれかとすることができる。ステップ２２２に続いて、ステップ２２４において、仮想装置の装置テーブルの変更を行う。ステップ２２４に続いて、ステップ２２６において、トラックのロックを解除する。ステップ２２６の後、処理は完了する。
【００４１】
図９を参照すると、フロー・チャート２３０は、ログ装置のトラック操作に伴って実行されるステップを示す。先に説明したように、ログ装置のトラックを維持するには、空いているログ装置のトラック（即ち、新たなデータを受け入れるために使用可能なトラック）の二重リンク・リストを作成する。したがって、１つ以上のトラックが、対応する仮想装置と共に使用するために必要な場合、二重リンク・リストから空きトラックを取得する。二重リンク・リストは、仮想装置の使用のために提供したトラックがもはや空きでないことを示すように、従来通りに変更される。逆に、１つ以上の仮想装置によって使用された１つ以上のトラックがもはや必要でなくなった場合、従来通りに、トラックを二重リンク・リストに戻し、トラックが空きであることを示す。図９のフロー・チャート２３０は、トラックを操作する多数のプロセスによるトラック（およびトラック・ポインタ）へのアクセスの制御に伴って実行されるステップを示す。
【００４２】
処理は、ステップ２３２において開始し、実行中の処理が、空きリスト上にあるトラックのみを変更するのか否か判定を行う。尚、例えば、空きトラックをリストのある部分から別の部分に、またはある空きリストから別の空きリストに（多数の空きリストの場合）移転させることにより空きリスト上のみでトラックを変更しても、いずれのデータに対応するトラックの変更も伴わないことを注記しておく。検査ステップ２３２において、実行中の変更が、空きリスト上のトラックのみに関与するのではないと判定した場合、制御はステップ２３２からステップ２３４に移行し、トラックをロックして、他のプロセスによるアクセスを防止する。
【００４３】
ステップ２３４に続いて、またはステップ２３４に到達しない場合はステップ２３２に続いて、検査ステップ２３６において、操作が割当済みのトラックのみに関与するのか否か判定を行う。割当済みトラックのみに関与するいずれの処理も、空きトラックのログ装置リストをロックする必要はない。ステップ２３６において、実行中の動作が割当済みトラックのみを操作しているのではないと判定した場合、制御はステップ２３６からステップ２３８に移行し、空きトラックのログ装置リストをロックし、他のプロセスによるアクセスを防止する。ステップ２３８の後、またはステップ２３８を実行しない場合はステップ２３６の後、ステップ２４２において、変更を実行する。
【００４４】
ステップ２４２の後、検査ステップ２４４において、操作が割当済みトラックのみに関与するのか否か判定を行う。ステップ２４４において、実行中の変更が割当済みトラックのみに関与するのではないと判定した場合、制御はステップ２４４からステップ２４６に移行し、ログ装置の空きリストのロックを解除する。ステップ２４６に続いて、またはステップ２４６に到達しない場合にはステップ２４４に続いて、検査ステップ２４８において、実行中の動作が空きリスト上にあるトラックのみを変更しているのか否かについて判定を行う。ステップ２４８において、実行中の動作が、空きリスト上にあるトラックのみを変更していると判定した場合、制御はステップ２４８からステップ２５２に移行し、ステップ２３４においてロックしたトラックのロックを解除する。ステップ２５２の後、またはステップ２４８の後ステップ２５２を実行しない場合、処理は完了する。
【００４５】
図１０を参照すると、フロー・チャート２８０は、仮想装置からのデータ読み出しに伴って実行されるステップを示す。処理は、検査ステップ２８２にて開始し、仮想装置の対象トラックに対する装置テーブル・エントリが標準論理装置を指し示しているのか、またはログ装置を指し示しているのか判定を行う。ステップ２８２において、テーブルが標準論理装置を指し示していると判定した場合、制御はステップ２８２からステップ２８４に移り、標準論理装置からトラックを読み出す。ステップ２８４の後、処理は完了する。一方、ステップ２８２において、仮想装置の装置テーブルがログ装置を指し示していると判定した場合、制御はステップ２８２からステップ２８６に移り、対象のトラックをログ装置から読み出す。ステップ２８６の後、処理は完了する。
【００４６】
尚、場合によっては、検査ステップ２８２に先だって、読み取りの対象であるトラックが既にキャッシュ・メモリ（グローバル・メモリ）内にあるか否か判定を行うことも可能なこともある。その場合、ステップ２８２、２８４、２８６のいずれも実行することなく、キャッシュ・メモリからトラックを取得することができる。
【００４７】
図１１を参照すると、フロー・チャート３００は、仮想装置を既に設置してある標準論理装置のトラックへの書き込みに伴ってＤＡが実行するステップを示す。処理は、ステップ３０２にて開始し、標準論理装置上で書き込もうとしているトラックの保護ビットが設定されているか否か判定を行う。検査ステップ３０２において、保護ビットが設定されていないと判定した場合、制御はステップ３０２からステップ３０４に移行し、通常の書き込み動作を実行する。即ち、ステップ３０４において、標準論理装置に対して既に設置されている仮想装置の存在には係わらず、従来通りに標準論理装置にデータを書き込む。ステップ３０４の後、処理は完了する。
【００４８】
ステップ３０２において、書き込まれている標準論理装置のトラック上に１つ以上の保護ビットが設定されていると判定した場合、制御はステップ３０２からステップ３０６に移り、ログ装置の空きトラックを取得する。ログ装置の空きトラックは、標準論理装置のトラックからデータをコピーするために必要となる。また、この明細書中でいずれ更に詳しく説明するが、ログ装置の空きトラックは、空きトラックの二重リンク・リストを用いて管理することができる。したがって、ステップ３０６において、ログ装置の空きトラックのリストを照査し、ポインタを適宜変更して使用するための空きトラックの１つを取り出して、空きトラックを取得することも可能である。
【００４９】
ステップ３０６に続いて、ステップ３０８において、ステップ３０２で設定されていると判定された保護ビットに対応する仮想装置毎に、初期状態において標準論理装置上で書き込まれているトラックを指し示していた仮想装置のポインタを、ステップ３０６において取得したログ装置の空きトラックを指し示すようにステップ３０８において変更する。先の説明したように、１つの標準論理装置に対して１つよりも多い仮想装置を設置させることが可能である。特定の標準論理装置に対して設置した仮想装置毎に、特定の保護ビットが標準論理装置のトラックの各々に対して設定される。したがって、ステップ３０８において、ステップ３０２で設定されていることが検出された保護ビットに対応する仮想装置全てについて、トラック・ポインタを変更する。このように仮想装置の装置テーブルにおけるトラック・ポインタが変更され、ステップ３０６において取得した新たなトラックを指し示すようにする。
【００５０】
ステップ３０８に続いて、ステップ３１２において、標準論理装置からステップ３０６において取得したログ装置上の新たなトラックにデータをコピーさせる。ここに開示する実施形態では、データのコピーは、ディスクの記憶領域から記憶装置のグローバル・メモリに（例えば、キャッシュ・スロットに）データを移動させ、ステップ３０６において取得したログ装置のトラックにデータをコピーさせるように書き込み保留インディケータ(write pending indicator)を設定することによって、行うことができる。ステップ３１２は、書き込みが行われている標準論理装置のトラックから、ステップ３０６において取得したログ装置の新たなトラックにデータをコピーすることを表す。ステップ３０８において全てのポインタを変更するので、トラックに書き込む前に標準論理装置に対して設置されていたいずれの仮想装置も、今では古いデータ（即ち、仮想装置が設置されたときに標準論理装置のトラック上に存在していたデータ）を指し示すことになる。尚、トラックのコピーに関連して、標準論理装置のトラックの保護ビットを、ログ装置上のトラックに対する仮想装置マップ・ビットにコピーすることも注記しておく。これについては、この明細書中でいずれ更に詳しく説明する。
【００５１】
ステップ３１２に続いて、ステップ３１４において、ステップ３０６で取得したログ装置のトラックを変更し、テーブル（この明細書中の別のところで説明した）内の余剰ビットに、書き込みが行われている標準論理装置のトラックを逆に指し示させる。ログ装置のトラックに、データを供給した標準論理装置の対応するトラックを指し示させることは、多くの場合に有用である。例えば、データ復元に関して有用な場合がある。ステップ３１４に続いて、ステップ３１６において、書き込みが行われる標準論理装置のトラックの保護ビットをクリアする。ステップ３１６に続いて、ステップ３１８においてＨＡにステータスを送信する。ステップ３１８の後、処理は完了する。
【００５２】
尚、一旦ＨＡがステータスを受信すると、ＨＡは通常の書き込み動作を実行することができ、その場合、検査ステップ３０２において、保護ビットを設定しないことを注記しておく。何故なら、これらのビットはステップ３１６においてクリアされているからである。書き込み動作を実行しているＨＡは、ステップ３０２において設定された保護ビットを見て、該当するＤＡに保護要求を送信する。次いで、ＨＡはＤＡから切断し、通常の書き込みを実行してもよいことを示すステータスがＤＡから到達するのを待つ。ＨＡが切断され、ＤＡからのステータスを待っている間、ＤＡはフロー・チャート３００に開示したステップを実行することができる。これについて、以下で更に詳しく説明する。
【００５３】
図１２を参照すると、フロー・チャート３２０は、１つ以上の仮想装置が設置されている標準論理装置への書き込みに伴ってＨＡが実行するステップを示す。処理は、第１検査ステップ３２２において開始し、書き込みが行われている標準論理装置のトラックに対して、いずれかの保護ビットが設定されているか否か判定を行う。検査ステップ３２２において、設定されている保護ビットがないと判定した場合、制御はステップ３２２からステップ３２４に移り、通常の書き込みを実行する。ステップ３２４の後、処理は完了する。
【００５４】
検査ステップ３２２において、書き込みが行われている標準論理装置のトラックに対して１つ以上の保護ビットが設定されていると判定した場合、制御はステップ３２２からステップ３２６に移り、ＨＡは要求をＤＡに送信し、当該トラックに保護ビットが設定されていることを示す。ＤＡが、ステップ３２６において送信された要求を受信すると、ＤＡは、先に説明した図１１のフロー・チャート３００において明記した動作を実行する。ステップ３２６に続いて、ステップ３２８において、ＨＡはＤＡから切断し、他のプロセスおよび／または他のＨＡによってＤＡと共に（恐らく無関係な）動作を実行することができるようにする。
【００５５】
ステップ３２８に続いて、ステップ３３２において、ＨＡは、ＤＡが図１１のフロー・チャート３００に明記した動作を実行し、ＨＡに設定されている保護ビットを処理するための適切なステップが実行されたことを示すステータスを送信する。ステップ３３２に続いて、処理はステップ３２２に戻り、標準論理装置のトラックの保護ビットを再度検査する。尚、２回目の繰り返しでは、ＤＡはフロー・チャート３００のステップを実行するのに伴って保護ビットをクリアしたので、書き込みが行われている標準論理装置のトラックの保護ビットはステップ３２２においてクリアされていると予想されることに注意されたい。勿論、ＤＡが保護ビットをクリアし、ステップ３２２を再度実行する間に、標準論理装置に対して新たな仮想装置が設置されることは常に可能である。しかしながら、通常、標準論理装置の特定のトラックに対するステップ３２２の２回目の繰り返しでは、全ての保護ビットがクリアされていると判定することが予想され、制御はステップ３２２からステップ３２４に移行し、通常の書き込みを実行する。
【００５６】
図１３を参照すると、フロー・チャート３４０は、仮想装置への書き込みに伴って実行されるステップを示す。フロー・チャート３４０は、ＨＡおよびＤＡ双方によって実行されるステップを表し、したがって、図１１のフロー・チャート３００および図１２のフロー・チャート３２０と同様の、２つのフロー・チャートとして提示することも可能である。しかしながら、フロー・チャート３４０は、フロー・チャート３００、３２０において明記し、かつ本明細書の本文の対応する部分に記載されたステップと同様のステップの一部を表すことは、当業者には理解されよう。
【００５７】
処理は、第１ステップ３４２において開始し、仮想装置が標準論理装置を指し示しているか否か判定を行う。指し示している場合、制御は検査ステップ３４２からステップ３４４に移行し、ログ装置の空きトラックを取得する。ステップ３４４に続いて、ステップ３４６において、書き込みが行われているトラックに対応する標準論理装置からのデータを、標準論理装置から、ステップ３４４において取得したログ装置のトラックにコピーする。ステップ３４６に続いて、ステップ３４８において、仮想装置のトラックに対するポインタを調節し、ステップ３４４において取得したトラックを指し示すようにする。ステップ３４８に続いて、ステップ３５２において、仮想装置に対応する保護ビットを、標準論理装置のトラック・データにおいてクリアし、標準論理装置のトラックに書き込みを行うときに、仮想装置のために特殊な処理が必要ないことを示す。ステップ３５２に続いて、ステップ３５４において、書き込みを実行する。ステップ３５４において、書き込むデータは、ステップ３４４において取得したトラックに書き込まれるトラックまたはトラックの一部である場合もある。ステップ３５４の後、処理は完了する。データがトラック全体に対応する場合、標準論理装置のトラックからログ装置の新たなトラックにデータをコピーするステップ３４６を省略することも可能である。何故なら、ステップ３５４においてトラック全体分のデータを書き込むと、ステップ３４６においてコピーしたデータ全てを上書きしてしまうからである。
【００５８】
ステップ３４２において、書き込みが行われている仮想装置のトラックのポインタが標準論理装置を指し示していないと判定した場合、制御はステップ３４２から検査ステップ３５６に移行し、標準論理装置に対して１つよりも多い仮想装置が設置されているか否か判定を行う。されていない場合、制御はステップ３５６からステップ３５８に移行し、ログ装置のトラックに通常の書き込み動作を実行する。検査ステップ３５６において、１つよりも多い仮想装置が標準論理装置に対して設置されていると判定された場合、制御はステップ３５６からステップ３６２に移行し、ログ装置から空きトラックを取得する。
【００５９】
ステップ３６２に続いて、ステップ３６４において、書き込みが行われる仮想装置に対応するトラックのデータを、ステップ３６２において取得したトラックにコピーする。ステップ３６４に続いて、ステップ３６６において、仮想装置のポインタを調節し、新たなトラックを指し示すようにする。一実施形態では、書き込みが行われている仮想装置のポインタに、新たなトラックを指し示させる。あるいは、書き込みが行われている仮想装置のポインタを変化させず、代わりに、ステップ３６６においてトラックを指し示す他の仮想装置全てのポインタ全てを調節することも可能である。
【００６０】
ステップ３６６に続いて、ステップ３６８において、ログ装置のトラックに対する仮想装置マップ・ビットを変更する。ログ装置のトラックでは、仮想装置マップ・ビットを用いて、どの仮想装置が各トラックを指し示すかを示すことができ、その場合、一実施形態では、１６の仮想装置マップ・ビットがあり、各ビットが個々の仮想装置に対応する。つまり、ステップ３５６における検査は、トラックに対する仮想装置マップ・ビットを調べてもよい。
【００６１】
ステップ３６８に続いて、ステップ３６９において書き込みを実行する。尚、書き込みを実行するのは、ステップ３６２において取得したトラックに対してなのか、または書き込みが行われる仮想装置によって初期に指し示されたトラックに対してなのかは、ステップ３６６においてどのようにポインタを調節するかによって左右される。しかしながら、いずれにしろ、データが書き込まれている仮想装置によって指し示されているトラックにデータは書き込まれる。ステップ３６９の後、処理は完了する。
【００６２】
図１４を参照すると、フロー・チャート３７０は、仮想装置の除去（即ち、削除）に伴って実行されるステップを示す。一旦仮想装置が設置され、その意図する目的で用いられた後、この仮想装置を除去することが望ましい場合もある。処理は、第１ステップ３７２において開始し、仮想装置の最初のトラックを指し示すように、ポインタを設定する。仮想装置を除去する際、この仮想装置に対応する各トラックを試験する。
【００６３】
ステップ３７２に続いて、ステップ３７４において、試験されている仮想装置のトラックが、標準論理装置を指し示すか否か判定を行う。指し示す場合、制御はステップ３７４からステップ３７６に移行し、除去する仮想装置に対応する標準論理装置のトラックの保護ビットをクリアする。ステップ３７６に続いて、ステップ３７８において、ポインタが仮想装置の次のトラックを指し示し、次のトラックを試験することによって、処理を継続する。ステップ３７８に続いて、ステップ３８２において、処理が完了したか否か（即ち、仮想装置の全トラックを処理したか否か）判定を行う。完了していない場合、制御はステップ３８２から、先に説明したステップ３７４に戻る。
【００６４】
検査ステップ３７４において、試験される仮想装置のトラックが標準論理装置を指し示していないと判定した場合、制御はステップ３７４からステップ３８４に移行し、除去する仮想装置に対応する論理装置のトラックに対する仮想装置マップ・ビットをクリアする。ログ装置の各トラックは、１組の仮想装置マップ・ビットを有し、どの仮想装置がログ装置のトラックを用いるかを示すことができる。したがって、ステップ３８４において、除去する仮想装置に対応する仮想装置マップ・ビットをクリアする。
【００６５】
ステップ３８４に続いて、検査ステップ３８６において、ステップ３８４でクリアしたビットが、トラックに対して設定した最後の仮想装置マップ・ビットであったか否か判定を行う。言い換えると、ステップ３８６では、ログ装置上のトラックを用いている仮想装置が他にもあるか否かについて判定を行う。ステップ３８６において、最後の仮想装置マップ・ビットがステップ３８４においてクリアされた（したがって、他にトラックを使用している仮想装置がない）と判定した場合、制御はステップ３８６からステップ３８８に移行し、ログ装置のトラックを、この明細書中の別のところで説明した、ログ装置のトラックの空きリストに戻す。ステップ３８８に続いて、またはステップ３８４においてクリアされたビットがログ装置のトラックの最後の仮想装置マップ・ビットではないと判定した場合にはステップ３８６に続いて、先に説明したステップ３７８において、仮想装置の次のトラックを後続の試験のために指し示させる。一旦仮想装置に対応するトラック全てを処理したなら、仮想装置に関連するテーブルやその他のデータ構造も除去することができるが、実施形態によっては、仮想装置を消滅させた後(deestablished)、仮想装置をホストによって使用できるようにしないまでは、仮想装置からのテーブルやその他のデータ構造を保持していてもよい。
【００６６】
以上、種々の実施形態に関連付けて本発明を開示したが、それらに対する変更は、当業者には容易に明白となろう。したがって、本発明の精神および範囲は、特許請求の範囲に明記したものとする。
【図面の簡単な説明】
【００６７】
【図１】ここに記載されたシステムと共に用いられる記憶装置の図。
【図２】ここに記載されたシステムと共に用いられる種々の論理ボリュームを示す記憶領域の図。
【図３】ここに記載されたシステムによる仮想装置の使用状態を示す図。
【図４】ここに記載されたシステムによる複数の仮想装置の使用状態を示す図。
【図５】ここに記載されたシステムと共に用いる装置テーブルを示す図。
【図６】ここに記載されたシステムにて仮想装置と共に用いられるテーブルの読み出しを示すフロー・チャート。
【図７】ここに記載されたシステムにて仮想装置と共に用いられるテーブルの書き込みを示すフロー・チャート。
【図８】仮想装置テーブルの変更、およびここに記載されたシステムによる仮想装置の設置を示すフロー・チャート。
【図９】ここに記載されたシステムにてログ装置のトラックを処理するために用いられるデータ構造の変更を示すフロー・チャート。
【図１０】ここに記載されたシステムにて仮想装置の読み取りに伴って実行されるステップを示すフロー・チャート。
【図１１】ここに記載されたシステムにて仮想装置を設置した標準論理装置に対する書き込みに伴って、ディスク・アダプタが実行するステップを示すフロー・チャート。
【図１２】ここに記載されたシステムにて仮想記憶装置を設置した標準論理装置に対する書き込みに伴って、ホスト・アダプタが実行するステップを示すフロー・チャート。
【図１３】ここに記載されたシステムにて仮想装置への書き込みに伴って実行されるステップを示すフロー・チャート。
【図１４】仮想装置の除去に伴って実行されるステップを示すフロー・チャート。
【図１】
2005532611.tif 000003
【図２】
2005532611.tif 000004
【図３】
2005532611.tif 000005
【図４】
2005532611.tif 000006
【図５】
2005532611.tif 000007
【図６】
2005532611.tif 000008
【図７】
2005532611.tif 000009
【図８】
2005532611.tif 000010
【図９】
2005532611.tif 000011
【図１０】
2005532611.tif 000012
【図１１】
2005532611.tif 000013
【図１２】
2005532611.tif 000014
【図１３】
2005532611.tif 000015
【図１４】
2005532611.tif 000016
【国際調査報告】
2005532611.tif 000017
2005532611.tif 000018
2005532611.tif 000019