(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムに下記のステップを行わせることにより前記コンピュータ・システムにおける災害時回復を行う方法であって、
マスタ・ディスクを遠隔コピー関係の１次ディスクとして指定するステップと、
ホストからの書き込み要求に応答して前記１次ディスクとして指定されたマスタ・ディスクへデータを書き込むステップと、
前記遠隔コピー関係の２次ディスクとして指定された補助ディスクへ前記データをコピーするステップと、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が切断されたことに応答して、前記補助ディスクを１次ディスクとして指定するステップと、
前記ホストからの書き込み要求に応答して、前記１次ディスクとして指定された前記補助ディスクへデータを書き込むステップと、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたか否かを調べるステップと、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたことに応答して、前記マスタ・ディスクを１次ディスクとして指定し補助ディスクを２次ディスクとして指定するステップと、
前記マスタ・ディスクを１次ディスクとして指定し補助ディスクを２次ディスクとして指定するステップにより前記２次ディスクとされた補助ディスクからの変更記録ビットマップを前記１次ディスクとして指定されたマスタ・ディスクへ送信するステップと、
前記２次ディスクとされた補助ディスクからの変更記録ビットマップと前記１次ディスクとして指定されたマスタ・ディスクの変更記録ビットマップとを論理ＯＲ演算を使用してマージするステップと、
前記マージされたビットマップの中で変更済みとしてマークされた全てのデータを前記１次ディスクとして指定されたマスタ・ディスクから前記２次ディスクとされた補助ディスクへコピーするステップとを上記記載の順序で行う、方法。
【請求項２】
マスタ・ディスクを遠隔コピー関係の１次ディスクとして指定する手段と、
ホストからの書き込み要求に応答して前記１次ディスクとして指定されたマスタ・ディスクへデータを書き込む手段と、
前記遠隔コピー関係の２次ディスクとして指定された補助ディスクへ前記データをコピーする手段と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が切断されたことに応答して、前記補助ディスクを１次ディスクとして指定する手段と、
前記ホストからの書き込み要求に応答して、前記１次ディスクとして指定された前記補助ディスクへデータを書き込む手段と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたか否かを調べる手段と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたことに応答して、前記マスタ・ディスクを１次ディスクとして指定し補助ディスクを２次ディスクとして指定する手段と、
前記マスタ・ディスクを１次ディスクとして指定し補助ディスクを２次ディスクとして指定する手段により前記２次ディスクとされた補助ディスクからの変更記録ビットマップを前記１次ディスクとして指定されたマスタ・ディスクへ送信する手段と、
前記２次ディスクとされた補助ディスクからの変更記録ビットマップと前記１次ディスクとして指定されたマスタ・ディスクの変更記録ビットマップとを論理ＯＲ演算を使用してマージする手段と、
前記マージされたビットマップの中で変更済みとしてマークされた全てのデータを前記１次ディスクとして指定されたマスタ・ディスクから前記２次ディスクとされた補助ディスクへコピーする手段とを備える、コンピュータ・システム。
【請求項３】
コンピュータに、
マスタ・ディスクを遠隔コピー関係の１次ディスクとして指定する手順と、
ホストからの書き込み要求に応答して前記１次ディスクとして指定されたマスタ・ディスクへデータを書き込む手順と、
前記遠隔コピー関係の２次ディスクとして指定された補助ディスクへ前記データをコピーする手順と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が切断されたことに応答して、前記補助ディスクを１次ディスクとして指定する手順と、
前記ホストからの書き込み要求に応答して、前記１次ディスクとして指定された前記補助ディスクへデータを書き込む手順と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたか否かを調べる手順と、
前記マスタ・ディスク及び前記補助ディスクとの間の接続が再接続されたことに応答して、前記マスタ・ディスクを１次ディスクとして指定し補助ディスクを２次ディスクとして指定する手順と、
前記マスタ・ディスクを１次ディスクと指定し補助ディスクを２次ディスクとして指定する手順により前記２次ディスクとされた補助ディスクからの変更記録ビットマップを前記１次ディスクとして指定されたマスタ・ディスクへ送信する手順と、
前記２次ディスクとされた補助ディスクからの変更記録ビットマップと前記１次ディスクとして指定されたマスタ・ディスクの変更記録ビットマップとを論理ＯＲ演算を使用してマージする手順と、
前記マージされたビットマップの中で変更済みとしてマークされた全てのデータを前記１次ディスクとして指定されたマスタ・ディスクから前記２次ディスクとされた補助ディスクへコピーする手順とを上記記載の順序で実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、災害時回復コンピュータ・システムの分野に関し、より具体的には、遠隔コピーの切断および再確立ペア後のデータの１次および２次コピーの再同期化に関する。
【背景技術】
【０００２】
コンピュータ・データ処理の分野では、たとえ組織が主要業務のデータ処理サイトにおいてデータまたは処理機能を使用できなくなった後でも、業務を続行するための方法に対する需要が増加してきている。典型的な災害時回復ソリューションで使用される技法は当技術分野では「遠隔コピー（Ｒｅｍｏｔｅ  Ｃｏｐｙ）」として知られ、または「ピアツーピア遠隔コピー（ＰＰＲＣ／Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｒｅｍｏｔｅ  Ｃｏｐｙ）」として知られることもある。
【０００３】
典型的な遠隔コピー・ソリューションでは、１つのストレージ・コントローラが遠隔コピー関係の１次ディスクを保持するものとして指定される。本明細書では、この関係の１次ディスクをマスタ（Ｍａｓｔｅｒ）と呼ぶものとする。マスタは、個人または組織が日常的な処理のために通常使用するディスクである。第２のストレージ・コントローラが遠隔コピー関係の２次ディスクを保持し、これを補助（Ａｕｘｉｌｉａｒｙ）と呼ぶものとする。補助は通常は個人または組織が日常的な処理には使用しないディスクであるが、マスタが使用できなくなった後に災害時回復または業務続行のオペレーションが必要な場合に備えて保持される。マスタおよび補助は、どちらも同じサイズである。多くのソリューションでは複数セットのディスクを調整済みの状態で管理可能であり、コントローラはしばしばマスタを１つの関係用に保持し、補助をその他用に保持することできるが、本説明ではわかりやすくかつ簡潔にするために２つのディスクを有する単一の関係に焦点を当てるものとする。通常のオペレーションでは、マスタはすべてのホストＩ／Ｏ要求の１次ソースおよびターゲットとして使用される。こうした状況では、この説明ではマスタ／１次という用語が使用される。同様に、通常のオペレーションでは、補助はホストＩ／Ｏ要求のソースまたはターゲットとしては使用されないが、マスタ／１次からのデータのコピーを保持するため、およびマスタ／１次に向けて送られた書き込みの結果としてマスタ／１次から伝えられた変更を受け入れるために使用される。こうした状況では、この説明では補助／２次という用語が使用される。
【０００４】
したがってマスタ／１次は、通常、災害がない場合にアプリケーション・データを保持するディスクである。遠隔コピーの機能は、そのデータのコピーを補助／２次ディスク上で維持することである。
【０００５】
初期の同期化を確立するために、すべてのデータがマスタ／１次から補助／２次にコピーされる。
【０００６】
いったん同期化が確立されると、マスタ／１次で受信された各書き込みＩ／Ｏは補助／２次ディスクならびにマスタ／１次に送信される。通常の状況下では、補助／２次はアプリケーションからの書き込みを直接は受信せず、１次で発行され転送された書き込みから間接的に受信する。
【０００７】
２つのサイト間の接続が失われた場合、よく知られた従来の技法は、マスタ／１次で記録された変更を使用することである。この場合、通常はビットマップを使用して、マスタ／１次でディスクのどの領域が書き込みＩ／Ｏを受信したかを記録する。単一ビットから３２ｋ、あるいは何らかの同様にかなり少量のデータをマッピングするのが普通である。いったんリンクが再確立されると、そのビットマップを使用して補助／２次が再同期化され、ビットマップ内で変更済みとしてマーク付けされたあらゆるビットに対応するデータを転送することによって、マスタ／１次が完全に最新の状態になる。
【０００８】
しかしながら、遠隔コピーを使用する際に、このよく知られた方式だけでは不十分な場合がある。その一例が、災害後に実行される場合である。通常、災害がマスタ／１次コントローラで発生した場合、補助／２次コントローラへのアクセスが実行可能となり、そこにあるストレージを使用してアプリケーションが再起動される。この状況について、補助／１次の用語を使用して説明する。
【０００９】
しかしながら、次に必要なのが災害時回復機能を再確立することである。多くの「災害」では、マスタ・サイトは事実上物理的に無傷であり、電力障害または同様の短期障害のみを被っている可能性がある。したがって、マスタ（旧１次）を２次の関係（したがってマスタ／２次を作成する）として使用すること、および補助を１次とする（上記で定義したように、補助／１次として）ことが可能であり、本質的にデータの流れが反転する。現在の製品ではこれが可能であるが、補助／１次からマスタ／２次へのフル・コピーを実行する必要があり、ユーザが再び初期セットアップの問題に直面することになる。
【００１０】
第１に、実際の災害は頻繁に発生するものではないため、こうしたことにかかるコストは受け入れ難いものではない可能性はあるが、災害時回復システムをテストすることがいかなる災害時回復プランにおいても不可欠な部分であることを念頭におかなければならない。一部の企業および他の組織では、監査に合格するために、場合によっては月に１度の頻度で自分達の災害時回復機能を実演することが必要である。この災害時回復テストに、前述のような業務の完全なフェイルオーバの実施が含まれる場合、同期化を再確立するための補助／１次からマスタ／２次へのフル・コピーにかかるコストは非常に多額である。
【００１１】
すべての既知の従来方式では、１次／２次の役割を交換する前に、旧１次側で顕著な「未完了」更新がなくアプリケーションが完全に停止したことを保証するための十分な対策が取られない限り、こうしたフェイルオーバ・シナリオの後にフル・コピーが必要である。しかしながらこれは、複雑なシステム障害の場合には代表的な方法とは言えない。傷害は、フェイルオーバがトリガされるまでのある期間にわたってオリジナルのマスタ／１次システムの一部に障害が発生する、「波状障害（ｒｏｌｌｉｎｇ  ｆａｉｌｕｒｅｓ）」と呼ばれるタイプであることが多い。こうした状況では、オリジナルの補助／２次が気付かない波状障害中に旧マスタ／１次側で変更が行われている可能性がある。
【００１２】
この問題の解決策は、遠隔コピーを逆にセットアップし、単に補助／１次上に記録された変更を使用して、災害が回復した後にマスタ／２次に何を再度コピーしなければならないかを定義することであると考えられるかもしれない。しかしこれは前述のように、障害時にオリジナルのマスタ／１次側で偶然に変更が発生し、この変更がオリジナルの補助／２次には記録されていない可能性があるため、不適切である。これらが訂正されなければ、マスタおよび補助が真に同期化される可能性は決してない。
【００１３】
別のシナリオであるが、ここでも災害時回復または他の形のテスト（アップグレード・テストなど）との関連において発生する可能性のあるシナリオは、補助／２次がマスタ／１次から切り離され、その後、マスタ側での業務は通常通り続行しながら、その独立した状態でおそらくテスト・アプリケーションから直接書き込みＩ／Ｏを受信するというものである。ここで、補助は一時的に補助／１次として扱われ、同時にマスタはマスタ／１次として扱われていたにもかかわらず、接続再確立後の再同期化はマスタから補助へと行われなければならない。この場合、マスタ側の実際のアプリケーション・データが、マスタから切り離された期間中に補助に適用されたテスト・データによって上書きされないことが不可欠である。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
したがって、従来システムにおける前述のような費用のかかるデータのフル・コピーを適用するという欠点を緩和しながら、遠隔コピーの再同期化という効率的な手段を得ることが望ましい。
【課題を解決するための手段】
【００１５】
したがって本発明は、第１の態様において、遠隔コピー・ペアにおいて、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータを再同期化するための、前記２次で変更されたデータ・セグメントを識別する変更記録を前記２次から前記１次へ送信するステップと、前記２次からの前記変更記録を前記１次で変更されたデータ・セグメントを識別する変更記録と共にマージ済み変更記録にマージするステップと、前記マージ済み変更記録に示されるすべての識別された変更済みデータ・セグメントを前記１次から前記２次へとコピーするステップとを有する、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータの再同期化が、災害がフェイルオーバを引き起こした後に実行されることを特徴とする、方法を提供する。
【００１６】
好ましくは、前記マージング・ステップは再同期化の開始前に実行される。
【００１７】
好ましくは、前記２次で変更されたデータ・セグメントを識別する前記変更記録および前記１次で変更されたデータ・セグメントを識別する前記変更記録はビットマップである。
【００１８】
好ましくは、前記ビットマップは、論理ＯＲ演算を適用することによって前記マージング・ステップ中にマージされる。
【００１９】
好ましくは、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータの再同期化は、テスト手順が完了した後に実行される。
【００２０】
本発明は、第２の態様において、遠隔コピー・ペアのためのストレージ・システムにおいて、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータを再同期化するための、前記２次で変更されたデータ・セグメントを識別する変更記録を前記２次から前記１次へ送信するための通信コンポーネントと、前記２次からの前記変更記録を前記１次で変更されたデータ・セグメントを識別する変更記録と共にマージ済み変更記録にマージするための論理コンポーネントと、前記マージ済み変更記録に示されるすべての識別された変更済みデータ・セグメントを前記１次から前記２次へとコピーするためのデータ・コピー・コンポーネントとを有する、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータの再同期化が、災害がフェイルオーバを引き起こした後に実行されることを特徴とする、装置を提供する。
【００２１】
本発明は、第３の態様において、コンピュータ・システムにロードされそこで実行された場合、ペアが遠隔コピー関係の分離および再確立を経験した後の遠隔コピー・ペアの１次および２次で保持されるデータの再同期化を、前記２次で変更されたデータ・セグメントを識別する変更記録を前記２次から前記１次へ送信するステップと、前記２次からの前記変更記録を前記１次で変更されたデータ・セグメントを識別する変更記録と共にマージ済み変更記録にマージするステップと、前記マージ済み変更記録に示されるすべての識別された変更済みデータ・セグメントを前記１次から前記２次へとコピーするステップとを実行することによって、前記コンピュータ・システムに実行させるための、コンピュータ・プログラム・コード手段を有する、ペアが遠隔コピー関係の分離および再確立を経験した後に１次および２次で保持されるデータの再同期化が、災害がフェイルオーバを引き起こした後に実行されることを特徴とする、コンピュータ読取り可能ストレージ媒体において有形に具体化されたコンピュータ・プログラムを提供する。
【００２２】
次に、本発明の好ましい実施形態について、添付の図面を参照しながら単なる例を挙げて説明する。
【００２３】
次に、本発明の好ましい実施形態について、添付の図面を参照しながら単なる例を挙げて説明する。
【発明を実施するための最良の形態】
【００２４】
本発明の好ましい実施形態に従った装置の配置構成が図１に示される。この配置構成は、マスタ・ディスク１０２と補助ディスク１０４との間で通信手段１０１を動作させるためのアプリケーションＩ／Ｏ要求１００に対応するものである。アプリケーションＩ／Ｏ要求１００に対応する通常の通信流れが矢印１０６によって示され、ここでマスタ１０２はこの関係における１次ディスクであり、補助１０４は２次である。災害が発生するとマスタに障害が生じ、アプリケーションＩ／Ｏ要求１００は、分離１次ディスクとして動作する補助１０４への矢印１０８で表される直接の経路をたどる。
【００２５】
遠隔コピー関係を再確立した後の再同期化は、矢印１１０で表されるように、２次ディスクで実行された変更を記録する変更ビットマップが１次ディスクに送信されたときに実行される。当業者であれば、再同期化の際に、どのディスクを１次ディスクに、およびどのディスクを２次に指定するべきかに関してはユーザが決定するものであることは明白であろう。ここに示される例では、マスタが２次ディスクとして指定され補助が１次ディスクとして指定されているが、この関係は同様に逆に確立することができる。
【００２６】
マスタ／２次１０２で実行された変更を表すビットマップが補助／１次１０４によって受信され、補助／１次で実行された変更を表すビットマップと共にマージされた場合、結果として生じるマージ済みビットマップからのすべての変更は、矢印１１２で示されるように、補助／１次１０４からマスタ／２次にコピーされる。何らかの後の段階で、通常のオペレーションに戻すために、マスタ１０２および補助１０４の役割を逆転させることが可能であり、マスタ／１次１０２は、通信手段１０１を使用して補助／２次１０４と通信して矢印１０６’で示される経路に沿って遠隔コピー動作を渡す。通常に戻すためのこの役割の逆転は、本発明の好ましい実施形態の要件ではないが、マスタ／１次が局所性または使用可能な日常的な処理能力などの何らかの論理に基づいて選択されたものである可能性があるため、ユーザ動作の通常のコースでは予期されることになる。
【００２７】
次に図２および３を見ると、ハードウェア、ソフトウェア、またはそれらの組合せを使用して具体化することができる、本発明の好ましい実施形態に従った方法のステップを表す流れ図が示されている。
【００２８】
ステップ２００でシステムが初期設定され、ステップ２０１で（好ましい実施形態ではマスタ・ディスクを書き込み可能にすることによって）マスタ／１次ディスクが割り当てられる。ホストＩ／Ｏ２０２の受信に応答して、Ｉ／Ｏ動作（ここでは書き込み要求として例証される）がマスタ／１次への書き込み２０４を実行させ、その後に補助／２次へのコピー・ステップ２０６が続く。このプロセスは、テスト・ステップ２０８で接続の損失が登録されるまで続行する。
【００２９】
接続の損失に応答して、（好ましい実施形態では補助を書き込み可能にすることによって）補助が１次ディスクとして指定される。ホストＩ／Ｏ２１２を受信すると、ステップ２１４で例えば書き込み要求などのデータが補助／１次に直接書き込まれる。このプロセスは、テスト・ステップ２１６でマスタ／補助の関係の再確立が登録されるまで続行する。ステップ２２０で、１次および２次が指定される。前述のように、この指定によってマスタまたは補助を１次として割り当て、その相手方を２次として割り当てることができる。再同期化に先立って、ステップ２２２で、２次からの変更記録ビットマップが１次に送信され、１次からの変更記録ビットマップとマージされる２２４。ステップ２２６で、マージされたビットマップの中で変更済みとしてマークされたすべてのデータが１次から２次へコピーされる。すべての変更済みデータがコピーされた時点で再同期化が完了し、ステップ２２８で処理が再開される。
【００３０】
このようにして好ましい実施形態では、ディスクは、書き込みアクセス用に実行可能化されると必ず変更記録が可能なモードになる（最も好ましい実施形態では、これは１次の役割が与えられているのと同義である）。ディスクが書き込みの受け入れを禁止される（２次になる）と必ず、両方のディスクからの変更記録マップがマージされ、新しい変更記録ビットマップとして確立される。これはいかなる再同期化が実施されるよりも前に実行されることが最も好ましいが、代替実施形態では再同期化を並行して開始することも可能である。たとえば、２次からの変更記録マップが１次に送信されている間に、１次側で記録された変更の第１のセットを適用するプロセスを開始することができる。
【００３１】
ここで使用される「マージ」という用語は、マップ内で符号化されたディスクの各領域について、その領域を示すいずれかのマップが変更された場合、それが変更されたことを示すように新しいマップが設定されることを意味する。これはマップがビットマップの場合、論理ＯＲ演算を使用して便利に達成することができる。
【００３２】
マージを行うには、変更記録マップを２次コントローラから１次コントローラに転送する必要がある。好ましい実施形態では、これは、ここで確立されたコントロール接続を使用して、データ・トラフィック用に使用されているものと同じファイバ・チャネル接続を介して実行される。代替の一実施形態では、マップをホスト・システムに読み込んだ後、そこからたとえば両方の転送用にＴＣＰ／ＩＰネットワークを使用して１次コントローラへのマージを駆動させることができる。
【００３３】
再同期化プロセスとは、マージ済みマップで変更済みとしてマーク付けされた各領域について、１次から２次へとデータがコピーされるものである。したがって、２次側での無効または望ましくない変更は１次からの有効なデータで上書きされ、１次からのデータへの有効な変更が２次に適用される。
【００３４】
前述の方法は典型的には１つまたは複数のプロセッサ（図示せず）上で実行中のソフトウェアで実施されることになること、および、このソフトウェアは磁気または光学式コンピュータ・ディスクなどの任意の好適なデータ・キャリア（同じく図示せず）上で搬送されるコンピュータ・プログラム要素として提供可能であること、を理解されよう。同様にデータ伝送用のチャネルは、すべての記述の記憶媒体ならびに有線または無線の信号媒体などの信号搬送媒体を含むことができる。
【００３５】
本発明は、コンピュータ・システムで使用するためのコンピュータ・プログラムとして好適に具体化することができる。こうしたインプリメンテーションは、たとえばディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、またはハードディスクなどのコンピュータ読取り可能媒体などの有形の媒体上に固定されるか、あるいは、光またはアナログの通信回線を含むがこれらに限定されることのない有形の媒体を介するか、あるいはマイクロ波、赤外線、または他の伝送技法を含むがこれらに限定されることのない無線技法を使用して無形に、モデムまたは他のインターフェース・デバイスを通じてコンピュータ・システムに伝送可能であるか、のいずれかの、一連のコンピュータ読取り可能命令を有することができる。一連のコンピュータ読取り可能命令は、本明細書で前述した機能のすべてまたは一部を具体化する。
【００３６】
当業者であれば、こうしたコンピュータ読取り可能命令が、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するために、いくつかのプログラミング言語で作成可能であることを理解されよう。さらにこうした命令は、半導体、磁気、または光を含むがこれらに限定されることのない現在または将来の任意のメモリ技術を使用して格納するか、あるいは、光、赤外線、またはマイクロ波を含むがこれらに限定されることのない現在または将来の任意の通信技術を使用して伝送することができる。こうしたコンピュータ・プログラムは、たとえば収縮包装されたソフトウェアなどの印刷文書または電子文書が添付された取り外し可能媒体として配布可能であること、たとえばシステムＲＯＭまたは固定ディスク上でコンピュータ・システムに事前にロード可能であること、あるいは、サーバまたは電子掲示板からたとえばインターネットまたはワールド・ワイド・ウェブなどのネットワークを介して配布可能であること、が企図される。
【００３７】
当業者であれば前述の実施形態に対する様々な修正形態が明らかであることを理解されよう。
【図面の簡単な説明】
【００３８】
【図１】本発明の好ましい実施形態に従った装置の配置構成を示すブロック図である。
【図２】本発明の好ましい実施形態に従った方法のステップを示す流れ図である。
【図３】本発明の好ましい実施形態に従った方法のステップを示す流れ図である。
【図１】
0004528129.tif 000002
【図２】
0004528129.tif 000003
【図３】
0004528129.tif 000004