(57)【特許請求の範囲】
【請求項１】
ソース格納部とターゲット格納部との間でデータを転送するために１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するためのシステムであって、
前記ポイント・イン・タイム・コピーは、ソース・ボリュームからターゲット・ボリュームへの論理的コピーを含み、
前記システムは、
１つ又はそれ以上のホスト・コンピュータと、
前記ホスト・コンピュータにネットワークを介して接続される１つ又はそれ以上の格納コントローラと、
前記格納コントローラに接続されうるソース格納部であって、１つ又はそれ以上のソース・データ・ブロックをソース・ボリュームとして含む、前記ソース格納部と、
前記格納コントローラに接続されうるターゲット格納部であって、１つ又はそれ以上のターゲット・データ・ブロックをターゲット・ボリュームとして含み、前記ターゲット・データ・ブロックは、前記ソース・ボリュームの全て又は一部のコピーを維持する、前記ターゲット格納部と
を含み、
前記格納コントローラは、前記ソース格納部又は前記ターゲット格納部への入力又は出力要求を前記ホスト・コンピュータから受け取り、該要求を前記ソース格納部又は前記ターゲット格納部へ向け、さらに前記ソース格納部と前記ターゲット格納部との間のデータ転送を制御し、
前記格納コントローラは、
システム・メモリと、
前記ソース格納部に接続されうるソース・キャッシュであって、前記ソース格納部への書き込みデータ及び前記ホスト・コンピュータへの読み取りデータをバッファする、前記ソース・キャッシュと、
前記ターゲット格納部に接続されうるターゲット・キャッシュであって、前記ターゲット格納部への書き込みデータ及び前記ホスト・コンピュータへの読み取りデータをバッファする、前記ターゲット・キャッシュと、
を含み、
前記格納コントローラは、
前記ソース格納部と前記ターゲット格納部との間でのコピーの管理を実行する格納管理ソフトウェアを前記システム・メモリ内に読み込み、そして実行することができ、
前記格納コントローラは、
前記ソース・ボリューム及び前記ターゲット・ボリュームの各々についてメモリ内関連性テーブル
をさらに含み、
前記メモリ内関連性テーブルは、
（ｉ）前記ソース又はターゲット・ボリュームにおける連続するデータ単位の開始トラック及び終了トラックを表わす少なくとも１つのエレメントと、
（ｉｉ）ソース・ボリューム又はターゲット・ボリュームについての前記関連性を表わす少なくとも１つの関連性エントリと、
（ｉｉｉ）前記エレメントを１つ又はそれ以上の前記関連性エントリに関連付けるエレメント・ポインタと、
（ｉｖ）前記関連性エントリそれぞれを、前記システム・メモリ内のボリューム・メタデータに関連付ける関連性ポインタと
を含み、
前記ボリューム・メタデータが、
ソース用のデータ単位が前記関連性における対応するターゲット用のデータ単位に、コピーされたかどうかを示すビットを含む関連性ビットマップと、
前記関連性の一意的な識別子を与える関連性ＩＤ、ボリュームにおけるトラックの領域が関連性においてソースであるか又はターゲットであるかを示す関連性ロール、ボリュームにおける前記トラックの領域を表す所定領域、及び前記関連性における他のボリュームを識別するボリューム対を有する関連性ブロックと
を含む、前記システム。
【請求項２】
前記ボリューム・メタデータを使用して、前記システム・メモリ内で、前記少なくとも１つのエレメント、前記少なくとも１つの関連性エントリ、前記エレメント・ポインタ、及び前記関連性ポインタを生成する手段をさらに含む、請求項１に記載のシステム。
【請求項３】
前記ボリューム・メタデータにおいて識別される各々の前記関連性について、１つの関連性エントリを生成するための手段をさらに含み、
前記関連性エントリは、前記ボリューム・メタデータに含まれる関連性情報のサブセットを含む、請求項１又は２に記載のシステム。
【請求項４】
前記関連性ポインタが、１つの前記関連性エントリを、該関連性を表す対応する関連性ブロックに関連付ける、請求項３に記載のシステム。
【請求項５】
ソース用のボリューム・メタデータ及びターゲット用のボリューム・メタデータが、前記ソース・ボリューム及び前記ターゲット・ボリューム内の不揮発性格納部内にそれぞれ格納される、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記少なくとも１つのエレメント、前記少なくとも１つの関連性エントリ、前記エレメント・ポインタ、及び前記関連性ポインタの１つのセットが、各ボリュームについて生成される、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するための方法であって、請求項１〜６のいずれか１項に記載のシステムに、
前記システム・メモリ内に、前記少なくとも１つのエレメントと、前記少なくとも１つの関連性エントリと、前記エレメント・ポインタと、前記関連性ポインタとを生成するステップを実行させることを含み、それによって１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性の管理を可能にする、前記方法。
【請求項８】
請求項１〜６のいずれか１項に記載のシステムに、
各々の前記関連性について、ソース及びターゲットの関連性情報が前記システム・メモリ内に生成されているかどうかを判断するステップと、
１つの判断された関連性について、前記システム・メモリ内に前記ターゲットの関連性情報が生成されていない場合に、該判断された関連性について、前記ソースの関連性情報を前記システム・メモリから除去し、該判断された関連性についての関連性情報を前記ソース用のボリューム・メタデータから除去するステップと、
１つの判断された関連性について、前記システム・メモリ内に前記ソースの関連性情報が生成されていない場合に、該判断された関連性について、前記ターゲットの関連性情報を前記システム・メモリから除去し、該判断された関連性についての関連性情報を前記ターゲット用のボリューム・メタデータから除去するステップと
をさらに実行させることを含む、請求項７に記載の方法。
【請求項９】
前記ソース又はターゲットの関連性情報を前記メモリから除去するステップが、該システム・メモリから、前記関連性エントリ、前記少なくとも１つのエレメント・ポインタ、及び前記関連性における前記ソース・ボリュームについて生成された前記関連性ポインタを除去するステップを含む、請求項８に記載の方法。
【請求項１０】
前記システム・メモリ内で前記少なくとも１つのエレメントを生成するステップが、
前記ボリューム・メタデータを使用して、ソース・ボリューム及びターゲット・ボリュームそれぞれの関連性に含まれるデータ単位の各々の開始トラック及び終了トラックを求めるステップと、
ソース・ボリューム及びターゲット・ボリュームのうちの少なくとも１つの関連性に含まれるデータ単位の開始トラック及び終了トラックについて１つのエレメントを生成するステップと
を含む、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記システム・メモリ内で前記少なくとも１つのエレメントを生成するステップが、
１つの関連性に含まれるエレメントにおけるデータ単位の開始トラックから終了トラックの範囲よりも先のデー単位の開始トラックから終了トラックの範囲又は当該データ単位よりも後に続くデータ単位の開始トラック及び終了トラックの範囲を表わすエレメントを生成するステップ
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記生成されたエレメントそれぞれが、前記少なくとも１つのエレメントにリンクされており、前記リンクされたエレメントが、データ単位の開始トラックから終了トラックの連続する範囲を含む、請求項１１に記載の方法。
【請求項１３】
前記関連性エントリ及び前記関連性ポインタを生成するステップが、
前記ボリューム・メタデータにおいて識別される各々の関連性について、１つの関連性エントリを生成するステップをさらに含み、前記関連性エントリが、前記ボリューム・メタデータに含まれる関連性情報のサブセットを含む、請求項７〜１２のいずれか１項に記載の方法。
【請求項１４】
請求項１〜６のいずれか１項に記載のシステムに、
データ単位をステージし又はデステージする要求を受け取るステップであって、前記ステージは、前記ソース格納部から前記ソース・キャッシュ若しくはターゲット・キャッシュにデータを書き込むこと又は前記ターゲット格納部から前記ターゲット・キャッシュにデータを書き込むことであり、前記デステージは、前記ソース・キャッシュから前記ソース格納部にデータを書き込むこと又は前記ターゲット・キャッシュから前記ターゲット格納部にデータを書き込むことである、前記受け取るステップと、
前記１つのエレメント・ポインタを有する前記１つのエレメントにより表わされるデータ単位の開始トラックから終了トラックの範囲に、前記要求されたデータ単位が含まれるかどうかを判断するステップと、
該要求されたデータ単位が関連性に関連付けられた１つのエレメント内に含まれている場合に、該要求されたデータ単位が、ターゲット用のデータ単位にコピーされたかどうかを判断するステップと、
前記ソース用のデータ単位が前記ターゲット用のデータ単位にコピーされていない場合に、前記ステージ又はデステージ動作を実行する前に、該ソース用のデータ単位を該ターゲット用のデータ単位にコピーするステップと
をさらに実行させることを含む、請求項７〜１３のいずれか１項に記載の方法。
【請求項１５】
１つの関連性における前記ソース用のデータ単位、及び当該ソース用のデータ単位に対応するターゲット用のデータ単位が、異なるデータ単位の番号を有する、請求項７〜１４のいずれか１項に記載の方法。
【請求項１６】
コンピュータに、請求項７〜１５のいずれか１項に記載の方法の各ステップを実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するための方法、システム、及びプログラムに関する。
【背景技術】
【０００２】
コンピューティング・システムは、多くの場合、データ処理を行い、アプリケーション・プログラムを稼動させるための１つ又はそれ以上のホスト・コンピュータ（「ホスト」）、データを格納する直接アクセス型格納デバイス（ＤＡＳＤ）、及び、該ホストと該ＤＡＳＤとの間のデータ転送を制御するための格納コントローラを含む。コントロール・ユニット又は格納ディレクタとも呼ばれる格納コントローラは、ループ・アーキテクチャにおいて接続される幾多のハード・ディスク・ドライブで構成された格納スペースに対するアクセスを管理し、他の場合においては直接アクセス型格納デバイス（ＤＡＳＤ）と呼ばれる。ホストは、格納コントローラを通して、格納スペースに対する入力／出力（Ｉ／Ｏ）要求を通信することができる。
【０００３】
多くのシステムにおいて、ＤＡＳＤのような１つの格納デバイス上のデータを同じ又は別の格納デバイスにコピーして、データ・ボリュームに対するアクセスを２つの異なるデバイスから与えるようにすることができる。ポイント・イン・タイム・コピーは、すべてのデータをソース・ボリュームからターゲット・ボリュームに物理的にコピーして、該ターゲット・ボリュームがポイント・イン・タイム時点のデータのコピーを有するようにすることを含む。ポイント・イン・タイム・コピーは、さらに、論理的にデータのコピーを作成し、次いで、必要な時にデータをさらにコピーするだけで、事実上、物理的なコピー動作を遅らせることができる。この論理的コピー動作が行われると、ターゲット・ボリューム及びソース・ボリュームがアクセス不能になる時間を最小にすることができる。
【０００４】
１つのこのような論理的コピー動作は、ＦｌａｓｈＣｏｐｙ（商標）として知られている（ＦｌａｓｈＣｏｐｙは、インターナショナル・ビジネス・マシーンズ・コーポレーションすなわちＩＢＭ社の商標である）。ＦｌａｓｈＣｏｐｙ（商標）は、異なるデバイス上のソース・ボリュームとターゲット・ボリュームとの間の論理的ポイント・イン・タイム関連性を確立することを含む。ＦｌａｓｈＣｏｐｙ機能は、ターゲット・ディスク上におけるＦｌａｓｈＣｏｐｙ関連性内のトラックの位置が固められるまで、該トラックがソース・ディスク上に常駐することを保証する。関連性テーブルを用いて、サブシステムにおけるすべての既存のＦｌａｓｈＣｏｐｙ上の情報を維持する。ＦｌａｓｈＣｏｐｙ関連性の確立段階においては、１つのエントリが、確立されているＦｌａｓｈＣｏｐｙに参加するソース及びターゲットについて、ソース及びターゲットの関連性テーブルに記録される。各々の付加されたエントリは、ＦｌａｓｈＣｏｐｙ関係に関する、すべての要求される情報を維持する。関連性についての両方のエントリは、ソース所定領域からのすべてのＦｌａｓｈＣｏｐｙトラックがターゲット所定領域（ｅｘｔｅｎｔｓ）にコピーされるか、又は、取下げコマンドが受信された場合に、関連性テーブルから除去される。
【０００５】
ターゲットの関連性テーブルは、さらに、ＦｌａｓｈＣｏｐｙ関連性に含まれるどのトラックが、まだコピーされておらず、したがって、保護トラックであるかを識別するビットマップを含む。ターゲット・デバイスにおける各々のトラックは、ビットマップにおいて１ビットで表わされる。ターゲット・ビットは、対応するトラックがＦｌａｓｈＣｏｐｙ関連性のターゲット・トラックとして確立された場合に設定される。ソース又はターゲット装置上への書き込み又はバックグラウンドのコピー・タスクのために、対応するトラックがソース位置からコピーされ、ターゲット・デバイスにデステージされた場合に、ターゲット・ビットが再設定される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術においては、ＦｌａｓｈＣｏｐｙ（商標）動作中の論理的なポイント・イン・タイム関連性の確立の一部として、ＦｌａｓｈＣｏｐｙ（商標）に含まれるソース・キャッシュ内のすべてのトラックは、物理的なソース・ボリューム、例えば、ソースＤＡＳＤにデステージされなければならず、ＦｌａｓｈＣｏｐｙ（商標）に含まれるターゲット・キャッシュ内のすべてのトラックは廃棄されなければならない。
【０００７】
論理関連性が確立されると、ホストは、次いで、ソース・ボリューム及びターゲット・ボリューム上のデータに即時アクセスすることができ、該データは、バックグラウンド動作の一部としてコピーされることができる。トラックがＦｌａｓｈＣｏｐｙ関連性におけるターゲットであり、キャッシュにはない場合における該トラックに対する読み取りは、ステージ・インターセプトをトリガし、ソース・トラックがまだコピーされておらず、ターゲット・キャッシュからトラックにアクセスが与えられる前である場合に、要求されたターゲット・トラックに対応するソース・トラックが、ターゲット・キャッシュにステージされるようにする。このことは、ターゲットが、ＦｌａｓｈＣｏｐｙ（商標）動作のポイント・オブ・タイムにおいて存在したソースからのコピーを有することを確実にする。さらに、コピーされていないソース・デバイス上のトラックに対するどのような書き込みも、デステージ・インターセプトをトリガし、ソース・デバイス上のトラックが、ターゲット・デバイスにコピーされるようにする。
【課題を解決するための手段】
【０００８】
ソース格納部とターゲット格納部との間でデータを転送するために１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するためのシステム、方法、及びプログラムが提供される。当該ポイント・イン・タイム・コピーは、ソース・ボリュームからターゲット・ボリュームへの論理的コピーを含む。 前記システムは、
１つ又はそれ以上のホスト・コンピュータと、
前記ホスト・コンピュータにネットワークを介して接続される１つ又はそれ以上の格納コントローラと、
前記格納コントローラに接続されうるソース格納部であって、１つ又はそれ以上のソース・データ・ブロックをソース・ボリュームとして含む、前記ソース格納部と、
前記格納コントローラに接続されうるターゲット格納部であって、１つ又はそれ以上のターゲット・データ・ブロックをターゲット・ボリュームとして含み、前記ターゲット・データ・ブロックは、前記ソース・ボリュームの全て又は一部のコピーを維持する、前記ターゲット格納部と
を含み、
前記格納コントローラは、前記ソース格納部又は前記ターゲット格納部への入力又は出力要求を前記ホスト・コンピュータから受け取り、該要求を前記ソース格納部又は前記ターゲット格納部へ向け、さらに前記ソース格納部と前記ターゲット格納部との間のデータ転送を制御し、
前記格納コントローラは、
システム・メモリと、
前記ソース格納部に接続されうるソース・キャッシュであって、前記ソース格納部への書き込みデータ及び前記ホスト・コンピュータへの読み取りデータをバッファする、前記ソース・キャッシュと、
前記ターゲット格納部に接続されうるターゲット・キャッシュであって、前記ターゲット格納部への書き込みデータ及び前記ホスト・コンピュータへの読み取りデータをバッファする、前記ターゲット・キャッシュと、
を含む。
【０００９】
前記格納コントローラは、前記ソース格納部と前記ターゲット格納部との間でのコピーの管理を実行する格納管理ソフトウェアを前記システム・メモリ内に読み込み、そして実行することができる。
前記格納コントローラは、前記ソース・ボリューム及び前記ターゲット・ボリュームの各々についてメモリ内関連性テーブルをさらに含む。
【００１０】
前記メモリ内関連性テーブルは、（ｉ）前記ソース又はターゲット・ボリュームにおける連続するデータ単位の開始トラック及び終了トラックを表わす少なくとも１つのエレメントと、（ｉｉ）ソース・ボリューム又はターゲット・ボリュームについての前記関連性を表わす少なくとも１つの関連性エントリと、（ｉｉｉ）前記エレメントを１つ又はそれ以上の前記関連性エントリに関連付けるエレメント・ポインタと、（ｉｖ）前記関連性エントリそれぞれを、前記システム・メモリ内のボリューム・メタデータに関連付ける関連性ポインタとを含む。
【００１１】
前記ボリューム・メタデータが、ソース用のデータ単位が前記関連性における対応するターゲット用のデータ単位に、コピーされたかどうかを示すビットを含む関連性ビットマップと、前記関連性の一意的な識別子を与える関連性ＩＤ、ボリュームにおけるトラックの領域が関連性においてソースであるか又はターゲットであるかを示す関連性ロール、ボリュームにおける前記トラックの領域を表す所定領域、及び前記関連性における他のボリュームを識別するボリューム対を有する関連性ブロックとを含む。
【００１２】
本発明はまた、１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するための方法を提供する。該方法は、システムに、前記システム・メモリ内に、前記少なくとも１つのエレメントと、前記少なくとも１つの関連性エントリと、前記エレメント・ポインタと、前記関連性ポインタとを生成するステップを実行させることを含み、それによって１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性の管理を可能にする。
【００１３】
本発明はまた、コンピュータに、上記方法の各ステップを実行させるためのコンピュータ・プログラムを提供する。
【００１４】
述べられた実施形態は、ソース・ボリュームとターゲット・ボリュームとの間の関連性の情報、及び、このような情報のメモリ内における関連を提供し、このような情報を利用可能にする。
【発明を実施するための最良の形態】
【００１５】
ここで、本発明を一例に過ぎないものとして、添付の図面を参照して説明する。
【００１６】
図１は、本発明の態様を実施するコンピューティング・アーキテクチャを示す。格納コントローラ２は、ネットワーク６上で、入力／出力（Ｉ／Ｏ）要求をホスト・システム４ａ、４ｂ．．．ｍから受け取り、ボリューム（例えば、論理装置番号、論理装置など）１０ａ、１０ｂ．．．１０ｎ及び１２ａ、１２ｂ．．．１２ｎのそれぞれを有するように構成された格納デバイス８ａ、８ｂ２０の方向に向けられ、ここで、ｍ及びｎは、異なる整数であってもよいし、又は、同じ値であってもよい。格納コントローラ２は、さらに、ソース格納部８ａ内のトラックについてのＩ／Ｏデータを格納するソース・キャッシュ１４ａと、ターゲット格納部８ｂ内のトラックについてのＩ／Ｏデータを格納するターゲット・キャッシュ１４ｂとを含む。ソース・キャッシュ１４ａ及びターゲット・キャッシュ１４ｂは、別個のメモリ・デバイスを含んでいてもよいし、又は同じメモリ・デバイスの異なる部分を含んでいてもよい。キャッシュ１４ａ、１４ｂは、ホスト４ａ、４ｂ．．．４ｎと格納部８ａ、８ｂとの間で伝送される読み取りデータ及び書き込みデータをバッファするのに用いられる。さらに、キャッシュ１４ａ及び１４ｂは、ポイント・イン・タイム・コピー関連性におけるソース・トラック又はターゲット・トラックを保持するものであるため、ソース・キャッシュ及びターゲット・キャッシュとそれぞれ呼ばれているが、該キャッシュ１４ａ及び１４ｂは、異なるポイント・イン・タイム・コピー関連性において、同時に、ソース・トラック又はターゲット・トラックを格納することができる。
【００１７】
格納コントローラ２は、さらに、揮発性及び／又は不揮発性デバイスにおいて実施することができるシステム・メモリを含む。格納管理ソフトウェア１８は、システム・メモリ１６内で、ＦｌａｓｈＣｏｐｙ（商標）動作中に行われる論理コピー形式のような、異なる格納デバイス８ａ、８ｂ間でのデータのコピーの管理を実行する。格納管理ソフトウェア１８は、ここに述べられるコピー動作の他の動作を実行することができる。システム・メモリ１６は、キャッシュ１４ａ、１４ｂとは別個のメモリ・デバイス内にあってもよいし、又は、その一部であってもよい。格納管理ソフトウェア１８は、格納コントローラ２により管理される各々のボリュームについてのポイント・イン・タイム・コピー関連性の情報を与える１つのメモリ内関連性テーブル２０を維持し、ここでは各々のボリュームについて１つのメモリ内関連性テーブル２０があるとすることができる。幾つかの実施においては、トラックはコピー関連性が前提となる。しかし、トラックのブロック、サブ・ブロックなどのような他のデータ単位が、コピー関連性を前提とすることがあり、関連性におけるソース・データ単位においては、対応するターゲット・データ単位がある。
【００１８】
格納コントローラ２は、さらに、プロセッサ複合体（図示せず）を含み、ＩＢＭ  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ（ＥＳＳ）（商標）、３９９０（商標）Ｓｔｏｒａｇｅ  Ｃｏｎｔｒｏｌｌｅｒなどの当該技術分野に知られる、あらゆる格納コントローラ又はサーバを含むことができる（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒは、ＩＢＭ社の商標である）。ホスト４ａ、４ｂ．．．４ｎは、サーバ、メインフレーム、ワークステーション、パーソナル・コンピュータ、ハンド・ヘルド・コンピュータ、ラップトップ、テレフォニー・デバイス、ネットワーク・アプライアンスなどの当該技術分野に知られる、あらゆるコンピューティング・デバイスを含むことができる。格納コントローラ２及びホスト・システム４ａ、４ｂ．．．４ｎは、格納エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、ワイド・エリア・ネットワーク（ＷＡＮ）などを含むことができるネットワーク６により通信する。格納システム８ａ、８ｂは、単純ディスク束（ＪＢＯＤ）、新磁気ディスク制御機構（ＲＡＩＤ）アレイ、仮想化デバイスなどの格納デバイスのアレイを含むことができる。
【００１９】
ポイント・イン・タイム・コピーは、ソース・ボリューム上のトラック範囲とターゲット・ボリューム上のトラック範囲との間に確立することができ、関連性に含まれるソース・ボリューム及びターゲット・ボリュームのトラック番号は、同じであってもよいし、又は、異なっていてもよい。或る実施においては、ソース範囲及びターゲット範囲は、それぞれのボリュームの始まりからのオフセットが相対的に異なるようにすることができる。これは、データ・セットの再編成、例えば、一組の不連続データ・セットを連続するトラックのセットに合体させることを可能にする。図２は、ソース・ボリューム５４の中間に配置された不連続なソース所定領域５０及び５２が、どのようにして、ターゲット・ボリューム６０の始まりにおいてターゲット範囲５６及び５８に再配置され、ソース５４とターゲット６０とで異なる順番で生じるかを示す。
【００２０】
述べられる実施は、さらに、トラックの所定領域（範囲）、（ｅｘｔｅｎｔ（ｒａｎｇｅ））が、同時に、１つより多いポイント・イン・タイム関係の一部になることができる、トラック毎の多重ポイント・イン・タイム・コピー関連性を可能にする。トラックは、ソース領域に属してもよいし、又は、ターゲット所定領域に属してもよい。さらに、トラックは、複数のソース関係に属すことができるが、或る実施においては、１つのターゲット関連性のみが可能である。図３は、トラック毎の複数の関係を示し、ソース・ボリューム７０は、ターゲット・ボリューム８０における異なるターゲット所定領域８２、８４、８６、及び８８にマップする所定領域（トラックの範囲）７２、７４、７６、及び７８を有する。ソースの所定領域７２及び７４は、ターゲットの所定領域８２に関連し、ソースの所定領域７４及び７６はターゲットの所定領域８４に関連して、これらの２つの関連性がトラックの重複所定領域７４を共有するようになっている。さらに、ソースの所定領域７８は複数のターゲット所定領域８６及び８８に関連し、ソースの所定領域７４はまた、複数のターゲット所定領域８２及び８４に関連する。この例においては、複数のターゲットが同じボリュームで示されているが、ターゲット・トラックは、異なるボリュームにあってもよい。
【００２１】
ポイント・イン・タイム・コピー関連性が、ソース・ボリュームにおけるトラックの所定領域とターゲット・ボリュームにおける所定領域との間に確立された場合には、該関連性上の永続情報がソース・ボリューム１０ａ、１０ｂ．．．１０ｎ及びターゲット・ボリューム１２ａ、１２ｂ．．．１２ｎにおけるボリューム・メタデータ内に格納される。図４に関しては、各々のソース・ボリューム及びターゲット・ボリュームについてのボリューム・メタデータ１００は、関連性メタデータ１０２、関連性ビットマップ・メタデータ１０４、及びボリューム生成番号のようなメタデータ・コンポーネントを含むことができる。関連性メタデータ１０２は、関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎを含み、これらの各々は、ボリュームにおけるトラックの所定領域について１つのポイント・イン・タイム・コピーの情報を含む。図５は、図４における関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎのような関連性ブロックのさらなる詳細を示すもので、次を含む。
・関連性ＩＤ１１０：関連性の一意的な識別子を与える。この番号は、ソース及びターゲットの両方により用いられて、関連性を指定する。
・関連性ロール１１２：ボリュームにおけるトラックの領域が関連性においてソースであるか又はターゲットであるかを示す。
・所定領域（Ｅｘｔｅｎｔ）１１４：ボリュームにおけるトラックを識別するもので、ポイント・オブ・コピー関連性に含まれるトラックの所定領域（範囲）を含む。
・ボリューム対１１６：関連性における他のボリュームを識別する。
【００２２】
関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎは、リンクされたリストに配置することができる。使用されない関連性メタデータ１０２におけるブロックは、関連性情報を関連性ブロックとして格納する用途に利用可能なフリー・ブロックのフリー・リストに格納することができる。関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎは、固定長とすることができ、索引付けられているため、これらは索引によりアクセス可能である。
【００２３】
関連性ビットマップ・メタデータ１０４は、ボリュームにおける各々のトラックについてビットを与える１つ又はそれ以上のビットマップ・データ構造を含む。ビットが「オン」である場合には、これは、対応するターゲット・トラックが、まだ、ソースからのポイント・イン・タイム・データを含んでおらず、データがさらにコピーされなくてはならないことを示す。所定領域の範囲に対応するビット値は、関連性ビットマップ・メタデータ１０４のオフセットに直接マップすることができる。
【００２４】
図６は、メモリ内関連性テーブル２０のデータ構造の実施を示す。各々のボリュームについて、格納コントローラ２により管理される１つのメモリ内関連性テーブル２０があるようにすることができる。メモリ内関連性テーブル２０は、複数のエレメント１３０ａ、１３０ｂ、１３０ｃ、及び１３０ｄを含み、各々のエレメントは、対応するボリュームにおける連続するトラックのエクステントを表わす。図７は、図６におけるエレメント１３０ａ、１３０ｂ、１３０ｃ、及び１３０ｄのような各々のエレメント１３０のコンテンツを示し、ボリュームにおけるトラックの連続する範囲の開始及び終了を表わす開始トラック１３２及び終了トラック１３４と、１つ又はそれ以上の関連性エントリ１４０ａ、１４０ｂ、及び１４０ｃに対するポインタのアレイ１３６とを含む。関連性エントリは、リンクされたリストにあってもよいし、又は、なくてもよい。さらに別の複数のエレメントが、同じ関連性エントリ１４０ａ、１４０ｂ、及び１４０ｃを指示することができる。図６は、エレメント１３０ａ、１３０ｂ、及び１３０ｄが、関連性エントリ１４０ａ、１４０ｂ、及び１４０ｃを指示するポインタ１３６ａ、１３６ｂ、１３６ｃ、及び１３６ｄにより表わされた状態における、ポイント・イン・タイム・コピー関連性に含まれるトラックの範囲を表わして、該エレメント１３０ａ、１３０ｂ、及び１３０ｄにより表わされるトラックを含む関連性の情報を与える状態を示す。エレメント１３０ｃは、関連性エントリ１４０ａ、１４０ｂ、及び１４０ｃに対するいずれのポインタもないことにより示されるように、ポイント・イン・タイム関連性に含まれないトラックの範囲を表わす。エレメント、例えばエレメント１３０ａが、異なる関連性エントリ１４０ａ及び１４０ｂを指示するポインタ１３６ａ及び１３６ｂのアレイを含む場合には、このようなトラックの範囲は、２つの関連性と関連されて、このような範囲が複数のターゲットに対するソースであることを示す。
【００２５】
図８は、図６における関連性エントリ１４０ａ、１４０ｂ、及び１４０ｃのような、各々の関連性エントリ１４０に含むことができるコンテンツを示し、関連性ロール１１２及び／又は関連性ＩＤ（図５）のような、ボリューム・メタデータ１００における対応する関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎからの永続的関連性情報１５０の特定のものと、関連性エントリ１４０により表わされる関連性についての永続情報を含む関連性ブロック１０６に対するポインタ１５２と、を含む。関連性エントリ１４０におけるポインタ１５２は、図６においてはポインタ１５２ａ、１５２ｂ、及び１５２ｃとして示される。ポインタ１５２は、さらに、関連性メタデータ１６０における対応する関連性ブロックに対する索引を含むことができる。図６は、さらに、ボリューム・メタデータ１６０の関連性メタデータ１６２部分における、ポインタ１５２ａ、１５２ｂ、及び１５２ｃにより対処される関連性ブロック１６４ａ、１６４ｂ、及び１６４ｃを示す。メモリ内関連性テーブル（ＩＭＲＴ）２０は、さらに、ボリューム１０ａ、１０ｂ、１０ｎ、１２ａ、１２ｂ．．．１２ｎを識別するボリューム情報１６６を含み、これに該メモリ内の関連性テーブル２０が属する。
【００２６】
述べられるデータ構造により、関連性情報のほとんどは、ボリューム１０ａ、１０ｂ、１０ｎ、及び１２ａ、１２ｂ、１２ｎ（図１）と共に格納されるボリューム・メタデータ１００における永続格納部内に維持される。さらに、或る実施においては、関連性の各々のメンバー、ソース及びターゲットは、それぞれのボリュームにおいて別個に関連性を維持する。このようにして、関連性におけるボリュームが故障した場合には、格納コントローラ２は、依然として、故障したボリュームをもつポイント・イン・タイム・コピー関連性におけるソース又はターゲットが、実際に関連性の一部であるかどうかを判断することができ、したがって、デステージ動作及びステージ動作中に特別な処理を要求するかどうかを判断することができる。
【００２７】
図９は、格納コントローラ２により管理されるボリューム１０ａ、１０ｂ．．．１０ｎ、１２ａ、１２ｂ．．．１２ｍにおけるボリューム・メタデータ１００からメモリ内関連性テーブル（ＩＭＲＴ）２０を初期化するための格納管理ソフトウェア１８において実施される論理を示す。初期化の初めにおいて（ブロック２００において）、格納管理ソフトウェア１８は、格納コントローラ２にアクセス可能な各々のボリュームについてブロック２０２から２２６のループを実行する。（ブロック２０８において）ボリュームｉについてアクセスされたボリューム・メタデータ１００において関連性ブロック１０６がなかった場合には、制御は次のボリュームのためにブロック２２６に進み、ボリュームｉについてはＩＭＲＴ２０は構築されない。ボリュームｉについて、そのボリュームにはＩＭＲＴがないという揮発性表示をボリューム構造に作成することができる。或いは、関連性ブロックがない場合には、ＮＵＬＬエレメントを指示して、そのボリュームについての関連性を示さないＩＢＲＴ２０を構築できる。他の場合においては、（ブロック２０８において）ボリュームｉについて関連性ブロック１０６がある場合には、関連性ブロックを指示しないＩＭＲＴ２０がメモリ１６内に構築される（ブロック２１２）。次いで、ボリュームｉにおける各々の関連性ブロックｊについてブロック２１４から２２４のループが実行される。各々の関連性ブロックｊについて、最初のブロックから最後のブロックまで、開始フィールド１３２及び終了フィールド１３４（図７）において示される１つ又はそれ以上のエレメント１３０がＩＭＲＴ２０に構築され（ブロック２１６において）、これは、関連性ブロックｊにおけるトラック１１４の所定領域１１４において識別される開始トラック及び終了トラックを含む。構築されたエレメントは、次いで、ボリュームｉにおける連続する先行トラックを表わすエレメントにリンクされる（ブロック２１８において）。格納管理ソフトウェア１８は、さらに、関連性ＩＤ及びロール１５０（図８）のような、永続的関連性ブロックｊからの関連性情報、及び、ボリューム・メタデータにおけるアクセスされた関連性ブロックｊに対するポインタ１５２を含む、ＩＭＲＴ２０における関連性エントリ１４０を構築する（ブロック２２０において）。さらに、１つの関連性から前の関連性にリンクを付加することができる。ポインタは、関連性ブロック１０６ａ、１０６ｂ．．．１０６ｎのアレイに対する索引を含むことができる（図４）。関連性エントリは、アレイに編成することができ、該アレイにおける各々の関連性エントリ１４０ａ、１４０ｂ、１４０ｃは、対応する関連性ブロック１６４ａ、１６４ｂ、１６４ｃの索引により求めることができる。制御は、（ブロック２２において）ボリューム・メタデータ１０２における次の関連性ブロック１０６を処理するようにブロック２１４に戻るように進む。ブロック２０８から又はボリュームｉについて、すべての関連性ブロックを処理した後、制御は、（ブロック２２６において）格納コントローラ２により管理されるデバイスにおけるさらに別のボリューム上の情報を処理するようにブロック２０２に戻るように進む。
【００２８】
図９の論理の結果として、ＩＭＲＴ２０が、関連性を含む、格納コントローラ２により管理される各々のボリュームについてのメモリ１６に付加されて、ユーザがポイント・イン・タイム・コピー関連性に含まれるトラックに対してＩ／Ｏを実行する場合には、該格納コントローラ２が、ポイント・イン・タイム・コピー関連性のデータ保全性を維持することを可能にするように用いられる。
【００２９】
図１０及び図１１は、新規に確立されたポイント・イン・タイム・コピー関連性におけるソース及びターゲット・ボリュームについてのＩＭＲＴを更新するために格納管理ソフトウェア１８により実行される動作を示す。図１０に関しては、付加された関連性を反映するようにＩＭＲＴの更新を開始したとき（ブロック２５０において）、最初に、関連性におけるソース・ボリュームについて、次いでターゲット・ボリュームについて、ブロック２５２から２８２のループが実行される。ブロック２５４においては、ボリューム・メタデータ１００（最初にソース、次いでターゲット）は、各々が新規な関連性の情報を与える関連性ブロックを付加し、該新規な関連性におけるすべてのトラックがソースからターゲットにコピーされていないことを示す関連性ビットマップ１０４を更新することにより、更新される。関連性の情報を永続的メタデータに付加した後、特定の関連性情報１５０（図８）、及び、ソース又はターゲット・ボリュームにおける永続的関連性ブロック１６４ａ、１６４ｂ、１６４ｃに対するポインタ１５２を含むボリューム（ソース又はターゲット）についての関連性エントリ１４０がＩＭＲＴ２０において生成されて（ブロック２５６において）、メモリ内の関連性の表現（関連性エントリ１４０）を、格納部における対応する永続的関連性ブロック１０６と関連付ける。格納管理ソフトウェア１８は、次いで、新規な関連性におけるトラックの所定領域を含む１つ又はそれ以上のエレメント１３０を検索する（ブロック２５８において）。
【００３０】
（ブロック２６２において）エレメントｉにより表わされるすべてのトラックが新規な関連性におけるトラックの所定領域内にある場合には、ポインタ１３６が付加されて（ブロック２６４において）、該エレメントｉを、新規な関連性を表わす関連性エントリ１４０と関連付ける。他の場合においては、（ブロック２６２において）エレメントｉにより表わされるトラックの一部のみが、新規な関連性におけるトラックの所定領域と重複する場合には、図１１に関しては、該エレメントｉが新規な関連性におけるトラックの所定領域の第１のトラックを含むかどうかの判断がなされる（ブロック２６６において）。（ブロック２６６の「ｎｏ」の枝分かれからの）エレメントｉが新規な関連性におけるトラックの所定領域の最後のトラックを含む場合には、該エレメントｉは２つの新規なエレメントと置き換えられ（ブロック２６８において）、第１の新規なエレメントは、関連性の所定領域と重複し、該新規な関連性におけるトラックの所定領域における最後のトラックで終了するトラックを含み、第２の新規なエレメントは、該関連性の所定領域と重複しないトラックを含む。（ブロック２６６の「ｙｅｓ」の枝分かれからの）エレメントｉが、所定領域の第１のトラックを含む場合には、該エレメントｉは、２つの新規なエレメントと置き換えられ、第１の新規なエレメントｉは関連性の所定領域と重複しないトラックを含み、第２の新規なエレメントｊは、関連性の所定領域と重複し、該関連性の所定領域における第１のトラックで開始するトラックを含む。（ブロック２７２において）エレメントｊが、同様に該エレメントｊにおける最後のトラックではない所定領域の最後のトラックを含む場合には、ブロック２６８の動作が該エレメントｊについて実行され（ブロック２７４において）、さらに別の分割が実行されて、該エレメントｊの最後において、所定領域と重複しないトラックを抽出し、このような重複しないトラックをさらに別のエレメントに配置する。置き換えられたエレメントが位置決めされた場所において、２つ又は３つの新規なエレメントがエレメントのリンクされたリストに付加される。
【００３１】
エレメントｉを２つ又は３つの新規なエレメントで置き換えた後、１つ又はそれ以上のポインタ１３６が（ブロック２７６において）、置き換えられたエレメントｉにより指示される、あらゆる関連性エントリに対する２つ又は３つの新規なエレメント１３０に付加される。次いで、関連性の所定領域におけるトラックを表わす新規なエレメントを、関連性を表わす関連性エントリと関連付けるように、作成された関連性エントリ１４０を指示する新規な関連性からのトラックを含む新規なエレメントに、ポインタ１３６が付加される。次いで、制御は、新規な関連性におけるトラックを含む、次に検索されたエレメントのために図１０におけるブロック２６０に戻るように進む（ブロック２８０において）。新規な関連性におけるソース・ボリュームについて、すべての関連するエレメントを処理した後、（ブロック２８２における）制御は、ターゲット・ボリュームについてのＩＭＲＴ２０を更新して、付加されたポイント・イン・タイム・コピー関連性を反映するようにブロック２５２に戻るように進む。
【００３２】
図１２は、関連性全体を取下げる又は終了するために、格納管理ソフトウェア１８により実行される動作を示す。図１２の動作は、ポイント・イン・タイム・コピー関連性におけるすべてのトラックが、ソース・ボリュームからターゲット・ボリュームにコピーされた後で実行することができる。或いは、関連性全体は、該関連性全体を終了させることを決定するアドミニストレータにより取下げることができる。関連性全体を取下げる動作を開始するときには（ブロック３００において）、格納管理ソフトウェア１８は、ソース及びターゲット・ボリュームにおける関連性メタデータ１０２から、削除された関連性のソース及びターゲット・トラックの所定領域を求める。取下げ要求は、関係の所定領域を与えることができ、これは次いで、ＩＭＲＴ２０及び／又は関連性メタデータ１０２を照会して、ボリューム・メタデータを、関連性における特定の所定領域１１４又は関連性ＩＤ１１０を含む、ソース及びターゲット・ボリュームに検索するのに用いることができる。次いで、ブロック３０４から３２６において、第１に、取下げられた関連性におけるターゲット・ボリュームについて、第２に、ソース・ボリュームについてループが実行される。次いで、ブロック３０６において、取下げられた関連性を表わすソース及びターゲット・ボリュームのメタデータにおける関連性ブロック１０６が削除される。削除された関連性を表わす（ターゲット、次いでソース）ボリュームについてのＩＭＲＴ２０における関連性エントリが除去される（ブロック３０８で）。格納管理ソフトウェア１８は、次いで、（ブロック３１０で）、削除された関連性エントリ１４０に対処する１つ又はそれ以上のエレメント１３０を検索し、除去された関連性エントリ１４０に対するポインタ１３６を、検索されたエレメントから削除する（ブロック３１２）。
【００３３】
取下げられた関係における情報を削除した後、格納管理ソフトウェア１８は、次いで、ブロック３１４で処理を開始して、まさに同じ関連性エントリを指示し、又は、関連性エントリを指示しない、あらゆるエレメントを合体させる。ブロック３１４においては、格納管理ソフトウェア１８は、除去された所定領域と重複する、ＩＭＲＴ２０における第１のエレメント１３０ａ（図６）にアクセスし、アクセスされたエレメントとして、ゼロ又はそれより多い、同じ関連性エントリを指示し、又は、すべてが、関連性エントリを指示しない、後続する連続したエレメントを求める。１つ又はそれ以上の後続するエレメント１３０が検索された場合には、アクセスされたエレメント及びすべての求められた後続エレメントが、アクセスされ、検索された、エレメントにおいて同じゼロ又はそれ以上のポインタ１３６を有する、該アクセスされ、検索されたエレメントにおけるすべての連続的なトラックを表わすエレメントと置き換えられる（ブロック３２０において）。（ブロック３１８において）後続するエレメント１３０が検索されなかった場合には、最後にアクセスされたエレメントに続くエレメント（ブロック３１８の「ｎｏ」の枝分かれから合体が起こらなかった場合）、又は、最後に合体されたエレメントに続くエレメント（合体がブロック３２０から生じた場合）が１つより多いかどうかの判断がなされる。合体することができる、さらに別のエレメントがある場合には、格納管理ソフトウェア１８は、最後のアクセスされたエレメント（合体が起こらなかった場合）又は検索され合体されたエレメント（合体が起こった場合）に続くエレメントにアクセスする（ブロック３２４において）。次のエレメントにアクセスした後（ブロック３２４において）、制御は、次にアクセスされたエレメントと後続するエレメントを合体させることを試みるように、ブロック３１６に戻るように進む。（ブロック３２２において）マージャに利用可能な複数のエレメントがない場合には、制御は（ブロック３２６において）、取下げられた関連性をソースＩＭＲＴ２０から除去するように、ブロック３０４に戻るよう進む。
【００３４】
図１３及び図１４は、ポイント・イン・タイム・コピー関連性における或る所定領域から連続するトラックのサブセットを除去するために、格納管理ソフトウェア１８において実行される動作を示す。この動作は、関連性所定領域におけるトラックの一部がソース及びターゲットからコピーされた場合に実行して、ソース及びターゲットにおけるこのようにコピーされたトラックを、さらに別のポイント・イン・タイム関連性に利用できるようにすることができる。さらに、トラックは、アドミニストレータからの要求に応答してといった他の状況における或る所定領域から除去することができる。図１３に関しては、関連性所定領域におけるトラックのサブセットを取下げるための部分的な取下げについての動作を開始するときには（ブロック３５０において）、ソース及びターゲット・ボリュームにおける関連性メタデータ１０２から、削除された関連性のソース及びターゲットのトラック所定領域について判断がなされる（ブロック３５２において）。取下げ要求は、関連性ＩＤ又は関連性所定領域を与えることができ、これは次いで、関連性メタデータ１０２を照会して、メタデータを含むソース及びターゲット・ボリュームを、部分的な取り下げの対象となる関連性に位置決めするのに用いることができる。図１４におけるブロック３５４から３７８までのループは、第１に関連性におけるターゲット・ボリュームについて、第２にソース・ボリュームについて実行されて、関連性が前提となるトラック所定領域からトラックのサブセットを取下げる。ブロック３５６において、格納管理ソフトウェア１８は、部分的な取り下げの対象となるトラックを含む１つ又はそれ以上のエレメント１３０を検索する。次いで、図１４のブロック３５８から３５７において、取下げるトラックを含む各々の検索されたエレメントｉについて内部ループが実行される。（ブロック３６０において）エレメントｉにより表わされるすべてのトラックが関連性からの取り下げの対象となる場合には、取り下げの対象となる関連性エントリ１４０に対するエレメントｉにおけるポインタ１３６が除去される（ブロック３６２において）。
【００３５】
（ブロック３６０において）エレメントｉにより表わされるすべてのトラックが取下げの対象ではない場合には、（図１４のブロック３６４において）、該エレメントｉがトラックの範囲における最後のトラックを含んで、関連性から取下げるかどうかについての判断がなされる。エレメントｉが、（ブロック３６４のいいえの枝分かれから）取下げる範囲の最後のトラックを含む場合には、該エレメントｉは２つの新規なエレメントで置き換えられ（ブロック３６６において）、第１の新規なエレメントは、関連性所定領域と重複し、取下げられているトラックの範囲における最後のトラックで終了するトラックを含み、第２の新規なエレメントは、取下げられているトラックと重複しないトラックを表わす。（ブロック３６４の「ｙｅｓ」の枝分かれから）エレメントｉが、取下げる範囲の第１のトラックを含む場合には、該エレメントｉは、（ブロック３６８において）２つの新規なエレメントで置き換えられ、第１の新規なエレメントｉは、取下げられているトラックと重複しないトラックと重複し、第２の新規なエレメントｊは、取下げられているトラックを含み、取下げられているトラックの範囲における第１のトラックで開始するトラックを含む。（ブロック３７０において）エレメントｊが、同様にエレメントｊにおける最後のトラックではない所定領域の最後のトラックを含む場合には、ブロック３６６において、該エレメントｊがさらに別の分割を実行して、所定領域と重複しないエレメントｊの終わりにおけるトラックを抽出し、このように重複しないトラックをさらに別のエレメントに配置する動作が実行される（ブロック３７２において）。２つ又は３つの新規なエレメントが、置き換えられたエレメントが検索された場所において、エレメントのリンクされたリストに付加される。ブロック３６６又は３７０から、制御はブロック３７４に進み、置き換えられたエレメントｉにより指示されるあらゆる関連性エントリを指示する新規なエレメントの両方に対して１つ又はそれ以上のポインタ１３６を付加して、（ブロック３７６において）関連性エントリ１４０に対するポインタ１３６を、取下げの対象となるトラックを含む新規なエレメントから削除する。次いで、制御が進んで（ブロック３７８において）ブロック３５８に戻り、取下げの対象となるトラックのいずれかを、取下げ対象関連性から除去する。取下げ対象関連性からトラックを除去した後、次いで、格納管理ソフトウェア１８は、（ブロック３８０において）図１２のステップ３１４から３２４を実行して、同じ関連性エントリを指示する、又は関連性エントリを指示しない連続するエレメント１３０を合体させる。トラックをターゲット・ボリュームについての関連性から除去した後、制御が進んで（ブロック３８２において）ブロック３５４に戻り、関連性におけるトラックをソース・ボリュームから除去する。
【００３６】
図１３及び図１４における動作の結果として、関連性所定領域におけるトラックのサブセットがソース及びターゲットのＩＭＲＴ２０及びボリューム・メタデータにおける関連性から除去され、該関連性は部分的な取下げがされないトラックに関して残されることになる。取下げ後、所定領域から取下げられたトラックは、次いで、さらに確立された関連性において用いるのに利用可能である。さらに、このような取下げられたデステージ及びステージは、付加的なインターセプト・チェッキングを実行することなく行うことができる。
【００３７】
代替的な実施においては、図１２の論理は、関連性の一部を取下げる場合に用いられることはない。その代わり、古い（前から存在する）関連性を置き換えるために図１０、図１１の動作を実行することにより１つ又はそれ以上の関連性を付加することができ、新規な関連性におけるソース及び／又はターゲットの所定領域は、古い関連性の所定領域のサブセットである。次いで、図１２の論理を用いて、古い（前から存在する）関連性を構成する所定領域を除去する。
【００３８】
図１５は、本発明の実施によるデステージ及びステージ動作を実行するために、メモリ１６内のＩＭＲＴ２０を用いる格納管理ソフトウェア１８により実行される動作を示す。（ブロック４００において）キャッシュ１４ａ、１４ｂにおけるトラックをデステージ又はステージする要求を受け取ったときには、デステージ又はステージするトラックを含むボリュームについてのＩＭＲＴ２０が求められ（ブロック４０２において）、ステージ又はデステージするトラックを含む、求められたＩＭＲＴ２０におけるエレメント１３０が検索される（ブロック４０４において）。（ブロック４０６において）検索されたエレメントが、関連性エントリ１４０に対するポインタ１３６（図７）１３６を含む場合には、格納管理ソフトウェア１８は、（ブロック４０８において）ステージ又はデステージ・インターセプト・ルーチンを開始して、ステージ又はデステージを行う場合にポイント・イン・タイプ・コピー関連性のデータ保全性を確実にする。ステージ又はデステージのインターセプトは、ソース・トラックが対応するターゲット・トラックにコピーされるか、又は、ターゲットのステージ又はソースのデステージを実行する前に、ポイント・イン・タイム・コピー関連性において、ターゲット・キャッシュ１４ｂにステージされることを確実にする。関連性エントリ１４０は、関連性メタデータ１０２及びビットマップ１０２を検索するように処理されて、トラックがソースからターゲットにコピーされたかどうかを判断し、どのようにステージ又はデステージのインターセプトを処理するかを判断する。他の場合においては、（ブロック４０６において）検索されたエレメント１３０が、関連性エントリ１４０に対するポインタ１３６を含まない場合には、トラックのデステージ又はステージが実行される。
【００３９】
図１６は、電力損失後のコールド・スタート、電力損失なしのウォームスタート初期化又は再起動、又は他の検出されるエラー条件に応答して実行することができるエラー回復プロセスを開始するために、格納管理システム１８により実行される動作を示す。エラー回復プロセスを初期化するとき（ブロック４５０において）、格納管理ソフトウェア１８は、図９における動作を実行して、格納コントローラ２により管理されるすべてのボリュームについて、メモリ内のＩＭＲＴ２０を再構築する。幾つかの実施においては、ＩＭＲＴは、メモリがなくなった場合、又は該ＩＭＲＴが不適合状態であるか又は破損した場合にのみ再構築される。格納管理ソフトウェア１８は、次いで（ブロック４５４において）、検証動作を実行して、関連性におけるソースを表わす各々のソース関連性エントリについて、同じ関連性ＩＤを有するＩＭＲＴにおける対応するターゲット関連性エントリがあるかどうかチェックすることにより、構築されたＩＭＲＴ２０を考慮する。上述のように、関連性エントリ１４０は、該関連性エントリ１４０が定義されるボリュームがソース又はターゲットのいずれであるかについての情報及び関連性ＩＤのような関連性情報１５０（図８）を含むことができる。格納管理ソフトウェア１８は、ソースについての関連性エントリ１４０を検索すると、次いで、同じ又は異なるＩＭＲＴ２０における他の関連性エントリ、並びに、不揮発性関連性メタデータ１６２における情報を照会して、１つのＩＭＲＴが同じ関連性ＩＤを有するターゲットを示す関連性エントリ１４０を含むかどうか判断することができる。（ブロック４５６において）ターゲット関連性エントリが、１つのＩＭＲＴ２０内で構築されなかった場合には、制御は、図１２のブロック３０４ないし３２６を実行するように進み（ブロック４５８において）、ソース関連性メタデータ１０２における関連性ブロック１０４ａ、１０４ｂ．．．１０４ｎを除去し、ソースＩＭＲＴ２０から関連性エントリ１４０を除去する。
【００４０】
（ブロック４５６において）各々の検索されたソース関連性エントリに対応するターゲット関連性エントリがある場合には、格納管理ソフトウェア２０は、次いで（ブロック４６０において）、検証動作を実行して、関連性におけるソースを表わす各々のターゲット関連性エントリについて、同じ関連性ＩＤを有するＩＭＲＴにおける対応するソース関連性エントリがあるかどうかチェックすることにより、構築されたＩＭＲＴ２０を考慮し、関連性における各々のソースについて逆もまた同様であるかどうかをチェックすることにより、構築されたＩＭＲＴ２０を考慮する。格納管理ソフトウェア１８は、ターゲットについての関連性エントリ１４０を検索すると、次いで、同じ又は異なるＩＭＲＴ２０における他の関連性エントリに照会して、同じ関連性ＩＤを有するソースについてのものであることを示す関連性情報１５０をもつ関連性エントリ１４０を、１つのＩＭＲＴが含むかどうか判断することができる。（ブロック４６２において）ソース関連性エントリが、１つのＩＭＲＴ２０内で構築されなかった場合には、制御が進んで（ブロック４６４において）図１２のブロック３０４ないし３２６を実行し、ターゲット関連性メタデータ１０２における関連性ブロック１０４ａ、１０４ｂ．．．１０４ｎを除去し、ターゲットＩＭＲＴ２０から関連性エントリ１４０を除去する。
【００４１】
付加的な実施の詳細
ポイント・イン・タイム・コピー関連性を確立し、管理するための述べられた技術は、方法、装置、又は製品として、ソフトウェア、ファームウェア、ハードウェア、又はこれらのあらゆる組み合わせを製造するための標準的なプログラミング、及び／又は、工学技術を用いて実施することができる。ここで用いられる「製品」という用語は、ハードウェア論理（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）において実施されるコード又は論理、又は、磁気格納媒体（例えば、ハード・ディスク・ドライブ、フロッピー（商標）ディスク、テープなど）のようなコンピュータ可読媒体、光学格納部（ＣＤ−ＲＯＭ、光学ディスクなど）、揮発性及び不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル論理など）を指示する。コンピュータ可読媒体におけるコードは、プロセッサ複合体によりアクセスされ、実行される。好ましい実施形態が実施されるコードは、したがって、「製品」は、コードが具現される媒体を含むことができる。さらに、「製品」は、コードが具現され、処理され、実行されるハードウェアとソフトウェアの組み合わせを含むことができる。もちろん、当業者であれば、本発明の範囲から離れることなく、多くの修正をこの構成に行うことができ、製品は、当該技術分野に知られる媒体を支持するあらゆる情報を含むことができることを認識するであろう。
【００４２】
論理ポイント・イン・タイム・コピー関連性を確立するための述べられた実施は、高可用性が傑出したクリティカル・データ環境に配置されるシステムと併せて用いるものとして述べられた。しかし、当業者は、ここに述べられるポイント・イン・タイム・コピー動作は、高可用性が絶対に必要なわけではない非クリティカル・データに用いられる格納システムに適用することができることを理解するであろう。
【００４３】
ソース及びターゲット・キャッシュは、同じメモリ・デバイス又は別個のメモリ・デバイスにおいて実施することができる。
【００４４】
ポイント・イン・タイム・コピー関連性を管理するための述べられた技術は、ソース及びターゲット・トラックが同じ又は異なるトラック番号を有する場合に適用することができる。
【００４５】
述べられる実施例においては、関連性は、異なるボリュームにおけるトラック間のポイント・イン・タイム・コピー関連性に関する。代替的な実施例においては、関連性は、当該技術分野に知られる付加的な形式のコピー又はデータの関連性を含むことができる。
【００４６】
図示される図９ないし図１６の論理は、特定の順番で生じる特定の事象を示す。代替的な実施例においては、特定の動作は、異なる順番で実行してもよいし、又は、修正或いは除去してもよい。さらに、上述の論理にステップを付加することができ、依然として述べられる実施に適合することができる。さらに、ここに述べられる動作は、順次的に生じてもよいし、又は、特定の動作が平行して処理されてもよい。さらにまた、動作は、単一の処理ユニットによって実行してもよいし、又は、分散された処理ユニットによって実行してもよい。
【００４７】
変数ｎ及びｍは、述べられるエレメントの特定のものについてのあらゆる整数の変数を示すのに用いられ、異なる例に用いられる場合には、同じ又は異なる整数値を示すことができる。
【００４８】
図１７は、図１に示すホスト及び格納コントローラのようなネットワーク・コンポーネントのコンピュータ・アーキテクチャ５００の１つの実施例を示す。アーキテクチャ５００は、プロセッサ５０２（例えば、マイクロ・プロセッサ）、メモリ５０４（例えば、揮発性メモリ・デバイス）、及び格納部５０６（例えば、磁気ディスク・ドライブ、光学ディスク・ドライブ、テープ・ドライブなどの不揮発性格納部）を含むことができる。格納部５０６は、内部格納デバイスを含んでもよいし、又は、取り付けられた或いは取り付けられた又はネットワーク・アクセスが可能な格納部を含んでもよい。
【００４９】
格納部５０６におけるプログラムがメモリ５０４にロードされ、当該技術分野に知られる方法によりプロセッサ５０２によって実行される。アーキテクチャは、さらに、ネットワーク・カード５０８を含み、ネットワークとの通信を可能にする。入力デバイス５１０を用いてユーザ入力をプロセッサ５０２に与え、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センシティブ表示スクリーン、又はあらゆる他の当該技術分野に知られる作動又は入力機構を含むことができる。出力デバイス５１２は、プロセッサ５０２又は表示モニタ、プリンタ、格納部などの他のコンポーネントから伝送される情報をレンダリングすることができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の態様が実施されるコンピューティング環境を示す。
【図２】本発明によるソース・ボリュームにおけるトラックとターゲット・ボリュームにおけるトラックとの間の関連性を示す。
【図３】本発明の実施によるソース・ボリュームにおけるトラックとターゲット・ボリュームにおけるトラックとの間の関連性を示す。
【図４】本発明の実施による、コピー関連性におけるソース・トラック及びターゲット・トラックの関連性を表わすために維持される情報の実施形態を示す。
【図５】本発明の実施による、コピー関連性におけるソース・トラック及びターゲット・トラックの関連性を表わすために維持される情報の実施形態を示す。
【図６】本発明の実施による、コピー関連性におけるソース・トラック及びターゲット・トラックの関連性を表わすために維持される情報の実施形態を示す。
【図７】本発明の実施による、コピー関連性におけるソース・トラック及びターゲット・トラックの関連性を表わすために維持される情報の実施形態を示す。
【図８】本発明の実施による、コピー関連性におけるソース・トラック及びターゲット・トラックの関連性を表わすために維持される情報の実施形態を示す。
【図９】本発明の実施による、メモリ内関連性情報を初期化するための動作を示す。
【図１０】本発明の実施による、新規な関連性を反映するためにメモリ内の関連性情報を更新する動作を示す。
【図１１】本発明の実施による、新規な関連性を反映するためにメモリ内の関連性情報を更新する動作を示す。
【図１２】本発明の実施による、関連性からのトラックの取下げを反映するためにメモリ内の関連性情報を更新する動作を示す。
【図１３】本発明の実施による、関連性からのトラックの取下げを反映するためにメモリ内の関連性情報を更新する動作を示す。
【図１４】本発明の実施による、関連性からのトラックの取下げを反映するためにメモリ内の関連性情報を更新する動作を示す。
【図１５】本発明の実施による、キャッシュからのトラックをデステージ処理及びステージ処理する場合の関連性を考慮する動作を示す。
【図１６】本発明の実施による、回復プロセスを実行する動作を示す。
【図１７】ホスト及び格納コントローラ、及びあらゆる他のコンピューティング・デバイスのような、ネットワーク環境におけるコンピューティング・コンポーネントのアーキテクチャを示す。
【図１】
0004398464.tif 000002
【図２】
0004398464.tif 000003
【図３】
0004398464.tif 000004
【図４】
0004398464.tif 000005
【図５】
0004398464.tif 000006
【図６】
0004398464.tif 000007
【図７】
0004398464.tif 000008
【図８】
0004398464.tif 000009
【図９】
0004398464.tif 000010
【図１０】
0004398464.tif 000011
【図１１】
0004398464.tif 000012
【図１２】
0004398464.tif 000013
【図１３】
0004398464.tif 000014
【図１４】
0004398464.tif 000015
【図１５】
0004398464.tif 000016
【図１６】
0004398464.tif 000017
【図１７】
0004398464.tif 000018