(57)【特許請求の範囲】
【請求項１】
ストレージ・コントローラによりストレージ・デバイス間で１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイントインタイム・コピーの論理的関係を管理する方法であって、前記ストレージ・コントローラが、
（ａ）管理する各ボリュームの既存の論理的関係に関する情報を含む持続的なボリューム・メタデータにアクセスして、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームとの間の前記既存の論理的関係に関する、メモリ内の各ボリューム毎に設けられたインメモリテーブルを初期化するステップであって、該インメモリテーブルが、
（ｉ）少なくとも１つの要素であって、各該要素が、前記各ボリューム内のシーケンシャル・データ・ユニットの範囲を表す、該要素と、
（ｉｉ）少なくとも１つの関係項目であって、各該関係項目が、ターゲットまたはソースの別を示す関係役割を含む１つの論理的関係を表す、該関係項目と、
（ｉｉｉ）１つの前記要素と複数の前記関係項目との間または複数の前記要素と１つの前記関係項目との間に定義可能な、少なくとも１つの要素ポインタであって、各該要素ポインタが、１つの前記要素を１つの前記関係項目に、該要素によって表される範囲に含まれる前記データ・ユニットが該関係項目によって表される前記論理的関係の一部であるように関連付ける、該要素ポインタと、
（ｉｖ）前記関係項目ごとに１つの関係ポインタであって、各該関係ポインタが、１つの前記関係項目を、前記各ボリュームの前記ボリューム・メタデータ内の、該関係項目によって表される前記論理的関係に関する情報を提供する関係ブロックに関連付ける、該関係ポインタと
を含む、当該初期化するステップと、
（ｂ）少なくとも１つのターゲット・ボリュームと少なくとも１つのソース・ボリュームとの間の新しい論理的関係を記述する関係ブロックを、該ソース・ボリュームおよび該ターゲット・ボリュームのそれぞれの前記ボリューム・メタデータに追加するステップと、
（ｃ）前記新しい論理的関係を表す新しい関係項目を、前記新しい論理的関係を記述する関係ブロックへの関係ポインタとともに、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加するステップと、
（ｄ）既存の要素が表すデータ・ユニットの範囲の一部が前記新しい論理的関係に含まれるデータ・ユニットの範囲とオーバーラップする場合に、１つが前記新しい論理的関係に含まれるデータ・ユニットを含む範囲を表し、１つが前記新しい論理的関係に含まれないデータ・ユニットを含む範囲を表す、既存の１つの要素を置換する少なくとも２つの新しい要素を作成するステップと、
（ｅ）前記新しい論理的関係に含まれるデータ・ユニットを範囲に含む要素ごとに、該要素によって表される範囲に含まれる前記データ・ユニットが前記新しい論理的関係の一部であるように、該要素を前記新しい関係項目に関連付ける１つの新しい要素ポインタを、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加するステップと
を実行する方法。
【請求項２】
前記少なくとも２つの新しい要素の１つが、前記新しい論理的関係内のデータ・ユニットだけを含む範囲を表し、前記少なくとも２つの新しい要素の１つが、前記新しい論理的関係に含まれないデータ・ユニットだけを含む範囲を表し、追加される１つの前記新しい要素ポインタが、前記新しい論理的関係内のデータ・ユニットだけを範囲に含む前記新しい要素を前記新しい関係項目に関連付ける、請求項１に記載の方法。
【請求項３】
前記ストレージ・コントローラが、置換される前記要素が、前記新しい論理的関係が追加される以前の１つの既存の論理的関係を表す１つの関係項目に関連する場合に、前記新しい要素ごとに１つ、置換される前記要素に関連する前記関係項目に前記新しい要素を関連付ける要素ポインタを、前記メモリ内の前記インメモリテーブルに追加するステップをさらに実行する、請求項１に記載の方法。
【請求項４】
ストレージ・コントローラによりストレージ・デバイス間で１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイントインタイム・コピーの論理的関係を管理するシステムであって、
（ａ）管理する各ボリュームの既存の論理的関係に関する情報を含む持続的なボリューム・メタデータに従って初期化される、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームとの間の既存の論理的関係に関する各ボリューム毎に設けられたインメモリテーブルを含むメモリであって、該インメモリテーブルが、
（ｉ）少なくとも１つの要素であって、各該要素が、前記各ボリューム内のシーケンシャル・データ・ユニットの範囲を表す、該要素と、
（ｉｉ）少なくとも１つの関係項目であって、各該関係項目が、ターゲットまたはソースの別を示す関係役割を含む１つの論理的関係を表す、該関係項目と、
（ｉｉｉ）１つの前記要素と複数の前記関係項目との間または複数の前記要素と１つの前記関係項目との間に定義可能な、少なくとも１つの要素ポインタであって、各該要素ポインタが、１つの前記要素を１つの前記関係項目に、該要素によって表される範囲に含まれる前記データ・ユニットが該関係項目によって表される前記論理的関係の一部であるように関連付ける、該要素ポインタと、
（ｉｖ）前記関係項目ごとに１つの関係ポインタであって、各該関係ポインタが、１つの前記関係項目を、前記ボリューム・メタデータ内の、該関係項目によって表される前記論理的関係に関する情報を提供する関係ブロックに関連付ける、該関係ポインタと
を含む、当該メモリと、
（ｂ）少なくとも１つのターゲット・ボリュームと少なくとも１つのソース・ボリュームとの間の新しい論理的関係を、該ソース・ボリュームおよび該ターゲット・ボリュームのそれぞれの前記ボリューム・メタデータに追加する手段と、
（ｃ）前記新しい論理的関係を表す新しい関係項目を、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加する手段と、
（ｄ）既存の要素が表すデータ・ユニットの範囲の一部が前記新しい論理的関係に含まれるデータ・ユニットの範囲とオーバーラップする場合に、１つが前記新しい論理的関係内のデータ・ユニットを含む範囲を表し、１つが前記新しい論理的関係に含まれないデータ・ユニットを含む範囲を表す、１つの要素を置換する少なくとも２つの新しい要素を作成する手段と
（ｅ）前記新しい論理的関係に含まれるデータ・ユニットを範囲に含む要素ごとに、該要素によって表される範囲に含まれる前記データ・ユニットが前記新しい論理的関係の一部であるように、該要素を前記新しい関係項目に関連付ける１つの新しい要素ポインタを、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加する手段と
を含むシステム。
【請求項５】
ストレージ・コントローラによりストレージ・デバイス間でメモリ内で１つのターゲット・ボリュームと１つのソース・ボリュームとの間のポイントインタイム・コピーの論理的関係を管理するためのコンピュータ実行可能なプログラムであって、前記ストレージ・コントローラに対し、
（ａ）管理する各ボリュームの既存の論理的関係に関する情報を含む持続的なボリューム・メタデータにアクセスして、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームとの間の既存の論理的関係に関するメモリ内の各ボリューム毎に設けられたインメモリテーブルを初期化する手段であって、該インメモリテーブルが、
（ｉ）少なくとも１つの要素であって、各該要素が、前記ボリューム内のシーケンシャル・データ・ユニットの範囲を表す、該要素と、
（ｉｉ）少なくとも１つの関係項目であって、各該関係項目が、ターゲットまたはソースの別を示す関係役割を含む１つの関係を表す、該関係項目と、
（ｉｉｉ）１つの前記要素と複数の前記関係項目との間または複数の前記要素と１つの前記関係項目との間に定義可能な、少なくとも１つの要素ポインタであって、各該要素ポインタが、１つの前記要素を１つの前記関係項目に、該要素によって表される前記データ・ユニットが該関係項目によって表される前記論理的関係の一部であるように関連付ける、該要素ポインタと、
（ｉｖ）前記関係項目ごとに１つの関係ポインタであって、各該関係ポインタが、１つの前記関係項目を、前記ボリューム・メタデータ内の、該関係項目によって表される前記論理的関係に関する情報を提供する関係ブロックに関連付ける、該関係ポインタと
を含む、当該初期化する手段と、
（ｂ）少なくとも１つのターゲット・ボリュームと少なくとも１つのソース・ボリュームとの間の新しい論理的関係を、該ソース・ボリュームおよび該ターゲット・ボリュームのそれぞれの前記ボリューム・メタデータに追加する手段と、
（ｃ）前記新しい論理的関係を表す新しい関係項目を、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加する手段と、
（ｄ）既存の要素が表すデータ・ユニットの範囲の一部が前記新しい論理的関係に含まれるデータ・ユニットの範囲とオーバーラップする場合に、１つの要素を置換する少なくとも２つの新しい要素を作成する手段であって、前記新しい要素は、１つが前記新しい論理的関係内のデータ・ユニットを含む範囲を表し、１つが前記新しい論理的関係に含まれないデータ・ユニットを含む範囲を表す、該作成する手段と、
（ｅ）前記新しい論理的関係に含まれるデータ・ユニットを範囲に含む要素ごとに、該要素によって表される範囲に含まれる前記データ・ユニットが前記新しい論理的関係の一部であるように、該要素を前記新しい関係項目に関連付ける１つの新しい要素ポインタを、前記新しい論理的関係の前記ソース・ボリュームおよびターゲット・ボリュームのそれぞれについて、前記メモリ内の前記インメモリテーブルに追加する手段と
を実現する、プログラム。
【請求項６】
前記少なくとも２つの新しい要素の１つが、前記新しい論理的関係内のデータ・ユニットだけを含む範囲を表し、前記少なくとも２つの新しい要素の１つが、前記新しい論理的関係に含まれないデータ・ユニットだけを含む範囲を表し、前記追加される１つの新しい要素ポインタが、前記新しい論理的関係内のデータ・ユニットだけを範囲に含む前記新しい要素を前記新しい関係項目に関連付ける、請求項５に記載のプログラム。
【請求項７】
前記ストレージ・コントローラに対し、さらに、
置換される前記要素が、前記新しい論理的関係が追加される以前の１つの既存の論理的関係を表す１つの関係項目に関連する場合に、前記新しい要素ごとに１つ、置換される前記要素に関連する前記関係項目に前記新しい要素を関連付ける要素ポインタを、前記メモリ内の前記インメモリテーブルに追加する手段を実現する、請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのターゲット・ボリュームと１つのソース・ボリュームの間の関係を管理する方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
コンピューティング・システムに、しばしば、データを処理し、アプリケーション・プログラムを実行する１つまたは複数のホスト・コンピュータ（「ホスト」）、データを保管する直接アクセス記憶装置（「ＤＡＳＤ」）、およびホストとＤＡＳＤの間のデータの転送を制御するストレージ・コントローラが含まれる。ストレージ・コントローラは、制御ユニットまたはストレージ・ディレクタとも称するが、直接アクセス記憶装置（ＤＡＳＤ）とも称する、ループ・アーキテクチャで接続された多数のハード・ディスク・ドライブからなるストレージ・スペースへのアクセスを管理する。ホストは、ストレージ・コントローラを介してストレージ・スペースに入出力要求を通信することができる。
【０００３】
多くのシステムで、ＤＡＳＤなどのストレージ・デバイス上のデータを、同一のまたは別のストレージ・デバイスにコピーすることができ、その結果、データ・ボリュームへのアクセスを、２つの異なるデバイスから提供できるようになる。ポイントインタイム・コピー（point-in-time copy）には、ソース・ボリュームからターゲット・ボリュームへすべてのデータを物理的にコピーし、その結果、ターゲット・ボリュームが、ある時点（ポイントインタイム）のデータのコピーを有するようにすることが含まれる。ポイントインタイム・コピーは、論理的にデータのコピーを作り、必要な時にのみデータをコピーし、結果的に物理的なコピーを遅延することによっても行うことができる。この論理的なコピー動作は、ターゲット・ボリュームとソース・ボリュームがアクセス不能になる時間を最小限にするために実行される。
【０００４】
そのような論理コピー動作の１つを、FlashCopy（登録商標）と称する（FlashCopyは、InternationalBusiness Machines,Corp.または「ＩＢＭ」の登録商標である）。FlashCopy（登録商標）には、異なるデバイス上のソース・ボリュームとターゲット・ボリュームの間の論理ポイントインタイム関係を確立することが含まれる。FlashCopy機能によって、FlashCopy関係のトラックが、ターゲット・ディスク上のその位置にハードン（harden）されるまで、トラックがソース・ディスクに存在することが保証される。関係テーブルを使用して、サブシステム内のすべての既存のFlashCopy関係に関する情報が維持される。FlashCopy関係の確立フェーズ中に、１つの項目が、確立されるFlashCopyに参加するソースおよびターゲットについて、ソースおよびターゲットの関係テーブルに記録される。追加される項目のそれぞれによって、FlashCopy関係に関する必要なすべての情報が維持される。ソース・エクステントからのすべてのFlashCopyトラックがターゲット・エクステントにコピーされた時、または撤回コマンドが受け取られる時に、関係に関する両方の項目が、関係テーブルから除去される。
【０００５】
ターゲット関係テーブルに、さらに、FlashCopy関係に含まれるどのトラックが、まだコピーされておらず、したがって保護されるトラックであるかを識別するビットマップが含まれる。ターゲット・デバイス内の各トラックが、ビットマップ内の１ビットによって表される。ターゲット・ビットは、対応するトラックが、FlashCopy関係のターゲット・トラックとして確立される時にセットされる。ターゲット・ビットは、対応するトラックがソース位置からコピーされ、ソース・デバイスまたはターゲット・デバイスの書込またはバックグラウンド・コピー・タスクに起因してターゲット・デバイスにデステージング（destage）される時にリセットされる。
【０００６】
従来技術では、FlashCopy（登録商標）動作中の論理ポイントインタイム関係の確立の一部として、FlashCopyに含まれるソース・キャッシュのすべてのトラックを、物理ソース・ボリューム、たとえばソースＤＡＳＤにデステージングしなければならず、FlashCopy（登録商標）に含まれるターゲット・キャッシュのすべてのトラックを、破棄しなければならない。FlashCopy（登録商標）動作のさらなる詳細は、同時係属であり本願と同一の譲受人に譲渡される１９９９年７月２日出願の米国特許出願第０９／３４７３４４号明細書、米国特許第６６１１９０１号明細書「Method,System, and Program for Maintaining Electronic Data as of a Point-in-Time」に記載されている。
【０００７】
論理的関係が確立されたならば、ホストは、ソース・ボリュームおよびターゲット・ボリュームのデータへの即時アクセスを有することができ、データを、バックグラウンド動作の一部としてコピーすることができる。FlashCopy関係のターゲットであり、キャッシュ内にないトラックに対する読取によって、ステージ・インターセプトがトリガされ、これによって、要求されたターゲット・トラックに対応するソース・トラックが、まだコピーされていない時に、ターゲット・キャッシュからのトラックへのアクセスが提供される前に、そのソース・トラックが、ターゲット・キャッシュにステージングされる。これによって、ターゲットが、FlashCopy（登録商標）動作のポイントインタイムに存在したソースからのコピーを有することが保証される。さらに、まだコピーされていないソース・デバイス上のトラックへの書込によって、デステージ・インターセプトがトリガされ、これによって、ソース・デバイスのトラックが、ターゲット・デバイスにコピーされる。
【特許文献１】米国特許出願第０９／３４７３４４号、米国特許第６６１１９０１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、１つのターゲット・ボリュームと１つのソース・ボリュームの間の関係を管理する方法、システム、およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
（ｉ）各要素がボリューム内のシーケンシャル・データ・ユニットの範囲を表す少なくとも１つの要素と、（ｉｉ）各関係項目が１つの関係を表す少なくとも１つの関係項目と、（ｉｉｉ）１つの要素を１つの関係項目に関連付ける少なくとも１つの要素ポインタであって、要素によって表されるデータ・ユニットが、ポインタによってその要素に関連付けられる関係項目によって表される関係の一部である、要素ポインタとを含む、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームとの間の既存の関係に関する情報が、メモリ内で維持される。少なくとも１つのターゲット・ボリュームと少なくとも１つのソース・ボリュームの間の新しい関係が、追加される。さらに、新しい関係を表すメモリ内の新しい関係項目が、追加され、新しい関係に含まれるデータ・ユニットを含む各要素を新しい関係項目に関連付けるために、各要素について１つの新しい要素ポインタが追加され、要素によって表されるデータ・ユニットは、新しい関係の一部である。
【００１０】
もう１つの実施形態では、新しい関係項目および追加される少なくとも１つの要素ポインタが、新しい関係のソース・ボリュームおよびターゲット・ボリュームのそれぞれについて追加される。
【００１１】
さらに、少なくとも２つの新しい要素が作成されて、新しい関係に含まれるデータを表し、新しい関係に含まれないデータを表す１つの要素が置換される。
【００１２】
さらに、１つのターゲット・ボリュームと１つのソース・ボリュームの間の関係を管理する方法、システム、およびプログラムを提供する。（ｉ）各要素がボリューム内のシーケンシャル・データ・ユニットの範囲を表す少なくとも１つの要素と、（ｉｉ）各関係項目が１つの関係を表す少なくとも１つの関係項目と、（ｉｉｉ）１つの要素を１つの関係項目に関連付ける少なくとも１つの要素ポインタであって、要素によって表されるデータ・ユニットが、ポインタによってその要素に関連付けられる関係項目によって表される関係の一部である、要素ポインタとを含む、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームの間の関係に関する情報が、メモリに含まれる。撤回要求が、対象関係に関して受け取られ、撤回要求に応答して、１つの要素を対象関係を表す関係項目に関連付ける少なくとも１つのポインタが、メモリ内で削除される。
【００１３】
さらに、１つのターゲット・ボリュームと１つのソース・ボリュームの間の関係を管理する方法、システム、およびプログラムを提供する。（ｉ）各要素がボリューム内のシーケンシャル・データ・ユニットの範囲を表す少なくとも１つの要素と、（ｉｉ）各関係項目が１つの関係を表す少なくとも１つの関係項目と、（ｉｉｉ）１つの要素を１つの関係項目に関連付ける少なくとも１つの要素ポインタであって、要素によって表されるデータ・ユニットが、ポインタによってその要素に関連付けられる関係項目によって表される関係の一部である、要素ポインタとを含む、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームの間の関係に関する情報が、メモリに含まれる。リカバリ処理が開始されて、それぞれソース関係およびターゲット関係に関する、ソース要素、ターゲット要素、ソース関係項目、ターゲット関係項目、ソース要素を関連付けるソース・ポインタ、およびターゲット要素を関連付けるターゲット・ポインタを含む、少なくとも１つのソース・ボリュームと少なくとも１つのターゲット・ボリュームの間の関係に関するメモリ内の情報が再構築される。
【００１４】
説明される実施形態によって、ソース・ボリュームとターゲット・ボリュームの間の関係に関する情報および、そのような関係情報を使用可能にするためのメモリ内のそのような情報の関連が提供される。
【００１５】
これから図面を参照するが、図では、同一の符号によって、図面全体を通じて対応する部分を表す。
【発明を実施するための最良の形態】
【００１６】
以下の説明では、添付図面を参照するが、添付図面は、本明細書の一部を形成し、本発明の複数の実施形態を示すものである。本発明の範囲から逸脱せずに、他の実施形態を使用することができ、構造および動作の変更を行えることを理解されたい。
【００１７】
図１に、本発明の諸態様が実施されるコンピューティング・アーキテクチャを示す。ストレージ・コントローラ２が、ネットワーク６を介してボリューム１０ａ、１０ｂ、…、１０ｎおよび１２ａ、１２ｂ、…、１２ｍ（たとえば、論理ユニット番号、論理ドライブなど）を有するように構成されたストレージ・デバイス８ａおよび８ｂに向けられた入出力要求をホスト・システム４ａ、４ｂ、…、４ｎから受け取る。ここで、ｍおよびｎは、異なる整数値または同一の値とすることができる。ストレージ・コントローラ２には、さらに、ソース・ストレージ８ａのトラックの入出力データを保管するソース・キャッシュ１４ａおよびターゲット・ストレージ８ｂのトラックの入出力データを保管するターゲット・キャッシュ１４ｂが含まれる。ソース・キャッシュ１４ａおよびターゲット・キャッシュ１４ｂに、別々のメモリ・デバイスまたは同一のメモリ・デバイスの異なる部分を含めることができる。キャッシュ１４ａ、１４ｂは、ホスト４ａ、４ｂ、…、４ｎとストレージ８ａ、８ｂの間で転送される読取データおよび書込データをバッファリングするのに使用される。さらに、キャッシュ１４ａおよび１４ｂを、それぞれ、ポイントインタイム・コピー関係でソース・トラックまたはターゲット・トラックを保持する、ソース・キャッシュおよびターゲット・キャッシュと称するが、キャッシュ１４ａおよび１４ｂに、異なるポイントインタイム・コピー関係でのソース・トラックおよびターゲット・トラックを同時に保管することができる。
【００１８】
ストレージ・コントローラ２には、システム・メモリ１６も含まれ、システム・メモリ１６は、揮発性デバイスまたは不揮発性デバイスあるいはその両方で実施される。ストレージ管理ソフトウェア１８が、システム・メモリ１６内で実行されて、FlashCopy（登録商標）動作中に発生するタイプの論理コピーなど、異なるストレージ・デバイス８ａ、８ｂの間でのデータのコピーが管理される。ストレージ管理ソフトウェア１８によって、本明細書に記載のコピー動作に加えて、動作を実行することができる。システム・メモリ１６は、キャッシュ１４ａ、１４ｂと別々のメモリ・デバイス内とするか、その一部とすることができる。ストレージ管理ソフトウェア１８によって、システム・メモリ１６内の１つのインメモリ関係テーブル２０が維持されて、ストレージ・コントローラ２によって管理される各ボリュームのポイントインタイム・コピー関係に関する情報が提供され、ボリュームごとに１つのインメモリ関係テーブル２０を設けることができる。いくつかの実施形態で、トラックが、コピー関係の対象になる。しかし、トラックのブロック、サブブロックなどの他のデータ・ユニットを、コピー関係の対象にすることができ、ここで、関係の各ソース・データ・ユニットごとに、対応するターゲット・データ・ユニットがある。
【００１９】
ストレージ・コントローラ２に、さらに、プロセッサ・コンプレックス（図示せず）が含まれ、ＩＢＭエンタープライズ・ストレージ・サーバ（ＥＳＳ）（登録商標）、３９９０ストレージ・コントローラなどの、当技術分野で既知のあらゆるストレージ・コントローラまたはサーバを含めることができる（エンタープライズ・ストレージ・サーバは、ＩＢＭ社の登録商標である）。ホスト４ａ、４ｂ、…、４ｎに、サーバ、メインフレーム、ワークステーション、パーソナル・コンピュータ、ハンド・ヘルド・コンピュータ、ラップトップ機、電話機、ネットワーク・アプライアンスなど、当技術分野で既知のあらゆるコンピューティング・デバイスを含めることができる。ストレージ・コントローラ２およびホスト・システム４ａ、４ｂ、…、４ｎは、ネットワーク６を介して通信し、ネットワーク６には、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、広域ネットワーク（ＷＡＮ）などが含まれる。ストレージ・システム８ａ、８ｂに、ＪＢＯＤ（Just a Bunch of Disks）、新磁気ディスク制御機構（ＲＡＩＤ）アレイ、バーチャライゼーション・デバイスなどのストレージ・デバイスのアレイを含めることができる。
【００２０】
ポイントインタイム・コピーを、ソース・ボリュームのトラックの範囲とターゲット・ボリュームのトラックの範囲の間で確立することができ、この関係に含まれるソース・ボリュームのトラック数とターゲット・ボリュームのトラック数は、同一または異なる数とすることができる。ある実施形態で、ソース・エクステントおよびターゲット・エクステントを、そのめいめいのボリュームの先頭からの異なる相対オフセットにあるものとすることができる。これによって、たとえば、不連続のデータ・セットの組をトラックの連続した組に合体する、データ・セットの再編成が可能になる。図２に、ソース・ボリューム５４の途中に配置された不連続なソース・エクステント５０および５２が、どのようにして、ターゲット・ボリューム６０の先頭にあるターゲット・ボリューム５６および５８に再配置され、ソース５４とターゲット６０の異なる順序が現れるかを示す。
【００２１】
説明される実施形態では、さらに、１トラックあたり複数のポイントインタイム・コピー関係が可能であり、この場合に、トラックの所与のエクステント（範囲）を、同時に複数のポイントインタイム・コピー関係の一部にすることができる。トラックは、ソース・エクステントまたはターゲット・エクステントのいずれかに属することができる。さらに、トラックは、複数のソース関係に属することができるが、いくつかの実施形態で、単一のターゲット関係だけが許容される。図３に、１トラックあたり複数の関係を示すが、この場合に、ソース・ボリューム７０は、エクステント（トラックの範囲）７２、７４、７６、および７８を有し、これらのエクステントは、ターゲット・ボリューム８０の異なるターゲット・エクステント８２、８４、８６、および８８にマッピングされる。ソース・エクステント７２および７４は、ターゲット・エクステント８２に関係し、ソース・エクステント７４および７６は、ターゲット・エクステント８４に関係し、この２つの関係によって、トラックのオーバーラップするエクステント７４が共用される。さらに、ソース・エクステント７８は、複数のターゲット・エクステント８６および８８に関係し、ソース・エクステント７４も、複数のターゲット・エクステント８２および８４に関係する。複数のターゲットが、この例では同一のボリューム内に示されているが、ターゲット・トラックを、異なるボリュームに置くことができる。
【００２２】
ポイントインタイム・コピー関係が、ソース・ボリュームのトラックのエクステントとターゲット・ボリュームのエクステントの間で確立される時に、その関係に関する持続的な情報が、ソース・ボリューム１０ａ、１０ｂ、…、１０ｎおよびターゲット・ボリューム１２ａ、１２ｂ、…、１２ｍのボリューム・メタデータに保管される。図４に関して、ソース・ボリュームおよびターゲット・ボリュームのそれぞれのボリューム・メタデータ１００に、関係メタデータ１０２、関係ビットマップ・メタデータ１０４、およびボリューム生成番号などのメタデータ・コンポーネントを含めることができる。関係メタデータ１０２には、関係ブロック１０６ａ、１０６ｂ、…、１０６ｎが含まれ、この関係ブロックのそれぞれに、ボリューム内のトラックのエクステントに関する１つのポイントインタイム・コピーに関する情報が含まれる。図５に、下記を含む、図４の関係ブロック１０６ａ、１０６ｂ、…、１０６ｎなどの関係ブロックの詳細を示す。
関係ＩＤ１１０：関係の一意識別子を提供する。この数は、ソースとターゲットの両方によって、関係を識別するのに使用される。
関係役割１１２：ボリューム内のトラックのエクステントが、関係のソースまたはターゲットのどちらであるかを示す。
エクステント１１４：ポイントインタイム・コピー関係に含まれるトラックのエクステント（範囲）を含むボリューム内のトラックを識別する。
ボリューム対１１６：関係のもう一方のボリュームを識別する。
【００２３】
関係ブロック１０６ａ、１０６ｂ、…、１０６ｎを、リンク・リストに配置することができる。関係メタデータ１０２の、使用されていないブロックを、関係ブロックとして関係情報を保管するのに使用するのに使用可能な空きブロックの空きリストに保管することができる。関係ブロック１０６ａ、１０６ｂ、…、１０６ｎを、固定長およびインデックス付きとし、インデックスを介してこれらにアクセスするようにすることができる。
【００２４】
ビットマップ・メタデータ１０４には、ボリューム内のトラックごとに１ビットを備える１つまたは複数のビットマップ・データ構造が含まれる。ビットが「オン」である場合に、これは、対応するターゲット・トラックに、まだソースからのポイントインタイム・データが含まれず、そのデータをコピーしなければならないことを示す。エクステントの範囲に対応するビット値を、関係ビットマップ・メタデータ１０４のオフセットに直接にマッピングすることができる。
【００２５】
図６に、インメモリ関係テーブル２０のデータ構造実施形態を示す。ストレージ・コントローラ２によって管理されるボリュームごとに１つのインメモリ関係テーブル２０を設けることができる。インメモリ関係テーブル２０には、複数の要素（element）１３０ａ、１３０ｂ、１３０ｃ、および１３０ｄが含まれ、これらの要素のそれぞれが、対応するボリューム内の連続するトラックのエクステントを表す。図７に、図６の要素１３０ａ、１３０ｂ、１３０ｃ、および１３０ｄなどの要素１３０のそれぞれの内容を示すが、この要素には、ボリューム内のトラックの連続する範囲の始めと終りを表す開始トラック１３２および終了トラック１３４ならびに１つまたは複数の関係項目（entry）１４０ａ、１４０ｂ、および１４０ｃへのポインタのアレイ１３６が含まれる。関係項目は、リンク・リストに置いても置かなくてもよい。さらに、複数の要素が、同一の関係項目１４０ａ、１４０ｂ、および１４０ｃをポイントすることができる。図６に、要素１３０ａ、１３０ｂ、および１３０ｄが、関係項目１４０ａ、１４０ｂ、および１４０ｃをポイントするポインタ１３６ａ、１３６ｂ、１３６ｃ、および１３６ｄによって表されるように、ポイントインタイム・コピー関係に含まれるトラックの範囲を表し、要素１３０ａ、１３０ｂ、および１３０ｄによって表されるトラックを含む関係に関する情報が提供されることが示されている。要素１３０ｃは、関係項目１４０ａ、１４０ｂ、および１４０ｃへのポインタがないことによって示されるように、ポイントインタイム関係に含まれないトラックの範囲を表す。要素、たとえば要素１３０ａに、異なる関係項目１４０ａ、１４０ｂをポイントするポインタ１３６ａ、１３６ｂのアレイが含まれる場合に、そのトラックの範囲は、２つの関係に関連し、その範囲が、複数のターゲットへのソースであることが示される。
【００２６】
図８に、図６の関係項目１４０ａ、１４０ｂ、および１４０ｃなどの各関係項目１４０に含めることができる内容を示すが、これには、関係役割１１２または関係ＩＤ１１０（図５）あるいはその両方などのボリューム・メタデータ１００内の対応する関係ブロック１０６ａ、１０６ｂ、…、１０６ｎからの持続的な関係情報１５０と、関係項目１４０によって表される関係に関する持続的な情報を含む関係ブロック１０６へのポインタ１５２が含まれる。関係項目１４０内のポインタ１５２は、図６でポインタ１５２ａ、１５２ｂ、および１５２ｃとして示されている。ポインタ１５２に、さらに、関係メタデータ１６２内の対応する関係ブロックへのインデックスを含めることができる。図６には、さらに、ボリューム・メタデータ１６０の関係メタデータ１６２部分内の、ポインタ１５２ａ、１５２ｂ、および１５２ｃによってアドレッシングされる関係ブロック１６４ａ、１６４ｂ、および１６４ｃが示されている。インメモリ関係テーブル（ＩＭＲＴ）２０には、さらに、インメモリ関係テーブル２０に関係するボリューム１０ａ、１０ｂ、…、１０ｎ、１２ａ、１２ｂ、…、１２ｍを識別するボリューム情報１６６が含まれる。
【００２７】
本明細書に記載のデータ構造を用いると、関係情報の多くが、ボリューム１０ａ、１０ｂ、…、１０ｎ、１２ａ、１２ｂ、…、１２ｍ（図１）を用いて保管されるボリューム・メタデータ１００内の持続性ストレージで維持される。さらにある種の実施形態で、関係の各メンバすなわちソースおよびターゲットによって、めいめいのボリュームに関する関係メタデータが別々に維持される。この形で、関係に含まれるボリュームに障害が発生する場合に、ストレージ・コントローラ２は、まだ、障害を発生したボリュームとのポイントインタイム・コピー関係にあるソースまたはターゲットが実際に関係の一部であるかどうかを判定でき、したがって、デステージング動作およびステージング動作中に特別な扱いを必要とするかどうかを判定することができる。
【００２８】
図９に、ストレージ・コントローラ２によって管理されるボリューム１０ａ、１０ｂ、…、１０ｎ、１２ａ、１２ｂ、…、１２ｍ内のボリューム・メタデータ１００からインメモリ関係テーブル（ＩＭＲＴ）２０を初期化する、ストレージ管理ソフトウェア１８で実施される論理を示す。初期化の始めに（ブロック２００で）、ストレージ管理ソフトウェア１８によって、ストレージ・コントローラ２からアクセス可能なボリュームのそれぞれについて、ブロック２０２から２２６のループが実行される。（ブロック２０８で）ボリュームｉのアクセスされるボリューム・メタデータ１００に関係ブロック１０６がない場合に、制御は、次のボリュームに関するブロック２２６に進んで、ＩＭＲＴ２０は、ボリュームｉについて構成されない。ボリュームに関してＩＭＲＴ２０がないことの揮発性の指示を、ボリュームｉのボリューム構造内で行うことができる。代替案では、関係ブロックがない場合に、そのボリュームに関する関係がないことを示すＮＵＬＬ要素をポイントするＩＭＲＴ２０を構成することができる。そうではなく（ブロック２０８で）、ボリュームｉの関係ブロック１０６がある場合には、関係ブロックをポイントしないＩＭＲＴ２０が、メモリ１６内で構成される（ブロック２１２で）。その後、ボリュームｉの関係ブロックｊごとに、ブロック２１４から２２４のループを実行する。最初のブロックから最後のブロックまでの関係ブロックｊのそれぞれについて、関係ブロックｊ内のトラックのエクステント１１４（図５）内で識別される開始トラックおよび終了トラックを含む開始フィールド１３２および終了フィールド１３４（図７）を示す、ＩＭＲＴ２０内の１つまたは複数の要素１３０が作られる（ブロック２１６で）。構成された要素を、ボリュームｉの連続する前のトラックを表す要素にリンクする（ブロック２１８で）。ストレージ管理ソフトウェア１８によって、さらに、関係情報ＩＤおよび役割１５０（図８）ならびにボリューム・メタデータ内のアクセスされる関係ブロックｊへのポインタ１５２など、持続的な関係ブロックｊからの関係情報を含むＩＭＲＴ２０内の関係項目１４０が構成される（ブロック２２０で）。さらに、ある関係から前の関係へのリンクを追加することができる。ポインタに、関係ブロック１０６ａ、１０６ｂ、…、１０６ｎ（図４）のアレイへのインデックスを含めることができる。関係項目は、アレイに編成され、アレイ内の各関係項目１４０ａ、１４０ｂ、および１４０ｃのインデックスは、対応する関係ブロック１６４ａ、１６４ｂ、および１６４ｃのインデックスによって決定される。制御は、ブロック２１４に戻って（ブロック２２２で）、関係メタデータ１０２内の次の関係ブロック１０６を処理する。ブロック２０８からまたはボリュームｉの関係ブロックのすべてを処理した後に、制御は、ブロック２０２に戻って（ブロック２２６で）、ストレージ・コントローラ２によって管理されるデバイス内のさらなるボリュームの情報を処理する。
【００２９】
図９の論理の結果として、関係を含むＩＭＲＴ２０が、ストレージ・コントローラ２によって管理されるボリュームごとにメモリ１６に追加されるが、このＩＭＲＴ２０は、ユーザがポイントインタイム・コピー関係に含まれるトラックに関する入出力を実行する時に、ストレージ・コントローラ２がポイントインタイム・コピー関係のデータ保全性を維持できるようにするのに使用される。
【００３０】
図１０および１１に、新しい確立されたポイントインタイム・コピー関係のソース・ボリュームおよびターゲット・ボリュームのＩＭＲＴを更新するためにストレージ管理ソフトウェア１８によって実行される動作を示す。図１０に関して、追加された関係を反映するためのＩＭＲＴの更新の開始時に（ブロック２５０で）、関係に含まれる最初のソース・ボリュームおよびターゲット・ボリュームについて、ブロック２５２から２８２のループが実行される。ブロック２５４で、それぞれが新しい関係に関する情報を供給する関係ブロックを追加し、新しい関係のすべてのトラックがソースからターゲットにコピーされていないことを示すために関係ビットマップ１０４を更新することによって、ボリューム・メタデータ１００（最初のソースおよびターゲットに関する）を更新する。関係に関する情報を持続性メタデータに追加した後に、関係項目１４０が、ある関係情報１５０（図８）を含めて、ボリューム（ソースまたはターゲット）についてＩＭＲＴ２０内で生成され（ブロック２５６で）、ソース・ボリュームまたはターゲット・ボリューム内の持続性の関係ブロック１６４ａ、１６４ｂ、および１６４ｃへのポインタ１５２が、関係項目１４０について生成されて、メモリ内の関係の表現（関係項目１４０）が、ストレージ内の対応する持続性の関係ブロック１０６に関連付けられる。ストレージ管理ソフトウェア１８によって、新しい関係に含まれるトラックのエクステントを含む１つまたは複数の要素１３０が突き止められる（ブロック２５８で）。
【００３１】
（ブロック２６２で）要素ｉによって表されるすべてのトラックが、新しい関係のトラックのエクステントに含まれる場合に、ポインタ１３６が追加され（ブロック２６４で）、要素ｉが、新しい関係を表す関係項目１４０に関連付けられる。そうではなく（ブロック２６２で）、要素ｉによって表されるトラックの一部だけが、新しい関係のトラックのエクステントにオーバーラップする場合には、図１１に関して、要素ｉに、新しい関係のトラックのエクステントの最初のトラックが含まれるかどうかを判定する（ブロック２６６で）。要素ｉに（ブロック２６６のｎｏ分岐から）新しい関係のトラックのエクステントの最後のトラックが含まれる場合に、要素ｉを（ブロック２６８で）、２つの新しい要素に置換し、第１の新しい要素には、関係エクステントにオーバーラップし、新しい関係のトラックのエクステントの最後のトラックで終わるトラックが含まれ、第２の新しい要素には、関係エクステントにオーバーラップしないトラックが含まれる。要素ｉに（ブロック２６６のｙｅｓ分岐から）エクステントの最初のトラックが含まれる場合に、要素ｉを（ブロック２７０で）２つの新しい要素に置換し、第１の新しい要素には、関係エクステントにオーバーラップしないトラックが含まれ、第２の新しい要素ｊには、関係エクステントにオーバーラップし、関係エクステントの最初のトラックから始まるトラックが含まれる。（ブロック２７２で）要素ｊに、要素ｊの最後のトラックでない、エクステントの最後のトラックが含まれる場合に、要素ｊについてブロック２６８の動作を実行して（ブロック２７４で）、エクステントにオーバーラップしない要素ｊの終りのトラックを抽出するためにさらなる分割を実行し、そのようなオーバーラップしないトラックをもう１つの要素に置く。２つまたは３つの新しい要素が、要素のリンク・リストの、置換された要素が配置されていた場所に追加される。
【００３２】
要素ｉを２つまたは３つの新しい要素に置換した後に、置換された要素ｉによってポイントされるすべての関係項目への１つまたは複数のポインタ１３６を、（ブロック２７６で）２つまたは３つの新しい要素１３０に追加する。作成された関係項目１４０をポイントする新しい関係からのトラックを含むポインタ１３６を新しい要素に追加して（ブロック２７８で）、関係エクステントのトラックを表す新しい要素を、その関係を表す関係項目に関連付ける。その後、制御は、新しい関係のトラックに含まれる次に突き止められる要素について、図１０のブロック２６０に戻る（ブロック２８０で）。新しい関係のソース・ボリュームに関係するすべての要素を処理した後に、制御は、追加されたポイントインタイム・コピー関係を反映するターゲット・ボリュームに関するＩＭＲＴ２０の更新のためにブロック２５２に戻る（ブロック２８２で）。
【００３３】
図１２に、関係全体から撤回するか関係全体を終了するためにストレージ管理ソフトウェア１８によって実行される動作を示す。図１２の動作は、ポイントインタイム・コピー関係のすべてのトラックが、ソース・ボリュームからターゲット・ボリュームにコピーされた後に実行することができる。代替案では、管理者が、関係全体を終了すると決定することによって、関係全体を撤回することができる。関係全体を撤回する動作を開始する（ブロック３００で）際に、ストレージ管理ソフトウェア１８によって、ソース・ボリュームおよびターゲット・ボリュームの関係メタデータ１０２から、削除される関係のソース・トラックおよびターゲット・トラックのエクステントが判定される（ブロック３０２で）。撤回要求によって、関係エクステントを供給することができ、これを使用して、ＩＭＲＴ２０または関係メタデータ１０２あるいはその両方に照会して、ソース・ボリュームおよびターゲット・ボリュームのボリューム・メタデータを突き止めることができ、このボリューム・メタデータに、関係の指定されたエクステント１１４または関係ＩＤ１１０（図５）が含まれる。撤回される関係の最初のターゲット・ボリュームについて、ブロック３０４から３２６のループを実行し、次に、ソース・ボリュームについて実行する。ブロック３０６で、撤回される関係を表すソースおよびターゲットのボリューム・メタデータ１００の関係ブロック１０６を削除する。削除される関係を表す（まずターゲット、次にソース）ボリュームのＩＭＲＴ２０の関係項目１４０を除去する（ブロック３０８で）。その後、ストレージ管理ソフトウェア１８によって、削除された関係項目１４０をアドレッシングする１つまたは複数の要素１３０が突き止められ（ブロック３１０で）、除去された関係項目１４０へのポインタ１３６が、突き止められた要素から削除される（ブロック３１２で）。
【００３４】
撤回される関係に関する情報を削除した後に、ストレージ管理ソフトウェア１８によって、ブロック３１４での処理が開始されて、正確に同一の関係項目をポイントする要素および関係項目をポイントしない要素がマージされる。ブロック３１４で、ストレージ管理ソフトウェア１８によって、除去されたエクステントにオーバーラップする、ＩＭＲＴ２０内の最初の要素１３０ａ（図６）がアクセスされ、（ブロック３１６で）アクセスされた要素と同一の関係項目をポイントするか、関係項目を全くポイントしない０個以上の後続の連続する要素が判定される。（ブロック３１８で）１つまたは複数の後続の要素１３０が突き止められる場合に、アクセスされた要素およびすべての判定された後続要素が、アクセスされた要素および突き止められた要素の同一の０個以上のポインタ１３６を有するアクセスされた要素および突き止められた要素のすべてのシーケンシャル・トラックを表す単一の要素に置換される。（ブロック３１８で）後続の要素１３０が突き止められない場合に、最後にアクセスされた要素に続く（ブロック３１８のｎｏ分岐からマージが行われない場合）または最後にマージされた要素に続く（ブロック３２０からマージが発生する場合）複数の要素があるかどうかの判定が行われる（ブロック３２２で）。マージできる要素がまだある場合に、ストレージ管理ソフトウェア１８によって、（ブロック３２４で）最後にアクセスされた要素（マージが行われない場合）または突き止められたマージされた要素（マージが行われた場合）に続く要素にアクセスする。次の要素にアクセスした（ブロック３２４で）後に、制御は、ブロック３１６に戻って、次にアクセスされた要素と後続の要素のマージが試みられる。（ブロック３２２で）マージに使用可能な複数の要素がない場合には、制御は（ブロック３２６で）ブロック３０４に戻って、撤回された関係がソースＩＭＲＴ２０から除去される。
【００３５】
図１３および１４に、連続するトラックのサブセットをポイントインタイム・コピー関係のエクステントから除去するためにストレージ管理ソフトウェア１８で実行される動作を示す。この動作は、関係エクステント内のトラックの一部がソースおよびターゲットからコピーされた場合に、ソースおよびターゲットのコピーされたトラックを将来のポイントインタイム関係で使用可能にするために実行することができる。さらに、管理者からの要求に応答してなど、他の情況でトラックをエクステントから除去することができる。図１３に関して、関係エクステント内のトラックのサブセットを撤回する部分撤回の動作の開始時に（ブロック３５０で）、ソース・ボリュームおよびターゲット・ボリュームの関係メタデータ１０２から、削除される関係のソース・トラックおよびターゲット・トラックのエクステントを判定する（ブロック３５２で）。撤回要求によって、関係ＩＤまたは関係エクステントを供給することができ、この関係ＩＤまたは関係エクステントを使用して、関係メタデータ１０２に照会して、部分的撤回の対象になる関係に関するメタデータを含むソース・ボリュームおよびターゲット・ボリュームを突き止めることができる。第１に関係のターゲット・ボリューム、第２にソース・ボリュームについてブロック３５４から図１４の３７８までのループを実行して、関係の対象のトラックのエクステントからトラックのサブセットを撤回する。ブロック３５６で、ストレージ管理ソフトウェア１８によって、部分的撤回の対象になるトラックを含む１つまたは複数の要素１３０を突き止める。次に、撤回されるトラックを含む突き止められた要素ｉのそれぞれについて、ブロック３５８から図１４の３７２までの内側ループを実行する。（ブロック３６０で）要素ｉによって表されるすべてのトラックが、関係からの撤回の対象である場合に、撤回の対象である関係項目１４０への要素ｉ内のポインタ１３６を除去する（ブロック３６２で）。
【００３６】
（ブロック３６０で）要素ｉによって表されるトラックの一部が、撤回の対象でない場合に、関係から撤回されるトラックの範囲の最後のトラックが要素ｉに含まれるかどうかを判定する（図１４のブロック３６４で）。要素ｉに、撤回される範囲の最後のトラックが含まれる場合に（ブロック３６４のｎｏ分岐から）、要素ｉを２つの新しい要素に置換し（ブロック３６６で）、第１の新しい要素には、関係エクステントにオーバーラップし、撤回されるトラックの範囲の最後のトラックで終わるトラックが含まれ、第２の新しい要素は、撤回されるトラックにオーバーラップしないトラックを表す。（ブロック３６４のｙｅｓ分岐から）撤回される範囲の最初のトラックが要素ｉに含まれる場合に、要素ｉを（ブロック３６８で）２つの新しい要素に置換し、第１の新しい要素ｉに、撤回されるトラックにオーバーラップしないトラックが含まれ、第２の新しい要素ｊに、撤回されるトラックにオーバーラップし、撤回されるトラックの範囲の最初のトラックから始まるトラックが含まれる。（ブロック３７０で）、要素ｊに、要素ｊの最後のトラックではない、エクステントの最後のトラックが含まれる場合に、要素ｊについてブロック３６６での動作を実行して（ブロック３７２で）、要素ｊの末尾のエクステントにオーバーラップしないトラックを抽出するためにさらに分割し、そのようなオーバーラップしないトラックをもう１つの要素に置く。２つまたは３つの新しい要素を、要素のリンク・リストの、置換された要素が配置されていた場所に追加する。ブロック３６６または３７０から、制御はブロック３７４に進み、置換された要素ｉによってポイントされるすべての関係項目をポイントする１つまたは複数のポインタを両方の新しい要素に追加し、（ブロック３７６で）撤回の対象であるトラックを含む、新しい要素からの関係項目１４０へのポインタを削除する。次に、制御は、（ブロック３７８で）ブロック３５８に進んで、撤回の対象であるトラックのすべてを、撤回の対象である関係から除去する。撤回の対象である関係からトラックを除去した後に、ストレージ管理ソフトウェア１８によって、図１２のステップ３１４から３２４を実行して（ブロック３８０で）、同一の関係項目をポイントするか関係項目をポイントしない連続する要素１３０をマージする。ターゲット・ボリュームの関係からトラックを除去した後に、制御は（ブロック３８２で）ブロック３５４に戻って、ソース・ボリュームから関係のトラックを除去する。
【００３７】
図１３および１４の動作の結果は、関係エクステントのトラックのサブセットが、ソースおよびターゲットのＩＭＲＴ２０ならびにボリューム・メタデータの関係から除去されると同時に、部分的撤回の対象でないトラックに関して関係が残されることである。撤回の後に、エクステントから撤回されたトラックは、さらに確立される関係での使用に使用することができる。さらに、そのような撤回されるトラックのデステージングおよびステージングを、追加のインターセプト検査を実行する必要なしに行うことができる。
【００３８】
代替実施形態では、図１３から１４の論理を、関係の一部を撤回する時に使用しなくすることができる。その代わりに、古い（先在する）関係を置換するために図１０および１１の動作を実行することによって１つまたは複数の関係を追加することができ、新しい関係のソース・エクステントまたはターゲット・エクステントあるいはその両方が、古い関係のエクステントのサブセットになる。その後、図１２の論理を使用して、古い（先在する）関係を構成するエクステントを除去する。
【００３９】
図１５に、本発明の実施形態による、デステージング動作およびステージング動作を実行するためにメモリ１６内のＩＭＲＴ２０を使用するのにストレージ管理ソフトウェア１８によって実行される動作を示す。キャッシュ１４ａ、１４ｂ内のトラックのデステージングまたはステージングの要求を受け取る時に（ブロック４００で）、デステージングまたはステージングされるトラックを含むボリュームのＩＭＲＴ２０を判定し（ブロック４０２で）デステージングまたはステージングされるトラックを含む、判定されたＩＭＲＴ２０内の要素１３０を突き止める（ブロック４０４で）。突き止められた要素に関係項目１４０へのポインタ１３６（図７）が含まれる場合（ブロック４０６で）に、ストレージ管理ソフトウェア１８によって、（ブロック４０８で）ステージ・インターセプト・ルーチンまたはデステージ・インターセプト・ルーチンが開始されて、ステージングまたはデステージングを行う時のポイントインタイム・コピー関係のデータ保全性が保証される。ステージ・インターセプトまたはデステージ・インターセプトによって、ターゲット・ステージングまたはソース・デステージングを実行する前に、ソース・トラックが、ポイントインタイム・コピー関係の対応するターゲット・トラックにコピーされるか、ターゲット・キャッシュ１４ｂにステージングされることが保証される。関係項目１４０が処理されて、関係メタデータ１０２およびビットマップ１０４が突き止められて、トラックがソースからターゲットにコピーされたかどうかが判定され、ステージ・インターセプトまたはデステージ・インターセプトを処理する方法が決定される。そうではなく（ブロック４０６で）、突き止められた要素１３０に、関係項目１４０へのポインタ１３６が含まれない場合には、トラックのデステージングまたはステージングが実行される。
【００４０】
図１６に、エラー・リカバリ処理を開始するためにストレージ管理ソフトウェア１８によって実行される動作を示すが、このエラー・リカバリ処理は、電力消失後のコールド・スタート、ウォーム・スタート初期化、または電力消失なしのリブート、あるいは他の検出されたエラー状態に応答して実行することができる。エラー・リカバリ処理の開始時に（ブロック４５０で）、ストレージ管理ソフトウェア１８によって、図９の動作が実行されて、ストレージ・コントローラ２によって管理されるすべてのボリュームのメモリ内のＩＭＲＴ２０が再構築される。ある種の実施形態で、メモリが失われたか、ＩＭＲＴが一貫性のない状態または破壊されている場合に限って、ＩＭＲＴが再構築される。その後、ストレージ管理ソフトウェア１８によって、（ブロック４５４で）関係のソースを表すソース関係項目のそれぞれについて、同一の関係ＩＤを有するＩＭＲＴ内の対応するターゲット関係項目があるかどうかを検査することによって、構築されたＩＭＲＴ２０を検討するための検証動作が実行される。上で述べたように、関係項目１４０に、関係項目１４０がそれのために定義されたボリュームがソースまたはターゲットのどちらに関するかおよび関係ＩＤなどの関係情報１５０（図８）を含めることができる。ソース関係項目１４０が突き止められた時に、ストレージ管理ソフトウェア１８によって、同一のまたは異なるＩＭＲＴ２０内の他の関係項目１４０ならびに不揮発性の関係メタデータ１６２内の情報を照会して、１つのＩＭＲＴに、同一の関係ＩＤを有するターゲットを示す関係項目１４０が含まれるかどうかを判定することができる。（ブロック４５６で）ターゲット関係項目が、ＩＭＲＴ２０内で構築されていない場合に、制御が図１２のブロック３０４から３２６に進んで（ブロック４５８で）、ソース関係メタデータ１０２内の関係ブロック１０６ａ、１０６ｂ、…、１０６ｎを除去し、ソースＩＭＲＴ２０から関係項目１４０を除去する。
【００４１】
（ブロック４５６で）各突き止められたソース関係項目に対応するターゲット関係項目がある場合に、ストレージ管理ソフトウェア１８によって、（ブロック４６０で）関係のソースを表すターゲット関係項目のそれぞれについて、同一の関係ＩＤを有するＩＭＲＴ内に対応するソース関係項目があるかどうかを検査し、関係の各ソースについてその逆を検査することによって、構築されたソースＩＭＲＴ２０を検討するための検証動作を実行する。ターゲットに関する関係項目１４０を突き止めた時に、ストレージ管理ソフトウェア１８によって、同一のまたは異なるＩＭＲＴ２０内の他の関係項目１４０を照会して、その関係情報１５０から関係項目１４０が同一の関係ＩＤを有するソースに関するものであることが示される関係項目１４０が１つのＩＭＲＴに含まれるかどうかを判定することができる。（ブロック４６２で）ＩＭＲＴ２０内でソース関係項目が作成されていない場合に、制御は、図１２のブロック３０４から３２６の実行に進んで（ブロック４６４で）、ターゲット関係メタデータ１０２内の関係ブロック１０６ａ、１０６ｂ、…、１０６ｎを除去し、ターゲットＩＭＲＴ２０から関係項目１４０を除去する。
【００４２】
追加の実施形態の詳細
上で説明した、ポイントインタイム・コピー関係を確立し、管理する技法は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せを作る標準的なプログラミング技法またはエンジニアリング技法あるいはその両方を使用して、方法、装置、または製造品として実施することができる。用語「製造品」は、本明細書では、ハードウェア・ロジック（たとえば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定応用分野向け集積回路（ＡＳＩＣ）など）、または、磁気記憶媒体（たとえば、ハード・ディスク・ドライブ、フロッピ・ディスク、テープなど）、光学媒体（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性のメモリ・デバイス（たとえば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジックなど）などのコンピュータ記憶媒体で実施されるコードまたは論理を指す。コンピュータ可読媒体内のコードは、プロセッサ・コンプレックスによってアクセスされ、実行される。好ましい実施形態を実施するコードは、さらに、伝送媒体を介してまたはファイルサーバからネットワークを介してアクセス可能とすることができる。その場合に、コードを実施する製造品に、ネットワーク伝送回線、無線伝送媒体、空間を介する信号伝搬、無線波、赤外線信号などの伝送媒体を含めることができる。したがって、「製造品（article of manufacture）」に、コードが実施される媒体を含めることができる。さらに、「製造品」に、コードが実施され、処理され、実行される、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントの組合せ、さらにはソフトウェアとしてのプログラムそのものを含めることができる。もちろん、本発明の範囲から逸脱せずに、この構成に対して多数の修正を行うことができ、製造品に、当技術分野で既知のすべての情報担持媒体を含めることができることを、当業者は諒解するであろう。
【００４３】
論理ポイントインタイム・コピー関係を確立する、上で説明した実施形態は、高い可用性が最も重要なクリティカル・データ環境で使用されるシステムを伴う使用について説明された。しかし、本明細書に記載のポイントインタイム・コピー動作を、高い可用性が絶対に必要ではない非クリティカル・データについて使用されるストレージ・システムに適用できることを、当業者は諒解するであろう。
【００４４】
ソース・キャッシュおよびターゲット・キャッシュは、同一のメモリ・デバイス内または別々のメモリ・デバイス内で実施することができる。
【００４５】
ポイントインタイム・コピー関係を管理する、上で説明した技法は、ソース・トラックおよびターゲット・トラックが同一のまたは異なるトラック番号を有する時に適用することができる。
【００４６】
上で説明した実施形態では、関係が、異なるボリュームのトラックの間のポイントインタイム・コピー関係に関するものであった。代替実施形態では、関係に、当技術分野で既知の、追加のタイプのコピー関係またはデータ関係を含めることができる。
【００４７】
図９から１６に示された論理では、ある順序で発生するあるイベントが示された。代替実施形態では、ある動作を、異なる順序で実行する、修正する、あるいは除去することができる。さらに、ステップを、上で説明した論理に追加することができ、なおかつ説明した実施形態に準拠することができる。さらに、本明細書に記載の動作を、シーケンシャルに行うことができ、あるいは、動作を、並列に処理することができる。さらに、動作を、単一の処理ユニットによって、または分散処理ユニットによって実行することができる。
【００４８】
変数ｎおよびｍは、説明される実施形態のいくつかの整数変数を示すのに使用され、変数ｎおよびｍによって、異なる場合に使用される時に同一のまたは異なる整数を示すことができる。
【００４９】
図１７に、図１に示されたホストおよびストレージ・コントローラなどのネットワーク・コンポーネントのコンピュータ・アーキテクチャ５００の１実施形態を示す。アーキテクチャ５００に、プロセッサ５０２（たとえば、マイクロプロセッサ）、メモリ５０４（たとえば、揮発性メモリ・デバイス）、ストレージ５０６（たとえば、磁気ディスク・ドライブ、光学ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ）を含めることができる。ストレージ５０６に、内部記憶装置あるいは付加されるかネットワーク・アクセス可能なストレージを含めることができる。ストレージ５０６内のプログラムが、当技術分野で既知の形で、メモリ５０４にロードされ、プロセッサ５０２によって実行される。このアーキテクチャには、さらに、ネットワークとの通信を可能にするネットワーク・カード５０８が含まれる。入力装置５１０が、プロセッサ５０２にユーザ入力を供給するのに使用され、入力装置５１０には、キーボード、マウス、ペンスタイラス、マイクロホン、接触感知型ディスプレイ・スクリーン、あるいは当技術分野で既知の他のアクティベーション方法または入力方法を含めることができる。出力装置５１２によって、プロセッサ５０２から送られる情報をレンダリングすることができ、あるいは、出力装置５１２は、ディスプレイ・モニタ、プリンタ、ストレージなどの他のコンポーネントである。
【００５０】
本発明のさまざまな実施形態の前述の説明は、例示および説明のために提示されたものである。前述の説明は、網羅的であることまたは開示される正確な形態に本発明を制限することを意図されたものではない。上の教示に鑑みて、多数の修正形態および変形形態が可能である。本発明の範囲は、この詳細な説明によって制限されるのではなく、請求項によって制限されることが意図されている。上の明細書、例、およびデータによって、本発明の構成の製造および使用の完全な説明が提供される。本発明の多数の実施形態を、本発明の趣旨および範囲から逸脱せずに作ることができるので、本発明は、請求項に存在する。
【００５１】
説明された実施形態によって、ある関係のソース・トラックおよびターゲット・トラックが異なるトラック番号を有することを可能にするポイントインタイム・コピー関係を管理する技法が提供される。ある関係のソース・トラックおよびターゲット・トラックが異なるトラック番号に存在することを可能にすることによって、ポイントインタイム・コピー関係を確立する時の追加の柔軟性がもたらされ、ポイントインタイム・コピー関係のより多くの組合せを確立できるようになる。
【図面の簡単な説明】
【００５２】
【図１】本発明の諸態様が実施されるコンピューティング環境を示す図である。
【図２】本発明の実施形態による、ソース・ボリューム内のトラックとターゲット・ボリューム内のトラックの間の関係を示す図である。
【図３】本発明の実施形態による、ソース・ボリューム内のトラックとターゲット・ボリューム内のトラックの間の関係を示す図である。
【図４】本発明の実施形態による、コピー関係でのソース・トラックとターゲット・トラックの関係を表すために維持される情報の実施形態を示す図である。
【図５】本発明の実施形態による、コピー関係でのソース・トラックとターゲット・トラックの関係を表すために維持される情報の実施形態を示す図である。
【図６】本発明の実施形態による、コピー関係でのソース・トラックとターゲット・トラックの関係を表すために維持される情報の実施形態を示す図である。
【図７】本発明の実施形態による、コピー関係でのソース・トラックとターゲット・トラックの関係を表すために維持される情報の実施形態を示す図である。
【図８】本発明の実施形態による、コピー関係でのソース・トラックとターゲット・トラックの関係を表すために維持される情報の実施形態を示す図である。
【図９】本発明の実施形態による、メモリ内の関係情報を初期化する動作を示す図である。
【図１０】本発明の実施形態による、新しい関係を反映するためにメモリ内の関係情報を更新する動作を示す図である。
【図１１】本発明の実施形態による、新しい関係を反映するためにメモリ内の関係情報を更新する動作を示す図である。
【図１２】本発明の実施形態による、関係からのトラックの撤回を反映するためにメモリ内の関係情報を更新する動作を示す図である。
【図１３】本発明の実施形態による、関係からのトラックの撤回を反映するためにメモリ内の関係情報を更新する動作を示す図である。
【図１４】本発明の実施形態による、関係からのトラックの撤回を反映するためにメモリ内の関係情報を更新する動作を示す図である。
【図１５】本発明の実施形態による、キャッシュからのトラックをデステージングおよびステージングする時に関係を考慮する動作を示す図である。
【図１６】本発明の実施形態による、リカバリ処理を実行する動作を示す図である。
【図１７】ホストおよびストレージ・コントローラなどのネットワーク環境内のコンピューティング・コンポーネントおよび他のコンピューティング・デバイスのアーキテクチャを示す図である。
【符号の説明】
【００５３】
２０  インメモリ関係テーブル
１３０ａ  要素
１３０ｂ  要素
１３０ｃ  要素
１３０ｄ  要素
１３６ａ  ポインタ
１３６ｂ  ポインタ
１３６ｃ  ポインタ
１３６ｄ  ポインタ
１４０ａ  関係項目
１４０ｂ  関係項目
１４０ｃ  関係項目
１５２ａ  ポインタ
１５２ｂ  ポインタ
１５２ｃ  ポインタ
１６０  ボリューム・メタデータ
１６２  関係メタデータ
１６４ａ  関係ブロック
１６４ｂ  関係ブロック
１６４ｃ  関係ブロック
１６６  ボリューム情報
【図１】
0004644446.tif 000002
【図２】
0004644446.tif 000003
【図３】
0004644446.tif 000004
【図４】
0004644446.tif 000005
【図５】
0004644446.tif 000006
【図６】
0004644446.tif 000007
【図７】
0004644446.tif 000008
【図８】
0004644446.tif 000009
【図９】
0004644446.tif 000010
【図１０】
0004644446.tif 000011
【図１１】
0004644446.tif 000012
【図１２】
0004644446.tif 000013
【図１３】
0004644446.tif 000014
【図１４】
0004644446.tif 000015
【図１５】
0004644446.tif 000016
【図１６】
0004644446.tif 000017
【図１７】
0004644446.tif 000018