(57)【要約】【課題】同期ミラーを一次記憶ボリュームとして活動化するための装置、システム、および方法が開示される。【解決手段】この装置、システムおよび方法は、第１記憶ボリュームが故障後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令することと、第１記憶ボリュームが第３記憶ボリュームと実質的に無矛盾になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに更新を送ることを終了させることと、第１記憶ボリュームと第３記憶ボリュームとが実質的に無矛盾になった後に更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了したことに応答して、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納しかつ第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することと、を含む。【選択図】図８
2010503089.tif 000002
【特許請求の範囲】
【請求項１】
同期ミラーを一次記憶ボリュームとして活動化するようにプログラムされたコンピュータ実行可能なプログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品の動作は、
第１記憶ボリュームが故障後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令することと、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることと、
前記第１記憶ボリュームと前記第３記憶ボリュームとが実質的に無矛盾になった後に更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納しかつ前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することと、
を含む、コンピュータ・プログラム製品。
【請求項２】
前記第１記憶ボリュームにおける前記故障を検出したことに応答して前記第２記憶ボリュームを一次記憶ボリュームとして指定することをさらに含み、前記第１記憶ボリュームは前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームは前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、前記第３記憶ボリュームは前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む、請求項に記載のコンピュータ・プログラム製品。
【請求項３】
前記第２記憶ボリュームにおいて記憶関係を終了させることをさらに含み、前記記憶関係は、前記第２記憶ボリュームが前記第１記憶ボリュームからのデータを同期的に格納するために使う情報を含む、請求項に記載のコンピュータ・プログラム製品。
【請求項４】
前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納しかつ前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することに応答して前記第１記憶ボリュームを前記一次記憶ボリュームとして指定することと、
前記第１記憶ボリュームが前記一次記憶ボリュームとして指定されたことに応答して、前記第１記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第２記憶ボリュームに格納するように前記第３記憶ボリュームに指令することと、
前記第２記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、前記第１記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることと、
更新を前記第１記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第１記憶ボリュームにより受け取られた更新を前記第２記憶ボリュームに同期的に格納しかつ前記第２記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することと、
をさらに含む、請求項に記載のコンピュータ・プログラム製品。
【請求項５】
前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令することは、記憶関係を作成すると共に、その後に前記第３記憶ボリュームにより受け取られた更新を追跡するように前記第３記憶ボリュームに指令することをさらに含み、前記記憶関係は、更新を前記第１記憶ボリュームに非同期的に格納するために前記第３記憶ボリュームが使う情報を含む、請求項に記載のコンピュータ・プログラム製品。
【請求項６】
前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることは、前記第２記憶ボリュームおよび前記第３記憶ボリュームから記憶関係を除去することをさらに含み、前記記憶関係は、前記第３記憶ボリュームにデータを格納するために前記第２記憶ボリュームが使う情報を含む、請求項に記載のコンピュータ・プログラム製品。
【請求項７】
更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させることは、前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることの終了の後に前記第２記憶ボリュームにより受け取られた更新を追跡することをさらに含む、請求項に記載のコンピュータ・プログラム製品。
【請求項８】
前記第３記憶ボリュームに更新を非同期的に格納することはフラッシュ・コピー・プロセスを用いて前記第３記憶ボリュームから第４記憶ボリュームを更新することをさらに含み、更新は前記第４記憶ボリュームにおいて時間順に編成される、請求項に記載のコンピュータ・プログラム製品。
【請求項９】
前記第４記憶ボリュームは、一次記憶ボリュームを再初期化するために適するデータを含む、請求項に記載のコンピュータ・プログラム製品。
【請求項１０】
前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることは、前記第４記憶ボリュームに対する更新を終了させることをさらに含む、請求項に記載のコンピュータ・プログラム製品。
【請求項１１】
前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することは、前記第４記憶ボリュームに対する更新を再スタートすることをさらに含む、請求項に記載のコンピュータ・プログラム製品。
【請求項１２】
前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することは、前記第１記憶ボリュームにより受け取られた前記第３記憶ボリュームにコピーされるべき更新を追跡することをさらに含む、請求項に記載のコンピュータ・プログラム製品。
【請求項１３】
前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納することは、前記第２記憶ボリュームにおいて記憶関係を作成するように前記第２記憶ボリュームに指令することをさらに含み、前記記憶関係は、データを前記第１記憶ボリュームに同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項に記載のコンピュータ・プログラム製品。
【請求項１４】
同期ミラーを一次記憶ボリュームとして活動化する装置であって、
第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定するように構成された主スワップ・モジュールであって、前記第１記憶ボリュームが前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームが前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームが前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む主スワップ・モジュールと、
前記第１記憶ボリュームが前記故障後に操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令するように構成されたＣ−Ａフェイルバック・モジュールと、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させるように構成されたＢ−Ｃ終了モジュールと、
前記Ｂ−Ｃ終了モジュールが更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させたことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納すると共に前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納するように構成されたＢ−Ａ−Ｃ記憶モジュールと、
を含む装置。
【請求項１５】
記憶関係を作成すると共に、前記記憶関係の作成の後に前記第３記憶ボリュームにより受け取られた更新を追跡するように前記第３記憶ボリュームに指令するように構成されたＣ−Ａ強制フェイルオーバー・モジュールをさらに含み、前記記憶関係は、更新を前記第１記憶ボリュームに非同期的に格納するために前記第３記憶ボリュームが使う情報を含む、請求項に記載の装置。
【請求項１６】
前記主スワップ・モジュールは、前記第１記憶ボリュームにおける故障を検出して前記第２記憶ボリュームを一次記憶ボリュームとしたことに応答して、前記第２記憶ボリュームにおいて、また前記第３記憶ボリュームにおいて記憶関係を終了させるように構成されたＡ−Ｂ終了モジュールをさらに含み、前記記憶関係は、前記第１記憶ボリュームからのデータを同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項に記載の装置。
【請求項１７】
前記Ｂ−Ｃ終了モジュールは、前記第２記憶ボリュームから記憶関係を除去するようにさらに構成され、前記記憶関係は、データを前記第３記憶ボリュームに格納するために前記第２記憶ボリュームが使う情報を含む、請求項に記載の装置。
【請求項１８】
前記Ｂ−Ｃ終了モジュールは、前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了した後に前記第２記憶ボリュームにより受け取られた更新を追跡するように構成された変更追跡モジュールをさらに含む、請求項に記載の装置。
【請求項１９】
第４記憶ボリュームをさらに含み、前記第３記憶ボリュームは、フラッシュ・コピー・プロセスを用いて前記第４記憶ボリュームに更新を格納するように構成され、前記更新は、前記第４記憶ボリュームにおいて時間順に編成される、請求項に記載の装置。
【請求項２０】
前記Ｂ−Ｃ終了モジュールは、前記第４記憶ボリュームに対する更新を終了させるようにさらに構成される、請求項に記載の装置。
【請求項２１】
前記Ｂ−Ａ−Ｃ記憶モジュールは、前記第４記憶ボリュームに対する更新を再スタートするようにさらに構成される、請求項に記載の装置。
【請求項２２】
前記Ｂ−Ａ−Ｃ記憶モジュールは、前記第３記憶ボリュームにコピーされるべき前記第１記憶ボリュームにより受け取られた更新を追跡するように前記第１記憶ボリュームに指令するように構成されたＡ−Ｃ追跡モジュールをさらに含む、請求項に記載の装置。
【請求項２３】
前記Ｂ−Ａ−Ｃ記憶モジュールは、前記第２記憶ボリュームにおいて記憶関係を作成するように前記第２記憶ボリュームに指令するように構成されたＢ−Ａインクリメンタル再同期化モジュールをさらに含み、前記記憶関係は、データを前記第１記憶ボリュームに同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項に記載の装置。
【請求項２４】
同期ミラーを一次記憶ボリュームとして活動化するシステムであって、前記システムは、
第１記憶ボリュームの故障の前は一次記憶ボリュームとして指定される前記第１記憶ボリュームと、
前記故障の前は前記第１記憶ボリュームのデータの同期ミラー・コピーを含む第２記憶ボリュームと、
前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む第３記憶ボリュームと、
前記第１記憶ボリュームおよび前記第２記憶ボリュームに更新を格納するように構成されたホストとを含み、前記ホストは、
前記第１記憶ボリュームにおける前記故障を検出したことに応答して前記第２記憶ボリュームを前記一次記憶ボリュームとして指定するように構成された主スワップ・モジュールと、
前記故障の後に前記第１記憶ボリュームが操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令するように構成されたＣ−Ａフェイルバック・モジュールと、
前記第１記憶ボリュームが前記第３記憶ボリュームとほぼ無矛盾になったことに応答して、更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させるように構成されたＢ−Ｃ終了モジュールと、
更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納すると共に前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納するように構成されたＢ−Ａ−Ｃ記憶モジュールと、
を含む、システム。
【請求項２５】
前記第３記憶ボリュームと共に配置された第４記憶ボリュームをさらに含み、前記第３記憶ボリュームはフラッシュ・コピー・プロセスを用いて前記第４記憶ボリュームに更新を格納するように構成され、前記更新は前記第４記憶ボリュームにおいて時間順に編成される、請求項に記載のシステム。
【請求項２６】
前記ホストは、故障に応答して前記第１記憶ボリュームおよび前記第２記憶ボリュームのうちの一方を前記第３記憶ボリュームの内容で初期化するようにさらに構成され、前記第３記憶ボリュームの前記内容は前記第２記憶ボリュームからコピーされる、請求項に記載のシステム。
【請求項２７】
記憶ボリュームにおいて新しい記憶関係を作成する方法であって、
第１記憶ボリュームにおいて記憶関係を作成することであって、前記記憶関係が、前記第１記憶ボリュームにより受け取られた更新を第２記憶ボリュームに格納するために前記第１記憶ボリュームにより使われる情報を含み、前記第１記憶ボリュームが前記第２記憶ボリュームとの既存の記憶関係を欠いている、前記作成することと、
前記記憶関係が作成されたときからデータ構造において前記第１記憶ボリュームに対する更新を追跡することであって、前記更新は、前記第２記憶ボリュームにコピーされるべく意図される、前記追跡することと、
前記データ構造内の追跡されている前記更新に基づいて前記第１記憶ボリュームから前記第２記憶ボリュームに前記更新をコピーすることと、
を含む方法。
【請求項２８】
記憶関係は第１記憶関係であり、前記第１記憶ボリュームは第３記憶ボリュームとの既存の第２記憶関係を有する、請求項に記載の方法。
【請求項２９】
前記記憶関係は、前記第１記憶ボリュームを再初期化すること無く作成される、請求項に記載の方法。
【請求項３０】
同期ミラーを一次記憶ボリュームとして活動化するソフトウェアを配備する方法であって、前記方法は、
顧客同期ミラーおよび非同期ミラー・コンフィギュレーションおよび信頼性要件を決定することと、
同期ミラー・活動化コンピュータ・コードを実行することとを含み、前記コンピュータ・コードは、
第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定するように構成され、ここで前記第１記憶ボリュームは前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームは前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームは前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含み、
前記第１記憶ボリュームが前記故障の後に操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令するように構成され、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させるように構成され、
前記第１記憶ボリュームと前記第３記憶ボリュームとが実質的に無矛盾になった後に更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納すると共に前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納するように構成される、
方法。
【請求項３１】
同期ミラーを一次記憶ボリュームとして活動化する装置であって、
第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定するための手段であって、前記第１記憶ボリュームは前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームは前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームは前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む、前記手段と、
前記第１記憶ボリュームが前記故障の後に操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令するための手段と、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させるための手段と、
前記第１記憶モジュールと前記第３記憶モジュールとが実質的に無矛盾になった後に更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納すると共に前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納するための手段と、
を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期データ・ミラーに関し、特に非同期データ・ミラーを含むシステムにおける一次記憶ボリュームから、同期データ・ミラーへの効率的スワッピングに関する。
【背景技術】
【０００２】
データ記憶システムのユーザは、高度の信頼性と、故障からの迅速な回復とを必要とすることがある。あるデータ記憶システム・ユーザは、自然災害に起因するデータ損失からの保護を必要とすることがある。例えば、金融機関、小売業者などのようなデータ記憶システム・ユーザは、金融取引、在庫管理などのために高度の信頼性を要求することがある。ＩＢＭ（ＩＢＭ社の登録商標）のＴｏｔａｌＳｔｏｒａｇｅ（登録商標）Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ（登録商標）のような企業記憶システム（ｅｎｔｅｒｐｒｉｓｅｓ  ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ（“ＥＳＳ”）は、信頼性が重要である場合にデータを記憶させるために金融機関他によって使用され得る。その様なシステムは、redundant array of inexpensive/independent disks（“ＲＡＩＤ”）のような、データ記憶ボリュームに組織された高度にスケーラブルなデータ記憶装置を含むことができる。
【０００３】
データ記憶システムは、データ記憶ボリューム同士を接続するストレージ・エリア・ネットワーク（“ＳＡＮ”）を含むことができる。通例、ＳＡＮを介してデータ記憶ボリュームにアクセスするために記憶コントローラが使用される。ホストは、通例、ローカルな一次記憶ボリュームにデータを格納する記憶コントローラに書き込みリクエストを送る。カスケード型データ・システム構成では、その記憶コントローラは、また、一次記憶ボリュームに格納されているデータを二次データ記憶ボリュームの記憶コントローラに送る。一次記憶ボリュームに影響を及ぼす自然災害の後に回復を可能にするために、データ記憶ボリュームは一次記憶ボリュームおよび関連する記憶コントローラから長い距離を置いて配置されることもできる。データ記憶ボリュームは一次記憶ボリュームに割合に近くても良く、これはデータ・アクセス・レートを減少させる。
【０００４】
故障後の回復時間をなるべく短くするために、二次記憶ボリュームは一次データ・ボリュームのミラーであり得る。データは、同期書き込み動作を用いてミラー・データ・ボリュームに書き込まれ得る。通例、同期データ書き込み動作は、書き込み動作をリクエストしているホストに成功が報告される前にデータが一時記憶ボリュームとミラー・データ・ボリュームとに書き込まれることを必要とする。同期書き込み動作は、一次記憶ボリュームとミラー記憶ボリュームとに首尾よくデータを書き込むのに必要な時間に起因してより多くのオーバーヘッドを必要とする。
【０００５】
通例、一次記憶ボリュームとミラー・データ・ボリュームとの間の距離は性能に影響を及ぼし、一次記憶ボリュームおよび関連する記憶コントローラから長い距離をおいて位置するデータ記憶ボリュームは、同期書き込み動作を非実用的とするほど性能を低下させ得る。リモート・データ・ボリュームにデータを書き込むために非同期書き込み動作が使用され得る。非同期書き込み動作は、通例、書き込み動作が向けられている記憶ボリュームにデータが首尾よく書き込まれた後に書き込み動作の成功が報告されることを可能にする。該データは、書き込み動作が向けられている記憶ボリュームのストレージへのデータ書き込みの完了後に、リモート記憶ボリュームに書き込まれる。
【０００６】
カスケード型記憶システムでは、データは、一次記憶ボリュームに、また同時にミラー・データ・ボリュームに書き込まれ得る。その後、データはミラー・データ・ボリュームからリモート・データ・ボリュームに非同期的にコピーされ得る。リモート・記憶ボリュームに格納されるべく意図されているデータは、通例、そのデータをリモート記憶ボリュームに非同期的に書き込めるようになる前にエラーが発生しても該データが失われないように、不揮発性メモリあるいは書き込みキャッシュに、また記憶コントローラの一般キャシュにも格納される。
【０００７】
リモート記憶ボリュームに非同期的に書き込まれるべきデータを追跡するために１つ以上のビット・マップが通例使用される。最後の同期化以来、あるいは非同期転送を開始する記憶ボリュームとリモート記憶ボリュームとが無矛盾であった最後の時以来行われた変更の非同期転送を開始する記憶ボリュームにおけるトラック・アドレスによって実時間レコードを維持するために、アクティブ・トラック・アレイ、変更トラック・アレイ（ｃｈａｎｇｅｄ  ｔｒａｃｋ  ａｒｒａｙ）、あるいは変更記録（ｃｈａｎｇｅ  ｒｅｃｏｒｄｉｎｇ（“ＣＲ”）ビットマップとしばしば称されるビットのアレイが通例使用される。どのトラックが非同期書き込み動作の一部として一次記憶ボリュームに書き込まれ、リモート記憶ボリュームにコピーされる必要が依然としてあるかを示すために、時にはリカバリ・トラック・アレイ、コピー・トラック・アレイ、あるいはアウト・オブ・シンク（ｏｕｔ  ｏｆ  ｓｙｎｃ（“ＯＯＳ”））ビットマップと称される第２のビットマップが使用される。
【０００８】
通例、更新がリモート記憶ボリュームに首尾よく書き込まれると、ＯＯＳビットマップの対応するビットがクリアされる。一実施態様では、ＣＲビットマップの内容が定期的にＯＯＳビットマップと併合される。他の１つの実施態様では、通例、リモート記憶ボリュームに書き込まれるべき更新がそれ以上無いことをＯＯＳビットマップが示しているときに、ＣＲビットマップの内容が定期的にＯＯＳビットマップの上に書き込まれる。
【０００９】
良くあるデータ記憶システム・アーキテクチャ１００が図１のＡに描かれている。データ記憶システム１００は、データを第１記憶ボリューム１０６の第１記憶コントローラ１０４に送るホスト１０２によって具体化される。第１記憶ボリューム１０６は、初めは一次記憶ボリュームとして指定され、ローカル接続１０８を介して第１記憶コントローラ１０４からデータを受け取る。第２記憶ボリューム１１０は、一次記憶ボリュームのミラー・データ・ボリュームであり、関連する第２記憶コントローラ１１１を通して同期接続１１２を介してデータを受け取る。一実施態様では、同期接続１１２はメトロ・ミラー接続である。通例、第１記憶コントローラ１０４と第１記憶ボリューム１０６とは１つのローカル・サイトに置かれるけれども、ある距離だけ離されてもよい。
【００１０】
第２記憶ボリューム１１０により受け取られた更新は第３記憶ボリューム１１４にも書き込まれ、これは通例、第１記憶ボリューム１０６および第２記憶ボリューム１１０から遠く離れて置かれる。更新は第３記憶ボリューム１１４に非同期的に送られる。第２記憶ボリューム１１０と第３記憶ボリューム１１４とは、光ファイバ・ケーブル、銅ケーブル、無線接続などを含むことのできる接続１１６を介して通信する。一実施態様では、非同期接続１１６はグローバル・ミラー接続（Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ  ｃｏｎｎｅｃｔｉｏｎ）である。第４の記憶ボリューム１１８が、一実施態様において、第３記憶ボリューム１１４と共に置かれる。第３記憶コントローラ１２０は、第３記憶ボリューム１１４へのデータのコピーと、第３記憶ボリューム１１４から第４記憶ボリューム１１８へのデータのコピーとを容易にする。通例、第３記憶コントローラ１２０は、フラッシュ・コピー・プロセス１２２を用いて第４記憶ボリューム１１８に更新をコピーし、更新は第４記憶ボリューム１１８において時間順に組み立てられる。
【００１１】
通例、第４の記憶ボリューム１１８は、記憶システム１００に存在するならば、データが失われ、壊れ、あるいはアクセス不能になった場合に第１記憶ボリューム１０６または第２記憶ボリューム１１０にデータを復元するために使われる。一実施態様では、第４記憶ボリューム１１８の内容は第３ボリュームを第３記憶ボリューム１１４と同期した状態にするために使われ、第３記憶ボリューム１１４は第１記憶ボリューム１０６または第２記憶ボリューム１１０あるいはその両方を再初期化するために使われる。記憶ボリューム１０６，１１０，１１８をインクリメンタルに同期化するのではなく第１記憶ボリューム１０６または第２記憶ボリューム１１０上のデータを置換することは、コピー・プロセスに要する時間と、記憶ボリューム１０６，１１０，１１８がホスト１０２にとってアクセスできない時間との故に、望ましくない。
【００１２】
第２記憶ボリューム１１０は、第１記憶ボリューム１０６と第２記憶ボリュームとが無矛盾であったときから後に起こった更新を追跡するために、関連するＣＲビットマップ１２４を持つことができる。第２記憶ボリューム１１０は、第３記憶ボリューム１１４に非同期的にコピーされるべく意図された更新が首尾よくコピーされる時を追跡するために、関連するＯＯＳビットマップをも持つことができる。ＯＯＳビットマップは、通例、ＣＲビットマップの内容または第２記憶ボリューム１１０により受け取られた更新を受け取ることによって、更新を追跡する。
【００１３】
図１のＢは、第１記憶ボリューム１０６に故障がある状況を描いている。ホスト１０２は、通例、第１記憶ボリューム１０６が修理されるまで第２記憶ボリューム１１０が一次記憶ボリュームであるように一次記憶ボリュームを交換する。ホスト１０２は、通例、第２記憶ボリューム１１０との接続１２８を確立する。第１記憶ボリューム１０６が修理されたとき、図２のＡに描かれているように、第２記憶ボリューム１１０の第２記憶コントローラ１１１は、通例、第３記憶ボリューム１１４に対する更新を一時停止し、再同期化するために第１記憶ボリューム１０６との接続１３０を確立する。一実施態様では、第２記憶ボリューム１１０から第１記憶ボリューム１０６にデータを送る接続１３０を確立することはフェイルオーバー接続である。
【００１４】
第１記憶ボリューム１０６が第２記憶ボリューム１１０と無矛盾になると、ホスト１０２は、図２のＢに描かれているように、一次記憶ボリュームが第１記憶ボリューム１０６であるように交換し、第１記憶ボリューム１０６は第２記憶ボリューム１１０との同期接続１１２を再確立する。一実施態様では、第１記憶ボリューム１０６から第２記憶ボリューム１１０へのデータの送付を再確立することはフェイルバック（ｆａｉｌｂａｃｋ）接続である。第２記憶ボリューム１１０は第３記憶ボリューム１１４に更新を非同期的に再び送り始め、これは第４記憶ボリューム１１８を更新し始める。フェイルオーバー接続およびフェイルバック接続は、第１記憶ボリューム１０６と第２記憶ボリューム１１０との間の記憶関係のような、既存の関係を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
第２記憶ボリューム１１０が第１記憶ボリューム１０６と同期していて第３記憶ボリューム１１４に対する更新を一時停止している間（図２Ａを参照）、第３記憶ボリューム１１４と第４記憶ボリューム１１８とはエージングし始める。第１記憶ボリューム１０６が長期間にわたって操作可能でなかったならば、第３記憶ボリューム１１４および第４記憶ボリューム１１８は第１記憶ボリューム１０６および第２記憶ボリューム１１０と無矛盾の状態にされるのに長い時間を必要とし得る。第１記憶ボリューム１０６、第３記憶ボリューム１１４、および第４記憶ボリューム１１８を再同期化するプロセスは数時間あるいは数日も必要とし得る。第３記憶ボリューム１１４が殆ど無矛盾の状態にされる前に第３記憶ボリューム１１４の内容を第１記憶ボリューム１０６または第２記憶ボリューム１１０に再ロードすることを必要とする如何なる災害も、第３記憶ボリューム１１４が無矛盾に近くないので、問題である。
【００１６】
以上の議論から、同期ミラー・ボリュームを効率的に交換する装置、システム、および方法に対するニーズが存在することは明らかであるはずである。有利なことに、その様な装置、システム、および方法は、第２記憶ボリューム１１０、第３記憶ボリューム１１４、および第４記憶ボリューム１１８を殆ど同期した状態に保っている間に第１記憶ボリュームを再同期化し、システム１００を再同期化するのに要する時間を短縮するであろう。該装置、システム、および方法は、既存の記憶関係が前に存在しなかった記憶ボリューム間のフェイル・オーバーを強制するであろう。
【課題を解決するための手段】
【００１７】
本発明の方法は、同期ミラーを一次記憶ボリュームとして活動化(activate)するために与えられる。この方法は、開示される実施態様においては、記載される装置およびシステムの動作に関して以下で提示される機能を実行するのに必要なステップを実質的に含む。一実施態様では、該方法は、第１記憶ボリュームが故障後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令することを含む。該方法は、第１記憶ボリュームが第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させることを含む。該方法は、第１記憶ボリュームおよび第３記憶ボリュームが実質的に無矛盾になった後に更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了したことに応答して、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納しかつ第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することを含む。
【００１８】
該方法は、第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定することを含むこともできる。第１記憶ボリュームは一次記憶ボリュームとして指定され、第２記憶ボリュームは第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームは該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む。１つの更なる実施態様では、該方法は第２記憶ボリュームにおいて記憶関係を終了させることを含む。該記憶関係は、第２記憶ボリュームが第１記憶ボリュームからのデータを同期的に格納するために使う情報を含む。
【００１９】
１つの代わりの実施態様では、該方法は、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納しかつ第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することに応答して第１記憶ボリュームを一次記憶ボリュームとして指定することを含む。この代わりの実施態様の方法は、第１記憶ボリュームが一次記憶ボリュームとして指定されたことに応答して、第１記憶ボリュームから第３記憶ボリュームに送られた更新を第２記憶ボリュームに格納するように第３記憶ボリュームに指令することを含む。この代わりの実施態様の方法は、第２記憶ボリュームが第３記憶ボリュームと実質的に無矛盾になったことに応答して、第１記憶ボリュームから第３記憶ボリュームに更新を送ることを終了させることを含む。この代わりの実施態様の方法は、第１記憶ボリュームから第３記憶ボリュームに更新を送ることを終了したことに応答して、第１記憶ボリュームにより受け取られた更新を第２記憶ボリュームに同期的に格納しかつ第２記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することを含む。
【００２０】
一実施態様では、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令することは、記憶関係を作成すると共に、その後に第３記憶ボリュームにより受け取られた更新を追跡するように第３記憶ボリュームに指令することをさらに含む。その記憶関係は、更新を第１記憶ボリュームに非同期的に格納するために第３記憶ボリュームが使う情報を含む。他の１つの実施態様では、第２記憶ボリュームから第３記憶ボリュームに更新を送ることを終了させることは、第２記憶ボリュームおよび第３記憶ボリュームから記憶関係を除去することをさらに含む。その記憶関係は、第３記憶ボリュームにデータを格納するために第２記憶ボリュームが使う情報を含む。他の１つの実施態様では、更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させることは、第２記憶ボリュームから第３記憶ボリュームに更新を送ることの終了の後に第２記憶ボリュームにより受け取られた更新を追跡することをさらに含む。
【００２１】
一実施態様では、第３記憶ボリュームに更新を非同期的に格納することはフラッシュ・コピー・プロセスを用いて第３記憶ボリュームの第４記憶ボリュームを更新することをさらに含み、更新はその第４記憶ボリューム上で時間順に編成される。通例、第４記憶ボリュームは、一次記憶ボリュームを再初期化しあるいは第３ボリュームを復元するために適するデータを含む。一実施態様では、第２記憶ボリュームから第３記憶ボリュームに更新を送ることを終了させることは、第４記憶ボリュームに対する更新を終了させることをさらに含む。他の１つの実施態様では、第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することは、第４記憶ボリュームに対する更新を再スタートすることをさらに含む。
【００２２】
一実施態様では、第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納することは、第１記憶ボリュームにより受け取られた第３記憶ボリュームにコピーされるべき更新を追跡することをさらに含む。記憶関係は、第１記憶ボリュームが更新を第３記憶ボリュームに非同期的に格納するために使う情報を含む。他の１つの実施態様では、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納することは、第２記憶ボリュームにおいて記憶関係を作成するように第２記憶ボリュームに指令することをさらに含む。その記憶関係は、データを第１記憶ボリュームに同期的に格納するために第２記憶ボリュームが使う情報を含む。
【００２３】
同期ミラーを一次記憶ボリュームとして活動化する装置は、第２記憶ボリュームおよび第３記憶ボリュームに対する更新を維持しながら第３記憶ボリュームから修理された第１記憶ボリュームを同期化する必要なステップを機能的に実行するように構成された複数のモジュールをも備える。これらのモジュールは、記載される実施態様においては、第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定する主スワップ・モジュールを含む。第１記憶ボリュームは一次記憶ボリュームとして指定され、第２記憶ボリュームは第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームは、該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む。
【００２４】
該装置は、第１記憶ボリュームが該故障後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令するＣ−Ａフェイルバック・モジュールを含む。該装置は、第１記憶ボリュームが第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させるＢ−Ｃ終了モジュールを含む。該装置は、Ｂ−Ｃ終了モジュールが更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させたことに応答して、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納すると共に第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納するＢ−Ａ−Ｃ記憶モジュールを含む。
【００２５】
該装置は、一実施態様においては、記憶関係を作成すると共に、該記憶関係の作成の後に第３記憶ボリュームにより受け取られた更新を追跡するように第３記憶ボリュームに指令するＣ−Ａ強制フェイルオーバー・モジュールを含む。その記憶関係は、更新を第１記憶ボリュームに非同期的に格納するために第３記憶ボリュームが使う情報を含む。他の１つの実施態様では、主スワップ・モジュールは、第１記憶ボリュームにおける故障を検出して第２記憶ボリュームを一次記憶ボリュームとしたことに応答して、第２記憶ボリュームにおいて、また第３記憶ボリュームにおいて記憶関係を終了させるように構成されたＡ−Ｂ終了モジュールをさらに含む。その記憶関係は、第１記憶ボリュームからのデータを同期的に格納するために第２記憶ボリュームが使う情報を含む。
【００２６】
一実施態様では、Ｂ−Ｃ終了モジュールは、第２記憶ボリュームから記憶関係を除去するようにさらに構成される。その記憶関係は、データを第３記憶ボリュームに格納するために第２記憶ボリュームが使う情報を含む。他の１つの実施態様では、Ｂ−Ｃ終了モジュールは、第２記憶ボリュームから第３記憶ボリュームに更新を送ることを終了した後に第２記憶ボリュームにより受け取られた更新を追跡するように構成された変更追跡モジュールをさらに含む。
【００２７】
該装置は、一実施態様では、第４記憶ボリュームを含み、第３記憶ボリュームは、フラッシュ・コピー・プロセスを用いて第４記憶ボリュームに更新を格納するように構成される。更新は、第４記憶ボリュームにおいて時間順に編成される。一実施態様では、Ｂ−Ｃ終了モジュールは、第４記憶ボリュームに対する更新を終了させるようにさらに構成される。他の１つの実施態様では、Ｂ−Ａ−Ｃ記憶モジュールは、第４記憶ボリュームに対する更新を再スタートするようにさらに構成される。
【００２８】
一実施態様では、Ｂ−Ａ−Ｃ記憶モジュールは、第３記憶ボリュームにコピーされるべき第１記憶ボリュームにより受け取られた更新を追跡するように第１記憶ボリュームに指令するＡ−Ｃ追跡モジュールをさらに含む。他の１つの実施態様では、Ｂ−Ａ−Ｃ記憶モジュールは、第２記憶ボリュームにおいて記憶関係を作成するように第２記憶ボリュームに指令するＢ−Ａインクリメンタル再同期化モジュールをさらに含む。その記憶関係は、データを第１記憶ボリュームに同期的に格納するために第２記憶ボリュームが使う情報を含む。
【００２９】
同期ミラーを一次記憶ボリュームとして活動化する本発明のシステムも提示される。該システムは、第１記憶ボリュームの故障の前は一次記憶ボリュームとして指定される第１記憶ボリュームと、その故障の前は第１記憶ボリュームのデータの同期ミラー・コピーを含む第２記憶ボリュームと、該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む第３記憶ボリュームと、第１記憶ボリュームおよび第２記憶ボリュームに更新を格納するように構成されたホストとによって具体化され得る。特に、ホストは、一実施態様では、第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定する主スワップ・モジュールを含む。ホストは、第１記憶ボリュームが該故障の後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令するＣ−Ａフェイルバック・モジュールを含む。
【００３０】
ホストは、第１記憶ボリュームが第３記憶ボリュームとほぼ無矛盾になったことに応答して更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させるＢ−Ｃ終了モジュールを含む。ホストは、更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了したことに応答して、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納すると共に第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納するＢ−Ａ−Ｃ記憶モジュールを含む。該システムは、第３記憶ボリュームと共に配置される第４記憶ボリュームをさらに含むことができ、この場合、第３記憶ボリュームはフラッシュ・コピー・プロセスを用いて第４記憶ボリュームに更新を格納するように構成され、該更新は第４記憶ボリュームにおいて時間順に編成される。
【００３１】
記憶ボリュームにおいて新しい記憶関係を作成する本発明の方法が提示される。この方法は、開示される実施態様では、記述された装置およびシステムの動作に関して上で提示された機能を実行するために必要なステップを実質的に含む。一実施態様では、該方法は、第１記憶ボリュームにおいて記憶関係を作成することを含む。その記憶関係は、第１記憶ボリュームにより受け取られた更新を第２記憶ボリュームに格納するために第１記憶ボリュームにより使われる情報を含み、第１記憶ボリュームは第２記憶ボリュームとの既存の記憶関係を欠いている。該方法は、該記憶関係が作成されたときからデータ構造において第１記憶ボリュームに対する更新を追跡することを含む。該更新は、第２記憶ボリュームにコピーされるべく意図される。該方法は、該データ構造内の追跡されている更新に基づいて第１記憶ボリュームから第２記憶ボリュームに該更新をコピーすることを含む。一実施態様では、記憶関係は第１記憶関係であり、第１記憶ボリュームは、第３記憶ボリュームとの既存の第２記憶関係を有する。他の１つの実施態様では、該記憶関係は、第１記憶ボリュームを再初期化すること無く作成される。
【００３２】
同期ミラーを一次記憶ボリュームとして活動化するソフトウェアを配備するために本発明の１つの方法が提示される。該方法は、開示される実施態様においては、記載される装置およびシステムの動作に関して以下で提示される機能を実行するのに必要なステップを実質的に含む。一実施態様では、該方法は、顧客同期ミラーおよび非同期ミラー・コンフィギュレーションおよび信頼性要件を決定することと、同期ミラー活動化コンピュータ・コードを実行することとを含む。該コンピュータ・コードは、第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定するように構成される。第１記憶ボリュームは一次記憶ボリュームとして指定され、第２記憶ボリュームは第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームは該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む。
【００３３】
該コンピュータ・コードは、第１記憶ボリュームが該故障の後に操作可能になったことに応答して、第２記憶ボリュームから第３記憶ボリュームに送られた更新を第１記憶ボリュームに格納するように第３記憶ボリュームに指令するように構成される。該コンピュータ・コードは、第１記憶ボリュームが第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了させるように構成される。該コンピュータ・コードは、第１記憶ボリュームと第３記憶ボリュームとが実質的に無矛盾になった後に更新を第２記憶ボリュームから第３記憶ボリュームに送ることを終了したことに応答して、第２記憶ボリュームにより受け取られた更新を第１記憶ボリュームに同期的に格納すると共に第１記憶ボリュームにより受け取られた更新を第３記憶ボリュームに非同期的に格納するように構成される。
【００３４】
本明細書の全体において特徴、利点への言及あるいは類似の言葉は、本発明で実現され得る特徴および利点の全てが本発明のいずれか１つの実施態様に存在するべきであるかあるいは存在することを示唆しない。むしろ、特徴および利点に言及する言葉は、実施態様に関して記載された特定の特徴、利点、または特性が本発明の少なくとも１つの実施態様に含まれることを意味すると理解される。従って、特徴および利点についての議論と、類似の言葉とは、本明細書の全体にわたって、同じ実施態様に言及することができるが、必ずしも同じ実施態様には言及しない。
【００３５】
さらに、記載される特徴、利点、および記載される特性は、１つ以上の実施態様において任意の適切な仕方で組み合わされ得る。当業者は、本発明の実施態様が特定の実施態様の特定の特徴または利点のうちの１つ以上を持たずに実施され得るということを認識するであろう。他の場合には、本発明の全ての実施態様には存在しないかもしれない付加的な特徴および利点が或る実施態様では認められるかもしれない。
【００３６】
下記の図面を参照して本発明の好ましい実施態様が単に例として記載される。
【発明を実施するための最良の形態】
【００３７】
本明細書に記載されている機能単位の多くは、それらの実施独立性を特に強調するために、モジュールとして分類されている。例えば、モジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、ロジック・チップのような、容易に入手可能な（ｏｆｆ−ｔｈｅ−ｓｈｅｌｆ）半導体、トランジスタ、または他の個別コンポーネントを含むハードウェア回路として実現され得る。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイスなどのようなプログラマブルなハードウェア装置でも実現され得る。
【００３８】
モジュールは、種々のタイプのプロセッサにより実行されるソフトウェアでも実現され得る。実行可能コードの被識別モジュールは、例えば、オブジェクト、プロシージャ、または関数として編成され得るコンピュータ命令の１つ以上の物理的なまたは論理的なブロックを含むことができる。それにもかかわらず、被識別モジュールの実行ファイル『ｅｘｅｃｕｔａｂｌｅｓ』は、物理的に一緒に置かれなくても良く、論理的に結合されたときに該モジュールを構成して該モジュールの定められた目的を達成する別々の場所に格納された多様な命令を含むことができる。
【００３９】
実際、実行可能コードのモジュールは、単一の命令であり得、あるいは多数の命令であり得、そして数個の異なるコード・セグメントに、複数の異なるプログラムに、また数個のメモリ装置に分散されることさえできる。同様に、演算データは、ここではモジュール内で識別されて図示されることができ、そして任意の適切な形で具体化されて任意の適切なタイプのデータ構造の中で編成されることができる。演算データは、単一のデータ・セットとして集められても良く、あるいは複数の異なる記憶装置を含む複数の異なる場所に分散されても良く、そして少なくとも部分的にシステムまたはネットワーク上の単なる電子信号として存在しても良い。
【００４０】
信号担持媒体への言及は、信号を生成し、信号を生成させ、あるいはデジタル処理装置において機械可読命令のプログラムを実行させることのできる任意の形をとることができる。信号担持媒体は伝送線、コンパクト・ディスク、デジタル・ビデオ・ディスク、磁気テープ、ベルヌーイ・ドライブ、磁気ディスク、パンチ・カード、フラッシュ・メモリ、集積回路、または他のデジタル処理装置記憶装置により具体化され得る。
【００４１】
本発明の実施態様の記述される特徴、構造、あるいは特性は、１つ以上の実施態様において任意の適切な仕方で組み合わされ得る。以下の記述においては、本発明の実施態様の完全な理解を提供するために、プログラミングの例、ソフトウェア・モジュール、ユーザ・セレクション、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなどのような多数の具体的な細目が提供される。しかし、当業者は、本発明の実施態様がそれらの細目のうちの１つ以上を持つこと無く、あるいは他の方法、コンポーネント、材料などで実施され得ることを認識するであろう。
【００４２】
ここに包含されている概要フローチャート図は一般的に論理フローチャート図として提示されている。その様なものとして、描かれている順序と、ラベルが付されているステップとは、提示される方法の一実施態様を示す。図示されている方法の１つ以上のステップ、あるいはその部分と機能、論理、または効果に関して同等である他のステップおよび方法が考案され得る。さらに、使われているフォーマットおよび記号は該方法の論理ステップ説明するために提供されており、該方法の範囲を限定しないと理解される。種々の矢タイプと線タイプとが該フローチャート図で使用され得るけれども、それらは対応する方法の範囲を限定しないと理解される。実際、該方法の論理的流れだけを示すために或る矢あるいはコネクタが使用され得る。例えば、矢は、描かれた方法の列挙されたステップ間の不特定の所要時間の待ち期間あるいは監視期間を示すことができる。さらに、特定の方法が行われる順序は、示されている対応するステップの順序と厳密に一致するかもしれないし、しないかもしれない。
【００４３】
図３は、一次記憶ボリューム故障の前の本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システム２００の一実施態様を示す略ブロック図である。データ・システム２００は、ホスト２０２と、第１記憶コントローラ２０４と、第１記憶ボリューム２０６と、ホスト２０２および第１記憶コントローラ２０４の間の接続２０８と、第２記憶ボリューム２１０と、第２記憶コントローラ２１１と、第１記憶ボリューム２０６および第２記憶ボリューム２１０の間の同期接続２１２と、第３記憶ボリューム２１４と、第２記憶ボリューム２１０および第３記憶ボリューム２１４の間の非同期接続２１６と、第４記憶ボリューム２１８と、第３記憶コントローラ２２０と、第３記憶ボリューム２１４および第４記憶ボリューム２１８の間の接続２２２と、第２記憶ボリューム２１０に関連付けられている後述されるＣＲビットマップ２２４およびＯＯＳビットマップ２２６とを含む。一実施態様では、データ・システム２００のコンポーネントは、データ・システム２００が本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのモジュール、コンポーネント、接続などを含むことを除けば、図１のＡに関連して記載されたデータ記憶システム１００に類似する。
【００４４】
データ・システム２００は、記憶コントローラ２０４，２１１，２２０に書き込みリクエストを送る１つ以上のホスト２０２を含む。ホスト２０２は、通例サーバであるけれども、ワークステーション、パーソナル・コンピュータ、ラップトップ・コンピュータ等であり得る。一実施態様では、ホスト２０２は、コンピュータ、サーバ、プリンタ、ルータなどのネットワークを含む。他の１つの実施態様では、ホスト２０２は第１記憶コントローラ２０４と結合される。ホスト２０２は、通例ＳＡＮを介して記憶コントローラ２０４，２１１，２２０と通信するけれども、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、無線ネットワークなどを介して通信することができる。ホスト２０２は、読み出しリクエスト、コピー・リクエスト、あるいはその他のデータ関連リクエストを記憶コントローラ２０４，２１１，２２０に送るようにも構成され得る。当業者は、データ書き込みリクエストを記憶コントローラ２０４，２１１，２２０に送ることのできるホスト２０２の他の実施態様を認識しているであろう。
【００４５】
データ・システム２００は、ホスト２０２から書き込みリクエストを受け取ってファイル、ファイルに対する更新、ファイル情報など（以降、“更新”）を１つ以上の記憶ボリューム２０６，２１０，２１４，２１８に格納するように構成された第１記憶コントローラ２０４を含む。一実施態様では、第１記憶コントローラ２０４は企業記憶システム（“ＥＳＳ”）コントローラである。他の１つの実施態様では、第１記憶コントローラ２０４はＩＢＭ（ＩＢＭ社の登録商標）Ｓｙｓｔｅｍ  Ｓｔｏｒａｇｅ（登録商標）ＤＳ８０００（登録商標）記憶サーバである。第１記憶コントローラ２０４は、サーバ、ワークステーション、データ・ムーバ（ａ  ｄａｔａ  ｍｏｖｅｒ）、あるいは複数のコンポーネント及びコンピュータのシステムであり得る。通例、第１記憶コントローラ２０４は更新を一時的に格納するための揮発性メモリまたはキャッシュと共に不揮発性メモリまたは書き込みキャッシュを含む。当業者は、ホスト２０２から書き込みリクエストを受け取って該書き込みリクエストに関連する更新を記憶ボリューム２０６，２１０，２１４，２１８に格納することのできる他の第１記憶コントローラ２０４コンフィギュレーションを認識しているであろう。
【００４６】
システム２００は、第１記憶コントローラ２０４から受け取られた更新を格納する第１記憶ボリューム２０６を含む。通例、通常の動作条件下では第１記憶ボリューム２０６は一次記憶ボリュームとして指定されて直接に第１記憶コントローラ２０４から更新を受け取る。第１記憶ボリューム２０６は少なくとも１つのハード・ディスク・ドライブ（“ＨＤＤ”）を含むけれども、共同で１つのボリュームを形成するディスクのアレイを含むこともできる。第１記憶ボリューム２０６はＲＡＩＤアレイ、ジャスト・ア・バンチ・オブ・ディスクス（Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  ｏｆ  Ｄｉｓｋｓ（“ＪＢＯＤ”））などを含むことができる。第１記憶ボリューム２０６はテープ・ドライブ、オプティカル・ドライブなどを含むことができる。一実施態様では、第１記憶ボリューム２０６は１つのディスクか、あるいは１つのボリュームを形成するディスクのアレイを含む。他の１つの実施態様では、第１記憶ボリューム２０６は複数の記憶ボリュームを含む。
【００４７】
通例、第１記憶ボリューム２０６の１つ以上の記憶ボリュームは第１記憶コントローラ２０４にとってアクセス可能である。第１記憶ボリューム２０６は、一実施態様では、第１記憶ボリューム２０６の１つ以上の記憶ボリュームを制御すると共に第１記憶コントローラ２０４または他の記憶コントローラから更新を受け取るためにデータ・ムーバ、コントローラ、または他の、プロセッサおよびメモリを有する装置を含む。当業者は、第１記憶コントローラ２０４から更新を受け取ることのできる他の第１記憶ボリューム２０６を認識しているであろう。
【００４８】
システム２００は、ホスト２０２から第１記憶コントローラ２０４へのデータ接続２０８を含む。ホスト２０２は、通例ＳＡＮを含むけれどもファイバ接続、スモール・コンピュータ・システム・インターフェース（“ＳＣＳＩ”）、ローカル・エリア・ネットワーク、ルータ、スイッチなどを含むことのできる接続２０８を介して記憶コントローラ２０４，２１１，２２０と通信する。カスケード型データ記憶システム２００では、通例第１記憶ボリューム２０６が一次記憶ボリュームとして指定されているときには、第１記憶コントローラ２０４は、ホスト２０２からの更新を、第２記憶ボリューム２１０または第３記憶ボリューム２１４を通してではなくて、直接に第１記憶ボリューム２０６に送る。
【００４９】
データ・システム２００は、第１記憶ボリューム２０６と実質的に同様の第２記憶ボリューム２１０を含む。通例、第２記憶ボリューム２１０は、初めは第１記憶ボリューム２０６の同期ミラー・データ・ボリュームであって、第１記憶ボリューム２０６と同じデータを含む。通例、第２記憶ボリューム２１０は、第１記憶ボリューム２０６と同じ容量、同じ数のトラックなどを有する。第２記憶ボリューム２１０は、容認できない性能低下を伴わずに同期接続２１２を収容する接続を可能にするために充分に第１記憶ボリューム２０６に近い中間サイトに配置され得る。第２記憶ボリューム２１０は、一実施態様では、第１記憶ボリューム２０６と一緒に配置される。
【００５０】
データ・システム２００は、（関連する第１記憶コントローラ２０４を通して）第１記憶ボリューム２０６と（関連する第２記憶コントローラ２１１を通して）第２記憶ボリューム２１０との間のデータ接続２１２を含む。データ接続２１２は、ホスト２０２と第１記憶コントローラ２０４との接続２０８と実質的に同様である。データ接続２１２は、第１記憶ボリューム２０６と第２記憶ボリューム２１０とを同期接続することができる。データ・システム２００は、第２記憶ボリューム２１０に関連付けられた、第１記憶コントローラ２０４と実質的に同様の第２記憶コントローラ２１１を含む。
【００５１】
システム２００は、通例第１記憶ボリューム２０６および第２記憶ボリューム２１０から遠く離されて配置される第３記憶ボリューム２１４および第４記憶ボリューム２１８を含む。システム２００は、第３記憶ボリューム２１４および第４記憶ボリューム２１８に関連付けられた、第１記憶コントローラ２０４および第２記憶コントローラ２１１と実質的に同様の第３記憶コントローラ２２０を含む。第３記憶ボリューム２１４は、初めは更新を第２記憶ボリューム２１０および第２記憶コントローラ２１１から非同期的に受け取る。第３記憶コントローラ２２０は、非同期動作モード中、第３記憶ボリューム２１４により受け取られた更新をフラッシュ・コピー・プロセス２２２を用いて第４記憶ボリューム２１８にコピーする。第３記憶コントローラ２２０は、通例、第３記憶ボリューム２１４が第２記憶ボリューム２１０と無矛盾であった時点、または他の適切な意味のある時点に基づいて、第４記憶ボリューム２１８にコピーされた更新を時間順に再編成する。
【００５２】
システム２００は、第２記憶ボリューム２１０および第３記憶ボリューム２１４（および関連するコントローラ２１１，２２０）の間のデータ接続２１６を含む。データ接続２１６は、ワイド・エリア・ネットワーク接続、ファイバ・ネットワーク接続などであることができ、光ファイバ・ケーブル、銅ケーブル、無線接続、ハブ、ルータなどを含むことができる。第３記憶ボリューム２１４および第４記憶ボリューム２１８は通例第１記憶ボリューム２０６および第２記憶ボリューム２１０から遠く離れて配置されるので、第２記憶ボリューム２１０と第３記憶ボリューム２１４との間のデータ接続２１６はその様な距離に適する。
【００５３】
システム２００は、第２記憶ボリューム２１０に関連付けられたＣＲビットマップ２２４とＯＯＳビットマップ２２６とを含む。ビットマップ２２４，２２６は通例データ記憶装置であって、第２記憶コントローラ２１１により管理される。ＣＲビットマップ２２４は、一実施態様では、第３記憶ボリューム２１４との同期化の後に該ボリューム同士が無矛盾であったときに生じた第２記憶ボリューム２１０に対する更新を追跡する。ＯＯＳビットマップは、第３記憶ボリューム２１４に書き込まれるべき更新を追跡する。通例、両ビットマップ２２４，２２６は記憶ボリューム２１０，２１４に対する更新のトラック・アドレスを特定する。
【００５４】
例えば、定期的に、ＣＲビットマップ２２４の内容は、ＯＯＳビットマップ２２６がはかされた後にＯＯＳビットマップ２２６と併合される。ＯＯＳビットマップ２２６がはかされるとき、第２記憶ボリューム２１０と第３記憶ボリューム２１４とは無矛盾であると、あるいは同期化されていると考えられる。ＯＯＳビットマップ２２６は、ＯＯＳビットマップ２２６により追跡されている更新を第３記憶ボリューム２１４にコピーすることによってはかされる。更新が第２記憶ボリューム２１０から第３記憶ボリューム２１４に書き込まれてゆくとき、コピーされる更新に関連付けられたビットがＯＯＳビットマップ２２６からクリアされる。ＣＲビットマップ２２４は、第２記憶ボリューム２１０と第３記憶ボリューム２１４とが無矛盾であった時点以降に生じた変更を追跡する。ＯＯＳビットマップ２２６も、第２記憶ボリューム２１０により受け取られた更新を追跡することができる。一実施態様では、ＣＲビットマップ２２４は、ＯＯＳビットマップ２２６が完全にクリアされた後にＯＯＳビットマップ２２６にコピーされる。ＣＲビットマップ２２４も、その内容がＯＯＳビットマップ２２６にコピーされあるいは併合された後にその後の更新を追跡するためにクリアされ得る。
【００５５】
図４は、本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための装置３００の一実施態様を示す略ブロック図である。装置３００は、以下で記述されるＣ−Ａフェイルバック・モジュール３０２、Ｂ−Ｃ終了モジュール３０４、およびＢ−Ａ−Ｃ記憶モジュールを伴うホスト２０２を含む。一実施態様では、装置３００のモジュール３０２，３０４，３０６はホスト２０２と共に包含される。他の１つの実施態様では、装置３００のモジュール３０２，３０４，３０６は記憶管理コンピュータ（図示されていない）に含まれる。他の１つの実施態様では、装置３００のモジュール３０２，３０４，３０６は記憶コントローラ２０４，２１１，２２０に含まれる。当業者は、同期ミラーを活動化するための装置３００のモジュール３０２，３０４，３０６の他の場所を認識しているであろう。
【００５６】
装置３００は、第１記憶ボリューム２０６が故障後に操作可能になったことに応答して、第２記憶ボリューム２１０から第３記憶ボリューム２１４に送られた更新を第１記憶ボリューム２０６に格納するように第３記憶ボリューム２１４に指令するＣ−Ａフェイルバック・モジュール３０２を含む。第１記憶ボリューム２０６の故障後、第２記憶ボリューム２１０が一次記憶ボリュームとして指定されることができ、ホスト２０２は更新を第２記憶ボリューム２１０に送ることができる。第２記憶ボリューム２１０は、通例、更新を第３記憶ボリューム２１４に送り続ける。第３記憶ボリューム２１４は、第１記憶ボリューム２０６が操作可能でない間、ＯＯＳビットマップにおいて変更を追跡する。Ｃ−Ａフェイルバック・モジュール３０２は、第１記憶ボリューム２０６が操作可能であることを認識し、第３記憶ボリューム２１４に関連付けられているＯＯＳビットマップにより追跡される第１記憶ボリューム２０６に更新を送り始める。一実施態様では、更新は非同期的に送られる。他の１つの実施態様では、更新は同期的に送られる。
【００５７】
装置３００は、第１記憶ボリューム２０６が第３記憶ボリューム２１４と実質的に無矛盾になったことに応答して、更新を第２記憶ボリューム２１０から第３記憶ボリューム２１４に送ることを終了させるＢ−Ｃ終了モジュール３０４を含む。第１記憶ボリューム２０６が更新を第３記憶ボリューム２１４から受け取り始めた後、第１記憶ボリューム２０６は、ついには、第３記憶ボリューム２１４とほぼ無矛盾になるポイントに達する。一実施態様では、Ｂ−Ｃ終了モジュール３０４は、第１記憶ボリューム２０６と第３記憶ボリューム２１４とが無矛盾になったときに更新を送ることを終了させる。他の１つの実施態様では、Ｂ−Ｃ終了モジュール３０４は、第１記憶ボリューム２０６と第３記憶ボリューム２１４とが実質的に無矛盾になったときに更新を送ることを終了させる。Ｃ−Ａフェイルバック・モジュール３０２が更新を第１記憶ボリューム２０６に非同期的に送るときには後の実施態様が好ましい。一実施態様では、Ｂ−Ｃ終了モジュール３０４は第４記憶ボリューム２１８に対する更新を終了させる。
【００５８】
装置３００は、第１記憶ボリューム２０６および第３記憶ボリューム２１４が実質的に無矛盾になった後に更新を第２記憶ボリューム２１０から第３記憶ボリューム２１４に送ることを終了させたことに応答して、第２記憶ボリューム２１０により受け取られた更新を第１記憶ボリューム２０６に同期的に格納すると共に第１記憶ボリューム２０６により受け取られた更新を第３記憶ボリューム２１４に非同期的に格納するＢ−Ａ−Ｃ記憶モジュール３０６を含む。一実施態様では、Ｂ−Ａ−Ｃ記憶モジュール３０６は、第４記憶ボリューム２１８に対する更新を再スタートする。有利なことに、Ｂ−Ａ−Ｃ記憶モジュール３０６は、更新がホスト２０２から一次記憶ボリューム（第２記憶ボリューム２１０）に、同期的にミラー・データ・ボリューム（第１記憶ボリューム２０６）に、その後に非同期的に遠く離れた記憶ボリューム（第３記憶ボリューム２１４および第４記憶ボリューム２１８）に流れることのできる状態にデータ記憶システム２００を復元する。
【００５９】
装置３００は、従来技術システム（図１のＡないし図２のＢを参照）の欠点の多くを克服する。装置３００は、故障した記憶ボリューム（第１記憶ボリューム２０６）がオンラインに戻されかつ同期化される間、遠く離れた記憶ボリューム（第３記憶ボリューム２１４および第４記憶ボリューム２１８）へのデータの流れも実質的に維持しながらホスト２０２から一次記憶ボリューム（第２記憶ボリューム２１０）へのデータの流れを維持する。装置３００は、第１記憶ボリューム２０６を一次記憶ボリュームとして、また第２記憶ボリューム２１０をミラー・データ・ボリュームとして回復させるために装置３００に関連する該方法を反復するためにも使用され得る。
【００６０】
図５は、本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための装置４００の代わりの実施態様を示す略ブロック図である。装置４００は、図４の装置３００に関連して記載されたモジュールに実質的に類似するＣ−Ａフェイルバック・モジュール３０２と、Ｂ−Ｃ終了モジュール３０４と、Ｂ−Ａ−Ｃ記憶モジュール３０６とを有するホスト２０２を含む。さらに、装置４００は、主スワップ・モジュール４０２とＣ−Ａ強制フェイルオーバー・モジュール４０４とを含む。一実施態様では、主スワップ・モジュール４０２はＡ−Ｂ終了モジュール４０６を含む。他の１つの実施態様では、Ｂ−Ｃ終了モジュール３０４は変更追跡モジュール４０８を含む。他の１つの実施態様では、Ｂ−Ａ−Ｃ記憶モジュール３０６はＡ−Ｃ追跡モジュール４１０とＢ−Ａインクリメンタル再同期化モジュール４１２とを含む。装置４００は、一実施態様では、Ｃ−Ｂ強制フェイルバック・モジュール４１４と、Ｂ−Ｃ終了モジュール４１６と、Ａ−Ｂ−Ｃ記憶モジュール４１８とを含む。これらのモジュールは以下で記述される。
【００６１】
装置４００は、第１記憶ボリューム２０６における故障を検出したことに応答して第２記憶ボリューム２１０を一次記憶ボリュームとして指定する主スワップ・モジュール４０２を含む。初めは、第１記憶ボリューム２０６は一次記憶ボリュームとして指定され、第２記憶ボリューム２１０は第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリューム２１４は該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む。
【００６２】
一実施態様では、主スワップ・モジュール４０２はＩＢＭ社のＨｙｐｅｒＳｗａｐ（商標）プログラムを含む。他の１つの実施態様では、主スワップ・モジュール４０２は、第１記憶ボリューム２０６における故障を検出した後に自動的に第２記憶ボリューム２１０を一次記憶ボリュームとして指定する。他の１つの実施態様では、主スワップ・モジュール４０２は、オペレータの介入で第２記憶ボリューム２１０を一次記憶モジュールとして指定する。一実施態様では、主スワップ・モジュール４０２は、第２記憶ボリューム２１０における故障を検出した後、第１記憶ボリューム２０６を一次記憶ボリュームとして指定する。当業者は、故障を検出した後に主スワップ・モジュール４０２が一次記憶ボリュームを指定できる他の方法を認識するであろう。
【００６３】
一実施態様では、装置４００は、第３記憶ボリューム２１４に対して、記憶関係を作成して該記憶関係作成後に該記憶モジュールに対する更新を追跡するように指令するＣ−Ａ強制フェイルオーバー・モジュール４０４を含む。その記憶関係は、更新を第１記憶ボリューム２０６に非同期的に格納するために第３記憶ボリューム２１４が使う情報を含む。一実施態様では、Ｃ−Ａ強制フェイルオーバー・モジュール４０４は第２記憶コントローラ２１１に配置される。他の実施態様では、Ｃ−Ａ強制フェイルオーバー・モジュール４０４はホスト２０２または他の記憶コントローラ２０４，２２０に配置される。
【００６４】
一般的に、本発明の実施態様は、従来技術のフェイルオーバー・コマンドおよびフェイルバック・コマンドと比べての改良である強制フェイルオーバー機能および強制フェイルバック機能を含む。強制フェイルオーバー機能は、以前は存在しなかった記憶ボリュームに関連付けられた記憶関係の作成を可能にする。例えば、第１記憶ボリューム２０６から第２記憶ボリューム２１０に更新を同期的に格納する代表的な記憶関係が第１記憶ボリューム２０６と第２記憶ボリューム２１０との間に存在し得る。
【００６５】
故障後に第１記憶ボリューム２０６がオンラインにされた後に更新を第１記憶ボリューム２０６に送るように第２記憶ボリューム２１０に指令するフェイルオーバー・コマンドが発せられ得る。第１記憶ボリューム２０６が同期化されると、第１記憶ボリューム２０６が再び一次記憶ボリュームとして指定された後に更新を第２記憶ボリューム２１０に格納するように第１記憶ボリューム２０６に指令するためにフェイルバック・コマンドが発せられる。第２記憶ボリューム２１０により受け取られた更新を追跡し、その追跡される更新を第３記憶ボリューム２１４に格納するように第２記憶ボリューム２１０に指令する記憶関係は、従来技術のフェイルオーバー・コマンドあるいはフェイルバック・コマンドでは不可能であろう。
【００６６】
強制フェイルオーバー機能は、記憶ボリュームが初期化中に予め定義されていなかった他の記憶ボリュームとの記憶関係を確立することを可能にする。強制フェイルオーバー機能は、一実施態様では、他の記憶ボリュームとの記憶関係を確立するが更新を送らない。記憶ボリュームは、その代わりに、他の記憶ボリュームに格納される変更を追跡するためにＯＯＳビットマップを作成する。強制フェイルバック機能は、その後、ＯＯＳビットマップで該変更を追跡する記憶ボリュームから他の記憶ボリュームに流れる更新を開始する。一実施態様では、強制フェイルオーバー機能は該記憶ボリュームの前の記憶関係を終了させる。
【００６７】
Ｃ−Ａ強制フェイルオーバー・モジュール４０４は、強制フェイルオーバー機能の例である。例えば、第３記憶ボリューム２１４は、第２記憶ボリューム２１０との非同期記憶関係を有し、通常動作中に更新を受け取る。Ｃ−Ａ強制フェイルオーバー・モジュール４０４は、第３記憶ボリューム２１４において第１記憶ボリューム２０６との記憶関係を確立する。その記憶関係が確立されると、第３記憶ボリューム２１４は、第１記憶ボリューム２０６に送られる第３記憶ボリューム２１４により受け取られた変更を追跡し始める。一実施態様では、該変更はＯＯＳビットマップに格納される。該ＯＯＳビットマップは第３記憶コントローラ２２０に格納され得る。強制フェイルオーバー機能が無ければ、第３記憶ボリューム２１４は、更新を受け取って第２記憶ボリューム２１０に送ることに限定されるであろう、また、第１記憶ボリューム２０６との新しい記憶関係を確立して第１記憶ボリューム２０６に向けられた更新を追跡することはできないであろう。
【００６８】
主スワップ・モジュール４０２は、一実施態様では、第１記憶ボリューム２０６における故障を検出して第２記憶ボリューム２１０を一次記憶ボリュームにしたことに応答して第１記憶ボリューム２０６における記憶関係を終了させるＡ−Ｂ終了モジュール４０６を含む。その記憶関係は、第１記憶ボリューム２０６からのデータを同期的に格納するために第２記憶ボリューム２１０が使う情報を含む。第２記憶ボリューム２１０における記憶関係を終了させることは、一実施態様では、ホスト２０２が第２記憶ボリューム２１０を一次記憶ボリュームとして指定して更新を第２記憶ボリューム２１０に送ることを可能にする。
【００６９】
一実施態様では、Ｂ−Ｃ終了モジュール３０４は、第２記憶ボリューム２１０から第３記憶ボリューム２１４に更新を送ることの終了の後に第２記憶ボリューム２１０により受け取られた更新を追跡する変更追跡モジュール４０８を含む。通例、変更追跡モジュール４０８は、第２記憶ボリューム２１０に関連付けられているインクリメンタル再同期化ＣＲビットマップにおいて変更を追跡する。一実施態様では、インクリメンタル再同期化ＣＲビットマップは第２記憶コントローラ２１１に配置される。変更追跡モジュール４０８により作成されたインクリメンタル再同期化ＣＲビットマップは、Ｂ−Ｃ終了モジュールが第２記憶ボリューム２１０から第３記憶ボリューム２１４への更新を一時停止した後に受け取られた更新を変更追跡モジュール４０８が追跡することを可能にする。通例、第２記憶ボリューム２１０に関連付けられて第１記憶ボリューム２０６の故障の前に更新を追跡するために使用されるＣＲビットマップは、新しいインクリメンタル再同期化ＣＲビットマップが作成された後は使用されない。
【００７０】
一実施態様では、Ｂ−Ａ−Ｃ記憶モジュール３０６は、第１記憶ボリューム２０６において記憶関係を作成するように第１記憶ボリューム２０６に指令するＡ−Ｃ追跡モジュール４１０を含む。Ａ−Ｃ追跡モジュール４１０は、第３記憶ボリューム２１４にコピーされる更新を追跡するために第１記憶ボリューム２０６に関連付けられたＯＯＳビットマップを作成するように第１記憶ボリューム２０６に指令する。通例、該ＯＯＳビットマップは第１記憶コントローラ２０４に配置される。
【００７１】
他の１つの実施態様では、Ｂ−Ａ−Ｃ記憶モジュール３０６は、第２記憶ボリューム２１０において記憶関係を作成するように第２記憶ボリューム２１０に指令するＢ−Ａインクリメンタル再同期化モジュール４１２を含む。該記憶関係は、データを第１記憶ボリューム２０６に同期的に格納するために第２記憶ボリューム２１０が使う情報を含む。Ｂ−Ａインクリメンタル再同期化モジュール４１２は、該故障の前に存在していたけれどもホスト１０２が更新を第２記憶ボリューム２１０に送ることを可能にするために第２記憶ボリューム２１０から除去された記憶関係を第２記憶ボリューム２１０において再作成する。
【００７２】
通例、第３記憶ボリューム２１４に対して行われた更新を追跡する第２記憶ボリューム２１０に関連付けられたＯＯＳビットマップは、Ｂ−Ｃ終了モジュール３０４が第２記憶ボリューム２１０から第３記憶ボリューム２１４への更新を終了させる前に、はかされる。ＯＯＳビットマップがはかされた後、それは、通例、Ｂ−Ａインクリメンタル再同期化モジュール４１２が第２記憶ボリューム２１０に記憶関係を確立するように指令するときに、使われない。Ｂ−Ａインクリメンタル再同期化モジュール４１２は、一実施態様では、変更追跡モジュール４０８により作成されたインクリメンタル再同期化ＣＲビットマップの内容を、第１記憶ボリューム２０６にコピーされた更新を追跡する新しいＯＯＳビットマップに併合するように第２記憶コントローラ２１１に指令する。他の１つの実施態様では、Ｂ−Ａインクリメンタル再同期化モジュール４１２は、変更追跡モジュール４０８により作成されたインクリメンタル再同期化ＣＲビットマップの内容を第２記憶ボリューム２１０に関連付けられている既存のＯＯＳビットマップに併合するように第２記憶コントローラ２１１に指令し、該ＯＯＳビットマップは第１記憶ボリューム２０６にコピーされた更新を追跡する。第１記憶ボリューム２０６と第２記憶ボリューム２１０とが無矛盾になると、該ＯＯＳビットマップは、一実施態様では、使用されない。
【００７３】
装置４００は、一実施態様では、第１記憶ボリューム２０６が一次記憶ボリュームとして指定されたことに応答して第１記憶ボリューム２０６から第３記憶ボリューム２１４に送られた更新を第２記憶ボリューム２１０に格納するように第３記憶ボリューム２１４に指令するＣ−Ｂ強制フェイルバック・モジュール４１４を含む。装置４００は、他の１つの実施態様では、第２記憶ボリューム２１０が第３記憶ボリューム２１４と実質的に無矛盾になったことに応答して更新を第１記憶ボリューム２０６から第３記憶ボリューム２１４に送ることを終了させるＢ−Ｃ終了モジュール４１６を含む。装置４００は、他の１つの実施態様では、第１記憶ボリューム２０６から第３記憶ボリューム２１４に更新を送ることを終了したことに応答して第１記憶ボリューム２０６により受け取られた更新を第２記憶ボリューム２１０に同期的に格納すると共に第２記憶ボリューム２１０により受け取られた更新を第３記憶ボリューム２１４に非同期的に格納するＡ−Ｂ−Ｃ記憶モジュール４１８を含む。
【００７４】
図６は、本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための方法５００の一実施態様を示す略フローチャート図である。方法５００が始まって５０２、Ｃ−Ａフェイルバック・モジュール３０２は、第１記憶ボリューム２０６が故障後に操作可能になったことに応答して第２記憶ボリューム２１０から第３記憶ボリューム２１４に送られた更新を第１記憶ボリューム２０６に格納するように第３記憶ボリューム２１４に指令５０４する。Ｃ−Ａフェイルバック・モジュール３０２は、一実施態様では、第３記憶ボリューム２１４において第１記憶ボリューム２０６との記憶関係を作成する強制フェイルオーバー機能を発するように第３記憶ボリューム２１４に指令する。
【００７５】
Ｂ−Ｃ終了モジュール３０４は、第１記憶ボリューム２０６が第３記憶ボリューム２１４と実質的に無矛盾になったことに応答して、第２記憶ボリューム２１０から第３記憶ボリューム２１４に更新を送ることを終了５０６させる。通例、第１記憶ボリューム２０６が無矛盾状態にあるいはほぼ無矛盾の状態にされている間、ホスト２０２は更新を第２記憶ボリューム２１０に送り続け、第２記憶ボリューム２１０は更新を第３記憶ボリューム２１４に送り続ける。
【００７６】
Ｂ−Ａ−Ｃ記憶モジュール３０６は、第２記憶ボリューム２１０から第３記憶ボリューム２１４に更新を送ることをＢ−Ｃ終了モジュール３０４が終了させたことに応答して第２記憶ボリューム２１０により受け取られた更新を第１記憶ボリューム２０６に同期的に格納５０８する。さらに、Ｂ−Ｃ終了モジュール３０４は、更新を第２記憶ボリューム２１０から第３記憶ボリューム２１４に送ることをＢ−Ｃ終了モジュール３０４が終了させたことに応答して第１記憶ボリューム２０６により受け取られた更新を第３記憶ボリューム２１４に非同期的に格納５０８し、方法５００は終了５１０する。
【００７７】
方法５００は、一実施態様では、以前は故障した第１記憶ボリューム２０６のミラー・コピーであった第２記憶ボリューム２１０への更新の受け取りを維持しながら一次ボリュームから同期ミラー・ボリュームへスワップする方法を提供する。第２記憶ボリュームは、新たに指定された一次ボリュームである。方法５００は、（第３記憶ボリューム２１４が更新を受け取り続ける結果として）第４記憶ボリューム２１８をほぼ無矛盾に保ちながら第１記憶ボリューム２０６が動作に復帰した後に第１記憶ボリューム２０６を同期化することをも可能にする。第２記憶ボリューム２１０を一次記憶ボリュームとして維持することは、第１記憶ボリューム２０６および第２記憶ボリューム２１０が互いにかなり接近して配置されているとき、あるいは第２記憶ボリューム２１０を指定された一次記憶ボリュームとして持つことで性能低下が殆どあるいは全く無いときには、望ましいかもしれない。
【００７８】
図７は、本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための方法６００の代わりの実施態様を示す略フローチャート図である。方法６００は、一次記憶ボリュームとしての第１記憶ボリューム２０６と、第１記憶ボリューム２０６から更新を同期的に受け取る第２記憶ボリューム２１０と、第２記憶ボリューム２１０から更新を非同期的に受け取る第３記憶ボリューム２１４とを伴う最初のアーキテクチャにカスケード型データ記憶システム２００を戻すために、図６と関連して記載された方法５００により使用される同じ手法を用いる、逆手順を提供する。方法６００は、第２記憶ボリューム２１０を伴う中間記憶サイトがホスト２０２から第１記憶ボリューム２０６より遠いか、あるいは第１記憶ボリューム２０６より遅いホスト２０２との接続を有するときには、望ましいかもしれない。
【００７９】
方法６００が始まり６０２、主スワップモジュール４０２主スワップモジュールは、第１記憶ボリューム２０６における故障を検出したことに応答して第２記憶ボリューム２１０を一次記憶ボリュームとして指定６０４する。第１記憶ボリューム２０６は一次記憶ボリュームとして指定され、第２記憶ボリューム２１０は第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリューム２１４は該故障の前は第２記憶ボリュームのデータの非同期ミラー・コピーを含む。Ｃ−Ａフェイルバック・モジュール３０２は、第１記憶ボリューム２０６が故障後に操作可能になったことに応答して、第２記憶ボリューム２１０から第３記憶ボリューム２１４に送られた更新を第１記憶ボリューム２０６に格納するように第３記憶ボリューム２１４に指令６０６する。
【００８０】
Ｂ−Ｃ終了モジュール３０４は、第１記憶ボリューム２０６が第３記憶ボリューム２１４と実質的に無矛盾になったことに応答して、更新を第２記憶ボリューム２１０から第３記憶ボリューム２１４に送ることを終了６０８させる。更新を第２記憶ボリューム２１０から第３記憶ボリューム２１４に送ることをＢ−Ｃ終了モジュール３０４が終了させたことに応答してＢ−Ａ−Ｃ記憶モジュール３０６は第２記憶ボリューム２１０により受け取られた更新を第１記憶ボリューム２０６に同期的に格納６１０し、Ｂ−Ｃ終了モジュール３０４は第１記憶ボリューム２０６により受け取られた更新を第３記憶ボリューム２１４に非同期的に格納６１０する。
【００８１】
主スワップ・モジュール４０２は、第１記憶ボリューム２０６が一次記憶ボリュームであるべきか否かを判定６１２する。否定であれば、方法６００は終了６２２する。第１記憶ボリューム２０６が一次記憶ボリュームであるべきであると主スワップ・モジュール４０２が判定６１２したならば、主スワップ・モジュール４０２は第１記憶ボリューム２０６を一次記憶ボリュームとして指定６１４する。第１記憶ボリューム２０６が一次記憶ボリュームとして指定されたことに応答して、Ｃ−Ｂ強制フェイルバック・モジュール４１４は、第１記憶ボリューム２０６から第３記憶ボリューム２１４に送られた更新を第２記憶ボリューム２１０に格納するように第３記憶ボリューム２１４に指令６１６する。
【００８２】
Ｂ−Ｃ終了モジュール４１６は、第２記憶ボリューム２１０が第３記憶ボリューム２１４と実質的に無矛盾になったことに応答して、第１記憶ボリューム２０６から第３記憶ボリューム２１４に更新を送ることを終了６１８させる。Ａ−Ｂ−Ｃ記憶モジュール４１８は、更新を第１記憶ボリューム２０６から第３記憶ボリューム２１４に送ることを終了したことに応答して、第１記憶ボリューム２０６により受け取られた更新を第２記憶ボリューム２１０に同期的に格納６２０すると共に第２記憶ボリューム２１０により受け取られた更新を第３記憶ボリューム２１４に非同期的に格納し、方法６００は終了６２２する。
【００８３】
図８のＡから図１３までは、本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータシステム２００の一実施態様を示す略ブロック図である。図８のＡから図１３までは、一次記憶ボリュームの故障後に一次記憶ボリュームとして指定されるミラー・データ・ボリュームを達成するべくデータ・システム２００を再構成する本発明の好ましい実施態様に従うステップを示す。
【００８４】
図８のＡは、第１記憶ボリューム２０６が故障状態になっている図３に関連して記載されたシステム２００を描いている。通例、その故障は、第１記憶ボリューム２０６と第２記憶ボリューム２１０との間の接続２１２に沿っての同期データ・フローを中断させる。主スワップ・モジュール４０２は、故障を検出した後に第２記憶ボリューム２１０を一次記憶ボリュームとして指定する（図８のＢ）。一実施態様では、Ａ−Ｂ終了モジュール４０６は第２記憶ボリューム２１０における第１記憶ボリューム２０６との記憶関係を終了させる。この実施態様は、主スワップ・モジュール４０２が第２記憶ボリューム２１０を一次記憶ボリュームとして指定することを可能にすると共にホスト２０２がホスト２０２と第２記憶ボリューム２１０との間の接続２２８を介して第２記憶ボリューム２１０に更新を送ることを可能にする。
【００８５】
Ｃ−Ａ強制フェイルオーバー・モジュール４０４は、第３記憶ボリューム２１４において記憶関係を確立するように第３記憶ボリューム２１４に指令する。フェイルオーバー・コマンドは、第３記憶ボリューム２１４が第１記憶ボリューム２０６に更新を送るための第３記憶ボリューム２１４および第１記憶ボリューム２０６の間の関係を第３記憶ボリューム２１４において確立する。通例、この時点では第１記憶ボリューム２０６は操作可能ではないので、Ｃ−Ａ強制フェイルオーバー・モジュールは、第１記憶ボリューム２０６にコピーされる第３記憶ボリューム２１４における変更を追跡するためにＯＯＳビットマップ２３０を作成するように（第３記憶コントローラ２２０を通して）第３記憶ボリューム２１４に指令する。
【００８６】
Ｃ−Ａ強制フェイルオーバー・モジュール４０４は、第３記憶ボリューム２１４から第１記憶ボリューム２０６への更新を開始するために強制フェイルバック機能を発するように第３記憶コントローラ２２０に指令する（図９のＡ参照）。第１記憶ボリューム２０６が回復すると、更新は第３記憶ボリューム２１４および第１記憶ボリューム２０６の間の接続２３２を介して送られる。通例、該更新は非同期的にコピーされる。一実施態様では、故障中に生じたかもしれない変更を再同期化するために、可能ならば、第１記憶ボリューム２０６に関連付けられたＯＯＳビットマップ（図示されていない）の内容が得られる。システム２００はその後動作し続け、第３記憶ボリューム２１４が第１記憶ボリューム２０６を更新している間、ホスト２０２からの更新が第２記憶ボリューム２１０に流れ、第２記憶ボリューム２１０は更新を第３記憶ボリューム２１４に非同期的に送る。
【００８７】
一実施態様では、第１記憶ボリューム２０６がほぼ同期化されたとき、第３記憶ボリューム２１４への更新が終わった後に第２記憶ボリューム２１０により受け取られる更新を追跡するために変更追跡モジュール４０８は第２記憶コントローラ２１１においてインクリメンタル再同期化ＣＲビットマップ２３４を作成する（図９Ｂを参照）。ついには、第２記憶ボリューム２１０に関連付けられているオリジナルのＣＲビットマップ２２４上の更新は第２記憶ボリュームのＯＯＳビットマップ２２６に転送され、オリジナルＣＲビットマップ２２４は非アクティブになる（図１０のＡでは存在しないものとして描かれている）。第２記憶ボリューム２１０から第３記憶ボリューム２１４への更新が止むのに備えて、第３記憶コントローラ２２０によって第４記憶ボリューム２１８への更新が止められ、第４記憶ボリューム２１８はエージングし始める。
【００８８】
Ｂ−Ｃ終了モジュール３０４は、その後、第２記憶ボリューム２１０から第３記憶ボリューム２１４への更新を終了させる（図１０のＢを参照）。Ｂ−Ｃ終了モジュール３０４は、また、第２記憶ボリュームと第３記憶ボリュームの関係を第３記憶ボリューム２１４から終了させる。第３記憶ボリューム２１４に関連付けられたＯＯＳビットマップ２３０がクリアされるまで更新は第１記憶ボリューム２０６に流れ続ける。第１記憶ボリューム２０６および第３記憶ボリューム２１４は、この時点で通例無矛盾である。第３記憶ボリューム２１４へのからの第１記憶ボリューム２０６への更新はその後中断させられる（図１１Ａを参照）。
【００８９】
Ａ−Ｃ強制フェイルオーバー・モジュール４１０は、第３記憶ボリューム２１４にコピーされる更新を追跡するためにＯＯＳビットマップ２３６を作成するように第１記憶ボリューム２０６に指令する（図１１のＢを参照）。Ｂ−Ａ−Ｃ記憶モジュール３０６はフェイルバック・コマンドを発し、第１記憶ボリューム２０６は第３記憶ボリューム２１４を非同期的に更新し始める（図１１のＢを参照）。
【００９０】
Ｂ−Ａインクリメンタル再同期化モジュール４１２は、更新を第１記憶ボリューム２０６に送るために第２記憶ボリューム２１０において同期記憶関係を確立するように第２記憶ボリューム２１０に指令する（図１２のＡを参照）。もし第１記憶ボリューム２０６が第２記憶ボリューム２１０との関係を持っていなければ、Ｂ−Ａインクリメンタル再同期化モジュール４１２は、更新を第２記憶ボリューム２１０から受け取る関係を確立するように第１記憶ボリューム２０６に指令する。一実施態様では、第１記憶ボリューム２０６にコピーされる更新を追跡するために第２記憶コントローラ２１１はインクリメンタル再同期化ＣＲビットマップ２３４の内容を新しいＯＯＳビットマップ２３８に併合する。他の１つの実施態様では、第２記憶コントローラ２１１は、インクリメンタル再同期化ＣＲビットマップ２３４の内容を既存の使用されていないＯＯＳビットマップ２２６（図１２のＡには示されていない）に併合する。
【００９１】
第２記憶ボリューム２１０に関連付けられたＯＯＳビットマップ２３８の内容がクリアされると、通例第１記憶ボリューム２０６および第２記憶ボリューム２１０は無矛盾であり、ＯＯＳビットマップ２３８は非アクティブである（図１２Ｂには存在しないものとして描かれている）。第１記憶ボリューム２０６においてＣＲビットマップ２４０が作成され（あるいは再活動化され）、Ｂ−Ａ−Ｃ記憶ボリュームは、更新を第３記憶ボリューム２１４に非同期的に送るように第１記憶ボリューム２０６に指令する。更新が受け取られると、第３記憶コントローラ２２０はフラッシュ・コピー・プロセスを用いて第４記憶ボリュームを更新する（図１３を参照）。
【００９２】
システム２００は、今、データがホスト２０２から第２記憶ボリューム２１０へ、同期的に第１記憶ボリューム２０６へ、非同期的に第３記憶ボリューム２１４へ流れるカスケード型データ記憶構成をなすように構成されている。更新は第４記憶ボリューム２１８において時間順に配列される。第１記憶ボリューム２０６が一次記憶ボリュームであるように望まれる場合には、該プロセスは反復されて一次ボリュームは第２記憶ボリューム２１０から第１記憶ボリューム２０６に替えられる。有利なことに、図８のＡから図１３までに描かれているプロセスは、本書に記載されている方法５００，６００および装置３００，４００と共に、第１記憶ボリューム２０６が再同期化される間第３記憶ボリューム２１４／第４記憶ボリューム２１８がほぼ同期状態に保たれる一次ボリュームのスワップおよび復帰を考慮に入れている。さらに、更新はホスト２０２から第２記憶ボリューム２１０に、そして第２記憶ボリューム２１０から第３記憶ボリューム２１４に流れ続ける。
【図面の簡単な説明】
【００９３】
【図１】Ａは、一次記憶ボリューム故障の前の代表的な３サイト・データ記憶システムの一実施態様を示す略ブロック図である。Ｂは、一次記憶ボリューム故障後の代表的な３サイト・データ記憶システムの一実施態様を示す略ブロック図であり、第２記憶ボリュームが一次記憶ボリュームになっている。
【図２】Ａは、第３記憶ボリュームに対する更新を一時停止している間の第１記憶ボリュームの再同期化を描いた代表的３サイト・データ記憶システムの一実施態様を示す略ブロック図である。Ｂは、第１記憶ボリュームを一次として再確立し、第２記憶ボリュームに対する同期更新と第３記憶ボリュームに対する非同期更新とを再確立した後の代表的な３サイトデータ記憶システムの一実施態様を示す略ブロック図である。
【図３】一次記憶ボリューム故障の前の本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図４】本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための装置の一実施態様を示す略ブロック図である。
【図５】本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための装置の代わりの実施態様を示す略ブロック図である。
【図６】本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための方法の一実施態様を示す略フローチャート図である。
【図７】本発明の好ましい実施態様に従う改良された同期ミラー・スワップのための方法の代わりの実施態様を示す略フローチャート図である。
【図８】Ａは、一次記憶ボリューム故障後の本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。Ｂは、第２記憶ボリュームが一次記憶ボリュームになる本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図９】Ａは、第３記憶ボリュームから第１記憶ボリュームに更新を送るために確立されたリンクを伴う本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。Ｂは、インクリメンタル再同期化変更記録ビットマップを描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図１０】Ａは、第４記憶ボリュームに対する更新の終了を描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。Ｂは、第２記憶ボリュームから第３記憶ボリュームへの更新の終了を描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図１１】Ａは、第３記憶ボリュームから第１記憶ボリュームへの更新の終了を描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。Ｂは、第１記憶ボリュームから第３記憶ボリュームに更新を送るための接続を描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図１２】Ａは、第２記憶ボリュームから第３記憶ボリュームに更新を送るための同期接続を描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。Ｂは、ボリュームが同期化されるのを待つことを描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図１３】第１記憶ボリューム、第３記憶ボリューム、および第４記憶ボリュームの間の非同期書き込み動作を再確立することを描いた本発明の好ましい実施態様に従う改良された同期ミラー・スワップのためのデータ・システムの一実施態様を示す略ブロック図である。
【図１】
2010503089.tif 000003
【図２】
2010503089.tif 000004
【図３】
2010503089.tif 000005
【図４】
2010503089.tif 000006
【図５】
2010503089.tif 000007
【図６】
2010503089.tif 000008
【図７】
2010503089.tif 000009
【図８】
2010503089.tif 000010
【図９】
2010503089.tif 000011
【図１０】
2010503089.tif 000012
【図１１】
2010503089.tif 000013
【図１２】
2010503089.tif 000014
【図１３】
2010503089.tif 000015
【手続補正書】
【提出日】平成21年4月14日(2009.4.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１記憶ボリュームの故障の前は一次記憶ボリュームとして指定される前記第１記憶ボリュームと、
前記故障の前は前記第１記憶ボリュームのデータの同期ミラー・コピーを含む第２記憶ボリュームと、
前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む第３記憶ボリュームとを含むシステムに用いられるコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、同期ミラーを一次記憶ボリュームとして活動化するようにプログラムされたコンピュータ実行可能なプログラム・コードを有するコンピュータ可読媒体を含み、前記コンピュータ・プログラム製品の動作は、
前記第１記憶ボリュームが前記故障後に操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令することと、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることと、
前記第１記憶ボリュームと前記第３記憶ボリュームとが実質的に無矛盾になった後に更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納しかつ前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することと、
を含む、コンピュータ・プログラム製品。
【請求項２】
前記第１記憶ボリュームにおける前記故障を検出したことに応答して前記第２記憶ボリュームを一次記憶ボリュームとして指定することをさらに含み、前記第１記憶ボリュームは前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームは前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、前記第３記憶ボリュームは前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記第２記憶ボリュームにおいて記憶関係を終了させることをさらに含み、前記記憶関係は、前記第２記憶ボリュームが前記第１記憶ボリュームからのデータを同期的に格納するために使う情報を含む、請求項２に記載のコンピュータ・プログラム製品。
【請求項４】
前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納しかつ前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することに応答して前記第１記憶ボリュームを前記一次記憶ボリュームとして指定することと、
前記第１記憶ボリュームが前記一次記憶ボリュームとして指定されたことに応答して、前記第１記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第２記憶ボリュームに格納するように前記第３記憶ボリュームに指令することと、
前記第２記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、前記第１記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることと、
更新を前記第１記憶ボリュームから前記第３記憶ボリュームに送ることを終了したことに応答して、前記第１記憶ボリュームにより受け取られた更新を前記第２記憶ボリュームに同期的に格納しかつ前記第２記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納することと、
をさらに含む、請求項２に記載のコンピュータ・プログラム製品。
【請求項５】
前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令することは、記憶関係を作成すると共に、その後に前記第３記憶ボリュームにより受け取られた更新を追跡するように前記第３記憶ボリュームに指令することをさらに含み、前記記憶関係は、更新を前記第１記憶ボリュームに非同期的に格納するために前記第３記憶ボリュームが使う情報を含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項６】
前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了させることは、
ａ）  前記第２記憶ボリュームおよび前記第３記憶ボリュームから記憶関係を除去することであって、前記記憶関係が、前記第３記憶ボリュームにデータを格納するために前記第２記憶ボリュームが使う情報を含むことと、
ｂ）  前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることの終了の後に前記第２記憶ボリュームにより受け取られた更新を追跡することと、
のうちの一方をさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項７】
前記第３記憶ボリュームに更新を非同期的に格納することはフラッシュ・コピー・プロセスを用いて前記第３記憶ボリュームから第４記憶ボリュームを更新することをさらに含み、更新は前記第４記憶ボリュームにおいて時間順に編成される、請求項１に記載のコンピュータ・プログラム製品。
【請求項８】
前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納することは、前記第２記憶ボリュームにおいて記憶関係を作成するように前記第２記憶ボリュームに指令することをさらに含み、前記記憶関係は、データを前記第１記憶ボリュームに同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項９】
同期ミラーを一次記憶ボリュームとして活動化する装置であって、
第１記憶ボリュームにおける故障を検出したことに応答して第２記憶ボリュームを一次記憶ボリュームとして指定するように構成された主スワップ・モジュールであって、前記第１記憶ボリュームが前記一次記憶ボリュームとして指定され、前記第２記憶ボリュームが前記第１記憶ボリュームのデータの同期ミラー・コピーを含み、第３記憶ボリュームが前記故障の前は前記第２記憶ボリュームのデータの非同期ミラー・コピーを含む主スワップ・モジュールと、
前記第１記憶ボリュームが前記故障後に操作可能になったことに応答して、前記第２記憶ボリュームから前記第３記憶ボリュームに送られた更新を前記第１記憶ボリュームに格納するように前記第３記憶ボリュームに指令するように構成されたＣ−Ａフェイルバック・モジュールと、
前記第１記憶ボリュームが前記第３記憶ボリュームと実質的に無矛盾になったことに応答して、更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させるように構成されたＢ−Ｃ終了モジュールと、
前記Ｂ−Ｃ終了モジュールが更新を前記第２記憶ボリュームから前記第３記憶ボリュームに送ることを終了させたことに応答して、前記第２記憶ボリュームにより受け取られた更新を前記第１記憶ボリュームに同期的に格納すると共に前記第１記憶ボリュームにより受け取られた更新を前記第３記憶ボリュームに非同期的に格納するように構成されたＢ−Ａ−Ｃ記憶モジュールと、
を含む装置。
【請求項１０】
記憶関係を作成すると共に、前記記憶関係の作成の後に前記第３記憶ボリュームにより受け取られた更新を追跡するように前記第３記憶ボリュームに指令するように構成されたＣ−Ａ強制フェイルオーバー・モジュールをさらに含み、前記記憶関係は、更新を前記第１記憶ボリュームに非同期的に格納するために前記第３記憶ボリュームが使う情報を含む、請求項９に記載の装置。
【請求項１１】
前記主スワップ・モジュールは、前記第１記憶ボリュームにおける故障を検出して前記第２記憶ボリュームを一次記憶ボリュームとしたことに応答して、前記第２記憶ボリュームにおいて、また前記第３記憶ボリュームにおいて記憶関係を終了させるように構成されたＡ−Ｂ終了モジュールをさらに含み、前記記憶関係は、前記第１記憶ボリュームからのデータを同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項９に記載の装置。
【請求項１２】
前記Ｂ−Ｃ終了モジュールは、前記第２記憶ボリュームから記憶関係を除去するようにさらに構成され、前記記憶関係は、データを前記第３記憶ボリュームに格納するために前記第２記憶ボリュームが使う情報を含む、請求項９に記載の装置。
【請求項１３】
前記Ｂ−Ｃ終了モジュールは、前記第２記憶ボリュームから前記第３記憶ボリュームに更新を送ることを終了した後に前記第２記憶ボリュームにより受け取られた更新を追跡するように構成された変更追跡モジュールをさらに含む、請求項９に記載の装置。
【請求項１４】
第４記憶ボリュームをさらに含み、前記第３記憶ボリュームは、フラッシュ・コピー・プロセスを用いて前記第４記憶ボリュームに更新を格納するように構成され、前記更新は、前記第４記憶ボリュームにおいて時間順に編成される、請求項９に記載の装置。
【請求項１５】
前記Ｂ−Ａ−Ｃ記憶モジュールは、
前記第３記憶ボリュームにコピーされるべき前記第１記憶ボリュームにより受け取られた更新を追跡するように前記第１記憶ボリュームに指令するように構成されたＡ−Ｃ追跡モジュールと、
前記第２記憶ボリュームにおいて記憶関係を作成するように前記第２記憶ボリュームに指令するように構成されたＢ−Ａインクリメンタル再同期化モジュールとのうちの１つをさらに含み、前記記憶関係は、データを前記第１記憶ボリュームに同期的に格納するために前記第２記憶ボリュームが使う情報を含む、請求項９に記載の装置。
【国際調査報告】
2010503089.tif 000016
2010503089.tif 000017
2010503089.tif 000018
2010503089.tif 000019