(57)【要約】【課題】  異なるポイント・イン・タイムにおけるソース・データを有するリポジトリ内のソース・データのコピーからリストア・コピーを生成するためのコンピュータ・プログラム製品、システム及び方法を提供する。【解決手段】  初期のポイント・イン・タイムにおけるソース・データのすべてが、リポジトリにコピーされる。初期のポイント・イン・タイムの後のポイント・イン・タイム・コピーの完了に応答して、ポイント・イン・タイム・コピーのポイント・イン・タイムと後のポイント・イン・タイムとの間で変更されたソース・データ内の変更データを示す変更情報をリポジトリに送信する。それぞれのポイント・イン・タイム・コピーについて、変更ソース・データを、リポジトリにコピーする。変更ソース・データは、ポイント・イン・タイム・コピーについての変更情報内に、変更されたものとして示されるソース・データを含む。リストア・ポイント・イン・タイムにおけるソース・データをリストアするためのリストア要求を受け取る。リストア・ポイント・イン・タイムにおけるリポジトリ内のソース・データを、リポジトリからリストア・コピーにコピーする。【選択図】      図１
2017509958.tif 000002
【特許請求の範囲】
【請求項１】
ソース・データをリポジトリに維持するためのシステムであって、
プロセッサと、
オペレーションを実施するために前記プロセッサにより実行されるプログラム命令を含むコンピュータ可読ストレージ媒体を含み、前記オペレーションは、
初期のポイント・イン・タイムにおける前記ソース・データのすべてを前記リポジトリにコピーすることと、
前記初期のポイント・イン・タイムの後の異なるポイント・イン・タイムにおける前記ソース・データのポイント・イン・タイム・コピーを開始することと、
それぞれの前記ポイント・イン・タイム・コピーの完了に応じて、前記ポイント・イン・タイム・コピーの前記ポイント・イン・タイムと後のポイント・イン・タイムとの間で変更された前記ソース・データ内の変更データを示す変更情報を前記リポジトリに送信することと、
それぞれの前記ポイント・イン・タイム・コピーについて、変更ソース・データを前記リポジトリにコピーすることであって、前記変更ソース・データは、前記ポイント・イン・タイム・コピーについての前記変更情報に変更されたものとして示されるソース・データを含む、コピーすることと、
リストア・ポイント・イン・タイムにおける前記ソース・データをリストアするためのリストア要求を受け取ることと、
前記リストア・ポイント・イン・タイムにおける前記リポジトリ内の前記ソース・データを決定することと、
前記決定されたソース・データを前記リポジトリからリストア・コピーにコピーすることと、
を含む、システム。
【請求項２】
前記ポイント・イン・タイム・コピーは、ポイント・イン・タイム・コピー・プログラムによって生成され、前記ポイント・イン・タイム・コピー・プログラムとは別個に実行されるリポジトリ・コピー・プログラムは、前記変更情報、変更データ、および前記変更情報内に変更されたものとして示される前記後のポイント・イン・タイムにおける前記データを前記リポジトリにコピーするオペレーションを実行する、請求項１に記載のシステム。
【請求項３】
前記オペレーションは、前記リポジトリ内の各ポイント・イン・タイム・コピーについて、前記ポイント・イン・タイム・コピーについての前記変更データが書き込まれる前記リポジトリ内のオフセットを示すためのリポジトリ・オフセットを示すことをさらに含む、前記請求項のいずれかに記載のシステム。
【請求項４】
前記リストア・ポイント・イン・タイムにおける前記ソース・データを決定することは、前記リストア時間における前記リポジトリ内のソース・データ・ユニットを決定し、前記リポジトリが異なるポイント・イン・タイム・コピーについてのデータ・ユニットの複数のコピーを有する場合、前記決定されたソース・データ内に、前記リストア時間に最も近い前記ポイント・イン・タイム・コピーからの前記データ・ユニットを含む、前記請求項のいずれかに記載のシステム。
【請求項５】
前記初期のポイント・イン・タイムにおける前記ソース・データをコピーすることは、
すべての前記ソース・データが変更されたことを示す変更情報を含む前記ソース・データの前記初期のポイント・イン・タイムにおけるポイント・イン・タイム・コピーを生成することと、
前記初期のポイント・イン・タイムにおける前記ポイント・イン・タイム・コピーについての前記変更情報を前記リポジトリに送信することと、
を含む、前記請求項のいずれかに記載のシステム。
【請求項６】
前記リストア・コピーにコピーすべき前記リストア・ポイント・イン・タイムにおける前記ソース・データを決定することは、
すべての前記ソース・データ・ユニットを前記リストア・コピーにコピーされていないものとして示すリストア・コピー情報を初期化することと、
前記リストア・ポイント・イン・タイムにおける、または前記リストア・ポイント・イン・タイムの前の各ポイント・イン・タイム・コピーについて、前記リストア時間に最も近い前記ポイント・イン・タイム・コピーから開始し、逆時間順でポイント・イン・タイム・コピーを考慮することと、
前記リストア・コピー情報内にまだコピーされていないものとして示される前記ポイント・イン・タイム・コピーについての前記変更データ・ユニットを決定することであって、前記決定された変更データ・ユニットは、前記決定されたコピーすべきソース・データ内に含まれる、決定することと、
前記ポイント・イン・タイム・コピーについての前記リポジトリ・オフセットを用いて、前記決定された変更データ・ユニットが格納される前記リポジトリ内の位置を求めることと、
前記変更データ・ユニットを前記リポジトリ内の前記決定された位置から前記リストア・コピーにコピーすることと、
前記リストア・コピー情報内にコピーされたものとして前記決定された変更データ・ユニットを示すことと、
を含む、請求項５に記載のシステム。
【請求項７】
前記オペレーションは、前記リストア・コピーについての前記データがコピーされる空のリストア・ボリュームを構成することをさらに含み、前記リストア・ボリュームは、前記リポジトリからの前記ソース・データについてのすべての前記データが前記リストア・ボリュームにコピーされた後に利用可能である、前記請求項のいずれかに記載のシステム。
【請求項８】
ソース・データをリポジトリ内に保持するための方法であって、
初期のポイント・イン・タイムにおけるすべての前記ソース・データを前記リポジトリにコピーすることと、
前記初期のポイント・イン・タイムの後の異なるポイント・イン・タイムにおける前記ソース・データのポイント・イン・タイム・コピーを開始することと、
それぞれの前記ポイント・イン・タイム・コピーの完了に応じて、前記ポイント・イン・タイム・コピーの前記ポイント・イン・タイムと後のポイント・イン・タイムとの間で変更された前記ソース・データ内の変更データを示す変更情報を、前記リポジトリに送信することと、
それぞれの前記ポイント・イン・タイム・コピーについて、変更ソース・データを前記リポジトリにコピーすることであって、前記変更ソース・データは、前記ポイント・イン・タイム・コピーについての前記変更情報に変更されたものとして示されるソース・データを含む、コピーすることと、
リストア・ポイント・イン・タイムにおける前記ソース・データをリストアするためのリストア要求を受け取ることと、
前記リストア・ポイント・イン・タイムにおける前記リポジトリ内の前記ソース・データを決定することと、
前記決定されたソース・データを前記リポジトリからリストア・コピーにコピーすることと、
を含む、方法。
【請求項９】
前記ポイント・イン・タイム・コピーは、ポイント・イン・タイム・コピー・プログラムによって生成され、前記ポイント・イン・タイム・コピー・プログラムとは別個に実行されるリポジトリ・コピー・プログラムは、前記変更情報、変更データ、および前記変更情報内に変更されたものとして示される前記後のポイント・イン・タイムにおける前記データを前記リポジトリにコピーするオペレーションを実行する、請求項８に記載の方法。
【請求項１０】
前記オペレーションは、前記リポジトリ内の各ポイント・イン・タイム・コピーについて、前記ポイント・イン・タイム・コピーについての前記変更データが書き込まれる前記リポジトリ内のオフセットを示すためのリポジトリ・オフセットを示すことをさらに含む、請求項８または請求項９のいずれかに記載の方法。
【請求項１１】
前記リストア・ポイント・イン・タイムにおける前記ソース・データを決定することは、前記リストア時間における前記リポジトリ内のソース・データ・ユニットを決定し、前記リポジトリが異なるポイント・イン・タイム・コピーについてのデータ・ユニットの複数のコピーを有する場合、前記決定されたソース・データ内に、前記リストア時間に最も近い前記ポイント・イン・タイム・コピーからの前記データ・ユニットを含む、請求項８〜請求項１０のいずれかに記載の方法。
【請求項１２】
前記初期ポイント・イン・タイムにおける前記ソース・データをコピーすることは、
すべての前記ソース・データが変更されたことを示す変更情報を含む前記ソース・データの前記初期のポイント・イン・タイムにおけるポイント・イン・タイム・コピーを生成することと、
前記初期のポイント・イン・タイムにおける前記ポイント・イン・タイム・コピーについての前記変更情報を前記リポジトリに送信することと、
を含む、請求項８〜請求項１１のいずれかに記載の方法。
【請求項１３】
前記リストア・コピーにコピーすべき前記リストアポイント・イン・タイムにおける前記ソース・データを決定することは、
すべての前記ソース・データ・ユニットを前記リストア・コピーにコピーされていないものとして示すリストア・コピー情報を初期化することと、
前記リストア・ポイント・イン・タイムにおける、または前記リストア・ポイント・イン・タイムの前の各ポイント・イン・タイム・コピーについて、前記リストア時間に最も近い前記ポイント・イン・タイム・コピーから開始し、逆時間順でポイント・イン・タイム・コピーを考慮することと、
前記リストア・コピー情報内にまだコピーされていないものとして示される前記ポイント・イン・タイム・コピーについての前記変更データ・ユニットを決定することであって、前記決定された変更データ・ユニットは、前記決定されたコピーすべきソース・データ内に含まれる、決定することと、
前記ポイント・イン・タイム・コピーについての前記リポジトリ・オフセットを用いて、前記決定された変更データ・ユニットが格納される前記リポジトリ内の位置を求めることと、
前記変更データ・ユニットを前記リポジトリ内の前記決定された位置から前記リストア・コピーにコピーすることと、
前記リストア・コピー情報内にコピーされたものとして前記決定された変更データ・ユニットを示すことと、
を含む、請求項１２に記載の方法。
【請求項１４】
前記オペレーションは、前記リストア・コピーについての前記データをコピーされる空のリストア・ボリュームを構成することをさらに含み、前記リストア・ボリュームは、前記リポジトリからの前記ソース・データについてのすべての前記データが前記リストア・ボリュームにコピーされた後に利用可能である、請求項８〜請求項１３のいずれかに記載の方法。
【請求項１５】
ソース・データをリポジトリに維持するためのコンピュータ・プログラムであって、請求項８〜請求項１４のいずれかに記載の方法を実施するための、処理回路により実行される命令を含む、コンピュータ・プログラム。
【請求項１６】
コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項８〜請求項１４のいずれかに記載の方法を実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる時点（ポイント・イン・タイム）におけるソース・データを有するリポジトリ内のソース・データのコピーからリストア・コピーを生成するためのコンピュータ・プログラム、システムおよび方法に関する。
【背景技術】
【０００２】
ストレージ・コントローラは、ストレージ環境において、ＩＢＭ（登録商標）ＦｌａｓｈＣｏｐｙ（登録商標）、スナップショット等のようなポイント・イン・タイム・コピー技術を用いて、プロダクション・ボリュームのポイント・イン・タイム（「ＰｉＴ」）コピーを生成することができる。ポイント・イン・タイム・コピーは瞬時に生じてホストがソース・ボリュームにアクセスし続けるのを可能にする方法でデータを複製し、その一方で、コピー・ボリュームへの実際のデータ転送は後に延期される。ソースからターゲット・ボリュームにデータをコピーすることなく関係データ構造が生成されたことに応答して、「完了」応答がコピー・オペレーションに返されるので、ＰｉＴコピーは瞬時に生じることとなる。典型的には、ＰｉＴコピー技術は、ＰｉＴコピー関係がコピー・ターゲット・ボリュームに対して確立した時点で、書き込み動作がソース・ボリューム上のそのデータ・ブロックに対して要求されるまでソース・ボリューム内のデータの転送を延期する。データ転送は、最小限のシステム性能への影響のみを伴うバックグラウンド・コピー・プロセスとして進行させてもよい。ＰｉＴコピー・コマンドに応答してすぐに確立されるＰｉＴコピー関係は、ビットマップ、またはソース・ボリュームもしくはコピー・ボリュームのいずれかにおけるボリューム内のブロックの位置を示す他のデータ構造を含む。ＰｉＴコピーは、ソース・ボリューム内のデータとターゲット・ボリュームに転送される更新によって上書きされるデータとの組み合わせを含む。「ＩＢＭ」および「ＦｌａｓｈＣｏｐｙ」は、世界中の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【０００３】
ＰｉＴコピー関係に関与するソース・ボリューム内のブロックに対する更新を受け取ると、ポイント・イン・タイム時点のトラックのコピーは、該トラックについての新しいデータをソース・ボリュームに書き込み、データのポイント・イン・タイム・コピーを上書きする前に、サイド・ファイルまたはターゲット・ボリュームにコピーする必要がある。異なる時点（ポイント・イン・タイム）におけるソース・データを有するリポジトリ内のソース・データのコピーからリストア・コピーを生成することは、複雑である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、当技術分野において、上述の問題に対処するための必要性が存在する。
【課題を解決するための手段】
【０００５】
異なるポイント・イン・タイムにおけるソース・データを有するリポジトリ内のソース・データのコピーからリストア・コピーを生成するためのコンピュータ・プログラム製品、システムおよび方法が提供される。初期のポイント・イン・タイムにおけるソース・データをすべてリポジトリにコピーする。初期のポイント・イン・タイムの後の異なるポイント・イン・タイムにおいて、ソース・データのポイント・イン・タイム・コピーが開始される。それぞれのポイント・イン・タイム・コピーの完了に応じて、ポイント・イン・タイム・コピーのポイント・イン・タイムと後のポイント・イン・タイムとの間で変更されたソース・データ内の変更データを示す変更情報を、リポジトリに送信する。それぞれのポイント・イン・タイム・コピーについて、変更ソース・データをリポジトリにコピーする。変更ソース・データは、ポイント・イン・タイム・コピーについての変更情報内に、変更されたものとして示されるソース・データを含む。リストア・ポイント・イン・タイムにおけるソース・データをリストアするためのリストア要求を受け取る。リストア・ポイント・イン・タイムにおけるリポジトリ内のソース・データを決定し、決定されたソース・データをリポジトリからリストア・コピーにコピーする。
【０００６】
第１の態様から見ると、本発明は、ソース・データをリポジトリに維持するためのシステムであって、プロセッサと、オペレーションを実施するためにプロセッサにより実行されるプログラム命令を含むコンピュータ可読ストレージ媒体とを含む。このオペレーションは、初期のポイント・イン・タイムにおけるすべてのソース・データをリポジトリにコピーすることと、初期ポイント・イン・タイムの後の異なるポイント・イン・タイムにおいてソース・データのポイント・イン・タイム・コピーを開始することと、それぞれのポイント・イン・タイム・コピーの完了に応じて、ポイント・イン・タイム・コピーのポイント・イン・タイムと後のポイント・イン・タイムとの間で変更されたソース・データ内の変更データを示す変更情報を、リポジトリに送信することと、それぞれのポイント・イン・タイム・コピーについて、変更ソース・データをリポジトリにコピーすることであって、ポイント・イン・タイム・コピーについての変更情報内に、変更されたものとして示されるソース・データを含む、コピーすることと、リストア・ポイント・イン・タイムにおけるソース・データをリストアするためのリストア要求を受け取ることと、リストア・ポイント・イン・タイムにおけるリポジトリ内のソース・データを決定することと、決定されたソース・データをリポジトリからリストア・コピーにコピーすることとを含む、システムを提供する。
【０００７】
さらに別の態様から見ると、本発明は、ソース・データをリポジトリ内に維持するための方法を提供する。この方法は、初期のポイント・イン・タイムにおけるソース・データのすべてをリポジトリにコピーするステップと、初期のポイント・イン・タイムの後の異なるポイント・イン・タイムにおけるソース・データのポイント・イン・タイム・コピーを開始するステップと、それぞれのポイント・イン・タイム・コピーの完了に応じて、ポイント・イン・タイム・コピーのポイント・イン・タイムと後のポイント・イン・タイムとの間で変更されたソース・データ内の変更データを示す変更情報を、リポジトリに送信するステップと、それぞれのポイント・イン・タイム・コピーについて、変更ソース・データをリポジトリにコピーするステップであって、変更ソース・データは、ポイント・イン・タイム・コピーについての変更情報内に、変更されたものとして示されるソース・データを含む、コピーするステップと、リストア・ポイント・イン・タイムにおけるソース・データをリストアするためのリストア要求を受け取るステップと、リストア・ポイント・イン・タイムにおけるリポジトリ内のソース・データを決定するステップと、決定されたソース・データをリポジトリからリストア・コピーにコピーするステップとを含む。
【０００８】
さらに別の態様から見ると、本発明は、ソース・データをリポジトリに維持するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、本発明のステップを実施する方法を実施するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。
【０００９】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されるとき、本発明のステップを実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００１０】
ここで、以下の図面に示されるような好ましい実施形態を参照して、本発明を単なる例として説明する。
【図面の簡単な説明】
【００１１】
【図１】本発明の好ましい実施形態による、ストレージ環境の１つの実施形態を示す。
【図２】本発明の好ましい実施形態による、ストレージ・コントローラ・ポイント・イン・タイム・コピー情報の１つの実施形態を示す。
【図３】本発明の好ましい実施形態による、リポジトリ・ポイント・イン・タイム・コピー情報の１つの実施形態を示す。
【図４】本発明の好ましい実施形態による、異なるポイント・イン・タイムにおけるソース・データおよびソース・データのポイント・イン・タイム情報を有するリポジトリを生成するための動作の１つの実施形態を示す。
【図５】本発明の好ましい実施形態による、異なるポイント・イン・タイムにおけるソース・データおよびリポジトリの状態の例を示す。
【図６】本発明の好ましい実施形態による、異なるポイント・イン・タイムにおけるソース・データおよびリポジトリの状態の例を示す。
【図７】本発明の好ましい実施形態による、異なるポイント・イン・タイムにおけるソース・データおよびリポジトリの状態の例を示す。
【図８】本発明の好ましい実施形態による、リストア・コピーを生成するための動作の１つの実施形態を示す。
【図９】本発明の好ましい実施形態による、リストア・コピーにコピーすべきソース・データを決定するための動作の１つの実施形態を示す。
【図１０】従来技術による図１のコンポーネントを実装することができ、かつ、本発明の好ましい実施形態を実装することができる、コンピューティング環境を示す。
【発明を実施するための形態】
【００１２】
説明される実施形態は、ソース・データのフルコピーおよびソース・データのポイント・イン・タイム・コピーを維持し、異なるポイント・イン・タイムにおけるソース・データをリポジトリからリストアすることを可能にする、リポジトリを生成するための技術を提供する。さらに、説明される実施形態において、ポイント・イン・タイム（「ＰｉＴ」）コピー情報をリポジトリ内に保持し、リストア動作を行うための動作は、ソース・データからＰｉＴコピーを生成するストレージ・コントローラ論理とは別個のプログラム・コンポーネントによって行うことができ、その結果、リポジトリは、ストレージ・コントローラとは別個に保持され、使用され、管理される。
【００１３】
図１は、異なるホスト・システムにより用いられるプロダクション・ボリュームのようなソース・データ１０４を含む第１のストレージ１０２へのアクセスを管理するストレージ・コントローラ１００を有するデータ・ストレージ環境の１つの実施形態を示す。ホスト１０６は、第２のストレージ１１２内のリポジトリ１１０へのソース・データ１０４のコピーを管理するためのリポジトリ・コピー管理プログラム１０８を含む。ストレージ・コントローラ１００、ホスト１０６および第２のストレージ１１２は、ネットワーク１１４上で通信することができる。
【００１４】
ストレージ・コントローラ１００は、例えば、ＦｌａｓｈＣｏｐｙ、スナップショット等の、ソース・データ１０４のポイント・イン・タイム・コピーを生成するためのポイント・イン・タイム（「ＰｉＴ」）コピー・マネージャ１１６を含む。ＰｉＴコピーの生成時、ＰｉＴコピー・マネージャ１１６は、ポイント・イン・タイム時点で生成されたＰｉＴコピーに関するＰｉＴコピー情報２００ａを生成する。ストレージ・コントローラ１００は、ソース・データ１０４への入力／出力（「Ｉ／Ｏ」）要求を管理するためのコードおよび論理を含むオペレーティング・システム１１８をさらに含む。オペレーティング・システム１１８は、ソース・データ１０４を１つまたは複数のボリューム内に構成することができ、データは、トラック、論理ブロックアドレス（ＬＢＡ）、エクステント等のようなデータ・ユニットで格納される。ＰｉＴコピー・マネージャ１１６は、オペレーティング・システム１１８により供給されるコピーサービスとしてもよい。
【００１５】
ストレージ１０２および１１２は、トラックを、該ストレージ１０２および１１２を含む複数のストレージ・デバイスにわたってトラックのストライドが書き込まれるＲｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ）構成内に格納することができる。ストレージ１０２および１１２はそれぞれ、相互接続されたストレージ・デバイスのような、当技術分野において周知の１つまたは複数のストレージ・デバイスを含むことができ、ストレージ・デバイスは、ハードディスク・ドライブ、ＥＥＰＲＯＭ（電気的消去可能なプログラム可能読み出し専用メモリ）、フラッシュメモリ、フラッシュディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（ＳＣＭ）等のようなソリッド・ステート電子機器から構成されるソリッド・ステート・ストレージ・デバイス（ＳＳＤ）、磁気ストレージ・ディスク、光ディスク、テープ等を含むことができる。
【００１６】
ネットワーク１１４は、１つまたは複数の相互接続されたローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）、ピア・ツー・ピ・ネットワーク、無線ネットワーク等のようなネットワークを含むことができる。
【００１７】
ＰｉＴコピー・マネージャ１１６は、瞬時に生じてプロセスがソース・ボリュームにアクセスし続けるのを可能にする方法でデータを複製し、その一方で、コピー・ボリュームへの実際のデータ転送は後に延期される、ＰｉＴコピー動作を行う。ＰｉＴコピーは瞬時に生じるが、これは、データをコピーすることなく、関係データ構造の生成に応答して、完全な応答がコピー動作に戻されるためである。
【００１８】
リポジトリ・コピー・マネージャ１０８は、異なるポイント・イン・タイムにおけるソース・データ１０４を、すべてのソース・データの初期のコピーを含むリポジトリ１１０にコピーし、ストレージ・コントローラ１００におけるＰｉＴコピー情報２００をリポジトリ１１０にコピーし、リポジトリＰｉＴコピー情報３００としてリポジトリ１１０内に格納する。リポジトリ・コピー・マネージャ１０８は、ＰｉＴコピー情報３００を用いて、リポジトリ１１０の変更データ１２０にコピーすべきソース・データ１０４における変更データを決定する。初期のポイント・イン・タイムにおけるソース・データのすべてをリポジトリ１１０にコピーするために、リポジトリ・コピー・マネージャ１０８は、ソース・データ１０４内の各データ・ユニットについて１ビットを有する、初期ＰｉＴコピーについての変更情報、すなわちＰｉＴビットマップを修正することができ、ソース・データ１０４内の各データ・ユニットが変更されたことを示す修正された初期変更情報２０００’を生成するようにデータが変更されたかどうかを示す。次に、リポジトリ・コピー・マネージャ１０８は、修正された初期変更情報２０００’内に示されるすべてのソース・データ１０４を、リポジトリ１１０内の変更データ１２０にコピーし、リポジトリ内の初期のポイント・イン・タイムにおけるソース・データ１０４のフルコピーを提供することができる。リポジトリ・コピー・マネージャ１０８は、初期のポイント・イン・タイムの後のＰｉＴコピーについてのＰｉＴコピー情報２００内の変更情報を用いて、異なるポイント・イン・タイムにおける変更データを、リポジトリ１１０内の変更データ１２０にコピーすることができる。
【００１９】
説明される実施形態において、リポジトリ・コピー・マネージャ１０８は、ソース・データ１０４の別個のフルコピーおよびソース・データ１０４のＰｉＴコピー情報３００を、別個のストレージ１１２に保持するので、データを、第１のストレージ１０２内のソース・データ１０４およびストレージ・コントローラ１００におけるＰｉＴコピー情報２００ａと関係なく、異なるポイント・イン・タイムにリストアすることができる。従って、リポジトリ１１０は、ソース・データ１０４の独立したリストアを可能にすることにより、ストレージ・コントローラ１００と関係なく、冗長でセキュアなバックアップを提供し、ストレージ・コントローラ１００または第１のストレージ１０２を故障から保護する。
【００２０】
特定の実施形態において、リポジトリ１１０の生成および監視は、ＰｉＴコピーを生成するＰｉＴコピー・マネージャ１１６のようなストレージ・コントローラ１００のプログラムとは分離したリポジトリ・コピー・マネージャ１０８により管理される。
【００２１】
リストア・コピー１２４を生成するために、リポジトリ・コピー・マネージャ１０８は、リストア・コピー１２４にコピーする必要がある変更データ１２０内のソース・データを示すリストア・コピー情報１３０を使用することができる。
【００２２】
図１の実施形態において、リポジトリの生成およびリストア動作は、例えば、ＰｉＴコピーを生成したＰｉＴコピー・マネージャ１１６などの、ストレージ・コントローラ論理とは分離したリポジトリ・コピー・マネージャ１０８などのプログラム・コンポーネントによって実行することができる。代替的な実施形態において、リポジトリ・コピー・マネージャ１０８および／またはリポジトリ１１０は、ストレージ・コントローラ１００上に保持することができる。
【００２３】
図２は、ストレージ・コントローラのＰｉＴコピー情報２００に関して保持される情報を含むことができ、かつ、ストレージ・コントローラ１００においてＰｉＴコピー・マネージャ１１６により生成されたＰｉＴコピーを識別するＰｉＴコピー識別子２０２と：ポイント・イン・タイム２０４時点でデータが一貫していることを意味し得る、ＰｉＴコピー２０２のポイント・イン・タイム２０４と：ポイント・イン・タイム２０４からおよびＰｉＴコピー２０２がオープンであった間、ソース・データ１０４内のどのデータまたはトラックが変更されたかを示し、ビットで表されるデータまたはトラックがポイント・イン・タイム２０４から更新されたかまたは更新されなかったかを示す２つの値のうちの１つに設定される各データ・ユニット（例えば、トラック）についてのビットを有するビットマップを含むことができる変更情報２０６とを含み、さらに、ポイント・イン・タイム２０４の後、ＰｉＴコピーがオープンであった間に変更され、依然として更新される、ポイント・イン・タイム２０４におけるデータを含む変更ＰｉＴデータ２０８を指し示すことができる。ＰｉＴコピー情報は、初期時間Ｔ０においてとられた初期ＰｉＴコピーおよび後のポイント・イン・タイムにおいてとられる後のＰｉＴコピーに関して保持することができる。
【００２４】
１つの実施形態において、ＰｉＴコピーは、ポイント・イン・タイム２０４の後のある時間に完了するまたはフリーズすることができ、変更ＰｉＴデータ２０８は、ＰｉＴコピー２０２が完了する、例えばフリーズするまで、または新しいＰｉＴコピーが開始されるまで、ポイント・イン・タイム２０４から変更されたデータを含み、ＰｉＴコピー２０２が完了した後、例えばフリーズした後の変更データは含まない。ＰｉＴコピー２０２は、フリーズ・コマンド時に、またはポイント・イン・タイム２０４に対する後のポイント・イン・タイムにおいて後のＰｉＴコピーを開始したときに、完了することができる。完了したＰｉＴコピー２００は、ポイント・イン・タイム時点で一貫し得る。他の技術を用いて、ＰｉＴコピーを完了する、例えばフリーズすることもできる。
【００２５】
図３は、ストレージ・コントローラ１００からのＰｉＴコピー情報２００ｉのインスタンスから生成され、かつ、ストレージ・コントローラ１００においてＰｉＴコピー・マネージャ１１６により生成されるＰｉＴコピー３０２を識別するＰｉＴコピー識別子３０２と：ポイント・イン・タイム時点３０４でデータが一貫していることを意味し得る、ＰｉＴコピー３０２のポイント・イン・タイム３０４と：ポイント・イン・タイム２０４からおよびＰｉＴコピー３０２がオープンであった間、ソース・データ１０４内のどのデータまたはトラックが変更されたかを示し、ビットマップを含むことができる変更情報３０６と：ＰｉＴコピー３０２についての変更情報３０６内に示されたデータが位置する、変更データ１２０内のオフセットを示すリポジトリ・オフセット３０８とを含む、リポジトリ１１０内に保持されるＰｉＴコピー情報３００ｉのインスタンスの１つの実施形態を示す。ＰｉＴコピー３０２についての特定の変更データ・ユニットの変更データ１２０内の位置は、例えば、変更情報３０６内に示される変更ユニット数、すなわちｊ番目のデータ・ユニットに、リポジトリ・オフセット３０８を加え、それにデータ・ユニットの長さを掛けることによって、変更データ１２０のリポジトリ・オフセット３０８からのオフセットを求めることができる。このように、ＰｉＴコピー３０２からの変更データは、リポジトリ１１０の変更データ１２０内の最後に書き込まれたデータの後に連続的に書き込まれる。
【００２６】
図４は、ＰｉＴコピー・マネージャ１１６が生成したプロダクション・ボリュームのような、ソース・データ１０４についてのＰｉＴコピーから、異なるポイント・イン・タイムにおいてソース・データ１０４をリポジトリ１１０にコピーするために、リポジトリ・コピー・マネージャ１０８およびＰｉＴコピー・マネージャ１１６によって実行される動作の１つの実施形態を示す。ソース・データ１０４についてのリポジトリ・コピー動作を開始すると（ブロック４００において）、リポジトリ・コピー・マネージャ１０８は、ここではＴ０と呼ばれる初期ポイント・イン・タイムにおける初期ＰｉＴコピー２０００を生成するためのコマンドをＰｉＴコピー・マネージャ１１６に送る（ブロック４０２において）。リポジトリ・コピー・マネージャ１０８は、初期変更情報２０００を修正して、ソース・データ内のすべてのデータ・ユニットが変更されたことを示す修正された初期変更２０００’を生成することができる（ブロック４０４において）。リポジトリ・コピー・マネージャ１０８は、すべてのデータ・ユニットが変更されたことを示す修正された初期変更情報２０００’、およびすべてのソース・データを変更されたものとして示す、修正された初期変更情報２０００’内に示される初期ＰｉＴコピー（Ｔ０）についての変更ＰｉＴデータ２０８０を、リポジトリ１１０に送ることができる（ブロック４０６において）。初期のポイント・イン・タイムにおけるすべてのソース・データは、リポジトリ１１０内の変更データ１２０にコピーされる。ストレージ・コントローラ１００からのＰｉＴコピー２０００’は、初期ＰｉＴコピーＴ０からのデータの始まりがリポジトリ１１０内の変更データ１２０の初めに格納されるので、ゼロのリポジトリ・オフセット３０８で、ＰｉＴコピー情報３０００として格納される。
【００２７】
リポジトリ・コピー・マネージャ１０８は、後のポイント・イン・タイムＴｉ＋１において後のＰｉＴコピー（Ｔｉ＋１）を生成し、それによりＰｉＴコピー情報２００（ｉ＋１）をもたらすためのコマンドをＰｉＴコピー・マネージャ１１６に送ることができる（ブロック４０８において）。一実施形態において、リポジトリ・コピー・マネージャ１０８は、ＰｉＴコピーを生成し、前に生成されたＰｉＴコピーをフリーズするための個々のコマンドをＰｉＴコピー・マネージャ１１６に送ることができる。代替的な実施形態において、リポジトリ・コピー・マネージャ１０８は、１つのコマンドをＰｉＴコピー・マネージャ１１６に送って、ＰｉＴコピー・マネージャ１１６に、ソース・データ１０４のＰｉＴコピーを定期的に生成するよう命令することができ、そこで、後のＰｉＴコピーの生成は、前に生成されたＰｉＴコピーをフリーズさせる。さらに、ストレージ・コントローラ１００におけるＰｉＴコピー・マネージャ１１６は、リポジトリ・コピー・マネージャ１０８からの指示なしに、ＰｉＴコピーを独立して生成することができる。
【００２８】
Ｔｉにおける前のポイント・イン・タイムが完了したと決定すると（ブロック４１０において）、リポジトリ・コピー・マネージャ１０８は、変更情報２０６ｉおよび変更ＰｉＴデータ２０８ｉを含む、時間ＴｉにおけるＰｉＴコピーについてのＰｉＴコピー情報２００ｉを格納のためにリポジトリ１１０に送り（ブロック４１２において）、ＴｉについてのＰｉＴコピー情報３００ｉをリポジトリ内に格納する。一実施形態において、ポイント・イン・タイムＴｉにおけるＰｉＴコピーは、時間Ｔｉ＋１における後のＰｉＴコピーの生成時に完了することができる。代替的な実施形態においては、フリーズ・コマンドを発行してＰｉＴコピーをフリーズさせることによって、ＰｉＴコピーを完了することができ、その結果、変更情報２０６は、ソース・データ１０４への変更を示すのを停止する。リポジトリ・コピー・マネージャ１０８は、受け取ったＰｉＴコピー情報２００ｉから、リポジトリＰｉＴコピー情報３００ｉを生成する（ブロック４１４において）。
【００２９】
リポジトリ・コピー・マネージャ１０８は、前の時間から変更された、後の時間（Ｔｉ＋１）におけるソース・データ１０４をリポジトリ１１０内の変更データ１２０に伝送し、後の時間Ｔｉ＋１時点のフルコピーを現在のフルコピーにすることができる（ブロック４１６において）。この動作を行うために、リポジトリ・コピー・マネージャ１０８は、Ｔｉにおける前のＰｉＴコピーについての変更情報２０６から、変更されたソース・データ１０４内のデータ・ユニットを決定し、次に、それらのデータ・ユニットをソース・データ１０４から変更データ１２０にコピーすることができる。このように、後のポイント・イン・タイムＴｉ＋１において、後のＰｉＴコピー（Ｔｉ＋１）が生成されると、前のポイント・イン・タイムＴｉと後のポイント・イン・タイムＴｉ＋１との間で変更されたソース・データ１０４内のデータ・ユニットが、リポジトリ１１０内の変更データ１２０にコピーされる。
【００３０】
リポジトリ・コピー・マネージャ１０８は、リポジトリ・オフセット３０８において、ＴｉにおけるＰｉＴコピーについての変更データが変更データ１２０内で始まる、変更データ１２０内のデータ・ユニット・オフセットを指し示すことができる（ブロック４１８において）。（ブロック４２０において）さらに別のポイント・イン・タイム・コピーが生成される場合、リポジトリ・コピー・マネージャ１０８は、次のＰｉＴコピーを処理する次の反復の間、（Ｔｉ＋１）における現在の後のポイント・イン・タイム・コピーが、Ｔｉにおける前のポイント・イン・タイム・コピーになると考える（ブロック４２２において）。このように、現在の後のポイント・イン・タイムＴｉ＋１が前のポイント・イン・タイムになり、次のポイント・イン・タイムが新しい後のポイント・イン・タイムになると、ｉは有効にインクリメントされる。次に、制御はブロック４０８に戻り、新しい後のポイント・イン・タイムＴｉ＋１における新しい後のＰｉＴコピー（Ｔｉ＋１）を生成または処理する。（ブロック４２０において）処理するさらなるＰｉＴコピーがない場合、制御は終了する。
【００３１】
図４の説明される実施形態において、ＰｉＴコピーを生成するためのストレージ・コントローラ１００の動作と関係なく、異なるＰｉＴコピーについてのＰｉＴコピー情報を有するソース・データ１０４のフルコピーのリポジトリ１１０が生成される。このように、リポジトリ管理動作の論理または動作は、ＰｉＴコピーを生成するためのストレージ・コントローラ１００の論理とは独立している。
【００３２】
図５、図６、図７は、異なるポイント・イン・タイムにおけるすべてのソース・データを、変更データ１２０およびリポジトリＰｉＴコピー情報２００ｂにコピーするための、図４の動作の一例を示す。図５は、初期時間Ｔ０時点のすべてのソース・データ１０４を含むことができるリポジトリ１１０内の変更データ１２００にコピーされる、ソース・ストレージ１０２内のソース・データ１０４０の初期時間Ｔ０における状態を示す。さらに、ストレージ・コントローラ１００においてすべてのソース・データが変更されたことを示す変更情報２０６０’を有するＰｉＴコピー情報２０００が、初期時間Ｔ０において生成される。
【００３３】
図６は、Ｔ１における第２のＰｉＴコピー２００１が生成された時間Ｔ１を示し、これは、Ｔ０とＴ１との間に変更が行われる前に、ポイント・イン・タイムＴ０時点の変更データ２０８０を有する、Ｔ０における前のＰｉＴコピー２０００の完了またはフリーズをもたらし得る。リポジトリ・コピー・マネージャ１０８は、ユニット５２０および５２２として示される、Ｔ０とＴ１との間の変更データを、リポジトリ１１０内の変更データ１２０１にコピーし、初期書き込みデータに続くＴ１時点の変更データ５２０、５２２を有するように変更データ１２０１を更新する。さらに、初期ＰｉＴコピー２０００についてのソース・データは、変更データ１２０１に書き込まれる最初のデータであるため、Ｔ０における完了したまたはフリーズしたＰｉＴコピー情報２０００は、ゼロを示すオフセット３０８０を含むリポジトリＰｉＴコピー３０００として格納される。
【００３４】
図７は、Ｔ２における第３のＰｉＴコピー２００２が生成される時間Ｔ２を示し、これは、Ｔ１とＴ２との間に変更が行われる前に、ポイント・イン・タイムＴ１時点の変更データ２０８１を有する、Ｔ１におけるＰｉＴコピー２００１の完了またはフリーズをもたらし得る。リポジトリ・コピー・マネージャ１０８は、５２４および５２６として示される、Ｔ１とＴ２との間の変更データを、リポジトリ１１０にコピーし、Ｔ２時点のデータを有するように変更データ１２０２を更新する。さらに、Ｔ１における完了したまたはフリーズしたＰｉＴコピー情報２００１は、リポジトリ１１０にコピーされ、変更データ５２０および５２２が始まるリポジトリ１２０２内のデータ・ユニット・オフセットを示すリポジトリ・オフセット３０８１を含むリポジトリＰｉＴコピー３００１として格納される。
【００３５】
図８は、リポジトリ・ポイント・イン・タイム・コピー２００ｂの１つのポイント・イン・タイムを含むことができる、リストア時間（ＴＲ）時点のリポジトリ１１０からリストア・コピー１２４を生成するために、リポジトリ・コピー・マネージャ１０８により実行される動作の１つの実施形態を示す。リストア時間（ＴＲ）時点のソース・データのリストア・コピー１２４を生成するリストア要求を処理すると（ブロック６００において）、リポジトリ・コピー・マネージャ１０８は、リストアのための変更データ１２０からのデータがコピーされる空のリストア・コピー１２４またはリストア・ボリュームを構成する（ブロック６０２において）。リポジトリ・コピー・マネージャ１０８は、初期ＰｉＴコピー２０００の変更データ１２０からの変更データ・ユニット、初期ＰｉＴコピー２０００の部分としてコピーされるデータ、およびリストア時間におけるまたはリストア時間前のポイント・イン・タイム・コピーの各々を含む、リストア・コピー１２４にコピーすべきソース・データを決定する（ブロック６０４において）。複数のＰｉＴコピー３００が、ソース・データについての同じデータ・ユニットを提供する場合、リストア時間に最も近いＰｉＴコピーについてのデータ・ユニットが、決定されたコピーすべきソース・データ内に含まれる。次に、リポジトリ・コピー・マネージャ１０８は、決定されたソース・データをリストア・コピー１２４にコピーするための動作を開始する（ブロック６０６において）。リポジトリ・コピー・マネージャ１０８は、決定されたソース・データのコピーの完了に応答して、リストア・コピー１２４を利用可能にし、リストア時間（ＴＲ）時点のソース・データの完全なコピーを与える（ブロック６０８において）。
【００３６】
図９は、図８のブロック６０４で行われた動作のような、リストア・コピー１２４にコピーすべき、リポジトリ１１０内の変更データ１２０のソース・データを決定するための動作の１つの実施形態を示す。変更データ１２０からコピーすべきソース・データを決定するための動作を開始すると（ブロック７００において）、リポジトリ・コピー・マネージャ１０８は、すべてのソース・データをリストア・コピー１２４にコピーされなかったものとして示す、ビットマップのようなリストア・コピー情報１３０を初期化する（ブロック７０２において）。ＴｉをＴＲに設定する（ブロック７０４において）。リポジトリ・コピー・マネージャ１０８は、リストア・コピー情報１３０内に示される時間ＴｉにおけるＰｉＴコピー３００ｉについての変更データ・ユニット１２０を、まだコピーされていないものとして、例えばコピーされていないことを示すビット値を有するものとして決定する。
【００３７】
ステップ７０６における決定された変更データ・ユニットの各々について、リポジトリ・コピー・マネージャ１０８は、ＴｉにおけるＰｉＴコピーについてのリポジトリ・オフセット３０８から、データ・ユニットのリポジトリ内の位置（例えば、変更データ・ユニット数にリポジトリ・オフセットを加え、それにデータ・ユニット長を掛けたもの）を求める（ブロック７０８において）。一実施形態において、リポジトリ・オフセット３０８は、ＰｉＴコピーの第１の変更データについての情報を提供することができ、リポジトリ・コピー・マネージャ１０８は、変更データ・ユニット数、すなわちＰｉＴコピー変更情報３０６ｉ内に示されるｊ番目の変更データ・ユニットに、リポジトリ・オフセット３０８ｉを加え、その和にデータ・ユニット長を掛けたものに基づいて、特定のデータ・ユニットについてのオフセットを求める必要がある。代替的に、リポジトリ・オフセット３０８は、Ｔ０における初期ＰｉＴコピー後のＰｉＴコピーの各変更データ・ユニットについての変更データ１２０内のオフセット数を指し示すことができる。
【００３８】
例えば、１つの実施形態において、リポジトリ・オフセット３０８ｉが、ＴｉにおけるＰｉＴコピーについての変更データが変更データ１２０内で始まるオフセットを含む場合、求められた位置は、データ・ユニットがＴｉにおけるＰｉＴコピーについて書き込まれた順の数を含む変更データ・ユニット数に、ＴｉにおけるＰｉＴコピーについてのリポジトリ・オフセット３０８ｉを加え、この和をデータ・ユニット長で乗算したものを含むことができる。例えば、データ・ユニットが、変更データ１２０に書き込まれたＴｉにおけるＰｉＴコピーについての第３のデータ・ユニットであり、ＴｉにおけるＰｉＴコピーについての変更データが変更データ１２０内で始まる、データ・ユニット数のオフセットが１００であり、データ・ユニット長が１６バイトである場合、変更データ１２０内のデータ・ユニットについての位置は、３掛ける１００の和を１６で乗算したもの、例えば（３＋１００）×１６を含み、これは、変更データ１２０内の４８００番目のバイトに等しい。
【００３９】
ブロック７０８において、変更データ１２０内の位置が求められた、ＰｉＴコピー３００ｉからの決定された変更データ・ユニットは、求められた位置からリストア・コピー１２４にコピーされ（ブロック７１０において）、コピーされたデータ・ユニットは、リストア・コピー情報１３０内に、コピーされたものとして示される（ブロック７１２）。（ブロック７１４において）ＴｉがＴ０に等しい場合、リストア時間（ＴＲ）におけるまたはリストア時間（ＴＲ）前のすべてのＰｉＴコピー３００が検討され、制御は終了する。そうではなくＴｉがＴ０に等しくない場合には、（ブロック７１６において）ＴｉがＴｉ−１に設定され、ブロック７０６に戻り、最後に検討されたＰｉＴコピー３００ｉの直前の次のＰｉＴコピー３００ｉ−１を検討する。図９の動作において、変更データ・ユニットは、逆時間順にリストア時間に最も近いＰｉＴコピーからのＰｉＴコピーから決定される。このように、複数のＰｉＴコピーが同じソース・データ・ユニットについての変更データを提供する場合、コピーされる変更データは、リストア時間ＴＲに最も近いそのデータ・ユニットについての変更データを提供するＰｉＴコピーによってもたらされ、リストア・コピー１２４には、リストア時間ＴＲ時点のリポジトリ１１０から変更データ１２０が与えられる。
【００４０】
図９の実施形態において、変更データ・ユニットは、次のＰｉＴコピーを検討する前に検討されるＰｉＴコピーに対してコピーされる。代替的な実施形態においては、変更データをリストア・コピー１２４にコピーする前に、異なるＰｉＴコピーから、コピーすべきすべてのデータ・ユニットを決定することができる。
【００４１】
説明される実施形態は、初期時間からソース・データ１０４のＰｉＴコピー間で変更されたソース・データ・ユニットを含む、初期時間時点のすべてのソース・データ・ユニットを有するリポジトリを生成するための技術を提供する。リポジトリは、ソース・データ１０４から生成されたＰｉＴコピーのＰｉＴコピー情報をさらに保持する。説明された実施形態において、リストアコピー・ボリュームは、リポジトリ内のＰｉＴコピー情報を用いて、リポジトリ内の変更データからリストア時間時点で生成し、リストア時間におけるまたはリストア時間前のＰｉＴコピーについてのＰｉＴコピー情報を検討することにより、リストア時間時点の変更データを決定することができる。
【００４２】
本発明は、システム、方法、および／またはコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに、本発明の態様を実行させるための、コンピュータ可読プログラム命令をそこに有するコンピュータ可読ストレージ媒体を含むことができる。
【００４３】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより用いるための命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストとして、以下のもの：携帯型コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯型コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、および上記の任意の適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通して伝搬する電磁波（例えば、光ファイバケーブルを通る光パルス）、または配線を通して伝送される電気信号のような、一時的信号自体として解釈されるべきではない。
【００４４】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング／処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークおよび／または無線ネットワークなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ケーブル、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、および／またはエッジ・サーバを含むことができる。各々のコンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００４５】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語のような従来の手続き型プログラミング言語、または同様のプログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、または全体が遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、または外部コンピュータへの（例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて）接続がなされる場合もある。幾つかの実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することにより、コンピュータ可読プログラム命令を実行することができる。ＪａｖａおよびすべてのＪａｖａ関連の商標およびロゴは、Ｏｒａｃｌｅ社および／またはその関連会社の商標または登録商標である。
【００４６】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図および／またはブロック図を参照して説明される。フローチャート図および／またはブロック図の各ブロック、並びにフローチャート図および／またはブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００４７】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートおよび／またはブロック図の１つまたは複数のブロックにおいて指定された機能／動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、および／または他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、内部に命令が格納されたコンピュータ可読ストレージ媒体が、フローチャートおよび／またはブロック図の１つまたは複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製品を含むようにすることもできる。
【００４８】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、その結果、そのコンピュータまたは他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートおよび／またはブロック図の１つまたは複数のブロックにおいて指定された機能／動作を実施するようにすることもできる。
【００４９】
図面内のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能および動作を示す。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実行するための１つまたは複数の実行可能な命令を含む、モジュール、セグメントまたは命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることがある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、またはこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図および／またはフローチャート図の各ブロック、並びにブロック図および／またはフローチャート図内のブロックの組み合わせは、指定された機能または動作を実施する専用ハードウェアベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。
【００５０】
ストレージ・コントローラ１００およびホスト１０６を含む図１のコンピュータ・コンポーネントは、図１０に示されるコンピュータ・システム８０２のような１つまたは複数のコンピュータ・システム内に実装することができる。コンピュータ・システム／サーバ８０２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ８０２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよび遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【００５１】
図１０に示されるように、コンピュータ・システム／サーバ８０２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ８０２のコンポーネントは、これらに限定されるものではないが、１つまたは複数のプロセッサもしくは処理ユニット８０４、システム・メモリ８０６、およびシステム・メモリ８０６を含む種々のシステム・コンポーネントをプロセッサ８０４に結合するバス８０８を含むことができる。バス８０８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および種々のバス・アーキテクチャのいずれかを用いるプロセッサまたはローカル・バスを含む、幾つかのタイプのバス構造のいずれかの１つまたは複数を表す。限定ではなく例として、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００５２】
コンピュータ・システム／サーバ８０２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ８０２によりアクセス可能な任意の利用可能な媒体とすることができ、揮発性媒体および不揮発性媒体の両方と、取り外し可能媒体および取り外し不能媒体の両方とを含む。
【００５３】
システム・メモリ８０６は、ランダム・アクセス・メモリ（ＲＡＭ）８１０および／またはキャッシュ・メモリ８１２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ８０２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み出しおよび書き込みのために、ストレージ・システム８１３を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピィ・ディスク」）との間の読み出しおよび書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出しおよび書き込みのための光ディスク・ドライブとを設けることができる。こうした例においては、それぞれを、１つまたは複数のデータ媒体インターフェースによってバス８０８に接続することができる。以下でさらに示され説明されるように、メモリ８０８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００５４】
限定ではなく例として、メモリ８０６内に、プログラム・モジュール８１６の組（少なくとも１つ）を有するプログラム／ユーティリティ８１４、並びにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを格納することができる。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。コンピュータ８０２のコンポーネントは、一般に、本明細書で説明されるような本発明の実施形態の機能および／または方法を実行するプログラム。モジュール８１６として実装することができる。図１のシステムは、１つまたは複数のコンピュータ・システム８０２内に実装することができ、そこで、それらのシステムがマルチコンピュータ・システム８０２内に実装される場合、コンピュータ・システムは、ネットワーク上で通信することができる。
【００５５】
コンピュータ・システム／サーバ８０２は、キーボード、ポインティング・デバイス、ディスプレイ８２０等のような１つまたは複数の外部デバイス８１８；ユーザがコンピュータ・システム／サーバ８０２と対話することを可能にする１つまたは複数のデバイス；および／またはコンピュータ・システム／サーバ８０２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース８２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ８０２は、ネットワーク・アダプタ８２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、および／またはパブリック・ネットワーク（例えば、インターネット）などの１つまたは複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ８２４は、バス８０８を介して、コンピュータ・システム／サーバ８０２の他のコンポーネントと通信する。図示されないが、他のハードウェアおよび／またはソフトウェア・コンポーネントをコンピュータ・システム／サーバ８０２と共に使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等が含まれる。
【００５６】
「１つの実施形態」、「実施形態」、「複数の実施形態」、「その実施形態」、「それらの実施形態」、「１つまたは複数の実施形態」、「幾つかの実施形態」、および「一実施形態」という用語は、特に明示的に指定されていない限り、「本発明の（すべてではないが）１つまたは複数の実施形態」を意味する。
【００５７】
「含んでいる（including）」、「備えている（comprising）」、「有する（having）」およびそれらの変形の用語は、特に明示的に指定されていない限り、「含むがそれに限定されない」ことを意味する。
【００５８】
列挙された項目のリストは、特に明示的に指定されていない限り、項目のいずれかまたはすべてが相互に排他的であることを意味するものではない。
【００５９】
「１つの（a、an）」および「その（the）」という用語は、特に明示的に指定されていない限り、「１つまたは複数」を意味する。
【００６０】
互いに通信しているデバイスは、特に明示的に指定されていない限り、互いに継続的に通信している必要はない。さらに、互いに通信しているデバイスは、直接、または、１つまたは複数の媒介を介して間接的に通信することができる。
【００６１】
互いに通信している幾つかのコンポーネントを備える１つの実施形態の説明は、こうしたコンポーネントのすべてが必要であることを意味するものではない。これに対して、種々の随意的なコンポーネントは、本発明の種々の可能な実施形態を示すために記述されている。
【００６２】
本明細書において単一のデバイスまたは物品が説明される場合、単一のデバイス／物品の代わりに、１つより多いデバイス／物品が（それらが協働しているかどうかに関わらず）使用可能であることが容易に明らかであろう。同様に、本明細書において１つより多いデバイス／物品が（それらが協働しているかどうかに関わらず）説明される場合、１つより多いデバイスまたは物品の代わりに、単一のデバイス／物品が使用可能であること、または、示された数のデバイスまたはプログラムの代わりに、異なる数のデバイス／物品が使用可能であることが、容易に明らかであろう。デバイスの機能および／または特徴は、こうした機能／特徴を有するものとして明示的に説明されていない１つまたは複数の他のデバイスによって、代替的に具体化することができる。従って、本発明の他の実施形態は、デバイスそれ自体を含む必要はない。
【００６３】
本発明の様々な実施形態の前述の説明は、例示および説明の目的で示されたものである。本発明を網羅し、開示された精密な形に限定することは意図されていない。上記の教示に鑑みて、多くの修正および変更が可能である。本発明の範囲は、詳細な説明によってではなく、添付の特許請求の範囲によって限定されることが意図される。前述の仕様、例、およびデータは、本発明の構成の製造および使用についての完全な説明を提供する。本発明の多くの実施形態は、本発明の趣旨および範囲を逸脱することなく生成可能であるため、本発明は以下に添付の特許請求の範囲内にある。
【符号の説明】
【００６４】
１００：ストレージ・コントローラ
１０２：第１のストレージ
１０４：ソース・データ
１０６：ホスト
１０８：リポジトリ・コピー・マネージャ
１１０：リポジトリ
１１２：第２のストレージ
１１４：ネットワーク
１１６：ポイント・イン・タイム（ＰｉＴ）コピー・マネージャ
１１８：オペレーティング・システム
１２０：変更データ
１２４：リストア・コピー
１３０：リストア・コピー情報
２００、３００：ＰｉＴコピー情報
２０２、３０２：ＰｉＴコピー
２０４、３０４：ポイント・イン・タイム
２０６：変更情報
２０８：変更ＰｉＴデータ
３０８：オフセット
【図１】
2017509958.tif 000003
【図２】
2017509958.tif 000004
【図３】
2017509958.tif 000005
【図４】
2017509958.tif 000006
【図５】
2017509958.tif 000007
【図６】
2017509958.tif 000008
【図７】
2017509958.tif 000009
【図８】
2017509958.tif 000010
【図９】
2017509958.tif 000011
【図１０】
2017509958.tif 000012
【国際調査報告】
2017509958.tif 000013
2017509958.tif 000014