(57)【特許請求の範囲】
【請求項１】
ホストアプリケーションの処理中にコマンドを生成するホストデバイス（２１）を備えたデータ処理システム（２０）において、所定の格納場所を認識しているホストアプリケーションからのコマンドに応じて、所定のソース格納場所（３６、３７）から所定の宛先格納場所（４０、４１、２３０、２３１）へデータをコピーする方法であって；
Ａ）所定のソース格納場所のリスト（ＰＢビット）と所定の宛先格納場所のリスト（ＩＮＯビット）とを生成することにより処理環境を確立する段階（図５）と、
Ｂ）ホストアプリケーションに使用可能なソースおよび宛先格納場所を作る（１４５、１４３）段階と、
Ｃ）所定の格納場所からのデータを、各所定の格納場所に対して、
ｉ）所定のソース場所から所定の宛先場所へデータをコピーし（１５５）、
ｉｉ）データが転送されたことを示すリストを更新する（１５６、１５７）、
ことを含む命令された方法でコピーする（図８）段階と、
を備えることを特徴とする方法。
【請求項２】
さらに、前記コピーが完了した後に、前記処理環境を削除する（図１１）段階を備えることを特徴とする請求項１に記載の方法。
【請求項３】
ホストアプリケーションが、前記命令されたコピー処理中に、認識されたソース格納場所へ書き込み要求を送出するものであって、前記方法が、
ｉ）前記命令されたコピー処理を中断する（１７５）段階と、
ｉｉ）前記ソース格納場所におけるデータから対応する宛先格納場所へデータをコピーする（１７６）段階と、
ｉｉｉ）コピー処理を再び可能にする（１７７）段階と、
を備える（図９）ことを特徴とする請求項２に記載の方法。
【請求項４】
ホストアプリケーションが、前記コピー処理中に、認識された宛先格納場所への読み書き要求の１つを生成するものであって、前記方法が、
ｉ）前記命令されたコピー処理を中断する（１８３）段階と、
ｉｉ）関連のソース格納場所から認識された宛先格納場所へデータをコピーする（１８４）段階と、
ｉｉｉ）前記データのコピーの完了後前記命令されたコピー処理を再び可能にする（１８５）段階と、
を備える（図１０）ことを特徴とする請求項２に記載の方法。
【請求項５】
データが第１の細分度の第１ブロック（トラック）においてデータ記憶装置に格納されており、通常、より粗い第２の細分度のブロック（３１−論理ボリューム）においてコピーされ、前記ソースおよび宛先格納場所がソースおよび宛先デバイス（３１、３２）に位置されているものであって、中間の細分度の第３ブロック（３６、３７Ａ、３７Ｂ）のコピーを可能にする前記方法は、
ｉ）ソース格納場所の前記第１のリスト生成が、各第１ブロックが第３ブロックにあるか否かの指示を有する、ソースデバイスについての第２ブロックに含まれる全ての第１ブロックのリスト（ＰＢビット）を生成することを含み、
ｉｉ）宛先格納場所の前記第２のリスト作成が、各第１ブロックが前記ソースデバイスからの第３ブロックを受け取ることになっているか否かの指示を有する、ソースデバイスについての第２ブロックに含まれている全ての第１ブロックのリスト（ＩＮＤビット）を生成することを含む、
ことを特徴とする請求項２に記載の方法。
【請求項６】
ホストアプリケーションが、前記コピー処理中に、ソース格納場所にある認識された第１のデータブロックへ書き込み要求を送出するものであって、前記方法は、
ｉ）前記要求に応答して命令されたコピー処理を中断する（１７５）段階と、
ｉｉ）前記ソース格納場所の前記認識された第１ブロックのデータを、前記宛先格納場所の前記認識された第１データブロックへコピーする（１７６）段階と、
ｉｉｉ）前記第１および第２リストにある前記関連第１ブロック指示をクリアする（図８、１５６、１５７）段階と、
ｉｖ）前記データのコピーの完了後前記命令されたコピー処理を再び可能にする（１７７）段階と、
を備える（図９）ことを特徴とする請求項５に記載の方法。
【請求項７】
ホストアプリケーションが、前記コピー処理中に、宛先格納場所にある認識された第１のデータブロックへの１つの読み書き要求を送出するものであって、前記方法は、
ｉ）前記要求に応答して前記命令されたコピー処理を中断する（１８３）段階と、
ｉｉ）前記ソース格納場所の前記認識された第１ブロックのデータを、前記宛先格納場所の前記認識された第１データブロックへコピーする（１８４）段階と、
ｉｉｉ）前記第１および第２リストにある前記関連第１ブロック指示をクリアする（図８、１５６、１５７）段階と、
ｉｖ）前記データのコピーの完了後前記命令されたコピー処理を再び可能にする（１８５）段階と、
を備える（図１０）ことを特徴とする請求項５に記載の方法。
【請求項８】
ホストアプリケーケションの処理中に入出力命令を生成するホストデバイス（２１）に連結されたデータ格納装置（２０）であって、
前記データ格納装置は、所定の格納場所を識別するホストアプリケーションからの所定の命令に応答して所定のソース格納場所（３６、３７）から所定の宛先格納場所（４０、４１、２３０、２３１）にデータをコピーするようになっており、
前記データ格納装置は、
Ａ）前記所定のソース格納場所の第１リスト（ＰＢビット）と前記所定の宛先格納場所の第２リスト（ＩＮＤビット）を生成することによって、動作環境を確立するための前記所定の命令に応答する手段（図５、８７）と、
Ｂ）前記ソース及び宛先格納場所と入出力命令との相互作用を可能にする（１４５、１４３）手段と、
Ｃ）命令された方法で、前記所定の宛先格納場所に各所定のソース格納場所からデータをコピーする（図８、８４）手段と、
Ｄ）前記データが転送されたということを指示するための前記第１及び第２リストを更新する前記コピー手段に応答する（８７、１５６、１５７）手段とを備えたことを特徴とするデータ格納装置。
【請求項９】
前記コピー手段が前記コピー動作を完了したのち、前記動作環境を消去する（８７、図１１）手段をさらに備えたことを特徴とする請求項８に記載のデータ格納装置。
【請求項１０】
前記命令されたコピー中において、ホストアプリケーションが認識されたソース格納場所に書き込み要求を送出する、データ格納装置であって、
前記命令されたコピー手段（図８、８４）が：
ｉ）コピープログラムと、
ｉｉ）命令されたコピーモードにおいて前記コピープログラムを動作させる（１６０、１６１）手段と、
ｉｉｉ）書き込み要求に応答して前記命令されたコピー動作手段を中断させ、対応する宛先格納場所に前記認識されたソース格納場所におけるデータを前記コープログラムによってコピーを可能にする（８７、１７５）手段と、
ｉｖ）前記データのコピーの完了の後前記命令されたコピー動作手段を再び可能にする（８７、１７７）手段とを備えたことを特徴とする請求項９に記載のデータ格納装置。
【請求項１１】
前記命令されたコピー中において、ホストアプリケーションが認識されたソース格納場所に読み出し及び書き込み要求の１つを送出する、データ格納装置であって、
前記命令されたコピー手段が：
ｉ）コピープログラム（８４、図８）と、
ｉｉ）命令されたコピーモードにおいて前記コピープログラムを動作させる（１６０、１６１）手段と、
ｉｉｉ）前記読み出し要求または書き込み要求のいずれかに応答して前記命令されたコピー動作手段を中断させ、前記認識された宛先格納場所に対応するソース格納場所からの転送を前記コピープログラムにより有効化すること可能にする（８７、１８３）手段と、
ｉｖ）前記データのコピーの完了の後前記命令されたコピー動作手段を再び可能にする（８７、１８５）手段とを備えたことを特徴とする請求項９に記載のデータ格納装置。
【請求項１２】
データが第１の細分度の第１ブロック（トラック）においてデータ記憶装置に格納されており、通常、より粗い第２の細分度のブロック（３１、論理ボリューム）においてコピーされ、前記ソースおよび宛先格納場所がソースおよび宛先デバイス（３１、３３）に位置されているものであって、前記動作環境確立手段が、
ｉ）各第１ブロックが中間の細分度の第３のブロックにあるかどうかの指示をともなう前記ソースデバイスに対する第２ブロックに含まれる全ての第１ブロックのリストを生成する第１リスト生成手段（ＰＢビット、１３５）と、
ｉｉ）各第１ブロックが前記ソースデバイスから第３ブロックを受けとるためのものかどうかの指示を伴う前記宛先デバイスに対する第２ブロックに含まれるすべての第１ブロックのリストを生成し、これによって、前記データ格納装置が前記中間の細分度のデータブロックをコピーするようになっている前記第２リスト生成手段とを備えたことを特徴とする請求項９に記載のデータ格納装置。
【請求項１３】
前記命令されたコピー中において、ホストアプリケーションが認識されたソース格納場所に書き込み要求を送出する、データ格納装置であって、
前記命令されたコピー手段が：
ｉ）コピープログラム（８４、図８）と、
ｉｉ）命令されたコピーモードにおいて前記コピープログラムを動作させる（８４、１６０、１６１）手段と、
ｉｉｉ）前記書き込み要求に応答して前記命令されたコピー動作手段を中断させ、対応する宛先格納場所に前記認識された宛先格納場所に前記コピープログラムによりデータをコピーことを可能にする（８７、１７５）手段と、
ｉｖ）前記データのコピーの完了の後前記命令されたコピー動作手段を再び可能にする（８７、１７７）手段とを備えたことを特徴とする請求項１２に記載のデータ格納装置。
【請求項１４】
前記命令されたコピー中において、ホストアプリケーションが認識されたソース格納場所に読み出し及び書き込み要求の１つを送出する、データ格納装置あって、
前記命令されたコピー手段が：
ｉ）コピープログラム（図８、８４）と、
ｉｉ）命令されたコピーモードにおいて前記コピープログラムを動作させる（８４、１６０、１６１）手段と、
ｉｉｉ）前記読み出し要求または書き込み要求のいずれかに応答して前記命令されたコピー動作手段を中断させ、前記認識された宛先格納場所に対応するソース格納場所からの転送を前記コピープログラムにより有効化すること可能にする（８７、１８５）手段と、
ｉｖ）前記データのコピーの完了の後前記命令されたコピー動作手段を再び可能にする手段とを備えたことを特徴とする請求項１２に記載のデータ格納装置。
【請求項１５】
アプリケーションの処理中に命令を発生するプロセッサデバイス（２１）を備えたシステム（２０）において、
所定の格納場所を識別するプロセッサデバイス命令に応答して所定のソース格納場所（３６、３７）から所定の宛先格納場所（４０、４１、２３０、２３１）にデータをコピーするための方法であって、
該方法が、
Ａ）前記所定のソース格納場所（ＰＢビット）を識別し、前記所定の宛先格納場所（ＩＮＤビット）を識別し（図５）、
Ｂ）プロセッサデバイスによって使用に供される前記ソース及び宛先格納場所を作り（１４５、１４３）、
Ｃ）各所定のソース格納場所から前記所定の宛先場所に所定の命令された方法によりデータをコピーし（１５５）、
Ｄ）データが転送されたということを指示するために対応するソースと宛先格納場所の識別指標（ＰＢビット、ＩＮＤビット）を更新する（１５６、１５７）段階をこの順序で備えていることを特徴とする、方法。
【請求項１６】
前記コピーが完了した後、前記識別を消去する（図１１）段階をさらに備えたことを特徴とする請求項１５に記載の方法。
【請求項１７】
ホストプロセッサデバイスが前記命令されたコピーの間に識別されたソース格納場所に書き込み要求を発生する、請求項１６に記載の方法であって、
前記方法が：
ｉ）前記書き込み要求に応答して前記命令されたコピーを中断させ（１７５）、
ｉｉ）対応する宛先格納場所に前記ソース格納場所にあるデータをコピーし（１７６）、
前記データのコピーの完了によって、前記命令されたコピーを再可能にする（１７７）段階を備えたこと（図９）を特徴とする方法。
【請求項１８】
前記命令されたコピー中に、ホストプロセッサデバイスが識別された宛先格納場所読み出し要求または書き込み要求の一つを発生する、請求項１６に記載の方法であって、
該方法が：
ｉ）前記要求に応答して、前記命令されたコピーを中断させ（１８３）、
ｉｉ）前記識別された宛先格納場所に対応するソース格納場所からデータをコピーし（１８４）、
ｉｉｉ）前記命令されたコピーを再可能にする（１８５）段階を備えたことを特徴とする、方法。
【請求項１９】
データが第１細分度の第１ブロック（トラック）にあるデータ格納装置に格納され、通常は、第２のより粗い細分度のブロック（３１、論理ボリューム）に結合されており、前記ソース及び宛先格納場所がそれぞれソース及び宛先デバイス（３１、３３）に位置しており、前記方法が、中間細分度の第３ブロック（３６、３７Ａ、３７Ｂ）のコピーを可能にしており、
ｉ）前記ソース格納場所の第１リストの識別指標（ＰＢビット）が、各第１ブロックが第３ブロックにあるかどうかの指示を伴う前記ソースデバイスに対する第２ブロックに含まれる全ての第１ブロックのリストを発生することを含み、
ｉｉ）前記宛先格納場所の第２リスト識別が、各第１ブロックが前記ソースデバイスからの第３ブロックを受け入れるべきかどうかの指示を伴う、前記宛先デバイスに対する第２ブロックに含まれる全ての第１ブロックのリスト（ ＩＮＤビット）を発生することを含む、ことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記命令されたコピー中に前記ソース格納場所における識別された第１データブロックへの書き込み要求に応答して、
前記方法が、
ｉ）前記命令されたコピーを中断させ（１７５）、
ｉｉ）前記宛先格納場所における前記識別された第１データブロックに前記ソース格納場所の前記識別された第１ブロックのデータをコピーし（１７６）、
ｉｉｉ）前記第１及び第２リストにおける前記対応する第１ブロック指示をクリアし（図８、１５６、１５７）、及び
ｉｖ）前記命令されたコピーを再可能にする（１７７）ようになっていることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記命令されたコピー中に前記宛先格納場所における識別された第１データブロックに読み出し及び書き出し要求の一つに応答して、前記方法が：
ｉ）前記命令されたコピーを中断させ（１８３）、
ｉｉ）前記宛先格納場所における前記識別された第１データブロックに前記ソース格納場所の識別された第１ブロックにおけるデータをコピーし（１８４）、
ｉｉｉ）前記第１及び第２リストにおける前記対応する第１ブロック指示をクリアし（図８、１５６、１５７）、そして、
ｉｖ）前記命令されたコピーを再可能にする（１８５）、ようになったことを特徴とする請求項１９に記載の方法。
【請求項２２】
入出力命令を発生する少なくとも１つのホストプロセッサデバイスを有するシステムにおいて、所定の格納場所を識別する所定の１つのコマンドに応答して所定のソース格納場所（３６、３７）から所定の宛先格納場所（４０、４１、２３０、２３１）にコピーをするための装置であって、
前記装置が：
Ａ）前記所定のソース格納場所の第１識別指標（ＰＢビット）と前記所定の宛先格納場所の第２識別指標（ＩＮＤビット）と、
Ｂ）前記ソース及び宛先格納場所内に入出力命令の相互作用を可能にするための（１４５、１４３）手段と、
Ｃ）前記所定の格納場所から前記所定の宛先場所に命令されたやり方でデータをコピーする手段（図８、８４）と、及び
Ｄ）前記データが転送されたということを指示するための第１及び第２識別を更新する前記コピー手段に応答する（８７、１５６、１５７）手段とを備えたことを特徴とする装置。
【請求項２３】
さらに、前記コピー手段が前記コピー動作を完了した後、前記第１及び第２識別指標を消去する（８７、図１１）手段を備えていることを特徴とする請求項２２に記載のシステム。
【請求項２４】
前記命令されたコピー手段が
ｉ）前記命令されたコピー手段の動作を中断することについての識別されたソース格納場所に対する書き込み要求に応答する（図５、８７、１５５）手段と、
ｉｉ）対応する宛先格納場所に前記識別されたソース格納場所にあるデータをコピーするための（図８、８４）手段と、
ｉｉｉ）前記命令されたコピーを再可能にする（８７、１５６、１５７）手段とを備えたことを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記命令されたコピー手段が、
ｉ）前記命令されたコピー手段の動作を中断するために、前記命令されたコピ−の間、識別された宛先格納場所に対する読み出し及び書き込み要求の１つに応答する（図５、８７、１５５）手段と、
ｉｉ）対応するソース格納場所から前記識別された宛先格納場所にデータをコピーする（図８、８４）手段と、
ｉｉｉ）前記命令されたコピー手段を再可能にする（１８５）手段とを備えたことを特徴とする請求項２３に記載のシステム。
【請求項２６】
データが第１細分度の第１ブロック（トラック）に格納され、通常は、第２のより粗い細分度のブロック（３１、論理ボリューム）にコピーされ、前記ソース及び宛先格納場所がそれぞれソース及び宛先デバイス（３１、３３）に位置しており、前記システムが、中間細分度の第３ブロックのコピーを可能にしており、
ｉ）前記第１識別手段が、各第１ブロックが第３ブロックにあるかどうかの指示を伴う前記ソースデバイスに対する第２ブロックに含まれる全ての第１ブロックのリスト（ＰＢビット）を発生する手段を含み、
ｉｉ）前記第２識別手段が、各第１ブロックが前記ソースデバイスからの第３ブロックを受け入れるべきかどうかの指示を伴う、前記宛先デバイスに対する第２ブロックに含まれる全ての第１ブロックのリストを発生する手段を含む、ことを特徴とする請求項２３に記載のシステム。
【請求項２７】
前記命令されたコピー手段が、
ｉ）前記命令されたコピー手段の動作を中断するための識別されたソース格納場所に対する書き込み要求に応答する手段と、
ｉｉ）前記識別されたソース格納場所（３６、３７）におけるデータを対応する宛先格納場所（４０、４１、２３０、２３１）にコピーするための手段と、
ｉｉｉ）前記命令されたコピー手段を再可能にするための手段と、を備えたことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記命令されたコピー手段が、
ｉ）前記命令されたコピー手段の動作を中断するために、前記命令されたコピ−の間、識別された宛先格納場所に対する読み出し及び書き込み要求の１つに応答する（図５、８７、１５５）手段と、
ｉｉ）前記識別された宛先格納場所に対応するソース格納場所からデータをコピーするための前記コピー手段を動作するための（１６０、１６１）手段と、
ｉｉｉ）前記命令されたコピー手段を再可能にする（８７、１８５）手段とを備えたことを特徴とする請求項２６に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全体的にはデータ処理システムにおけるデータ記憶装置に関し、さらに詳細には、一方の記憶装置から他方の記憶装置へデータをコピーする方法に関する。
【０００２】
【従来技術】
従来、１つの場所、一般には「ソース場所」から第２の場所つまり「宛先場所」へデータをコピーすることはよく知られている。ある状況では、コピーすることでデータの重複を引き起こすことがある。別の状況では、複数のコピーを提供することにより、同数の独立したアプリケーションやプロセスがコピーされたデータを独立に処理することができる。
【０００３】
従来のある手法において、特にパーソナルコンピュータ使用時によく知られているように、コピーは、別の論理ボリューム間で、または同じ論理ボリュームの別のディレクトリー間でファイル単位で行われている。従来の装置は、コピーされるソースとファイルへのパス、および宛先場所へのパスを指定する「コピー」コマンドを使用している。その後、プロセッサはソースから宛先場所にデータをコピーする。コピー中には、アプリケーションはソース場所あるいは宛先場所のどちらにあるデータにもアクセスできない。
【０００４】
大型で複雑なデータ記憶装置を含む別のシステムにおいて、アプリケーションは複数のホストプロセッサに作用することができる。そのような装置は多くの場合、他のホストアプリケーションと無関係にコピーを行う能力を備えている。すなわち、データがソースから宛先へコピーされている間に、他のプログラムやプロセスはソースおよび宛先ファイル場所以外の場所にあるデータに作用することができる。しかし、このようなシステムでは、コピーが完了するまでソースファイルおよび宛先ファイルへの如何なるアクセスも阻止されている。
【０００５】
米国特許出願番号０８/８４２，９５３は、ある論理ボリュームのデータが第２の論理ボリュームに変換でき、それにより論理ボリューム内の全てのファイルとレコードを含む論理ボリュームのコピーを提供するという、別の方法を開示している。この処理はプロセッサの処理とは無関係に行われるので、コピーコマンドがプロセッサに過度の負荷をかけることがなく、他のプロセッサがデータ記憶装置内の他のデータを処理する能力をそこなうことがない。しかし、コピー処理中には、前記米国特許出願番号第０８/８４２，９５３において標準およびＢＣＶ論理ボリュームとし形成されているソースと宛先の論理ボリュームの両者は、如何なる他のプロセスもコピーにアクセスできないようにしている。
【０００６】
そのようなシステムでは、データは物理または論理アドレスによって認識される。物理アドレスはデバイス番号、トラック番号およびレコード番号の認識を含んでいる。論理アドレスは、論理ボリューム、ファイルおよび、ある場合にはレコードに関連している。これらの要素の各々は、等級の違いを表す「細分度」を有している。物理デバイスの細分度については、もっとも粗いものからきめの細かいものまで、物理ディスク、トラック、セクターおよびレコードとして分類されており、論理デバイスでは、要素分類は論理デバイス、ファイルおよびレコードである。
【０００７】
前記米国特許出願番号０８/８４２，９５３において、コピーは論理ボリューム、つまりもっとも粗い細分度で行われる。ファイルのようによりきめの細かい細分度でデータの集合を変換することのみが要求される場合には、そのような論理ボリュームの変換は不要な遅延を招くことになる。したがって、必要なことは、コピー処理を開始するコピーコマンドの処理の際に最小の遅れでもって、更に、異なるアプリケーションにより処理するためのソースおよび宛先場所の両方の利用可能でもって、如何なるプロセッサ処理とも無関係にデータをソースから宛先へコピーする方法である。
【０００８】
【発明が解決しようとする課題】
したがって、本発明の目的は、データ記憶装置内でソースから宛先へデータをコピーする改良された方法を提供することである。
本発明の別の目的は、如何なるホストプロセスとも本質的に独立して、データをソース場所から宛先場所へコピーする改良された方法を提供することである。
さらに、本発明の別の目的は、ソース場所に作用するプロセスの相互作用と、宛先場所については処理の開始に対して、最小限の妨げでもってデータをソースから宛先へコピーする改良された方法を提供することである。
さらにまた、本発明の別の目的は、ファイルのようなデータのサブセットをソースから宛先装置へ、通常論理ボリュームによる変換のような、より粗い細分度のデータを変換するシステムにおいてデータを変換する方法を提供することである。
【０００９】
【課題を解決するための手段】
本発明によるデータ処理システムは、ホストアプリケーションの処理中にコマンドを生成するホストデバイスを備えている。ホストアプリケーションは、データを所定のソース格納場所から所定の宛先格納場所へコピーする処理を開始するコマンドを生成することができる。この方法は最初は所定のソース格納場所のリストと、所定の宛先格納場所のリストとを生成することにより、処理環境を確立する。その後、コピーが行われたことを示すメッセージがホストアプリケーションに送られ、すぐにソースおよび宛先格納場所が利用可能になる。その後、命令された方法でデータのコピーが所定の格納場所から始まり、命令は、データを所定の各ソース場所から所定の各宛先場所へコピーすることを、データが転送されたことを示すリストを更新することを含んでいる。
【００１０】
添付の請求項は、本発明の主題を詳しく示し、明確に主張している。本発明の種々の目的、利点および新規な特徴は、同一の符号が同一の部位を示している添付の図面と併せて以下の詳細な説明を読むことにより更に良く理解できるであろう。
【００１１】
【実施例】
図１には、１つまたはそれ以上のホスト装置を有するホストアレイ２１がオペレーションを制御する、データ処理システム２０が示されている。各ホスト装置はプログラムを処理するようになっており、以下の説明において「ホストアプリケーション」は、特定のアプリケーションプログラム、手順、プロセス、モジュールまたはホストで処理される同様のものを意味している。図１は、このような２つのアプリケーション、つまりホストＡＰＰ Ａアプリケーション２２とホストＡＰＰ Ｂアプリケーション２３とを示している。
各ホストアプリケーションは、単一または並行バス構造を含むいくつかの公知の形態をとることができるシステムバス２５上で、データ記憶装置内に格納されているデータにアクセスして処理を行う。本説明の目的上、データ記憶装置２４はホストＡＰＰ Ａアプリケーション２２またはホストＡＰＰ Ｂアプリケーション２３のいずれかで処理できる、全てのデータを格納できるとみなすことができる。
【００１２】
本発明は、種々の形式および構成の多数のディスク記憶装置にて実施できる。以下の説明は、特定のデータ記憶装置２４、つまりシメトリックディスクアレイ記憶装置（ＤＡＳＤ）に関連してなされている。しかし、本発明を実施するものとして、特に説明した実施例を他の装置に適合することは当業者であれば容易に理解できる。
【００１３】
データ記憶装置２４としてのシメトリックディスクアレイ記憶装置は、互いに通信を行うとと共に、一連のディスクアダプターや物理ディスクドライブとも通信を行うホストアダプター２６とキャッシュメモリ２７とを有している。例えば、図１には、論理ボリューム３１を含む、１つまたはそれ以上の論理ボリュームを格納する物理ディスクアレイを有する第１のディスクアダプター（ＤＡ）３０、論理ボリューム３３を含むディスクアダプター３２、論理ボリューム３５を含むディスクアダプター３４が示されている。データ構成は全く随意的である、本発明の説明の目的上、物理デバイスは論理ボリュームを格納すると想定する。しかし、従来から知られているように、論理ボリュームは、単一の物理デバイスの一部、物理デバイスの全部、複数の物理デバイスの一部、または複数の物理デバイスの全部を備えることができる。更に、このような論理デバイスは別個のデータセットやファイルを含むことがでいる。図１には、連続データトラックの１つのセットにある第１のファイル３６と、連続データトラックの２つの分かれたセット３７Ａと３７Ｂに置かれているファイル３７が示されている。
【００１４】
本発明によれば、ファイル３６を論理ボリューム３３の所定のファイル場所４０へ転送し、ファイル３７を論理ボリューム３５の連続場所４１のセットへ転送するために論理ボリューム３１内の全てのデータを転送する必要はない。むしろ、本発明によれば、ファイル３６にあるデータだけが論理ボリューム３３へ転送され、ファイル３７にあるデータだけが論理ボリューム３５の特定の場所に転送されるのである。
上記２つの特定の転送の目的のために、論理ボリューム３１はソースであり、故にソースデバイス３１と呼ばれ、一方で論理ボリューム３３と３５は宛先であるのでＤＥＳＴ Ａデバイス３３およびＤＥＳＴ Ｂデバイス３５と呼ばれる。
【００１５】
ＨＯＳＴ ＡＰＰ Ａアプリケーション２２がファイル３６のデータを処理すると想定する。そのアプリケーション、または要求ホストアプリケーションとしての他の全てのアプリケーションは、ＨＯＳＴ ＡＰＰ Ｂアプリケーション２３での使用のためにＤＥＳＴ Ａデバイスにある記憶装置４０にそのファイルのコピーを作る必要性を決定できる。要求ホストアプリケーションは、例えばファイル３６と、ＤＥＳＴ Ａデバイス３３にある記憶装置４０のような、そのファイルの宛先といったソースデバイスのファイルを認識する特別なコピーコマンド（例えばＦＩＬＥ ＳＭＭＦコマンド）を実行することでこの結果をもたらすようになっている。
【００１６】
要求ホストアプリケーションとホストアダプター２６とは、図５において更に詳しく説明するように、転送のための環境を確立するために相互に作用する。通常数ミリセカンドである、環境を確立するために必要な時間の間に、ソースデバイス３１とＤＥＳＴ Ａデバイス３３とはロックされている。つまり、これらは要求ホストアプリケーションを含む如何なるホストアプリケーションであっても利用することができない。しかし、環境が確立されて、ホストアダプターがコピーをするための内部コマンドを生成すると即座にソースデバイス３１とＤＥＳＴＡデバイス３３とは全てのホストアプリケーションと通信を行えるようになる。例えば、ＨＯＳＴ  ＡＰＰ  Ａと、ＨＯＳＴ  ＡＰＰ  Ｂのアプリケーション２２と２３は、ファイル３６および格納場所４０にあるコピーと相互に作用することができる。
【００１７】
環境が確立された直後には、ＤＥＳＴ Ａデバイス３３には有効データが存在しない。しかし、以下に詳述するように、コピープログラムは順序正しくコピーを続ける。ソースデバイス３１にあるファイル３６へのデータ書き込み、あるいはＤＥＳＴ Ａデバイス３３中の格納場所にあるファイルコピーのような、全てのコピーからのデータの読み書きについての如何なる試みも、データファイルの２つのコピー中のデータの完全性が維持されるよう、関連データの優先的な転送を引き起こす。
【００１８】
図２は、本発明に関連するキャッシュメモリ２７、特に、書き込み保留スロット４２とデバイスヘッダー４３についての部分を詳細に示している。書き込み保留スロットやデバイスヘッダーとしてキャッシュメモリ内のデータ構造を使用することは本技術分野では公知である。書き込み保留スロット４４のような個々の書き込み保留スロットは、データブロック４６のデータがその後に続いているヘッダー４５を含んでいる。通常このデータブロックは１つの物理トラックのデータを含むことができる。各ヘッダー４５は、書き込み保留スロット４２の１つから物理ディスクドライブの或る場所へのデータの書き込み処理またはデステージ（destaging）の必要性を示すＷＰフラグ４６を含んでいる。一旦データがキャッシュメモリ２７から、例えばソースデバイス３１といった対応するデータ記憶装置へ転送されると、システムはそのスロットについてのＷＰビット４６をクリアする。各ヘッダーは本発明に関係のない別の情報を含んでいるが、ここには示していない。
【００１９】
デバイスヘッダー４３は、シメトリックＤＡＳＤの各論理デバイスについて１つのエントリーを含んでいる。このような３つのエントリー、つまりデバイス３１にエントリー４７、デバイス３３にエントリー４８、デバイス３５にエントリー５０が示されている。これらの各エントリーは同一構成である。つまり、デバイスエントリー４７は、デバイス３１中にヘッダー５１と各シリンダーに対して複数のエントリーを含んでいる。３つの特定エントリ、つまりシリンダー０エントリー５２、シリンダー１エントリー５２およびシリンダーｎエントリー５４が示されている。ヘッダーは図２に示されるように構造すなわちブロック５５を有しており、以下に詳述されている。例えばシリンダー０エントリー５２といった各シリンダーエントリーは、各々の場所がシリンダー内で特定のトラックに割り当てられたトラックＩＤテーブル５５を定義する場所ブロックを示す。２つのトラックエントリーがトラックＩＤテーブル５５中に示されている。つまりトラック０エントリー５６とトラックＥエントリー５７であり、個々の物理デバイスについて各シリンダーは１５のデータトラックから構成されている。
【００２０】
デバイスエントリー４８は、ヘッダー６１とシリンダーエントリーとを含むブロック６０から構成されている。図２は、トラックＩＤテーブル６３を認識するシリンダー０エントリー６２を含んでいる３つの特定のシリンダーエントリーを示している。トラックＩＤテーブル６３は、本特定の実施例において３つのエントリー、つまりトラック０エントリー６４、トラック１エントリー６５およびトラックＥエントリー６６とを含んでいる。ブロック６０中に追加のシリンダーエントリーを含むこともできる。図２は、そのようなエントリー、つまりシリンダー１エントリー６７とシリンダーｍエントリー６８を示している。後述のようにｎ＝ｍまたはｎ≠ｍである。ＤＥＳＴ Ｂデバイスエントリー５０は類似構造をもつことができる。
【００２１】
さらに図２を参照すると、ソースデバイス４７のヘッダーブロック５１は、特定のデバイスがソースデバイスか、又は宛先デバイスとして作用しているか否かで異なって解釈され得る、種々の情報アイテムを含んでいる。図２は、ヘッダ−ブロック５１がエクステント・トラック・ポインタ７０、セッションＩＤエントリー７１、要求バッファ７２、ＦＳＭＦフラグ７３およびパスワードエントリー７４を含んでいる特定の装置を示している。ヘッダー５１がソースデバイスと関連づけられる場合、パスワードエントリーは所定値をもつことができる。この値は、図３で詳述されるエクステント・トラック７５へのアドレスを含み、ヘッダー７６と１つまたはそれ以上のエクステント・バッファ７７で構成されているので、エクステント・トラック・ポインタ７０を定義するものである。ヘッダー７５とエクステントバッファ７７との詳細は後述する。ＦＳＭＦ７３はデバイスが本発明で使用されているような宛先デバイスであるか、または米国特許出願番号０８/８４２，９５３に開示されているＢＣＶデバイスであるかを示すものである。
【００２２】
ホストプロセッサーアレイ２１と独立に作動するコピープログラムは、本発明に重要な構成要素である。このプログラムは、図４に示される特定のデータ構造を有し、コマンドに応じて作動する。この構造は、その要求がソースデバイスから生じたものか、あるいは宛先デバイスから生じたものかによって別のエントリーを包含できる。宛先デバイス処理についての要求の場合には、ブロック８１はソースデバイス番号を含み、ブロック８２は開始エクステントのレコード番号を含み、ブロック８３は終了エクステントのレコード番号を含む。ソースデバイスについての要求の場合には、ブロック８１は宛先デバイス番号を含み、ブロック８２は宛先デバイス用のシリンダーアドレスを含み、ブロック８３は宛先デバイス用のヘッド認識名を含む。
【００２３】
本実施例において、いずれの形態であっても要求は、データがソースから宛先デバイスへコピーされる処理を開始するようにソースデバイスに関連づけされているディスクアダプター内に置かれた、例えばディスクアダプター３０の中のコピープログラム８４といったコピープログラムを命令する。
【００２４】
図５から図１０に示されている処理を参照すると、ファイルＳＭＭＦコピーコマンドは以下の処理段階を生じるとみなすことができる。
１．要求ホストアプリケーションが、「ファイルＳＭＭＦ」コマンドを送出すると始まり、コピーコマンドが処理されたという応答が要求ホストアプリケーションに送られたときに終了する第１の段階。この段階中に、要求ホストアプリケーション、ホストアダプダーおよびソースデバイスアダプタは、要求ホストアプリケーションによって定められた場所にあるエクステント・トラックに格納するための、図３で示されるようなエクステント・トラック構造を生成する。例えば、要求ホストアプリケーションは、その後、如何なるデバイスによってもアクセスできる図１のソースデバイス３１中のトラック８５にエクステントトラックを割り当てることができる。最大の効果をあげるために、要求ホストアプリケーションは更に、エクステント・トラックも処理中にキャッシュメモリにあるようパラメータを設定できる。
２．コピー処理の要求が送出されて始まり、全てのデータがコピーされて終了する第２段階。この段階中に、ソースデバイス中にあるコピープログラムは、選択された宛先格納場所に、トラック毎にデータを複製する。更に詳細には、ファイルＳＭＭＦコマンドがファイル３６をソースとして、場所４０を宛先として認識すると、ファイル３６の各トラックは順に場所４０へ転送される。ファイルＳＭＭＦコマンドがファイル３７を認識すると、コピープログラムはソースデバイス３１中の２つの非連続位置３７Ａと３７Ｂを、デバイス３５ＤＥＳＴ Ｂの連続トラック場所４１ヘ転送する。この段階の際に、ソースまたは宛先デバイスのデータへのアクセスの如何なる試みも迅速に行われる。
３．コピー処理を変更または終了できる変更/終了段階。
【００２５】
シメトリックスＤＡＳＤデータ記憶装置システムにおいて、ホストアダプター２６のような各ホストアダプターと、ディスクアダプター３０、３２，３４のようなディスクアダプターとが、ホストアダプター２６のコントローラー８６、ディスクアダプター３０のようなコントローラー８７、ディスクアダプター３２のコントローラー８８、ディスクアダプター３４のコントローラ８９のようなコントローラーを備えている。この各コントローラーは類似の構造であり、独自のランダムアクセスメモリを含み、キャッシュメモリへアクセスするマイクロプロセッサを備えている。
【００２６】
図５から図９は、第１処理段階に行われるステップと手順を、図８から図１０は第２処理段階を、図１１と図１２は第３処理段階を示している。本発明を理解するために、まず最初に図１のファイル３６を記憶装置４０に転送することに関する発明を説明し、その後に別の複雑なコピー処理について示すことが有用である。
【００２７】
要求ホストアプリケーションがファイル３６を記憶装置４０へコピーをしようとする場合、要求ホストアプリケーションは、データ記憶装置２４と、特にホストアダプター２６のコントローラ８６とソースデバイスとされたディスクアダプター３０のコントローラ８７のような、ソースと関連するアダプターコントローラとデバイスコントローラと相互に作用するよう、図５のプロセス９０を開始する。ステップ９１において、要求ホストコントローラは１つのトラックをエクステント・トラックとして割り当てる。コントローラ８７はステップ９２を用いてそのエクステント・トラックを割り当て、の要求ホストアプリケーションへ返送されるそのトラックへのポインタを生成する。要求ホストアプリケーション中のステップ９３は、図２に示されているソースデバイス３１についてのヘッダー５５のブロック７０のような、ソースデバイスヘッダ構成にポインタを置く。
【００２８】
ステップ９４において、要求ホストアプリケーションはセッションＩＤを生成する処理を開始する。ホストアダプタ２６のコントローラ８６のようなホストアダプターコントローラは、そのセッションＩＤを確立することによってステップ９５で応答する。更に詳細には、プロテクションビットを含むデータブロックは、各トラックＩＤテーブルと関連している。データブロックは、各トラックに一行で、各セッションに一列の２次元の配列とみなすことができる。シメトリックスディスクアレイ記憶装置において、各行は２バイト幅で最大１６セッションを定義するものである。このアレイはＰＢヘッダー９６として各トラックＩＤテーブルに置かれている。以下の説明において、特定のＰＢビット位置は、ｘがシリンダ内のトラックを示し、ｙがセッション番号を示すＰＢ（ｘ、ｙ）の形態で認識できる。ステップ９５において、セッション作成中にコントローラ８７は、どの「ｙ」列が利用できるかを判定する。一つが利用できる場合、コントローラ８７は選択されたＰＢビット列に関連するセッション認識番号を確立する。この割当は、ソースおよび宛先デバイスに関連する各ＰＢヘッダ９６に適用される。個別のセッションを確立することで、部分的に重なる領域があっても、並行して進めることができる複数のコピー処理が可能になり、例えば、ファイル３６をＤＥＳＴ  Ａのデバイス３３へコピーし、ファイル３６を含む別の集合を別の指定デバイスへコピーしたいというような場合である。
【００２９】
セッションが確立されてＰＢ列ビットが決定されると、制御は、要求ホストアプリケーションがエクステント・トラックを確立するステップ９７へ進む。最初に、要求ホストアプリケーションは、この特定のセッションへ割り当てられたエクステント・トラック８５のような、エクステント・トラックを読み取る。最初の段階において、エクステント・トラックにはデータがない。しかしながら、以下で理解できようにステップ９７の処理は所定セッション中に繰り返すことができる。つまり、ステップ９７は、新しいコマンドに必要な新しいエクステントを追加したり、以前に規定された無効のエクステントを削除するというような種々のハウスキーピング処理を行う。
【００３０】
次に、要求ホストアプリケーションは、エクステント・リストを再分類する。特定の装置において、エクステント・リストには分類フィールドとしてシリンダーブロックヘッド方式のアドレスが含まれている。つまり、処理を探索するために最小要求で最も効率的なデータ転送が、シリンダーおよびトラックによって命令される。その後、ステップ９７で図３に示される構成に従ってエクステント・トラックが形成される。
【００３１】
図３を参照すると、エクステント・トラックのヘッダー７６は、エクステント・トラックがロックされているかどうかを示すロックステータスエントリーを含んでいる。複数のホスト環境において、ＳＭＦＩＤエントリ１０１は、エクステント・トラック７５を生成したり、最新更新したりするホストアプリケーションを認識する。エントリ１０２は、エクステント・トラック７５に含まれるエクステント・バッファ７７の番号を認識する。ブロック１０３は、図１のソースデバイス３１のようなソースデバイスを認識する。パスワードエントリ１０４は、ホストソースまたは宛先デバイスが要求を確認できるようにする。ＴＯＤフィールド１０５は、エクステント・トラックが形成され時間を含んでいる。この情報はホストアプリケーションによって利用可能である。フィールド１０６は、１つの実施例においてトラック中の最初のレコード示す、常時ゼロの最初のエクステントを示している。最後のエクステントエントリ１０７は、最初のエクステントエントリ１０６のエクステントに関連する最後に使用されたエントリを認識するものである。ＰＢオフセット・ベクトルエントリ１０８は、最初と最後のエクステント要素、あるいは特定のセッションのバッファを認識するエントリの番号を含んでいる。他のエントリも同様にヘッダ７５に含まれているが、エントリ１０１と１０５と同様に、それらはホスト処理の制御情報を提供するものであり本発明には関連しない。
【００３２】
図３のエクステント・トラック７５のような、各エクステント・トラックは更に、エクステントバッファ７７のような、１つあるいはそれ以上のエクステント・バッファを含んでいる。要求ホストアプリケーションのコマンドが、ソースデバイス３１のファイル３６をＤＥＳＴ Ａデバイス３３の場所４０へ転送するものである場合、エクステント・トラックには唯一のエクステントバッファが含まれる。このエクステントバッファ７７は、本発明の見地から、ソース開始場所１１０を含む一定の情報を有している。本特定の装置において、これはリンダ・ブロック・ヘッダ・アドレス方式の開始場所である。エントリ１１１は、エクステントのコピー処理に含まれるトラック番号、すなわち、ファイル３６のトラックの全番号を含んでいる。保護ビットオフセットエントリ１１２は、セッションに合わせて調整される特定のＰＢ列位置を認識する。
【００３３】
各エクステントバッファ７７は、エクステント・トラックが最初に書き込まれた時に設定されるＮＷＥ  ＥＸＴＥＮＴフラグ、特定のエクステントの削除が要求されたときに設定されるＲＥＭＯＶＥ  ＥＸＴＥＮＴフラグ、およびソースデバイスコントローラによって設定されるＩＮＶＡＬＩＤ  ＥＸＴＥＮＴフラグを含んでいるフラグフィールド１１３を有している。フラグフィールドは、本特定の発明とは関連しない目的で使用されるの別のフラグを含んでいる。
【００３４】
エントリ１１４と１１５は集合的に宛先デバイスを定める。特に、エントリ１１５は宛先デバイス番号を定め、一方でエントリ１１４はＤＥＳＴ  Ａデバイス３３における格納場所の初期場所を定める。エントリ１１６はセッションＩＤを格納し、エントリ１１７はエクステントバッファ７７内の全ての先行するバイトについてのＥＸＴＥＮＴ  ＣＲＣコードを含んでいる。
【００３５】
図５に戻ると、ステップ９７で一旦エクステント・トラックが作成されると、エクステント・トラックをトラック８５へ書き込み、その後、データ記憶装置２４への転送を要求する確立エクステントシステムを実行する。その後に、要求ホストアプリケーションは、ステップ１２０で示される待機状態になる。
【００３６】
待機状態１２０の間に、データ記憶装置２４と、特に宛先デバイスコントローラ８８は、図６に示されているように環境を確立してコピー処理を開始するよう応答する。一旦この処理がステップ１２１において終了すると、ステータスは要求ホストアプリケーションへ戻される。図５のステップ１２２は、ステータスを受け取り、どちらか一方のファイルコピーへのＩ／Ｏ要求を生成することを含んでいてもいなくても、要求ホストアプリケーションが処理を継続できるようにしている。例えば、要求ホストアプリケーションは、ファイル３６またはＤＥＳＴＡデバイス３３中の場所４０のそのコピーへアクセスすることができる。もしくは、要求ホストアプリケーションは、ＨＯＳＴ  ＡＰＰ  Ｂアプリケーション２３のような第２のアプリケーションが、ＤＥＳＴ  Ｂデバイス３３のコピー場所４０といった宛先デバイスのコピーへアクセスできるようにしてもよい。
【００３７】
ホストアダプター２６のような、データ記憶装置２４中のホストアダプターがエスタブリッシュ・エクステント・システムコールを受け取ると、宛先デバイスコントローラ８８のような宛先デバイスコントローラはシステムコールを受け取り、図６のステップ１２３において種々のパラメーターを確認する。そのような確認としては、最初のアドレスが有効なアドレスであり、特に図３のデバイス開始場所１１４のデバイスヘッダーに記録されているアドレスと同じものかを確かめることを挙げることができる。更に別の多くのテストを、システムコールの状況と内容を確認するために行うことができる。
【００３８】
確認したと想定すると、制御は、ホストアダプターがＤＥＳＴ  Ａデバイス３１のような宛先デバイスをロックするステップ１２４へ進む。ステップ１２５において、ホストアダプターコントローラ８６は、図２の要求バッファ７２のＡＴＴＮフラグのようなソースデバイスについての要求バッファにＡＴＴＮ信号を入力する。ステップ１２６は、宛先デバイスへのデータ転送をもたらす要求レコードを形成する。要求レコードは、図４で示されるデータ構造を有しており、ブロックつまりフィールド８１のソースデバイス番号、ブロックつまりフィールド８２の開始エクステントレコード番号、およびブロックつまりフィールド８３の最終エクステントレコード番号とを含んでいる。
【００３９】
その後、制御は図７に示される手順１２７に進む。宛先デバイスが物理デバイスを反映する場合には、詳述しないが当業者には公知の手順で関連のミラーデバイスを全て確実に不活性にする。ステップ１３０は、付加的な変動がそのエクステント・トラックで起こらないように、ステップ１３０において関連のエクステントトラックを選択してロックする。宛先デバイスの各トラックに対して、ステップ１３１は多くの機能を果たす。まず第１に、ヘッダ６１の値を利用して、ヘッダー６１が宛先デバイスと関連していることと、宛先デバイスと関連する各トラックの間接（ＩＮＤ）ビット位置１３２がクリアされていることとを確定する。次に、各宛先トラックに対して、ステップ１３１はＩＮＤフラグを設定して、キャッシュポインタへの間接アドレスを設定する。間接アドレスは、コピーされるソースデバイス中のトラックのアドレスのことである。デバイスへ書き込み中である場合、それらはクリアされる。更に詳細には、本発明のこの装置は、要求ホストアプリケーションがデータを完全に壊すような作動をすることはない。この想定に対して、如何なる書込み中の処理もコピーファイルに置かれるので無関係である。書き込み中フラグをクリアすることで、データがコピーファイルトラックを上書きすることを確実に防ぐことができる。各宛先トラックに設定されているインキャッシュフラグ１３３はいずれもクリアされる。この時点でシステムは、ソースデバイス３１へのエクステント・トラックの転送へ影響する、書き込み中ビットをセットできる。
【００４０】
一旦この全ての情報が宛先デバイスに関連するトラックＩＤへ転送されると、セッション列のプロテクションビットが、ステップ１３５においてソースデバイスに関する全てのエクステントの各トラックへセットされる。ステップ１３６は、図３に示されるフラグフィールド１１３のＮＥＷ  ＥＸＴＥＮＴフラグをリセットする。その後、ＣＲＣフィールドがステップ１３７で更新され、エクステント・トラック７５のような、エクステント・トラックがステップ１３２において書き込み中になるようにセットされる。宛先デバイスコントローラー８８は、ステップ１４０を利用してステップ１３０においてロックされたエクステント・トラックを解除する。その後、他の確立エクステント・トラックシステムコールはエクステントトラックを変更できる。ステップ１４１において、宛先デバイスコントローラー８８は肯定応答をソースデバイス３１と関連するディスクアダプターへ送る。ステップ１４２は、図６のステップ１２６で生成された要求をキャンセルする。
【００４１】
その後、制御は宛先デバイスのロックを解除する図６のステップ１４３へ戻る。その後、ステップ１４４においてホストアダプターコントローラー８６はステータスをホストへ送り、ソースデバイス３１のようなソースデバイスを、ＨＯＳＴ  Ａ  ＡＰＰアプリケーション２２のようなホストアプリケーションへ再接続する。
【００４２】
ここで明らかになるように、図６と７のステップは如何なるデータの物理転送も引き起こさない。それでもやはり、宛先デバイスがステップ１４３においてロック解除され、ソースデバイスがステップ１４５において再接続される場合には、如何なるホストアプリケーションもソースデバイス３１のファイルを変更する可能性があり、例えばファイル３６や他の如何なるアプリケーションも、ＤＥＳＴ  Ａデバイス３３の場所４０に格納されたファイルコピーのデータにアクセスできるのである。
【００４３】
図８は、図１に示されるコピープログラムの処理を示す。ステップ１５０において、ソースデバイスコントローラー８７が図３におけるエクステント・トラック７５のような、エクステント・トラックを読み取る。ステップ１５１はエクステント・トラック７５からのデータを最初の宛先トラック場所を得るために利用し、ステップ１５２は宛先デバイスを認識しており、これら２つのアイテムが、特に図１のデータ記憶装置２４内の最初の宛先トラックを位置決めする。
【００４４】
ステップ１５３は、宛先デバイスの定義されたエクステントについての各トラックに関する、図２のトラックＩＤテーブル６３のＩＮＤフラグ１３２のようなＩＮＤフラグをテストするループの第１段階である。このテストは、特定のトラックをソースから宛先へコピーする必要があるか否かを決定する。本説明において以下で明らかになるように、別の機能が個々のトラックの転送に影響してしまうことがある。トラックのデータがソースデバイスから宛先デバイスへ転送されていないと、ステップ１５４は、制御をそのトラックをコピーするステップ１５５へ、例えば、ソースデバイス３１のトラックから、ＤＥＳＴ  Ａ宛先デバイスの関連する、または所定のトラックへ転送する。ステップ１５６は宛先デバイスのＩＮＤビットをクリアし、ステップ１５７は、ソースデバイス３１のトラックについてのヘッダー９６の関連ＰＢビットをクリアする。
【００４５】
ＩＮＤフラグをクリアすることで、宛先デバイスのトラックを処理するアプリケーションがトラックをコピーすることを確実に防ぐことができる。ソースデバイスのＰＢビットをクリアすることで、ホストアプリケーションがソースデバイス３１のトラックにアクセスしてもトラックがコピーされることを確実に防ぐことができる。ステップ１６０において、処理される付加的なトラックがある場合には、制御は次のトラックを認識するためにステップ１６１へ進み、その制御はステップ１５３へ戻る。
【００４６】
ステップ１５４でＩＮＤビットがセットされていないと判定されると、コピーは行われず、制御は直接ステップ１６０へ進む。全てのトラックが順次確認されて、エクステントが転送されコピープログラムが終了したとみなされる。
【００４７】
前述のように、第２の処理段階は、たとえデータが実際にコピーされる前に、ホストアプリケーションがソースデバイスファイル３６や宛先デバイスファイル４０へアクセスできても、コピー中はデータの完全性を保証する。図９は、アプリケーションからの書き込み要求に対する応答を示しており、例えば、ＨＯＳＴＡＰＰ  Ａアプリケーション２１がソースデバイス３１のファイル３６へ書き込みを行う場合に起こるものである。読み取り要求はデータを変更することはないので、通常通り処理される。書き込み要求については、ホストアダプター２６が書き込み要求を、例えばファイル３６に書き込むためにソースディスクアダプター３０といったソースディスクアダプターへ送る。コントローラー８７はステップ１７０でその要求を受け取り、ステップ１７１でソースデバイスと関係している関連ＰＢビットをテストする。例えば、ソーストラックＩＤテーブル５６の関連ヘッダー９６にあるＰＢビットである。所定の列のＰＢビットはデバイスの全てのトラックに集合的に対応する。しかし、列のセットビットはコピーされるこのようなファイル、または他のデータサブセットを認識できる。つまり、ＰＢビット位置は、ソースデバイスの所定のソース格納場所のリストを構成する。同様に、宛先デバイストラックＩＤテーブルのＩＮＤビット位置は、宛先デバイス中の所定の宛先格納場所のリストをもたらすのである。
【００４８】
通常の処理中に、図２のトラックＩＤテーブル５６のような、ソースデバイストラックＩＤテーブルのＰＢビットがクリアされる場合、トラックがエクステントにないか、あるいはすでに転送されているので、ステップ１７２はエクステントにあるか、あるいは通常の方法で書き込み処理を終了するためにステップ１７３へ進む。その後、ステップ１７４は書き込み要求を送出したホストアプリケーション、例えば図１のＨＯＳＴ  ＡＰＰ  Ａ２２のようなアプリケーションに肯定応答を送る。
【００４９】
トラックにＰＢビットがセットされると、トラックはファイルに存在しており、依然転送される必要があるので、ステップ１７２は制御をステップ１７５へ進める。ステップ１７５は、ソースデバイスにロックがあることを保証し、ステップ１７６を利用して、ソースホストアプリケーションから書き込まれた単一トラックを認識しながら図８のコピープログラムを要求する。図８のコピープログラムは、ソースデバイスからの単一トラックを宛先デバイスに書き込み、さらにソースデバイスに対するトラックＩＤテーブルのＰＢビットや、宛先デバイスに対する関連ＩＮＤをクリアすることによって応答する。コピープログラムが、この単一トラックの転送を完了すると、ステップ１７７はソースデバイスをロック解除するので、直ちに全てのアプリケーションが再度利用できるようになる。つまり、図９は、転送されたソースファイルに対する書き込み要求がホストアプリケーションから送られてきた場合に、データの完全性を保証するプロセスを示している。
【００５０】
図１０は、ＨＯＳＴ  ＡＰＰ  Ｂアプリケーション２３のようなホストアプリケーションが、宛先ホストアプリケーションとして、ＤＥＳＴ  Ａデバイス３３のファイルコピー４０のような宛先デバイスへアクセスをしようとする場合に生じる処理を示している。宛先デバイスのコントローラ、例えば、ＤＥＳＴ  Ａ宛先デバイス３３のコントローラ８８は、ステップ１８０で宛先ホストアプリケーションから読み書き要求を受け取る。その後、コントローラ８８は、ステップ１８１を使って関連の宛先デバイストラックＩＤテーブル、例えば、トラックＩＤテーブル６４へアクセスし、ビット位置１３２でＩＮＤビットをテストする。ＩＮＤビット位置は、宛先トラックが図７のステップ１３１で設定中にエクステントの一部である場合には既にセットされている。
【００５１】
ＩＮＤビットがセットされると、読み取り要求の場合にはデータが最新のものであること、書き込み要求の場合にはコピープログラムが通常モードの処理において新しいデータを上書きしないことを保証する必要がある。つまり、ステップ１８２はステップ１８３へ制御を進めるのである。ステップ１８３は、宛先デバイスを確実にロックする。その後、ステップ１８４は要求をソースデバイスへ送り、ソースデバイスディスクアダプター３０にあるファイル３６のコピープログラムといったコピープログラムを開始する。この要求は、図４で示される基本構造をもっている。しかし、要求が宛先デバイスで起こる場合には、フィールド８１は宛先デバイス番号を含んでおり、フィールド８２と８３とはシリンダーアドレスや、宛先デバイスのためのヘッド識別子を含んでいる。その単一トラックがコピーされると、ステップ１８５は宛先デバイスのロックを解除する。
【００５２】
トラックのＩＮＤビットがクリアされると、トラックはエクステントにないか、またはすでにコピーされている。この条件に合致すると、ステップ１８２は、ステップ１８３、１８４および１８５を飛び越えて制御をステップ１８６へ進める。その後、ステップ１８６は読み書き処理を行い、ステップ１８７の宛先ホストアプリケーションへ肯定応答を送る。
【００５３】
次に、終了/変更段階について言及すると、図１１はエクステント・トラックからエクステント・バッファを削除するプロセスを示している。まず最初に、要求中のホストアプリケーションがステップ１９０を利用して図２のエクステント・トラック７５のようなエクステント・トラックを読み取る。次に、要求中のホストアプリケーションが、図３のフラグフィールド１１３にあるような、対応するエクステント・バッファにＲＥＭＯＶＥ  ＥＸＴＥＮＴフラグをセットする。これが完了すると、ステップ１９２がエクステント・トラックをキャッシュメモリ２７へ書き込む。その後、要求中のホストアプリケーションがステップ１９３においてＲＥＭＯＶＥ  ＥＸＴＥＮＴＳシステムコールを送出する。
【００５４】
ホストアダプターと宛先デバイスアダプター、例えば、ホストアダプター２５と宛先デバイスアダプター３０が応答する。まず最初に、ホストアダプターは図６のステップ１２３から１２６に示されているのと同じプロセスを用いて、要求レコードを、図１２で示されているように応答する宛先デバイスアダプターへ送る。
【００５５】
図１２を参照すると、ステップ１９５がエクステントを選択して、対応するエクステント・トラックをロックするので、他のアプリケーションはそのエクステント・トラックを変更できない。ステップ１９６は、対応するエクステント・バッファのフラグフィールドにＩＮＶＡＬＩＤ  ＥＸＴＥＮＴビットをセットする。例えば、図３のフラグフィールド１１３のＩＮＶＡＬＩＤ  ＥＸＴＥＮＴフラグである。ステップ１９７は、データの完全性を維持するためにＥＸＴＥＮＴＳＣＲＣを更新する。ステップ２００において、宛先デバイスアダプターがソースデバイスの全てのＰＢビットをクリアする。例えば、図２のトラックＩＤテーブル５５を有するＰＢヘッダーである。ステップ２０１は、宛先デバイスのトラックＩＤテーブルの全てのＩＮＤフラグをリセットする。特定の例として、トラックＩＤテーブル６３のＩＮＤフラグ１３２のセットを挙げることができる。ステップ２０２において、宛先ディスクアダプター３０のコントローラー８８が、エクステント・バッファ７７のフラグフィールド１３３のＲＥＭＯＶＥ  ＥＸＴＥＮＴフラグのようなＲＥＭＯＶＥ  ＥＸＴＥＮＴフラグをクリアする。ステップ２０３は、ソースデバイス３１に更新したコピーを生成するために、ソースエクステント・トラックを書き込み状態にして、図３のＥＸＴＥＮＴ  ＣＲＣフィールド１１７のようなＥＸＴＥＮＴ  ＣＲＣフィールドを更新する。
【００５６】
一旦、図１２の手順が完了すると、図１１のステップ２０４に示される待機状態にある要求ホストアプリケーションへ応答が送られる。この応答により、要求ホストアプリケーションは後続のハウスキーピングやプロセスのためにステップ２０５のエクステントトラックを読み取る。ステップ２０６において、要求ホストアプリケーションが終了したエクステントを全て削除し、その後、前述のようにステップ２０７でエクステント・リストを再分類する。ステップ２１０は更新されたエクステント・トラックをキャッシュメモリ２７へ書き込む。
【００５７】
ステップ２１１は、プロセスが完了したか否かを判定する。つまり、ソースデバイスコントローラ８７は、全てのＩＮＶＡＬＩＤ  ＥＸＴＥＮＴフラグ、例えばエクステントバッファ７７のフラグフィールド１１３にある無効エクステントフラグがセットされたか否かをテストする。セットされていれば、ステップ２１１は２１２へ進み、処理を完了する前にセッションＩＤ削除のシステムコールを送出する。そうでなければ、図１１のプロセスは、システムコールを送出することなく終了するのでコピーが行われたセッションはアクティブ状態のままとなる。
【００５８】
図示されていないが、特定のデバイスを削除するセッションＩＤシステムコールは、関連のエクステントから全てのＰＢビット、例えば、ソースデバイスに割り当てられたコラム位置のＰＢビットをクリアし、そのＰＢコラムやセッション位置を他に利用できるようにする。
【００５９】
これまでは、ソースデバイスの一連の連続データトラックにある単一のファイルが宛先デバイスの連続トラックへ転送される処理について説明した。特に、ソースデバイス３１のファイル３６と、ＤＥＳＴ  Ａ宛先デバイス３３の記憶装置場所４０との間の処理についてである。これと同じ手法で実行される他の多種多様な転送がある。実際には、更に複雑なデータ転送を可能にするのは前述の構成および処理である。
【００６０】
例えば、図１のファイル３７は、連続データトラック場所の２つの組、つまり、場所３７Ａと３７Ｂにあるように示されている。ファイル３７は単一のソースデバイス中にあるので、図５から図７に示されるエクステントの設定は、ヘッダ７６のようなヘッダと２つのエクステントバッファ７７とを有する、図５の形態のエクステントトラックを生成できる。第１のエクステント・バッファは連続トラック３７Ａの開始場所と、図３のフィールド１１０と１１１に対応するフィールド中のセットにおけるトラック番号を認識する。第２のエクステント・バッファは、連続トラック３７Ｂの開始場所と、フィールド１１０と１１１に対応する連続セットのトラック番号を含むことができる。宛先開始場所、例えば宛先開始場所１１４は、第１のエクステントバッファ７７にある場所４０の開始トラック場所や、連続トラックの第２セットと関連する開始場所からの第１のエクステント中のトラック番号による番号オフセットを含んでいる。
【００６１】
単一のコーピーコマンドや一連のコピーコマンドが、ファイル３６を格納場所４０へ、ファイル３７を格納場所４１へ転送するよう要求をすることもできる。この場合、エクステント・トラックの設定は、ファイル３６と３７の両者が同一ソースデバイスの重複しない位置にあるので、単一のエクステント・トラックを再度生成することになる。図１に示される特定の実施例において、エクステント・トラック７５が３つのエクステント・バッファを含んでいる。第１のエクステント・バッファは、ファイル３６を格納場所４０へ転送する情報を含んでいる。第２、第３のエクステントバッファは、トラックセット３７Ａと３７Ｂをそれぞれの位置と格納場所４０へ転送する情報を含んでいる。
【００６２】
転送は、単一セッション内でも行うことができる。例えば、図１のファイル３６と３７を格納場所４０と４１へ転送するのに加えて、デバイス３３の格納場所２３０のファイルをデバイス３５の格納場所２３１へ転送する要求があると想定する。このプロセスが単一エクステントトラック設定で定義される場合、デバイス４３は、ファイル２３０を認識するデバイス３３のソースデバイスエントリを付加することことにより、図２に示されるように変更される。その新しいソースデバイスは、格納場所２３０と宛先格納場所２３１を認識するエクステント・トラックを含むことができる。つまりこの特定の実施例において、論理デバイス３３は、ファイル３６を受け取る宛先デバイスとしてのみならず、ファイル２３０のソースデバイスとして動作し、本発明を実施する結果として、更に複雑な処理も依然単一セッション内で起こり得るのである。
【００６３】
前述のように単一のセッションは、通常利用可能なスペースにより制限された、またはデバイスヘッダに割り当てられた所望の数の転送を行うことができる。しかし、単一のセッションは、データが重複しているファイルの転送には利用できない。例えば、図1でファイル３６をＤＥＳＴ  Ａデバイスの格納場所４０とＤＥＳＴ  Ｂデバイス３５の格納場所４１の両者に転送しようとする場合には重複が起こる。ソースのエクステントが重複している場合、別々のセッションを使用する必要がある。この場合、別個のセッションが使用され、転送における如何なる両義性も解決するよう別個のＰＢコラム位置が割り当てられる。
【００６４】
つまり本発明は、例えば完全な論理ボリュームによる転送といった、一般的に所定の荒さの細分度のデータを転送するデータ記憶装置での使用に特に適用できる方法を提供する。特に、本発明は、データサブセットを移動できるようにして無関係なデータ転送を削除するものである。更に、本発明は、これらの転送が他のホストアプリケーションに対して最小限の妨げで行われるようにしている。前述のように、ホストアプリケーションは、転送のための処理環境を確立することに専念できる。一旦その環境が確立されると、一般的に数ミリセカンドのうちに、要求ホストアプリケーションは他のプロセスを継続することが可能になる。実際の転送が起こっている間に動作を妨げることがない。アプリケーションが続行できるようにすることで、ソースにあるファイル、または宛先にあるファイルコピーのいずれかにアプリケーションによるアクセスが可能となる。コピー中に、それらの位置を含んでいる可能性のある転送が起こり得る。本システムは、データの完全性のために、その転送を更新する方法を提供するものである。更に、本方法は、ホストアプリケーションが、単一のファイルを単一の宛先へコピーするものから、データ記憶装置の中の複数の物理デバイスに置かれている複数のファイルを含むコピー要求までの範囲の複雑性を有しているコピー要求範囲を定めることができるようにしている。
【００６５】
本発明は、特定のデータ記憶装置の構成を備える特定の装置に関連して説明されている。ＩＮＤフラグのような特定のフラグが定義されている。図５から１２は、特定の処理手順を開示している。本発明の目的がある程度または完全に達成できるのであれば、これらフラグの定義や処理手順は変更でき、他のものは特定のデータ記憶装置の構成および容量次第で省略できることが分かる。
【００６６】
前述および他の変更を、本発明から逸脱することなく開示されたシステム対して行い得ることが明らかである。つまり、添付の請求の範囲は、本発明の真の精神と範疇内での変更や修正を全てカバーすることが意図されているのである。
【図面の簡単な説明】
【図１】本発明を実行するのに適するデータ記憶装置を備えるデータ処理システムのブロック図である。
【図２】図１で示したキャッシュメモリのより詳細な説明である。
【図３】図２のキャッシュメモリ内のエクステント・トラックのさらに詳細な図である。
【図４】本発明で有用な要求についてのデータ構造である。
【図５】コピーが行われるホストアレイとデータ記憶装置との間の相互作用を示す。
【図６】図５で示されたプロセスの一部の、より詳細なフローチャートである。
【図７】図６で示されたプロセスの一部の、より詳細なフローチャートである。
【図８】本発明に有用なコピープログラムを示す。
【図９】所定のソース格納場所への書き込み要求に対するシステムの応答を示す。
【図１０】所定の宛先格納場所への読み書き要求に対する応答を示す。
【図１１】エクステント・トラックを削除する手順のフローチャートである。
【図１２】図１１で示したプロセスの一部の、より詳細なフローチャートである。
【図１】
0003712922.tif 000002
【図２】
0003712922.tif 000003
【図３】
0003712922.tif 000004
【図４】
0003712922.tif 000005
【図５】
0003712922.tif 000006
【図６】
0003712922.tif 000007
【図７】
0003712922.tif 000008
【図８】
0003712922.tif 000009
【図９】
0003712922.tif 000010
【図１０】
0003712922.tif 000011
【図１１】
0003712922.tif 000012
【図１２】
0003712922.tif 000013