特許第6734866号(P6734866)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許6734866第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期
<>
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000002
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000003
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000004
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000005
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000006
  • 特許6734866-第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6734866
(24)【登録日】2020年7月14日
(45)【発行日】2020年8月5日
(54)【発明の名称】第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後の第1のストレージ・システムへの再同期
(51)【国際特許分類】
   G06F 3/06 20060101AFI20200728BHJP
   G06F 11/07 20060101ALI20200728BHJP
【FI】
   G06F3/06 304B
   G06F3/06 302Z
   G06F3/06 304N
   G06F3/06 306Z
   G06F3/06 304F
   G06F11/07 140M
   G06F11/07 193
【請求項の数】16
【全頁数】22
(21)【出願番号】特願2017-553352(P2017-553352)
(86)(22)【出願日】2016年5月3日
(65)【公表番号】特表2018-518734(P2018-518734A)
(43)【公表日】2018年7月12日
(86)【国際出願番号】IB2016052502
(87)【国際公開番号】WO2016178138
(87)【国際公開日】20161110
【審査請求日】2018年11月21日
(31)【優先権主張番号】14/704,893
(32)【優先日】2015年5月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】トンプソン、ジョン、グレン
(72)【発明者】
【氏名】ピーターセン、デービッド
(72)【発明者】
【氏名】スピア、ゲイル、アンドレア
(72)【発明者】
【氏名】マクルーア、アラン、ジョージ
(72)【発明者】
【氏名】ロマン、ダニエル
(72)【発明者】
【氏名】フランケンベルク、マイケル
(72)【発明者】
【氏名】ブランドナー、マイケル
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 特開2000−330731(JP,A)
【文献】 特開2005−352831(JP,A)
【文献】 米国特許出願公開第2005/0097391(US,A1)
【文献】 米国特許出願公開第2007/0288710(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
G06F 11/07
G06F 11/16−11/20
G06F 13/10−13/14
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
複数のストレージ・ユニットを含む第1のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第2のストレージ・システムとの間のフェイルオーバを行うためのプロセッサに、
前記第1のストレージ・システムと前記第2のストレージ・システムとの間でデータを同期すること、
前記第1のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第1のストレージ・システムから前記第2のストレージ・システムへフェイルオーバを行うことであって、前記第1のストレージ・システムへのI/O要求は、前記フェイルオーバの一部として前記第2のストレージ・システムにリダイレクトされる、行うこと、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第1のストレージ・ユニットが動作不能であると判断すること、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第2のストレージ・ユニットが動作可能であると判断すること、
前記第1のストレージ・システムの前記第2のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記I/O要求が前記第2のストレージ・システムにリダイレクトされる間、前記第2のストレージ・システムの第2のストレージ・ユニットを前記第1のストレージ・システムの前記第2のストレージ・ユニットにミラーリングすることによって、前記第1のストレージ・システムの前記第2のストレージ・ユニットに更新をコピーすること、
を実行させるためのコンピュータ・プログラム。
【請求項2】
前記第1のストレージ・システムと前記第2のストレージ・システムとの間のデータの前記同期は、同期コピー・モードで行われ、
前記I/O要求が前記第2のストレージ・システムにリダイレクトされる間、前記再同期中の前記更新のコピーは、非同期コピー・モードで行われる、請求項1に記載のコンピュータ・プログラム。
【請求項3】
前記第1のストレージ・ユニットが動作不能であると判断することは、
前記第1のストレージ・システムの前記第1のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、
前記第1のストレージ・システムの前記第1のストレージ・ユニットの前記ポイント・イン・タイム・コピーが失敗したと判断することであって、当該第1のストレージ・ユニットの前記ポイント・イン・タイム・コピーが失敗したと判断することに応答して、当該第1のストレージ・ユニットは動作不能であると判断される、判断することと、
を含み、
前記第1のストレージ・システムの前記第2のストレージ・ユニットが動作可能であると判断することは、
前記第1のストレージ・システムの前記第2のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、
前記第1のストレージ・システムの前記第2のストレージ・ユニットの前記ポイント・イン・タイム・コピーが成功したと判断することであって、当該第2のストレージ・ユニットの前記ポイント・イン・タイム・コピーが成功したと判断することに応答して、当該第2のストレージ・ユニットは動作可能であると判断される、判断することと、
を含む、請求項1に記載のコンピュータ・プログラム。
【請求項4】
前記プロセッサ
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムにおける前記第1及び第2のストレージ・ユニットへのI/Oアクセスを防止することをさらに実行させ
前記ポイント・イン・タイム・コピーは、前記第1のストレージ・システムへの前記I/Oアクセスが防止されている間、前記ポイント・イン・タイム・コピーの進行を可能にするためのパラメータを有するコマンドで開始される、請求項3に記載のコンピュータ・プログラム。
【請求項5】
前記第1のストレージ・システムの前記第1のストレージ・ユニット及び前記第2のストレージ・ユニット、前記第2のストレージ・システムの前第1のストレージ・ユニット及び前記第2のストレージ・ユニットは、それぞれがストレージ・ボリュームである、請求項3に記載のコンピュータ・プログラム。
【請求項6】
前記再同期は第1の再同期を含み、前記プロセッサ
ヘルス・クエリを前記第1のストレージ・システムに発行し、前記第1のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第1のストレージ・システムが完全に動作可能であるとき、前記第1のストレージ・システムの前記第1及び第2のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第1のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第2のストレージ・システムの前記第1のストレージ・ユニットの更新を前記第1のストレージ・システムの前記第1のストレージ・ユニットに再同期する第2の再同期を開始することと、
をさらに実行させる、請求項1に記載のコンピュータ・プログラム。
【請求項7】
前記ヘルス・クエリは、前記フェイルオーバを行った後、所定の期間後に発行される、請求項6に記載のコンピュータ・プログラム。
【請求項8】
作不能であると判断された前記第1のストレージ・システムの前記第1のストレージ・ユニットは、データ損失が生じトラックのサブセットを含み、
前記第2の再同期は、前記ヘルス・クエリが、前記第1のストレージ・システムが完全に動作可能であると示すことに応答して、前記第2のストレージ・システムの第1のストレージ・ユニット内のトラックのサブセットを、前記第1のストレージ・システムの前記第1のストレージ・ユニット内の前記トラックの対応するサブセットにコピーすることを含み
前記第2の再同期においてコピーされる前記第2のストレージ・システムの第1のストレージ・ユニット内の前記トラックの前記サブセットは、I/O要求が前記第2のストレージ・システムにリダイレクトされている間更新され前記第2のストレージ・システムの第1のストレージ・ユニット内のトラックのサブセットと、前記第1のストレージ・システムの第1のストレージ・ユニット内の前記データ損失が生じた前記トラックの前記サブセットに対応する第2のストレージ・システムの第1のストレージ・ユニット内のトラックのサブセットとを含む、請求項6に記載のコンピュータ・プログラム。
【請求項9】
前記ヘルス・クエリへの前記応答が、前記第1のストレージ・システムが完全に動作可能であると示す前に、前記第1のストレージ・システムに対する前記第2のストレージ・システムの前記第2のストレージ・ユニットの前記第1の再同期は非同期コピー・モードで行われ、前記プロセッサ
前記ヘルス・クエリが、前記第1のストレージ・システムが完全に動作可能であると示すことに応答して、前記第1のストレージ・システムに対する前記第2のストレージ・システムの前記第2の再同期を同期コピー・モードに移行すること、
をさらに実行させる、請求項6に記載のコンピュータ・プログラム。
【請求項10】
前記プロセッサ
前記ヘルス・クエリが、前記第1のストレージ・システムが完全に動作可能であると示すことに応答して、前記第1のストレージ・システムの前記第1のストレージ・ユニットのポイント・イン・タイム・コピーを開始することであって、前記ポイント・イン・タイム・コピーが成功したと判断することに応答して、前記第2の再同期が行われる、開始することをさらに実行させる、請求項9に記載のコンピュータ・プログラム。
【請求項11】
前記プロセッサ
前記ヘルス・クエリが、前記第1のストレージ・システムは完全に動作可能ではないと示すことに応答して、前記第1のストレージ・システムの修復のための診断情報を集めることと、
前記集められた診断情報に基づいて、前記第1のストレージ・システムに修理が行われることに応答して、前記第1のストレージ・システムの管理者から発行された再同期コマンドを受信することであって、前記受信した再同期コマンドは、前記第2のストレージ・システムの前記第1のストレージ・ユニットへの更新の、前記第1のストレージ・システムの前記第1のストレージ・ユニットへの前記コピーを開始する、受信することと、
をさらに実行させる、請求項6に記載のコンピュータ・プログラム。
【請求項12】
前記第2のストレージ・システムの第1のストレージ・ユニットの更新は、前記I/O要求が前記第2のストレージ・システムにリダイレクトされる間、前記第1のストレージ・システムの前記第1のストレージ・ユニットにコピーされない、請求項1に記載のコンピュータ・プログラム。
【請求項13】
複数のストレージ・ユニットを含む第1のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第2のストレージ・システムとの間のフェイルオーバを行うためのシステムであって、
少なくとも1つのプロセッサを備え、前記プロセッサは、
前記第1のストレージ・システムと前記第2のストレージ・システムとの間でデータを同期すること、
前記データを同期する間、前記第1のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第1のストレージ・システムから前記第2のストレージ・システムへフェイルオーバを行うことであって、前記第1のストレージ・システムへのI/O要求は、前記フェイルオーバの一部として前記第2のストレージ・システムにリダイレクトされる、行うこと、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第1のストレージ・ユニットが動作不能であると判断すること、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第2のストレージ・ユニットが動作可能であると判断すること、
前記第1のストレージ・システムの前記第2のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記I/O要求が前記第2のストレージ・システムにリダイレクトされる間、前記第2のストレージ・システムの第2のストレージ・ユニットを前記第1のストレージ・システムの前記第2のストレージ・ユニットにミラーリングすることによって、前記第1のストレージ・システムの前記第2のストレージ・ユニットに更新をコピーすること、
を実行する、システム。
【請求項14】
前記再同期は第1の再同期を含み、前記プロセッサは、
前記フェイルオーバを行った後、所定の期間後に、ヘルス・クエリを前記第1のストレージ・システムに発行し、前記第1のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第1のストレージ・システムが完全に動作可能であるとき、前記第1のストレージ・システムの前記第1及び第2のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第1のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第2のストレージ・システムの前記第1のストレージ・ユニットの更新を前記第1のストレージ・システムの前記第1のストレージ・ユニットに再同期する第2の再同期を開始することと、
をさらに実行するように構成されている、請求項13に記載のシステム。
【請求項15】
複数のストレージ・ユニットを含む第1のストレージ・システムと当該複数のストレージ・ユニットにそれぞれ対応するストレージ・ユニットを含む第2のストレージ・システムとの間のフェイルオーバを行うための方法であって、
プロセッサが、
前記第1のストレージ・システムと前記第2のストレージ・システムとの間でデータを同期することと、
前記データを同期する間、前記第1のストレージ・システムにおけるフェイルオーバ・イベントに応答して、前記第1のストレージ・システムから前記第2のストレージ・システムへフェイルオーバを行うことであって、前記第1のストレージ・システムへのI/O要求は、前記フェイルオーバの一部として前記第2のストレージ・システムにリダイレクトされる、行うことと、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第1のストレージ・ユニットが動作不能であると判断することと、
前記フェイルオーバ・イベントに応答して、前記第1のストレージ・システムの第2のストレージ・ユニットが動作可能であると判断することと、
前記第1のストレージ・システムの前記第2のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、前記I/O要求が前記第2のストレージ・システムにリダイレクトされる間、前記第2のストレージ・システムの第2のストレージ・ユニットを前記第1のストレージ・システムの前記第2のストレージ・ユニットにミラーリングすることによって、前記第1のストレージ・システムの前記第2のストレージ・ユニットに更新をコピーすることと、
実行する、方法。
【請求項16】
前記再同期は第1の再同期を含み、前記プロセッサが、
前記フェイルオーバを行った後、所定の期間後に、ヘルス・クエリを前記第1のストレージ・システムに発行し、前記第1のストレージ・システムが完全に動作可能かどうかを判断することであって、前記第1のストレージ・システムが完全に動作可能であるとき、前記第1のストレージ・システムの前記第1及び第2のストレージ・ユニットの両方とも動作可能である、発行することと、
前記ヘルス・クエリへの応答が、前記第1のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、前記第2のストレージ・システムの前記第1のストレージ・ユニットの更新を前記第1のストレージ・システムの前記第1のストレージ・ユニットに再同期する第2の再同期を開始することと、
をさらに実行する、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1のストレージ・システムをミラーリングする第2のストレージ・システムへのフェイルオーバ後、第1のストレージ・システムに再同期するためのコンピュータ・プログラム、システム及び方法に関する。
【背景技術】
【0002】
ストレージ環境において、ストレージ・コントローラは、ミラー・コピー関係を維持することができ、そこで、ミラー・コピー関係における一次ボリュームは、そこからデータが二次ストレージ又はボリュームに物理的にコピーされるストレージ又はボリュームを含む。インターナショナル・ビジネス・マシーンズ・オペレーション(「IBM」)のHyperSwap(登録商標)などのフェイルオーバ・プログラムは、z/OS(登録商標)オペレーティング・システムにおける機能であり、ミラー・コピー関係を維持して、1つ又は複数の一次ストレージ・システム上の全ての一次ディスク・ボリュームの同期コピーを1つ又は複数のターゲット(すなわち二次)ストレージ・システムに提供することによって、ディスク障害(disk failure)に対する連続可用性を提供する。(HyperSwap及びz/OSは、世界中の国々におけるIBMの登録商標である。)ディスク障害が検出されると、オペレーティング・システム内のコードがHyperSwapにより管理されるボリュームを識別し、I/O要求を失敗させる代わりに、HyperSwapは、情報を内部制御ブロック内にスイッチする(又はスワップする)ので、I/O要求は、ミラー・コピー関係の二次ボリュームに対して推進される。フェイルオーバは非常に迅速に行われ、ホスト・アプリケーションに対してごく僅かな影響しか伴わない。ホスト・アプリケーションは、一次ディスクの障害を通知されず、そのアクセスがデータの二次コピーにスワップされたことに気付かない。二次ボリュームは、障害発生前の一次ボリュームと同一のコピーであるので、I/O要求は、I/O要求を発行している、アプリケーション・プログラム若しくはオペレーティング・システムの一部とすることができるプログラムに影響を及ぼすことなく、成功する。従って、これにより、ディスク障害をプログラムから遮断し、アプリケーション及び/又はシステム機能の停止が回避される。
【0003】
一次ディスクの障害が発生すると、フェイルオーバ機能は、ホスト・システムのアクセスを、障害が発生している一次ディスク制御ユニットから、データの二次コピーを含む二次制御ユニットに自動的にスワップする。フェイルオーバが行われた後、2つのストレージ・システムの対の間のミラーリングはサスペンドされ、そのことは、アプリケーションにより現行の一次コピーに対して行われている更新が二次コピーにミラーリングされていないことを意味する。このサスペンド状態にある間、別のフェイルオーバ動作は可能でない。これにより、顧客は、残っているデータの唯一の正常なコピーに影響を及ぼす、何らかの種類の別の障害に曝されたままになる。
【0004】
現行の当技術分野において、一次及び二次ボリュームをフェイルオーバ対応可能状態に戻すために、管理者又はユーザは、障害が発生した一次ストレージ・システムから診断情報を収集及び分析し、必要に応じて修復を行う。次に、管理者/ユーザは、現行の二次サイトから、フェイルオーバを経験した一次ストレージへのデータの再同期を開始することができる。管理者/ユーザは、一次ストレージ・デバイスのポイント・イン・タイム(point-in-time、PiT)コピーを開始し、データの整合したコピー(consistentcopy)を提供することによって、再同期動作を行うことができる。再同期が完了するまで、一次ストレージ・システム・デバイスは整合性がなく、従って、回復に有用でない。ポイント・イン・タイム・コピーは、再同期中に生じる二次ストレージ・システムの障害を保護する。
【0005】
一次ストレージ・デバイスのいずれかにおいてデータ損失が発生した場合(障害の結果として)、障害が発生した一次ストレージ・システム・デバイスに対応する二次ストレージ・システム・デバイスから完全なコピーを行うことによって、障害が発生したデバイスを再同期する。データ損失が生じなかった一次ストレージ・システムについては、再同期中、二次ストレージ・システムの更新されたトラックだけを、一次ストレージ・システムにコピーし戻す。再同期動作が完了すると、ミラーリング対は再び互いに同期した状態に戻る。
【0006】
管理者/ユーザにより管理される再同期プロセスは、何時間もかかることがあり、又は何日もかかることもある。顧客は、プロセスが完了するまで第2の障害発生の恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
第1のストレージ・システムと第2のストレージ・システムとの間のフェイルオーバを行うためのコンピュータ・プログラム、システム及び方法を提供する。
【課題を解決するための手段】
【0008】
第1のストレージ・システムと第2のストレージ・システムとの間のフェイルオーバを行うためのコンピュータ・プログラム、システム及び方法が提供される。データが、第1のストレージ・システムと第2のストレージ・システムとの間で同期される。データを同期する間、第1のストレージ・システムにおけるフェイルオーバ・イベントに応答して、第1のストレージ・システムから第2のストレージ・システムへフェイルオーバが行われる。フェイルオーバ・イベントに応答して、第1のストレージ・システムの第1のストレージ・ユニットが動作不能であること、及び、フェイルオーバ・イベントに応答して、第1のストレージ・システムの第2のストレージ・ユニットが動作可能であることが判断される。第2のストレージ・ユニットが動作可能であると判断することに応答して、再同期を開始し、I/O要求が第2のストレージ・システムにリダイレクトされる間、第2のストレージ・システムの第2のストレージ・ユニットを第1のストレージ・システムの第2のストレージ・ユニットにミラーリングすることによって、第1のストレージ・システムの第2のストレージ・ユニットの更新がコピーされる。
【0009】
第2のストレージ・システムへのフェイルオーバの間、第2のストレージ・ユニットにおける更新を再同期の一部としてそれらの動作可能な第1のストレージ・ユニットに自動的に非同期的にコピーする二次複製マネージャを有することにより、第1のストレージ・ユニットにおけるデータは可能な限り最新のものにされ、その結果、ひとたび第1のストレージ・システムが修復され、完全に動作可能になると、第1のストレージ・システムの再同期はより迅速に完了し得る。
【0010】
更に別の実施形態において、第1のストレージ・システムと第2のストレージ・システムとの間のデータの同期は、同期コピー・モードで行われ、I/O要求が第2のストレージ・システムにリダイレクトされる間、再同期中の更新のコピーは、非同期コピー・モードで行われる。
【0011】
更に別の実施形態において、第1のストレージ・ユニットが動作不能であると判断することは、第1のストレージ・システムの第1のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、第1のストレージ・ユニットのポイント・イン・タイム・コピーが失敗したと判断することとを含む。第1のストレージ・ユニットのポイント・イン・タイム・コピーが失敗したと判断することに応答して、第1のストレージ・ユニットは動作不能であると判断される。さらに、第2のストレージ・ユニットが動作可能であると判断することは、第1のストレージ・システムの第2のストレージ・ユニットのポイント・イン・タイム・コピーを開始することと、第2のストレージ・ユニットのポイント・イン・タイム・コピーが成功したと判断することとを含み、第2のストレージ・ユニットのポイント・イン・タイム・コピーが成功したと判断することに応答して、第2のストレージ・ユニットは動作可能であると判断される。
【0012】
動作可能な第2のストレージ・ユニットのポイント・イン・タイム・コピーをとることによって、第1のストレージ・システム内のアクセス可能なデータのコピーが保持される。
【0013】
更に別の実施形態において、フェイルオーバ・イベントに応答して、第1のストレージ・システムについてのソフト・フェンス状態を確立して、第1のストレージ・システムにおけるストレージ・ユニットへのI/Oアクセスを防止し、ポイント・イン・タイム・コピーは、第1のストレージ・システムのソフト・フェンス状態の間、ポイント・イン・タイム・コピー動作が進行するのを可能にするためのパラメータを有するコマンドで開始される。
【0014】
更に別の実施形態において、再同期は第1の再同期を含み、ヘルス・クエリを第1のストレージ・システムに発行し、第1のストレージ・システムが完全に動作可能かどうかが判断される。第1のストレージ・システムが完全に動作可能であるとき、第1のストレージ・システムの第1及び第2のストレージ・ユニットの両方とも動作可能である。ヘルス・クエリへの応答が、第1のストレージ・システムが完全に動作可能であることを示すと判断することに応答して、第2のストレージ・システムの第1のストレージの更新を第1のストレージ・システムの第1のストレージ・ユニットに再同期する。
【0015】
更に別の実施形態において、第1のストレージ・ユニットは、第1及び第2のストレージ・システムの第1のボリュームを含み、第2のストレージ・ユニットは、第1及び第2のストレージ・システムの第2のボリュームを含む。動作不能であると判断された第1のボリュームは、データ損失が生じたトラックのサブセットを含む。再同期は、ヘルス・クエリが、第1のストレージが完全に動作可能であると示すことに応答して、第2のストレージ・システムの第1のボリューム内のトラックのサブセットを、第1のストレージ・システムの第1のボリューム内のトラックの対応するサブセットにコピーすることをさらに実行する。データ損失が生じず、I/O要求が第2のストレージ・システムにリダイレクトされる間、更新される第2のストレージ・システムの第1のボリューム内のトラックに対応しない、第1のストレージ・システムの第1のボリューム内のトラックは、再同期の対象でない。
【0016】
修復及び回復後、フェイルオーバ中に更新された又はデータ損失が生じた、回復された動作不能な第1のボリューム内のトラックしか同期する必要はない。さらに、動作可能なボリュームに対するフェイルオーバ中に再同期を開始することにより、データの大部分が既に再同期されている可能性があるので、第1のストレージ・システムが回復した後の同期は、ずっと迅速に完了する。
【0017】
更に別の実施形態において、ヘルス・クエリへの応答が、第1のストレージ・システムが完全に動作可能であると示す前、第1のストレージ・システムへの第2のストレージ・システムの第2のストレージ・ユニットの再同期が非同期コピー・モードで行われる。クエリが、第1のストレージ・システムが完全に動作可能であると示すことに応答して、第1のストレージ・システムへの第2のストレージ・システムの第2のストレージ・ユニットの再同期を同期コピー・モードに移行する。
【0018】
ここで、添付図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【0019】
図1】ストレージ複製(replication)環境の1つの実施形態を示す。
図2】コピー関係の1つの実施形態を示す。
図3】ポイント・イン・タイム・コピー・コマンドの1つの実施形態を示す。
図4】フェイルオーバ動作を行うための動作の1つの実施形態を示す。
図5】回復した一次ストレージ・システムにまた再同期するための動作の1つの実施形態を示す。
図6図1のコンポーネントを実装することができるコンピューティング環境を示す。
【発明を実施するための形態】
【0020】
説明される実施形態は、一次ストレージ・システムから二次ストレージ・システムへのフェイルオーバの場合に、データを再同期するための技術を提供する。フェイルオーバに応答して、動作可能な(operable)一次ボリューム又はストレージ・ユニットについて、一次ストレージ・システムが回復される前に、対応する二次ボリュームの更新が、動作可能な一次ボリュームに再同期される。動作不能な(inoperable)又はデータ損失が生じる一次ストレージ・システム・ボリュームについては、対応する二次ボリュームの更新は、変更記録ビットマップ等において示され、次に、一次ストレージ・システムが回復又は修復された後、また一次ボリュームに再同期される。
【0021】
説明される実施形態の場合、データは、障害が発生した一次ストレージ・システムの動作可能なボリュームへの自動プログラムにより制御される再同期を即座に開始し、一次ストレージ・システムを完全に同期された状態にし、かつ、二次ストレージ・システムにおける第2のフェイルオーバの処理に利用できるようにするために必要な時間を最小にする。このように、一次ストレージ・システムが回復した後、自動化された再同期プロセスに従って、多くの動作可能な一次ボリュームが既に再同期されているので、一次ストレージ・システムが回復した後に再同期するまでの時間が短くなる。
【0022】
図1は、一次ストレージ・システム102a及び二次ストレージ・システム102bに接続されるホスト・システム100を有する、データ・ミラーリング及びフェイルオーバ環境の1つの実施形態を示す。一次ストレージ・システム102aは、ミラーリング対又はコピー関係で、二次ストレージ・システム102b内の対応するボリューム106bにミラーリングされるボリューム106aを有する一次ストレージ104aを含む。ホスト100、並びにストレージ・システム102a及び102bは、ネットワーク108上で通信することができる。入力/出力(I/O)要求を一次ボリューム106a及び二次ボリューム106bに提供する付加的なホスト(図示せず)があってもよい。
【0023】
一次ストレージ・システム102a及び二次ストレージ・システム102bは、それぞれ、一次ボリューム106a及び二次ボリューム106bに向けられるI/O動作を管理するための入力/出力(I/O)マネージャ112a、112bを含む。ホスト・システム100は、異なるボリューム106a、106b間にミラー・コピー関係200を確立するための複製マネージャ114を含む。ストレージ・システム102a、102bは、一次ボリューム106aと二次ボリューム106bとの間のデータの複製又はミラーリングを管理し、ホスト複製マネージャ114と複製を調整するための複製マネージャ114a、114bを含む。
【0024】
ホスト100は、一次ストレージ・システム102aにおけるストレージ又はコンポーネントの障害発生のようなフェイルオーバ・イベントに応答する、一次ストレージ・システム102aから二次ストレージ・システム102bへのI/O動作のフェイルオーバを管理し、かつ、二次ストレージ・システム102bがI/O動作を管理しており、エラーが発生した際の、二次ストレージ・システム102bから一次ストレージ・システム102aへのフェイルオーバを管理するためのフェイルオーバ・マネージャ116を含む。一次ストレージ・システム102a及び二次ストレージ・システム102bは、それぞれ、ホスト・フェイルオーバ・マネージャ116と調整してフェイルオーバ動作を実施するためのフェイルオーバ・マネージャ116a、116bを含む。
【0025】
一次ストレージ・システム102a及び二次ストレージ・システム102bは、ホスト複製マネージャ114により確立されたコピー関係200a、200b上に情報を保持する。一次ストレージ・システム102aが機能しており、ボリューム106aに向けられたI/O動作を管理している間、コピー関係200、200a、200bは、データが、一次ボリューム106aから対応する二次ボリューム106bへミラーリング又は同期されることを示す。一実施形態において、一次ボリューム106aからのデータは、データが同期コピー・モードで対応する二次ボリューム106bにコピーされる整合性グループとしてミラーリングすることができ、そこで、書き込みが二次ストレージ104bに格納されたと確認されるまで、書き込みは完了しない。
【0026】
フェイルオーバ・イベントに応答して、フェイルオーバ・マネージャ116、116a、116bは、二次ストレージ・システム102bへのフェイルオーバを調整し、そこで、二次ストレージ・システム102bは、I/O要求の管理を、一次ボリューム106aから複製されたデータを有する二次ボリューム106bへ引き継ぐ。フェイルオーバ後、ホスト複製マネージャ114は、二次ストレージ・システム102bにおけるコピー関係200bを作成して、二次ボリューム106bの更新をまた一次ボリューム106aに再同期する。従って、実働サイト(production site)が二次ストレージ104bに移動する間、二次複製マネージャ114bは、一次ストレージ・システム102aにおける動作可能な一次ボリューム106aに対応する二次ボリューム106bの更新を再同期する。
【0027】
一実施形態において、コピー関係200は、ホスト複製マネージャ114により作成され、コピー関係200a、200bのローカル・コピーとして、一次ストレージ・システム102a及び二次ストレージ・システム102bに提供される。このように、ホスト100は、一次ストレージ・システム102a及び二次ストレージ・システム102bの複製、フェイルオーバ、及び再同期動作を管理する。代替的な実施形態において、一次ストレージ・システム102a及び二次ストレージ・システム102bは、ホスト100の関与なしに、それ自体の複製及びフェイルオーバを管理することができる。
【0028】
ストレージ・システム102a及び102bは、これらに限定されるものではないが、インターナショナル・ビジネス・マシーンズ・コーポレーション(「IBM」)のDS8000(登録商標)ストレージ・システム又は当技術分野において周知の他の供給業者のストレージ・サーバのような、アタッチト・ストレージ・デバイスへのアクセスを管理するのに適したエンタープライズ・ストレージ・コントローラ/サーバを含むことができる。(DS8000は、世界中の国々におけるIBMの登録商標である。)一実施形態において、複製マネージャ114、114a、114bは、これらに限定されるものではないが、IBMのミラーリング・プログラムのGeographically Dispersed Parallel Sysplex(GDPS(登録商標))及び複製セッション及びコピー対200を定めるTivoli(登録商標)Storage Productivity Center for Replication(TPC−R)のような、システムにわたるボリュームのミラーリングを管理するためのプログラムを含む。異なるタイプの技術を、同期ミラーリング、非同期ミラーリング、又はポイント・イン・タイム・コピー、又はこれらの異なる複数のミラーリング・タイプの組み合わせのような、データのコピーのために選択することができる。フェイルオーバ・マネージャ116、116a、116bは、これに限定されるものではないが、確立されたコピー対からフェイルオーバ・セッションを確立する、IBM(登録商標)HyperSwap製品のような、ストレージ・システム102a、102bの一方から他方へのフェイルオーバを処理するのに適したプログラムを含むことができる。(IBM、GDPS、Tivoli、及びHyperSwapは、世界中の国々におけるIBMの登録商標である。)
【0029】
ネットワーク108は、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、広域エリア・ネットワーク(WAN)、ピア・ツー・ピア・ネットワーク、無線ネットワーク、アービトレーテッド・ループ・ネットワーク(arbitrated loop network)等を含むことができる。ストレージ104a、104bはそれぞれ、Just a Bunch of Disks(JBOD、単純ディスク束)、ダイレクト・アクセス・ストレージ・デバイス(Direct Access Storage Device、DASD)、Redundant Array of Independent Disks(RAID、独立ディスクの冗長アレイ)アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等として構成される1つ又は複数のストレージ・デバイス又はストレージ・デバイスのアレイ内に実装することができる。ストレージ・デバイスは、ハードディスク・ドライブ、ソリッド・ステート・エレクトロニクスからなるソリッド・ステート・ストレージ・デバイス(SSD)、EEPROM(電気的に消去可能なプログラム可能読み取り専用メモリ)、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ(RAM)ドライブ、ストレージ・クラス・メモリ(SCM)等、相変化メモリ(PCM)、抵抗変化型ランダム・アクセス・メモリ(RRAM)、スピン・トランスファ・トルク・メモリ(STM−RAM)、導電ブリッジRAM(CBRAM)、磁気ハードディスク・ドライブ、光ディスク、テープ等を含むことができる。ノード・グループ、管理コンポーネント、メールボックス等のような、特定数の要素のインスタンスが示されるが、任意の数のこれらのコンポーネントが存在し得る。
【0030】
図2は、コピー関係200のインスタンスの1つの実施形態を示し、このコピー関係200は、コピー対の識別子(ID)202と、データがコピーされる一次ボリューム204(ボリューム106a又は106bの一方を含むことができる)と、データがミラーリングされる二次ボリューム206(ボリューム106a又は106bの一方を含むことができる)と、二次ボリューム206にコピー又は同期する必要がある、一次ボリューム204内のデータ・ユニット又はトラックを示す変更記録ビットマップ208とを含むものとして、コピー関係200、200a、200bのインスタンスを含むことができる。変更記録ビットマップ208内に示される全ての更新が二次ボリューム206にコピーされると、コピー関係200は、二重化(duplex)又は同期された状態に達する。変更記録ビットマップ208を初期化して、同期する必要があるトラックがないことを示すことができる。トラックが更新されると、ビットマップ208内の対応するビットは、トラックを二次ボリューム206にコピーする必要があることを示すように設定される。
【0031】
図3は、ポイント・イン・タイム・コピー・コマンド・オペレータ302と、PiTコピー動作の対象となるソース・ボリューム304と、ソース・ボリューム304がI/O動作からフェンスオフ(fence-off)される場合でも、PiTコピー・コマンドが進行するのを可能にするよう、I/Oマネージャ112a、112bに命令するソフト・フェンス・オーバーライド306とを含む、ポイント・イン・タイム・コピー・コマンド300の1つの実施形態を示す。別のストレージ・システムにおける対応するボリュームへのソース・ボリューム304におけるフェイルオーバがある場合、ソース・ボリューム304がフェンスオフを受けることがある。フェンスオフ状態は、該状態にあるボリューム304に対する読み取り及び書き込みをブロックする。パラメータ306は、ソース・ボリューム304がフェンスオフ状態にある場合でも、ポイント・イン・タイム・コピーの進行を可能にする。パラメータ306が、ボリューム304がフェンスオフ状態にあるとき、ポイント・イン・タイム・コピー・コマンドの進行が可能であることを示していない場合、ポイント・イン・タイム・コピー・コマンドは、フェンスオフ状態によりブロックされ得る。
【0032】
ポイント・イン・タイム・コピーは、瞬間的に現れる(appear instantaneous)方法でデータを複製し、コピー・ボリュームへの実際のデータ転送を後に延期する間、ホストが、ソース・ボリュームにアクセスし続けるのを可能にする。ソースからターゲット・ボリュームへデータをコピーすることなく、関係データ構造を生成することに応答して入力/出力(I/O)の完了がコピー動作に返されるので、ポイント・イン・タイム・コピーは瞬間的に現れる。ポイント・イン・タイム・コピー技術は、一般に、ポイント・イン・タイム・コピー関係がコピー・ターゲット・ボリュームに対して確立された時点で、書き込み動作がソース・ボリューム上のそのデータ・ブロックに要求されるまで、ソース・ボリューム内のデータの転送を延期する。データ転送はまた、システム性能への影響が最小の状態で、バックグラウンド・コピー・プロセスとして進行することもできる。ポイント・イン・タイム・コピー・コマンドに応答して即座に確立されるポイント・イン・タイム・コピー・コマンド関係は、ソース・ボリューム若しくはコピー・ボリュームのいずれかにおけるボリューム内のブロックの位置を示すビットマップ又は他のデータ構造を含む。ポイント・イン・タイム・コピーは、ソース・ボリューム内のデータと、ターゲット・ボリュームに転送される更新により上書きされるデータの組み合わせを含む。
【0033】
図4は、一次ストレージ・システム102aから二次ストレージ・システム102bへのフェイルオーバを実行するために、ホスト100内のコンポーネント、一次ストレージ・システム102a及び二次ストレージ・システム102bのコンポーネントにより実行される動作の1つの実施形態を示す。フェイルオーバのために、システム102aは、一次ストレージ・システムとして機能し、システム102bは、二次ストレージ・システムとして機能することができる。制御は、(ブロック400において)ホスト複製マネージャ114がミラー・コピー操作を開始し、一次ボリューム106aと二次ボリューム106bとの間でデータを同期することから開始する。(ブロック402において)ホスト複製マネージャ114は、一次ストレージ・ボリューム106aと対応する二次ストレージ・ボリューム106bとの間にコピー関係200を確立し、一次ボリューム106aから対応する二次ボリューム106bへと同期コピー・モードでデータ及び更新をミラーリングすることができる。コピー関係200は、データのミラーリング/同期に使用するために、一次複製マネージャ114aに与えられる。同期コピー・モードでは、二次ストレージ・システム102bが、データが対応する二次ボリューム106b内に格納されたことを確認するまで、コピーされるデータは完了したものとして示されない。一実施形態において、データは、整合性グループ・モードで一次ボリューム106aから二次ボリューム106bにミラーリングすることができるので、二次ボリューム106bにおけるデータは、一次ボリューム106aにおけるデータの時点のものと整合性があるように維持される。
【0034】
(ブロック404において)フェイルオーバ・マネージャ116aは、一次ストレージ104aのストレージ・デバイスを含む、一次ストレージ・システム102aの1つ又は複数のコンポーネントの障害発生のような、一次ストレージ・システム102aにおける障害発生イベントを検出し得る。(ブロック404において)フェイルオーバ・イベントを検出すると、(ブロック406において)一次フェイルオーバ・マネージャ116a又はホスト・フェイルオーバ・マネージャ116aは、データ損失が生じる一次ボリューム106a内のトラックを判断し、一次ストレージ・システム102a内の障害が発生したトラックを記録することができる。その後、一次ストレージ・システム102aは、二次ストレージ・システム102bから一次ストレージ・システム102aへ再同期する際に使用するために、障害が発生したトラックに関する情報をホスト・フェイルオーバ・マネージャ116又は二次フェイルオーバ・マネージャ116bに報告することができる。動作不能な一次ボリューム106a内のトラックは、ボリューム内のトラックのサブセットを含み、他のトラックはデータ損失が生じないことがある。
【0035】
次に、ホスト・フェイルオーバ・マネージャ116は、一次フェイルオーバ・マネージャ116a及び二次フェイルオーバ・マネージャ116bと調整して、(ブロック408において)一次ストレージ・システム102aにおける一次ボリューム106aからのフェイルオーバを開始し、I/O要求を二次ストレージ・システム102bにおける対応する二次ボリューム106bにリダイレクトすることができる。フェイルオーバの一部分として、ホスト複製マネージャ114は、コピー関係200aをサスペンドし、データを一次ボリューム106aから二次ボリューム106bに同期することができる。(ブロック410において)ホスト・フェイルオーバ・マネージャ116は、一次ボリューム106aに対するソフト・フェンス状態をさらに確立することができる。ソフト・フェンス状態は、二次ボリューム106bにスワップされた1つ又は複数の一次ボリューム106aに対するI/O動作を防止し、フェイルオーバ後のそれらのボリューム106aへのあらゆる意図しないアクセスを防止する。
【0036】
次に、ブロック412乃至422において、ホスト複製マネージャ114又はフェイルオーバ・マネージャ116は、一次ストレージ・システム102aの各々の一次ボリュームiに対する動作のループを実施することができる。一次ボリュームiについて、ホスト複製マネージャ114又はフェイルオーバ・マネージャ116は、(ブロック414において)ボリュームiに対するPiTコピー動作を開始し、ソフト・フェンス・オーバーライド・パラメータ306は、ソフト・フェンス状態がボリュームiに対してアクティブである場合でもPiTコピー動作は続行すべきであることを示すように設定される。ホスト複製マネージャ114又はフェイルオーバ・マネージャ116は、(ブロック416において)ボリュームiが動作可能かどうかを判断する。一実施形態において、この判断は、ボリュームiがソフト・フェンス状態にある場合、ポイント・イン・タイム・コピー・コマンド300の進行を可能にするように指定して設定されたソフト・フェンス・オーバーライド・パラメータ306を有するポイント・イン・タイム・コピー・コマンド300を開始することにより、行うことができ、これはブロック406の動作の結果にも当てはまる。ポイント・イン・タイム・コピー動作がボリュームiに対して成功する場合、ボリュームiは動作可能であると判断され、さもなければポイント・イン・タイム・コピー動作が失敗した場合、ボリュームiは動作不能であると判断される。動作可能な一次ボリューム106aのポイント・イン・タイム・コピーをとることによって、これらの一次ボリューム106aについてのデータが、フェイルオーバ・イベント時点のものとして保存される。これらのポイント・イン・タイム・コピーは、他の回復オプションが失敗した場合にデータ回復のために用いることができる。他の技術を用いて、ブロック414における動作の一部として一次ボリューム106aが動作可能であるかどうかを判断することができる。
【0037】
(ブロック416において)一次ボリュームiが動作可能な場合、ホスト複製マネージャ114(又は、フェイルオーバ・マネージャ116)は、(ブロック418において)コピー関係200を作成し、一次ボリュームiに対応する二次ストレージ102bにおける二次ボリュームiからの再同期動作を開始し、変更記録ビットマップ内に示される更新のために、二次ボリュームiの更新を一次ボリュームに非同期モードで転送する。二次ボリューム106bの更新を受信すると、二次ボリュームiについての変更記録ビットマップ208内の対応するビットが設定される。二次複製マネージャ114bは、変更記録ビットマップ208を走査して、二次ボリューム106bにおける更新を探し、フェイルオーバ中に動作可能なままである対応する一次ボリューム106aに再同期又はコピーする。非同期コピー・モードにおいて、コピーは、データを受信したという確認を一次ボリュームiから受け取る必要なしに完了する。一実施形態において、非同期モードは、非整合性グループ・モード(CGM)を含むことができるので、データは、二次ボリューム106bと一次ボリューム106aとの間に整合性があることは確実ではない。二次ストレージ・システム102bへのフェイルオーバ中、二次ボリューム106bにおける更新を再同期の一部として動作可能な一次ボリューム106aに自動的に非同期的にコピーする二次複製マネージャ114を有することにより、一次ボリューム106aにおけるデータは、可能な限り最新に維持され、その結果、ひとたび一次ストレージ・システム102aが修復され、完全に動作可能になると、一次ストレージ・システム102aの再同期がより迅速に完了できる。説明される実施形態において、動作可能なボリュームへの再同期は、フェイルオーバ・マネージャ116又は116bによって制御されるフェイルオーバ・プロセスにより自動的に開始される。
【0038】
さらに、再同期コピーを非同期的に行うことで、同期的にコピーを行うのに比べて、二次ボリュームにアクセスするホスト・アプリケーションへの性能の影響が著しく低減する。さらに、非同期コピーは、何らかの障害分析及び機器の修理(必要な場合)が行われる前、フェイルオーバ直後に開始することができる。
【0039】
(ブロック416において)ボリュームiが動作可能でない場合、ホスト複製マネージャ114又はフェイルオーバ・マネージャ116は、(ブロック420において)二次ボリュームiから一次ボリュームiへの再同期のために、サスペンドされたコピー関係200iを作成し、ボリュームiについての変更記録ビットマップ208を更新し、データ損失を有するものとして報告されたあらゆるトラックを更新されたものとして示す。データ損失が生じるボリュームi内のトラックを、変更記録ビットマップ208内の更新されたものとして示すことにより、二次複製マネージャ114bは、フェイルオーバ中、ボリュームiが修復され、動作可能になった後のその後の再同期中、それらが更新されていてもいなくても、データ損失を有するトラックのデータにわたってコピーする。
【0040】
図4の動作の結果、フェイルオーバ後、二次ストレージ・システム102bは、二次ボリューム106bの更新の、動作可能なままの一次ボリューム106aへの再同期を即座に開始する。動作不能な一次ボリューム106aについては、対応する二次ボリューム106bについての変更記録ビットマップ208は、データ損失が生じたトラックを更新されたものとして示すように設定され、動作不能な一次ボリュームが動作可能であると判断されるまで、再同期がサスペンドされる。フェイルオーバ中、動作可能なそれらの一次ボリュームを再同期することにより、二次ストレージ・システム102bにおけるフェイルオーバ中、二次ストレージ・システム102bにおける更新の相当量が既に一次ボリューム106aに再同期されているので、一次ストレージ・システム102aが完全に動作可能になった直後、一次ストレージ・システムはフェイルオーバの準備ができている。
【0041】
図4の動作において、ストレージ・システムのボリュームに対して、操作性を判断する。代替的な実施形態において、ミラーリング及び操作性は、ストレージ・デバイス、論理パーティション、物理パーティション、論理ドライブ等のような、ボリューム以外のストレージ・ユニットに関して判断することができる。
【0042】
図5は、障害発生イベント後、一次ストレージ・システム102aを回復させるためにホスト複製マネージャ114及びフェイルオーバ・マネージャ116により実施される動作の1つの実施形態を示す。(ブロック500において)ホスト・フェイルオーバ・マネージャ114は、フェイルオーバからの所定の遅延後、ヘルス・クエリ(health query)を一次ストレージ・システム102aに発行し、一次ストレージ・システム102aが動作可能かどうかを判断する。多くの障害タイプの場合、一定時間が経過した後、一次ストレージ・システム102aは、内部回復動作及び手順を通して回復され得る。(ブロック502において)一次ストレージ・システム102aからヘルス・クエリへの応答を受信すると、(ブロック504において)応答が、一次ストレージ・システム102aが完全に動作可能であることを示す場合、(ブロック506において)ホスト複製マネージャ114は、前に動作不能であった一次ボリューム106aに対応する二次ボリューム106bの各々のポイント・イン・コピー動作を行って、必要に応じて回復のために用いることができる整合したコピーを提供する。(ブロック508において)ホスト複製マネージャ114は、再同期を開始し、前に動作不能として示された一次ボリューム106aに対応する各々の二次ボリューム106bについての、変更記録ビットマップ208において更新されたものとして示されるデータを、同期的にコピーする。再同期は、コピー関係200bのサスペンドを解除し、二次ボリュームを前に動作不能であった一次ボリューム106aに再同期することによって、開始することができる。前に動作不能であった一次ボリューム106aへの再同期についての変更記録ビットマップ208は、更新された対応する二次ボリューム106b内の更新されたトラック、及び、データ損失が生じたものとして報告された動作不能な一次ボリューム内のトラックとして示される。このように、回復した動作不能な一次ボリューム106aに対する再同期では、更新されたデータ、及びデータ損失が生じるトラックについてのデータしかコピーせず、回復した動作不能なボリューム全体にわたるコピーを行わない。このことは、フェイルオーバ中に更新されず、データ損失が生じなかった、回復した一次ボリューム106a内のトラックに対応する二次ボリューム内のトラックのコピーを回避することにより、再同期を促進する。
【0043】
(ブロック514において)二次複製マネージャ114bはさらに、I/O要求が二次ストレージ・システム102bにリダイレクトされる間、フェイルオーバの開始から非同期的にコピーされた、動作可能なボリュームに対する更新の再同期を同期コピー・モードに変換するので、一次ストレージ・システム102aが回復された後、再同期すべき残りのデータは同期的にコピーされる。
【0044】
(ブロック504において)ヘルス・クエリへの応答が、一次ストレージ・システム102aは完全に動作可能ではないことを示す場合、(ブロック510において)ホスト・フェイルオーバ・マネージャ114は、一次ストレージ・システム102aの修復のための診断情報を集め、管理者に報告する。次に、管理者は、一次ストレージ・システム102a内のユニット、コンポーネント及びストレージ・デバイスを置き換える及び/又は修理することなどにより、集めた診断情報に基づいて障害が発生した一次ストレージ・システム102aの修復を進める。修復を完了した後、管理者は再同期コマンドを開始し、再同期を実施する。ブロック512において、ホスト複製マネージャ114又は二次複製マネージャ114bは、管理者から手動再同期コマンドを受信し、次にブロック506に進んで、前に動作不能として示されたボリュームに対する再同期を開始することができる。
【0045】
説明される実施形態において、修復及び回復後、障害が発生したボリューム106aに対して確立されたコピー関係200について変更記録ビットマップ内に示される、フェイルオーバ中に更新された又はデータ損失が生じる、回復された動作不能な一次ボリューム106a内のトラックしか同期する必要はない。さらに、動作可能な一次ボリューム106aに対するフェイルオーバ中に再同期を開始することにより、データの大部分が既に再同期されている可能性があるので、一次ストレージ・システム102aが回復した後の同期は、ずっと迅速に完了する。
【0046】
本発明は、システム、方法、及び/又はコンピュータ・プログラムとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
【0047】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用するための命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク型読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令がその上に記録された溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で用いられる場合、コンピュータ可読ストレージ媒体は、電波若しくは他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルの中を通る光パルス)、又は配線を介して伝送される電気信号などの、一時的な信号自体と解釈されるべきではない。
【0048】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードしてもよく、又は、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ若しくは外部ストレージ・デバイスにダウンロードしてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するように、コンピュータ可読プログラム命令を転送する。
【0049】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データとすることができ、又は、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、全体をユーザのコンピュータ上で実行することができ、独立型ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されることができ、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行することができ、又は全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、又は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用してインターネット経由で)接続が行われてもよい。幾つかの実施形態においては、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【0050】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラムのフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0051】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、その結果、命令をその内部に格納したコンピュータ可読ストレージ媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を含むようにすることもできる。
【0052】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するようにすることもできる。
【0053】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることもある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステムにより実装すること、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されたい。
【0054】
ホスト100及びストレージ・システム102a、102bを含む図1の計算コンポーネントは、図6に示されるコンピュータ・システム602のような1つ又は複数のコンピュータ・システムにおいて実装することができる。コンピュータ・システム/サーバ602は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ602は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【0055】
図6に示されるように、コンピュータ・システム/サーバ602は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ602のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ若しくは処理ユニット604、システム・メモリ606、及びシステム・メモリ606を含む種々のシステム・コンポーネントをプロセッサ604に結合するバス608を含むことができる。バス608は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
【0056】
コンピュータ・システム/サーバ602は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ602がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【0057】
システム・メモリ606は、ランダム・アクセス・メモリ(RAM)610及び/又はキャッシュ・メモリ612など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ602は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハードドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム613を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによってバス608に接続することができる。以下でさらに示され説明されるように、メモリ606は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0058】
限定ではなく例として、メモリ606内に、プログラム・モジュール616のセット(少なくとも1つ)を有するプログラム/ユーティリティ614、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。コンピュータ602のコンポーネントは、一般に、本明細書で説明される本発明の実施形態の機能及び/又は方法を実行する。図1のシステムは、1つ又は複数のコンピュータ・システム602において実装することができ、それらが複数のコンピュータ・システム602において実装される場合、コンピュータ・システムはネットワーク上で通信することができる。
【0059】
コンピュータ・システム/サーバ602は、キーボード、ポインティング・デバイス、ディスプレイ620等のような1つ又は複数の外部デバイス618;ユーザがコンピュータ・システム/サーバ602と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ602が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデム等)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース622を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ602は、ネットワーク・アダプタ624を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ624は、バス608を介して、コンピュータ・システム/サーバ602の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ602と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【0060】
本明細書で用いられるiなどの参照文字は、本明細書では、同じ又は異なる値を表し得る可変数の要素のインスタンスを示すために用いられ、説明される異なるインスタンスにおいて異なる又は同じ要素と共に用いられる場合、同じ又は異なる値を表し得る。
【0061】
「1つの実施形態」、「実施形態」、「(複数の)実施形態」、「その実施形態」、「(複数の)その実施形態」、「1つ又は複数の実施形態」、「幾つかの実施形態」及び「一実施形態」という用語は、特に明示的に断らない限り、本発明の1つ又は複数の(しかし、全てではない)実施形態を意味する。
【0062】
「含んでいる(including)」、「備えている(comprising)」、「有している(having)」という用語及びその変形は、特に明示的に断らない限り、「含むが、それらに限定されない」ことを意味する。
【0063】
項目の列挙リストは、特に明示的に断らない限り、項目のいずれか又は全てが相互排除的であることを意味しない。
【0064】
「1つの(a)」、「1つの(an)」及び「その(the)」という用語は、特に明示的に断らない限り、「1つ又は複数(one or more)」を指す。
【0065】
互いに通信するデバイスは、特に明示的に断りのない限り、互いに連続的に通信する必要はない。さらに、互いに通信するデバイスは、直接又は1つ又は複数の中間物を介して間接的に通信することもある。
【0066】
互いに通信する幾つかのコンポーネントを用いる1つの実施形態の説明は、全てのこうしたコンポーネントが必要とされることを意味するものではない。これに反して、種々の随意的なコンポーネントは、本発明の多種多様の可能な実施形態を示すために説明される。
【0067】
本明細書では単一のデバイス又は物品が説明されるが、単一のデバイス/物品の代わりに、1つより多いデバイス/物品を(これらが協働しても又はしなくても)用い得ることは容易に明らかであろう。同様に、1つより多いデバイス又は物品が本明細書で説明される場合(これらが協働しても又はしなくても)、1つより多いデバイス又は物品の代わりに単一のデバイス/物品を用いてもよく、又は示される数のデバイス又は物品の代わりに異なる数のデバイス/物品を用いてもよいことは、容易に明らかであろう。デバイスの機能及び/又は特徴を、そうした機能/特徴を有するものとして明示的に説明されていない1つ又は複数の他のデバイスによって代替的に具体化することもできる。従って、本発明の他の実施形態が、デバイス自体を含む必要はない。
【0068】
本発明の種々の実施形態の上記の記載は、例示及び説明のために提示されている。これは、網羅的であること又は本発明を開示された正確な形態に限定することを意図していない。上記の教示に照らして、多くの修正及び変形が可能である。本発明の範囲は、詳細な説明により制限されるものではなく、むしろ、これに添付される特許請求の範囲により制限されることが意図される。上記の詳述、例及びデータは、本発明の構成の製造及び使用の完全な説明を提供する。本発明の趣旨及び範囲から逸脱することなく、本発明の多くの実施形態を作成できるので、本発明は、以下に添付する本明細書における特許請求の範囲内にある。
【符号の説明】
【0069】
100:ホスト
102a:一次ストレージ・システム
102b:二次ストレージ・システム
104a:一次ストレージ
104b:二次ストレージ
106a、204:一次ボリューム
106b、206:二次ボリューム
108:ネットワーク
112a、112b:入力/出力(I/O)マネージャ
114、114a、114b:ホスト複製マネージャ
116、116a、116b:フェイルオーバ・マネージャ
200、200a、200b、200i:コピー関係
202:コピー対識別子(ID)
208:変更記録ビットマップ
300:ポイント・イン・タイム・コピー・コマンド
302:ポイント・イン・タイム・コピー・コマンド・オペレータ
304:ソース・ボリューム
306:パラメータ
602:コンピュータ・システム/サーバ
606:システム・メモリ
608:バス
616:プログラム・モジュール
622:入力/出力(I/O)インターフェース
624:ネットワーク・アダプタ
図1
図2
図3
図4
図5
図6