(57)【特許請求の範囲】
【請求項１】
複数のストレージ・ユニットを含む第１のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第２のストレージ・システムとの間のフェイルオーバを行うためのプロセッサに、
前記第１のストレージ・システムと前記第２のストレージ・システムとの間でデータを同期すること、
前記第１のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第１のストレージ・システムから前記第２のストレージ・システムへフェイルオーバを行うことであって、前記第１のストレージ・システムへのＩ／Ｏ要求は、前記フェイルオーバの一部として前記第２のストレージ・システムにリダイレクトされる、行うこと、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第１のストレージ・ユニットが動作不能であると判断すること、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第２のストレージ・ユニットが動作可能であると判断すること、
前記第１のストレージ・システムの前記第２のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされる間、前記第２のストレージ・システムの第２のストレージ・ユニットを前記第１のストレージ・システムの前記第２のストレージ・ユニットにミラーリングすることによって、前記第１のストレージ・システムの前記第２のストレージ・ユニットに更新をコピーすること、
を実行させるためのコンピュータ・プログラム。
【請求項２】
前記第１のストレージ・システムと前記第２のストレージ・システムとの間のデータの前記同期は、同期コピー・モードで行われ、
前記Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされる間、前記再同期中の前記更新のコピーは、非同期コピー・モードで行われる、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記第１のストレージ・ユニットが動作不能であると判断することは、
前記第１のストレージ・システムの前記第１のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、
前記第１のストレージ・システムの前記第１のストレージ・ユニットの前記ポイント・イン・タイム・コピーが失敗したと判断することであって、当該第１のストレージ・ユニットの前記ポイント・イン・タイム・コピーが失敗したと判断することに応答して、当該第１のストレージ・ユニットは動作不能であると判断される、判断することと、
を含み、
前記第１のストレージ・システムの前記第２のストレージ・ユニットが動作可能であると判断することは、
前記第１のストレージ・システムの前記第２のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、
前記第１のストレージ・システムの前記第２のストレージ・ユニットの前記ポイント・イン・タイム・コピーが成功したと判断することであって、当該第２のストレージ・ユニットの前記ポイント・イン・タイム・コピーが成功したと判断することに応答して、当該第２のストレージ・ユニットは動作可能であると判断される、判断することと、
を含む、請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記プロセッサに、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムにおける前記第１及び第２のストレージ・ユニットへのＩ／Ｏアクセスを防止することをさらに実行させ、
前記ポイント・イン・タイム・コピーは、前記第１のストレージ・システムへの前記Ｉ／Ｏアクセスが防止されている間、前記ポイント・イン・タイム・コピーの進行を可能にするためのパラメータを有するコマンドで開始される、請求項３に記載のコンピュータ・プログラム。
【請求項５】
前記第１のストレージ・システムの前記第１のストレージ・ユニット及び前記第２のストレージ・ユニットと、前記第２のストレージ・システムの前記第１のストレージ・ユニット及び前記第２のストレージ・ユニットとは、それぞれがストレージ・ボリュームである、請求項３に記載のコンピュータ・プログラム。
【請求項６】
前記再同期は第１の再同期を含み、前記プロセッサに、
ヘルス・クエリを前記第１のストレージ・システムに発行し、前記第１のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第１のストレージ・システムが完全に動作可能であるとき、前記第１のストレージ・システムの前記第１及び第２のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第１のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第２のストレージ・システムの前記第１のストレージ・ユニットの更新を前記第１のストレージ・システムの前記第１のストレージ・ユニットに再同期する第２の再同期を開始することと、
をさらに実行させる、請求項１に記載のコンピュータ・プログラム。
【請求項７】
前記ヘルス・クエリは、前記フェイルオーバを行った後、所定の期間後に発行される、請求項６に記載のコンピュータ・プログラム。
【請求項８】
動作不能であると判断された前記第１のストレージ・システムの前記第１のストレージ・ユニットは、データ損失が生じたトラックのサブセットを含み、
前記第２の再同期は、前記ヘルス・クエリが、前記第１のストレージ・システムが完全に動作可能であると示すことに応答して、前記第２のストレージ・システムの第１のストレージ・ユニット内のトラックのサブセットを、前記第１のストレージ・システムの前記第１のストレージ・ユニット内の前記トラックの対応するサブセットにコピーすることを含み、
前記第２の再同期においてコピーされる前記第２のストレージ・システムの第１のストレージ・ユニット内の前記トラックの前記サブセットは、Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされている間に更新された前記第２のストレージ・システムの第１のストレージ・ユニット内のトラックのサブセットと、前記第１のストレージ・システムの第１のストレージ・ユニット内の前記データ損失が生じた前記トラックの前記サブセットに対応する第２のストレージ・システムの第１のストレージ・ユニット内のトラックのサブセットとを含む、請求項６に記載のコンピュータ・プログラム。
【請求項９】
前記ヘルス・クエリへの前記応答が、前記第１のストレージ・システムが完全に動作可能であると示す前に、前記第１のストレージ・システムに対する前記第２のストレージ・システムの前記第２のストレージ・ユニットの前記第1の再同期は非同期コピー・モードで行われ、前記プロセッサに、
前記ヘルス・クエリが、前記第１のストレージ・システムが完全に動作可能であると示すことに応答して、前記第１のストレージ・システムに対する前記第２のストレージ・システムの前記第２の再同期を同期コピー・モードに移行すること、
をさらに実行させる、請求項６に記載のコンピュータ・プログラム。
【請求項１０】
前記プロセッサに、
前記ヘルス・クエリが、前記第１のストレージ・システムが完全に動作可能であると示すことに応答して、前記第１のストレージ・システムの前記第１のストレージ・ユニットのポイント・イン・タイム・コピーを開始することであって、前記ポイント・イン・タイム・コピーが成功したと判断することに応答して、前記第２の再同期が行われる、開始することをさらに実行させる、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
前記プロセッサに、
前記ヘルス・クエリが、前記第１のストレージ・システムは完全に動作可能ではないと示すことに応答して、前記第１のストレージ・システムの修復のための診断情報を集めることと、
前記集められた診断情報に基づいて、前記第１のストレージ・システムに修理が行われることに応答して、前記第１のストレージ・システムの管理者から発行された再同期コマンドを受信することであって、前記受信した再同期コマンドは、前記第２のストレージ・システムの前記第１のストレージ・ユニットへの更新の、前記第１のストレージ・システムの前記第１のストレージ・ユニットへの前記コピーを開始する、受信することと、
をさらに実行させる、請求項６に記載のコンピュータ・プログラム。
【請求項１２】
前記第２のストレージ・システムの第１のストレージ・ユニットの更新は、前記Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされる間、前記第１のストレージ・システムの前記第１のストレージ・ユニットにコピーされない、請求項１に記載のコンピュータ・プログラム。
【請求項１３】
複数のストレージ・ユニットを含む第１のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第２のストレージ・システムとの間のフェイルオーバを行うためのシステムであって、
少なくとも１つのプロセッサを備え、前記プロセッサは、
前記第１のストレージ・システムと前記第２のストレージ・システムとの間でデータを同期すること、
前記データを同期する間、前記第１のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第１のストレージ・システムから前記第２のストレージ・システムへフェイルオーバを行うことであって、前記第１のストレージ・システムへのＩ／Ｏ要求は、前記フェイルオーバの一部として前記第２のストレージ・システムにリダイレクトされる、行うこと、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第１のストレージ・ユニットが動作不能であると判断すること、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第２のストレージ・ユニットが動作可能であると判断すること、
前記第１のストレージ・システムの前記第２のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされる間、前記第２のストレージ・システムの第２のストレージ・ユニットを前記第１のストレージ・システムの前記第２のストレージ・ユニットにミラーリングすることによって、前記第１のストレージ・システムの前記第２のストレージ・ユニットに更新をコピーすること、
を実行する、システム。
【請求項１４】
前記再同期は第１の再同期を含み、前記プロセッサは、
前記フェイルオーバを行った後、所定の期間後に、ヘルス・クエリを前記第１のストレージ・システムに発行し、前記第１のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第１のストレージ・システムが完全に動作可能であるとき、前記第１のストレージ・システムの前記第１及び第２のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第１のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第２のストレージ・システムの前記第１のストレージ・ユニットの更新を前記第１のストレージ・システムの前記第１のストレージ・ユニットに再同期する第２の再同期を開始することと、
をさらに実行するように構成されている、請求項１３に記載のシステム。
【請求項１５】
複数のストレージ・ユニットを含む第１のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第２のストレージ・システムとの間のフェイルオーバを行うための方法であって、
プロセッサが、
前記第１のストレージ・システムと前記第２のストレージ・システムとの間でデータを同期することと、
前記データを同期する間、前記第１のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第１のストレージ・システムから前記第２のストレージ・システムへフェイルオーバを行うことであって、前記第１のストレージ・システムへのＩ／Ｏ要求は、前記フェイルオーバの一部として前記第２のストレージ・システムにリダイレクトされる、行うことと、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第１のストレージ・ユニットが動作不能であると判断することと、
前記フェイルオーバ・イベントに応答して、前記第１のストレージ・システムの第２のストレージ・ユニットが動作可能であると判断することと、
前記第１のストレージ・システムの前記第２のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記Ｉ／Ｏ要求が前記第２のストレージ・システムにリダイレクトされる間、前記第２のストレージ・システムの第２のストレージ・ユニットを前記第１のストレージ・システムの前記第２のストレージ・ユニットにミラーリングすることによって、前記第１のストレージ・システムの前記第２のストレージ・ユニットに更新をコピーすることと、
を実行する、方法。
【請求項１６】
前記再同期は第１の再同期を含み、前記プロセッサが、
前記フェイルオーバを行った後、所定の期間後に、ヘルス・クエリを前記第１のストレージ・システムに発行し、前記第１のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第１のストレージ・システムが完全に動作可能であるとき、前記第１のストレージ・システムの前記第１及び第２のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第１のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第２のストレージ・システムの前記第１のストレージ・ユニットの更新を前記第１のストレージ・システムの前記第１のストレージ・ユニットに再同期する第２の再同期を開始することと、
をさらに実行する、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のストレージ・システムをミラーリングする第２のストレージ・システムへのフェイルオーバ後、第１のストレージ・システムに再同期するためのコンピュータ・プログラム、システム及び方法に関する。
【背景技術】
【０００２】
ストレージ環境において、ストレージ・コントローラは、ミラー・コピー関係を維持することができ、そこで、ミラー・コピー関係における一次ボリュームは、そこからデータが二次ストレージ又はボリュームに物理的にコピーされるストレージ又はボリュームを含む。インターナショナル・ビジネス・マシーンズ・オペレーション（「ＩＢＭ」）のＨｙｐｅｒＳｗａｐ（登録商標）などのフェイルオーバ・プログラムは、ｚ／ＯＳ（登録商標）オペレーティング・システムにおける機能であり、ミラー・コピー関係を維持して、１つ又は複数の一次ストレージ・システム上の全ての一次ディスク・ボリュームの同期コピーを１つ又は複数のターゲット（すなわち二次）ストレージ・システムに提供することによって、ディスク障害（disk failure）に対する連続可用性を提供する。（ＨｙｐｅｒＳｗａｐ及びｚ／ＯＳは、世界中の国々におけるＩＢＭの登録商標である。）ディスク障害が検出されると、オペレーティング・システム内のコードがＨｙｐｅｒＳｗａｐにより管理されるボリュームを識別し、Ｉ／Ｏ要求を失敗させる代わりに、ＨｙｐｅｒＳｗａｐは、情報を内部制御ブロック内にスイッチする（又はスワップする）ので、Ｉ／Ｏ要求は、ミラー・コピー関係の二次ボリュームに対して推進される。フェイルオーバは非常に迅速に行われ、ホスト・アプリケーションに対してごく僅かな影響しか伴わない。ホスト・アプリケーションは、一次ディスクの障害を通知されず、そのアクセスがデータの二次コピーにスワップされたことに気付かない。二次ボリュームは、障害発生前の一次ボリュームと同一のコピーであるので、Ｉ／Ｏ要求は、Ｉ／Ｏ要求を発行している、アプリケーション・プログラム若しくはオペレーティング・システムの一部とすることができるプログラムに影響を及ぼすことなく、成功する。従って、これにより、ディスク障害をプログラムから遮断し、アプリケーション及び／又はシステム機能の停止が回避される。
【０００３】
一次ディスクの障害が発生すると、フェイルオーバ機能は、ホスト・システムのアクセスを、障害が発生している一次ディスク制御ユニットから、データの二次コピーを含む二次制御ユニットに自動的にスワップする。フェイルオーバが行われた後、２つのストレージ・システムの対の間のミラーリングはサスペンドされ、そのことは、アプリケーションにより現行の一次コピーに対して行われている更新が二次コピーにミラーリングされていないことを意味する。このサスペンド状態にある間、別のフェイルオーバ動作は可能でない。これにより、顧客は、残っているデータの唯一の正常なコピーに影響を及ぼす、何らかの種類の別の障害に曝されたままになる。
【０００４】
現行の当技術分野において、一次及び二次ボリュームをフェイルオーバ対応可能状態に戻すために、管理者又はユーザは、障害が発生した一次ストレージ・システムから診断情報を収集及び分析し、必要に応じて修復を行う。次に、管理者／ユーザは、現行の二次サイトから、フェイルオーバを経験した一次ストレージへのデータの再同期を開始することができる。管理者／ユーザは、一次ストレージ・デバイスのポイント・イン・タイム（point-in-time、ＰｉＴ）コピーを開始し、データの整合したコピー（consistentcopy）を提供することによって、再同期動作を行うことができる。再同期が完了するまで、一次ストレージ・システム・デバイスは整合性がなく、従って、回復に有用でない。ポイント・イン・タイム・コピーは、再同期中に生じる二次ストレージ・システムの障害を保護する。
【０００５】
一次ストレージ・デバイスのいずれかにおいてデータ損失が発生した場合（障害の結果として）、障害が発生した一次ストレージ・システム・デバイスに対応する二次ストレージ・システム・デバイスから完全なコピーを行うことによって、障害が発生したデバイスを再同期する。データ損失が生じなかった一次ストレージ・システムについては、再同期中、二次ストレージ・システムの更新されたトラックだけを、一次ストレージ・システムにコピーし戻す。再同期動作が完了すると、ミラーリング対は再び互いに同期した状態に戻る。
【０００６】
管理者／ユーザにより管理される再同期プロセスは、何時間もかかることがあり、又は何日もかかることもある。顧客は、プロセスが完了するまで第２の障害発生の恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
第１のストレージ・システムと第２のストレージ・システムとの間のフェイルオーバを行うためのコンピュータ・プログラム、システム及び方法を提供する。
【課題を解決するための手段】
【０００８】
第１のストレージ・システムと第２のストレージ・システムとの間のフェイルオーバを行うためのコンピュータ・プログラム、システム及び方法が提供される。データが、第１のストレージ・システムと第２のストレージ・システムとの間で同期される。データを同期する間、第１のストレージ・システムにおけるフェイルオーバ・イベントに応答して、第１のストレージ・システムから第２のストレージ・システムへフェイルオーバが行われる。フェイルオーバ・イベントに応答して、第１のストレージ・システムの第１のストレージ・ユニットが動作不能であること、及び、フェイルオーバ・イベントに応答して、第１のストレージ・システムの第２のストレージ・ユニットが動作可能であることが判断される。第２のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、Ｉ／Ｏ要求が第２のストレージ・システムにリダイレクトされる間、第２のストレージ・システムの第２のストレージ・ユニットを第１のストレージ・システムの第２のストレージ・ユニットにミラーリングすることによって、第１のストレージ・システムの第２のストレージ・ユニットの更新がコピーされる。
【０００９】
第２のストレージ・システムへのフェイルオーバの間、第２のストレージ・ユニットにおける更新を再同期の一部としてそれらの動作可能な第１のストレージ・ユニットに自動的に非同期的にコピーする二次複製マネージャを有することにより、第１のストレージ・ユニットにおけるデータは可能な限り最新のものにされ、その結果、ひとたび第１のストレージ・システムが修復され、完全に動作可能になると、第１のストレージ・システムの再同期はより迅速に完了し得る。
【００１０】
更に別の実施形態において、第１のストレージ・システムと第２のストレージ・システムとの間のデータの同期は、同期コピー・モードで行われ、Ｉ／Ｏ要求が第２のストレージ・システムにリダイレクトされる間、再同期中の更新のコピーは、非同期コピー・モードで行われる。
【００１１】
更に別の実施形態において、第１のストレージ・ユニットが動作不能であると判断することは、第１のストレージ・システムの第１のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、第１のストレージ・ユニットのポイント・イン・タイム・コピーが失敗したと判断することとを含む。第１のストレージ・ユニットのポイント・イン・タイム・コピーが失敗したと判断することに応答して、第１のストレージ・ユニットは動作不能であると判断される。さらに、第２のストレージ・ユニットが動作可能であると判断することは、第１のストレージ・システムの第２のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、第２のストレージ・ユニットのポイント・イン・タイム・コピーが成功したと判断することとを含み、第２のストレージ・ユニットのポイント・イン・タイム・コピーが成功したと判断することに応答して、第２のストレージ・ユニットは動作可能であると判断される。
【００１２】
動作可能な第２のストレージ・ユニットのポイント・イン・タイム・コピーをとることによって、第１のストレージ・システム内のアクセス可能なデータのコピーが保持される。
【００１３】
更に別の実施形態において、フェイルオーバ・イベントに応答して、第１のストレージ・システムについてのソフト・フェンス状態を確立して、第１のストレージ・システムにおけるストレージ・ユニットへのＩ／Ｏアクセスを防止し、ポイント・イン・タイム・コピーは、第１のストレージ・システムのソフト・フェンス状態の間、ポイント・イン・タイム・コピー動作が進行するのを可能にするためのパラメータを有するコマンドで開始される。
【００１４】
更に別の実施形態において、再同期は第１の再同期を含み、ヘルス・クエリを第１のストレージ・システムに発行し、第１のストレージ・システムが完全に動作可能かどうかが判断される。第１のストレージ・システムが完全に動作可能であるとき、第１のストレージ・システムの第１及び第２のストレージ・ユニットの両方とも動作可能である。ヘルス・クエリへの応答が、第１のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、第２のストレージ・システムの第１のストレージの更新を第１のストレージ・システムの第１のストレージ・ユニットに再同期する。
【００１５】
更に別の実施形態において、第１のストレージ・ユニットは、第１及び第２のストレージ・システムの第１のボリュームを含み、第２のストレージ・ユニットは、第１及び第２のストレージ・システムの第２のボリュームを含む。動作不能であると判断された第１のボリュームは、データ損失が生じたトラックのサブセットを含む。再同期は、ヘルス・クエリが、第１のストレージが完全に動作可能であると示すことに応答して、第２のストレージ・システムの第１のボリューム内のトラックのサブセットを、第１のストレージ・システムの第１のボリューム内のトラックの対応するサブセットにコピーすることをさらに実行する。データ損失が生じず、Ｉ／Ｏ要求が第２のストレージ・システムにリダイレクトされる間、更新される第２のストレージ・システムの第１のボリューム内のトラックに対応しない、第１のストレージ・システムの第１のボリューム内のトラックは、再同期の対象でない。
【００１６】
修復及び回復後、フェイルオーバ中に更新された又はデータ損失が生じた、回復された動作不能な第１のボリューム内のトラックしか同期する必要はない。さらに、動作可能なボリュームに対するフェイルオーバ中に再同期を開始することにより、データの大部分が既に再同期されている可能性があるので、第１のストレージ・システムが回復した後の同期は、ずっと迅速に完了する。
【００１７】
更に別の実施形態において、ヘルス・クエリへの応答が、第１のストレージ・システムが完全に動作可能であると示す前、第１のストレージ・システムへの第２のストレージ・システムの第２のストレージ・ユニットの再同期が非同期コピー・モードで行われる。クエリが、第１のストレージ・システムが完全に動作可能であると示すことに応答して、第１のストレージ・システムへの第２のストレージ・システムの第２のストレージ・ユニットの再同期を同期コピー・モードに移行する。
【００１８】
ここで、添付図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００１９】
【図１】ストレージ複製（replication）環境の１つの実施形態を示す。
【図２】コピー関係の１つの実施形態を示す。
【図３】ポイント・イン・タイム・コピー・コマンドの１つの実施形態を示す。
【図４】フェイルオーバ動作を行うための動作の１つの実施形態を示す。
【図５】回復した一次ストレージ・システムにまた再同期するための動作の１つの実施形態を示す。
【図６】図１のコンポーネントを実装することができるコンピューティング環境を示す。
【発明を実施するための形態】
【００２０】
説明される実施形態は、一次ストレージ・システムから二次ストレージ・システムへのフェイルオーバの場合に、データを再同期するための技術を提供する。フェイルオーバに応答して、動作可能な（operable）一次ボリューム又はストレージ・ユニットについて、一次ストレージ・システムが回復される前に、対応する二次ボリュームの更新が、動作可能な一次ボリュームに再同期される。動作不能な（inoperable）又はデータ損失が生じる一次ストレージ・システム・ボリュームについては、対応する二次ボリュームの更新は、変更記録ビットマップ等において示され、次に、一次ストレージ・システムが回復又は修復された後、また一次ボリュームに再同期される。
【００２１】
説明される実施形態の場合、データは、障害が発生した一次ストレージ・システムの動作可能なボリュームへの自動プログラムにより制御される再同期を即座に開始し、一次ストレージ・システムを完全に同期された状態にし、かつ、二次ストレージ・システムにおける第２のフェイルオーバの処理に利用できるようにするために必要な時間を最小にする。このように、一次ストレージ・システムが回復した後、自動化された再同期プロセスに従って、多くの動作可能な一次ボリュームが既に再同期されているので、一次ストレージ・システムが回復した後に再同期するまでの時間が短くなる。
【００２２】
図１は、一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂに接続されるホスト・システム１００を有する、データ・ミラーリング及びフェイルオーバ環境の１つの実施形態を示す。一次ストレージ・システム１０２ａは、ミラーリング対又はコピー関係で、二次ストレージ・システム１０２ｂ内の対応するボリューム１０６ｂにミラーリングされるボリューム１０６ａを有する一次ストレージ１０４ａを含む。ホスト１００、並びにストレージ・システム１０２ａ及び１０２ｂは、ネットワーク１０８上で通信することができる。入力／出力(Ｉ／Ｏ)要求を一次ボリューム１０６ａ及び二次ボリューム１０６ｂに提供する付加的なホスト（図示せず）があってもよい。
【００２３】
一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂは、それぞれ、一次ボリューム１０６ａ及び二次ボリューム１０６ｂに向けられるＩ／Ｏ動作を管理するための入力／出力（Ｉ／Ｏ）マネージャ１１２ａ、１１２ｂを含む。ホスト・システム１００は、異なるボリューム１０６ａ、１０６ｂ間にミラー・コピー関係２００を確立するための複製マネージャ１１４を含む。ストレージ・システム１０２ａ、１０２ｂは、一次ボリューム１０６ａと二次ボリューム１０６ｂとの間のデータの複製又はミラーリングを管理し、ホスト複製マネージャ１１４と複製を調整するための複製マネージャ１１４ａ、１１４ｂを含む。
【００２４】
ホスト１００は、一次ストレージ・システム１０２ａにおけるストレージ又はコンポーネントの障害発生のようなフェイルオーバ・イベントに応答する、一次ストレージ・システム１０２ａから二次ストレージ・システム１０２ｂへのＩ／Ｏ動作のフェイルオーバを管理し、かつ、二次ストレージ・システム１０２ｂがＩ／Ｏ動作を管理しており、エラーが発生した際の、二次ストレージ・システム１０２ｂから一次ストレージ・システム１０２ａへのフェイルオーバを管理するためのフェイルオーバ・マネージャ１１６を含む。一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂは、それぞれ、ホスト・フェイルオーバ・マネージャ１１６と調整してフェイルオーバ動作を実施するためのフェイルオーバ・マネージャ１１６ａ、１１６ｂを含む。
【００２５】
一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂは、ホスト複製マネージャ１１４により確立されたコピー関係２００ａ、２００ｂ上に情報を保持する。一次ストレージ・システム１０２ａが機能しており、ボリューム１０６ａに向けられたＩ／Ｏ動作を管理している間、コピー関係２００、２００ａ、２００ｂは、データが、一次ボリューム１０６ａから対応する二次ボリューム１０６ｂへミラーリング又は同期されることを示す。一実施形態において、一次ボリューム１０６ａからのデータは、データが同期コピー・モードで対応する二次ボリューム１０６ｂにコピーされる整合性グループとしてミラーリングすることができ、そこで、書き込みが二次ストレージ１０４ｂに格納されたと確認されるまで、書き込みは完了しない。
【００２６】
フェイルオーバ・イベントに応答して、フェイルオーバ・マネージャ１１６、１１６ａ、１１６ｂは、二次ストレージ・システム１０２ｂへのフェイルオーバを調整し、そこで、二次ストレージ・システム１０２ｂは、Ｉ／Ｏ要求の管理を、一次ボリューム１０６ａから複製されたデータを有する二次ボリューム１０６ｂへ引き継ぐ。フェイルオーバ後、ホスト複製マネージャ１１４は、二次ストレージ・システム１０２ｂにおけるコピー関係２００ｂを作成して、二次ボリューム１０６ｂの更新をまた一次ボリューム１０６ａに再同期する。従って、実働サイト（production site）が二次ストレージ１０４ｂに移動する間、二次複製マネージャ１１４ｂは、一次ストレージ・システム１０２ａにおける動作可能な一次ボリューム１０６ａに対応する二次ボリューム１０６ｂの更新を再同期する。
【００２７】
一実施形態において、コピー関係２００は、ホスト複製マネージャ１１４により作成され、コピー関係２００ａ、２００ｂのローカル・コピーとして、一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂに提供される。このように、ホスト１００は、一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂの複製、フェイルオーバ、及び再同期動作を管理する。代替的な実施形態において、一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂは、ホスト１００の関与なしに、それ自体の複製及びフェイルオーバを管理することができる。
【００２８】
ストレージ・システム１０２ａ及び１０２ｂは、これらに限定されるものではないが、インターナショナル・ビジネス・マシーンズ・コーポレーション（「ＩＢＭ」）のＤＳ８０００（登録商標）ストレージ・システム又は当技術分野において周知の他の供給業者のストレージ・サーバのような、アタッチト・ストレージ・デバイスへのアクセスを管理するのに適したエンタープライズ・ストレージ・コントローラ／サーバを含むことができる。（ＤＳ８０００は、世界中の国々におけるＩＢＭの登録商標である。）一実施形態において、複製マネージャ１１４、１１４ａ、１１４ｂは、これらに限定されるものではないが、ＩＢＭのミラーリング・プログラムのＧｅｏｇｒａｐｈｉｃａｌｌｙ  Ｄｉｓｐｅｒｓｅｄ  Ｐａｒａｌｌｅｌ  Ｓｙｓｐｌｅｘ（ＧＤＰＳ（登録商標））及び複製セッション及びコピー対２００を定めるＴｉｖｏｌｉ（登録商標）Ｓｔｏｒａｇｅ  Ｐｒｏｄｕｃｔｉｖｉｔｙ  Ｃｅｎｔｅｒ  ｆｏｒ  Ｒｅｐｌｉｃａｔｉｏｎ（ＴＰＣ−Ｒ）のような、システムにわたるボリュームのミラーリングを管理するためのプログラムを含む。異なるタイプの技術を、同期ミラーリング、非同期ミラーリング、又はポイント・イン・タイム・コピー、又はこれらの異なる複数のミラーリング・タイプの組み合わせのような、データのコピーのために選択することができる。フェイルオーバ・マネージャ１１６、１１６ａ、１１６ｂは、これに限定されるものではないが、確立されたコピー対からフェイルオーバ・セッションを確立する、ＩＢＭ（登録商標）ＨｙｐｅｒＳｗａｐ製品のような、ストレージ・システム１０２ａ、１０２ｂの一方から他方へのフェイルオーバを処理するのに適したプログラムを含むことができる。（ＩＢＭ、ＧＤＰＳ、Ｔｉｖｏｌｉ、及びＨｙｐｅｒＳｗａｐは、世界中の国々におけるＩＢＭの登録商標である。）
【００２９】
ネットワーク１０８は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、広域エリア・ネットワーク（ＷＡＮ）、ピア・ツー・ピア・ネットワーク、無線ネットワーク、アービトレーテッド・ループ・ネットワーク（arbitrated loop network）等を含むことができる。ストレージ１０４ａ、１０４ｂはそれぞれ、Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  ｏｆ  Ｄｉｓｋｓ（ＪＢＯＤ、単純ディスク束）、ダイレクト・アクセス・ストレージ・デバイス（Direct Access Storage Device、ＤＡＳＤ）、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ、独立ディスクの冗長アレイ）アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等として構成される１つ又は複数のストレージ・デバイス又はストレージ・デバイスのアレイ内に実装することができる。ストレージ・デバイスは、ハードディスク・ドライブ、ソリッド・ステート・エレクトロニクスからなるソリッド・ステート・ストレージ・デバイス（ＳＳＤ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラム可能読み取り専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（ＳＣＭ）等、相変化メモリ（ＰＣＭ）、抵抗変化型ランダム・アクセス・メモリ（ＲＲＡＭ）、スピン・トランスファ・トルク・メモリ（ＳＴＭ−ＲＡＭ）、導電ブリッジＲＡＭ（ＣＢＲＡＭ）、磁気ハードディスク・ドライブ、光ディスク、テープ等を含むことができる。ノード・グループ、管理コンポーネント、メールボックス等のような、特定数の要素のインスタンスが示されるが、任意の数のこれらのコンポーネントが存在し得る。
【００３０】
図２は、コピー関係２００ｉのインスタンスの１つの実施形態を示し、このコピー関係２００ｉは、コピー対の識別子（ＩＤ）２０２と、データがコピーされる一次ボリューム２０４（ボリューム１０６ａ又は１０６ｂの一方を含むことができる）と、データがミラーリングされる二次ボリューム２０６（ボリューム１０６ａ又は１０６ｂの一方を含むことができる）と、二次ボリューム２０６にコピー又は同期する必要がある、一次ボリューム２０４内のデータ・ユニット又はトラックを示す変更記録ビットマップ２０８とを含むものとして、コピー関係２００、２００ａ、２００ｂのインスタンスを含むことができる。変更記録ビットマップ２０８内に示される全ての更新が二次ボリューム２０６にコピーされると、コピー関係２００ｉは、二重化（duplex）又は同期された状態に達する。変更記録ビットマップ２０８を初期化して、同期する必要があるトラックがないことを示すことができる。トラックが更新されると、ビットマップ２０８内の対応するビットは、トラックを二次ボリューム２０６にコピーする必要があることを示すように設定される。
【００３１】
図３は、ポイント・イン・タイム・コピー・コマンド・オペレータ３０２と、ＰｉＴコピー動作の対象となるソース・ボリューム３０４と、ソース・ボリューム３０４がＩ／Ｏ動作からフェンスオフ（fence-off）される場合でも、ＰｉＴコピー・コマンドが進行するのを可能にするよう、Ｉ／Ｏマネージャ１１２ａ、１１２ｂに命令するソフト・フェンス・オーバーライド３０６とを含む、ポイント・イン・タイム・コピー・コマンド３００の１つの実施形態を示す。別のストレージ・システムにおける対応するボリュームへのソース・ボリューム３０４におけるフェイルオーバがある場合、ソース・ボリューム３０４がフェンスオフを受けることがある。フェンスオフ状態は、該状態にあるボリューム３０４に対する読み取り及び書き込みをブロックする。パラメータ３０６は、ソース・ボリューム３０４がフェンスオフ状態にある場合でも、ポイント・イン・タイム・コピーの進行を可能にする。パラメータ３０６が、ボリューム３０４がフェンスオフ状態にあるとき、ポイント・イン・タイム・コピー・コマンドの進行が可能であることを示していない場合、ポイント・イン・タイム・コピー・コマンドは、フェンスオフ状態によりブロックされ得る。
【００３２】
ポイント・イン・タイム・コピーは、瞬間的に現れる（appear instantaneous）方法でデータを複製し、コピー・ボリュームへの実際のデータ転送を後に延期する間、ホストが、ソース・ボリュームにアクセスし続けるのを可能にする。ソースからターゲット・ボリュームへデータをコピーすることなく、関係データ構造を生成することに応答して入力／出力（Ｉ／Ｏ）の完了がコピー動作に返されるので、ポイント・イン・タイム・コピーは瞬間的に現れる。ポイント・イン・タイム・コピー技術は、一般に、ポイント・イン・タイム・コピー関係がコピー・ターゲット・ボリュームに対して確立された時点で、書き込み動作がソース・ボリューム上のそのデータ・ブロックに要求されるまで、ソース・ボリューム内のデータの転送を延期する。データ転送はまた、システム性能への影響が最小の状態で、バックグラウンド・コピー・プロセスとして進行することもできる。ポイント・イン・タイム・コピー・コマンドに応答して即座に確立されるポイント・イン・タイム・コピー・コマンド関係は、ソース・ボリューム若しくはコピー・ボリュームのいずれかにおけるボリューム内のブロックの位置を示すビットマップ又は他のデータ構造を含む。ポイント・イン・タイム・コピーは、ソース・ボリューム内のデータと、ターゲット・ボリュームに転送される更新により上書きされるデータの組み合わせを含む。
【００３３】
図４は、一次ストレージ・システム１０２ａから二次ストレージ・システム１０２ｂへのフェイルオーバを実行するために、ホスト１００内のコンポーネント、一次ストレージ・システム１０２ａ及び二次ストレージ・システム１０２ｂのコンポーネントにより実行される動作の１つの実施形態を示す。フェイルオーバのために、システム１０２ａは、一次ストレージ・システムとして機能し、システム１０２ｂは、二次ストレージ・システムとして機能することができる。制御は、（ブロック４００において）ホスト複製マネージャ１１４がミラー・コピー操作を開始し、一次ボリューム１０６ａと二次ボリューム１０６ｂとの間でデータを同期することから開始する。（ブロック４０２において）ホスト複製マネージャ１１４は、一次ストレージ・ボリューム１０６ａと対応する二次ストレージ・ボリューム１０６ｂとの間にコピー関係２００を確立し、一次ボリューム１０６ａから対応する二次ボリューム１０６ｂへと同期コピー・モードでデータ及び更新をミラーリングすることができる。コピー関係２００は、データのミラーリング／同期に使用するために、一次複製マネージャ１１４ａに与えられる。同期コピー・モードでは、二次ストレージ・システム１０２ｂが、データが対応する二次ボリューム１０６ｂ内に格納されたことを確認するまで、コピーされるデータは完了したものとして示されない。一実施形態において、データは、整合性グループ・モードで一次ボリューム１０６ａから二次ボリューム１０６ｂにミラーリングすることができるので、二次ボリューム１０６ｂにおけるデータは、一次ボリューム１０６ａにおけるデータの時点のものと整合性があるように維持される。
【００３４】
（ブロック４０４において）フェイルオーバ・マネージャ１１６ａは、一次ストレージ１０４ａのストレージ・デバイスを含む、一次ストレージ・システム１０２ａの１つ又は複数のコンポーネントの障害発生のような、一次ストレージ・システム１０２ａにおける障害発生イベントを検出し得る。（ブロック４０４において）フェイルオーバ・イベントを検出すると、（ブロック４０６において）一次フェイルオーバ・マネージャ１１６ａ又はホスト・フェイルオーバ・マネージャ１１６ａは、データ損失が生じる一次ボリューム１０６ａ内のトラックを判断し、一次ストレージ・システム１０２ａ内の障害が発生したトラックを記録することができる。その後、一次ストレージ・システム１０２ａは、二次ストレージ・システム１０２ｂから一次ストレージ・システム１０２ａへ再同期する際に使用するために、障害が発生したトラックに関する情報をホスト・フェイルオーバ・マネージャ１１６又は二次フェイルオーバ・マネージャ１１６ｂに報告することができる。動作不能な一次ボリューム１０６ａ内のトラックは、ボリューム内のトラックのサブセットを含み、他のトラックはデータ損失が生じないことがある。
【００３５】
次に、ホスト・フェイルオーバ・マネージャ１１６は、一次フェイルオーバ・マネージャ１１６ａ及び二次フェイルオーバ・マネージャ１１６ｂと調整して、（ブロック４０８において）一次ストレージ・システム１０２ａにおける一次ボリューム１０６ａからのフェイルオーバを開始し、Ｉ／Ｏ要求を二次ストレージ・システム１０２ｂにおける対応する二次ボリューム１０６ｂにリダイレクトすることができる。フェイルオーバの一部分として、ホスト複製マネージャ１１４は、コピー関係２００ａをサスペンドし、データを一次ボリューム１０６ａから二次ボリューム１０６ｂに同期することができる。（ブロック４１０において）ホスト・フェイルオーバ・マネージャ１１６は、一次ボリューム１０６ａに対するソフト・フェンス状態をさらに確立することができる。ソフト・フェンス状態は、二次ボリューム１０６ｂにスワップされた１つ又は複数の一次ボリューム１０６ａに対するＩ／Ｏ動作を防止し、フェイルオーバ後のそれらのボリューム１０６ａへのあらゆる意図しないアクセスを防止する。
【００３６】
次に、ブロック４１２乃至４２２において、ホスト複製マネージャ１１４又はフェイルオーバ・マネージャ１１６は、一次ストレージ・システム１０２ａの各々の一次ボリュームｉに対する動作のループを実施することができる。一次ボリュームｉについて、ホスト複製マネージャ１１４又はフェイルオーバ・マネージャ１１６は、（ブロック４１４において）ボリュームｉに対するＰｉＴコピー動作を開始し、ソフト・フェンス・オーバーライド・パラメータ３０６は、ソフト・フェンス状態がボリュームｉに対してアクティブである場合でもＰｉＴコピー動作は続行すべきであることを示すように設定される。ホスト複製マネージャ１１４又はフェイルオーバ・マネージャ１１６は、（ブロック４１６において）ボリュームｉが動作可能かどうかを判断する。一実施形態において、この判断は、ボリュームｉがソフト・フェンス状態にある場合、ポイント・イン・タイム・コピー・コマンド３００の進行を可能にするように指定して設定されたソフト・フェンス・オーバーライド・パラメータ３０６を有するポイント・イン・タイム・コピー・コマンド３００を開始することにより、行うことができ、これはブロック４０６の動作の結果にも当てはまる。ポイント・イン・タイム・コピー動作がボリュームｉに対して成功する場合、ボリュームｉは動作可能であると判断され、さもなければポイント・イン・タイム・コピー動作が失敗した場合、ボリュームｉは動作不能であると判断される。動作可能な一次ボリューム１０６ａのポイント・イン・タイム・コピーをとることによって、これらの一次ボリューム１０６ａについてのデータが、フェイルオーバ・イベント時点のものとして保存される。これらのポイント・イン・タイム・コピーは、他の回復オプションが失敗した場合にデータ回復のために用いることができる。他の技術を用いて、ブロック４１４における動作の一部として一次ボリューム１０６ａが動作可能であるかどうかを判断することができる。
【００３７】
（ブロック４１６において）一次ボリュームｉが動作可能な場合、ホスト複製マネージャ１１４（又は、フェイルオーバ・マネージャ１１６）は、（ブロック４１８において）コピー関係２００ｉを作成し、一次ボリュームｉに対応する二次ストレージ１０２ｂにおける二次ボリュームｉからの再同期動作を開始し、変更記録ビットマップ内に示される更新のために、二次ボリュームｉの更新を一次ボリュームに非同期モードで転送する。二次ボリューム１０６ｂの更新を受信すると、二次ボリュームｉについての変更記録ビットマップ２０８内の対応するビットが設定される。二次複製マネージャ１１４ｂは、変更記録ビットマップ２０８を走査して、二次ボリューム１０６ｂにおける更新を探し、フェイルオーバ中に動作可能なままである対応する一次ボリューム１０６ａに再同期又はコピーする。非同期コピー・モードにおいて、コピーは、データを受信したという確認を一次ボリュームｉから受け取る必要なしに完了する。一実施形態において、非同期モードは、非整合性グループ・モード（ＣＧＭ）を含むことができるので、データは、二次ボリューム１０６ｂと一次ボリューム１０６ａとの間に整合性があることは確実ではない。二次ストレージ・システム１０２ｂへのフェイルオーバ中、二次ボリューム１０６ｂにおける更新を再同期の一部として動作可能な一次ボリューム１０６ａに自動的に非同期的にコピーする二次複製マネージャ１１４を有することにより、一次ボリューム１０６ａにおけるデータは、可能な限り最新に維持され、その結果、ひとたび一次ストレージ・システム１０２ａが修復され、完全に動作可能になると、一次ストレージ・システム１０２ａの再同期がより迅速に完了できる。説明される実施形態において、動作可能なボリュームへの再同期は、フェイルオーバ・マネージャ１１６又は１１６ｂによって制御されるフェイルオーバ・プロセスにより自動的に開始される。
【００３８】
さらに、再同期コピーを非同期的に行うことで、同期的にコピーを行うのに比べて、二次ボリュームにアクセスするホスト・アプリケーションへの性能の影響が著しく低減する。さらに、非同期コピーは、何らかの障害分析及び機器の修理（必要な場合）が行われる前、フェイルオーバ直後に開始することができる。
【００３９】
（ブロック４１６において）ボリュームｉが動作可能でない場合、ホスト複製マネージャ１１４又はフェイルオーバ・マネージャ１１６は、（ブロック４２０において）二次ボリュームｉから一次ボリュームｉへの再同期のために、サスペンドされたコピー関係２００ｉを作成し、ボリュームｉについての変更記録ビットマップ２０８を更新し、データ損失を有するものとして報告されたあらゆるトラックを更新されたものとして示す。データ損失が生じるボリュームｉ内のトラックを、変更記録ビットマップ２０８内の更新されたものとして示すことにより、二次複製マネージャ１１４ｂは、フェイルオーバ中、ボリュームｉが修復され、動作可能になった後のその後の再同期中、それらが更新されていてもいなくても、データ損失を有するトラックのデータにわたってコピーする。
【００４０】
図４の動作の結果、フェイルオーバ後、二次ストレージ・システム１０２ｂは、二次ボリューム１０６ｂの更新の、動作可能なままの一次ボリューム１０６ａへの再同期を即座に開始する。動作不能な一次ボリューム１０６ａについては、対応する二次ボリューム１０６ｂについての変更記録ビットマップ２０８は、データ損失が生じたトラックを更新されたものとして示すように設定され、動作不能な一次ボリュームが動作可能であると判断されるまで、再同期がサスペンドされる。フェイルオーバ中、動作可能なそれらの一次ボリュームを再同期することにより、二次ストレージ・システム１０２ｂにおけるフェイルオーバ中、二次ストレージ・システム１０２ｂにおける更新の相当量が既に一次ボリューム１０６ａに再同期されているので、一次ストレージ・システム１０２ａが完全に動作可能になった直後、一次ストレージ・システムはフェイルオーバの準備ができている。
【００４１】
図４の動作において、ストレージ・システムのボリュームに対して、操作性を判断する。代替的な実施形態において、ミラーリング及び操作性は、ストレージ・デバイス、論理パーティション、物理パーティション、論理ドライブ等のような、ボリューム以外のストレージ・ユニットに関して判断することができる。
【００４２】
図５は、障害発生イベント後、一次ストレージ・システム１０２ａを回復させるためにホスト複製マネージャ１１４及びフェイルオーバ・マネージャ１１６により実施される動作の１つの実施形態を示す。（ブロック５００において）ホスト・フェイルオーバ・マネージャ１１４は、フェイルオーバからの所定の遅延後、ヘルス・クエリ（health query）を一次ストレージ・システム１０２ａに発行し、一次ストレージ・システム１０２ａが動作可能かどうかを判断する。多くの障害タイプの場合、一定時間が経過した後、一次ストレージ・システム１０２ａは、内部回復動作及び手順を通して回復され得る。（ブロック５０２において）一次ストレージ・システム１０２ａからヘルス・クエリへの応答を受信すると、（ブロック５０４において）応答が、一次ストレージ・システム１０２ａが完全に動作可能であることを示す場合、（ブロック５０６において）ホスト複製マネージャ１１４は、前に動作不能であった一次ボリューム１０６ａに対応する二次ボリューム１０６ｂの各々のポイント・イン・コピー動作を行って、必要に応じて回復のために用いることができる整合したコピーを提供する。（ブロック５０８において）ホスト複製マネージャ１１４は、再同期を開始し、前に動作不能として示された一次ボリューム１０６ａに対応する各々の二次ボリューム１０６ｂについての、変更記録ビットマップ２０８において更新されたものとして示されるデータを、同期的にコピーする。再同期は、コピー関係２００ｂのサスペンドを解除し、二次ボリュームを前に動作不能であった一次ボリューム１０６ａに再同期することによって、開始することができる。前に動作不能であった一次ボリューム１０６ａへの再同期についての変更記録ビットマップ２０８は、更新された対応する二次ボリューム１０６ｂ内の更新されたトラック、及び、データ損失が生じたものとして報告された動作不能な一次ボリューム内のトラックとして示される。このように、回復した動作不能な一次ボリューム１０６ａに対する再同期では、更新されたデータ、及びデータ損失が生じるトラックについてのデータしかコピーせず、回復した動作不能なボリューム全体にわたるコピーを行わない。このことは、フェイルオーバ中に更新されず、データ損失が生じなかった、回復した一次ボリューム１０６ａ内のトラックに対応する二次ボリューム内のトラックのコピーを回避することにより、再同期を促進する。
【００４３】
（ブロック５１４において）二次複製マネージャ１１４ｂはさらに、Ｉ／Ｏ要求が二次ストレージ・システム１０２ｂにリダイレクトされる間、フェイルオーバの開始から非同期的にコピーされた、動作可能なボリュームに対する更新の再同期を同期コピー・モードに変換するので、一次ストレージ・システム１０２ａが回復された後、再同期すべき残りのデータは同期的にコピーされる。
【００４４】
（ブロック５０４において）ヘルス・クエリへの応答が、一次ストレージ・システム１０２ａは完全に動作可能ではないことを示す場合、（ブロック５１０において）ホスト・フェイルオーバ・マネージャ１１４は、一次ストレージ・システム１０２ａの修復のための診断情報を集め、管理者に報告する。次に、管理者は、一次ストレージ・システム１０２ａ内のユニット、コンポーネント及びストレージ・デバイスを置き換える及び／又は修理することなどにより、集めた診断情報に基づいて障害が発生した一次ストレージ・システム１０２ａの修復を進める。修復を完了した後、管理者は再同期コマンドを開始し、再同期を実施する。ブロック５１２において、ホスト複製マネージャ１１４又は二次複製マネージャ１１４ｂは、管理者から手動再同期コマンドを受信し、次にブロック５０６に進んで、前に動作不能として示されたボリュームに対する再同期を開始することができる。
【００４５】
説明される実施形態において、修復及び回復後、障害が発生したボリューム１０６ａに対して確立されたコピー関係２００について変更記録ビットマップ内に示される、フェイルオーバ中に更新された又はデータ損失が生じる、回復された動作不能な一次ボリューム１０６ａ内のトラックしか同期する必要はない。さらに、動作可能な一次ボリューム１０６ａに対するフェイルオーバ中に再同期を開始することにより、データの大部分が既に再同期されている可能性があるので、一次ストレージ・システム１０２ａが回復した後の同期は、ずっと迅速に完了する。
【００４６】
本発明は、システム、方法、及び／又はコンピュータ・プログラムとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
【００４７】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用するための命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令がその上に記録された溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波若しくは他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、又は配線を介して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
【００４８】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードしてもよく、又は、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ若しくは外部ストレージ・デバイスにダウンロードしてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納するように、コンピュータ可読プログラム命令を転送する。
【００４９】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データとすることができ、又は、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、全体をユーザのコンピュータ上で実行することができ、独立型ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されることができ、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行することができ、又は全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネット経由で）接続が行われてもよい。幾つかの実施形態においては、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラマブル論理アレイ（ＰＬＡ）を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【００５０】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラムのフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００５１】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、命令をその内部に格納したコンピュータ可読ストレージ媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を含むようにすることもできる。
【００５２】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するようにすることもできる。
【００５３】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることもある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステムにより実装すること、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されたい。
【００５４】
ホスト１００及びストレージ・システム１０２ａ、１０２ｂを含む図１の計算コンポーネントは、図６に示されるコンピュータ・システム６０２のような１つ又は複数のコンピュータ・システムにおいて実装することができる。コンピュータ・システム／サーバ６０２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ６０２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【００５５】
図６に示されるように、コンピュータ・システム／サーバ６０２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ６０２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ若しくは処理ユニット６０４、システム・メモリ６０６、及びシステム・メモリ６０６を含む種々のシステム・コンポーネントをプロセッサ６０４に結合するバス６０８を含むことができる。バス６０８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００５６】
コンピュータ・システム／サーバ６０２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ６０２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【００５７】
システム・メモリ６０６は、ランダム・アクセス・メモリ（ＲＡＭ）６１０及び／又はキャッシュ・メモリ６１２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ６０２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハードドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム６１３を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによってバス６０８に接続することができる。以下でさらに示され説明されるように、メモリ６０６は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００５８】
限定ではなく例として、メモリ６０６内に、プログラム・モジュール６１６のセット（少なくとも１つ）を有するプログラム／ユーティリティ６１４、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。コンピュータ６０２のコンポーネントは、一般に、本明細書で説明される本発明の実施形態の機能及び／又は方法を実行する。図１のシステムは、１つ又は複数のコンピュータ・システム６０２において実装することができ、それらが複数のコンピュータ・システム６０２において実装される場合、コンピュータ・システムはネットワーク上で通信することができる。
【００５９】
コンピュータ・システム／サーバ６０２は、キーボード、ポインティング・デバイス、ディスプレイ６２０等のような１つ又は複数の外部デバイス６１８；ユーザがコンピュータ・システム／サーバ６０２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ６０２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース６２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ６０２は、ネットワーク・アダプタ６２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ６２４は、バス６０８を介して、コンピュータ・システム／サーバ６０２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ６０２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【００６０】
本明細書で用いられるｉなどの参照文字は、本明細書では、同じ又は異なる値を表し得る可変数の要素のインスタンスを示すために用いられ、説明される異なるインスタンスにおいて異なる又は同じ要素と共に用いられる場合、同じ又は異なる値を表し得る。
【００６１】
「１つの実施形態」、「実施形態」、「（複数の）実施形態」、「その実施形態」、「（複数の）その実施形態」、「１つ又は複数の実施形態」、「幾つかの実施形態」及び「一実施形態」という用語は、特に明示的に断らない限り、本発明の１つ又は複数の（しかし、全てではない）実施形態を意味する。
【００６２】
「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、「備えている（ｃｏｍｐｒｉｓｉｎｇ）」、「有している（ｈａｖｉｎｇ）」という用語及びその変形は、特に明示的に断らない限り、「含むが、それらに限定されない」ことを意味する。
【００６３】
項目の列挙リストは、特に明示的に断らない限り、項目のいずれか又は全てが相互排除的であることを意味しない。
【００６４】
「１つの（ａ）」、「１つの（ａｎ）」及び「その（ｔｈｅ）」という用語は、特に明示的に断らない限り、「１つ又は複数（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を指す。
【００６５】
互いに通信するデバイスは、特に明示的に断りのない限り、互いに連続的に通信する必要はない。さらに、互いに通信するデバイスは、直接又は１つ又は複数の中間物を介して間接的に通信することもある。
【００６６】
互いに通信する幾つかのコンポーネントを用いる１つの実施形態の説明は、全てのこうしたコンポーネントが必要とされることを意味するものではない。これに反して、種々の随意的なコンポーネントは、本発明の多種多様の可能な実施形態を示すために説明される。
【００６７】
本明細書では単一のデバイス又は物品が説明されるが、単一のデバイス／物品の代わりに、１つより多いデバイス／物品を（これらが協働しても又はしなくても）用い得ることは容易に明らかであろう。同様に、１つより多いデバイス又は物品が本明細書で説明される場合（これらが協働しても又はしなくても）、１つより多いデバイス又は物品の代わりに単一のデバイス／物品を用いてもよく、又は示される数のデバイス又は物品の代わりに異なる数のデバイス／物品を用いてもよいことは、容易に明らかであろう。デバイスの機能及び／又は特徴を、そうした機能／特徴を有するものとして明示的に説明されていない１つ又は複数の他のデバイスによって代替的に具体化することもできる。従って、本発明の他の実施形態が、デバイス自体を含む必要はない。
【００６８】
本発明の種々の実施形態の上記の記載は、例示及び説明のために提示されている。これは、網羅的であること又は本発明を開示された正確な形態に限定することを意図していない。上記の教示に照らして、多くの修正及び変形が可能である。本発明の範囲は、詳細な説明により制限されるものではなく、むしろ、これに添付される特許請求の範囲により制限されることが意図される。上記の詳述、例及びデータは、本発明の構成の製造及び使用の完全な説明を提供する。本発明の趣旨及び範囲から逸脱することなく、本発明の多くの実施形態を作成できるので、本発明は、以下に添付する本明細書における特許請求の範囲内にある。
【符号の説明】
【００６９】
１００：ホスト
１０２ａ：一次ストレージ・システム
１０２ｂ：二次ストレージ・システム
１０４ａ：一次ストレージ
１０４ｂ：二次ストレージ
１０６ａ、２０４：一次ボリューム
１０６ｂ、２０６：二次ボリューム
１０８：ネットワーク
１１２ａ、１１２ｂ：入力／出力（Ｉ／Ｏ）マネージャ
１１４、１１４ａ、１１４ｂ：ホスト複製マネージャ
１１６、１１６ａ、１１６ｂ：フェイルオーバ・マネージャ
２００、２００ａ、２００ｂ、２００ｉ：コピー関係
２０２：コピー対識別子（ＩＤ）
２０８：変更記録ビットマップ
３００：ポイント・イン・タイム・コピー・コマンド
３０２：ポイント・イン・タイム・コピー・コマンド・オペレータ
３０４：ソース・ボリューム
３０６：パラメータ
６０２：コンピュータ・システム／サーバ
６０６：システム・メモリ
６０８：バス
６１６：プログラム・モジュール
６２２：入力／出力（Ｉ／Ｏ）インターフェース
６２４：ネットワーク・アダプタ
【図１】
0006734866.tif 000002
【図２】
0006734866.tif 000003
【図３】
0006734866.tif 000004
【図４】
0006734866.tif 000005
【図５】
0006734866.tif 000006
【図６】
0006734866.tif 000007