(54)【発明の名称】マルチターゲット・アーキテクチャにおけるソースと空間効率の良いターゲットとの間の関係の削除のための方法、コンピュータ・プログラム、および装置
(58)【調査した分野】(Int.Cl.,DB名)
マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するための方法であって、前記マルチターゲット・アーキテクチャは一つのソースと当該ソースにマッピングされた複数のSEターゲットとを含み、コンピュータが、
前記ソースと一つのSEターゲットとの間のポイント・イン・タイム・コピー関係をマッピングする第1の関係を前記マルチターゲット・アーキテクチャから見つけるステップと、
前記第1の関係に関連付けられた空間効率の良い(SE)ターゲットを前記マルチターゲット・アーキテクチャから見つけるステップであって、前記SEターゲットの論理トラック内のデータはリポジトリ内に物理的に記憶されている、前記見つけるステップと、
前記ソースとポイント・イン・タイム・コピー関係にあり且つ前記SEターゲットと異なるポイント・イン・タイムでの兄弟SEターゲットを前記マルチターゲット・アーキテクチャから見つけるステップであって、前記兄弟SEターゲットが前記データのコピーにより前記SEターゲットから当該データを継承し、前記兄弟SEターゲットは、前記SEターゲットの最も近い年長の兄弟(COS)SEターゲットであり、前記最も近い年長の兄弟SEターゲットは、前記SEターゲットの直前にマッピングされたターゲットである、前記見つけるステップと、
前記SEターゲットの論理トラック内のデータを前記リポジトリの物理トラック内のデータにマッピングするマッピング構造を、前記リポジトリの前記物理トラック内の前記データを前記兄弟SEターゲットの前記論理トラックにマッピングするように修正するステップであって、前記リポジトリは前記複数のSEターゲットのデータを物理的に記憶する、前記修正するステップと、
前記第1の関係を前記マルチターゲット・アーキテクチャから削除するステップであって、当該削除によって前記ソースと前記SEターゲットとの間のポイント・イン・タイム・コピー関係が終了する、前記削除するステップと
を実行することを含む、前記方法。
マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するための装置であって、前記マルチターゲット・アーキテクチャは一つのソースと当該ソースにマッピングされた複数のSEターゲットとを含み、前記装置が、
前記ソースと一つのSEターゲットとの間のポイント・イン・タイム・コピー関係をマッピングする第1の関係を前記マルチターゲット・アーキテクチャから見つけるための第1の構成要素と、
前記第1の関係に関連付けられた空間効率の良い(SE)ターゲットを前記マルチターゲット・アーキテクチャから見つけるための第2の構成要素であって、前記SEターゲットの論理トラック内のデータはリポジトリ内に物理的に記憶されている、前記第2の構成要素と、
前記ソースとポイント・イン・タイム・コピー関係にあり且つ前記SEターゲットと異なるポイント・イン・タイムでの兄弟SEターゲットを前記マルチターゲット・アーキテクチャから見つけるための第3の構成要素であって、前記兄弟SEターゲットが前記データのコピーにより前記SEターゲットから当該データを継承し、前記兄弟SEターゲットは、前記SEターゲットの最も近い年長の兄弟(COS)SEターゲットであり、前記最も近い年長の兄弟SEターゲットは、前記SEターゲットの直前にマッピングされたターゲットである、前記第3の構成要素と、
前記SEターゲットの論理トラック内のデータを前記リポジトリの物理トラック内のデータにマッピングするマッピング構造を、前記リポジトリの前記物理トラック内の前記データを前記兄弟SEターゲットの前記論理トラックにマッピングするように修正するための第4の構成要素であって、前記リポジトリは前記複数のSEターゲットのデータを物理的に記憶する、前記第4の構成要素と、
前記第1の関係を前記マルチターゲット・アーキテクチャから削除するための第5の構成要素であって、当該削除によって前記ソースと前記SEターゲットとの間のポイント・イン・タイム・コピー関係が終了する、前記第5の構成要素と
を備えている、前記装置。
マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するための方法であって、前記マルチターゲット・アーキテクチャは一つのソースと当該ソースにマッピングされた複数のSEターゲットとを含み、コンピュータが、
前記ソースと一つのSEターゲットとの間のポイント・イン・タイム・コピー関係をマッピングする第1の関係を前記マルチターゲット・アーキテクチャからから見つけるステップと、
前記第1の関係に関連付けられた空間効率の良い(SE)ターゲットを前記マルチターゲット・アーキテクチャから見つけるステップであって、前記SEターゲットの論理トラック内のデータはリポジトリ内に物理的に記憶されている、前記見つけるステップと、
前記ソースとポイント・イン・タイム・コピー関係にあり且つ前記SEターゲットと異なるポイント・イン・タイムでの兄弟SEターゲットを前記マルチターゲット・アーキテクチャから見つけるステップであって、前記兄弟SEターゲットが前記データのコピーにより前記SEターゲットから当該データを継承し、前記兄弟SEターゲットは、前記SEターゲットの最も近い年長の兄弟(COS)SEターゲットであり、前記最も近い年長の兄弟SEターゲットは、前記SEターゲットの直前にマッピングされたターゲットである、前記見つけるステップと、
前記SEターゲットから前記兄弟SEターゲットに前記データをコピーするステップと、
前記第1の関係を前記マルチターゲット・アーキテクチャから削除するステップあって、当該削除によって前記ソースと前記SEターゲットとの間のポイント・イン・タイム・コピー関係が終了する、前記削除するステップと
を実行することを含む、前記方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、現況技術に応答して、具体的には、現在使用可能な方法では未だ完全に解決できていない当分野における問題および必要性に応答して、開発されてきた。したがって本発明の目的は、マルチターゲット・アーキテクチャにおけるソースと空間効率の良い(SE:space-efficient)ターゲットとの間の関係を削除するための方法、装置、コンピュータ・プログラム製品、およびコンピュータ・プログラムを提供することである。本発明の特徴および利点は、以下の説明および添付の特許請求の範囲からより完全に明らかとなるか、または以下に記載されるような本発明の実践によって習得可能である。
【課題を解決するための手段】
【0006】
上記内容に一致する、マルチターゲット・アーキテクチャにおいてソースとターゲットの間の関係を削除するための方法が開示される。マルチターゲット・アーキテクチャは、ソースと、ソースにマッピングされた複数の空間効率の良い(SE)ターゲットとを含む。一実施形態では、こうした方法は、マルチターゲット・アーキテクチャからの削除のために、関係を初期に識別することを含む。次に、関係に関連付けられた空間効率の良い(SE)ターゲットが識別される。マッピング構造は、SEターゲットの論理トラック内のデータをリポジトリの物理トラックにマッピングする。次に方法は、SEターゲットからデータを継承する兄弟(sibling)SEターゲットを識別する。SEターゲットおよび兄弟SEターゲットが識別されると、方法は、リポジトリの物理トラック内のデータが兄弟SEターゲットの論理トラックにマッピングされるようにマッピング構造を修正する。次に、ソースとSEターゲットとの間の関係は削除される。
【0007】
第1の態様から見ると、本発明は、マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するための方法を提供し、マルチターゲット・アーキテクチャはソースとソースにマッピングされた複数のSEターゲットとを備え、方法は、マルチターゲット・アーキテクチャからの削除のために第1の関係を識別すること、第1の関係に関連付けられた空間効率の良い(SE)ターゲットを識別することであって、マッピング構造はSEターゲットの論理トラック内のデータをリポジトリの物理トラックにマッピングする、識別すること、SEターゲットからデータを継承する兄弟SEターゲットを識別すること、リポジトリの物理トラック内のデータを兄弟SEターゲットの論理トラックにマッピングするようにマッピング構造を修正すること、および、第1の関係を削除することを含む。
【0008】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するためのコンピュータ・プログラム製品を提供し、マルチターゲット・アーキテクチャはソースとソースにマッピングされた複数のSEターゲットとを備え、コンピュータ・プログラム製品は、処理回路によって読み取り可能であり、本発明のステップを実行するための方法を実行するために処理回路によって実行するための命令を記憶する、コンピュータ読み取り可能ストレージ・メディアを備える。
【0009】
他の態様から見ると、本発明は、プログラムがコンピュータ上で実行された場合、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ読み取り可能メディア上に記憶され、デジタル・コンピュータの内部メモリにロード可能な、コンピュータ・プログラムを提供する。
【0010】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャにおいてソースと空間効率の良い(SE)ターゲットとの間の関係を削除するための装置を提供し、マルチターゲット・アーキテクチャはソースとソースにマッピングされた複数のSEターゲットとを備え、装置は、マルチターゲット・アーキテクチャからの削除のために第1の関係を識別するための識別構成要素と、第1の関係に関連付けられた空間効率の良い(SE)ターゲットを識別するためにさらに動作可能な識別構成要素であって、マッピング構造はSEターゲットの論理トラック内のデータをリポジトリの物理トラックにマッピングする、識別構成要素と、SEターゲットからデータを継承する兄弟SEターゲットを識別するためにさらに動作可能な識別構成要素と、リポジトリの物理トラック内のデータを兄弟SEターゲットの論理トラックにマッピングするようにマッピング構造を修正するための修正構成要素と、第1の関係を削除するための削除構成要素とを備える。
【0011】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャ内のターゲット・ボリューム(ターゲットx)への書き込みを実行するための方法を提供し、マルチターゲット・アーキテクチャはソース・ボリュームとソース・ボリュームにマッピングされた複数のターゲット・ボリュームとを備え、方法は、ターゲットxが最も近い年長の兄弟(COS)を有するかどうかを判別することであって、COSはターゲットxの直前に確立されたターゲット・ボリュームである、判別すること、ターゲットxおよびCOSのそれぞれに関するターゲット・ビット・マップ(TBM)が設定されているかどうかを判別すること、COSおよびターゲットxの両方に関するTBMが設定されている場合、高位のソース(HS)ボリュームからCOSにデータをコピーすること、COSに関するTBMが設定されており、ターゲットxに関するTBMが設定されていない場合、ターゲットxからCOSにデータをコピーすること、および、ターゲットxへの書き込みを実行することを含む。
【0012】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャ内のターゲット・ボリューム(ターゲットx)上で読み取りを実行するための方法を提供し、マルチターゲット・アーキテクチャはソース・ボリュームとソース・ボリュームにマッピングされた複数のターゲット・ボリュームとを備え、方法は、ターゲットxに関連付けられたターゲット・ビット・マップ(TBM)を読み取ること、TBMが設定されているかどうかを判別すること、TBMが設定されている場合、高位のソース(HS)ボリュームからデータを読み取ること、ここでHSボリュームからデータを読み取ることは、ターゲットxに関連付けられたソース・ボリュームを見つけること、ソース・ボリューム上での生成数(GN)を検査することによって、ターゲットxに関して次
に若い(next younger)
(以下において、「次の年少」という)の兄弟を見つけること、および、次の年少の兄弟に関連付けられたTBMが設定されていない場合、次の年少の兄弟からデータを読み取ることを含む。
【0013】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャ内のソース・ボリュームへの書き込みを実行するための方法を提供し、マルチターゲット・アーキテクチャはソース・ボリュームとソース・ボリュームにマッピングされた複数のターゲット・ボリュームとを備え、方法は、ソース・ボリュームのトラック内のデータをソース・ボリュームにマッピングされたターゲット・ボリューム(ターゲットx)にコピーすること、ソース・ボリュームにマッピングされた少なくとも1つの兄弟ターゲット・ボリューム(兄弟)がターゲットxからデータを継承できるようにすること、および、ソース・ボリュームのトラックへの書き込みを実行することを含む。
【0014】
他の態様から見ると、本発明は、マルチターゲット・アーキテクチャにおいてソースとターゲットとの間の関係を削除するための方法を提供し、マルチターゲット・アーキテクチャはソースとソースにマッピングされた複数のターゲットとを備え、方法は、マルチターゲット・アーキテクチャからの削除のために第1の関係を識別すること、第1の関係に関連付けられたターゲットを識別すること、ターゲットからデータを継承する兄弟ターゲットを識別すること、ターゲットから兄弟ターゲットにデータをコピーすること、および第1の関係を削除することを含む。
【0015】
次に、本発明を、以下の図面に示されるような好ましい実施形態を参照しながら単なる例として説明する。
【図面の簡単な説明】
【0016】
【
図1】従来技術に従い、本発明の好ましい実施形態が内部で実装可能な、様々なタイプのストレージ・システムを備えるネットワーク・アーキテクチャの一例を示す高水準ブロック図である。
【
図2】従来技術に従い、本発明の好ましい実施形態が内部で実装可能な、方法の、ストレージ・システムの一例を示す高水準ブロック図である。
【
図3】本発明の好ましい実施形態に従った、複数のターゲット・ボリュームにマッピングされたソース・ボリュームを備えるマルチターゲット・アーキテクチャの一例を示す高水準ブロック図である。
【
図4】本発明の好ましい実施形態に従った、ターゲット・ボリュームからトラックを読み取るための方法の一実施形態を示す高水準ブロック図である。
【
図5】本発明の好ましい実施形態に従った、ソース・ボリュームへの書き込みに応答してデータ・トラックをコピーするための方法の一実施形態を示す流れ図である。
【
図6】本発明の好ましい実施形態に従った、ターゲット・ボリュームへの書き込みに応答してデータ・トラックをコピーするための方法の一実施形態を示す流れ図である。
【
図7】本発明の好ましい実施形態に従った、ボリュームへの読み取りに応答して高位のソース(HS)ボリュームを見つけるための方法の一実施形態を示す流れ図である。
【
図8】本発明の好ましい実施形態に従った、ボリュームへの書き込みに応答して高位のソース(HS)ボリュームを見つけるための方法の一実施形態を示す流れ図である。
【
図9】本発明の好ましい実施形態に従った、生成数の使用を示すマルチターゲット・アーキテクチャの一例を示す高水準図である。
【
図10】本発明の好ましい実施形態に従った、様々な書き込みが実行された後の、
図9に示されたボリュームに関するデータおよびTBMボリュームを示す表である。
【
図11】本発明の好ましい実施形態に従った、様々な書き込みが実行された後の、
図9に示されたボリュームに関するデータおよびTBMボリュームを示す表である。
【
図12】本発明の好ましい実施形態に従った、ソース・ボリュームとターゲット・ボリュームとの間の関係の削除を示す高水準ブロック図である。
【
図13】本発明の好ましい実施形態に従った、ソース・ボリュームと空間効率の良い(SE)ターゲット・ボリュームとの間の関係の削除を示す高水準ブロック図である。
【
図14】本発明の好ましい実施形態に従った、メモリ内のソースとターゲットの関係エントリを示す高水準ブロック図である。
【
図15】本発明の好ましい実施形態に従った、マルチターゲット・アーキテクチャ内でのソースとSEターゲットとの間の関係を削除するための方法の一実施形態を示す流れ図である。
【
図16】本発明の好ましい実施形態に従った、削除された関係を処理するための方法の一実施形態を示す流れ図である。
【
図17】本発明の好ましい実施形態に従った、削除された関係を処理するための方法の他の実施形態を示す流れ図である。
【発明を実施するための形態】
【0017】
本明細書の図面に全体として説明および図示されるように、本発明の構成要素は多種多様な異なる構成内に配置および設計可能であることは容易に理解されよう。したがって、図面内に表されたような本発明の好ましい実施形態の以下のより詳細な説明は、請求されたように、本発明の範囲を限定することは意図されておらず、本発明に従った現在企図されている好ましい実施形態のある例の単なる代表である。説明された本実施形態は、全体を通じて同じ部分が同じ数字によって指定された図面を参照することにより、最も良く理解されるであろう。
【0018】
当業者であれば理解されるように、本発明は装置、システム、方法、またはコンピュータ・プログラム製品として具体化可能である。さらに本発明は、ハードウェア実施形態、ハードウェアを動作させるように構成されたソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書ではすべて全体として「モジュール」または「システム」と呼ばれることのあるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の、形を取ることができる。さらに本発明は、内部に記憶されたコンピュータ使用可能プログラム・コードを有する任意の有形な表現メディア内に具体化されたコンピュータ使用可能ストレージ・メディアの形を取ることができる。
【0019】
1つまたは複数のコンピュータ使用可能またはコンピュータ読み取り可能ストレージ・メディアの任意の組み合わせを利用して、コンピュータ・プログラム製品を記憶することができる。コンピュータ使用可能またはコンピュータ読み取り可能ストレージ・メディアは、たとえば電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイスとすることができるが、これらに限定されない。コンピュータ読み取り可能ストレージ・メディアのより具体的な例(非網羅的リスト)は、1本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CDROM)、光ストレージ・デバイス、または磁気ストレージ・デバイスを含むことができる。本書との関連において、コンピュータ使用可能またはコンピュータ読み取り可能ストレージ・メディアは、命令実行のシステム、装置、またはデバイスによって、またはこれらに関して使用するためのプログラムを含む、記憶する、または移送することが可能な、任意のメディアとすることができる。
【0020】
本発明の動作を実施するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。本発明を実装するためのコンピュータ・プログラム・コードは、アセンブリ言語などの低水準プログラミング言語でも作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または、完全にリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを通じてユーザのコンピュータに接続可能であるか、または(たとえばインターネット・サービス・プロバイダを使用し、インターネットを介して)外部コンピュータに接続することができる。Java(R)およびすべてのJavaベースの商標およびロゴは、Oracle社あるいはその関連会社またはその両方の商標または登録商標である。
【0021】
本発明は、本発明の実施形態に従った方法、装置、システム、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら、以下で説明することができる。流れ図あるいはブロック図またはその両方の各ブロック、および、流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令またはコードによって実装可能であることを理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実装するための手段を作成するように、汎用コンピュータ、特定用途向けコンピュータ、または機械を生成するための他のプログラマブル・データ処理装置のプロセッサに提供可能である。
【0022】
コンピュータまたは他のプログラマブル・データ処理装置に特定の様式で機能するように指示可能なコンピュータ・プログラム命令を、コンピュータ読み取り可能ストレージ・メディア内に記憶することが可能であるため、結果としてコンピュータ読み取り可能ストレージ・メディア内に記憶された命令が、流れ図あるいはブロック図またはその両方のブロック内に指定された機能/動作を実装する命令手段を含む製品を生成する。一連の動作ステップをコンピュータまたは他のプログラマブル装置上で実行させ、コンピュータ実装プロセスを生成するために、コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル・データ処理装置上にロードすることもできるため、結果として、コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実装するためのプロセスを提供する。
【0023】
図1を参照すると、ネットワーク・アーキテクチャ100の一例が示されている。ネットワーク・アーキテクチャ100は、本発明に従った時点コピー方法が実装可能な環境の一例を示すために提示される。ネットワーク・アーキテクチャ100は、制限ではなく単なる例として提示される。実際に、本明細書で開示される方法は、図示されたネットワーク・アーキテクチャ100に加えて、多種多様な異なるコンピュータ、サーバ、ストレージ・デバイス、およびネットワーク・アーキテクチャに適用可能である。
【0024】
図に示されるように、ネットワーク・アーキテクチャ100は、ネットワーク104によって相互接続された1つまたは複数のコンピュータ102、106を含む。ネットワーク104は、たとえばローカル・エリア・ネットワーク(LAN)104、ワイド・エリア・ネットワーク(WAN)104、インターネット104、イントラネット104などを含むことができる。ある実施形態では、コンピュータ102、106はクライアント・コンピュータ102およびサーバ・コンピュータ106(本明細書では「ホスト・システム」106とも呼ばれる)の両方を含むことができる。一般に、クライアント・コンピュータ102は通信セッションを開始するが、サーバ・コンピュータ106はクライアント・コンピュータ102からの要求を待機する。ある実施形態では、コンピュータ102あるいはサーバ106またはその両方は、1つまたは複数の内部または外部の直接接続ストレージ・システム112(たとえばハードディスク・ドライブ、ソリッドステート・ドライブ、テープ・ドライブなどのアレイ)に接続可能である。これらのコンピュータ102、106、および直接接続ストレージ・システム112は、ATA、SATA、SCSI、SAS、Fibre Channelなどのプロトコルを使用して通信可能である。ストレージ・システム112のうちの1つまたは複数は、本明細書で開示された時点コピー方法を利用することができる。
【0025】
ある実施形態では、ネットワーク・アーキテクチャ100は、サーバ106の後ろに、ストレージ・エリア・ネットワーク(SAN)108またはLAN108(たとえばネットワーク接続ストレージを使用する場合)などの、ストレージ・ネットワーク108を含むことができる。このネットワーク108は、ハードディスク・ドライブまたはソリッドステート・ドライブのアレイ110a、テープ・ライブラリ110b、個々のハードディスク・ドライブ110cまたはソリッドステート・ドライブ110c、テープ・ドライブ110d、CD−ROMライブラリなどの、1つまたは複数のストレージ・システム110に、サーバ106を接続することができる。ホスト・システム106は、ストレージ・システム110にアクセスするために、ホスト106上の1つまたは複数のポートからストレージ・システム110上の1つまたは複数のポートへの物理接続を介して通信することができる。接続は、スイッチ、ファイバ、直接接続などを介することができる。ある実施形態では、サーバ106およびストレージ・システム110は、ファイバ・チャネル(FC)などのネットワーキング標準を使用して通信することができる。ストレージ・システム110のうちの1つまたは複数は、本明細書で開示された時点コピー方法を利用することができる。
【0026】
図2を参照すると、ハードディスク・ドライブ204あるいはソリッドステート・ドライブ204またはその両方のアレイを含むストレージ・システム110bの一実施形態が示されている。ある実施形態では、本明細書で開示された時点コピー方法がこうしたストレージ・システム110b内で実装可能であるため、ストレージ・システム110bの内部構成要素が示されているが、方法は他のストレージ・システム110にも適用可能である。図に示されるように、ストレージ・システム110bは、ストレージ・コントローラ200、1つまたは複数のスイッチ202、および、ハードディスク・ドライブ204またはソリッドステート・ドライブ204などの(フラッシュ・メモリ・ベース・ドライブ204などの)1つまたは複数のストレージ・デバイス204を含む。ストレージ・コントローラ200は、1つまたは複数のホスト106(たとえば、オープン・システムあるいはメインフレーム・サーバまたはその両方106)の1つまたは複数のストレージ・デバイス204内のデータへのアクセスを実行可能にすることができる。
【0027】
選択された実施形態では、ストレージ・コントローラ200は1つまたは複数のサーバ206を含む。ストレージ・コントローラ200は、ストレージ・コントローラ200をそれぞれホスト・デバイス106およびストレージ・デバイス204に接続するために、ホスト・アダプタ208およびデバイス・アダプタ210を含むこともできる。複数のサーバ206a、206bは、接続されたホスト106が常にデータを利用できることを保証するために冗長性を提供することができる。したがって、一方のサーバ206aに障害が発生すると、I/Oがホスト106とストレージ・デバイス204との間で続行できることを保証するために、他方のサーバ206bが障害サーバ206aのI/Oロードを受信する。このプロセスは「フェイルオーバ」と呼ばれることがある。
【0028】
図2に示されたアーキテクチャと同様のアーキテクチャを有するストレージ・システム110bの一例は、IBM DS8000(R)エンタープライズ・ストレージ・システムである。IBM DS8000(R)は、連続動作をサポートするように設計されたディスク・ストレージを提供する高性能、高容量ストレージ・コントローラである。それにもかかわらず、本明細書で開示された方法はIBM DS8000(R)エンタープライズ・ストレージ・システム110bに限定されず、システム110に関連付けられた製造業者、製品名、あるいは構成要素または構成要素名に関係なく、任意の同等または類似のストレージ・システム110内で実装可能である。さらに、本発明の1つまたは複数の好ましい実施形態から恩恵を受けることが可能な任意のストレージ・システムは、本発明の範囲内に入るものとみなされる。したがって、IBM DS8000は単なる例として提示され、限定的であることは意図されていない。IBM、FlashCopy、DS8000は、多くの管轄区域内で世界規模に登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【0029】
選択された実施形態では、各サーバ206は1つまたは複数のプロセッサ212およびメモリ214を含むことができる。メモリ214は揮発性メモリ(たとえばRAM)ならびに不揮発性メモリ(たとえばROM、EPROM、EEPROM、ハード・ディスク、フラッシュ・メモリなど)を含むことができる。ある実施形態では、揮発性および不揮発性メモリは、プロセッサ212上で実行し、ストレージ・デバイス204内のデータにアクセスするために使用される、ソフトウェア・モジュールを記憶することができる。サーバ206は、これらのソフトウェア・モジュールの少なくとも1つのインスタンスをホストすることができる。これらのソフトウェア・モジュールは、ストレージ・デバイス204内の論理ボリュームへのすべての読み取りおよび書き込み要求を管理することができる。
【0030】
選択された実施形態では、メモリ214はキャッシュ218を含む。ホスト106(たとえばオープン・システムまたはメインフレーム・サーバ106)は読み取り動作を実行し、読み取りを実行するサーバ206は、これが再度必要になったイベントで、ストレージ・デバイス204からデータをフェッチし、これをそのキャッシュ218内に保存することができる。データがホスト106によって再度要求された場合、サーバ206は、ストレージ・デバイス204からそれをフェッチする代わりに、キャッシュ218からデータをフェッチし、時間およびリソースの両方を節約することができる。同様に、ホスト106が書き込みを実行する場合、書き込み要求を受信するサーバ106はこの書き込みをそのキャッシュ218内に記憶することができる。次にサーバ106は、時間およびリソースが許せば、ストレージ・デバイス204への書き込みをデステージ(destage)することができる。
【0031】
図3を参照すると、時点コピーを作成するためのマルチターゲット・アーキテクチャ300の一例が示されている。こうしたアーキテクチャ300は、
図2に示されたストレージ・システム110bなどのストレージ・システム110内で実装可能である。図に示されるように、マルチターゲット・アーキテクチャ300はソース・ボリューム302および1つまたは複数のターゲット・ボリューム304a〜dを含む。ターゲット・ボリューム304a〜dのそれぞれは、ソース・ボリューム302内のデータの時点コピーを含む。FlashCopy(R)実装などの選択された実施形態では、時点コピーはソース・ボリューム302とターゲット・ボリューム304との間に関係を確立(または「マッピング」)することによって作成される。この関係が確立されると、たとえデータが依然としてソース・ボリューム302からターゲット・ボリューム304にコピーできない場合であっても、ソース・ボリューム302またはターゲット・ボリューム304のいずれかからデータを読み取ることができる。ターゲット・ボリューム304に関連付けられたターゲット・ビット・マップ(TBM)306は、どのデータ・トラックが実際にソース・ボリューム302からターゲット・ボリューム304にコピーされたかを追跡する。たとえば、TBM306内の「0」はデータ・トラックがコピーされた(すなわちターゲット・ボリューム304がそれ自体のデータを有する)旨を示すことができるが、「1」はデータ・トラックが未だにコピーされていない旨を示すことができる。TBM306が「1」を含む場合、ターゲット・ボリューム304上のトラックへの読み取りはソース・ボリューム302上の対応するトラックに向けて送ることができる。本開示では、TBM306内のビットは「1」を含む場合に「設定」されており、「0」を含む場合に「リセット」されていると言われるが、これは他の実施形態では逆の可能性がある。ソース302およびターゲット304は例示された実施形態では「ボリューム」とラベル付けされるが、ソース302およびターゲット304はデータセットまたは他のデータの集合とすることができることを理解されたい。
【0032】
前述のように、従来のマルチターゲット・アーキテクチャ300では、ソース・ボリューム302への書き込みは、ソース・ボリューム302内のデータが、それ自体のデータを含まない接続された各ターゲット・ボリューム304a〜dにコピーされ(すなわちデステージされ)、ソース・ボリューム302への書き込みを完了できるまで待機が必要な可能性がある。すなわち、ソース・ボリューム302のデータ・トラック上で書き込みが実行される前に、既存のデータ・トラックを、ソース・ボリューム302上のデータ・トラックが上書きされる前にすでに未だデータ・トラックを含んでいないターゲット・ボリューム304a〜dにコピーする必要がある。マルチターゲット・アーキテクチャ300内のターゲット・ボリューム304a〜dの数が多くなるほど、データをソース・ボリューム302に正常に書き込むことができるまでに実行が必要なコピーの数も多くなる。これにより、ソース・ボリューム302への書き込みが非常に遅くなる可能性がある。このため従来の時点コピー技術は、性能影響を許容範囲内に維持するためにマルチターゲット・アーキテクチャ300内で限定数(たとえば12)のターゲット304のみをサポートすることができる。
【0033】
以下でより詳細に説明されるように、本発明の好ましい実施形態に従った改良された方法を使用して、ソース・ボリューム302にマッピングされた複数のターゲット・ボリューム304a〜dを有することの性能影響を軽減することができる。ソース・ボリューム302上で書き込みが実行される場合に複数のターゲット304a〜dにデータをコピーする代わりに、改良された方法は、単一のターゲット304またはターゲット304のサブセットにデータをコピーする。次に継承方式は、他のターゲット304が、データを含む単一のターゲット304またはターゲット304のサブセットからデータを継承できるようにする。このようにして、ソース・ボリューム302への書き込みは、ソース・ボリューム302上で書き込みを完了できるまでに、単一のターゲット304またはターゲット304のサブセットにデータをコピーするだけでよいものとすることができる。
図4から
図8に示された流れ図は、こうした方法を実装するための方法の様々な特有の例を示す。
【0034】
図4を参照すると、ターゲット・ボリューム304からトラックを読み取るための方法400の一例が示されている。ターゲット・ボリューム304からデータ・トラックを読み取るための要求を受け取ると、方法400は、ターゲット・ボリューム304のTBMが設定されているかどうかを判別する(402)。TBMが設定されていない場合(ターゲット・ボリューム304が要求されたデータを含むことを示す)、方法400は単にターゲット・ボリューム304から要求されたデータ・トラックを読み取る(406)。他方で、TBMが設定されている場合(ターゲット・ボリューム304が要求されたデータを含まないことを示す)、方法400は、データの読み取り元である高位のソース(HS)ボリュームを見つけ(404)、HSボリュームから読み取る(404)。HSボリュームを見つけるための1つの方法700は、
図7に関連して説明される。本開示では、HSボリュームは、要求されたデータを含む、ターゲット・ボリューム304の継承元のボリュームである。
【0035】
図5を参照すると、ソース・ボリューム302への書き込みに応答してデータ・トラックをデステージするための方法500の一実施形態が示されている。図に示されるように、方法500は初期にソース・ボリューム302の最年少の子(YC)を見つける(502)。本開示では、YCは、ソース・ボリューム302に最後にマップされたターゲット・ボリューム304である。選択された実施形態では、生成数(GN)を使用して、時点コピーを生成するためにターゲット・ボリューム304がソース・ボリューム302に追加された順序を特定することができる。ソース・ボリューム302にターゲット304がマッピングされた順序を決定するためにGNが使用される様式について、
図9に関連して考察する。
【0036】
方法500はYCを見つけると、YCのTBMが設定されているかどうかを判別する(504)。TBMが設定されていない場合(YC304がそれ自体のデータのコピーを含むことを示す)、YC304がすでにデータのコピーを有するため、方法500は何も実行しない(508)。他方で、TBMが設定されている場合(YC304がそれ自体のデータのコピーを含まないことを示す)、方法500はソース・ボリューム302からYC304にデータをコピーする(506)。このようにして、ソース・ボリューム302への書き込みが実行された場合、データを含まないすべてのターゲット・ボリューム304にデータをコピーするのとは反対に、ソース・ボリューム302とYC304との間で単一のコピーが実行される。そこで、他のターゲット・ボリューム304(YC304ではない)は、他のボリューム304への読み取りが実行される場合、または他のボリューム304からデータがコピーされる場合など、このデータをYC304から継承することができる。
【0037】
図6を参照すると、ターゲット・ボリューム304(ターゲットx)への書き込みに応答してデータ・トラックをデステージするための方法600の一実施形態が示されている。図に示されるように、方法600は初期に、ターゲットx304および最も近い年長の兄弟(COS)304に関するTBMが、書き込まれているトラックについて設定されているかどうかを判別する(602)。本開示では、COSはターゲットx304の直前にマッピングされたターゲット・ボリューム304である。両方のTBMが設定されている場合(どちらのボリュームも書き込まれているトラック内にデータを含まないことを示す)、方法600は高位ソース(HS)ボリュームからCOS304にデータ・トラックをコピーする(604)。HSボリュームを見つけるための方法については、
図8に関連して考察する。他方で、ターゲットxに関するTBMが設定されておらず、COSに関するTBMが設定されている(ターゲットx304が上書きされているデータ・トラック内にデータを含むことを示す)ことが、ステップ606で判別された場合、方法600はデータ・トラックをターゲットxからCOS304にコピーする(608)、すなわちデータ・トラックはターゲットx304からCOS304にデステージされる。他方で、COSのTBMが設定されていない場合(COSがデータを含むことを示す)、COSは存在せず、方法600はコピーの必要がないため、何も実行しない(610)。方法600が終わりに達すると、ターゲットx上で書き込みを実行することができる。
【0038】
前述の方法500、600は、本発明から逸脱することなく様々な方法で修正可能であることを理解されたい。たとえば最年少の子(YC)を最年長の子に置き換えることが可能であり、最も近い年長の兄弟(COS)を最も近い年少の兄弟に置き換えることが可能である。したがって本開示では、YCおよびCOSを利用する実施形態は、最年長の子および最も近い年少の兄弟を利用する実施形態を包含するものともみなされる。他の変形も可能であり、本発明の範囲内にある。
【0039】
図7を参照すると、読み取りのためにHSボリュームを見つけるための方法700の一実施形態が示されている。こうした方法700は、
図4のステップ404に関連して使用可能である。図に示されるように、方法700は、読み取られているボリュームがターゲット・ボリューム304であるかどうかを初期に判別する(702)。ターゲット・ボリューム304でない場合、ソース・ボリューム302であるため、方法700はこのボリュームから読み取る。ボリュームがターゲット・ボリューム304である場合、方法は、ボリュームのTBMが設定されているかどうかを判別する(706)。TBMが設定されていない場合、方法700はボリューム304から読み取る(704)。ボリュームのTBMが設定されて居る場合、方法700はターゲット・ボリューム304に関連付けられたソース・ボリューム302を見つける(708)。次に方法700は、対象ターゲット・ボリューム304の生成数(GN)の次に高位の生成数(GN)との次の関係を見つける(710)。GNの使用法については、
図9の例でより詳細に説明する。
【0040】
一般に、意思決定ステップ710は、(ステップ702で識別された)対象ターゲット・ボリューム304に関連付けられた関係の次の年少のソース・ボリューム302に関する関係を見つける。次に方法700は、この関係のターゲット304を見つける(714)。このターゲット304のTBMが設定されている場合716、方法700はターゲット304から読み取る。このターゲット304のTBMが設定されていない場合716、方法700はステップ710、714を反復し、次の年少のターゲット304を見つけて、そのTBMが設定されているかどうかを判別する(716)。このようにして、方法700は、所望のデータを含むターゲット・ボリューム304が見つかるまで、ステップ702で識別されたターゲット・ボリューム304の年少の兄弟をトラバースする。このデータが見つかると、方法700はターゲット304から読み取る(718)。所望のデータを含む年少の兄弟ターゲット304が見つからない場合、方法は単にソース・ボリューム302から読み取る(712)。このようにしてターゲット・ボリューム304は、兄弟304への読み取りが実行された場合に、兄弟304からデータを継承することができる。
【0041】
図8を参照すると、データのコピー元のHSボリュームを見つけるための方法800の一実施形態が示される。こうした方法800は、
図6のステップ604に関連して使用可能である。図に示されるように、方法800は初期に、書き込み先のボリュームがターゲット・ボリューム304であるかどうかを判別する。ターゲット・ボリューム304でない場合、ステップ804で反映されるように、コピーは不要である。ボリュームがターゲット・ボリューム304である場合、方法は、ボリュームのTBMが設定されているかどうかを判別する(806)。TBMが設定されていない場合、コピーは不要である。ボリュームがターゲット・ボリューム304であり、ボリュームのTBMが設定されている場合、方法はターゲット・ボリューム304に関連付けられたソース・ボリューム302を見つける(808)。次に方法800は、前述のように、高位の生成数(GN)との次の関係を見つける。
【0042】
次に高位のGNを見つけると、方法800は、ステップ802で識別されたターゲット304の兄弟であるこの関係のターゲット304を見つける(814)。この兄弟ターゲット304のTBMが設定されていない場合816(所望のデータを含むことを示す)、方法800は、兄弟ターゲット304からCOS304にデータをコピーする(818)。この兄弟ターゲット304のTBMが設定されている場合816(所望のデータを含まないことを示す)、方法800はステップ810、814を反復し、次の年少の兄弟ターゲット304を見つけて、そのTBMが設定されているかどうかを判別する(816)。このようにして、方法800は、所望のデータを含む兄弟ターゲット・ボリューム304が見つかるまで、ステップ802で識別されたターゲット・ボリューム304の年少の兄弟をトラバースする。このデータが見つかると、方法800は、兄弟ターゲット304からCOSにデータをコピーする(818)。所望のデータを含む兄弟ターゲット304が見つからない場合、方法800はソース・ボリューム302からCOSにデータをコピーする(812)。データがコピーされると、ステップ802で識別されたターゲット304上での書き込みが実行可能である。
【0043】
図9を参照すると、生成数(GN)の使用を示すマルチターゲット・アーキテクチャ300の一例が示される。この例で、ソース・ボリューム(SV)302と第1のターゲット・ボリューム(TV1)304aとの間の関係が第1に作成され、次にソース・ボリューム302と第2のターゲット・ボリューム(TV2)304bとの間の関係、次にソース・ボリューム302と第3のターゲット・ボリューム(TV3)304cとの間の関係が作成されたものと想定する。新しい関係がソース・ボリューム302に追加される毎に、生成数が増分される。したがって、ソース・ボリューム302に示されるように、第1の関係は生成数「1」に関連付けられ、第2の関係は生成数「2」に関連付けられ、第3の関係は生成数「3」に関連付けられる。
【0044】
初期に、ソース・ボリューム302と第1および第2のターゲット・ボリューム304a、304bとの間の関係が確立されるが、ソース・ボリューム302と第3のターゲット・ボリューム304cとの間の関係は未だ確立されていないものと想定する。このシナリオでは、第2のターゲット・ボリューム304bのトラック1への書き込みを実行するために、トラック1内のデータがソース・ボリューム302(高位のソース)から第1のターゲット・ボリューム304a(最も近い年長の兄弟、すなわちCOS)にコピーされ、第1のターゲット・ボリューム304aのTBMがリセットされる。その後、第2のターゲット・ボリューム304bのトラック1への書き込みが実行され、第2のターゲット・ボリューム304bのTBMがリセットされる。同様に、ソース・ボリューム302のトラック2への書き込みを実行するために、トラック2内のデータがソース・ボリューム302から第2のターゲット・ボリューム304b(最年少の子、すなわちYC)にコピーされ、第2のターゲット・ボリューム304bのTBMがリセットされる(ここでデータを含むことを示す)。その後、ソース・ボリューム302のトラック2への書き込みが実行される。2つの書き込み後に第1のターゲット・ボリューム(TV1)304aおよび第2のターゲット・ボリューム(TV2)304b内に常駐するデータが、
図10に示される。TBM内の値も示される。
【0045】
ここで、ソース・ボリューム302と第3のターゲット・ボリューム304cとの間の第3の関係が確立されるものと想定する。ソース・ボリューム302のトラック3への書き込みを実行するために、トラック3内のデータがソース・ボリューム302から第3のターゲット・ボリューム304c(最年少の子、すなわちYC)にコピーされ、第3のターゲット・ボリューム304cのTBMがリセットされる。次に、ソース・ボリューム302のトラック3への書き込みが実行される。第2のターゲット・ボリューム304bのトラック4への書き込みを実行するために、トラック4内のデータがソース・ボリューム302(高位のソース)から第1のターゲット・ボリューム304a(最も近い年長の兄弟、すなわちCOS)にコピーされ、第1のターゲット・ボリューム304aのTBMがリセットされる。次に、第2のターゲット・ボリューム304bのトラック4への書き込みが実行され、第2のターゲット・ボリューム304bのTBMがリセットされる。
【0046】
第1のターゲット・ボリューム304aのトラック5への書き込みを実行するために、最も近い年長の兄弟、すなわちCOSが存在しないため、コピーは実行されない。次に、第1のターゲット・ボリューム304aのトラック5への書き込みが実行され、第1のターゲット・ボリューム304aのTBMがリセットされる。第3のターゲット・ボリューム304cのトラック6への書き込みを実行するために、トラック6内のデータがソース・ボリューム302(高位のソース)から第2のターゲット・ボリューム304b(最も近い年長の兄弟、すなわちCOS)にコピーされ、第2のターゲット・ボリューム304bのTBMがリセットされる。次に、第3のターゲット・ボリューム304cのトラック6への書き込みが実行され、第3のターゲット・ボリューム304cのTBMがリセットされる。前述の6つすべての書き込み後、第1のターゲット・ボリューム(TV1)304a、第2のターゲット・ボリューム(TV2)304b、および第3のターゲット・ボリューム(TV3)304c内に常駐するデータが、
図11に示される。TBM内の値も示される。
【0047】
図12を参照すると、ある環境では、ソース・ボリューム302とターゲット・ボリューム304との間の関係、またはソース・ボリューム302といくつかのターゲット・ボリューム304との間のいくつかの関係を、マルチターゲット・アーキテクチャ300から削除することができる。マルチターゲット・アーキテクチャ300から関係が削除された場合、ソース・ボリューム302と関係に関連付けられたターゲット・ボリューム304との間の時点コピー関係が終了する。ある実施形態では、これにより、関係が削除されたターゲット・ボリューム304からデータを継承するための他の兄弟ターゲット・ボリューム304の機能が終了する可能性がある。したがって、ある実施形態では、関係の削除に先立って、関係に関連付けられたターゲット・ボリューム304上のデータを1つまたは複数の兄弟ターゲット・ボリューム304にコピーすることが可能であるため、結果として兄弟ターゲット・ボリューム304は依然としてデータにアクセス可能である。
【0048】
たとえば、ソース・ボリューム302とターゲット・ボリューム304cとの間の関係が(点線矢印で示されるように)削除用に識別されるものと想定する。関係の削除に先立って、ターゲット・ボリューム304c上に記憶され、他の兄弟ターゲット・ボリューム304によって継承されるデータを、1つまたは複数の兄弟ターゲット・ボリューム304にコピーすることが可能であるため、結果として兄弟ターゲット・ボリューム304は依然としてデータにアクセス可能である。たとえばある実施形態では、
図4から
図8で説明された時点コピー方法を使用する場合など、データが最も近い年長の兄弟(COS)にコピーされることになる。他の時点コピー方法を使用して、データをCOS以外の他の兄弟ターゲット・ボリューム304にコピーすることができる。それにもかかわらず、本開示では、データがCOSにコピーされるものと想定される。ターゲット・ボリューム304cに記憶され、他の兄弟ターゲット・ボリューム304によって継承されるすべてのデータがCOSにコピーされると、ソース・ボリューム302とターゲット・ボリューム304cとの間の関係は削除可能であり、それにより、ソース・ボリューム302とターゲット・ボリューム304cとの間の時点コピー関係は終了する。
【0049】
図13を参照すると、あるケースでは、ソース・ボリューム302と空間効率の良い(SE)ターゲット・ボリューム304との間の関係を削除することができる。SEターゲット・ボリューム304は、データがボリューム内に物理的に記憶されないという点で、標準の(
図12に示されたような)ターゲット・ボリューム304とは異なる。むしろSEターゲット・ボリューム304は、そのデータが共通リポジトリ1200内に物理的に記憶される(点線で示されるような)仮想ボリュームである。マッピング構造1202は、SEターゲット・ボリュームのデータがリポジトリ1200内のどこに物理的に配置されるかを追跡する。言い換えれば、マッピング構造1202は、SEターゲット・ボリューム304の論理トラックをリポジトリ1200の物理トラックにマッピングする。ホスト・デバイスの観点から見ると、SEターゲット・ボリューム304からの読み取りまたはSEターゲット・ボリューム304への書き込みは、標準ターゲット・ボリュームからの読み取りまたは標準ターゲット・ボリュームへの書き込みと同じとすることができる。
【0050】
SEターゲット・ボリューム304はいかなるデータも物理的に記憶しないため、関係が削除される場合、SEターゲット・ボリューム304から他の兄弟SEターゲット・ボリューム304へのデータの物理的コピーは不要である。むしろ他の兄弟SEターゲット・ボリューム、より具体的に言えばCOSボリュームが、リポジトリ1200内のSEターゲット・ボリュームのデータを指し示すように、マッピング構造1202を修正することができる。言い換えれば、1つのSEターゲット・ボリュームから他へデータを物理的にコピーする代わりに、標準ターゲット・ボリュームで実行し得るように、1つのSEターゲット・ボリューム内に論理的に記憶されたデータがここでは他のSEターゲット・ボリューム内に論理的に記憶されるように、マッピング構造1202を修正することができる。本開示では、以下で言及されるすべてのターゲット・ボリュームが空間効率の良い(SE)ターゲット・ボリュームであるものと想定される。
【0051】
図14を参照すると、ある実施形態では、マルチターゲット・アーキテクチャ300内のそれぞれの関係を追跡するために、関係テーブル1300がメモリ214内に記憶される。ある実施形態では、各関係は、それらと、関係のソースに対応するソース関係エントリ1302aおよび関係のターゲットに対応するターゲット関係エントリ1302bとを関連付けている。以下でより詳細に説明されるように、関係を削除する場合、関係の削除が進行中である(すなわちマッピング構造が、関係を削除するのに備えてデータをCOSにマッピングするように修正中である)ことを示すために、関係に関連付けられたソース関係エントリ1302aおよびターゲット関係エントリ1302bを「削除」とマーク付けすることができる。このように関係エントリ1302a、1302bを作成することで、その関係の削除が進行中であるSEターゲット・ボリューム304にデータが書き込まれないよう保証することもできる。SEターゲット・ボリューム内に論理的に記憶されたデータがCOS内に論理的に記憶されるようにマッピング構造が修正されると、関係を削除することができる。関係の削除は、関係テーブル1300からの関係に関連付けられたソース関係エントリ1302aおよびターゲット関係エントリ1302bの削除を含むことができる。
【0052】
図15を参照すると、マルチターゲット・アーキテクチャ300内のソース302とSEターゲット304との間の関係を削除するための方法1400の一実施形態が示されている。図に示されるように、方法1400は初期に、撤回(withdraw)の要求(すなわち関係を削除する要求)が受け取られたかどうかを判別する(1402)。撤回の要求が受け取られた場合、方法1400は、関係に関連付けられた関係エントリを「削除」とマーク付けする(1404)。これは、関係に関連付けられたソース関係エントリ1302aおよびターゲット関係エントリ1302bの両方を「削除」とマーク付けすること1404を含むことができる。次に方法1400は、関係がすでに進行中かどうか、すなわちマッピング構造1202が関係削除に備えてデータをCOSにマッピングするよう修正中であるかどうかを判別する(1406)。
【0053】
関係がすでに進行中である場合、方法1400は関係をキューに入れる(1408)。関係をキューに入れると、方法1400は、年少関係に先立って年長関係を処理するために、キュー内の関係を最年長から最年少へとソートする(1408)。これにより、マッピング構造1202が修正される回数が理想的に最小限となる。たとえば、マッピング構造1202が、その関係が削除される番にあるCOSにデータをマッピングするように修正される場合、マッピング構造1202は再度修正される必要があり、時間とリソースの両方が無駄である。最年長から最年少へと関係を処理することで、マッピング構造1202の修正が最小回数であることを保証するのに役立つ。
【0054】
様々な方法または技法を使用して、関係の年齢を決定することができる。ある実施形態では、関係の年齢は、
図9に示されたような生成数を使用して決定される。たとえば、ソース・ボリューム302上の生成数を検査することによって、関係の年齢が容易に決定できる。
図9に示された例では、生成数は新しい関係が生成される毎に増分される。したがって、生成数「1」に関連付けられた関係は最年長であり、生成数「3」に関連付けられた関係は最年少である。この規則は、他の実施形態では逆にすることができる。
【0055】
キュー内に関係がない場合、方法1400は単に関係を処理する(1410)。キュー内に1つまたは複数の関係がある場合、方法1400はキュー内の次の関係を処理する(1410)。関係を処理する(1410)ための様々な方法は、
図16および
図17に関連して説明される。関係が処理されると、すなわちマッピング構造1202がSEターゲット304に関してCOS304にデータをマッピングするように修正されると、方法1400は、関係テーブル1300から関係に関連付けられた関係エントリ1302a、1302bを除去する(1412)。これにより、関係は終了する。次に方法は、いずれかの他の関係がキュー内にあるかどうかをチェックする1414。キューが空の場合、方法1400は撤回する次の要求を待機する(1402)。キューが空でない場合、方法1400はキュー内の次の関係を処理する(1410)。これが、キュー内のすべての関係が処理されるまで続行される。
【0056】
ある実施形態では、方法1400は任意の特定の時点でいくつかの関係が進行中であることが可能なように構成される。ある実施形態では、任意の特定の時点で進行中の関係の数を、ストレージ・デバイス204(たとえばディスク・ドライブ、ソリッドステート・ドライブなど)またはストレージ・デバイス204に関連付けられたデバイス・アダプタ210をオーバドライブ(overdrive)しないように制限することができる。たとえばある実施形態では、デバイスをオーバドライブしないように、デバイス・アダプタ210およびストレージ・デバイス204を任意の特定の時点でいくつか(たとえば4つ)の関係を処理するように制限することができる。いくつかの関係を同時に処理している場合、マッピング構造1202が修正される回数を最小限にするために、新しい関係よりも古い関係に優先権を与えることができる。
【0057】
図16を参照すると、関係を処理するための方法1410の実施形態が示される。こうした方法1410は、
図15で説明されるように、関係が処理される場合1410はいつでも実行可能である。図に示されるように、関係を処理するために、方法1410は関係に関連付けられたSEターゲットを初期に識別する(1500)。次に方法1410は、SEターゲットの最も近い年長の兄弟(COS)を識別する(1502)。次に方法1410は、SEターゲットおよびCOSの第1のトラックを検査する(1504)。方法1410が、トラックに関するSEターゲットのTBMが設定されていないこと(SEターゲットがデータのコピーを含むことを示す)を判別し(1506)、トラックに関するCOSのTBMが設定されていること(COSがデータのコピーを含まないことを示す)を判別する(1508)と、方法1410は、リポジトリ1200内のデータをCOSにマッピングするようにマッピング構造1202を修正する(1510)。次に、データのコピーを含むことを示すように、トラックに関するCOSのTBMがリセットされる(1510)。しかしながら、トラックに関するSEターゲットのTBMが設定されている場合(SEターゲットがデータのコピーを含まないことを示す)、またはトラックに関するCOSのTBMが設定されていない場合(COSがすでにデータのコピーを含むことを示す)、マッピング構造1202は修正されず、方法1410は意思決定ステップ1512に進む。
【0058】
方法1410がトラックを検査し、マッピング構造1202を修正するか、または修正が不要であるものと判別すると、方法1410は、SEターゲット304の最終トラックに到達したかどうかを判別する(1512)。最終トラックに到達していない場合、方法1410はSEターゲットの次のトラックおよびCOSの対応するトラックを検査し(1514)、ステップ1506、1508、1510、1512を反復する。SEターゲット304内のすべてのトラックが検査され、必要であればそれらのトラックに関してマッピング構造1202が修正された場合、方法1410は終了する。
【0059】
図17を参照すると、関係を処理するための方法1410の他の実施形態が示される。こうした方法1410は、関係が処理される場合1410には必ず
図16の方法の代わりに実行可能である。
図17に示された方法1410を使用して、データセットレベルの時点コピー実装などの、SEターゲット内のトラックの異なる範囲が異なる最も近い年長の兄弟(COS)を有する実装に対処することができる。
【0060】
図に示されるように、関係を処理するために、方法1410は初期に、関係に関連付けられたSEターゲットを識別し(1600)、SEターゲットの第1のトラック範囲(たとえば第1の50のトラック)を識別する(1602)。次に方法1410は、トラック範囲に関連付けられた最も近い年長の兄弟(COS)を識別する(1604)。次に方法1410は、トラック範囲の第1のトラックおよびCOSの対応するトラックを検査する(1606)。方法1410が、トラック範囲内のトラックに関するTBMが設定されていないこと(トラックがデータのコピーを含むことを示す)を判別し(1608)、COSの対応するトラックに関するTBMが設定されていること(COS内のトラックがデータのコピーを含まないことを示す)を判別した(1610)場合、方法1410は、リポジトリ1200内のデータをCOSにマッピングするようにマッピング構造1202を修正する(1620)。次に、COS内のトラックに関するTBMが、ここでデータのコピーを含むことを示すようにリセットされる(1620)。しかしながら、SEターゲット上のトラックに関するTBMが設定されている(SEターゲットがデータのコピーを含まないことを示す)か、または対応するトラックに関するCOSのTBMが設定されていない(COSがすでにデータのコピーを含むことを示す)場合、マッピング構造1202は修正されず、方法1410は意思決定ステップ1618に進む。
【0061】
方法1410がトラック範囲内のトラックを検査し、マッピング構造1202を修正するかまたは修正が不要であると判別すると、方法1410はトラック範囲内に他のトラックが存在するかどうかを判別する(1618)。トラック範囲内に他のトラックが存在する場合、方法1410は、ステップ1608、1610、1620、1618を反復することによって、トラック範囲の次のトラック並びにCOS内の対応するトラックを検査する(1616)。トラック範囲内のすべてのトラックが検査され、必要であれば、それらのトラックに関してマッピング構造1202が修正された場合、方法1410は、SEターゲット内に他のトラック範囲があるかどうかを判別する(1614)。他のトラック範囲がある場合、方法1410はそのトラック範囲に関するCOSを識別し(1604)、トラック範囲および識別されたCOSに関してステップ1606、1608、1610、1620、1618、1616を反復する。これは、SEターゲットのすべてのトラック範囲内のすべてのトラックが検査され、必要であればそれらのトラックに関してマッピング構造1202が修正されるまで続行される。SEターゲットのすべてのトラック範囲内のすべてのトラックが検査され、マッピング構造1202が適宜修正されると、方法1410は終了する。
【0062】
図面内の流れ図およびブロック図は、本発明の様々な好ましい実施形態に従ったシステム、方法、およびコンピュータ使用可能メディアの可能な実装のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部分を表すことができる。いくつかの代替実装では、ブロック内に示された機能が図面内に示された順序以外で実行可能であることにも留意されたい。たとえば関連する機能に応じて、連続して示された2つのブロックが実際にはほぼ同時に実行可能であるか、または時にブロックは逆の順序で実行可能である。ブロック図あるいは流れ図またはその両方の各ブロック、およびブロック図あるいは流れ図またはその両方内のブロックの組み合わせが、指定された機能を実行する特定用途向けハードウェアベース・システム、または特定用途向けハードウェアおよびコンピュータ命令の組み合わせによって、実装可能であることにも留意されよう。