(57)【要約】【課題】  整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成。【解決手段】  第１の位置のホスト及び一次ストレージ・システム並びに第１の位置とは離れた第２の位置の二次ストレージ・システムと共に用いられる一次ストレージ・コントローラであって、一次ストレージ・システムは、一次ストレージ・コントローラと一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、二次ストレージ・システムは、二次ストレージ・コントローラと二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、一次ストレージ・コントローラは、データ・ミラーリングロジック、整合性グループロジック、スナップコピー生成ロジック、状態判断ロジック、及び遅延ロジックを含むデータ複製ロジックを含む。【選択図】      図４
2020528618.tif 000002
【特許請求の範囲】
【請求項１】
第１の位置のホスト及び一次ストレージ・システム並びに前記第１の位置とは離れた第２の位置の二次ストレージ・システムと共に用いられる一次ストレージ・コントローラであって、前記一次ストレージ・システムは、一次ストレージ・コントローラと前記一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、前記二次ストレージ・システムは、二次ストレージ・コントローラと前記二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、前記一次ストレージ・コントローラは、
前記一次ストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから前記二次ストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングし、かつ、前記一次ストレージ・システムのストレージ・ユニット内に格納された第３のデータ・ユニットから前記二次ストレージ・システムのストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングするように構成されたデータ・ミラーリングロジックと、
前記一次ストレージ・システムのストレージ・ユニットに対する前記二次ストレージ・システムのストレージ・ユニットのデータ・ユニットの整合性グループを生成するように構成された整合性グループロジックと、
スナップコピー・ソースとしての前記第１のデータ・ユニットから、スナップコピー・ターゲットとしての前記第３のデータ・ユニットへの、前記一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての前記第２のデータ・ユニットから、スナップコピー・ターゲットとしての前記第４のデータ・ユニットへの、前記二次ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むスナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取り、前記ローカル・リモート対確立コマンドに応答して、スナップコピー関係のローカル・リモート対を開始するように構成されたスナップコピー生成ロジックと、
を含むデータ複製ロジックを含み、前記スナップコピー生成ロジックは、
前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断するように構成された状態判断ロジックであって、前記複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、前記第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、状態判断ロジックと、
整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドの受信時にドレーン状態において前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成された遅延ロジックと、
を含む、一次ストレージ・コントローラ。
【請求項２】
前記スナップコピー生成ロジックは、前記ローカル・リモート対確立コマンドに応答して、リソース予約コマンドを前記二次ストレージ・コントローラに発行し、後の前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために前記二次ストレージ・システムのリソースを予約するように構成されたコマンドロジックをさらに含む、請求項１に記載の一次ストレージ・コントローラ。
【請求項３】
前記スナップコピー生成ロジックは、前記整合性グループ形成プロセスの状態とは無関係に、前記ローカル・リモート対の前記ローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立するようにさらに構成される、請求項１に記載の一次ストレージ・コントローラ。
【請求項４】
前記アイドル状態は、前記ドレーン状態の完了に続くインクリメント完了状態であり、前記遅延ロジックは、整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延を終了させるようにさらに構成され、
前記コマンドロジックは、整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後の前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記予約されたリソースを用いて、前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係を確立するためのチェックイン・コマンドを前記二次ストレージ・コントローラに発行するようにさらに構成される、請求項２に記載の一次ストレージ・コントローラ。
【請求項５】
前記コマンドロジックは、整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記リソースを用いて、前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係を確立するよう、前記二次ストレージ・コントローラに命令するようにさらに構成される、請求項２に記載の一次ストレージ・コントローラ。
【請求項６】
前記スナップコピー生成ロジックは、前記ローカル・リモート対確立コマンドに応答して、整合性グループ形成プロセスの関数としてスナップコピー・シーケンス番号を判断するように構成されたシーケンス番号判断ロジックをさらに含み、前記コマンドロジックは、前記ローカル・リモート対確立コマンドに応答して、前記リソース予約コマンドを前記二次ストレージ・コントローラに発行し、前記判断したスナップコピー・シーケンス番号と関連する、後の前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために、前記判断したスナップコピー・シーケンス番号と関連した前記二次ストレージ・システムのリソースを予約するようにさらに構成される、請求項２に記載の一次ストレージ・コントローラ。
【請求項７】
前記コマンドロジックは、前記判断したスナップコピー・シーケンス番号と関連する前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係を確立するよう、前記二次ストレージ・コントローラに命令するようにさらに構成され、前記整合性グループロジックは、整合性グループ・シーケンス番号を特定の整合性グループ形成プロセスに関連付けるようにさらに構成される、請求項６に記載の一次ストレージ・コントローラ。
【請求項８】
前記第１のデータ・ユニットは第１のボリュームであり、前記第２のデータ・ユニットは第２のボリュームである、請求項１に記載の一次ストレージ・コントローラ。
【請求項９】
第１の位置の第１のストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから、第２の位置の第２のストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングすることと、
前記第１の位置のストレージ・ユニット内に格納された第３のデータ・ユニットから、前記第２の位置のストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングすることと、
スナップコピー・ソースとしての前記第１のデータ・ユニットから、スナップコピー・ターゲットとしての前記第３のデータ・ユニットへの、前記一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての前記第２のデータ・ユニットから、スナップコピー・ターゲットとしての前記第４のデータ・ユニットへの、前記第２のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと、
前記ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、
前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断することであって、前記複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、前記第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと、
整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドの受信時にドレーン状態において前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることと、
を含む、開始することと、
を含む方法。
【請求項１０】
前記開始することは、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために、前記二次ストレージ・システムのリソースを予約することを含む、請求項９に記載の方法。
【請求項１１】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態とは無関係に、前記ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項９に記載の方法。
【請求項１２】
前記複数の状態は、前記ドレーン状態の完了に続くインクリメント完了状態をさらに含み、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延を終了させ、
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記リソースを用いて、前記リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項１０に記載の方法。
【請求項１３】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記リソースを用いて、前記リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項１０に記載の方法。
【請求項１４】
ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの関数としてスナップコピー・シーケンス番号を判断すること、及び後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約する前記リソースを前記判断したスナップコピー・シーケンス番号と関連付けることをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、確立する前記リモート・ポイント・イン・タイム・スナップコピー関係を前記判断したスナップコピー・シーケンス番号と関連付けることをさらに含み、整合性グループのシーケンス番号を特定の整合性グループ形成プロセスに関連付ける、請求項１４に記載の方法。
【請求項１６】
前記第１のデータ・ユニットは第１のボリュームであり、前記第２のデータ・ユニットは第２のボリュームである、請求項９に記載の方法。
【請求項１７】
第１の位置のホスト及び一次ストレージ・システム並びに前記第１の位置とは離れた第２の位置の二次ストレージ・システムと共に用いられるコンピュータ・プログラムであって、前記一次ストレージ・システムは、一次ストレージ・コントローラと前記一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、前記二次ストレージ・システムは、二次ストレージ・コントローラと前記二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、前記コンピュータ・プログラムは、プロセッサの動作をもたらすための、ストレージ・システムのプロセッサにより実行可能なプログラム命令を含み、前記プロセッサの動作は、
第１の位置の第１のストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから、第２の位置の第２のストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングすることと、
前記第１の位置のストレージ・ユニット内に格納された第３のデータ・ユニットから、前記第２の位置のストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングすることと、
スナップコピー・ソースとしての前記第１のデータ・ユニットから、スナップコピー・ターゲットとしての前記第３のデータ・ユニットへの、前記一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての前記第２のデータ・ユニットから、スナップコピー・ターゲットとしての前記第４のデータ・ユニットへの、前記第２のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと、
前記ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、
前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断することであって、前記複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、前記第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと、
整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドの受信時にドレーン状態において前記第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることと、
を含む、開始することと、
を含む、コンピュータ・プログラム。
【請求項１８】
前記開始することは、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために、前記二次ストレージ・システムのリソースを予約することを含む、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態とは無関係に、前記ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記複数の状態は、前記ドレーン状態の完了に続くインクリメント完了状態をさらに含み、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延を終了させ、
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記リソースを用いて、前記リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項１８に記載のコンピュータ・プログラム。
【請求項２１】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記リソースを用いて、前記リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む、請求項１８に記載のコンピュータ・プログラム。
【請求項２２】
ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの関数としてスナップコピー・シーケンス番号を判断すること、及び後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約する前記リソースを前記判断したスナップコピー・シーケンス番号と関連付けることをさらに含む、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、確立する前記リモート・ポイント・イン・タイム・スナップコピー関係を前記判断したスナップコピー・シーケンス番号と関連付けることをさらに含み、整合性グループのシーケンス番号を特定の整合性グループ形成プロセスに関連付ける、請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記第１のデータ・ユニットは第１のボリュームであり、前記第２のデータ・ユニットは第２のボリュームである、請求項１７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、整合性グループ（consistency group）における整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のためのコンピュータ・プログラム製品、システム、及び方法に関する。
【背景技術】
【０００２】
特に企業レベルにおけるデータ・ストレージ・システムは、通常、データ・ストレージ・システムのコンポーネントの故障の際にデータ損失のリスクを低減させるために、高レベルの冗長性をもたらすように設計される。従って、データの複数のコピーが、地理的に分散され得る複数のシステム上に格納されることが多い。従って、データ・ストレージ・システム内に格納されるホストからのデータは、通常、ローカル・サイトの一次システムに向けられ、次に、一次システムから地理的に離れたシステムとすることができる二次システムに複製される。
【０００３】
複製の、つまり、二次システムへデータをコピーするプロセスは、一次システムと二次システムとの間の同期又は非同期関係のいずれかに設定することができる。同期関係においては、通常、一次システムのあらゆる更新が二次システムと同期されてから、つまり、二次システムに成功裡にコピーされてから、一次システムは、データ・ストレージの入力／出力動作が成功裡に完了したことをホストに報告する。その結果、ホストが同期コピー操作の完了を待つ間、同期関係にある一次システム及び二次システムへのデータ格納が、ホストのシステム性能に悪影響を及ぼすことがある。一次システムと二次システムが遠く離れているストレージ・システムにおいては、同期コピー操作の完了の遅延がより大きくなることがあり、そのことが、ホストの性能にさらに悪影響を及ぼすことがある。例えば、一次システム及び二次システムが、例えば３００キロメートル（Ｋｍ）又はそれより多い地理的距離だけ離れているストレージ・システムにおいては、データが二次システムに成功裡に複製されるまでに、３〜５秒の（又はそれより多い）遅延が生じ得る。
【０００４】
その結果、特に二次システムが一次システムから地理的に離れている場合、ストレージ・システムは、一次システムと二次システムとの間に非同期関係を用いることが多い。非同期関係において、一次システムの更新の成功は、通常、更新が二次システムに複製されるのを待つことなく、ストレージ入力／出力動作の成功としてホストに報告される。その結果、ホストは、二次システムへのデータ複製の完了を待つ必要がなく、それに応じて、ホスト・システムの性能が向上され得る。
【０００５】
その名が示すように、非同期関係において、一次システムと二次システムは、いずれの時点においても、完全に同期されることはない。従って、二次システム上に格納されたデータは、通常、一次システム内に格納されたものよりも遅れる。従って、一次システム上に格納された新しいデータは、例えば３〜５秒といった期間、二次システム上に格納されないことがある。
【０００６】
データ複製システムにおいて、データは、通常、一次ストレージ・デバイス内の一次ボリュームと、一次ボリューム内に保持されるデータの同一コピーを含む、二次ストレージ・デバイス内の対応する二次ボリュームとを含むボリューム対（volume pair）に保持される。一次及び二次ボリュームは、ソース・ボリュームとも呼ばれる一次ボリュームのデータが、ターゲット・ボリュームとも呼ばれる二次ボリュームにコピーされるコピー関係により識別される。一次及び二次ストレージ・コントローラを用いて、一次及び二次ストレージ・デバイスへのアクセスを制御することができる。
【０００７】
例えば、ＩＢＭ（登録商標）ＦｌａｓｈＣｏｐｙ機能などのポイント・イン・タイム・スナップコピー機能を用いて、ボリュームのほぼ瞬間的なコピーを生成することができる。ポイント・イン・タイム・スナップコピー機能は、ポイント・イン・タイム・スナップコピー・ボリュームと呼ぶことができるターゲット・ボリューム内に、特定の時点（point-in-time）におけるソース・ボリュームの内容の「スナップショット」を作成する。ポイント・イン・タイム・スナップコピー機能の１つのバージョンは、バックグラウンド・コピー操作において、ソース・ボリュームの内容を、ポイント・イン・タイム・スナップコピー・ボリュームに転送する。
【０００８】
ポイント・イン・タイム・スナップコピー・ボリュームの各トラックについて１ビットを有するターゲット・ビットマップは、ポイント・イン・タイム・スナップコピー・ボリュームにまだ転送されていないトラックを示すために用いられる。ソース・ボリュームの各トラックの内容がターゲット・ボリュームにコピーされると、ターゲット・ビットマップの対応するビットが、関連したトラックに対する内容の成功裡の転送を示すように更新される（一般的には、リセットされる）。ソース・ボリュームの対応するトラックの内容をまだ受け取っていないポイント・イン・タイム・スナップコピー・ボリュームのトラックに向けられるあらゆる読み取り操作は、ソース・ボリュームからそのトラックの内容を取得するようにリダイレクトされる。従って、ポイント・イン・タイム・スナップコピー・ボリュームの内容は、あらゆるトラックがターゲット・ボリュームに実際に転送される前に、間接的ではあるが即座に利用可能となる。逆に、ホストが、そのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送される前にソース・ボリュームのトラックの更新を指示する場合、ソース・ボリュームのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送されてから、更新がソース・ボリュームのそのトラックの内容を上書きすることが許可される。
【０００９】
ポイント・イン・タイム・スナップコピー機能の別のバージョンは、バックグラウンド・コピー操作を省略する。従って、バックグラウンド・コピー操作において、ソース・ボリュームの内容は、ポイント・イン・タイム・スナップコピー・ボリュームに転送されない。従って、ポイント・イン・タイム・スナップコピー・ボリュームのトラックに向けられたあらゆる読み取り操作は、通常、ソース・ボリュームからそのトラックの内容を取得するようにリダイレクトされる。しかしながら、ホストがソース・ボリュームのトラックの更新を指示する場合、ソース・ボリュームのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送されてから、更新がソース・ボリュームのそのトラックの内容を上書きすることが許可される。
【００１０】
同期データ複製システムにおいて、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対して一次システムにおける一次ボリュームから作成することができ、ポイント・イン・タイム・スナップコピー・ボリュームは、同じ時点での二次ボリュームの内容に対して二次システムにおける二次ボリュームから作成することができる。一次及び二次ボリュームは同期されるので、それぞれのポイント・イン・タイム・スナップコピー・ボリュームも同期され、従って、ポイント・イン・タイム・スナップコピー・ボリュームが異なる場所で、つまり、一次システム及び二次システムで作成されるにもかかわらず、互いに整合している。このように、１つはローカル及び１つはリモートの、スナップコピーの対を形成することができ、そこで、ローカル及びリモート・スナップコピーは互いに整合している。
【００１１】
非同期データ複製システムにおける二次システムの複数のボリュームにわたるデータの整合性の度合いを保持するために、ＩＢＭ（登録商標）ＴｏｔａｌＳｔｏｒａｇｅディスク・サブシステムのピア・ツー・ピア・リモート・コピー（Peer-to-Peer Remote Copy、ＰＰＲＣ）機能は、ＰＰＲＣ整合性グループの概念をサポートする。ＰＰＲＣ整合性グループ内に構成されるＰＰＲＣ関係にあるボリュームが保持され、一次システムのボリュームに対して行われる更新のグループも、結果的に二次システムのボリュームに対して行われ、グループのそれらのボリュームに対するデータ整合性を保持することを保証する。従って、一次システムのボリュームと二次システムのボリュームの間に整合性グループを形成することができ、それらは、一次システムと二次システムの間の全体の非同期関係にもかかわらず、特定の更新セット又は特定の時点に対して整合している。
【００１２】
ローカル・ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対する一次システムの一次ボリュームから作成することができる。同様に、リモート・ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での二次ボリュームの内容に対する二次システムの二次ボリュームから作成することができる。しかしながら、非同期データ複製システムにおいては、一次及び二次ボリュームは同期されないので、二次ボリュームが一次ボリュームに対して整合性グループの一部である場合でも、それぞれローカル及びリモート・ポイント・イン・タイム・スナップコピー・ボリュームが互いに整合していないことがある。例えば、整合性グループのボリュームの形成を含む、ローカル及びリモート・スナップコピーの対を確立するためのコマンドが、互いに整合していないことがある。従って、一次システムにおける一次ボリュームのローカル・ポイント・イン・タイム・スナップコピー・ボリュームのリモート・バックアップ・コピーを与えるために、一般的に、一次システムにおいて生成されたポイント・イン・タイム・スナップコピー・ボリュームが、ネットワーク上で二次システムに転送される。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のためのコンピュータ・プログラム、システム、及び方法を提供する。
【課題を解決するための手段】
【００１４】
一態様によると、第１の位置のホスト及び一次ストレージ・システム並びに第１の位置とは離れた第２の位置の二次ストレージ・システムと共に用いられる一次ストレージ・コントローラであって、一次ストレージ・システムは、一次ストレージ・コントローラと一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、二次ストレージ・システムは、二次ストレージ・コントローラと二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、一次ストレージ・コントローラは、
一次ストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから二次ストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングし、かつ、一次ストレージ・システムのストレージ・ユニット内に格納された第３のデータ・ユニットから二次ストレージ・システムのストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングするように構成されたデータ・ミラーリングロジックと、
一次ストレージ・システムのストレージ・ユニットに対する二次ストレージ・システムのストレージ・ユニットのデータ・ユニットの整合性グループを生成するように構成された整合性グループロジックと、
スナップコピー・ソースとしての第１のデータ・ユニットから、スナップコピー・ターゲットとしての第３のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第２のデータ・ユニットから、スナップコピー・ターゲットとしての第４のデータ・ユニットへの、二次ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むスナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取り、ローカル・リモート対確立コマンドに応答して、スナップコピー関係のローカル・リモート対を開始するように構成されたスナップコピー生成ロジックとを含むデータ複製ロジックを含み、スナップコピー生成ロジックは、
ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断するように構成された状態判断ロジックであって、前記複数の状態はアイドル状態（idle state）及びドレーン状態（draining state）を含み、アイドル状態は、第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、状態判断ロジックと、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成された遅延ロジックとを含む。
【００１５】
別の態様によると、第１の位置の第１のストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから、第２の位置の第２のストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングすることと；第１の位置のストレージ・ユニット内に格納された第３のデータ・ユニットから、第２の位置のストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングすることと；スナップコピー・ソースとしての第１データ・ユニットから、スナップコピー・ターゲットとしての第３のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第２のデータ・ユニットから、スナップコピー・ターゲットとしての第４のデータ・ユニットへの、第２のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと；ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと；整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることとを含む、開始することとを含む、方法が提供される。
【００１６】
別の態様によると、第１の位置のホスト及び一次ストレージ・システム並びに第１の位置とは離れた第２の位置の二次ストレージ・システムと共に用いられるコンピュータ・プログラム製品であって、一次ストレージ・システムは、一次ストレージ・コントローラと一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有し、二次ストレージ・システムは、二次ストレージ・コントローラと二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも１つのストレージ・ユニットとを有するコンピュータ・プログラム製品が提供され、このコンピュータ・プログラム製品は、プロセッサの動作をもたらすための、ストレージ・システムのプロセッサにより実行可能なプログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、プロセッサの動作は、第１の位置の第１のストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから、第２の位置の第２のストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングすることと；第１の位置のストレージ・ユニット内に格納された第３のデータ・ユニットから、第２の位置のストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングすることと；スナップコピー・ソースとしての第１のデータ・ユニットからスナップコピー・ターゲットとしての第３のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第２のデータ・ユニットからスナップコピー・ターゲットとしての第４のデータ・ユニットへの、第２のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと；ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと；整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第２及び第４のデータ・ユニットの少なくとも１つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることを含む、開始することとを含む。
【００１７】
本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成の１つの一般的な実施形態は、ローカル・データ・ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー及びリモート・データ・ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピーを確立するためのローカル・リモート対ポイント・イン・タイム・スナップコピーを受け取ることに向けられる。一実施形態において、ローカル・リモート対確立ポイント・イン・タイム・スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態の関数として、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。その結果、ローカル・ストレージ・システムとリモート・ストレージ・システムとの間の非同期関係にもかかわらず、ポイント・イン・タイム・スナップコピーのローカル・リモート対の整合性を実現することができる。
【００１８】
一実施形態において、動作は、第１の位置の第１のストレージ・システムのストレージ・ユニット内に格納された第１のデータ・ユニットから、第２の位置の第２のストレージ・システムのストレージ・ユニット内に格納された第２のデータ・ユニットへデータを非同期ミラーリングすることと、第１の位置のストレージ・ユニット内に格納された第３のデータ・ユニットから、第２の位置のストレージ・ユニット内に格納された第４のデータ・ユニットへデータを非同期ミラーリングすることと、スナップコピー・ソースとしての第１のデータ・ユニットから、スナップコピー・ターゲットとしての第３のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第２のデータ・ユニットから、スナップコピー・ターゲットとしての第４のデータ・ユニットへの、第２のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのコマンドを受け取ることとを含む。
【００１９】
一実施形態において、動作は、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始するコマンドに応答して、コマンドの受信時に整合性グループ形成プロセスの状態を判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成していない場合に存在し、ドレーン状態は、第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成している場合に存在する、判断することと；整合性グループ形成プロセスの状態が、コマンドの受信時にドレーン状態において第２及び第４のデータ・ユニットを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることとを含む。一実施形態において、複数の状態は、ドレーン状態の完了に続くインクリメント完了状態（increment complete state）をさらに含み、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延が終了される。
【００２０】
一実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態とは無関係に、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。従って、一実施形態において、著しい遅延なしに、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することができる。
【００２１】
別の実施形態によると、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために第２のストレージ・システムのリソースを予約することを含む。さらに、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第２のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。別の態様において、整合性グループ形成プロセスの状態が、コマンドを受け取ったアイドル状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第２のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することを含む。
【００２２】
更に別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態の関数としてスナップコピー・シーケンス番号を判断すること、及び後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約するリソースを判断したスナップコピー・シーケンス番号と関連付けることをさらに含む。さらに、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、リモート・ポイント・イン・タイム・スナップコピー関係を判断したスナップコピー・シーケンス番号と関連付けることをさらに含む。
【００２３】
一実施形態において、第１のデータ・ユニットは第１のボリュームであり、前記第２のデータ・ユニットは第２のボリュームである。
【００２４】
説明される技術の実装形態は、ハードウェア、方法又はプロセス、又はコンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含むことができる。特定の用途に応じて、他の特徴及び態様を実現することもできる。
【００２５】
ここで添付図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００２６】
【図１】本説明の一実施形態による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピューティング環境を示す。
【図２】本説明の一実施形態による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いる、一次システム及び二次システムを有するストレージ・システムの例を示す。
【図３】図１のストレージ・システムにおけるホストの例を示す。
【図４】本説明の一実施形態によるデータ複製ロジックを示す。
【図５】図４のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。
【図６】図４のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。
【図７】図４のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。
【図８】図４のデータ複製ロジックの遅延ロジックの動作のタイムライン例を示す。
【図９】図４のデータ複製ロジックの動作の別の例を示す。
【図１０】本説明による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピュータ実施形態を示す。
【発明を実施するための形態】
【００２７】
動作において、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のための動作を実行させる又はシステムに実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせによって、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のための、１つ又は複数のコンピュータのシステムを構成することができる。例えば、データ処理装置により実行されるとき、装置にアクションを実行させる命令を含むことにより、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を実行するように、１つ又は複数のコンピュータ・プログラムを構成することができる。
【００２８】
前述のように、非同期データ複製システムにおいて、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対する一次システムの一次ボリュームから作成することができる。同様に、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での二次ボリュームの内容に対する二次システムの二次ボリュームから作成することができる。しかしながら、一次ボリュームと二次ボリュームは、非同期ミラー関係において完全に同期されないことが多いので、それぞれのポイント・イン・タイム・スナップコピー・ボリュームを同期させることはできず、従って、互いに整合していないことがある。従って、一次システムの一次ボリュームのポイント・イン・タイム・スナップコピー・ボリュームのバックアップコピーを提供しかつバックアップコピーを二次システムに格納するために、以前に一次システムにおいて生成されたポイント・イン・タイム・スナップコピー・ボリュームが、ネットワーク上で二次システムに転送された。
【００２９】
本説明の一実施形態によると、多くの用途において、非同期ミラー関係のために、二次システムにおいてポイント・イン・タイム・スナップコピー・ボリュームを形成するためのデータの大部分は、既に二次システム上に存在している。従って、本説明の一実施形態による整合した第１及び第２のポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成は、異なるサイトに配置された整合した第１及び第２のポイント・イン・タイム・スナップコピーの作成の際に、ネットワーク上でのデータの転送の多くを不要にすることができる。
【００３０】
本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成の１つの一般的な実施形態が、ローカル・データ・ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー及びリモート・データ・ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピーを確立するためのローカル・リモート対のポイント・イン・タイム・スナップコピー確立コマンドを受け取ることに向けられる。一実施形態において、ローカル・リモート対ポイント・イン・タイム・スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態の関数として、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。その結果、ローカル・ストレージ・システムとリモート・ストレージ・システムとの間の非同期関係にもかかわらず、ポイント・イン・タイム・スナップコピーのローカル・リモート対の整合性を実現することができる。
【００３１】
一実施形態において、動作は、ローカル・リモート・スナップコピー対コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも１つであると判断することを含み、複数の状態は、コマンドのユニットを含む整合性グループがアクティブに形成されていないアイドル状態と、コマンドのユニットを含む整合性グループがアクティブに形成されているドレーン状態とを含む。一実施形態において、整合性グループ形成プロセスの状態が、以前の整合性グループを完了したアイドル状態にあると判断される場合、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は遅延されない。
【００３２】
完了した整合性グループにおいて、二次ストレージのボリュームは、一次ストレージのボリュームに対して整合している。従って、二次ボリュームのリモート・スナップコピーは、一次ボリュームのローカル・スナップコピーと整合することになる。
【００３３】
逆に、整合性グループ形成プロセスの状態が、整合性グループの形成がまだ完了していないドレーン状態にあると判断される場合、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピーの確立は遅延される。一実施形態において、複数の状態は、ドレーン状態の完了に続くインクリメント完了状態（アイドル状態とも呼ばれる）をさらに含み、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると後で判断された場合、リモート・ポイント・イン・タイム・コピー関係の確立の遅延が終了する。上述のように、完了した整合性グループにおいて、二次ストレージのボリュームは、一次ストレージのボリュームに対して整合している。従って、二次ボリュームのリモート・スナップコピーは、一次ボリュームのローカル・スナップコピーと整合している。
【００３４】
別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために第２のストレージ・システムのリソースを予約することを含む。加えて、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第２のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、ローカル・リモート対確立コマンドを受け取ったとき、整合性グループ形成プロセスの状態がアイドル状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第２のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。
【００３５】
一実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態とは無関係に、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。従って、幾つかの実施形態において、ローカル・スナップコピー関係は、整合性グループ形成プロセスの状態とは無関係に、著しい遅延なしに確立することができる。特定の用途に応じて、他の態様及び利点を実現することができる。
【００３６】
１つ又は複数のコンピュータのシステムは、動作において、整合性グループ動作における整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を実行させる又はシステムに実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせによって、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成用に構成することができる。従って、本明細書で説明される動作は、手動で実行されるとして示される場合を除き、システム・オペレータの介入がほとんどなしに又はオペレータの介入なしに、自動的に又は実質的に自動的に動作を行うように構成されるロジックにより実行される。従って、本明細書で使用される場合、「自動的」という用語は、完全に自動的であることを含み、つまり、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような、人間の介入がない１つ又は複数のハードウェア又はソフトウェア制御マシンにより実行される動作である。本明細書で使用される場合、「自動的」という用語は、主として自動的であること、つまり、動作の大部分（例えば、５０％を超える）が、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような人間の介入のない１つ又は複数のハードウェア又はソフトウェア制御マシンにより実行され、動作の残り（例えば、５０％未満）が手動で実行される、つまり、動作の性能を導くために、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような人間の介入を用いて１つ又は複数のハードウェアまたソフトウェア制御マシンにより実行されることをさらに含む。
【００３７】
本明細書で説明される機能要素の多くは、その実装の独立性をより具体的に強調するために、「ロジック」として表記されている。例えば、ロジック要素は、カスタムＶＬＳＩ回路又はゲートアレイ、ロジックチップ、トランジスタなどの市販の半導体、又は他の個別部品を含むハードウェア回路として実装することができる。ロジック要素は、フィールド・プログラマブル・ゲートアレイ、プログラマブル・アレイロジック、プログラマブルロジックデバイス等のようなプログラマブル・ハードウェア・デバイスで実装することもできる。
【００３８】
ロジック要素は、種々のタイプのプロセッサによる実行のためにソフトウェアで実装することもできる。実行可能コードを含むロジック要素は、例えば、オブジェクト、手順、又は機能として編成できるコンピュータ命令の１つ又は複数の物理若しくはロジックブロックを含むことができる。それにもかかわらず、識別されたロジック要素の実行ファイルは、物理的に一緒に配置する必要はなく、異なる位置に格納された異なる命令を含むことができ、それらは、互いにロジック的に結合されたとき、ロジック要素を含み、ロジック要素のための規定の目的を達成する。
【００３９】
実際には、ロジック要素のための実行可能コードは、単一の命令、又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラム間で、異なるプロセッサ間で、及び幾つかのメモリ・デバイスにわたって分布させることさえ可能である。同様に、動作データは、ロジック要素内で本明細書において識別し、示すことができ、任意の適切な形態で具体化し、任意の適切なタイプのデータ構造内に編成することができる。動作データは、単一のデータ・セットとして収集することができ、又は異なるストレージ・デバイス上を含む異なる位置上に分布させることができる。
【００４０】
示される実施形態において、コピー関係は、一次ストレージ位置のようなソース・ストレージ位置、及び二次ストレージ位置のようなターゲット・ストレージ位置を識別し、ソース・ストレージ位置に格納されたデータは、ターゲット・ストレージ位置に複製されるか、又は他の方法でコピーされる。従って、本明細書で使用される場合、ソース・ストレージ位置及びターゲット・ストレージ位置は、コピー関係により関連付けられるストレージ位置である。
【００４１】
さらに、本明細書で使用される場合、「ストレージ・ユニット」という用語は、１つ又は複数のボリューム、シリンダ、トラック、セグメント、範囲、若しくはそのいずれかの部分、又は転送に適した他のデータ・ユニット（単数又は複数）などのデータ・ストレージの１つ又は複数のユニットを含むストレージ位置を指す。従って、ソース・ストレージ・ユニット及び関連したターゲット・ストレージ・ユニットはそれぞれ、ストレージ・ボリュームとすることができる。しかしながら、ソース・ストレージ・ユニット及びターゲット・ストレージ・ユニットはそれぞれ、例えば、ボリューム以外のサイズのものであってもよいことが理解される。
【００４２】
説明される技術の実装形態として、ハードウェア、方法若しくはプロセス、又はコンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを挙げることができる。図１は、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピューティング環境の実施形態を示す。複数のホスト２ａ、２ｂ、．．．２ｎは、１つ又は複数のストレージ・ドライブ１０、１０ａ（図２）、１０ｂ（図２）により表されるストレージ内のボリューム８（例えば、ロジックユニット数、ロジックデバイス、ロジックサブシステム等）におけるデータにアクセスするために、ネットワーク６上で、入力／出力（Ｉ／Ｏ）要求を１つ又は複数のストレージ・コントローラ又はストレージ制御ユニット４、４ａ（図２）、４ｂ（図２）にサブミットすることができる。各ストレージ・コントローラ４、４ａ、４ｂは、各々が単一又は複数のプロセッサ・コアを有する１つ又は複数のプロセッサ又は中央処理ユニットを含む、ＣＰＵコンプレックス１２（図１）を含む。この実施形態において、プロセッサ・コアは、例えば、演算ロジックユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、及び／又は種々のレベルのキャッシュ（Ｌ１及びＬ２キャッシュなど）のような、命令の実行に関与するＣＰＵのコンポーネントを含む。プロセッサ・コアは、本明細書に記載されるものに加えて又はその代わりに他のロジック要素を有し得ることが理解される。
【００４３】
図２に示される構成において、ストレージ・コントローラ４ａ及びデータ・ストレージ１０ａは、それぞれ、一次システム２４ａの一次ストレージ制御ユニット及び一次ストレージとして構成されている。同様に、ストレージ・コントローラ４ｂ及びそのデータ・ストレージ１０ｂは、それぞれ、二次システム２４ｂの二次ストレージ制御ユニット及び二次ストレージとして構成されている。従って、図２に示される構成において、ストレージ・コントローラ４ａは、一次ストレージ・コントローラ又は制御ユニット４ａと呼ばれ、データ・ストレージ１０ａは、一次ストレージ１０ａと呼ばれる。同様に、ストレージ・コントローラ又は制御ユニット４ｂは、二次ストレージ・コントローラ又は制御ユニット４ｂと呼ばれ、データ・ストレージ１０ｂは、二次データ・ストレージ１０ｂと呼ばれる。
【００４４】
特定のコピー関係において、ソース・ユニットは、一次と呼ばれることが多く、ターゲット・ユニットは、二次と呼ばれることが多い。複製関係は、データ・ストレージ１０ａ及び１０ｂのストレージ・ユニット間に定められる。「一次」としてのデータ・ストレージ１０ａ及び「二次」としてのデータ・ストレージ１０ｂへの言及にもかかわらず、データ・ストレージ１０ａ及びデータ・ストレージ１０ｂの特定のストレージ・ユニットは、特定のコピー関係に応じて、一次（すなわちソースの役割）及び二次（すなわちターゲットの役割）の両方の役割を果たすことができる。
【００４５】
上述のように、コンピューティング環境は、一次ストレージ１０ａに格納するために、更新を一次ストレージ・コントローラ４ａ（図２）に書き込む１つ又は複数のホスト２ａ、２ｂ、．．．２ｎを含む。この実施形態においてホスト２ａのような少なくとも１つのそうしたホストは、一次ストレージ・コントローラ４ａ（図２）及びその関連したデータ・ストレージ１０ａの可用性の故障を監視するための監視プログラム２１６（図３）を含むストレージ管理機能を有する。幾つかの実施形態において、監視プログラム２１６は、ホストから離れたデバイスにおいて動作することができる。
【００４６】
一次ストレージ・コントローラ４ａは、第１のサイトに配置され、二次ストレージ・コントローラ４ｂは、第１のサイトから地理的に又は機能的に遠く離れた第２のサイトに配置される。従って、この例では、第１のサイトはローカル・サイトにあり、第２のサイトは、ローカル・サイトから短い又は長い地理的距離だけ互いに分離される地理的に遠いサイトにあるものとすることができる。代替的に、ローカル・サイト及びリモート・サイトは、ネットワーク６の、同じ一般的な地理的位置の異なる建物内、同じ建物の異なる部屋内、同じ部屋の異なるマシン内、又は同じマシンの異なる部分若しくは区分内のように、比較的近接していてもよい。
【００４７】
ホスト２ａ（図３）により表される典型的なホストは、オペレーティング・システム２１８と、ストレージ・コントローラ４ａ、４ｂを介して、一次ストレージ１０ａ又は二次ストレージ１０ｂからデータを読み取り、これに更新を書き込むアプリケーション２２０とを含む。幾つかの実施形態において、監視プログラム２１６を含むホストは、更新書き込みアプリケーション２２０を省略することができる。
【００４８】
図１、図２及び図４を参照すると、ストレージ・コントローラ４（図１）、４ａ（図２）、４ｂはそれぞれ、一次システム２４ａの一次ボリューム１から二次システム２４ｂにおける二次ボリューム２へのデータ複製操作を含むストレージ操作を管理するためのストレージ・マネージャ２３２を含むメモリ２３０（図１）を有する。ストレージ・マネージャ２３２のデータ複製ロジック２３４は、一次システムの一次ボリューム１のポイント・イン・タイム・スナップコピーなどの整合したコピーを生成するように構成される。ボリュームの対、すなわちボリューム１、ボリューム２は、非対称コピー関係にあり、一次ボリューム１の更新が、二次ボリューム２に非同期ミラーリングされる。本説明の一実施形態において、非同期関係にもかかわらず、第１のローカル・ポイント・イン・タイム・スナップコピーは、一次ボリューム１から作成することができ、第２のリモート・ポイント・イン・タイム・スナップコピーは、特定の時点でのローカル・ポイント・イン・タイム・スナップコピーと整合するように作成することができる。
【００４９】
示される実施形態において、データ複製ロジック２３４を含むストレージ・マネージャ２３２は、メモリ２３０内に格納されたソフトウェアとして示され、ＣＰＵコンプレックス１２により実行される。しかしながら、ストレージ・マネージャ２３２のロジック機能は、特定の用途に応じて、ハードウェア、ソフトウェア、又はその１つ又は複数の組み合わせとして実装できることが理解される。
【００５０】
１つ又は複数のコピー関係２４０は、一次及び二次ストレージ・コントローラ４ａ、４ｂ（図２）に対するデータ複製ロジック２３４により保持することができ、一次ストレージ１０ａ内の一次ストレージ位置と二次ストレージ１０ｂ内の対応する二次ストレージ位置を関連付けるので、一次ストレージ１０ａの位置の更新が、対応する二次ストレージ１０ｂの位置にコピーされる。例えば、ストレージ１０ａの一次ストレージ・ボリューム１（図２）内のソース・ストレージ位置を、ミラーコピー関係２４０（図１）に従って、ミラー・データ複製操作で、ストレージ１０ｂの二次ボリューム２のターゲット・ストレージ位置にミラーリングすることができる。
【００５１】
示される実施形態において、コピー関係２４０は、ストレージ位置の対に対するピア・ツー・ピア・ミラー関係を含み、そこでは、ミラー関係２４０の一次（ソース）ストレージ位置の更新が、ミラー関係２４０の二次（ターゲット）ストレージ位置にミラーリングされる。特定の用途に応じて、他のタイプのミラー関係を確立できることが理解される。例えば、コピー関係２４０は、ポイント・イン・タイム・スナップコピー関係を含むことができる。
【００５２】
データ複製ロジック２３４の非同期データ複製モードにおけるコピー関係２４０に関連して、一次ストレージ１０ａの一次ストレージ位置の更新は、示される実施形態におけるアウト・オブ・シンク（out-of-sync、ＯＯＳ）ビットマップであるビットマップ２４４のセットのビットマップ内に示され得る。ストレージ・マネージャ２３２がＯＯＳビット内に示される更新を、二次ストレージ制御ユニット４ｂの二次ストレージ１０ｂの対応するストレージ位置にコピーすると、ＯＯＳビットマップのビットは消去される。
【００５３】
ストレージ・マネージャ２３２は、一次ストレージ１０ａの更新にアクセスし、ストレージ１０ｂ内の対応するストレージ位置に書き込む。幾つかの実施形態において、コピー（copying）及び関係機能は、例えば、ホストなど、ストレージ・システム２４ａ、２４ｂ（図２）の外部のデバイスにより実行することができる。示される実施形態において、関係２４０の１つのコピー関係は、一次ストレージ１０ａの各書き込み更新が、二次ストレージ１０ｂにわたってミラーリングされるミラーリング・プロセスである。示される実施形態の非同期モードにおいては、Ｉ／Ｏ動作は、ホスト開始動作に関する限り、一次ストレージ１０ａの更新の書き込み成功時に完了すると考えられる。従って、更新がまだ二次ストレージ１０ｂにミラーリングされていなかったとしても、Ｉ／Ｏ動作が成功裡に完了したことを、ホストに通知することができる。
【００５４】
周期的に、一次システムにおいてボリュームに行われる更新のグループが、整合性グループのボリュームに対しても最終的に行われ、特定の時点でのデータ整合性又はグループのそれらのボリュームに対する特定のデータ・セットを保持するように、データ複製ロジック２３４により、関係２４０のボリュームを整合性グループ内に構成することができる。従って、ＯＯＳビットマップの付加的な更新を特定の時点で停止し、特定の時点での一次システムのボリュームに対する二次システムのボリュームの整合性グループを形成することができる。ＯＯＳビットマップにより示されるあらゆる未処理の更新が二次ストレージに転送されるので、もはや更新がＯＯＳビットマップに付加されなくなった時点で、整合性グループのボリュームは整合している。
【００５５】
ＯＯＳビットマップにより示されるインクリメンタル更新が二次ストレージにコピーされ、ＯＯＳビットマップがこうした転送を示すように更新される（ビット・リセット）整合性グループ形成プロセスの時間間隔は、ＯＯＳビットマップの「ドレーン（draining）」と言う。変更記録（Change Recording ）ビットマップと呼ばれる第２のビットマップは、整合性グループ・ドレーン時間の間に更新（変更）されたソース・ボリュームのトラックの記録を保持する。整合性グループが完了すると、整合性グループのＯＯＳビットマップは、全てゼロとなり、変更記録ビットマップは、次の整合性グループに対して遅れていた更新トラックを示す。このとき、変更記録ビットマップは、ミラー関係のためのＯＯＳビットマップになり、これらの更新トラックは、次の整合性グループが形成されるまでに生じる他のあらゆる更新とともに、リモート・ボリュームにミラーリングされる。次の整合性グループが形成されるまでのドレーン期間に続く期間は、整合性グループ形成に対するアイドル期間と呼ばれる。
【００５６】
非同期モードとは対照的に、同期モードにおいて、一次ストレージ１０ａへの書き込み操作を行ったＩ／Ｏ操作は、ミラー操作が完了するまで完了していない、つまり、更新データが二次ストレージ１０ｂに成功裡に複製されるまで完了していないと考えられる。ミラー操作が失敗し、更新がストレージ１０ｂに成功裡にミラーリングされなかった場合、更新操作が成功裡に完了しなかったことが、ホストに通知され得る。
【００５７】
一実施形態において、ストレージ・マネージャ２３２は、トラックにおいて一次ストレージ１０ａから二次ストレージ１０ｂにデータを転送することができる。本明細書で使用される場合、トラックという用語は、ディスク・ストレージ・ユニットのトラックを指すことができるが、ボリューム、ロジックデバイス等などのデータ・ユニットのより大きいグループ分けの一部とすることができる、ビット、バイト、ワード、セグメント、ページ、ブロック（ロジックブロック・アドレス（ＬＢＡ））等のような、ストレージ１０ａ、１０ｂにおいて構成された他のデータ・ユニットを言うこともできる。
【００５８】
一実施形態において、ストレージ・デバイス１０ａ、１０ｂは、ハードディスク・ドライブ及び磁気テープなどの１つ又は複数のシーケンシャル・アクセス・ストレージ・デバイスから構成することができ、又は、例えば、ソリッド・ステート・ドライブ（ＳＳＤ）などの非シーケンシャル・アクセス・ストレージ・デバイスを含むことができる。各ストレージ・デバイス１０ａ、１０ｂは、単一のシーケンシャル又は非シーケンシャル・アクセス・ストレージ・デバイスを含むことができ、又は単純ディスク束（Just a Bunch of Disks、ＪＢＯＤ）、ダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ）アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等のような、ストレージ・デバイスのアレイを含むことができる。
【００５９】
コピー関係を管理するデータ複製ロジック２３４の１つのモードは、本説明に従って必要に応じて修正されるピア・ツー・ピア・リモート・コピー（ＰＰＲＣ）プログラムのような非同期コピー操作により実施することができる。ＰＰＲＣプログラムの１つの例は、一次ストレージ１０ａから二次ストレージ１０ｂへの更新の切り替えを可能にする複製コピー・プログラムのためのＩＢＭ  Ｔｉｖｏｌｉ  Ｐｒｏｄｕｃｔｉｖｉｔｙ  Ｃｅｎｔｅｒである。適切な非同期ミラーリング・プログラムとして、本説明に従って必要に応じて修正されるＸＲＣ（又はｚＧＭ）が挙げられる。説明される操作は、本説明に従って必要に応じて修正される他のコピー・プログラム又は他のグローバル回復プログラムのような他のプログラムにより実施することができる。
【００６０】
システム・コンポーネント２ａ、２ｂ、．．．２ｎ、４、４ａ、４ｂ、１０、１０ａ、１０ｂは、これらのコンポーネントの間の通信を可能にするネットワーク６に接続される。従って、ネットワーク６は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、広域ネットワーク（ＷＡＮ）、ピア・ツー・ピア・ネットワーク、無線ネットワーク、アービトレート型ループ・ネットワーク（arbitrated loop network）等を含み得るファブリックを含む。ストレージ・サブシステムからホスト２ａ、２ｂ、．．．２ｎへの通信経路は、例えば、Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｏｎ（ＦＩＣＯＮ）などの特定のホスト・アタッチメント・プロトコルに基づき得る。ファブリックの他の通信経路は、例えば、ファイバ・チャネル・アービトレート型ループ構成、シリアル・ループ・アーキテクチャ、又はＰＣＩ−ＥｘｐｒｅｓｓインターフェースなどのＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）インターフェースのようなバス・インターフェースを含むことができる。ファブリックの通信経路は、例えば、イーサネット・ネットワークの一部とすることもでき、各ノードは、個々のネットワーク（インターネット・プロトコル）アドレスを有する。特定の用途に応じて、モデム電話経路（modem telephone path）、無線ネットワーク等のような他のタイプの通信経路を用いることもできる。
【００６１】
通信経路と関連付けられた通信ソフトウェアは、通信プロトコル、及びもしあれば、通信プロトコルに従った通信ハードウェアの動作を制御する命令及び他のソフトウェアを含む。特定の用途に応じて、他の通信経路プロトコルを利用できることが理解される。
【００６２】
図４は、一次ストレージ・コントローラ４ａ（図２）のストレージ・マネージャ２３２（図１）のデータ複製ロジック２３４の一実施形態を示す。二次ストレージ・システムの二次ストレージ・コントローラ４ｂ（図２）は、類似したストレージ・マネージャ２３２及びデータ複製ロジック２３４を含むことができる。
【００６３】
この実施形態において、データ複製ロジック２３４は、例えば一次ストレージ１０ａ（図２）のような第１のストレージ・ユニットの、例えば代表的トラック、トラック１〜トラック３を有する一次ボリューム１（図５）などの第１のデータ・ユニットから、例えば二次ストレージ１０ｂのような第２のストレージ・ユニットの、例えば代表的トラック、トラック１〜トラック３を有する第２のボリューム２（図５）などの第２のデータ・ユニットまで、データを非同期ミラーリングするように構成された非同期データ・ミラーリングロジック３１０を含む。図５〜図７の例において、一次ボリューム１から二次ボリューム２へのデータの非同期ミラーリングは、「ミラー関係１」と表記された矢印で表される。一次ボリューム１から二次ボリューム２へのデータのミラーリングにおけるデータ複製ロジック２３４のデータ・ミラーリングロジック３１０は、一次ボリューム１から二次ボリューム２にミラーリングされる残りのトラックを示す代表的ビット、ビット１〜ビット３を有するビットマップ２４４ａ（図４）のリモート・アウト・オブ・シンク（ＯＯＳ）ビットマップ１を生成するようにさらに構成される。
【００６４】
図５、図８の例において、ボリューム１及びボリューム２は、整合性グループロジック３１１により整合性グループＣＧ０内に構成され、一次システムにおけるボリューム１に対して行われた更新のグループが、最終的に、整合性グループＣＧ０のボリューム２に対しても行われ、特定の時点又はグループのそれらのボリュームに対する特定のデータ・セットでのデータ整合性を維持する。従って、ＯＯＳビットマップ１の付加的な更新を特定の時点で停止し、特定の時点での一次システムのボリューム１に対する二次システムのボリューム２の整合性グループＣＧ０を形成することができる。ＯＯＳビットマップ１により示されるようなあらゆる未処理の更新が二次ストレージに転送されるので、もはや更新がＯＯＳビットマップ１に付加されなくなった時点で、整合性グループのボリューム２は整合している。
【００６５】
一次ボリューム１’から二次ボリューム２’へのデータの非同期ミラーリングは、「ミラー関係１’」と表記された矢印により表される。一次ボリューム１’から二次ボリューム２’へのデータのミラーリングにおいて、データ複製ロジック２３４のデータ・ミラーリングロジック３１０は、一次ボリューム１’から二次ボリューム２’へミラーリングされる残りのトラックを示す代表的ビット、ビット１〜ビット３を有するビットマップ２４４ａ（図４）のリモート・アウト・オブ・シンク（ＯＯＳ）ビットマップ１’を生成するようにさらに構成される。
【００６６】
図８は、整合性グループのシーケンス番号ＣＧ０、ＣＧ１、ＣＧ２．．．により示されるような種々の整合性グループのシーケンシャルな形成のタイムラインを示す。例えば、図８のタイムラインにおいて、整合性グループＣＧ０の形成が既に完了したアイドル期間「ＣＧ０アイドル」の後、新しい整合性グループＣＧ１の形成が、時点「ＣＧ１に対するインクリメント開始」から開始し、時点「ＣＧ１に対するインクリメント完了」で完了し、その後、別のアイドル期間「ＣＧ１アイドル」が続く。
【００６７】
前述のように、一次ストレージ１０ａの一次ストレージ位置のインクリメンタル更新は、ビットマップ２４４（図１）のセットのアウト・オブ・シンク（ＯＯＳ）ビットマップ１（図５）内に示され得る。ＯＯＳビットマップ内に示されるインクリメンタル更新は二次ストレージ制御ユニット４ｂの二次ストレージ１０ｂ（図２）の対応するストレージ位置にコピーされると、ＯＯＳビットマップ１のビットは、整合性グループロジック３１１（図４）により消去される。インクリメンタル更新が二次ストレージにコピーされ、ＯＯＳビットマップ１が更新される時点「インクリメント開始」から開始する整合性グループ形成プロセスの期間は、ＯＯＳビットマップ１の「ドレーン」と呼ばれる。例えば、時間間隔、整合性グループＣＧ１に対する整合性グループ形成プロセスの時間間隔ＣＧ１ドレーン（図８）は、時点「ＣＧ１に対するインクリメント開始」から開始し、整合性グループＣＧ１の一次ボリュームに対するインクリメンタル更新が二次ストレージの二次ボリュームにコピーされ、ＯＯＳビットマップ１（図６）が更新される。
【００６８】
図６、図８の例において、ボリューム１及びボリューム２は、整合性グループロジック３１１により整合性グループＣＧ１内に構成され、一次システムのボリューム１に対して行われた更新のグループが、最終的に、整合性グループＣＧ１のボリューム２に対しても行われ、特定の時点（「ＣＧ１に対するインクリメント開始」）又はグループのそれらのボリュームに対する特定のデータ・セットでのデータ整合性を保持する。従って、ＯＯＳビットマップ１の付加的な更新を特定の時点で停止させ、特定の時点での一次システムのボリューム１に対する二次システムのボリューム２の整合性グループＣＧ１を形成する。ＯＯＳビットマップ１により示されるあらゆる未処理の更新が二次ストレージに転送されるので、整合性グループのボリューム２は、更新がもはやＯＯＳビットマップ１に加えられなかった時点でのボリューム１と整合している。
【００６９】
ひとたびＯＯＳビットマップ１（図８）が完全にドレーンされると（図７）、このドレーン期間（ＣＧ１ドレーン）は完了し、整合性グループの全てのインクリメンタル更新は、一次ストレージから二次ストレージに成功裡にコピーされ、その結果、ＯＯＳビットマップ１（図７）の全てのビットがリセットされた。その時、二次ストレージは、整合性グループのリモート・ボリュームのスナップコピー（図８の実施形態において、「リモート・ミラー・スナップコピー」と呼ばれる）を確立することができる。各リモート・ミラー・スナップコピーには、シーケンス番号が割り当てられる。従って、例えば整合性グループＣＧ１のドレーン期間の完了時、図時点「ＣＧ１に対するリモート・ミラー・スナップコピー確立」に形成されたリモート・ミラー・スナップコピーには、図８の実施形態のタイムラインに示されるようにシーケンス番号「ＣＧ１」が割り当てられる。
【００７０】
図８のタイムライン内に示されるようにひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分は、整合性グループの形成に関して完了したと考えることができる。従って、シーケンスの次の（next-in-sequence）整合性グループ形成プロセスが開始するまで、別の「アイドル」期間が続く。
【００７１】
例えば、図７に示されるように、ひとたび整合性グループＣＧ１に対するＯＯＳビットマップ１が完全にドレーンされると、ドレーン期間、ＣＧ１ドレーンは完了し、整合性グループＣＧ１の一次ボリューム１のインクリメンタル更新は一次ストレージから二次ストレージに成功裡にコピーされ、その結果、図７に示されるようにＯＯＳビットマップ１の全てのビットがリセットされた。その時、二次ストレージは、図８の実施形態における時点「ＣＧ１に対するリモート・ミラー・スナップコピー確立」により示されるように、整合性グループのリモート・ボリュームのスナップコピーを生成することができる。図８のタイムライン内に示されるようにひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループＣＧ１に対する整合性グループ形成プロセスのインクリメント部分が完了したとみなすことができる（時点「ＣＧ１に対するインクリメント完了」により示されるように）。従って、シーケンスの次の整合性グループ形成プロセスが開始するまで、アイドル期間「ＣＧ１アイドル」が続く。
【００７２】
図８に示されるように、整合性グループロジック３１１（図４）は、整合性グループ・シーケンス番号を各々の整合性グループ形成プロセスに関連付けるようにさらに構成される。整合性グループロジック３１１は、整合性グループ・シーケンス番号及び進行中の整合性グループ形成プロセスの状態を、整合性グループ形成データ構造３１２（図４）に格納する。従って、図５の例において、整合性グループロジック３１１は、整合性グループ・シーケンス番号ＣＧ０及び進行中の整合性グループ形成プロセスの状態「アイドル」を、整合性グループ形成データ構造３１２の対応するシーケンス番号及び状態フィールドに格納する。示される実施形態において、アイドル状態は整合性グループの完了状態も表す。
【００７３】
図９は、本説明の一実施形態による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるデータ複製ロジック２３４の動作の一実施形態を示す。１つの動作において、データ複製ロジック２３４のスナップコピー生成ロジック３１４（図４）は、例えばホスト２ａからローカル・リモート対確立コマンドを受け取り（ブロック３１６、図９）、ローカル・リモート対確立コマンドをいつ受け取ったかに応じて、整合性グループの部分とすることができるスナップコピー関係のローカル・リモート対を確立するように構成される。図５、図８の例において、整合性グループＣＧ０の完了に続く新しい整合性グループＣＧ１の形成前のＣＧ０アイドル期間において、ローカル・リモート対確立コマンド０を受け取った。ローカル・リモート対確立コマンド０は、ローカル・ストレージ・システム２４ａのボリューム１のローカル・スナップコピー及びリモート・ストレージ・システム２４ｂのボリューム２のローカル・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド０の受信時、ボリューム２は、ボリューム１に対して整合性グループＣＧ０内にある。
【００７４】
本説明の一実施形態において、図５、図８の例におけるローカル・リモート対確立コマンド０などのローカル・リモート対確立コマンドを受け取ったとき、ローカル・リモート対確立コマンドに応答して確立されたスナップコピー関係のローカル・リモート対には、図５、図８の例におけるスナップコピー・シーケンス番号ＳＣ＿ＣＧ０のようなスナップコピー・シーケンス番号が割り当てられ、このスナップコピー・シーケンス番号は、図５、図８の例における整合性グループ形成プロセスＣＧ０アイドルなどの特定の整合性グループ形成プロセスの関数である。従って、別の動作において、スナップコピー生成ロジック３１４は、ローカル・リモート対確立コマンドに応答して確立されるローカル・リモート対のスナップコピー関係のスナップコピー・シーケンス番号を判断する（ブロック３１８、図７）。
【００７５】
この実施形態において、スナップコピー生成ロジック３１４は、受け取ったローカル・リモート対スナップコピー確立コマンドに応答して、ローカル・リモート対確立コマンドの受信時に整合性グループロジック３１１のデータ構造３１２から進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号を取得し、かつ、ローカル・リモート対確立コマンドの受信時に進行中の特定の整合性グループ形成プロセスの関数としてスナップコピー・シーケンス番号をさらに判断するように構成されたシーケンス番号判断ロジック３３４（図４）をさらに含む。図５、図８の例において、シーケンス番号判断ロジック３３４は、ローカル・リモート対確立コマンド０（図５、図８）に応答して、ローカル・リモート対確立コマンド０の受信時に整合性グループロジック３１１のデータ構造３１２から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号ＣＧ０を取得し、かつ、ローカル・リモート対確立コマンド０の受信時に進行中の特定の整合性グループ形成プロセス（ＣＧ０アイドル）の関数として、スナップコピー・シーケンス番号ＳＣ＿ＣＧ０を判断する。スナップコピー・シーケンス番号ＳＣ＿ＣＧ０は、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造３３６ａ（図５）のスナップコピー・シーケンス番号フィールド内に格納される。
【００７６】
図５は、判断したスナップコピー・シーケンス番号ＳＣ＿ＣＧ０を用いた、ローカル・リモート対確立コマンド０に応答したスナップコピー関係のローカル・リモート対の確立を示す。ローカル・リモート対確立コマンド０に応答して確立されたスナップコピー関係のローカル・リモート対は、スナップコピー・ソースとしてのボリューム１などのデータ・ユニットから、一次ストレージ・システム２４ａ（図２）内のスナップコピー・ターゲットとしてのボリューム１’などの別のデータ・ユニットまでの、一次ストレージ・システム２４ａにおける「ＰＩＴスナップコピー関係ＣＧ０＿Ｌ」と表記された矢印により表されるようなローカル・ポイント・イン・タイム・スナップコピー関係を含む。一実施形態において、スナップコピー生成ロジック３１４（図４）は、ローカル・ポイント・イン・タイム・スナップコピー関係、ここではＰＩＴスナップコピー関係ＣＧ０＿Ｌの確立において、特定の時点での一次ボリューム１からポイント・イン・タイム・スナップコピー・ボリューム１’にコピーされなかったトラックを示すビットマップ２４４ｂ（図４）のローカル・ターゲット・ビットマップＣＧ０＿Ｌを生成するようにさらに構成される。
【００７７】
ローカル・リモート対確立コマンド０に応答して確立されたスナップコピー関係のローカル・リモート対は、スナップコピー・ソースとしてのボリューム２などのデータ・ユニットから、二次ストレージ・システム２４ｂ（図２）内のスナップコピー・ターゲットとしてのボリューム２’などの別のデータ・ユニットまでの、二次ストレージ・システム２４ｂ（図２）における「ＰＩＴスナップコピー関係ＣＧ０＿Ｒ」と表記された矢印により表されるリモート・ポイント・イン・タイム・スナップコピー関係をさらに含む。一実施形態において、二次コントローラのスナップコピー生成ロジック３１４は、リモート・ポイント・イン・タイム・スナップコピー関係、すなわちＰＩＴスナップコピー関係ＣＧ０＿Ｒの確立において、特定の時点での一次ボリューム２からポイント・イン・タイム・スナップコピー・ボリューム２’にコピーされなかったトラックを示すビットマップ２４４ｂのリモート・ターゲット・ビットマップＣＧ０＿Ｒを生成するように構成される。
【００７８】
一次ストレージ・コントローラ４ａ（図２）のスナップコピー生成ロジック３１４（図４）は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し、確立する（ブロック３４０、図９）ように構成される。従って、図５、図８の例において、ポイント・イン・タイム・スナップコピー関係ＣＧ０＿Ｌの状態は、ローカル・リモート・スナップコピー対の（ポイント・イン・タイム・スナップコピー関係ＣＧ０＿Ｌの）シーケンス番号ＳＣ＿ＣＧ０を有するローカル・スナップコピーが確立されたことを示す「確立済み（Ｅstablished）」として、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造３３６ａ（図５）の状態フィールドに格納される。
【００７９】
逆に、本説明の一実施形態において、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として遅延させることができる。しかしながら、リモート・スナップコピー関係がまだ確立されていず、代わりに遅延されたとしても、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延にもかかわらず、スナップコピー関係のローカル・リモート対の両方の、すなわちローカル及びリモートのスナップコピー関係を、確立済みとしてローカル・リモート・スナップコピー対確立コマンドを発行したホストに報告することができる。
【００８０】
従って、一次ストレージ・コントローラ４ａ（図２）のスナップコピー生成ロジック３１４（図４）は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態を判断するように構成された状態判断ロジック３４４をさらに含む。スナップコピー生成ロジック３１４の遅延ロジック３４８は、状態判断ロジック３４４により判断されるように、ローカル・リモート対スナップコピー確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成される。
【００８１】
一実施形態において、複数の状態は、図８のタイムラインに示されるように、以前の整合性グループＣＧ０が完了し、シーケンスの次の（next in sequence）整合性グループＣＧ１における次の形成がまだ開始されていない、図５、図８の例におけるアイドル状態「ＣＧ０アイドル」などのアイドル状態を含む。整合性グループＣＧ１の形成がまだ完了していない、図６、図８の例におけるドレーン状態、「ＣＧ１ドレーン」などのドレーン状態をさらに含む。以下により詳細に説明されるように、遅延ロジック３４８は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態がドレーン状態にあると判断される場合、及び、形成される整合性グループが、ローカル・リモート対スナップコピー確立コマンドのスナップコピー関係のローカル・リモート対のデータ・ユニットを含む場合、複数の状態の別の状態は、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるようにさらに構成される。
【００８２】
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延と関連して、データ複製ロジック２３４のコマンドロジック３５０（図４）は、最終的にローカル・リモート対のリモート・スナップコピー関係を確立するために、二次ストレージ・システムのリソースを予約する（ブロック３５２、図９）ように、二次ストレージ・コントローラ４ｂ（図２）に命令するように構成される。リソースは、ローカル・リモート対に対して判断されたシーケンス番号（ブロック３１８、図９）を用いて予約される。
【００８３】
一実施形態において、データ複製ロジック２３４のコマンドロジック３５０は、ローカル・リモート対スナップコピー確立コマンドに応答して、リソース予約コマンドを二次ストレージ・コントローラ４ｂに発行し、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために二次ストレージ・システムのリソースを予約するように構成される。さらに、リソース予約コマンドに応答して、判断されたスナップコピー・シーケンス番号（ブロック３１８、図９）が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造３３６ｂ（図５）のスナップコピー・シーケンス番号フィールドに格納される。従って、図５、図８の例において、ローカル・リモート対確立コマンド０に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号ＳＣ＿ＣＧ０は、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造３３６ｂ（図５）のスナップコピー・シーケンス番号フィールドに格納される。
【００８４】
状態判断ロジック３４４（図４）は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態を判断する（ブロック３５６、図９）。図５の例において、状態判断ロジック３４４は、ローカル・リモート対確立コマンド０に応答して、整合性グループロジック３１１のデータ構造３１２（図５）から、進行中の整合性グループ形成プロセスの状態、ＣＧ０アイドルを取得する。コマンドロジック３５０は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムのリソースを用いて、判断したスナップコピー・シーケンス番号と関連するローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立するよう、二次ストレージ・コントローラに命令するように構成される。例えば、コマンドロジック３５０は、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立のために二次ストレージ・システムの以前に予約したリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する（ブロック３６０、図９）よう、二次ストレージ・コントローラに命令する。
【００８５】
整合性グループＣＧ０に対する図５の例において、ＯＯＳビットマップ１が完全にドレーンされ、整合性グループＣＧ０の形成が完了し、アイドル状態にあるように、ＯＯＳビットマップ１の全てのビットがリセットされた。従って、図５、図８の例において、整合性グループ形成プロセスの状態は、ローカル・リモート対スナップコピー確立コマンド０を受け取ったアイドル状態にあると判断される（ブロック３５６、図９）ので、ローカル・リモート対確立コマンド０の受信時、ローカル・リモート対確立コマンドのデータ・ユニットのボリューム２、ボリューム２’を含むいずれの整合性グループも形成の過程にないことから、著しい遅延なしに、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立することができる。従って、図５、図８の例において、リモート・スナップコピーが、ローカル・リモート・スナップコピー対の（ポイント・イン・タイム・スナップコピー関係ＣＧ０＿Ｒの）シーケンス番号ＳＣ＿ＣＧ０を有することを示す状態「確立済み」が、データ構造３３６ｂ（図５）の状態フィールドに格納される。
【００８６】
ローカル・リモート対スナップコピー確立コマンド０を受け取ったとき、整合性グループＣＧ０に対する整合性グループ形成プロセスの状態はアイドル状態（ＣＧ０インクリメント完了）にあったので、整合性グループＣＧ０のボリューム２は、ローカル・リモート対スナップコピー確立コマンド０を受け取ったとき、一次システムのボリューム１に対して整合している。従って、ローカル・スナップコピー・ボリューム１’は、リモート・スナップコピー・ボリューム２’と整合している。従って、ローカル・リモート対スナップコピー確立コマンド０に応答して、著しい遅延なしに、リモート・スナップコピー・ボリューム２’を確立することができる。
【００８７】
逆に、遅延ロジック３４８は、ローカル・リモート対スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態がドレーン状態にあると判断された場合、及び、形成される整合性グループが、ローカル・リモート対確立コマンドのスナップ関係のローカル・リモート対のデータ・ユニットを含む場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させる（ブロック３６４、図９）。図６、図８の例において、整合性グループＣＧ１の開始の後、つまり、整合性グループＣＧ１の時点「ＣＧ１に対するインクリメント開始」時点の後、整合性グループＣＧ２に対して、ＣＧ２の「インクリメント開始」後、整合性グループの時点「ＣＧ２に対するインクリメント開始」におけるシーケンスの次の整合性グループＣＧ２の形成前に、ＣＧ１ドレーン期間において、ローカル・リモート対スナップコピー確立コマンド１を受け取っている（ブロック３１６、図９）。ローカル・リモート確立コマンド１は、ローカル・ストレージ・システム２４ａのボリューム１のローカル・スナップコピー及びリモート・ストレージ・システム２４ｂのボリューム２のリモート・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド１の受信時にボリューム２は、ボリューム１に対して整合性グループＣＧ１内にある。
【００８８】
整合性グループＣＧ１に対する図６の例において、ＯＯＳビットマップ１がドレーンの過程にあり、整合性グループＣＧ１の形成は未完了であり、ドレーン状態にあるように、ＯＯＳビットマップ１の全てのビットがリセットされたとは限らない。従って、図６の例において、整合性グループロジック３１１は、整合性グループ・シーケンス番号ＣＧ１及び進行中の整合性グループ形成プロセスの状態「ドレーン」を、整合性グループ形成データ構造３１２の対応するシーケンス番号及び状態フィールドに格納する。ローカル・リモート対確立コマンド１に応答して確立されるスナップコピー関係（図６）のローカル・リモート対には、シーケンス番号判断ロジック３３４により、スナップコピー・シーケンス番号、この例ではＳＣ＿ＣＧ１が割り当てられ、このスナップコピー・シーケンス番号は、図８に示されるようにローカル・リモート対スナップコピー確立コマンド１を受け取ったとき、進行中の特定の整合性グループ形成プロセス、「ＣＧ１ドレーン」の関数である。図６の例において、シーケンス番号判断ロジック３３４は、ローカル・リモート対スナップコピー確立コマンド１（図８）に応答して、ローカル・リモート対スナップコピー確立コマンドの受信時に整合性グループロジック３１１のデータ構造３１２（図６）から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号ＣＧ１を取得し、かつ、ローカル・リモート対スナップコピー確立コマンド１の受信時に進行中の特定の整合性グループ形成プロセス、「ＣＧ１ドレーン」の関数として、スナップコピー・シーケンス番号ＳＣ＿ＣＧ１を判断する。スナップコピー・シーケンス番号ＳＣ＿ＣＧ１は、ローカル・リモート・スナップ対のローカル・スナップコピーのためのデータ構造３３６ａ（図６）のスナップコピー・シーケンス番号フィールド内に格納される。
【００８９】
図６は、判断したスナップコピー・シーケンス番号ＳＣ＿ＣＧ１を用いた、ローカル・リモート対スナップコピー確立コマンド１に応答したスナップコピー関係のローカル・リモート対の確立の開始を示す。従って、ローカル・ポイント・イン・タイム・スナップコピー関係は、スナップコピー・ソースとしてのボリューム１などのデータ・ユニットから、一次ストレージ・システム２４ａ内のスナップコピー・ターゲットとしてのボリューム１’などの別のデータ・ユニットへの、一次ストレージ・システム２４ａにおける「ＰＩＴスナップコピー関係ＣＧ１＿Ｌ」と表記された矢印により表されるように確立される（ブロック３４０、図９）。一実施形態において、スナップコピー生成ロジック３１４は、ローカル・ポイント・イン・タイム・スナップコピー関係、ここではＰＩＴスナップコピー関係ＣＧ１＿Ｌの確立において、特定の時点での一次ボリューム１からポイント・イン・タイム・スナップコピー・ボリューム１’にコピーされなかったトラックを示すビットマップ２４４ｂのローカル・ターゲット・ビットマップＣＧ１＿Ｌを生成するようにさらに構成される。
【００９０】
スナップコピー生成ロジック３１４は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立する（ブロック３４０、図９）。従って、図６、図８の例において、ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｌの状態は、ローカル・リモート・スナップコピー対の（ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｌの）シーケンス番号ＳＣ＿ＣＧ１を有するローカル・スナップコピーが確立されたことを示す「確立済み」として、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造３３６ａ（図６）の状態フィールドに格納される。
【００９１】
ローカル・リモート対確立コマンド１に応答して確立されたスナップコピー関係のローカル・リモート対は、最終的に、スナップコピー・ソースとしての整合性グループＣＧ１のボリューム２などのデータ・ユニットから、二次ストレージ・システム２４ｂ内のスナップコピー・ターゲットとしてのボリューム２などの別のデータ・ユニットへの、二次ストレージ・システム２４ｂにおける「ＰＩＴスナップコピー関係ＣＧ１＿Ｒ」と表記された矢印により表されるような、リモート・ポイント・イン・タイム・スナップコピー関係を含む。上述のように、本説明の一実施形態において、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として遅延させることができる。従って、図６の例において、リモート・スナップコピーが遅延されたときから、ＰＩＴスナップコピー関係ＣＧ１＿Ｒを表す矢印は、点線で示される。同様に、図６の例において、ＰＩＴスナップコピー関係ＣＧ１＿Ｒに対するターゲット・ビットマップＣＧ１＿Ｒは、点線で示される。
【００９２】
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延に関連して、一次ストレージ・コントローラ４ａ（図２）のデータ複製ロジックのコマンドロジックのコマンドロジック３５０（図４）は、最終的にローカル・リモート対のリモート・スナップコピー関係を最終的に確立するために、二次ストレージ・システムのリソースを予約する（ブロック３５２、図９）よう、二次ストレージ・コントローラ４ｂ（図２）に命令する。ローカル・リモート対に対して判断されたシーケンス番号（ブロック３１８、図９）を用いて、リソースが予約される。図６、図８の例において、一次ストレージ・コントローラ４ａ（図２）のデータ複製ロジック２３４のコマンドロジック３５０は、ローカル・リモート対確立コマンド１に応答して、リソース予約コマンドを二次ストレージ・コントローラ４ｂに発行し、スナップコピー関係をＣＧ１＿Ｒのための予約期間の完了に続く後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立のための予約期間の間に、二次ストレージ・システムのリソースを予約する。例えば、リモートＰＩＴスナップコピー関係ＣＧ１＿Ｒの確立を待つ間、ボリューム２’などのスナップコピー・ボリュームに対するメモリ空間、及びターゲット・ビットマップＣＧ１＿Ｒなどのデータ構造を予約することができる。
【００９３】
さらに、リソース予約コマンドに応答して、判断したスナップコピー・シーケンス番号（ブロック３１８、図９）が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造３３６ｂ（図６）のスナップコピー・シーケンス番号フィールド内に格納される。従って、図６、図８の例において、ローカル・リモート対確立コマンド１に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号ＳＣ＿ＣＧ１が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造３３６ｂ（図５）のスナップコピー・シーケンス番号フィールド内に格納される。
【００９４】
図６の例において、ＯＯＳビットマップ１のセットビット２などのセットビットは、二次ストレージへの転送を待っている未処理の更新を示し、もはや更新がＯＯＳビットマップ１に加えられない時点での整合性グループＣＧ１のボリューム２が、ボリューム１とまだ整合していなない。従って、図６の例において、ＯＯＳビットマップ１（図６）はまだ完全にドレーンされていず（図７）、整合性グループの全てのインクリメンタル更新が一次ストレージから二次ストレージにまだ成功裡にコピーされていず、その結果、ＯＯＳビットマップ１（図６）の全てのビットはまだリセットされていないので、ドレーン期間、ＣＧ１ドレーンはまだ完了していない。
【００９５】
従って、図８のローカル・リモート対スナップコピー確立コマンド１の例において、一次ストレージ・コントローラ４ａ（図２）のスナップコピー生成ロジック３１４の状態判断ロジック３４４は、ローカル・リモート対スナップコピー確立コマンド１の受信時に整合性グループ形成データ構造３１２（図６）及び図８のタイムラインにより示されるようなＣＧ１ドレーン状態であるように、整合性グループ形成プロセスの状態を判断する（ブロック３５６、図９）。図６の例において、状態判断ロジック３４４は、整合性グループロジック３１１のデータ構造３１２（図５）から、進行中の整合性グループ形成プロセスの状態、ＣＧ１ドレーンを取得する。従って、ローカル・リモート対確立コマンド１の受信時に進行中の整合性グループ形成プロセスの状態は、状態判断ロジック３４４により、ＣＧ１ドレーン状態であるように判断されるので、スナップコピー生成ロジック３１４の遅延ロジック３４８は、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立を遅延させる（ブロック３６４）。リモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立は、図８のタイムラインにおける「予約期間」と呼ばれるある時間期間だけ遅延される。従って、ローカル・リモート・スナップコピー対の（ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの）シーケンス番号ＳＣ＿ＣＧ１を有するリモート・スナップコピーがまだ確立されていないが、後の時間に確立されるのを待つ間予約された状態にあることを示す状態「予約済み（Reserved）」が、データ構造３３６ｂ（図５）の状態フィールドに格納される。
【００９６】
ローカル・リモート対スナップコピー確立コマンド１を受け取ったとき、整合性グループＣＧ１に対する整合性グループ形成プロセスの状態はドレーン状態（ＣＧ１ドレーン）にあったので、整合性グループＣＧ１のボリューム２は、ローカル・リモート対スナップコピー確立コマンド１を受け取ったとき、一次システムのボリューム１に対して整合していない。従って、ローカル・スナップコピー・ボリューム１’は、リモート・スナップコピー・ボリューム２’と整合していない。従って、リモート・スナップコピー・ボリューム２’の確立は遅延される。
【００９７】
形成される整合性グループＣＧ１に対する時点「インクリメント完了」により示されるように、ひとたび整合性グループ形成プロセスのインクリメント部分が完了すると、ローカル・リモート対のリモート・スナップコピーの確立を遅延させるための予約期間が終了する。上述のように、ひとたび整合性グループに対するＯＯＳビットマップ１（図が完全にドレーンされ、整合性グループＣＧ１の全てのインクリメンタル更新が、一次ストレージ・ボリューム１’から二次ストレージ・ボリューム２’に成功裡にコピーされ、その結果、ＯＯＳビットマップ１の全てのビットが図７に示されるようにリセットされると、ＣＧ１ドレーン期間は完了する。
【００９８】
整合性グループＣＧ１のドレーン期間が完了すると、時点「ＣＧ１に対するリモート・ミラー・スナップコピー確立」において形成されたリモート・ミラー・スナップコピーには、図８の実施形態のタイムラインに示されるようなシーケンス番号「ＣＧ１」が割り当てられる。図８の実施形態のタイムラインに示されるように、ひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分が、形成される整合性グループＣＧ１に関して完了した（「インクリメント完了」）と考えることができる。従って、図７に示されるように、整合性グループロジック３１１は、進行中の整合性グループ形成プロセスに対する整合性グループの状態「インクリメント完了」を、整合性グループＣＧ１に対する整合性グループ形成データ構造３１２の対応する状態フィールドに格納する。
【００９９】
スナップコピー生成ロジック３１４の状態判断ロジック３４４（図４）は、ローカル・リモート対スナップコピー確立コマンド１に対する整合性グループ形成プロセスの状態を、整合性グループ形成データ構造３１２（図７）及び図８のタイムラインにより示されるようなＣＧ１インクリメント完了状態にあると判断する。図７の例において、状態判断ロジック３４４は、整合性グループロジック３１１のデータ構造３１２（図７）から、進行中の整合性グループＣＧ１形成プロセスの状態インクリメント完了を取得する。
【０１００】
従って、ひとたび整合性グループＣＧ１に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド１を受け取ったＣＧ１ドレーン状態に続くインクリメント完了状態にあると判断されると、遅延ロジック３４８は、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立の遅延を終了させる（ブロック３７０、図９）。加えて、ひとたび整合性グループＣＧ１に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド１を受け取ったＣＧ１ドレーン状態に続くインクリメント完了状態にあると判断されると、コマンドロジック３５０は、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒを確立する（ブロック３６０、図９）ための「チェックイン」コマンドを二次ストレージ・コントローラに発行する（ブロック３７４）するようにさらに構成される。従って、チェックイン・コマンドに応答して、二次ストレージ・コントローラは、ひとたび整合性グループＣＧ１に対する整合性グループ形成プロセスの状態がアイドル状態（つまり、インクリメント完了状態）にあると判断されると、後のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒの確立のために予約された二次ストレージ・システムのリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係ＣＧ１＿Ｒ（図７）を確立する。一実施形態において、二次ストレージ・コントローラは、リモート・ポイント・イン・タイム・スナップコピー関係、すなわちＰＩＴスナップコピー関係ＣＧ１＿Ｒの確立において、特定の時点での一次ボリューム２からポイント・イン・タイム・スナップコピー・ボリューム２’にコピーされなかったトラックを示すビットマップ２４４ｂのリモート・ターゲット・ビットマップＣＧ１＿Ｒ（図７）を生成するようにさらに構成される。
【０１０１】
ローカル・リモート対スナップコピー確立コマンド１を受け取ったとき、整合性グループＣＧ１に対する整合性グループ形成プロセスの状態はドレーン状態（ＣＧ１ドレーン）であったので、リモート・スナップコピー・ボリューム２’の確立は、整合性グループＣＧ１のボリューム２が一次システムのボリューム１に対して整合するまで遅延された。その結果、ローカル・スナップコピー・ボリューム１’は、リモート・スナップコピー・ボリューム２’と整合するようになる。従って、整合性グループＣＧ１が完了した後に、リモート・スナップコピー・ボリューム２’が確立される。
【０１０２】
図８の別の例において、整合性グループＣＧ２の開始、つまり、整合性グループＣＧ１の時点「ＣＧ１に対するインクリメント開始」の後、シーケンスの次の整合性グループの形成前のＣＧ２ドレーン期間において、ローカル・リモート対スナップコピー確立コマンド２を受け取った（ブロック３１６、図９）。ローカル・リモート対確立コマンド２は、ローカル・ストレージ・システム２４ａのボリューム１のローカル・スナップコピー及びリモート・ストレージ・システム２４ｂのボリューム２のリモート・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド２の受信時、ボリューム２は、ボリューム１に対して整合性グループＣＧ２内にある。従って、スナップコピー関係のローカル・リモート対は、ローカル・リモート対確立コマンド１と関連して上述したものと同様の方法で確立される。
【０１０３】
整合性グループロジック３１１は、整合性グループ・シーケンス番号ＣＧ２及び進行中の整合性グループ形成プロセスの状態「ドレーン」を、整合性グループ形成データ構造３１２などのデータ構造の対応するシーケンス番号及び状態フィールドに格納する。ローカル・リモート対確立コマンドに応答して確立されたスナップコピー関係のローカル・リモート対には、シーケンス番号判断ロジック３３４により、スナップコピー・シーケンス番号、この例ではＳＣ＿ＣＧ２が割り当てられ、このスナップコピー・シーケンス番号は、図８に示されるようにローカル・リモート対スナップコピー確立コマンド２を受け取ったとき、進行中の特定の整合性グループ形成プロセス、「ＣＧ２ドレーン」の関数である。シーケンス番号判断ロジック３３４は、ローカル・リモート対スナップコピー確立コマンド２（図８）に応答して、ローカル・リモート対スナップコピー確立コマンド２の受信時に整合性グループロジック３１１のデータ構造３１２から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号ＣＧ２を取得し、かつ、ローカル・リモート対スナップコピー確立コマンド２の受信時に進行中の特定の整合性グループ形成プロセス、「ＣＧ２ドレーン」の関数として、スナップコピー・シーケンス番号ＳＣ＿ＣＧ２を判断する。スナップコピー・シーケンス番号ＳＣ＿ＣＧ２は、スローカル・リモート・スナップコピー対のためのデータ構造３３６ａなどのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。
【０１０４】
一次ストレージ・システム２４ａにおいて、スナップコピー・ソースとしてのデータ・ユニットから、一次ストレージ・システム２４ａ内のスナップコピー・ターゲットなどの別のデータ・ユニットへの、ローカル・ポイント・イン・タイム・スナップコピー関係が確立される（ブロック３４０、図９）。一実施形態において、スナップコピー生成ロジック３１４は、ローカル・ポイント・イン・タイム・スナップコピー関係の確立において、特定の時点での一次ボリュームからローカル・ポイント・イン・タイム・スナップコピー・ボリュームにコピーされなかったトラックを示すローカル・ターゲット・ビットマップを生成するようにさらに構成される。
【０１０５】
スナップコピー生成ロジック３１４は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立する（ブロック３４０、図９）。従って、図８のコマンド２の例において、例えばＣＧ２＿Ｌとして番号付けされ得るローカル・ポイント・イン・タイム・スナップコピー関係の状態は、ローカル・リモート・スナップコピー対の（例えば、ＳＣ＿ＣＧ２などの）シーケンス番号を有するローカル・スナップコピーが確立されたことを示す「確立済み」として、ローカル・リモート・スナップコピー対に対するデータ構造の状態フィールドに格納される。
【０１０６】
ローカル・リモート対スナップコピー確立コマンド２に応答して確立されたスナップコピー関係のローカル・リモート対は、最終的に、スナップコピー・ソースとしてのデータ・ユニットから、二次ストレージ・システム２４ｂ内のスナップコピー・ターゲットとしての別のデータ・ユニットへの、二次ストレージ・システム２４ｂにおけるリモート・ポイント・イン・タイム・スナップコピー関係を含む。上述のように、本説明の一実施形態において、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。
【０１０７】
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延と関連して、一次ストレージ・コントローラ４ａ（図２）のデータ複製ロジックのコマンドロジック３５０（図４）は、最終的にローカル・リモート対のリモート・スナップコピー関係を確立するために、二次ストレージ・システムのリソースを予約する（ブロック３５２、図９）よう、二次ストレージ・コントローラ４ｂ（図２）に命令する。リソースは、ローカル・リモート対に対して判断されたシーケンス番号を用いて予約される（ブロック３１８、図９）。図８のコマンド２の例において、一次ストレージ・コントローラ４ａ（図２）のデータ複製ロジック２３４のコマンドロジック３５０は、ローカル・リモート対確立コマンド２に応答して、リソース予約コマンドを二次ストレージ・コントローラ４ｂに発行し、リモート・スナップコピー関係に対する予約期間の完了の、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために、予約期間の間、二次ストレージ・システムのリソースを予約する。例えば、リモートＰＩＴスナップコピー関係の確立を待つ間、スナップコピー・ボリュームに対するメモリ空間、及びリモート・ターゲット・ビットマップなどのデータ構造を予約することができる。
【０１０８】
さらにリソース予約コマンドに応答して、判断したスナップコピー・シーケンス番号（ブロック３１８、図９）が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。従って、図８のコマンド２の例において、ローカル・リモート対確立コマンド２に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号ＳＣ＿ＣＧ２（図８）が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。
【０１０９】
図８のローカル・リモート対スナップコピー確立コマンド２の例において、一次ストレージ・コントローラ４ａ（図２）のスナップコピー生成ロジック３１４の状態判断ロジック３４４（図４）は、ローカル・リモート対スナップコピー確立コマンド２の受信時の整合性グループ形成プロセスの状態を、整合性グループ形成データ構造及び図８のタイムラインにより示されるようなＣＧ２ドレーン状態であると判断する（ブロック３５６、図９）。コマンド２の例において、状態判断ロジック３４４は、整合性グループロジック３１１のデータ構造から、進行中の整合性グループ形成プロセスの状態、ＣＧ２ドレーンを取得する。従って、ローカル・リモート対確立コマンド２の受信時の進行中の整合性グループ形成プロセスの状態が、状態判断ロジック３４４により、ＣＧ２ドレーン状態であると判断されるので、スナップコピー生成ロジック３１４の遅延ロジック３４８は、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させる（ブロック３６４）。リモート・ポイント・イン・タイム・スナップコピー関係ＣＧ２＿Ｒの確立は、図８のタイムラインにおいて「予約期間」と呼ばれる時間間隔だけ遅延される。その結果、ローカル・リモート対のスナップコピー・シーケンス番号ＳＣ＿ＣＧ２を有するリモート・スナップコピーがまだ確立されていないが、後の時間に確立されるのを待つ間予約済状態にあることを示す、状態「予約済」が、リモート・スナップコピーのためのデータ構造の状態フィールドに格納される。
【０１１０】
整合性グループＣＧ２の形成のために、ひとたび整合性グループＣＧ２の整合性グループ形成プロセスのインクリメント部分が完了すると（時点「インクリメント完了」により示される）、ローカル・リモート対のリモート・スナップコピーの確立を遅延させるための予約期間が完了する。前述のように、ひとたび整合性グループに対するＯＯＳビットマップが完全にドレーンされ、整合性グループＣＧ２の全てのイクリメンタル更新が、一次ストレージ・ボリュームから二次ストレージ・ボリュームに成功裡にコピーされ、その結果、ＯＯＳビットマップの全てのビットがリセットされると、ＣＧ２ドレーン期間は完了する。
【０１１１】
整合性グループＣＧ２のドレーン期間の完了時、時点「ＣＧ２に対するリモート・ミラー・スナップコピー確立」において形成されたリモート・ミラー・スナップコピーには、図８の実施形態のタイムラインに示されるように、シーケンス番号「ＣＧ２」が割り当てられる。図８のタイムラインにより示されるように、ひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分は、整合性グループＣＧ２の形成に関して完了した（「インクリメント完了」）と考えることができる。従って、整合性グループロジック３１１は、進行中の整合性グループ形成プロセスに対する整合性グループの状態「インクリメント完了」を、整合性グループＣＧ２のための整合性グループ形成データ構造の対応する状態フィールドに格納する。
【０１１２】
その時点で、スナップコピー生成ロジック３１４の状態判断ロジック３４４（図４）は、ローカル・リモート対スナップコピー確立コマンド２に対する整合性グループ形成プロセスの状態を、整合性グループ形成データ構造及び図８のタイムラインにより示されるようなＣＧ２インクリメント完了状態であると判断する（ブロック３５６、図９）。従って、状態判断ロジック３４４は、整合性グループロジック３１１のデータ構造（図７）から、進行中の整合性グループＣＧ２形成プロセスの状態（ＣＧ２インクリメント完了）を取得する。
【０１１３】
従って、ひとたび整合性グループＣＧ２に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド２を受け取ったＣＧ２ドレーン状態に続くインクリメント完了状態にあると判断されると、遅延ロジック３４８は、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延を終了させる（ブロック３７０、図９）。さらに、コマンドロジック３５０は、ひとたび整合性グループＣＧ２に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド２を受け取ったＣＧ２ドレーン状態に続くインクリメント完了状態にあると判断すると、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する（ブロック３６０、図９）ためのチェックイン・コマンドを二次ストレージ・コントローラに発行する（ブロック３７４）よう、さらに構成される。従って、チェックイン・コマンドに応答して、ひとたび整合性グループＣＧ２に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド２を受け取ったＣＧ２アイドル状態（つまり、インクリメント完了状態）にあると判断されると、二次ストレージ・コントローラは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する。一実施形態において、二次ストレージ・コントローラは、リモート・ポイント・イン・タイム・スナップコピー関係の確立において、特定の時点での一次ボリュームからポイント・イン・タイム・スナップコピー・ボリュームにコピーされなかったトラックを示すビットマップ２４４ｂのリモート・ターゲット・ビットマップを生成するようにさらに構成される。
【０１１４】
一実施形態において、ポイント・イン・タイム・スナップコピーを生成するローカル・リモート対ポイント・イン・タイム・スナップコピー・コマンドは、バックグラウンド・コピー操作においてソース・ボリュームの内容をポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送する必要がない「バックグラウンド・コピーなし」タイプのものとすることができる。代わりに、ターゲット・ビットマップが、トラックがポイント・イン・タイム・スナップコピー・ボリュームに転送されなかったというビット状態値「１」により示される場合、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームのトラックに向けられた読み取り操作は、そのトラックの内容を取得するために、ソース・ボリュームの対応するトラックにリダイレクトされ得る。しかしながら、ソース・ボリュームのトラックが更新のターゲットである場合、そのトラックの内容は、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームの対応するトラックに転送され、関連したターゲット・ビットマップは、そのトラックの内容が転送されたことを示すように更新される。従って、第１の時点でのソース・ボリュームのデータの整合したポイント・イン・タイム・スナップコピーを与えるためのターゲットのデータは、関連したローカル又はリモート・システム内のデータ転送により取得することができる。
【０１１５】
他の実施形態において、ポイント・イン・タイム・スナップコピーを生成するローカル・リモート対ポイント・イン・タイム・スナップコピー・コマンドは、バックグラウンド・コピー操作においてソース・ボリュームの内容がポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送される「バックグラウンド・コピー」タイプのものであり得ることが理解される。ソース・ボリュームの各トラックの内容は、バックグラウンド・コピーにおいて、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームの対応するトラックの内容に転送されるので、関連したターゲット・ビットマップ内のそのトラックを表すビットのビット状態は、トラックがポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送されたことを示すためのビット状態値「０」に更新することができる。
【０１１６】
従って、本明細書で使用される場合、「コピーする（copying）」という用語は、ソース・ストレージ位置のデータの内容がターゲット・ストレージ位置に実際に転送される実際のコピーを含む。しかしながら、本明細書で使用される「コピー」という用語は、ビットマップなどのデータ構造が、最初にターゲット・ストレージ位置に向けられた読み取り操作を、ターゲット・ストレージ位置の代わりにソース・ストレージ位置にリダイレクトするように設定され、従って、ソース・ストレージ位置のデータ内容のターゲット・ストレージ位置への実際の転送を必要としない、仮想コピーも含む。同様に、本明細書で使用される場合、「コピー（copy）」という用語は、ターゲット・ストレージ位置がソース・ストレージ位置の同じデータ内容を含むが、ターゲット・ストレージ位置が、最初にターゲット・ストレージ位置に向けられた読み取り操作を、ターゲット・ストレージ位置の代わりにソース・ストレージ位置にリダイレクトするように設定された、ターゲット・ビットマップなどの関連したデータ構造を有する仮想コピーも含み、その結果、仮想コピーがソース・ストレージ位置の実際のデータ内容を含む必要がない。
【０１１７】
本説明の一実施形態において、ひとたび整合性グループが完了すると、ミラー関係１（図５、図７）により表されるようなミラーリング操作のために、リモート・ポイント・イン・タイム・スナップコピー・ボリューム２’に関するデータは、既に二次ストレージ・システム２４ｂ上に存在することが理解される。その結果、多くの用途において、リモート・ポイント・イン・タイム・スナップコピー・ボリューム２’に関するデータの全てではないとしても殆どを二次システム２４ｂ内でコピーすることができ、それにより、リモート・ポイント・イン・タイム・スナップコピー・ボリューム２’をもたらすために、一次システム２４ａからのネットワーク上でのデータのコピーの全てではないとして多くをなくすことができる。例えば、コマンドロジック３５０が、チェックイン・コマンドを二次システム２４ｂに発行するのに応答して、リモート・ターゲット・ビットマップが、二次ボリューム２からリモート・ポイント・イン・タイム・スナップコピー・ボリューム２’にコピーされていないデータ・トラックを示す場合、二次ストレージ・コントローラ４ｂのスナップコピー生成ロジック３１４は、二次ボリューム２のトラックをリモート・ポイント・イン・タイム・スナップコピー・ボリューム２’にバックグラウンド・コピーするよう、二次システムに命令するようにさらに構成される。従って、第１の時点での一次ボリューム１のデータの整合したポイント・イン・タイム・スナップコピーを与えるためのボリューム２’に関するデータは、主として二次システム２４ｂ内のデータ転送により取得することができる。
【０１１８】
図の計算コンポーネントは、それぞれ、図１０に示されるコンピュータ・システム１００２などの１つ又は複数のコンピュータ・システムにおいて実装することができる。コンピュータ・システム／サーバ１００２は、コンピュータ・システムにより実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈において説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム／サーバ１００２は、タスクが通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散クラウド・コンピューティング環境において実施することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル及びリモート両方のコンピュータ・システム・ストレージ媒体内に配置され得る。
【０１１９】
図１０に示されるように、コンピュータ・システム／サーバ１００２が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１００２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１００４と、システム・メモリ１００６と、システム・メモリ１００６を含む種々のシステム・コンポーネントをプロセッサ１００４に結合するバス１００８とを含むことができる。バス１００８は、種々のバス・アーキテクチャのいずれかを使用するメモリ・バス若しくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及びプロセッサ・バス若しくはローカル・バスを含む、幾つかのタイプのバス構造のいずれかの１つ又は複数を表す。限定としてではなく例として、そうしたアーキテクチャは、業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture、ＭＣＡ）バス、拡張ＩＳＡ（Enhanced ISA、ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスを含む。
【０１２０】
コンピュータ・システム／サーバ１００２は、一般的に、種々のコンピュータ・システム可読媒体を含む。そうした媒体は、コンピュータ・システム／サーバ１００２によってアクセス可能である任意の利用可能な媒体とすることができ、それは、揮発性媒体及び不揮発性媒体、取外し可能媒体及び取外し不能媒体の両方を含む。
【０１２１】
システム・メモリ１００６は、ランダム・アクセス・メモリ（ＲＡＭ）１０１０及び／又はキャッシュ・メモリ１０１２などの揮発性メモリの形態でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１００２は、他の取外し可能な／取外し不能な、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、（図示されていない、通常「ハード・ディスク」と呼ばれる）取外し不能な、不揮発性の磁気媒体から読み取り、そうした媒体に書き込むためのストレージ・システム１０１３を提供することができる。図示されないが、取外し可能な、不揮発性の磁気ディスク（例えば、「フロッピー・ディスク」）から読み取り、そうしたディスクに書き込むための磁気ディスク・ドライブ、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、若しくは他の光媒体などの取外し可能な、不揮発性の光ディスクから読み取り、そうしたディスクに書き込むための光ディスク・ドライブを提供することができる。そうした例において、それぞれが、１つ又は複数のデータ媒体インターフェースによってバス１００８に接続され得る。以下でさらに示され、説明されるように、メモリ１００６は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【０１２２】
プログラム・モジュール１０１６のセット（少なくとも１つ）を有するプログラム／ユーティリティ１０１４が、限定としてではなく一例として、オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データとともにメモリ１００６に格納され得る。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせのそれぞれが、ネットワーキング環境の実装形態を含むことができる。コンピュータ１００２のコンポーネントは、一般に、本明細書において説明されるような本発明の実施形態の機能及び／又は方法を実行するプログラム・モジュール１０１６として実装することができる。図１のシステムは、１つ又は複数のコンピュータ・システム１００２内に実装することができ、それらが複数のコンピュータ・システム１００２内に実装される場合、コンピュータ・システムは、ネットワーク上で通信することができる。
【０１２３】
コンピュータ・システム／サーバ１００２は、キーボード、ポインティング・デバイス、ディスプレイ１０２０等の１つ又は複数の外部デバイス１０１８；ユーザがコンピュータ・システム／サーバ１００２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ１００２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデム等）と通信することも可能である。そうした通信は、入力／出力（Ｉ／Ｏ）インターフェース１０２２を介して行うことができる。さらに、コンピュータ・システム／サーバ１００２は、ネットワーク・アダプタ１０２４を介してローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することができる。示されるように、ネットワーク・アダプタ１０２４は、バス１００８を介してコンピュータ・システム／サーバ１００２の他のコンポーネントと通信する。図示されていないが、他のハードウェア及び／又はソフトウェアのコンポーネントがコンピュータ／システム／サーバ１００２に関連して使用され得ることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が挙げられる。
【０１２４】
ｉ、ｊ及びｎなどの、本明細書で使用される参照文字は、要素のインスタンスの変数を示すために使用され、同じ又は異なる値を表すことがあり、記載される異なるインスタンスにおける異なる又は同じ要素と共に用いられるとき、同じ又は異なる値を表すことがある。
【０１２５】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【０１２６】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って伝搬される電気信号などの、一時的信号自体として解釈されない。
【０１２７】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／又は無線ネットワークなどのネットワークを介して外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【０１２８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、又は、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモートコンピュータ上で実行される場合もあり、又は完全にリモートコンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、リモートコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能ロジックアレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【０１２９】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１３０】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、
又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を含むようにすることもできる。
【０１３１】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するようにすることもできる。
【０１３２】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定されたロジック機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【０１３３】
「１つの実施形態（an embodiment）」、「実施形態（embodiment）」、「（複数の）実施形態（embodiments）」、「その実施形態（the embodiment）」、「（複数の）その実施形態（the embodiments）」、「１つ又は複数の実施形態（one or more embodiments）」、「幾つかの実施形態（some embodiments）」、及び「一実施形態（one embodiment）」という用語は、明示的に別段の定めがない限り、「本発明の１つ又は複数の（しかし、全てではない）実施形態」を意味する。
【０１３４】
「含んでいる（including）」、「備えている（comprising）」、「有している（having）」という用語及びその変形は、明示的に別段の定めがない限り、「含むが、それに制限されない（including but not limited to）」ことを意味する。
【０１３５】
列挙される項目のリストは、明示的に別段の定めがない限り、項目のいずれか又は全てが相互に排他的であることを意味しない。
【０１３６】
「１つの（a）」、「１つの（an）」、「その（the）」という用語は、明示的に別段の定めがない限り、「１つ又は複数（one or more）」を意味する。
【０１３７】
互いに通信するデバイスは、明示的に別段の定めがない限り、互いに連続的に通信する必要はない。さらに、互いに通信するデバイスは、１つ又は複数の中間物を介して、直接又は間接的に通信することもある。
【０１３８】
互いに通信する幾つかのコンポーネントを用いる１つの実施形態の記述は、全てのそう
したコンポーネントが必要とされることを意味するものではない。これに反して、種々の随意的なコンポーネントが、本発明の多種多様の可能な実施形態を示すために説明される。
【０１３９】
単一のデバイス又は物品が本明細書に説明されるが、単一のデバイス／物品の代わりに、１つより多いデバイス／物品（これらが協働しても又はしなくても）を用い得ることは容易に明らかであろう。同様に、１つより多いデバイス又は物品が本明細書で説明される場合（これらが協働しても又はしなくても）、１つより多いデバイス又は物品の代わりに単一のデバイス／物品を用いてもよく、又は示される数のデバイス又は物品の代わりに異なる数のデバイス／物品を用いてもよいことは、容易に明らかであろう。デバイスの機能及び／又は特徴を、そうした機能／特徴を有するものとして明示的に説明されていない１つ又は複数の他のデバイスによって代替的に具体化することもできる。従って、本発明の他の実施形態が、デバイス自体を含む必要はない。
【０１４０】
本発明の種々の実施形態の上記の記載は、例示及び説明のために提示されている。これは、網羅的であること又は本発明を開示された正確な形態に限定することを意図していない。上記の教示に照らして、多くの修正及び変形が可能である。本発明の範囲は、詳細な説明により制限されるものではなく、むしろ、これに添付される特許請求の範囲により制限されることが意図される。上記の詳述、例及びデータは、本発明の構成の製造及び使用の完全な説明を提供する。本発明の趣旨及び範囲から逸脱することなく、本発明の多くの実施形態を作成できるので、本発明は、以下に添付する本明細書における特許請求の範囲内にある。
【符号の説明】
【０１４１】
１、２、８：ボリューム
２ａ、２ｂ、．．．２ｎ：ホスト
４、４ａ、４ｂ：ストレージ・コントローラ
６：ネットワーク
１０ａ：一次ストレージ
１０ｂ：二次ストレージ
１２：ＣＰＵコンプレックス
２４ａ：一次ストレージ・システム
２４ｂ：二次ストレージ・システム
２１６：監視プログラム
２２０：アプリケーション
２３０、１００６：メモリ
２３２：ストレージ・マネージャ
２３４：データ複製ロジック
２４０：コピー関係
２４４、２４４ａ、２４４ｂ：ビットマップ
３１１：整合性グループロジック
３１２、３３６ａ、３３６ｂ：データ構造
３１４：スナップコピー生成ロジック
３３４：シーケンス番号判断ロジック
３４４：状態判断ロジック
３４８：遅延ロジック
３５０：コマンドロジック
１００２：コンピュータ・システム／サーバ
１００６：システム・メモリ
１００８：バス
１０１４：プログラム／ユーティリティ
１０１６：プログラム・モジュール
１０２０：ディスプレイ
１０２２：入力／出力（Ｉ／Ｏ）インターフェース
１０２４：ネットワーク・アダプタ
ＣＧ０、ＣＧ１、ＣＧ２．．．：整合性グループのシーケンス番号
【図１】
2020528618.tif 000003
【図２】
2020528618.tif 000004
【図３】
2020528618.tif 000005
【図４】
2020528618.tif 000006
【図５】
2020528618.tif 000007
【図６】
2020528618.tif 000008
【図７】
2020528618.tif 000009
【図８】
2020528618.tif 000010
【図９】
2020528618.tif 000011
【図１０】
2020528618.tif 000012
【国際調査報告】
2020528618.tif 000013
2020528618.tif 000014