(57)【特許請求の範囲】
【請求項１】
ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステムであって、前記ポイント・イン・タイム・コピー・カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホストに提示される仮想ボリュームであるホスト部分を有し、前記システムは、
前記ソース・ボリュームの前記ホスト部分と前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの前記ホスト部分とをスワップするためのスワップ・コンポーネントと、
前記ソース・ボリュームのグレイン内の第１のデータ値を第２のデータ値で上書きするＩ／Ｏ要求に応答して、前記第２のデータ値を前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むため、及び
前記クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが前記第１のデータ値を含んでいないことに応答して、前記第１のデータ値を前記クローン・ポイント・イン・タイム・コピー・ボリュームの前記対応するグレインへとコピーするための、Ｉ／Ｏコンポーネントと
を含む、システム。
【請求項２】
前記スナップショット・ポイント・イン・タイム・コピー・ボリューム及び前記ソース・ボリュームは、第１のストレージ・プール内にあり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、第２のストレージ・プール内にある、請求項１に記載のシステム。
【請求項３】
前記ポイント・イン・タイム・コピー・カスケードにおいてボリュームの更なるポイント・イン・タイム・コピー・ボリュームを作成するためのコピー・コンポーネントをさらに含み、
前記更なるポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであることに応答して、前記スワップ・コンポーネントは、前記ボリュームの前記ホスト部分と前記更なるポイント・イン・タイム・コピー・ボリュームのホスト部分とをスワップするようにさらに動作可能である、
請求項１又は請求項２のいずれかに記載のシステム。
【請求項４】
前記更なるポイント・イン・タイム・コピー・ボリュームの作成に応答して、前記更なるポイント・イン・タイム・コピー・ボリュームを前記ポイント・イン・タイム・コピー・カスケードに追加するための、マップ・コンポーネントをさらに含む、請求項３に記載のシステム。
【請求項５】
ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するための方法であって、前記ポイント・イン・タイム・コピー・カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホストに提示される仮想ボリュームであるホスト部分を有し、前記方法は、
前記ソース・ボリュームの前記ホスト部分と前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの前記ホスト部分とをスワップすることと、
前記ソース・ボリュームのグレイン内の第１のデータ値を第２のデータ値で上書きするＩ／Ｏ要求に応答して、
前記第２のデータ値を前記スナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むことと、
前記クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが前記第１のデータ値を含んでいないことに応答して、前記第１のデータ値を前記クローン・ポイント・イン・タイム・コピー・ボリュームの前記対応するグレインへとコピーすることと、
を含む、方法。
【請求項６】
前記スナップショット・ポイント・イン・タイム・コピー・ボリューム及び前記ソース・ボリュームは、第１のストレージ・プール内にあり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、第２のストレージ・プール内にある、請求項５に記載の方法。
【請求項７】
前記ポイント・イン・タイム・コピー・カスケードにおいてボリュームの更なるポイント・イン・タイム・コピー・ボリュームを作成することと、
前記更なるポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであることに応答して、前記ボリュームの前記ホスト部分と前記更なるポイント・イン・タイム・コピー・ボリュームのホスト部分とをスワップすることと、
を含む、請求項５又は請求項６のいずれかに記載の方法。
【請求項８】
前記更なるポイント・イン・タイム・コピー・ボリュームの作成に応答して、前記更なるポイント・イン・タイム・コピー・ボリュームを前記ポイント・イン・タイム・コピー・カスケードに追加すること、
をさらに含む、請求項７に記載の方法。
【請求項９】
ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのコンピュータプログラムであって、前記ポイント・イン・タイム・コピー・カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームは、前記ソース・ボリュームのスナップショット・コピーであり、前記クローン・ポイント・イン・タイム・コピー・ボリュームは、前記スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホストに提示される仮想ボリュームであるホスト部分を有し、前記コンピュータプログラムは、
請求項５から請求項８までのいずれかに記載の方法を処理回路に実行させる、コンピュータプログラム。
【請求項１０】
コンピュータに請求項５から請求項８までのいずれかに記載の方法を実行させるためのコンピュータプログラムを格納する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ストレージ・システムに関し、より具体的にはポイント・イン・タイム・コピー機能を提供する高機能ストレージ・システムに関する。
【背景技術】
【０００２】
コンピュータ・ストレージ・システムの分野において、「高機能（ａｄｖａｎｃｅｄ  ｆｕｎｃｔｉｏｎｓ）」と説明されるようになってきたものに対する需要が高まっている。このような機能は、従来のストレージ制御システムの単純な入力／出力（Ｉ／Ｏ）機能を超えたものである。高機能は、当該分野で周知であり、システム内に格納されている実データ又は「ユーザ」データに関する状態データを保持するために使用されるメタデータの制御に依存する。高機能を使用する可用な操作は、実データをユーザアプリケーションによる使用のために可用な状態にしたままで、データの仮想イメージに様々なアクションを迅速に適用することを可能にする。このような周知の高機能の１つは、ポイント・イン・タイム・コピー（ｐｏｉｎｔ−ｉｎ−ｔｉｍｅ  ｃｏｐｙ）である。ポイント・イン・タイム・コピーの一例は、ＩＢＭ（登録商標）のＦｌａｓｈＣｏｐｙ（登録商標）である。ＩＢＭ及びＦｌａｓｈＣｏｐｙは、全世界の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【０００３】
ポイント・イン・タイム・コピーは、様々なストレージデバイス上でサポートされる特徴であり、全論理ボリューム又はデータセットのほぼ瞬時のポイント・イン・タイム・コピーを作成することを可能にする。ポイント・イン・タイム機能は、データの完全ボリューム・コピーを作成することを可能にする機能であり、そのコピーは読出し又は書込みアクセスに対して即時に可用である。コピーをコンピューティング環境内で可用な標準的なバックアップツールと共に使用して、テープ上にバックアップ・コピーを作成することができる。
【０００４】
「スナップショット」は、任意の所与の瞬間にストレージデバイスの状態を記録し、ストレージデバイスが万一故障した場合に復元するためのガイドとしてそのスナップショットを保存する能力を表す、一般的な業界用語である。スナップショットは、主としてデータのポイント・イン・タイム・コピーを作成する。典型的には、スナップショット・コピーは瞬時に行われ、データ保護、データ解析及び報告、並びにデータ複製アプリケーション等のその他のアプリケーションによる使用に対して可用になる。データのオリジナル・コピーは、中断せずにそれらアプリケーションに対して引き続き可用であり、その一方で、スナップショット・コピーは、データに対して他の機能を行うために使用される。スナップショットは、一次ディスクに依存するポイント・イン・タイム・コピーである。スナップショットは、例えばコピー・オン・ライト（ｃｏｐｙ−ｏｎ−ｗｒｉｔｅ）手順を用いて達成することができ、その場合、一次ディスク上の領域に現在存在しているデータは、一次ディスク上のその領域に書込みが行われているときにバックアップ・ディスクに書き込まれる。それゆえバックアップ・ディスクは、一次ディスクの完全なコピーではなく、一次ディスク上では既に上書きされたデータを収容することになる。このタイプのバックアップ・コピーは、典型的にはシン・プロビジョニング・ボリューム（ｔｈｉｎｌｙ  ｐｒｏｖｉｓｉｏｎｅｄ  ｖｏｌｕｍｅ）をもたらし、これはストレージを低減する。一連のスナップショット・コピーを共にカスケードして、様々な時刻における一次ディスクを表すことができる。しかしながら、スナップショット・コピーは、典型的には一次ディスクに依存したままで一次ディスクの完全コピーを再度組み立てる。したがって、スナップショットは、ターゲットがソースのポイント・イン・タイム・コピーを提示するのに必要な変更されたデータのみを保持する、ポイント・イン・タイム・コピーである。データは、ソース上でデータが変更された場合にのみターゲット・ディスクにコピーされる。ターゲット・ディスクは一般に、ポイント・イン・タイム・コピーを提示するために、ソース・ディスク上のデータの一部に常時依存する。
【０００５】
対照的に、「クローン」は、一次ディスクに依存しないポイント・イン・タイム・コピーである。クローンは、例えば、ディスクの領域を順次バックアップ・ディスクにコピーするバックグラウンド・コピー手順を実行すること、及び、書込みによりまさに上書きされようとしているが未だバックグラウンド・コピー手順によって処理されていない一次ディスク領域を即時にコピーする、コピー・オン・ライト手順を実行することによって作成することができる。クローンは、典型的には、コピーが必要とされ、かつ、そのコピーに対する入力／出力（Ｉ／Ｏ）が一次ボリュームに対するＩ／Ｏにいかなる影響も与えてはならない場合に使用される。クローンは、ソースに対する可用性によってコピーが影響を受けるべきでない場合にも使用することができる。クローンは、カスケード内で使用することもできる。
【０００６】
したがって、クローンは、ポイント・イン・タイム・コピーが開始されたときにソース・ディスク上にあったデータの完全なコピーをターゲット・ディスクが保持するＰＩＴコピーである。ソースからターゲットへのデータのコピーが完了すると、ターゲット・ディスクはソースに依存しない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第７，３８６，６９５号明細書
【特許文献２】米国特許第８，６８８，９３７号明細書
【特許文献３】米国特許第８，７９３，４５３号明細書
【特許文献４】米国特許第８，８６８，８６０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステム、方法及びコンピュータプログラム製品を提供することである。
【課題を解決するための手段】
【０００９】
第１の態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのシステムであって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記システムは、ソース・ボリュームのホスト部分とスナップショット・ボリュームのホスト部分とをスワップするためのスワップ・コンポーネントと、ソース・コンポーネントのグレイン内の第１のデータ値を第２のデータ値で上書きするＩ／Ｏ要求に応答して、第２のデータ値をスナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むため、及び、クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが第１のデータ値を含んでいないことに応答して、第１のデータ値をクローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインへとコピーするための、Ｉ／Ｏコンポーネントとを含む、システムを提供する。
【００１０】
更なる態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケード内のストレージ・ボリュームを管理するための方法であって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記方法は、ソース・ボリュームのホスト部分とスナップショット・ボリュームのホスト部分とをスワップすることと、ソース・コンポーネントのグレイン内の第１のデータ値を第２のデータ値で上書きするＩ／Ｏ要求に応答して、第２のデータ値をスナップショット・ポイント・イン・タイム・コピー・ボリュームの対応するグレインに書き込むことと、クローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインが第１のデータ値を含んでいないことに応答して、第１のデータ値をクローン・ポイント・イン・タイム・コピー・ボリュームの対応するグレインへとコピーすることと、を含む、方法を提供する
【００１１】
更なる態様から見ると、本発明は、ポイント・イン・タイム・コピー・カスケードにおいてストレージ・ボリュームを管理するためのコンピュータプログラム製品であって、カスケードは、ソース・ボリューム、スナップショット・ポイント・イン・タイム・コピー・ボリューム、及びクローン・ポイント・イン・タイム・コピー・ボリュームを含み、スナップショット・ポイント・イン・タイム・コピー・ボリュームは、ソース・ボリュームのスナップショット・コピーであり、クローン・ポイント・イン・タイム・コピー・ボリュームは、スナップショット・ポイント・イン・タイム・コピー・ボリュームのクローン・コピーであり、各ボリュームは、ホスト部分を有し、上記コンピュータプログラム製品は、本発明のステップを行うための方法を行うために処理回路が実行するための命令を格納する、処理回路によって可読のコンピュータ可読ストレージ媒体を含む、コンピュータプログラム製品を提供する。
【００１２】
更なる態様から見ると、本発明は、コンピュータ可読媒体上に格納された、デジタルコンピュータの内部メモリ内にロード可能なコンピュータプログラムであって、該プログラムがコンピュータ上で実行されるとき本発明のステップを行うための方法を行うためのソフトウェアコード部分を含む、コンピュータプログラムを提供する。
【００１３】
ここで本発明を以下の図面に示すような好ましい実施形態を参照して単に例示の目的で説明する。
【図面の簡単な説明】
【００１４】
【図１】従来技術による、本発明の好ましい実施形態を実装することができる、ストレージ・コントローラ及び２つのストレージ・ディスクを使用するバックアップ・プロセスを示す。
【図２】従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マップによってリンクされた、３つのストレージ・ボリュームのポイント・イン・タイム・コピー・カスケードの例を示す。
【図３】（ａ）〜（ｅ）は、従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マッピングを示す。
【図４】従来技術による、本発明の好ましい実施形態を実装することができる、例示的なマップのカスケードを示す。
【図５】（ａ）、（ｂ）、（ｃ）は、コピー・カスケードにデータを書込むのに使用される関係を示す。
【図６】ポイント・イン・タイム・コピー・カスケード内でソース・ボリュームＧに書き込むための方法を示す。
【図７】ソース・ディスクの初期データを示す。
【図８】それぞれのｖｄｉｓｋ及びｐｄｉｓｋが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。
【図９】それぞれのｖｄｉｓｋ及びｐｄｉｓｋが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。
【図１０】それぞれのｖｄｉｓｋ及びｐｄｉｓｋが描かれた、本発明の好ましい実施形態による方法において使用されるマッピングを示す。
【図１１】書込みシステムのコンポーネントを示す。
【図１２】従来技術による、本発明の好ましい実施形態を実装することができる、汎用コンピュータデバイスの形態のクラウド・コンピューティング・ノード内のコンピュータ・システム／サーバを示す。
【図１３】従来技術による、本発明の好ましい実施形態を実装することができる、例示的なクラウド・コンピューティング環境を示す。
【図１４】従来技術による、本発明の好ましい実施形態を実装することができる、図１３のクラウド・コンピューティング環境によって提供される機能的抽象層の組を示す。
【図１５】従来技術による、本発明の好ましい実施形態を実装することができる、本明細書で説明するコンピューティング動作を行うことが可能なコンピュータ・システムの単純化された例である、情報処理システムを示す。
【発明を実施するための形態】
【００１５】
ポイント・イン・タイム・コピーは、ターゲット・ディスクが後で更なるポイント・イン・タイム・コピーのためのソース・ディスクになり又はその逆も成り立つカスケード実装において使用することも可能である。ストレージ・ボリュームのカスケード構成は、引用によりその全体が本明細書に組み入れられる特許文献１に詳述されており、これはターゲットＩ／Ｏを犠牲にしてソース書込みを最適化するポイント・イン・タイム・コピー機能を実装するためのアルゴリズムを記載している。これは、更なる読出し及び書込みにするポイント・イン・タイム・コピーを維持するために必要とされる付加的なＩ／Ｏを制限する一方で、単一のソースから無限のポイント・イン・タイム・コピー・イメージを作成することを可能にするという利点を有する。
【００１６】
引用によりその全体が本明細書に組み入れられる特許文献１（Ｆｕｅｎｔｅ，  Ｃａｒｌｏｓ  Ｆ．「Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍ  ｗｉｔｈ  Ｍｕｌｔｉｐｌｅ  Ｃｏｐｙ  Ｔａｒｇｅｔｉｎｇ」、２００８年６月１０日）は、ホストコンピュータ装置及び複数の制御されたストレージ装置と協働可能なストレージ・コントローラを開示し、このストレージ・コントローラは、上記複数の制御されたストレージ装置の１つにおいてデータオブジェクトをソースデータ・イメージに書き込むように動作可能なホスト・ライト・コンポーネントと、第１のメタデータ状態に応答して、上記複数の制御されたストレージ装置の１つにおいて第１のターゲットデータ・イメージへのデータオブジェクトのコピーを制御するように動作可能な第１のコピー・コンポーネントと、第２のメタデータ状態に応答する第２のストレージ・コピー・コンポーネントとを含み、第２のストレージ・コピー・コンポーネントは、上記複数の制御されたストレージ装置の１つにおける第２のターゲットデータ・イメージへのデータオブジェクトのコピーを制御すること、及び、第１のコピー・コンポーネントに第１のターゲットデータ・イメージへの第２のターゲットデータ・イメージのコピーを実行させること、のうちの１つを行うように動作可能である。
【００１７】
引用によりその全体が本明細書に組み入れられる特許文献２（Ａｇｏｍｂａｒ，Ｊｏｈｎ  Ｐ．他、「Ｍｅｔｈｏｄ  ｆｏｒ  Ｏｐｔｉｍｉｚｉｎｇ  Ｃｌｅａｎｉｎｇ  ｏｆ  Ｍａｐｓ  ｉｎ  ＦｌａｓｈＣｏｐｙ  Ｃａｓｃａｄｅｓ  Ｃｏｎｔａｉｎｉｎｇ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｍａｐｓ」、２０１４年４月１日）は、ポイント・イン・タイム・コピー・カスケードにおけるマップのクリーニングを最適化する方法であって、マップのターゲット・ディスクが、下流ディスクが利用できない、カスケード内の上流ディスクからのデータを含むか否かを判定し、下流ディスクがそのデータのコピーを有するか否かを検出することを含む、方法を開示する。
【００１８】
引用によりその全体が本明細書に組み入れられる特許文献３（Ａｇｏｍｂａｒ，Ｊ．Ｐ．他、「Ｍｕｌｔｉｐｌｅ  Ｃａｓｃａｄｅｄ  Ｂａｃｋｕｐ  Ｐｒｏｃｅｓｓ」、２０１４年７月２９日）は、バックアップ・プロセスの処理を開示する。命令により、複数のバックアップ・プロセスのうちの１つを使用するソース・ボリュームからターゲット・ボリュームへの新たなバックアップが開始される。
【００１９】
引用によりその全体が本明細書に組み入れられる特許文献４（Ｂｅｅｋｅｎ，Ｃ．「Ｒｅｓｔｏｒｅ  ｉｎ  Ｃａｓｃａｄｅｄ  Ｃｏｐｙ  Ｅｎｖｉｒｏｎｍｅｎｔ」、２０１４年１０月２１日）は、多重バックアップ・プロセスの処理を開示し、これは、定められたストレージ・ボリュームがストレージ・ボリュームの第１のカスケード内に存在することを検出することと、定められたストレージ・ボリュームがストレージ・ボリュームの第２のカスケード内に存在することを検出することと、ストレージ・ボリュームの第１のカスケード内の最後のストレージ・ボリュームに対するデータ書込みを受け取ることと、ストレージ・ボリュームの第２のカスケード内の定められたストレージ・ボリューム上で、受け取ったデータ書込みに対応するクリーニング・データ書込みを行うことと、を含む。
【００２０】
ポイント・イン・タイム・コピー動作が開始されると、ソース・ボリュームとターゲット・ボリュームとの間にポイント・イン・タイム関係が生成される。それゆえ、ポイント・イン・タイム関係は、ポイント・イン・タイム・ソース・ボリュームとポイント・イン・タイム・ターゲット・ボリュームとの「マッピング」である。このマッピングは、ソース・ボリュームのポイント・イン・タイム・コピーが関連付けられたターゲット・ボリュームへとコピーされることを可能にする。ポイント・イン・タイム関係は、ポイント・イン・タイム動作が開始されたときから、ストレージユニットがすべてのデータをソース・ボリュームからターゲット・ボリュームへとコピーするまで又はポイント・イン・タイム関係が削除されるまで、このボリュームペア間に存在する。さらに、カスケード・ポイント・イン・タイム構成は、１つのマップのソース・ディスクが別のマップのターゲット・ディスクであるような構成である。例えば、ソース・ディスクＡとターゲット・ディスクＢとで定められた１つのマップと、ソース・ディスクＢとターゲット・ディスクＣとで定められた別のマップとが存在することができる。カスケードは、３つのディスクＡ、Ｂ及びＣと、２つのマップとを含むことになる。ひとたびコピーが作成されると、それらコピーは、読出し及び書込みアクセスの両方に対して即時に可用になる。
【００２１】
データが物理的にコピーされるとき、バックグラウンドプロセスは、ソース・ボリュームからトラック（又はグレイン（ｇｒａｉｎ））をターゲット・ボリュームへとコピーする。バックグラウンド・コピーを完了するのに要する時間量は、数ある因子の中でもとりわけ、例えば、コピーされるデータの量、ストレージ・システム上で行われているバックグラウンド・コピー・プロセス及び行われているその他のアクティビティの数に依存する。
【００２２】
あるポイント・イン・タイム動作がソース・ボリュームからターゲット・ボリュームにデータをコピーするとき、そのソース・ボリュームは、同時に１つより多くのポイント・イン・タイム関係に関与することができる（多重関係ポイント・イン・タイム（ｍｕｌｔｉｐｌｅ  ｒｅｌａｔｉｏｎｓｈｉｐ  ｐｏｉｎｔ−ｉｎ−ｔｉｍｅ）として知られる）。すなわち、多重関係ポイント・イン・タイム機能は、１つのソース・ボリュームが多数のターゲットを同時に有することを可能にする。あるボリューム上のトラックが既存のポイント・イン・タイム関係のターゲット・トラックでない場合、それは新たなポイント・イン・タイム関係におけるターゲットになることができる。
【００２３】
それゆえ、例えば、同じデータの複数のコピーが必要とされる場合、この多重関係ポイント・イン・タイム機能は、ポイント・イン・タイム・ボリュームが確立されるとすぐに単一のソース・ボリュームを異なるターゲット・ボリュームへと複数回コピーすることを可能にする。例えば、あるポイント・イン・タイムを用いてボリュームＡをボリュームＢにコピーすると仮定する。そのポイント・イン・タイム関係が確立されるとすぐに、ボリュームＡをボリュームＣにコピーすることができる。ひとたびその関係が確立されると、ボリュームＡをボリュームＤへとコピーすることができ、以下同様である。加えて、単一ボリューム内での多重セッションが可能である。
【００２４】
カスケードを用いて、単一のデータソースの多重ポイント・イン・タイム・コピーを実装することができる。例えば、データソースＰ及び時刻ｔ１、ｔ２及びｔ３で取得されたＰのポイント・イン・タイム・コピーでは、時刻ｔ１において、データ・ターゲットＴ１を用いてポイント・イン・タイム・コピーが取得され、その結果カスケードＰ→Ｔ１が得られる。次に時刻ｔ２において、データ・ターゲットＴ２を用いて第２のポイント・イン・タイム・コピーが取得され、その結果カスケードＰ→Ｔ２→Ｔ１が得られる。事実上、Ｔ１は、Ｔ２のコピーとして確立され、これはこの瞬間、Ｐと同一であり、Ｔ２はＰのコピーである。Ｔ２によって保持されるＰとのその差分を記述するビットマップは、Ｔ１とのその差分も正確に記述する。Ｐの更新は、ＰからＴ２へとコピーするコピー動作のみを必要とする。逆に、Ｔ２の更新は、ＰからＴ２へ及びＴ２からＴ１への２つのコピー動作を必要とする。なぜなら連鎖の中間部の更新は両側での関係のコピーを強制するからである。ｔ３において第３のバックアップＴ３を追加すると、カスケードＰ→Ｔ３→Ｔ２→Ｔ１が生成される。
【００２５】
この技術は、多くの利点を有する。しかしながらこれは、データ・ターゲット間に、従来の多重ターゲット実装においては存在し得ない依存性を導入することにもなる。このターゲット依存性の副作用は、ポイント・イン・タイム・コピーが停止された又は完了したときにターゲットを「クリーニング」することを必要とすることであり得る。例えば、ポイント・イン・タイム・コピーＰ→Ｔ２が停止されると、ターゲットＴ２をカスケードから除去することができるようになる前に、Ｔ１によって必要とされるＴ２上のあらゆるデータが典型的にはＴ２からＴ１へコピーされる。多くの状況においてこれは問題にはならないが、それは、ユーザはおそらくＴ１が時刻ｔ１におけるＰの完全コピーを保持することを所望しており、すなわちバックアップ・プロセスＰ→Ｔ１がクローンであることを意味するからである。しかしながら、Ｐ→Ｔ１の意図が単に時刻ｔ１におけるＰのスナップショットを生成することである場合、このＴ２からＴ１への余分なコピーは、ユーザの問題を引き起こすことがある。さらに、データ・ターゲットＴ１がシン・プロビジョニング（空間効率的（ｓｐａｃｅ  ｅｆｆｉｃｉｅｎｔ）としても知られる）であった場合、上記挙動によって生じる問題は、Ｔ１に対する不必要なストレージの割当てを引き起こすことがある。いくつかのアプリケーションにおいては、このことが、ユーザがスナップショット及びクローンを維持する能力及びそのバックアップを管理する能力を低下させることがある。
【００２６】
クリーニングにおいてＴ２からＴ１へのように１つのボリュームから別のボリュームへとコピーされるデータ量を削減することを試みるいくつかの既存の技術が存在し、その成功の程度は様々である。しかしながら、このようなソリューションの多くは、様々なデータ・ターゲットのコンテンツを追跡するために使用されるメタデータの量を劇的に増大させ得る。
【００２７】
多重ターゲット・ポイント・イン・タイム・コピーは、カスケード方法論を用いて実装された場合、コピー数の観点で多大なスケーラビリティを提供すると同時に、コピーのコピーを作成する能力もユーザに与える。しかしながら、カスケード方法論を用いて実装された多重ターゲット・ポイント・イン・タイムは、ポイント・イン・タイム・マップをカスケードから除去できるようになる前にこれを「クリーニング」する必要があるという望ましくない概念もまた導入することになる。クリーニング・プロセスは、除去されるマップのターゲット・ディスクに依存するディスクがカスケード内に存在しないことを保証する。クリーニング・プロセスは、完了するのにかなりの時間量がかかることがある。
【００２８】
加えて、ポイント・イン・タイムは、空間効率的ボリュームを利用することができる。ポイント・イン・タイム空間効率的（ＳＥ）特徴は、ターゲット・ボリューム上の空間をそれが実際にソース・ボリュームからトラック（又はグレイン）をターゲット・ボリュームへとコピーするときにのみ使用することによって、ストレージ空間を「必要に応じて（ａｓ−ｎｅｅｄｅｄ）」割当てる。空間効率的ボリュームを利用しなければ、ポイント・イン・タイム機能は、ターゲット・ボリューム上のすべての空間がそこにコピーされるデータがない場合であっても割当てられること及び可用であることを必要とする。しかしながら、空間効率的ボリュームを利用すると、ポイント・イン・タイムは、ポイント・イン・タイム関係の寿命中に変更されたデータを書込むのに必要とされる数のトラック（又はグレイン）のみを使用するので、空間の割当ては「必要に応じて」行われる。空間効率的ポイント・イン・タイム・ボリュームは、ソース・ボリュームと厳密に同じサイズのターゲット・ボリュームは必要としないので、ポイント・イン・タイムＳＥ特徴は、システムストレージのより有効な使用の可能性を高める。
【００２９】
空間効率属性は、ボリューム作成プロセス中にターゲット・ボリュームに対して定義することができる。空間効率的ボリュームは、既に作成された空間効率的ストレージを有する任意のエクステント・プールから作成することができる。空間効率的なソース・ボリューム及びターゲット・ボリュームが既に作成されており可用である限りにおいて、これらをポイント・イン・タイム関係が作成されるときに選択することができる。
【００３０】
それゆえ、上述のように、ポイント・イン・タイムＳＥ特徴は、システムストレージのより効果的な使用の可能性を高める。しかしながら、多重ターゲット・ポイント・イン・タイムを空間効率的ボリュームと組み合わせることは、クリーニング・プロセスに対して別の問題を付加することになる。すなわち、顧客が日毎のバックアップ・コピーを有しており、例えば毎日、顧客がこのバックアップの新たな空間効率的コピーを作成するような状況を考える。カスケード及び多重ターゲット・ポイント・イン・タイム及び空間効率的ボリュームは、このセットアップを可能にする。また、日毎のバックアップを完了するのにかかる時間を短縮するために、ポイント・イン・タイム・マップはインクリメンタルに作成されるものと考える。このシナリオにおけるクリーニング・プロセスに伴う問題は、クリーニング・プロセスが、日毎のバックアップからすべてのデータを最新の空間効率的コピーへとコピーすることを必要とすることである。しかしながら、日毎のコピーは完全コピーなので、これは空間効率的コピーの全体を割り当てることを必要とする。それゆえ、このシナリオでは、空間効率的ボリュームの利用は、カスケード・クリーニング方法論によって「分断」される。
【００３１】
従来技術のソリューションは、単一ボリュームの多数のポイント・イン・タイム・コピーをどのように実行するかを示すものであり、コストはこのようなコピーの数に依存しない。関連したポイント・イン・タイム・コピーの連鎖が許容される。このようなアルゴリズムは、標準的なコピー・オン・ライト・アルゴリズムを最適化するものであるが、それでもなお、ＲＯＷ実装では必要とされない付加的なＩ／Ｏを必要とする。このＩ／Ｏは、最新のポイント・イン・タイム・イメージを維持するために必要とされるスプリット書込みの形態で提供される。
【００３２】
複数のストレージ・プールにわたるポイント・イン・タイム・コピー・イメージを提供する従来技術のソリューションの柔軟性を提供するのみならず、ストレージがすべて１つのプール内にあるスナップショットに対するＲＯＷアルゴリズムの書込みＩ／Ｏ効率も提供するアルゴリズムを有することは有利であろう。
【００３３】
いくつかのストレージ・コントローラは、ユーザが所与のソースに対して１つより多くのターゲットを構成することを可能にする。これは多数の用途を有する。例えば、ターゲットの各々に対して異なる実験を実行することができる。あるいは、おそらくはウイルスによって生じ得る等のなんらかのデータ破損からの復旧を目的として、ターゲットを異なる時刻（例えば週の異なる曜日）に取得することができ、ディスクに対する履歴的アクセスを可能にする。
【００３４】
図１は、ストレージ・コントローラ８及び２つのストレージ・ディスク１０、１２を使用するバックアップ・プロセスを示す。ディスク１０及び１２は、より大きなディスクアレイの一部を形成することができ、企業のストレージ・ソリューションの一部を形成し得る。ディスク１０及び１２は、例えば商用ウェブサイトに関連したストレージ・ソリューションの一部であり得る。ｖｄｉｓｋ１のコンテンツのバックアップを作成する必要がある場合にはいつでも、ポイント・イン・タイム・コピー命令をストレージボリューム・コントローラ８からそのディスク１０に送ることができ、その命令は、ソース・ディスク１０（ｖｄｉｓｋ１）を定め、ポイント・イン・タイム・コピーのターゲットであるターゲット・ディスク１２（ｖｄｉｓｋ２）も定める。ポイント・イン・タイム・コピー命令は、ソース・ディスク１０である特定のｖｄｉｓｋのイメージのポイント・イン・タイム・コピーを作成する。
【００３５】
図１の実施形態において、第１のポイント・イン・タイム・コピー命令のソース・ディスク１０は、ｖｄｉｓｋ１  １０であり、ターゲット・ディスク１２は、ｖｄｉｓｋ２  １２である。ポイント・イン・タイム・コピー命令は、ポイント・イン・タイム・コピー・プロセスを開始し、それはソース・ディスク１０からターゲット・ディスク１２へのマップ１４を作成する。このマップは、図１においてマップ１と表示されている。この特定のポイント・イン・タイムにおけるｖｄｉｓｋ１のイメージは、今やｖｄｉｓｋ２上で可用である。これはｖｄｉｓｋ１上のデータのバックアップを作成するとともに、検査及びその他の管理タスクを、オリジナルデータが元のソース・ディスク上に保存されているのでオリジナルデータの損失という付随する危険を伴わずに、ｖｄｉｓｋ１のデータ上で実行することも可能にする。
【００３６】
ポイント・イン・タイム・コピーが作成されるとき、それはマップ１４で定められるように２つのディスク１０と１２との間にリンクを生成する。データは、今や付加的な要件を伴ってバックグラウンドで横断的にコピーすることができ、その付加的な要件は、ｖｄｉｓｋ２（ターゲット・ディスク１２としての）へのなんらかのアクセスは、即時にｖｄｉｓｋ１のイメージの該当部分の横断的なコピーを行わせることができ、また、ｖｄｉｓｋ１へのなんらかのアクセスであってそのディスク１０によって格納されたイメージに対する変更をもたらすことになるものもまた、その変更が行われる前に、未変更のデータのターゲット・ディスク１２への横断的なコピーを即時に行わせるということである。このようにすると、上記の状況下においてのみデータは物理的に横断的にコピーされ得るのであるが、ｖｄｉｓｋ２は、外部ユーザにとってはｖｄｉｓｋ１のポイント・イン・タイム・コピーを格納していることになる。
【００３７】
ポイント・イン・タイム・コピー機能等のバックアップ・プロセスのターゲット・ボリュームであるストレージ・ボリュームは、更なるバックアップ・プロセスのソース・ボリュームになることもでき、したがって、ストレージ・ボリュームのカスケードが生成される。
【００３８】
図２は、ポイント・イン・タイム・コピー・マップ１４によってリンクされた３つのストレージ・ボリューム１０、１２及び１６のポイント・イン・タイム・コピー・カスケードの例を示す。「上流」ボリュームは、現在のディスクＢ１２を基準として用いて一次ボリュームに近い方のボリュームであり、「下流」ボリュームは、現在のディスクＢ１２を基準として用いて一次ボリュームから遠い方のボリュームである。例えば、ディスクＡ１０は、ディスクＢ１２の上流であり、ディスクＣ１６は、ディスクＢ１２の下流である。各マップ１４は、ソース・ボリュームからターゲット・ボリュームへのバックアップ・プロセスを定める。ディスクＢは、ディスクＡ１０のバックアップを提供しており、ディスクＣ１６もまた、ディスクＢ１２を通してディスクＡ１０のバックアップを提供している。異なるストレージ・ボリュームをリンクするポイント・イン・タイム・コピー機能１４は、異なる時刻に開始されてもよく、それはそれぞれのストレージ・ボリュームによって格納されたイメージの異なるポイント・イン・タイム・コピーを作成し、又は、同時に開始されてもよい。
【００３９】
ポイント・イン・タイム・コピー・カスケードＡ→Ｂ→Ｃにおいて、図２に示すようにＡ１０、Ｂ１２及びＣ１６がカスケード内のディスクであり、矢印がポイント・イン・タイム・コピー・マップであるとき、［Ａ，Ｂ］はディスクＡ１０からディスクＢ１２へのポイント・イン・タイム・コピー・マッピングを表し、カスケードは、マップ［Ａ，Ｂ］及び［Ｂ，Ｃ］を有する。このカスケードの実装において、ディスクＡ１０に対するあらゆる新たなデータ書込みは、それぞれのポイント・イン・タイム・コピー機能に従って、ディスクＢ１２上のイメージを維持するのに必要とされるディスクＢ１２に対する「コピー・ライト」である書込みを生じさせる。このディスクＢ１２への書込みは、しばしば「クリーン・リード」と称されるディスクＢ１２の更なる読出しを生じさせ、次いでディスクＣ１６への別のコピー・ライトが生じる。このようにして、カスケード内の第１のストレージ・ボリューム１０への単一の書込みの結果として、カスケード全体にわたって複数のＩ／Ｏクリーニング動作が生じ得る。
【００４０】
カスケードが生成されるとき、新たなマップ及び新たなストレージ・ボリュームは、カスケードの端に追加されるのではなく、カスケード内へ挿入される。図２に示すカスケードにおいて、開始される第１のバックアップ・プロセスは、Ａ→Ｃである。次いでバックアップ・プロセスＡ→Ｂが開始されるとき、新たなターゲット・ストレージ・ボリュームＢ１２は、既存のソース・ストレージボリュームＡ１０と既存のターゲット・ストレージ・ボリュームＣ１６との間に効果的に「挿入」される。この「挿入」は、ターゲット・ディスクＣ１６がディスクＡ１０からではなくディスクＢ１２からデータ書込みを受け取ることを示す、純粋な論理構造である。これは、カスケード実装と、ディスクＡ１０からの２つの独立したマップを有することになる従来の配置との違いである。
【００４１】
ストレージ・コントローラ８は、クローンとスナップショットとが異なる依存性連鎖又はカスケードに分離されるようディスク及びマップが配置されるべく動作することができる。より詳細に後述するように、クローンとスナップショットとを異なるカスケードに分離することの１つの特徴は、コピー動作の停止によって生じるクリーニング動作を低減し又は排除することである。
【００４２】
図３（ａ）〜図３（ｅ）は、従来技術による、本発明の好ましい実施形態を実装することができる、ポイント・イン・タイム・コピー・マッピングを示す。例えば、本説明の文脈内で、図３（ａ）のマップ１はクローンとして開始され、後のマップ２はスナップショットとして開始される。結果として得られる、ターゲットイメージを維持するために用いられるソース・ボリュームＰ、クローン・ボリュームＣ１、及びスナップショット・ボリュームＳ１についてのグラフ構造は、図３（ａ）に示すようになる。この構造は、依存関係グラフ（ｄｅｐｅｎｄｅｎｃｙ  ｇｒａｐｈ）である。
【００４３】
図３（ａ）に示すグラフにおいて、ディスクＰへのデータ書込みは、それぞれのバックアップ・プロセスのターゲット・ディスク上のそれらのイメージを維持するために、Ｃ１及び／又はＳ１へのコピー・オン・ライトを必要とし得る。ストレージボリューム・コントローラ８がマップ３をスナップショットとして開始すると、得られる依存関係グラフは図３（ｂ）に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクＰに隣接して配置することができるので、マップ３の新たなターゲット・ディスクＳ２は、カスケードＰ→Ｓ２→Ｓ１内に配置され、ここでマップ３及びマップ２の２つのマップは両方ともスナップショットである。分離したカスケードＰ→Ｃ１において、マップ１はクローンである。
【００４４】
これに続くＰのスナップショット又はクローンのいずれかとしてのバックアップ・プロセスは、クローン及び／又はスナップショット連鎖の長さをＰから出るエッジの数を増大させずに延長するので、Ｐへの書込みに関連付けられたクリーニング動作Ｉ／Ｏの数を増大させない。図３（ｂ）のグラフは、更なるスナップショット及びクローンを含めるように延長することができる。カスケードタイプの分離を維持するために、特定のバックアップ・プロセス・タイプ（クローン又はスナップショット）のためのカスケードが存在している場合には、ターゲット・ストレージ・ボリュームは上記識別されたバックアップ・プロセス・タイプのための既存のカスケードに追加され、又は、上記識別されたバックアップ・プロセス・タイプのためのカスケードが存在していない場合には、ターゲット・ストレージ・ボリューム及びソース・ストレージボリュームからなる新たなカスケードが開始される。このようにすると、特定のソース・ディスクから取得されたクローン及びスナップショットは、その特定のソース・ディスクからの同じカスケード内には出現しない。
【００４５】
図３（ｃ）は、更なるバックアップＣ２が取得された後のストレージ・ボリュームの論理配置を示す。ストレージボリューム・コントローラ８がマップ４をクローンとして開始すると、得られる依存関係グラフは図３（ｃ）に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクＰに対して隣接して配置されるので、マップ４の新たなターゲット・ディスクＣ２は、カスケードＰ→Ｃ２→Ｃ１内に配置され、ここでマップ４及びマップ１の２つのマップは両方ともクローンである。分離したカスケードＰ→Ｓ２→Ｓ１において、マップ３及びマップ２の２つのマップは両方ともスナップショットである。
【００４６】
図３（ｄ）は、更なるクローンバックアップＣ３及びスナップショットバックアップＳ３が取得された後のストレージ・ボリュームの論理配置を示す。ストレージボリューム・コントローラ８は、クローンとしてマップ６、及びスナップショットとしてマップ７を開始し、その結果得られる依存関係グラフは図３（ｄ）に示す通りである。カスケードにおいて、新たなディスク及びそのディスクに対するマップは、ソース・ディスクＰに対して隣接して配置されるので、マップ６の新たなターゲット・ディスクＣ３は、カスケードＰ→Ｃ３→Ｃ２→Ｃ１（図３（ｄ））内に配置され、ここでマップ６、マップ４及びマップ１の３つのマップは各々クローンである。マップ７の新たなターゲット・ディスクＳ３は、カスケードＰ→Ｓ３→Ｓ２→Ｓ１（図３（ｄ））内に配置され、ここでマップ７、マップ３及びマップ２の３つのマップは各々スナップショットである。
【００４７】
異なるタイプが取得される順序は、Ｓ１、Ｓ２、Ｓ３、Ｃ１、Ｃ２、Ｃ３の任意の順列とすることができ、但し、スナップショットが他のスナップショットに対して正しい順序にあり、かつ、クローンが他のクローンに対して正しい順序にあることを条件とする。例えば、開始順序はＳ１、Ｃ１、Ｓ２、Ｓ３、Ｃ２、Ｃ３とすることができる。これらのカスケードは、図３（ｄ）に示すように根ノードＰを持つツリーと考えることができる。
【００４８】
多重ターゲット・ポイント・イン・タイム・コピーによるそれぞれのポイント・イン・タイム・コピー機能に従って、依存関係グラフ内のディスクに対する書込みは、ディスク上の他のイメージを維持するために、読出し、スプリット書込み及びクライアント書込みを生じさせることになる。例えば、上記依存関係グラフにおけるＰに対するクライアント（又はホスト）書込みは、１）書き込まれている位置がＰ上にあるためデータがＳ３又はＣ３によって必要とされる場合には、読出し、すなわちＰの読出し、２）スプリット書込み、すなわちａ）Ｓ３がＰに依存する場合にはＰから読み出したデータのＳ３への書込み、及びｂ）Ｃ３がＰに依存する場合にはＰから読み出したデータのＣ３への書込み（これは第２のアクションと並行して行うことができる）、並びに３）クライアント書込み、すなわちＰへのクライアント書込み自体、を生じさせることができる。Ｐへの各書込みに対するこれらのクリーニング動作の結果として、ボリュームＳ３及びＣ３は各々、これらのバックアップが開始されてから変更されたいずれのグレインにも依存しない。
【００４９】
クローン及びスナップショットを異なるカスケードに分離することの１つの特徴は、不要バックアップの終了を促進して、停止自体に関連付けられたクリーニングを低減し又は排除することである。例えば、図３（ｄ）の依存関係グラフにおいてマップ４が停止されると、ストレージボリューム・コントローラ８は、Ｃ３からＣ１までのデータを「クリーニング」する。これは必ずしも付加的なクリーニング動作であると考える必要はなく、なぜならＣ１もまたクローンであり、データはその上にコピーされることが意図されているからである。スナップショットＳ３、Ｓ２、Ｓ１は影響を受けない。
【００５０】
逆に、スナップショットが停止されたとき、ターゲット・スナップショット・ディスクのすべてのスナップショット及びクローンは、クローン・カスケードから分離されているので、停止に起因する付加的なクリーニングを伴わずに容易に停止することができる。さらに、クローンが停止されたとき、ターゲット・クローン・ディスクのすべてのスナップショットもまた停止することができる。スナップショットは典型的にはそのソースに依存しているので、この手法を取ることができる。従って、スナップショットのクローン・ソースが破壊された場合、依存したスナップショットは、おそらくほとんど又は全く役に立たなくなる。このようにして、クローンとスナップショットとを異なるカスケードに分離することによって、付加的なクリーニング動作を低減し又は排除することができる。
【００５１】
ここで例えばディスクＰが破損していることが発見され、管理者がディスクＰを既存の例えばディスクＳ１等のディスクから復元することを所望する場合、マップ８、すなわちＳ１→Ｐが作成されて開始され、これはカスケードＳ１→Ｐをもたらす（図３（ｅ））。復元動作のための分離したカスケードを使用すると、３つの分離したカスケードが生じることになる。例えば、ＰをＳ１から復元すると、Ｐ→Ｓ３→Ｓ２→Ｓ１及びＰ→Ｃ３→Ｃ２→Ｃ１（図３（ｄ））並びにＳ１→Ｐ（図３（ｅ））が生じる。ディスクＰの復元を、図４、図５（ａ）、図５（ｂ）、図５（ｃ）、図５（ｄ）を参照して後述する。
【００５２】
システムはまた、あるディスクが同じカスケード内又は分離したカスケード内に複数回存在することも可能にする。一例として、Ｓ３、Ｓ２及びＳ１がＰのスナップショットとして作成される。Ｓ１はユーザのオリジナルデータを収容し、他方Ｓ３及びＳ２は更なるスナップショットを収容し、それらに対する２つの異なるシミュレーションが実行された。ユーザは、Ｓ２に対するシミュレーションの結果が有益であると決定することができ、Ｓ２からＰを復元することを決定する。システムは、Ｓ１内にオリジナルデータの未変更のバックアップを未だ維持している一方で、ユーザが新たなマップＳ２→Ｐを開始することを可能にする。
【００５３】
しかしながら、あるディスクがカスケード内に出現する回数が多いほど、ホスト起源のＩ／Ｏを完全にホストに戻すことができる前に、ポイント・イン・タイム・コピー・レベルにおいてより多くのＩ／Ｏ動作（クリーニングＩ／Ｏ）が必要とされ得る。あるいは、マップを逆転するために、管理者は、単に反対方向のマップ１４を作成して開始することができる。
【００５４】
図４は、従来技術による、本発明の好ましい実施形態を実装することができる、例示的なマップのカスケードを示す。より詳細には、図４は、２つのディスク４０５及び４１０の表示を示す。図４に示すように、ディスクの上部分は、それぞれのディスクから例えばホストに提示されるデータを示す。ホストに提示されるときのディスクは「ｖｄｉｓｋ」と称される。ｖｄｉｓｋは、ストレージ仮想化において使用される用語であり、ホストコンピュータ又はホストコンピュータ・アプリケーションがＩ／Ｏ動作を行う、仮想論理ディスク又はボリュームを示す。図４はまた、それぞれのディスク上に実際に収容されたデータを示すディスクの表示の下部分を示す。これらのディスクの下部分は、「ｐｄｉｓｋ」と称される。ｐｄｉｓｋは、物理ストレージに直接接続されるオブジェクトである。当業者は、ｐｄｉｓｋそれ自体が、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ）アレイ上に位置する仮想ボリュームであり得ることを理解するであろう。当業者はまた、ストレージ・コントローラ８が仮想レベルでコピーを管理すること、しかし論理ディスクに対する読出し及び書込みが物理ディスクに対するそれぞれ読出し及び書込みをもたらすことを認識するであろう。それゆえ、ディスク１  ４０５は、４つのグレイン（又はトラック）のデータＡ、Ｂ、Ｃ、Ｄをユーザに提示し、実際にディスク１  ４０５上に格納されたこれらグレインＡ、Ｂ、Ｃ、Ｄを有する。対照的に、ディスク２  ４１０は、４つのグレインのデータＡ、Ｆ、Ｃ、Ｄをユーザに提示する。しかしながら、ディスク２  ４１０の下部分に示すように、ディスク２  ４１０は、実際にはその上に格納されたグレイン２及び４（それぞれＦ及びＤ）のみを有し、ディスク１  ４０５上に格納されたデータに依拠してホストにグレインＡ及びＣを提示する。第４のグレイン（Ｄ）は、同じデータがディスク１  ４０５上で可用であるけれども、例えばディスク１  ４０５上でデータＤが以前に再書き込みされたことに起因して、ディスク２  ４１０に格納されている。
【００５５】
図４において付加的に示されているように、マップ２  ４２０は、ディスク１  ４０５とディスク２  ４１０との間のインクリメンタル・マップである。すなわち、マップ２  ４２０は、スプリット・ビットマップ（スプリット）４２２及び差分ビットマップ（差分）４２４を含む。本発明の実施形態によれば、スプリット・ビットマップ４２２は、ポイント・イン・タイム・プロセスにおいてデータの位置を追跡するために使用される。より詳細には、スプリット・ビットマップ４２２における「０」は、データがソース・ディスク上に位置していることを示し、スプリット・ビットマップ４２２における「１」は、データがターゲット・ディスク上に位置していることを示す。さらに、差分ビットマップ４２４は、ポイント・イン・タイム・コピー・プロセスにおいてソース・ディスクとターゲット・ディスク、例えば仮想ディスクとの間の差分を追跡するために使用される。より詳細には、差分ビットマップ４２４における「０」は、ソース・ディスク上に位置するデータとターゲット・ディスク上に位置するデータとの間に差分がないことを示し、差分ビットマップ４２４における「１」は、ソース・ディスク上に位置するデータとターゲット・ディスク上に位置するデータとの間に差分があることを示す。
【００５６】
それゆえ、図４の例を参照すると、マップ２  ４２０のスプリット・ビットマップ４２２は、グレインＡ及びＣがソース・ディスク（ディスク１  ４０５）上に位置し、グレインＦ及びＤがターゲット・ディスク（ディスク２  ４１０）上に位置することを示す。さらに、マップ２  ４２０の差分ビットマップ４２４は、ソースディスク（ディスク１  ４０５）とターゲットディスク（ディスク２  ４１０）との間で第１、第３及び第４のグレインに差分がないことを示す。すなわち、第１、第３及び第４グレインは、ソース・ディスクとターゲット・ディスクとの間で同じままであり、すなわちそれぞれＡ、Ｃ及びＤである。しかしながら、マップ２  ４２０の差分ビットマップ４２４は、ソースディスク（ディスク１  ４０５）とターゲットディスク（ディスク２  ４１０）との間で第２のグレインに差分があることを示す。すなわち、図４に示すように、第２のグレインは、ディスク１  ４０５上のＢからディスク２  ４１０上のＦに変更されている。それゆえ、ポインタ４２５は、ターゲット・ディスク４１０が、ディスク２  ４１０の物理的コンテンツではなくスプリット・ビットマップ４２２のコンテンツに基づいてソース・ディスク４０５を参照することを示す。有利には、従来技術によれば、ビットマップ４２２、４２４の使用は、ストレージ・コントローラ８が、コピーが追加されたとき又はシステムから削除されたときのデータコンテンツの管理を含めて、ストレージ・ディスク・ボリュームの仮想コピー及び物理コピーに対するアクセスを管理することを可能にする。コピーが連鎖から削除されたとき、データ更新を表すコンテンツを、ビットマップ４２２、４２４のコンテンツに基づいて、残りの連鎖内の別のコピー上に「クリーニング」することができる。
【００５７】
図５（ａ）、図５（ｂ）、図５（ｃ）は、コピー・カスケードにデータを書込むのに使用される関係を示す。
【００５８】
ポイント・イン・タイム・ソリューションを実装するのに使用される２つの重要なアルゴリズムがあり、これらはリダイレクト・オン・ライト（ＲＯＷ）及びコピー・オン・ライト（ＣＯＷ）である。これらの両アルゴリズムの詳細は、多くのオープンに利用可能なソースから見いだすことができる。
【００５９】
図５（ａ）は、初期状態のコピー・カスケードを示す。ソース・ディスクＧ５０５のホストビュー（ｖｄｉｓｋ）は、データＡ、Ｂ、Ｃ、Ｄを伴う４つのグレインを有する。データは、物理ディスクＧｐ５２０上に物理的に格納されている。ｖｄｉｓｋグレインは、物理ディスクＧｐ５２０内のそれぞれのグレインにリンク５５０、５５２を通して関連している。ソース・ディスクＧ５０５は、クローン又はスナップショット・ポイント・イン・タイム・コピー５１０を有する。初期には、クローン又はスナップショット・ポイント・イン・タイム・コピー５１０は、物理ディスクＳ１ｐ／Ｃ１ｐ５２５内に分離した物理データを有していないが、代わりにデータアクセスのための物理ストレージ位置Ｇｐ５２０を指示する。例えば、Ｓ１／Ｃ１  ５１０の第１のグレインは、リンク５５４を通してＧｐ５２０の第１のグレインを指示する。
【００６０】
図５（ｂ）は、クローン・ポイント・イン・タイム・コピーＣ１  ５１１を有するソース・ディスクＧ５０５によるコピー・カスケードであって、データがなんらかのバックグラウンド・コピー・プロセスを通じてＣ１  ５１１へとコピーされる前のものを示す。図５（ｂ）は、ＣＯＷアルゴリズムを使用してデータ「Ｅ」がＧ５０５の第１のグレインに書き込まれた後のコピー・カスケードを示す。Ｇ５０５の第１のグレインへの書込みＩ／Ｏ動作を受けると、リンク５５４は、新たなリンク５５５で物理ディスクＣ１ｐ５２７の第１のグレインを指示するようにリダイレクトされる。以前Ｇｐ５２０の第１のグレインにあったデータ「Ａ」は、物理ディスクＣ１ｐ５２７の第１のグレインへと書き込まれる（５２８）。
データ「Ｅ」は、Ｇｐ５２０の第１のグレインへと書き込まれる（５２９）。典型的には、Ｇｐ５２０は、第１のストレージ・プール５４０内にあり、Ｃ１ｐ５２７は、第２のストレージ・プール５４５内にある。あるいは、Ｇｐ５２０及びＣ１ｐ５２７は、同じストレージ・プール５４０、５４５内にある。Ｇ５０５についてホストに提示されるデータは（Ｅ、Ｂ、Ｃ、Ｄ）であり、Ｃ１  ５１１についてホストに提示されるデータは、（Ａ、Ｂ、Ｃ、Ｄ）である。Ｇｐ５２０は、Ｇ５０５についてのライブ・データを収容する。クローン・データは、Ｃ１ｐ５２７が第２のストレージ・プール５４５内にある場合であっても容易に追跡することができるので、ＣＯＷアルゴリズムは、クローン・ポイント・イン・タイム・コピーの場合に有利である。あるいは、物理ストレージＣ１ｐ５２７は、第２のストレージ・プール５４５へと容易に移動させることができる。データの位置を追跡するために、ＣＯＷアルゴリズムは、典型的には等価のＲＯＷ実装よりも少ないメタデータを使用する。
【００６１】
図５（ｃ）は、スナップショット・ポイント・イン・タイム・コピーＳ１  ５１３を有するソース・ディスクＧ５０５によるコピー・カスケードを示す。図５（ｃ）は、ＲＯＷアルゴリズムを使用してデータ「Ｅ」がＧ５０５の第１のグレインへと書き込まれた後のコピー・カスケードを示す。Ｇ５０５の第１のグレインへの書込みＩ／Ｏ動作を受けると、リンク５５２は、新たなリンク５５３で物理ディスクＳ１ｐ５３７の第１のグレインを指示するようにリダイレクトされる。データ「Ｅ」は、Ｓ１ｐ５３７の第１のグレインへと書き込まれる（５３８）。典型的には、Ｇｐ５２０及びＳ１ｐ５３７は、同じストレージ・プール５４７内にある。Ｇ５０５についてホストに提示されるデータは（Ｅ、Ｂ、Ｃ、Ｄ）であり、Ｓ１  ５１３についてホストに提示されるデータは（Ａ、Ｂ、Ｃ、Ｄ）である。Ｇ５０５についてのライブ・データは、Ｇｐ５２０及びＳ１ｐ５３７内に収容される。最初に既存データをポイント・イン・タイム・コピーへとコピーする必要はなく、１回の書込みのみが必要とされるので、ＲＯＷアルゴリズムは、スナップショット・ポイント・イン・タイム・コピーの場合に有利である。データの追跡は、ＲＯＷ構成の方が困難であるが、単一のストレージ・プール内で管理可能である。
【００６２】
ＲＯＷ及びＣＯＷは両方とも、得られる製品の実装者及び最終的にはユーザにとって有利点及び不利点を有する。ＲＯＷは、新たな書込みデータを、その書込みデータを適用する前に既存データを移動させることなく新たな領域に書き込むので、書込みＩ／Ｏオーバーヘッドに関してより効率的であり得る。復帰（ｒｅｖｅｒｔ）／復元（ｒｅｓｔｏｒｅ）等の多くの先進的な特徴がＲＯＷ環境においてより簡単であることもまたこれに当てはまる。ＣＯＷに比べたＲＯＷの不利点は、すべてのイメージについてのデータが通常は単一のストレージ・プールからのものでなければならないことである。このことは、ＲＯＷがポイント・イン・タイム・コピーのスナップショット・バージョンに対して最適であることが多いことを意味する。他方、クローン及びバックアップの場合、ポイント・イン・タイム・コピーが分離したストレージ・プール内にあることを必要とすることが多いので、ＣＯＷがより適したアルゴリズムになる。
【００６３】
ＲＯＷアルゴリズムは、二重書込みというＣＯＷの不利益を有さない。オリジナルボリュームに対する新たな書込みは、スナップショットのために保留された別の位置にリダイレクトされる。書込みをリダイレクトする利点は、書込みが１回しか行われないことであり、他方、コピー・オン・ライトでは、２回の書込みが行われる（１回はストレージ・スペースへのオリジナルデータのコピーであり、もう１回は変更されたデータのコピーである）。ＲＯＷでは、オリジナル・コピーは、ポイント・イン・タイム・データ、すなわちスナップショットを収容し、変更されたデータは、スナップショット・ストレージ上に存在する。スナップショットが削除されたとき、スナップショット・ストレージからのデータをオリジナルボリュームへと戻してリコンシリエーションしなければならない。さらに、多数のスナップショットが作成されるにつれて、オリジナルデータへのアクセス、スナップショット及びオリジナルボリューム内のデータの追跡、並びにスナップショットが削除されたときのリコンシリエーションがさらに複雑になる。スナップショットは、データのオリジナル・コピーに依拠し、オリジナルデータセットは、急速にフラグメント化することになり得る。
【００６４】
実際には、クローン・ポイント・イン・タイム・コピーに対してＣＯＷを使用し、スナップショット・ポイント・イン・タイム・コピーに対してＲＯＷを使用する混合構成を有することは、それ自体の複雑さを導入するので、典型的には両方のタイプのポイント・イン・タイム・コピーに対してＣＯＷの１つのアルゴリズムを使用する。一方について複雑さが上乗せされることを他方に対する複雑さが減ることによって均衡を取る。
【００６５】
有利には、本発明は、ＲＯＷアルゴリズムとＣＯＷアルゴリズムとを組み合わせて、スナップショットを作成するときに使用するための新たなアルゴリズムにする方式を導入する。この新たなアルゴリズムは、１つのストレージ・プール内で動作するときにはＲＯＷの書込みＩ／Ｏの利点を有する一方で、必要なときには複数のストレージ層を使用することを可能にするＣＯＷアルゴリズムを使用する。
【００６６】
図６は、図７、図８、図９、図１０及び図１１との関連で解釈すべきであり、ポイント・イン・タイム・コピー・カスケードにおいてソース・ボリュームＧへ書き込むための方法を示す。図７は、ソース・ディスクＧの初期データを示す。図８、図９、図１０は、本発明の好ましい実施形態による方法において使用されるマッピングを示し、それぞれのｖｄｉｓｋ及びｐｄｉｓｋが描かれている。図１１は、書込みシステム９００のコンポーネントを示し、これは好ましい実施形態においてストレージ・コントローラ８のコンポーネントである。代替的な実施形態において、復旧システム９００は、ストレージ・コントローラ８とは別に設けられる。
【００６７】
有利には、本発明は、データを格納するために使用される物理デバイスからデータのホストビューを分離することによって機能する。すなわち、ボリュームは、ホスト・システムに提示されるｖｄｉｓｋと、データを保持するのに使用される実際のストレージであるｐｄｉｓｋとで構成される。
【００６８】
図７は、ソース・ディスクＧ  ７０５の初期データを示す。Ｇ７５５としてホストに提示されるデータは、データ［Ａ，Ｂ］を含む。物理ディスクＧｐ７５７上に格納されるデータもまたデータ［Ａ，Ｂ］を含む。物理ソース・ディスクＧｐ７５７は、データの２つのグレインを有し、第１のグレイン内のデータ「Ａ」は、「Ｇｐ−０」で示され、第２のグレイン内のデータ「Ｂ」は「Ｇｐ−１」で示される。当業者は、ディスク自体は、例えばＲＡＩＤアレイ内に含まれる、論理ディスクであり得ることを理解するであろう。
【００６９】
方法は、ステップ６０１で開始する。ステップ６０５において、コピー・コンポーネント９０５は、ソース・ボリューム７０５をコピーしてスナップショット・ポイント・イン・タイム・コピー７６５を作成する。スナップショット・ポイント・イン・タイム・コピー７６５は、ホストビュー（ｖｄｉｓｋ）Ｓ１  ７５９及び物理ディスクＳ１ｐ７６１を含む。ステップ６１０において、マップ・コンポーネント９１０は、ボリュームをコピー・カスケードにマッピングして、マップ８−１  ８０５を提供する。
【００７０】
ステップ６１５において、スワップ・コンポーネント９０６は、ポイント・イン・タイム・コピー・ボリューム７６５がスナップショット・ポイント・イン・タイム・コピー・ボリューム７６５であるか否かを判断する。マップ８−２  ８１０に示すように、ポイント・イン・タイム・コピー・ボリューム７６５がスナップショット・ポイント・イン・タイム・コピー・ボリューム７６５であるので、ステップ６２０において、スワップ・コンポーネント９０６は、２つのｖｄｉｓｋビューであるヘッドＧ７５５及びＳ１  ７５９をスワップする（８９０）。マップ・コンポーネント９１０は、スワップ８９０をマッピングして、マップ８−３ａ  ８１５を提供する。マップ８−３ａ  ８１５は、マップ８−３ｂ  ８２０でより詳細に描かれている。Ｓ１ｐ７６１のコンテンツは、Ｓ１ｐ７６１のコンテンツへの書込みが未だ行われていないので、Ｇｐ７５７と同じストレージ位置にリンクする。Ｇ７５５についてホストに提示されるデータは［Ａ，Ｂ］であり、Ｓ１  ７５９についてホストに提示されるデータは、［Ａ，Ｂ］である。この状況において、Ｉ／Ｏについてのホストビューは変更されず、Ｓ１  ７６５は、Ｇ７０５のポイント・イン・タイム・コピー・ボリューム・イメージである。Ｇ７０５に対する書込みＩ／Ｏは、このＩ／Ｏのための新たな空間を割り当てることになるので、したがって標準的なＲＯＷアルゴリズムのＩ／Ｏ性能に適合する。Ｇ７０５及びＳ１  ７６５が両方とも同じストレージ・プールからプロビジョニングされるので、ボリュームの本質的な特性は、ユーザの管理の観点から変更されない。
【００７１】
ステップ６２５において、Ｉ／Ｏコンポーネント９１５は、データ「Ｃ」をＧ７５５の第１のグレインに書き込む書込み要求を受け取る。マップ・コンポーネント９１０は、書込みをマッピングしてマップ８−４  ８２５を作成する。ヘッドＧ７５５及びＳ１  ７５９は既にスワップされているので、Ｇ７０５への書込みはＳ１ｐ−０へ向けられる。ステップ６３０において、Ｉ／Ｏコンポーネントは、ＣＯＷアルゴリズムを使用して、別のグレイン位置に最初に書き込む必要があるか否かを判断する。マップ８−４  ８２５の構成において下流コピー・ボリュームは存在せず、したがってステップ６４０においてデータ「Ｃ」はＳ１ｐ−０に書き込まれる。方法はステップ６９９において終了する。
【００７２】
有利なことに、書込みの時点で使用されるＣＯＷアルゴリズムを変更することなく、スナップショット・ポイント・イン・タイム・コピーの場合にＲＯＷ挙動が達成された。
【００７３】
代替的な実施形態において、スナップショット・ポイント・イン・タイム・コピー７６５は既に存在する。ステップ６０５において、コピー・コンポーネント９０５は、スナップショット・ポイント・イン・タイム・コピー・ボリューム７６５をコピーして、クローン・ポイント・イン・タイム・コピー７７０を作成する。クローン・ポイント・イン・タイム・コピー７７０は、ホストビュー（ｖｄｉｓｋ）Ｃ１  ７７２及び物理ディスクＣ１ｐ  ７７４を含む。ステップ６１０において、マップ・コンポーネント９１０は、ボリュームをコピー・カスケードにマッピングして、マップ８−５ａ  ８３４を提供する。ステップ６１５において、スワップ・コンポーネント９０６は、ポイント・イン・タイム・コピー・ボリューム・ボリューム７７０がスナップショット・ポイント・イン・タイム・コピー・ボリューム・ボリューム７７０であるか否かを判断する。しかしながらポイント・イン・タイム・コピー・ボリューム７７０はスナップショット・ポイント・イン・タイム・コピー７７０ではないので、ステップ６１５において「ＮＯ」出口を経由し、換言すればステップ６２０を経由しない。Ｓ１ｐ７６１のコンテンツにもＣ１ｐ７７４にも未だ書込みが行われていないので、Ｃ１ｐ７７４のコンテンツは、Ｓ１ｐ７６１と同じストレージ位置にリンクし、そのＳ１ｐ７６１はＧｐ７５７と同じストレージ位置にリンクする。Ｇ７５５についてホストに提示されるデータは［Ａ，Ｂ］であり、Ｓ１  ７５９についてホストに提示されるデータは、［Ａ，Ｂ］であり、Ｃ１  ７７２についてホストに提示されるデータもまた［Ａ，Ｂ］である。
【００７４】
ステップ６２５において、Ｉ／Ｏコンポーネント９１５は、データ「Ｃ」をＧ７５５の第１のグレインへと書き込む書込み要求を受け取る。マップ・コンポーネント９１０は、書込みをマッピングして、マップ８−５ｂ  ８３６を作成する。ヘッドＧ７５５及びＳ１  ７５９は既にスワップされているので、Ｇ７０５への書込みはＳ１ｐ−０へ向けられる。ステップ６３０において、Ｉ／Ｏコンポーネントは、ＣＯＷアルゴリズムを使用して、別のグレイン位置に最初に書き込む必要があるか否かを判断する。マップ８−５ｂ  ８３６の構成において下流コピー・ボリュームが存在し、したがって出口ＹＥＳを経由してステップ６３５に至る。ステップ６３５において、データ「Ａ」がＧｐ−０からＣ１ｐ−０へコピーされる（８３８）。次いでステップ６４０において、データ「Ｃ」がＳ１ｐ−０に書き込まれる（８３９）。方法はステップ６９９において終了する。有利なことに、書込みの時点で使用されるＣＯＷアルゴリズムを変更することなく、クローン・ポイント・イン・タイム・コピーの場合にＣＯＷ挙動が達成された。
【００７５】
さらに別の代替的な実施形態において、スナップショット・ポイント・イン・タイム・コピー７６５は既に存在する。ステップ６０５において、コピー・コンポーネント９０５は、Ｇ／Ｓ１ｐポイント・イン・タイム・コピー・ボリューム７６５をコピーして、スナップショット・ポイント・イン・タイム・コピーを作成する。新たなスナップショット・ポイント・イン・タイム・コピーは、ホストビュー（ｖｄｉｓｋ）Ｓ２  ７７３及び物理ディスクＳ２ｐ  ７７７を含む。ステップ６１５において、スワップ・コンポーネント９０６は、新たなポイント・イン・タイム・コピー・ボリュームがスナップショット・ポイント・イン・タイム・コピー・ボリュームであるか否かを判断する。新たなポイント・イン・タイム・コピー・ボリュームはスナップショット・ポイント・イン・タイム・コピー・ボリュームであるので、ステップ６１５において「ＹＥＳ」出口を経由する。ステップ６２０において、スワップ・コンポーネント９０６は、２つのｖｄｉｓｋビューであるヘッドＧ７５５及びＳ２  ７７３をスワップする。マップ・コンポーネント９１０は、スワップをマッピングして、マップ８−６  ８４１を提供する。Ｓ２ｐ７７７のコンテンツは、Ｓ１ｐ７６１又はＳ２ｐ７７７のいずれのコンテンツへの書込みも未だ行われていないので、Ｇｐ７５７と同じストレージ位置にリンクする。Ｇ７５５についてホストに提示されるデータは［Ａ，Ｂ］であり、Ｓ１  ７５９についてホストに提示されるデータは、［Ａ，Ｂ］であり、Ｓ２  ７７３についてホストに提示されるデータは［Ａ，Ｂ］である。この状況において、Ｉ／Ｏについてのホストビューは変更されず、Ｓ２は、Ｇ７０５のポイント・イン・タイム・コピー・ボリューム・イメージである。Ｇ７０５に対する書込みＩ／Ｏは、このＩ／Ｏのための新たな空間を割り当てることになるので、したがって標準的なＲＯＷアルゴリズムのＩ／Ｏ性能に適合する。Ｇ７０５、Ｓ１  ７６５、及びＳ２が両方とも同じストレージ・プールからプロビジョニングされるので、ボリュームの本質的な特性は、ユーザの管理の観点から変更されない。Ｉ／Ｏ処理は、ステップ６２５、６３０、６４０を用いて続けることができる。方法はステップ６９９において終了する。
【００７６】
更なるスナップショット・ポイント・イン・タイム・コピーを作成することができ、プロダクション・ボリュームＧ７０５は常にＩ／ＯをＲＯＷ方式で処理することが当業者には明らかである。
【００７７】
有利には、ｖｄｉｓｋ部分は、ホストＩ／Ｏ及びポイント・イン・タイム・コピー処理を扱うのに対して、ｐｄｉｓｋ部分は、データを格納する。有利には、本発明の好ましい実施形態によれば、ホストによって提示されポイント・イン・タイム・コピー・アルゴリズムによって管理される論理イメージと、データを保持するために使用される物理ストレージとの間にスプリットが導入される。各ストレージ・ボリュームは、「ｖｄｉｓｋ」部分及び「ｐｄｉｓｋ」部分を含む。ｖｄｉｓｋ部分は「ホスト」部分と考えられる。ｖｄｉｓｋ部分は、ホストＩ／Ｏ及びポイント・イン・タイム処理を扱い、ｐｄｉｓｋはデータを格納する。有利には、システムは、ユーザの要求時に常にロールフォワード復旧動作を行うことができ、放棄された復旧をバックグラウンドで整理することができる。
【００７８】
本発明の態様は、本発明の実施形態による方法、装置（システム）、及びコンピュータプログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図のブロックの組合せは、コンピュータプログラム命令によって実装することができることが理解されるであろう。
【００７９】
これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。
【００８０】
代替的な実施形態において、本発明は、クラウド・コンピューティング環境内で実現することができる。この開示はクラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で述べられる教示の実装はクラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、現在知られている又は後で開発されることになる他の任意の型式のコンピューティング環境と共に実装することが可能である。
【００８１】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で、迅速にプロビジョニング及びリリースすることができる、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス）の共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、及び少なくとも４つの配備モデルを含むことができる。
【００８２】
特性は以下の通りである。
オンデマンドのセルフサービス：クラウド・コンシューマは、サーバ時間及びネットワーク・ストレージ等のコンピューティング能力を、人間とサービスのプロバイダとの対話を要することなく、必要に応じて自動的に、一方向にプロビジョニングすることができる。
広範なネットワーク・アクセス：能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、及びＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマに供されるようにプールされ、異なる物理リソース及び仮想リソースが要求に応じて動的に割当て及び再割当てされる。コンシューマは、一般に提供されるリソースの正確な位置についての制御又は知識を有さないという点で位置の独立(location independence)の意味があるが、より高次の抽象レベル（例えば、国、州、又はデータセンタ）において位置を指定することができる場合がある。
迅速な弾力性：能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングされてすばやくスケールアウトし、迅速に解放されてすばやくスケールインすることができる。コンシューマにとっては、プロビジョニングに利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。
計測されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント）に適した何らかの抽象レベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、及び報告して、利用するサービスのプロバイダとコンシューマの両方に対して透明性を提供することができる。
【００８３】
サービス・モデルは以下の通りである。
Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）：コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ等のシン・クライアント・インタフェースを通じて、種々のクライアント・デバイスからアクセス可能である（例えば、ウェブ・ベースの電子メール）。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は、更には個々のアプリケーション能力をも含む基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）：コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成されたコンシューマ作成又は取得のアプリケーションを、クラウド・インフラストラクチャ上に配備することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び、場合によってはアプリケーション・ホスティング環境構成に対する制御を有する。
Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）：コンシューマに提供される能力は、コンシューマがオペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備して実行させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び、場合によってはネットワーキング・コンポーネント（例えば、ホストのファイアウォール）選択に対する限定的な制御を有する。
【００８４】
配備モデルは以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、一組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項（例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項）を共有する特定のコミュニティをサポートする。これは、それらの組織又は第三者により管理することができ、オンプレミス又はオフプレミスで存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティのままではあるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術（例えば、クラウド間の負荷平衡のためのクラウド・バースティング）によって互いに結び付けられた、２つ以上のクラウド（プライベート、コミュニティ、又はパブリック）の組合せである。
【００８５】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性(statelessness)、疎結合性(low coupling)、モジュール性(modularity)、及び意味的相互運用性(semanticinteroperability)に焦点を合わせている。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【００８６】
ここで図１２を参照すると、クラウド・コンピューティング・ノードの一例の模式図が示されている。クラウド・コンピューティング・ノード１０００は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される実施形態の使用又は機能の範囲に関してなんらかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード１０００は、上述された機能のいずれかを実装及び／又は実施することができる。
【００８７】
クラウド・コンピューティング・ノード１０００内には、コンピュータ・システム／サーバ１０１２が存在し、これは多数のその他の汎用又は専用コンピューティング・システム環境又は構成と共に動作可能である。コンピュータ・システム／サーバ１０１２と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び／又は構成の例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
【００８８】
コンピュータ・システム／サーバ１０１２は、コンピュータ・システムによって実行される、プログラムモジュール等のコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１０１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実行することができる。分散型クラウド・コンピューティング環境においては、プログラムモジュールは、メモリ・ストレージ・デバイスを含むローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【００８９】
図１２に示されるように、クラウド・コンピューティング・ノード１０００内のコンピュータ・システム／サーバ１０１２は、従来技術による、本発明の好ましい実施形態を実装することができる、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１０１２のコンポーネントは、１つ又は複数のプロセッサ又は処理ユニット１０１６、システム・メモリ１０２８、及びシステム・メモリ１０２８を含む種々のシステム・コンポーネントをプロセッサ１０１６に結合するバス１０１８を含むことができるが、これらに限定されない。バス１０１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００９０】
コンピュータ・システム／サーバ１０１２は、典型的には種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１０１２によってアクセス可能なあらゆる利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体両方、並びに取外し可能媒体及び取外し不能媒体の両方を含む。
【００９１】
システム・メモリ１０２８は、ランダム・アクセス・メモリ（ＲＡＭ）１０３０及び／又はキャッシュ・メモリ１０３２等の揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１０１２は、その他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読出し及び書込みのために、ストレージ・システム１０３４を設けることができる。図示されていないが、取外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読出し及び書込みのための磁気ディスク・ドライブ、並びに、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はその他の光媒体等の取外し可能な不揮発性光ディスクとの間の読出し及び書込みのための光ディスク・ドライブを設けることができる。このような例においては、各々は、１つ又は複数のデータ媒体インタフェースによってバス１０１８に接続することができる。以下でさらに示され、説明されるように、メモリ１０２８は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００９２】
プログラムモジュール１０４２の組（少なくとも１つ）を有するプログラム／ユーティリティ１０４０を、限定ではなく例として、オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラムモジュール、及びプログラムデータと共にメモリ１０２８内に格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラムモジュール、及びプログラムデータ、又はそれらの幾つかの組合せの各々は、ネットワーキング環境の実装を含むことができる。プログラムモジュール１０４２は、一般に、本明細書において説明される本発明の実施形態の機能及び／又は方法を実行する。
【００９３】
コンピュータ・システム／サーバ１０１２は、キーボード、ポインティング・デバイス、ディスプレイ１０２４、ディスク・ドライブ等の１つ又は複数の外部デバイス１０１４、ユーザがコンピュータ・システム／サーバ１０１２と対話することを可能にする１つ又は複数のデバイス、及び／又は、コンピュータ・システム／サーバ１０１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワークカード、モデムなど）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース１０２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１０１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）等の１つ又は複数のネットワークと、ネットワーク・アダプタ１０２０を介して通信することができる。図示されるように、ネットワーク・アダプタ１０２０は、バス１０１８を介してコンピュータ・システム／サーバ１０１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ１０１２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用することができることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
【００９４】
図１３は、従来技術による、本発明の好ましい実施形態を実装することができる、例示的なクラウド・コンピューティング環境１１５０を示す。図示されるように、クラウド・コンピューティング環境１１５０は、クラウド・コンシューマによって用いられる例えば携帯情報端末（ＰＤＡ）又は携帯電話１１５４Ａ、デスクトップ・コンピュータ１１５４Ｂ、ラップトップ・コンピュータ１１５４Ｃ、及び／又は自動車コンピュータ・システム１１５４Ｎ等のローカル・コンピューティング・デバイスが通信することができる１つ又は複数のクラウド・コンピューティング・ノード１１１０を含む。ノード１１１０は、互いに通信することができる。これらを物理的又は仮想的にグループ化（図示せず）して、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド若しくはハイブリッド・クラウド又はこれらの組合せ等の１つ又は複数のネットワークにすることができる。これによりクラウド・コンピューティング環境１１５０は、インフラストラクチャ、プラットフォーム及び／又はソフトウェアを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することができるようになる。図１３に示されるコンピューティング・デバイス１１５４Ａ−Ｎのタイプは単なる例示として意図されており、コンピューティング・ノード１１１０及びクラウド・コンピューティング環境１１５０は、あらゆるタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続（例えば、ウェブ・ブラウザを用いて）を介して、あらゆるタイプのコンピュータ化された装置と通信することができることが理解される。
【００９５】
図１４は、従来技術による、本発明の好ましい実施形態を実装することができる、図１３のクラウド・コンピューティング環境１１５０によって提供される機能抽象化層の組を示す。図１４に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【００９６】
ハードウェア及びソフトウェア層１２１は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、ＩＢＭ（登録商標）ｚＳｅｒｉｅｓ（登録商標）システムを一例とするメインフレーム１２０２、ＩＢＭ  ｐＳｅｒｉｅｓ（登録商標）システムを一例とするＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ１２０４、ＩＢＭ  ｘＳｅｒｉｅｓ（登録商標）システム１２０６、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）システム１２０８、ストレージデバイス１２１０、ネットワーク及びネットワーキング・コンポーネント１２１２を含む。ソフトウェア・コンポーネントの例は、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェア１２１４、及びＩＢＭ  ＤＢ２（登録商標）データベース・ソフトウェアを一例とするデータベース・ソフトウェア１２１６を含む。ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ｉ２、Ａｎａｌｙｓｔｓ  Ｎｏｔｅｂｏｏｋ、Ｔｉｖｏｌｉ、Ｎｅｔｃｏｏｌ、ＷｅｂＳｐｈｅｒｅ及びＤＢ２は、世界中の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【００９７】
仮想化層１２３は、仮想エンティティティの以下の例、すなわち、仮想サーバ１２２２、仮想ストレージ１２２４、仮想プライベート・ネットワークを含む仮想ネットワーク１２２６、仮想アプリケーション及びオペレーティング・システム１２２８、並びに仮想クライアント１２３０を提供することができる抽象層を提供する。
【００９８】
一例において、管理層１２５は、以下で説明される機能を提供することができる。リソース・プロビジョニング１２４２は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定１２４４は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータル１２４６は、コンシューマ及びシステム管理者に対してクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理１２４８は、必要なサービスレベルが満たされるようにクラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント（ＳＬＡ）計画及び履行１２５０は、ＳＬＡに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【００９９】
ワークロード層１２７は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーション１２６２、ソフトウェア開発及びライフサイクル管理１２６４、仮想教室教育配信１２６６、データ解析処理１２６８、トランザクション処理１２７０、並びに本発明の好ましい実施形態の復旧システム９００処理１２７２を含む。あるいは、復旧システム９００処理１２５２は、管理層１２５において実行することができる。
【０１００】
図１５は、従来技術による、本発明の好ましい実施形態を実装することができる、本明細書において説明されるコンピューティング動作を実行することができるコンピュータ・システムの簡略化された例である、情報処理システム１３００を示す。情報処理システム１３００は、プロセッサ・インターフェース・バス１３１２に結合した１つ又は複数のプロセッサ１３１０を含む。プロセッサ・インターフェース・バス１３１２は、メモリ・コントローラ・ハブ（ＭＣＨ）としても知られるノースブリッジ（Ｎｏｒｔｈｂｒｉｄｇｅ）１３１５にプロセッサ１３１０を接続する。ノースブリッジ１３１５は、システム・メモリ１３２０に接続し、プロセッサ１３１０がシステム・メモリにアクセスするための手段を与える。グラフィックス・コントローラ１３２５もまたノースブリッジ１３１５に接続している。１つの実施形態において、ＰＣＩ  Ｅｘｐｒｅｓｓバス１３１８がノースブリッジ１３１５をグラフィックス・コントローラ１３２５に接続する。グラフィックス・コントローラ１３２５は、コンピュータ・モニタ等の表示デバイス１３３０に接続する。ノースブリッジ１３１５及びサウスブリッジ（Ｓｏｕｔｈｂｒｉｄｇｅ）１３３５は、バス１３１９を用いて互いに接続する。１つの実施形態において、このバスは、ノースブリッジ１３１５とサウスブリッジ１３３５との間で両方向に高速でデータを転送するＤｉｒｅｃｔ  Ｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ（ＤＭＩ）バスである。別の実施形態においては、周辺装置相互接続（ＰＣＩ）バスがノースブリッジとサウスブリッジとを接続する。Ｉ／Ｏコントローラ・ハブ（ＩＣＨ）としても知られるサウスブリッジ１３３５は、一般にノースブリッジが与える能力よりも低い速度で動作する能力を実装するチップである。サウスブリッジ１３３５は、典型的には種々のコンポーネントを接続するために用いられるバスを提供する。これらのバスは、例えば、ＰＣＩ及びＰＣＩ  Ｅｘｐｒｅｓｓバス、ＩＳＡバス、システム管理バス（ＳＭＢｕｓ又はＳＭＢ）、及び／又はＬｏｗ  Ｐｉｎ  Ｃｏｕｎｔ（ＬＰＣ）バス１３９２を含む。ＬＰＣバスは、ブートＲＯＭ１３９６及び「レガシー」Ｉ／Ｏデバイス（「スーパーＩ／Ｏ」チップを用いる）等の低帯域幅のデバイスを接続することが多い。「レガシー」Ｉ／Ｏデバイス（１３９８）は、例えば、シリアル及びパラレル・ポート、キーボード、マウス、及び／又はフロッピィ・ディスク・コントローラを含むことができる。ＬＰＣバスはまた、サウスブリッジ１３３５をＴｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（ＴＰＭ）１３９５にも接続する。サウスブリッジ１３３５に含まれることが多いその他のコンポーネントには、ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラ、プログラム可能割り込みコントローラ（ＰＩＣ）、及び、バス１３８４を用いてサウスブリッジ１３３５をハード・ディスク・ドライブ等の不揮発性ストレージデバイス１３８５と接続するストレージ・デバイス・コントローラが含まれる。
【０１０１】
ＥｘｐｒｅｓｓＣａｒｄ１３５５は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ＥｘｐｒｅｓｓＣａｒｄ１３５５は、ユニバーサル・シリアル・バス（ＵＳＢ）とＰＣＩ  Ｅｘｐｒｅｓバスの両方を用いてサウスブリッジ１３３５に接続しているのでＰＣＩ  ＥｘｐｒｅｓｓとＵＳＢの両方の接続をサポートする。サウスブリッジ１３３５は、ＵＳＢに接続するデバイスにＵＳＢ接続を提供するＵＳＢコントローラ１３４０を含む。これらのデバイスには、ウェブカム（カメラ）１３５０、赤外線（ＩＲ）レシーバ１３４８、キーボード及びトラックパッド１３４４、並びにワイヤレス・パーソナル・エリア・ネットワーク（ＰＡＮ）を提供するＢｌｕｅｔｏｏｔｈデバイス１３４６が含まれる。ＵＳＢコントローラ１３４０は、マウス、取り外し可能不揮発性ストレージデバイス１３４５、モデム、ネットワークカード、ＩＳＤＮコネクタ、ファックス、プリンタ、ＵＳＢハブ、及びその他多数のタイプのＵＳＢ接続デバイス等のその他の種々のＵＳＢ接続デバイス１３４２にもＵＳＢ接続を提供する。取り外し可能不揮発性ストレージデバイス１３４５はＵＳＢ接続デバイスとして示されているが、取り外し可能不揮発性ストレージデバイス１３４５は、ファイアワイヤ・インターフェース等の異なるインタフェースを用いて接続することができる。
【０１０２】
無線ローカル・エリア・ネットワーク（ＬＡＮ）デバイス１３７５は、ＰＣＩ又はＰＣＩ  Ｅｘｐｒｅｓｓバス１３７２を介してサウスブリッジ１３３５に接続する。ＬＡＮデバイス１３７５は、典型的には、情報処理システム１３００と別のコンピュータ・システム又はデバイスとの間で全てが同じプロトコルを用いて無線通信を行う無線変調技術のＩＥＥＥ．８０２．１１規格のうちの１つを実装する。光ストレージデバイス１３９０は、シリアルＡＴＡ（ＳＡＴＡ）バス１３８８を用いてサウスブリッジ１３３５に接続する。シリアルＡＴＡアダプタ及びデバイスは、高速シリアル・リンク上で通信する。シリアルＡＴＡバスは、サウスブリッジ１３３５を、ハード・ディスク・ドライブ等のその他の形態のストレージデバイスにも接続する。サウンド・カード等の音声回路１３６０は、バス１３５８を介してサウスブリッジ１３３５に接続する。音声回路１３６０は、音声ライン入力及び光デジタル音声入力ポート１３６２、光デジタル出力及びヘッドホン・ジャック１３６４、内蔵スピーカ１３６６、並びに内蔵マイクロフォン１３６８等の機能も提供する。イーサネット・コントローラ１３７０は、ＰＣＩ又はＰＣＩ  Ｅｘｐｒｅｓｓバス等のバスを用いてサウスブリッジ１３３５に接続する。イーサネット・コントローラ１３７０は、情報処理システム１３００を、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット、並びにその他のパブリック及びプライベート・コンピュータ・ネットワーク等のコンピュータ・ネットワークに接続する。
【０１０３】
図１５は１つの情報処理システム１３００を示しているが、情報処理システムは、多くの形態を取ることができる。例えば、情報処理システムは、デスクトップ、サーバ、携帯型、ラップトップ、ノートブック、又はその他のフォームファクタのコンピュータ又はデータ処理システムの形態を取ることができる。さらに、情報処理システムは、携帯情報端末（ＰＤＡ）、ゲーム機、ＡＴＭ機、携帯電話デバイス、通信デバイス又はその他プロセッサ及びメモリを含むデバイス等のその他のフォームファクタを取ることができる。図１５に示されかつ本明細書で説明されるセキュリティ機能を提供するためのＴｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（ＴＰＭ１３９５）は、ハードウェア・セキュリティ・モジュール（ＨＳＭ）の一例に過ぎない。従って、本明細書において説明され、特許請求されるＴＰＭは、「Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（ＴＰＭ）仕様バージョン１．２」という名称のＴｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐｓ（ＴＣＧ）規格に準拠するハードウェア・セキュリティ・デバイスを含むがそれらに限定されない任意のタイプのＨＳＭを含む。ＴＰＭは、図１５に概略が示されているような任意の数の情報処理システムに組み入れることができるハードウェア・セキュリティ・サブシステムである。
【０１０４】
本発明は、システム、方法、及び／又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する１つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【０１０５】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多目的ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、記録された命令を有するパンチカード若しくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通って伝搬する電磁波（例えば光ファイバケーブルを通る光パルス）、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈されるべきではない。
【０１０６】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／又は無線ネットワークを経由して、外部コンピュータ若しくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び／又はエッジサーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【０１０７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、若しくはＣ＋＋などのオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ若しくは複数のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。Ｊａｖａ及び全てのＪａｖａに基づく商標及びロゴは、Ｏｒａｃｌｅ及び／又はその系列会社の商標又は登録商標である。
【０１０８】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するようにすることもできる。
【０１０９】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。代替的な実施形態において、本発明は、問題を解決するためにハードウェアに接続された媒体内に格納されたコンピュータプログラム（又はアプリケーション）において実装することができる
【０１１０】
本発明は、システム、方法、及び／又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する１つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【０１１１】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）、及びコンピュータプログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【０１１２】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータプログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製品を含むようにすることもできる。
【０１１３】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するようにすることもできる。
【０１１４】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
【０１１５】
疑義を避けるために、「含む」という用語は、本明細書において説明及び特許請求の範囲を通して使用されるとき、「．．．のみから成る」ことを意味すると解釈すべきではない。
【符号の説明】
【０１１６】
４２２：スプリット・ビットマップ
４２４：差分ビットマップ
４２５：ポインタ
５０５：ソース・ディスクＧ
５１０：クローン又はスナップショット・ポイント・イン・タイム・コピー
５１１：クローン・ポイント・イン・タイム・コピーＣ１
５１３：スナップショット・ポイント・イン・タイム・コピーＳ１
５２０：物理ディスクＧｐ
５２５：物理ディスクＳ１ｐ／Ｃ１ｐ
５２７：物理ディスクＣ１ｐ
５２８、５３８：書込み
５３７：物理ディスクＳ１ｐ
５４０：第１のストレージ・プール
５４５：第２のストレージ・プール
５４７：ストレージ・プール
５５０、５５２、５５３、５５４、５５５：リンク
７０５：ソース・ディスク
７６５：スナップショット・ポイント・イン・タイム・コピー
７５５、７５９、７７２、７７３：ホストビュー（ｖｄｉｓｋ）
７５７、７６１、７７４、７７７：物理ディスク
７７０：クローン・ポイント・イン・タイム・コピー
８３８：コピー
８３９：書込み
８９０：スワップ
９００：書込みシステム、復旧システム
９０５：コピー・コンポーネント
９０６：スワップ・コンポーネント
９１０：マップ・コンポーネント
９１５：Ｉ／Ｏコンポーネント
１０００：クラウド・コンピューティング・ノード
１０４０：プログラム／ユーティリティ
１１１０：クラウド・コンピューティング・ノード
１１５０：クラウド・コンピューティング環境
１１５４：ローカル・コンピューティング・デバイス
１２０２：メインフレーム
１２０４：ＲＩＳＣアーキテクチャ・ベースのサーバ
１２０６：ＩＢＭ  ｘＳｅｒｉｅｓ（登録商標）システム１２０６
１２０８：ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）システム１２０８
１２１０：ストレージデバイス
１２１２：ネットワーク及びネットワーキング・コンポーネント
１２１４：ネットワーク・アプリケーション・サーバ・ソフトウェア
１２１６：データベース・ソフトウェア
１２２２：仮想サーバ
１２２４：仮想ストレージ
１２２６：仮想ネットワーク
１２２８：仮想アプリケーション及びオペレーティング・システム
１２３０：仮想クライアント
１２４２：リソース・プロビジョニング
１２４４：計量及び価格設定
１２４６：ユーザ・ポータル
１２４８：サービスレベル管理
１２５０：サービスレベル・アグリーメント（ＳＬＡ）計画及び履行
１２５２、１２７２：復旧システム９００処理
１２６２：マッピング及びナビゲーション
１２６４：ソフトウェア開発及びライフサイクル管理
１２６６：仮想教室教育配信
１２６８：データ解析処理
１２７０：トランザクション処理
１３００：情報処理システム
１３４４：キーボード及びトラックパッド
１３４８：赤外線（ＩＲ）レシーバ
１３４６：Ｂｌｕｅｔｏｏｔｈデバイス
１３４５：取り外し可能不揮発性ストレージデバイス
１３５０：ウェブカム（カメラ）
１３５５：ＥｘｐｒｅｓｓＣａｒｄ
１３６０：音声回路
１３６２：音声ライン入力及び光デジタル音声入力ポート
１３６４：光デジタル出力及びヘッドホン・ジャック
１３６６：内蔵スピーカ
１３６８：内蔵マイクロフォン
１３７５：ＬＡＮデバイス
１３８５：不揮発性ストレージデバイス
１３９０：光ストレージデバイス
１３９８：レガシーＩ／Ｏデバイス
【図１】
0006722277.tif 000002
【図２】
0006722277.tif 000003
【図３】
0006722277.tif 000004
【図４】
0006722277.tif 000005
【図５】
0006722277.tif 000006
【図６】
0006722277.tif 000007
【図７】
0006722277.tif 000008
【図８】
0006722277.tif 000009
【図９】
0006722277.tif 000010
【図１０】
0006722277.tif 000011
【図１１】
0006722277.tif 000012
【図１２】
0006722277.tif 000013
【図１３】
0006722277.tif 000014
【図１４】
0006722277.tif 000015
【図１５】
0006722277.tif 000016