(57)【要約】【課題】  サービス再開を高速化できる二重化系における新たなデータ救済システム及び方法を提供する。【解決手段】  運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系１００のデータを救済する方法において、データレプリケーションの際にデータレプリケーション未完了のデータに関する管理情報をテーブル１９０に保持しておく。系が切り替わると、旧運用系１００のレプリケーション未完了データの管理情報を新運用系１１０のテーブル２００にレプリケートし（Ｓ１２）、これにより、新運用系１１０がサービスを実行する際、必要なデータがレプリケーションされているか否かを確認できる（Ｓ２２）。したがって、新運用系１１０は、必要なデータがレプリケーションされていない場合（Ｓ２３）、旧運用系１００から当該必要なデータをレプリケーションさせる（Ｓ２４〜Ｓ２７）ことによりデータの救済が可能である。【選択図】      図６
2005056297.tif 000002
【特許請求の範囲】
【請求項１】
二重化系の一方を運用系、他方の待機系とし、運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系のデータを救済する方法において、
運用系から待機系へのデータレプリケーションの際に、更新データのうちデータレプリケーションが完了していない残存データに関する管理情報をテーブルに保持し、
運用系が切り替わると、新運用系は前記管理情報に基づいて旧運用系の残存データを必要に応じてレプリケーションする、
ことを特徴とするデータ救済方法。
【請求項２】
前記新運用系は、前記旧運用系の残存データをすべてレプリケーションする前に、前記管理情報を参照しながらサービスを開始する、ことを特徴とする請求項１に記載のデータ救済方法。
【請求項３】
前記新運用系は、サービスの実行に必要なデータに関する管理情報が前記テーブルに存在するか否かを判定し、
前記テーブルに当該管理情報が存在する場合には、当該データのレプリケーションを完了させるために、当該データのレプリケーションを前記旧運用系へ要求し、
当該データのレプリケーションが完了すると、当該データに関する管理情報を前記テーブルから削除する、
ことを特徴とする請求項２に記載のデータ救済方法。
【請求項４】
二重化系の一方を運用系、他方の待機系とし、運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系のデータを救済する方法において、
ａ）運用系から待機系へのデータレプリケーションの際に、更新データのうちデータレプリケーションが完了していない残存データに関する管理情報をテーブルに保持し、
ｂ）運用系が切り替わると、新運用系は前記管理情報を参照しながら一プロセスを実行し、
ｃ）前記一プロセスで前記管理情報に対応する残存データを必要とする場合には、当該一プロセスを所定時間停止して他のプロセスを実行し、
ｄ）前記所定時間経過すると、前記ステップｂ）に戻る、
ことを特徴とするデータ救済方法。
【請求項５】
第１処理系および第２処理系からなる二重化系の一方を運用系、他方の待機系とし、運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系のデータを救済するシステムにおいて、
前記第１処理系および前記第２処理系の各々は、
プロセスにより使用されるデータを読み出しおよび書き込み可能に格納するためのメモリと、
運用系から待機系へのデータレプリケーションの際に、前記メモリに格納された更新データのうちデータレプリケーションが完了していない残存データに関する管理情報を格納するためのテーブルと、
当該処理系が待機系から運用系に切り替わると、他方の処理系のテーブルから当該処理系のテーブルへ管理情報のレプリケーションを実行し、レプリケーションされた管理情報に基づいて当該処理系でサービスを実行する制御手段と、
を有することを特徴とするデータ救済システム。
【請求項６】
前記制御手段は、当該処理系がサービスを実行する際に当該テーブルに存在する管理情報に対応するデータを必要とする場合には、前記他方の処理系から当該データをレプリケーションするように要求する、ことを特徴とする請求項５に記載のデータ救済システム。
【請求項７】
前記制御手段は、当該処理系の一プロセスがサービスを実行する際に当該テーブルに存在する管理情報に対応するデータを必要とする場合には、当該一プロセスの実行を所定時間停止して他のプロセスを実行し、前記所定時間が経過した後で前記一プロセスを再実行する、ことを特徴とする請求項５に記載のデータ救済システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は運用系および待機系を有する二重化システムのレプリケーション（メモリ同期）技術に係り、特に系切り替え時のデータ救済方法およびシステムに関する。
【背景技術】
【０００２】
運用系および待機系を有する二重化システムでは、運用系に障害が発生すると、直ちに待機系に切り替えて処理を続行することができる。その際、運用系におけるデータをそのまま待機系に反映させること必要があり、従来より種々のデータ救済方式が提案されている。
【０００３】
特公平６−８３３１４号公報に開示された「呼情報救済方式」では、運用系からの系切替信号に基づいて、運用系の主メモリに格納されている情報を待機系に転送し、待機系は転送された情報に従って処理を続行する。しかしながら，この方式では運用系から待機系へのデータ転送が完了しない限り処理の続行が不可能となり、サービスの再開が遅れるという問題があった。
【０００４】
特開平６−６７９７９号公報には、サービス再開を迅速化する方法の一例が開示されている。同公報によれば、二重化プロセッサシステムの現用系および待機系の各々にコピーバック・キャッシュを採用し、各メインメモリの内容が常に一致するように制御する。さらに、各系のメインメモリのライト内容を保存するバッファメモリを設け、系切替が発生した時に、待機系がメモリアクセス毎に現用系のバッファメモリを参照し、待機系に反映されていないデータがある場合には、現用系のバッファメモリの内容を待機系のメインメモリに書き込む。こうして、待機系のバッファメモリを用いることなくデータが救済されるために、障害時の系切り替え処理を高速化することができる。
【０００５】
【特許文献１】特公平６−８３３１４号公報
【特許文献２】特開平６−６７９７９号公報（段落０００８、００２５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２に開示された方式では、メモリアクセス毎に現用系のバッファメモリを検索する必要があるために、現用系と待機系との間の通信量が増大する。このために、特にメモリアクセスの多いシステムの場合にデータ救済の高速化が困難となる。
【０００７】
そこで、本発明の目的は、サービス再開を高速化できる二重化系における新たなデータ救済方法およびシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば、レプリケーションが完了していないデータの管理情報を系切り替え時に新運用系にレプリケートし、これにより、新運用系がサービスを実行する際、新運用系側で必要なデータがレプリケーションされているか否かを確認することができる。したがって、系切り替えによる新運用系は、必要なデータがレプリケーションされていない場合は旧運用系から当該必要なデータをレプリケーションさせることによりデータの救済を行うことができる。すなわち、新運用系の処理で必要なデータがレプリケーションを完了していない場合であっても、新運用系の要求により当該データを救済することが可能となる。
【０００９】
また、本発明によれば、レプリケーションが完了していないデータの管理情報を系切り替え時に新運用系にレプリケートするために、新運用系側で必要なデータがレプリケーションされているか否かを確認することができ、レプリケーションされていない場合は、そのプロセスを停止して、他のプロセスを実行させることが可能となる。
【００１０】
本発明の第１の側面によれば、二重化系の一方を運用系、他方の待機系とし、運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系のデータを救済する方法において、運用系から待機系へのデータレプリケーションの際に、更新データのうちデータレプリケーションが完了していない残存データに関する管理情報をテーブルに保持し、運用系が切り替わると、新運用系は前記管理情報に基づいて旧運用系の残存データを必要に応じてレプリケーションする、ことを特徴とする。
【００１１】
前記新運用系は、前記旧運用系の残存データをすべてレプリケーションする前に、前記管理情報を参照しながらサービスを開始することが望ましい。その際、前記新運用系は、サービスの実行に必要なデータに関する管理情報が前記テーブルに存在するか否かを判定し、前記テーブルに当該管理情報が存在する場合には、当該データのレプリケーションを完了させるために、当該データのレプリケーションを前記旧運用系へ要求し、当該データのレプリケーションが完了すると、当該データに関する管理情報を前記テーブルから削除する、ことが望ましい。
【００１２】
本発明の第２の側面によれば、二重化系の一方を運用系、他方の待機系とし、運用系から待機系へのデータレプリケーションを実行することで、系切り替え時に旧運用系のデータを救済する方法において、ａ）運用系から待機系へのデータレプリケーションの際に、更新データのうちデータレプリケーションが完了していない残存データに関する管理情報をテーブルに保持し、ｂ）運用系が切り替わると、新運用系は前記管理情報を参照しながら一プロセスを実行し、ｃ）前記一プロセスで前記管理情報に対応する残存データを必要とする場合には、当該一プロセスを所定時間停止して他のプロセスを実行し、ｄ）前記所定時間経過すると、前記ステップｂ）に戻る、ことを特徴とする。
【発明の効果】
【００１３】
したがって、本発明によれば、系切り替え時にレプリケーションの完了を待つことなく新運用系でサービスを再開することができ、サービス再開の高速化が可能となる。すなわち、レプリケーションが完了していないデータの管理情報が新運用系側で保持されるために、新運用系がレプリケーションの完了／未完了を監視することができ、新運用系のサービス実行時に必要になれば、旧運用系からデータをレプリケーションさせることが可能となり、あるいは、当該プロセスを停止して他のプロセスを実行し、所定時間経過後に元のプロセスに戻って処理を続行することも可能となる。このために、救済されるべきデータのレプリケーションが完了していなくても、サービスを再開し続行することができる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の一実施形態による二重化系データ救済システムの概略的構成を示す模式的構成図である。本実施形態は、運用(ＡＣＴ)系の処理プロセッサ１００と待機(ＳＢＹ)系の処理プロセッサ１１０との二重化システム構成であり、処理プロセッサ１００で生成されたレプリケーションプロセス１２０と処理プロセッサ１１０で生成されたレプリケーションプロセス１３０とによってレプリケーション(メモリ同期)が実行される。
【００１５】
より詳しくは、運用系の処理プロセッサ１００には、レプリケーションプロセス１２０およびプロセス１４０が生成され、さらに、処理に必要なデータの書き込み及び読み出しを行う共有メモリ１６０と、メモリ同期未完了のデータの管理情報を格納するテーブル１９０とが設けられている。また、処理プロセッサ１００にはキュー１８０が設けられ、プロセス間通信や処理プロセッサ１１０への通信で使用される。
【００１６】
同様に、待機系の処理プロセッサ１１０には、レプリケーションプロセス１３０およびプロセス１５０が生成され、さらに、処理に必要なデータの書き込み及び読み出しを行う共有メモリ１７０と、テーブル１９０に保持されたデータをレプリケーションするテーブル２００とが設けられている。障害等の理由により運用系処理プロセッサ１００のサービスが停止すると、系が切り替わり、待機系の処理プロセッサ１１０が新運用系としてサービスを開始する。
【００１７】
詳しくは後述するが、処理プロセッサ１１０のレプリケーションプロセス１２０は、共有メモリ１６０の変更内容を待機系処理プロセッサ１１０に伝えると共に、共有メモリ１６０内の変更場所を特定できるデータ（管理情報）をテーブル１９０に保持する。そして、データのレプリケーションが完了すると、当該データに対応する管理情報がテーブル１９０から削除される。したがって、テーブル１９０にはレプリケーションが完了していないデータの管理情報が残存している。処理プロセッサ１１０のテーブル２００は、系切り替え時のレプリケーションにより、処理プロセッサ１００のテーブル１９０からデータを取得し、レプリケーションが完了していない共有メモリ１６０のデータの管理情報として保持する。
【００１８】
このようなレプリケーション処理を行っているときに系が切り替わると、新運用系としての処理プロセッサ１１０は、レプリケーションされた処理プロセッサ１００のデータを用いてサービスを再開するが、この時点ですべてのデータがレプリケーションされているとは限らない。そこで、新運用系のプロセス１５０はテーブル２００を検索することで、サービスに必要なデータがレプリケートされているか否かを判定し、レプリケートされていない場合にはレプリケーションプロセス１３０を通じて旧運用系から必要なデータを取得する。
【００１９】
このように、レプリケーションが完了していなくても、新運用系は必要なデータを旧運用系からその都度取得することができ、最新のデータを用いてサービスを実行することができる。したがって、新運用系は、サービス再開を早い時点で行うことが可能となる。以下、図２〜図４を参照しながら、本実施形態の全体的動作についてさらに詳細に説明する。
【００２０】
（障害発生前）
図２は、図１に示すデータ救済システムの正常運転時の動作を説明するための模式的構成図である。ここでは、処理プロセッサ１００が運用系、処理プロセッサ１１０が待機系である。
【００２１】
まず、運用系処理プロセッサ１００のプロセス１４０は、必要に応じて共有メモリ１６０に対してデータの読み出しや書き込みを実行し（ステップＳ１）、同時に共有メモリ１６０の更新を待機系に反映させるためにレプリケーションプロセス１２０へレプリケーション要求を発行する（ステップＳ２）。
【００２２】
レプリケーションを要求されたレプリケーションプロセス１２０は、共有メモリ１６０若しくはプロセス１４０からデータの変更内容と変更個所を特定する管理情報とを取得し（ステップＳ３、Ｓ４）、レプリケーションを実行すると共に（ステップＳ５）、テーブル１９０に変更箇所を特定する管理情報を書き込む（ステップＳ６）。
【００２３】
レプリケーションにより待機系の共有メモリ１７０にデータ変更が反映されると（ステップＳ７）、レプリケーション完了が通知される（ステップＳ８）。レプリケーションが完了すると、レプリケーションプロセス１２０はテーブル１９０から完了したレプリケーションに対する変更箇所を特定する管理情報を消去する。従って、レプリケーションが完了していないデータに関しては、そのデータの管理情報がテーブル１９０に存在することになる。
【００２４】
（系切り替え時のレプリケーション）
図３は図１に示すデータ救済システムにおける系切り替え時のレプリケーション動作を説明するための模式的構成図であり、図４は系切り替え時のレプリケーション動作を示すフローチャートである。
【００２５】
図４において、運用系処理プロセッサ１００に障害などが発生することで系切り替えが実行され（ステップＳ１０）、処理プロセッサ１００が旧運用系、処理プロセッサ１１０が新運用系となり、旧運用系処理プロセッサ１００が再開されたものとする。
【００２６】
再開が完了した旧運用系処理プロセッサ１００は、まず、レプリケーションプロセス１２０に指示してテーブル１９０に格納されている管理情報を新運用系の処理プロセッサ１１０のテーブル２００へレプリケーションさせる。すなわち、レプリケーションプロセス１２０は、テーブル１９０に管理情報が残っているか否かをチェックし（ステップＳ１１）、残存すれば（ステップＳ１１のＹＥＳ）、テーブル１９０内の管理情報を新運用系処理プロセッサ１１０のテーブル２００へコピーし（ステップＳ１２）、管理情報のレプリケーションが完了したらテーブル１９０の内容は全て削除する（ステップＳ１３）。
【００２７】
管理情報のレプリケーションが完了すると、レプリケーションプロセス１２０は、障害発生前にレプリケーションが完了していなかったデータをレプリケーションさせる。すなわち、レプリケーションプロセス１２０はレプリケーション未完了データがあるか否かを判定し（ステップＳ１４）、レプリケーション未完了データが残っていれば（ステップＳ１４のＹＥＳ）、当該データを新運用系処理プロセッサ１１０へ転送し、レプリケーションプロセス１３０によって共有メモリ１７０に格納される（ステップＳ１５）。こうしてレプリケーションが完了したデータに対応する管理情報は、テーブル２００から削除される（ステップＳ１６）。
【００２８】
このように、本実施形態によれば、データのレプリケーションに先立って、テーブル１９０内の管理情報のレプリケーションが実行される。この管理情報のレプリケーションが完了すると、次に詳述するように、新運用系処理プロセッサ１１０のサービス開始が可能となる。
【００２９】
（新運用系によるサービス開始時）
図５は図１に示すデータ救済システムにおける新運用系のサービス再開動作を説明するための模式的構成図であり、図６は系切り替え時のレプリケーション動作および新運用系のサービス再開動作を示すシーケンス図である。
【００３０】
図６において、ステップＳ１１〜Ｓ１６は、図４のステップＳ１１〜Ｓ１６に対応する系切り替え時のレプリケーション動作を示す。上述したように、管理情報のレプリケーションが実行され（ステップＳ１２）、レプリケーションプロセス１３０から完了通知があると（ステップＳ２０）、プロセス１５０は、データレプリケーションの完了（ステップＳ１７）を待つことなく、サービスを開始する（ステップＳ２１）。
【００３１】
サービス実行において、共有メモリ１７０に対してデータの読み出し又は書き込みを実行する必要があると、その前にプロセス１５０はテーブル２００を参照し当該データがレプリケーション未完了部分のデータであるか否かを判定する（ステップＳ２２）。すなわち、当該データを示す管理情報がテーブル２００に存在するか否かをサーチする。
【００３２】
テーブル２００に当該データを示す管理情報が存在する場合には（ステップＳ２３）、レプリケーション未完了と判断し、プロセス１５０はレプリケーションプロセス１３０を通して旧運用系のレプリケーションプロセス１２０へ当該データを含む部分のレプリケーションを完了させるように要求する（ステップＳ２４）。
【００３３】
要求を受けたレプリケーションプロセス１２０は、キュー１８０を検索してレプリケーションを実行しようとしているか否かを確認する（ステップＳ２５）。キュー１８０にレプリケーション実行キューが無い場合には、共有メモリ１６０を参照して該当するデータを取得し（ステップＳ２６）、新運用系のレプリケーションプロセス１３０へ送信してレプリケーションを実行する。
【００３４】
これによって、新運用系のレプリケーションプロセス１３０は、共有メモリ１７０にデータを反映してレプリケーションを完了させると（ステップＳ２７）、テーブル２００から該当するデータを削除し（ステップＳ２８）、プロセス１５０へレプリケーションが完了したことを通知する（ステップＳ２９）。通知を受けたプロセス１５０は、共有メモリ１７０へアクセスすることにより更新されたデータを読み出して処理を続行することができる（ステップＳ３０）。
【００３５】
以上の手順により、新運用系処理プロセッサ１１０では、サービスが開始した後でも、レプリケーション未完了のデータを救済することが可能となる。従って、救済が必要なすべてのデータレプリケーションが完了（ステップＳ１７）するのを待つ必要が無くなるために、サービス再開を早い時点で開始することができる。
【００３６】
（他の実施形態）
上記実施形態では、図６におけるサービス開始（ステップＳ２１）後、新運用系のプロセス１５０が共有メモリ１７０のデータの読み出しや書き込みを実行する時に、テーブル２００を参照してレプリケーションが未完了であるか否かを確認し、未完了であれば、完了要求を発行して当該データのレプリケーションを実行させる。すなわち、レプリケーションの未完了データは、ステップＳ１４において開始され、その後もデータレプリケーションが継続しているのだが、新運用系のプロセス１５０が共有メモリ１７０にアクセスする時点では当該データのレプリケーションは未完了であったわけである。したがって、その時点では未完了であっても、ある時間が経過すればレプリケーションが完了するはずであり、その間に他のプロセスを実行することで全体的な効率を向上させることができる。
【００３７】
このような観点から、本発明の他の実施形態によるデータ救済方法では、テーブル２００を参照してレプリケーションが未完了であれば、プロセス１５０以外のプロセスを先に実行させ、ある時間が経過した後で、再びプロセス１５０の必要とするデータに関してテーブル２００を参照してレプリケーションが未完了であるか否かを判定する。言い換えれば、プロセス１５０が能動的にレプリケーション完了を要求するのではなく、通常のデータレプリケーション手順に従ってレプリケーションが完了するのを待ち、その間、他のプロセスを実行することで全体としてサービスの処理効率を向上させようとするものである。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施形態による二重化系データ救済システムの概略的構成を示す模式的構成図である。
【図２】図１に示すデータ救済システムの正常運転時の動作を説明するための模式的構成図である。
【図３】図１に示すデータ救済システムにおける系切り替え時のレプリケーション動作を説明するための模式的構成図である。
【図４】図１に示すデータ救済システムにおける系切り替え時のレプリケーション動作を示すフローチャートである。
【図５】図１に示すデータ救済システムにおける新運用系のサービス再開動作を説明するための模式的構成図である。
【図６】図１に示すデータ救済システムにおける系切り替え時のレプリケーション動作および新運用系のサービス再開動作を示すシーケンス図である。
【符号の説明】
【００３９】
１００  運用系処理プロセッサ
１１０  待機系処理プロセッサ
１２０  運用系レプリケーションプロセス
１３０  待機系レプリケーションプロセス
１４０  運用系プロセス
１５０  待機系プロセス
１６０  運用系共有メモリ
１７０  待機系共有メモリ
１８０  運用系キュー
１９０  運用系テーブル
２００  待機系テーブル
【図１】
2005056297.tif 000003
【図２】
2005056297.tif 000004
【図３】
2005056297.tif 000005
【図４】
2005056297.tif 000006
【図５】
2005056297.tif 000007
【図６】
2005056297.tif 000008