(57)【特許請求の範囲】
【請求項１】
要求元から依頼されたデータ処理を実行する第１の情報処理装置と、前記第１の情報処理装置がデータ処理を実行できなくなった場合に、前記第１の情報処理装置に代わって、前記要求元から依頼されたデータ処理を実行する第２の情報処理装置と、前記要求元からのデータ処理要求を前記第１の情報処理装置もしくは前記第２の情報処理装置へ振り分ける振分装置とを有する冗長化システムであって、
前記振分装置は、
要求元から自己宛に送信されたデータ処理要求を受信し、前記第２の情報処理装置より振り分け先切り替えの要求があるまで、受信した前記要求元からのデータ処理要求を前記第１の情報処理装置へ送信すると共に、前記第２の情報処理装置より振り分け先切り替えの要求があると、受信した前記要求元からのデータ処理要求を前記第２の情報処理装置へ送信する処理を行い、
前記第１の情報処理装置は、
前記振分装置によって振り分けられた前記データ処理要求に対応するデータ処理を実行する情報処理実行手段と、
データ処理要求の処理を行うとともに、該データ処理を前記第２の情報処理装置へ転送し、その後前記第２の情報処理装置より処理完了通知を受信すると、該処理を完了とする同期制御手段とを備え、
前記第２の情報処理装置は、
前記第１の情報処理装置と直接接続される第１の経路と、前記振分装置を経由して前記第１の情報処理装置と接続される第２の経路とを通じて前記第１の情報処理装置を監視し、前記第２の経路と異なる第３の経路によって前記振分装置を監視し、且つ前記第１の経路及び前記第３の経路においてはＰＩＮＧを用いて監視を行い、前記第２の経路においてはダミーの処理要求を用いて監視を行い、前記第１の経路及び前記第２の経路のいずれの経路にも異常がある場合に、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定し、前記第１の経路に異常がなく、前記第２の経路に異常がある場合に、前記第３の経路に異常がなければ、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定する生存監視手段と、
前記生存監視手段によって、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定された場合に、前記要求元からのデータ処理要求が前記第１の情報処理装置ではなく、当該第２の情報処理装置へ振り分けられるように前記振分装置を制御する振分装置制御手段とを備えたことを特徴とする冗長化システム。
【請求項２】
前記同期制御手段は、前記情報処理実行手段によるデータ処理と、前記第２の情報処理装置におけるデータ処理とが完了した後に、前記要求元へ処理結果を応答することを特徴とする請求項１に記載の冗長化システム。
【請求項３】
前記生存監視手段は、前記第１の経路に異常があり、前記第２の経路に異常がない場合に、前記第１の情報処理装置がデータ処理を実行できる状態にあると判定することを特徴とする請求項１に記載の冗長化システム。
【請求項４】
前記振分装置は、前記第１の情報処理装置のアドレス及び前記第２の情報処理装置のアドレス、並びに振り分け先の指定が記載された振分テーブルを記憶しており、該振分テーブルを基に前記第１の情報処理装置又は前記第２の情報処理装置のいずれかを振り分け先の装置を決定し、決定した装置に対して記憶しているアドレスを基にデータ処理要求を送信し、且つ、前記第２の情報処理装置からの振り分け先の変更要求を受けて、前記振り分けテーブルを更新することを特徴とする請求項１〜３のいずれか一つに記載の冗長化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、現用系と待機系の情報処理装置を有する冗長化システムに関し、特に、現用系と待機系の切替を短時間で実現でき、低コストで導入可能な冗長化システムに関する。
【背景技術】
【０００２】
信頼性を必要とされる情報処理システムの多くは、複数の情報処理装置を用いた冗長構成で運用されている。典型的には、２台の情報処理装置を用意し、一方の情報処理装置を現用系として、クライアントからの処理要求に応じたデータ処理をこの現用系の情報処理装置に実行させ、もう一方の情報処理装置を待機系として、現用系の情報処理装置に障害が発生したときに待機系の情報処理装置を現用系へ切り替える運用形態が採用されている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平７−２８６６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような現用系と待機系からなる冗長構成を採用した場合、現用系と待機系の切替時に、データの矛盾防止等のための処理が必要になり、比較的長い時間がかかってしまうという問題があった。この問題は、フォールトレラント型の情報処理装置のように信頼性の高い装置を利用することで解決することも可能であったが、信頼性の高い装置は、非常に高価であり予算の面から導入が困難であった。
【０００５】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、現用系と待機系の切替を短時間で実現でき、低コストで導入可能な冗長化システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、要求元から依頼されたデータ処理を実行する第１の情報処理装置と、前記第１の情報処理装置がデータ処理を実行できなくなった場合に、前記第１の情報処理装置に代わって、前記要求元から依頼されたデータ処理を実行する第２の情報処理装置と、前記要求元からのデータ処理要求を前記第１の情報処理装置もしくは前記第２の情報処理装置へ振り分ける振分装置とを有する冗長化システムであって、前記振分装置は、要求元から自己宛に送信されたデータ処理要求を受信し、前記第２の情報処理装置より振り分け先切り替えの要求があるまで、受信した前記要求元からのデータ処理要求を前記第１の情報処理装置へ送信すると共に、前記第２の情報処理装置より振り分け先切り替えの要求があると、受信した前記要求元からのデータ処理要求を前記第２の情報処理装置へ送信する処理を行い、前記第１の情報処理装置は、前記振分装置によって振り分けられた前記データ処理要求に対応するデータ処理を実行する情報処理実行手段と、データ処理要求の処理を行うとともに、該データ処理を前記第２の情報処理装置へ転送し、その後前記第２の情報処理装置より処理完了通知を受信すると、該処理を完了とする同期制御手段とを備え、前記第２の情報処理装置は、前記第１の情報処理装置と直接接続される第１の経路と、前記振分装置を経由して前記第１の情報処理装置と接続される第２の経路とを通じて前記第１の情報処理装置を監視し、前記第２の経路と異なる第３の経路によって前記振分装置を監視し、且つ前記第１の経路及び前記第３の経路においてはＰＩＮＧを用いて監視を行い、前記第２の経路においてはダミーの処理要求を用いて監視を行い、前記第１の経路及び前記第２の経路のいずれの経路にも異常がある場合に、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定し、前記第１の経路に異常がなく、前記第２の経路に異常がある場合に、前記第３の経路に異常がなければ、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定する生存監視手段と、前記生存監視手段によって、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定された場合に、前記要求元からのデータ処理要求が前記第１の情報処理装置ではなく、当該第２の情報処理装置へ振り分けられるように前記振分装置を制御する振分装置制御手段とを備えたことを特徴とする。
【０００７】
また、本発明の他の態様では、上記の発明の態様において、前記同期制御手段は、前記情報処理実行手段によるデータ処理と、前記第２の情報処理装置におけるデータ処理とが完了した後に、前記要求元へ処理結果を応答することを特徴とする。
【０００８】
これらの発明の態様によれば、現用系の情報処理装置と待機系の情報処理装置において同様のデータ処理を実行することで双方のデータを同期させ、現用系の情報処理装置に障害が発生した場合には、振分装置の振分先を変更するだけで現用系と待機系の切替を実行できるように構成したので、現用系と待機系の切替を短時間で実現できる。また、高価な装置を用いる必要がないので、低コストで導入可能なシステムを実現することができる。
【０００９】
また、本発明の他の態様では、上記の発明の態様において、前記生存監視手段は、前記第１の情報処理装置と直接接続される第１の経路と、前記振分装置を経由して前記第１の情報処理装置と接続される第２の経路とを通じて前記第１の情報処理装置を監視し、いずれの経路にも異常がある場合に、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定することを特徴とする。
【００１０】
また、本発明の他の態様では、上記の発明の態様において、前記生存監視手段は、前記第１の経路に異常があり、前記第２の経路に異常がない場合に、前記第１の情報処理装置がデータ処理を実行できる状態にあると判定することを特徴とする。
【００１１】
また、本発明の他の態様では、上記の発明の態様において、前記生存監視手段は、前記第２の経路と異なる第３の経路によって前記振分装置を監視し、前記第１の経路に異常がなく、前記第２の経路に異常がある場合に、前記第３の経路に異常がなければ、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定することを特徴とする。
【００１２】
これらの発明の態様によれば、待機系の情報処理装置が複数の経路を通じて現用系の情報処理装置を監視することとしたので、現用系の情報処理装置がデータ処理を実行できる状態にあるか否かを正確に判定することができる。
【００１３】
また、本発明の他の態様では、要求元から依頼されたデータ処理を実行する他の情報処理装置がデータ処理を実行できなくなった場合に、前記他の情報処理装置に代わって、前記要求元から依頼されたデータ処理を実行する情報処理装置であって、前記他の装置から転送されたデータ処理要求に対応するデータ処理を実行することにより、前記要求元から送信されたデータ処理要求に応じて前記他の情報処理装置において実行されるデータ処理と同様のデータ処理を当該の情報処理装置においても実行する同期制御手段と、前記他の情報処理装置がデータ処理を実行できる状態にあるか否かを監視する生存監視手段と、前記生存監視手段によって、前記他の情報処理装置がデータ処理を実行できる状態にないと判定された場合に、前記要求元からのデータ処理要求を前記他の情報処理装置へ振り分ける振分装置に対して、前記要求元からのデータ処理要求を、前記他の情報処理装置ではなく、当該の情報処理装置へ振り分けられるように指示する振分装置制御手段とを備えたことを特徴とする。
【００１４】
この発明の態様によれば、現用系の情報処理装置と待機系の情報処理装置において同様のデータ処理を実行することで双方のデータを同期させ、現用系の情報処理装置に障害が発生した場合には、振分装置の振分先を変更するだけで現用系と待機系の切替を実行できるように構成したので、現用系と待機系の切替を短時間で実現できる。
【００１５】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１６】
本発明の一つの態様によれば、現用系の情報処理装置と待機系の情報処理装置において同様のデータ処理を実行することで双方のデータを同期させ、現用系の情報処理装置に障害が発生した場合には、振分装置の振分先を変更するだけで現用系と待機系の切替を実行できるように構成したので、現用系と待機系の切替を短時間で実現できるという効果を奏する。
【００１７】
また、本発明の一つの態様によれば、高価な装置を用いる必要がないので、低コストで導入可能なシステムを実現することができるという効果を奏する。
【００１８】
また、本発明の一つの態様によれば、待機系の情報処理装置が複数の経路を通じて現用系の情報処理装置を監視することとしたので、現用系の情報処理装置がデータ処理を実行できる状態にあるか否かを正確に判定することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、本発明に係る冗長化システムの好適な実施の形態を詳細に説明する。
【実施例】
【００２０】
まず、本実施例に係る冗長化システムの概要について説明する。本実施例に係る冗長化システムは、現用系装置と待機系装置との間のデータ同期と、振分装置による振分先切替とよって高速な冗長切替を実現する。以下、図１および２を参照しながら、データ同期と、振分先切替について説明する。
【００２１】
図１は、冗長化システム１におけるデータ同期の概要を示す図である。冗長化システム１は、本実施例に係る冗長化システムの一例であり、端末装置１０から要求されたデータ処理を実行する。なお、図１においては、冗長化システム１にデータ処理を要求する端末として端末装置１０のみを図示しているが、冗長化システム１にデータ処理を要求する端末は、何台あってもよい。
【００２２】
図１に示すように、冗長化システム１は、振分装置２０と、サーバ装置３０ａおよび３０ｂとを含む。振分装置２０は、端末装置１０から送信された処理要求を、サーバ装置３０ａと３０ｂのうち、現用系として動作している方の装置へ振り分ける装置である。サーバ装置３０ａおよび３０ｂは、一方が現用系となり、他方が待機系となる冗長化された情報処理装置である。
【００２３】
図１の例では、サーバ装置３０ａが現用系となり、サーバ装置３０ｂが待機系となっている。サーバ装置３０ａは、第一の情報処理装置と称する場合もある。サーバ装置３０ｂは、第２の情報処理装置と称する場合もある。この状態で、端末装置１０が処理要求を冗長化システム１へ送信すると、振分装置２０がこれを受信する（ステップＳ１１）。そして、振分装置２０は、受信した処理要求を、現用系であるサーバ装置３０ａへ転送する（ステップＳ１２）。
【００２４】
サーバ装置３０ａは、処理要求を受信すると、その処理要求に応じたデータ更新を行うとともに（ステップＳ１３）、待機系であるサーバ装置３０ｂへ処理要求を転送する（ステップＳ１４）。サーバ装置３０ｂは、処理要求を受信すると、サーバ装置３０ａと同様に、その処理要求に応じたデータ更新を行い（ステップＳ１５）、処理結果をサーバ装置３０ａへ応答する（ステップＳ１６）。
【００２５】
サーバ装置３０ａは、サーバ装置３０ｂからの応答を待合せ、サーバ装置３０ｂから送信された処理結果と、自装置で実行されたデータ更新の処理結果とを照合する（ステップＳ１７）。そして、両者が一致することを確認した後、サーバ装置３０ａは、処理結果を振分装置２０へ応答する（ステップＳ１８）。もし処理結果が一致しなかった場合は、サーバ装置３０ａは、データ更新を取り消す等のエラー処理を実行する。振分装置２０は、処理結果を受信すると、これを処理要求の送信元である端末装置１０へ転送する（ステップＳ１９）。なお、何らかの理由で端末装置１０へ処理結果が正常に応答されなかった場合には、端末装置１０が、冗長化システム１へ処理要求を再送信することにより、処理が再実行される。
【００２６】
このように、本実施例に係る冗長化システム１においては、現用系の装置と待機系の装置が、同じ処理を実行し、現用系の装置が、両者で正常に処理が完了したことを確認した後に処理結果を応答するので、端末装置１０へ処理結果が正常に応答された場合には、現用系の装置と待機系の装置のデータが一致していることが保証される。現用系の装置と待機系の装置のデータを常に一致させておくことにより、現用系の装置と待機系の装置を切り替える処理であるフェイルオーバが必要になった場合に、改めてデータを同期させなくてもよくなるため、フェイルオーバに要する時間であるフェイルオーバ時間が大きく短縮される。
【００２７】
図２は、冗長化システム１における振分先切替の概要を示す図である。同図に示すように、サーバ装置３０ａおよび３０ｂは、定期的に生存監視用のメッセージを送信し合って他系の装置の生存を確認する（ステップＳ２１および２２）。この生存確認においては、図１に示したデータ同期が正常に機能しているか否かも確認される。そして、待機系のサーバ装置３０ｂは、現用系のサーバ装置３０ａに障害が発生したことを検出すると（ステップＳ２３）、振分装置２０へ振分先の切替を指示する（ステップＳ２４）。
【００２８】
振分装置２０は、切替指示を受けると、端末装置１０から新たに送信された処理要求をサーバ装置３０ａではなく、サーバ装置３０ｂへ送信するように送信先を切り替える（ステップＳ２５）。なお、サーバ装置３０ａが、サーバ装置３０ｂの障害を検出した場合は、サーバ装置３０ａは、振分先の切替指示は行わず、図１に示した同期処理を停止し、自装置のみでデータ処理を行う。
【００２９】
このように、本実施例に係る冗長化システム１においては、現用系の装置において障害が発生した場合に、待機系の装置が、処理要求の振分先の切替を振分装置２０に指示し、それ以降は、自身が現用系となって端末装置１０からの処理要求に対応する。この方式では、フェイルオーバの発生を端末装置１０が認識する必要がなく、また、ＩＰアドレスの変更等のネットワークの論理構成の変更が発生しないため、端末装置１０からの処理要求を、新たに現用系となった装置へ迅速に伝送することができる。
【００３０】
そして、本実施例に係る冗長化システム１においては、単にパケットの送受信が可能であるか否かだけでなく、データ同期が正常に機能しているか否かを待機系の装置が確認して、現用系の装置の生存を判定するので、生存判定を正確に行うことができる。さらに、新たに現用系になる装置によって振分先の切替指示が行われるので、処理要求の振分先切替を実行した後に、処理要求に対処する装置が正常に動作していることが保証される。
【００３１】
図３は、本実施例に係る冗長化システム１におけるフェイルオーバ時間の短縮について説明するための図である。ここで、図３を用いて従来の一般的な冗長化システムと比較して、本実施例に係る冗長化システム１におけるフェイルオーバ時間がどれだけ短縮されているかについて説明する。
【００３２】
従来の一般的な冗長化システム１では、フェイルオーバが発生してもデータを継続して処理することができるように、データを記憶するハードディスク装置が、現用系の装置と待機系の装置の間で共有されていた。また、現用系の装置のネットワークインターフェース装置に割り当てられていたＩＰアドレスを待機系の装置へ割り当て直すことにより、処理要求の振分先の切替が実現されていた。
【００３３】
このような従来の一般的な冗長化システムにおいては、図３に示すように、現用系の装置に障害が発生してから業務再開までに、「ノードダウン判定」、「状態遷移事前処理」、「ディスク切替」、「ネットワーク切替」、「ファイルシステムリカバリ」、「データベースリカバリ」といった工程が必要であった。
【００３４】
「ノードダウン判定」は、現用系の装置の障害を検出する工程である。「状態遷移事前処理」は、後段の「ディスク切替」や「ネットワーク切替」においてハードディスク装置やネットワークインターフェース装置を切り替えるために必要な前処理工程である。「ディスク切替」は、現用系の装置に接続されていたハードディスク装置を待機系の装置へ接続し直す工程である。
【００３５】
「ネットワーク切替」は、現用系の装置のネットワークインターフェース装置に割り当てられていたＩＰアドレスを待機系の装置へ割り当て直す工程である。この工程では、ＩＰアドレスとＭＡＣアドレスの対応が変化するため、冗長化システム向けのパケットを中継するスイッチングハブ等の経路学習情報の再設定も必要となる。「ファイルシステムリカバリ」は、ハードディスク装置の切替後に、現用系の装置に障害によって正常に更新されていなかったファイルを回復させる工程であり、「データベースリカバリ」は、現用系の装置に障害によって正常に更新されていなかったデータベースを回復させる工程である。
【００３６】
一方、本実施例に係る冗長化システム１は、既に説明したように、現用系の装置と待機系の装置で同じ処理を実行し、それぞれの装置においてデータが常に最新になるように運用される。このため、本実施例に係る冗長化システムにおいては、フェイルオーバ時に、「状態遷移事前処理」、「ディスク切替」、「ファイルシステムリカバリ」、「データベースリカバリ」の工程は必要がない。このため、図３に示すように、「ノードダウン判定」と「ネットワーク切替」という２つの工程のみでフェイルオーバが実行される。
【００３７】
また、本実施例に係る冗長化システム１においては、処理要求の振分先の切替は、振分装置２０によって実現され、ＩＰアドレスの再割当は不要となっている。このため、ＩＰアドレスとＭＡＣアドレスの対応が変化せず、冗長化システム向けのパケットを中継するスイッチングハブ等の経路学習情報の再設定も必要ないため、「ネットワーク切替」の工程の所要時間が短縮されている。
【００３８】
図４は、冗長化システム１における冗長化組込の概要を示す図である。同図に示すように、サーバ装置３０ａに障害が発生してサーバ装置３０ｂが新たに現用系となった後に、サーバ装置３０ａに代えてサーバ装置３０ｃが冗長化システム１に組み込まれると、サーバ装置３０ｂは、冗長化組込を実行してサーバ装置３０ｃを待機系として稼動させる。
【００３９】
具体的には、サーバ装置３０ｂは、処理要求の振分を停止するように振分装置２０に指示し（ステップＳ３１）、新たな処理要求が受け付けられない状態で、自身が記憶しているデータをサーバ装置３０ｃへ転送し、両者が記憶しているデータを一致させる（ステップＳ３２）。その後、サーバ装置３０ｂは、処理要求の振分を再開するように振分装置２０に指示するとともに、サーバ装置３０ｃとの間でのデータ同期を開始する（ステップＳ３３）。
【００４０】
このように、本実施例に係る冗長化システム１においては、冗長化組込も高速に実行される。なお、処理要求の振分停止中に端末装置１０から送信された処理要求は振分装置２０において破棄されるが、応答のタイムアウトを検出した端末装置１０が、冗長化システム１へ処理要求を再送信することにより、処理が再実行される。
【００４１】
図５は、本実施例に係る冗長化システム１のネットワーク構成を示す図である。次に、図５を用いて本実施例に係る冗長化システム１のネットワーク構成と生存監視の仕組みについて説明する。同図に示すように、本実施例に係る冗長化システム１には、端末装置１０と、振分装置２０と、サーバ装置３０ａと、サーバ装置３０ｂとを接続するネットワーク２と、サーバ装置３０ａおよびサーバ装置３０ｂを接続するネットワーク３と、振分装置２０と、サーバ装置３０ａと、サーバ装置３０ｂとを接続するネットワーク４とが存在する。
【００４２】
そして、サーバ装置３０ａは、ネットワークインターフェース装置であるＮＩＣ（Network Interface Card）＃１１によってネットワーク２に接続され、ＮＩＣ＃１２によってネットワーク４に接続され、ＮＩＣ＃１３によってネットワーク３に接続されている。同様に、サーバ装置３０ｂは、ＮＩＣ＃２１によってネットワーク２に接続され、ＮＩＣ＃２２によってネットワーク４に接続され、ＮＩＣ＃２３によってネットワーク３に接続されている。また、振分装置２０は、ＮＩＣ＃３１によってネットワーク２に接続され、ＮＩＣ＃３２によってネットワーク４に接続されている。
【００４３】
ネットワーク２は、端末装置１０等からの処理要求に対応するための業務用ネットワークである。ネットワーク３は、サーバ装置３０ａとサーバ装置３０ｂの間でデータ同期を行うためのネットワークである。ネットワーク４は、冗長化システム１内で制御用の各種メッセージを交換するための制御用ネットワークである。
【００４４】
このようなネットワークにおいて、端末装置１０は、冗長化システム１へ処理要求を送信する場合、振分装置２０のＮＩＣ＃３１に割り当てられているＩＰアドレスを送信先アドレスとして指定する。そして、振分装置２０は、ＮＩＣ＃３１において処理要求を受信すると、現用系であるサーバ装置３０ａへその処理要求を転送する。転送に際して、振分装置２０は、処理要求を伝送するパケットの送信先ＩＰアドレスおよび送信先ＭＡＣアドレスをサーバ装置３０ａのＮＩＣ＃１１のものに書き換える。
【００４５】
また、サーバ装置３０ａに障害が発生し、サーバ装置３０ｂが現用系となっている場合は、振分装置２０は、ＮＩＣ＃３１において受信した処理要求をサーバ装置３０ｂへ転送する。転送に際して、振分装置２０は、処理要求を伝送するパケットの送信先ＩＰアドレスおよび送信先ＭＡＣアドレスをサーバ装置３０ｂのＮＩＣ＃２１のものに書き換える。
【００４６】
図６は、本実施例に係る冗長化システム１における生存監視用メッセージの伝送経路を示す図である。同図に示すように、待機系であるサーバ装置３０ｂは、３つの経路を通じて生存監視用メッセージのやり取りを定期的に行い、現用系であるサーバ装置３０ａの生存を確認する。
【００４７】
第１の経路である経路Ｒ１は、ネットワーク３を経由してサーバ装置３０ａと生存監視用メッセージを直接やり取りする経路である。この経路Ｒ１を通じてサーバ装置３０ａへ送信した生存監視用メッセージに対して応答がなかった場合、もしくは、生存監視用メッセージの送信そのものが失敗した場合、サーバ装置３０ａに障害が発生している、あるいは、ネットワーク３に障害が発生しているものと想定される。なお、この経路を通じてやり取りされる生存確認メッセージは、例えば、ＰＩＮＧである。
【００４８】
第２の経路である経路Ｒ２は、端末装置１０等の端末からの処理要求が正常に処理されているか否かを確認するための経路である。経路Ｒ２は、サーバ装置３０ｂからネットワーク４を経由して振分装置２０へ達する経路ｒ１１と、振分装置２０からネットワーク２を経由してサーバ装置３０ａへ達する経路ｒ１２と、サーバ装置３０ａからネットワーク３を経由してサーバ装置３０ｂへ達する経路ｒ１３と、サーバ装置３０ｂからネットワーク３を経由してサーバ装置３０ａへ達する経路ｒ１４と、サーバ装置３０ａからネットワーク２を経由して振分装置２０へ達する経路ｒ１５と、振分装置２０からネットワーク２を経由してサーバ装置３０ｂへ達する経路ｒ１６の組合せからなる。
【００４９】
サーバ装置３０ｂは、この経路Ｒ２を通じてダミーの処理要求を送信し、正常に応答が返されるかを確認する。応答がなかった場合、もしくは、生存監視用メッセージの送信そのものが失敗した場合、サーバ装置３０ａに障害が発生している、サーバ装置３０ａと振分装置２０の間の経路に障害が発生している、あるいは、サーバ装置３０ｂと振分装置２０の間の経路に障害が発生しているものと想定される。なお、ネットワーク３に障害が発生している場合、サーバ装置３０ａによってデータ同期が停止されるため、経路ｒ１３およびｒ１４は使用されない。
【００５０】
第３の経路である経路Ｒ３は、ネットワーク４を経由して振分装置２０と生存監視用メッセージをやり取りする経路である。この経路Ｒ３を通じて生存確認を行うことにより、経路Ｒ２を通じて送信した生存監視用メッセージに対して応答がなかった場合に、障害の発生箇所がサーバ装置３０ｂと振分装置２０の間であるのか否かを判定することが可能になる。なお、この経路を通じてやり取りされる生存確認メッセージは、例えば、ＰＩＮＧである。
【００５１】
図７は、この３つの経路を通じて生存監視用メッセージのやり取りを行った結果、現用系のサーバ装置３０ａが生存しているか否かを判定するために、待機系であるサーバ装置３０ｂが用いる生存判定論理の一例である。同図に示すように、経路Ｒ１と経路Ｒ２がいずれも正常（ｕｐ）であった場合、サーバ装置３０ｂは、経路Ｒ３の結果に関わらず、サーバ装置３０ａが正常に稼動していると判定する。
【００５２】
経路Ｒ１は正常（ｕｐ）であったが、経路Ｒ２が異常（ｄｏｗｎ）であった場合、サーバ装置３０ｂは、経路Ｒ３の結果によってサーバ装置３０ａが生存しているか否かを判定する。すなわち、経路Ｒ３が正常（ｕｐ）であれば、端末装置１０からの処理要求も正常に処理されていないと想定されるので、サーバ装置３０ａがダウンしていると判定する。そして、経路Ｒ３が異常（ｄｏｗｎ）であれば、端末装置１０からの処理要求は正常に処理されていると想定されるので、サーバ装置３０ａが正常に稼動していると判定する。
【００５３】
また、経路Ｒ１が異常（ｄｏｗｎ）であっても、経路Ｒ２が正常（ｕｐ）であれば、ネットワーク３の障害によりデータ同期は行われていないものの、端末装置１０からの処理要求は正常に処理されていると想定されるので、サーバ装置３０ｂは、サーバ装置３０ａが正常に稼動していると判定する。経路Ｒ１と経路Ｒ２がいずれも異常（ｄｏｗｎ）であった場合、サーバ装置３０ｂは、サーバ装置３０ａがダウンしていると判定する。
【００５４】
ネットワーク３の障害によりデータ同期が停止されているが、サーバ装置３０ａが稼動し続けている場合、現用系と待機系でデータが一致していない状態となっている可能性があるため、フェイルオーバの発生をできるだけ回避したい。経路Ｒ１のみを通じてサーバ装置３０ａの生存監視を行うと、生存監視用メッセージに応答がなかった場合に、サーバ装置３０ａに異常が発生しているのか、経路Ｒ１に異常があってデータ同期は停止しているもののサーバ装置３０ａは稼動し続けているのかを判別できないため、サーバ装置３０ｂは、フェイルオーバを実行せざるを得ない。経路Ｒ２も通じてサーバ装置３０ａの生存監視を行うことにより、不適切なフェイルオーバの発生を回避することができる。
【００５５】
次に、図１に示したサーバ装置３０ａおよび３０ｂと、振分装置２０の構成について説明する。なお、サーバ装置３０ａおよび３０ｂは、同様の構成を有しているので、サーバ装置３０ｂを例にして構成の説明を行うこととする。
【００５６】
図８は、サーバ装置３０ｂの構成を示す機能ブロック図である。同図に示すように、サーバ装置３０ｂは、ネットワークインターフェース部３１０と、記憶部３２０と、制御部３３０とを有する。ネットワークインターフェース部３１０は、ネットワークを通じて各種情報をやり取りするためのインターフェース装置であり、ＮＩＣ＃２１〜＃２３に相当する。
【００５７】
記憶部３２０は、各種情報を記憶する記憶装置であり、情報処理データ３２１と、ネットワーク構成情報３２２と、冗長構成設定情報３２３等を記憶する。情報処理データ３２１は、端末装置１０等からの処理要求に応じて参照／更新されるデータである。ネットワーク構成情報３２２は、各種装置に割り当てられているＩＰアドレス等を保持する。冗長構成設定情報３２３は、当該の装置が現用系であるか待機系であるかを示すフラグや、生存監視用メッセージの送信先や送信頻度等を保持する。
【００５８】
制御部３３０は、サーバ装置３０ｂを全体制御する制御部であり、情報処理実行部３３１と、冗長構成管理部３３２とを有する。情報処理実行部３３１は、端末装置１０等から送信された処理要求を実行する処理部である。冗長構成管理部３３２は、冗長構成を管理するための各種処理を実行する処理部であり、同期制御部３３２ａと、生存監視部３３２ｂと、振分装置制御部３３２ｃとを有する。
【００５９】
同期制御部３３２ａは、図１に示したデータ同期を実現するための制御を行う制御部である。具体的には、同期制御部３３２ａは、当該の装置が現用系である場合には、ネットワークインターフェース部３１０において受信された処理要求に対応する処理を情報処理実行部３３１に実行させるとともに、処理要求を待機系の装置へ転送して同様の処理を実行させる。そして、情報処理実行部３３１から応答された処理結果と、待機系の装置から応答された処理結果を照合し、一致していれば、その処理結果を処理要求の送信元へ送信させ、一致していなければ、所定のエラー処理を実行する。また、待機系の装置からの応答が所定時間を越えてもなければ、待機系の装置がダウンしたものとみなして、データ同期を停止する。
【００６０】
そして、同期制御部３３２ａは、当該の装置が待機系である場合には、現用系の装置から転送された処理要求に対応する処理を情報処理実行部３３１に実行させ、その処理結果を現用系の装置へ応答する。
【００６１】
生存監視部３３２ｂは、冗長構成設定情報３２３の設定に従って図６に示した経路で生存確認用メッセージのやり取りを行い、他系の装置の生存判定を行う処理部である。生存監視部３３２ｂは、図７に示した生存判定論理に従って生存判定を行い、現用系の装置がダウンしたと判定した場合には、処理要求の振分先切替を実行させるように振分装置制御部３３２ｃに指示する。
【００６２】
振分装置制御部３３２ｃは、生存監視部３３２ｂの指示に従って、現用系の装置への処理要求の振分を停止し、待機系の装置への処理要求の振分を開始するように振分装置２０へ指示を送る制御部である。現用系の装置への処理要求の振分の停止は、例えば、
ｓｔｏｐ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｔｏ  現用系の装置のＩＰアドレス
のようなコマンドを振分装置２０に投入することによって実現される。また、待機系の装置への処理要求の振分の開始は、例えば、
ｓｔａｒｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｔｏ  待機系の装置のＩＰアドレス
のようなコマンドを振分装置２０に投入することによって実現される。
【００６３】
図９は、振分装置２０の構成を示す機能ブロック図である。同図に示すように、振分装置２０は、ネットワークインターフェース部２１０と、記憶部２２０と、制御部２３０とを有する。ネットワークインターフェース部２１０は、ネットワークを通じて各種情報をやり取りするためのインターフェース装置であり、ＮＩＣ＃３１および＃３２に相当する。
【００６４】
記憶部２２０は、各種情報を記憶する記憶装置であり、振分テーブル２２１等を記憶する。振分テーブル２２１は、処理要求の振分先を管理するテーブルである。
【００６５】
図１０は、振分テーブル２２１の一例である。同図に示すように、振分テーブル２２１は、振分先、ステータス、振分対象といった項目を有し、処理要求の振分先となる可能性のある装置毎にデータを保持するように構成されている。振分先は、処理要求の振分先となる可能性のある装置のＩＰアドレスもしくはホスト名が格納される項目である。ステータスは、当該のデータに対応する装置との間で通信が可能であるか否かを示す値が格納される項目である。振分対象は、当該のデータに対応する装置が処理要求の振分先であるか否かを示す値が格納される項目である。
【００６６】
図９の制御部２３０は、振分装置２０を全体制御する制御部であり、振分先監視部２３１と、振分先更新部２３２と、振分実行部２３３とを有する。振分先監視部２３１は、振分テーブル２２１に登録されている各装置との間で通信が可能であるか否かを定期的に確認し、その結果を振分テーブル２２１のステータスの項目に設定する。
【００６７】
図９の振分先更新部２３２は、サーバ装置３０ｂ等からの指示に従って、振分テーブル２２１の振分対象の項目の値を更新する。具体的には、振分先更新部２３２は、ある装置への処理要求の振分を停止するように指示されると、その装置に対応するデータの振分対象の項目に「Ｎｏ」を設定し、ある装置への処理要求の振分を開始するように指示されると、その装置に対応するデータの振分対象の項目に「Ｙｅｓ」を設定する。
【００６８】
図９の振分実行部２３３は、端末装置１０等から送信された処理要求を振分テーブル２２１に従って転送する。具体的には、振分実行部２３３は、端末装置１０等からの処理要求が受信されると、振分テーブル２２１を参照し、ステータスの項目に通信可能であることを示す値が設定されており、振分対象の項目に「Ｙｅｓ」が設定されているデータに対応する装置へその処理要求を転送する。
【００６９】
図１１は、データ同期処理の処理手順を示すフローチャートである。次に、図１１を用いて図１に示した冗長化システム１の処理手順について説明する。同図に示すように、現用系の装置は、端末装置１０等からの処理要求を待ち受け（ステップＳ１０１）、処理要求が受信されると（ステップＳ１０２）、情報処理実行部３３１がその処理要求に対応する処理を実行する（ステップＳ１０３）。
【００７０】
ここで、冗長構成が形成されていない場合、すなわち、待機系の装置が切り離されている場合には（ステップＳ１０４否定）、同期制御部３３２ａが、情報処理実行部３３１の処理結果を要求元へ応答し（ステップＳ１０９）、ステップＳ１０１から処理手順を再開させる。
【００７１】
冗長構成が形成されている場合、すなわち、待機系の装置が切り離されていない場合は（ステップＳ１０４肯定）、同期制御部３３２ａが、処理要求を待機系の装置へ転送し（ステップＳ１０５）、待機系の装置にて処理が終了し、処理結果が応答されるのを待ち受ける（ステップＳ１０６）。そして、処理結果が応答されたならば（ステップＳ１０７否定）、同期制御部３３２ａは、処理結果を要求元へ応答し（ステップＳ１０９）、ステップＳ１０１から処理手順を再開させる。なお、図示はしていないが、情報処理実行部３３１の処理結果と、待機系の装置から応答された処理結果とが一致しない場合は、同期制御部３３２ａは、所定のエラー処理を実行し、エラーが発生した旨を要求元へ応答する。
【００７２】
そして、処理要求を待機系の装置へ転送した後、一定時間経過しても処理結果が応答されない場合は（ステップＳ１０７肯定）、同期制御部３３２ａは、待機系の装置を切り離し（ステップＳ１０８）、情報処理実行部３３１の処理結果を要求元へ応答した後（ステップＳ１０９）、ステップＳ１０１から処理手順を再開させる。
【００７３】
一方、待機系の装置は、現用系の装置から処理要求が転送されるのを待ち受け（ステップＳ２０１）、転送された処理要求が受信されると（ステップＳ２０２）、情報処理実行部３３１がその処理要求に対応する処理を実行し、同期制御部３３２ａがその処理結果を現用系の装置へ応答する（ステップＳ２０３）。
【００７４】
図１２は、振分先切替処理の処理手順を示すフローチャートである。図６に示すように、待機系の装置の生存監視部３３２ｂは、複数の経路を通じて生存監視用メッセージを送信し（ステップＳ３０１）、応答を待ち受ける（ステップＳ３０２）。そして、現用系の装置の生存判定を行い（ステップＳ３０３）、生存していると判定した場合は（ステップＳ３０４肯定）、ステップＳ３０１から処理手順を再開させる。Ｓ３０３は、図６、図７に基づいて行われる処理である。
【００７５】
一方、現用系の装置がダウンしていると生存監視部３３２ｂが判定した場合は（ステップＳ３０４否定）、振分装置制御部３３２ｃが、現用系の装置への処理要求の振分を停止するように振分装置２０に指示し（ステップＳ３０５）、自装置が現用系として機能するように生存監視部３３２ｂが冗長構成設定情報３２３を更新し（ステップＳ３０６）、振分装置制御部３３２ｃが、自装置への処理要求の振分を開始するように振分装置２０に指示する（ステップＳ３０７）。そして、生存監視部３３２ｂは、ステップＳ３０１から処理手順を再開させる。Ｓ３０５およびＳ３０７は、図８に関する説明において示したコマンドに基づいて行われる処理である。
【００７６】
なお、図８および９に示したサーバ装置３０ｂおよび振分装置２０の構成は、本発明の要旨を逸脱しない範囲で種々に変更することができる。例えば、サーバ装置３０ｂおよび振分装置２０の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、サーバ装置３０ｂおよび振分装置２０と同等の機能を実現することもできる。以下に、サーバ装置３０ｂの冗長構成管理部３３２の機能をソフトウェアとして実装した冗長構成管理プログラム１０７１を実行するコンピュータの一例を示す。
【００７７】
図１３は、冗長構成管理プログラム１０７１を実行するコンピュータ１０００を示す機能ブロック図である。このコンピュータ１０００は、各種演算処理を実行するＣＰＵ（Central Processing Unit）１０１０と、ユーザからのデータの入力を受け付ける入力装置１０２０と、各種情報を表示するモニタ１０３０と、記録媒体からプログラム等を読み取る媒体読取り装置１０４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１０５０と、各種情報を一時記憶するＲＡＭ（Random Access Memory）１０６０と、ハードディスク装置１０７０とをバス１０８０で接続して構成される。
【００７８】
そして、ハードディスク装置１０７０には、図８に示した冗長構成管理部３３２と同様の機能を有する冗長構成管理プログラム１０７１と、図８に示した記憶部３２０に記憶される各種データに対応する冗長構成管理用データ１０７２とが記憶される。なお、冗長構成管理用データ１０７２を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
【００７９】
そして、ＣＰＵ１０１０が冗長構成管理プログラム１０７１をハードディスク装置１０７０から読み出してＲＡＭ１０６０に展開することにより、冗長構成管理プログラム１０７１は、冗長構成管理プロセス１０６１として機能するようになる。そして、冗長構成管理プロセス１０６１は、冗長構成管理用データ１０７２から読み出した情報等を適宜ＲＡＭ１０６０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【００８０】
なお、上記の冗長構成管理プログラム１０７１は、必ずしもハードディスク装置１０７０に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておき、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【００８１】
上述してきたように、本実施例では、現用系の情報処理装置と待機系の情報処理装置において同様のデータ処理を実行することで双方のデータを同期させ、現用系の情報処理装置に障害が発生した場合には、振分装置の振分先を変更するだけで現用系と待機系の切替を実行できるように構成したので、現用系と待機系の切替を短時間で実現できる。また、高価な装置を用いる必要がないので、低コストで導入可能なシステムを実現することができる。
【００８２】
なお、上記の実施例では、現用系の情報処理装置と待機系の情報処理装置がそれぞれ１台ずつ存在する冗長化システムの例を示したが、現用系の情報処理装置と待機系の情報処理装置が何台であっても本発明を有効に適用することができる。また、振分装置が冗長構成となっている場合であっても本発明を有効に適用することができる。
【００８３】
（付記１）要求元から依頼されたデータ処理を実行する第１の情報処理装置と、前記第１の情報処理装置がデータ処理を実行できなくなった場合に、前記第１の情報処理装置に代わって、前記要求元から依頼されたデータ処理を実行する第２の情報処理装置と、前記要求元からのデータ処理要求を前記第１の情報処理装置もしくは前記第２の情報処理装置へ振り分ける振分装置とを有する冗長化システムであって、
前記振分装置は、
前記第２の情報処理装置より振り分け先切り替えの要求があるまで、要求元から依頼されたデータを前記第１の情報処理装置へ転送すると共に、前記第２の情報処理装置より振り分け先切り替えの要求があると、要求元から依頼されたデータを前記第２の情報処理装置へ転送する処理を行い、
前記第１の情報処理装置は、
前記振分装置によって振り分けられた前記データ処理要求に対応するデータ処理を実行する情報処理実行手段と、
データ処理要求の処理を行うとともに、該データ処理を前記第２の情報処理装置へ転送し、その後前記第２の情報処理装置より処理完了通知を受信すると、該処理を完了とする同期制御手段とを備え、
前記第２の情報処理装置は、
前記第１の情報処理装置との通信状態を監視し、前記第１の情報処理手段がデータ処理を実行できる状態にあるか否かを監視する生存監視手段と、
前記生存監視手段によって、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定された場合に、前記要求元からのデータ処理要求が前記第１の情報処理装置ではなく、当該の第２の情報処理装置へ振り分けられるように前記振分装置を制御する振分装置制御手段とを備えたことを特徴とする冗長化システム。
【００８４】
（付記２）前記同期制御手段は、前記情報処理実行手段によるデータ処理と、前記第２の情報処理装置におけるデータ処理とが完了した後に、前記要求元へ処理結果を応答することを特徴とする付記１に記載の冗長化システム。
【００８５】
（付記３）前記生存監視手段は、前記第１の情報処理装置と直接接続される第１の経路と、前記振分装置を経由して前記第１の情報処理装置と接続される第２の経路とを通じて前記第１の情報処理装置を監視し、いずれの経路にも異常がある場合に、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定することを特徴とする付記１または２に記載の冗長化システム。
【００８６】
（付記４）前記生存監視手段は、前記第１の経路に異常があり、前記第２の経路に異常がない場合に、前記第１の情報処理装置がデータ処理を実行できる状態にあると判定することを特徴とする付記３に記載の冗長化システム。
【００８７】
（付記５）前記生存監視手段は、前記第２の経路と異なる第３の経路によって前記振分装置を監視し、前記第１の経路に異常がなく、前記第２の経路に異常がある場合に、前記第３の経路に異常がなければ、前記第１の情報処理装置がデータ処理を実行できる状態にないと判定することを特徴とする付記３または４に記載の冗長化システム。
【００８８】
（付記６）前記生存監視手段は、前記第１の経路に異常がなく、前記第２の経路に異常がある場合に、前記第３の経路に異常があれば、前記第１の情報処理装置がデータ処理を実行できる状態にあると判定することを特徴とする付記５に記載の冗長化システム。
【産業上の利用可能性】
【００８９】
以上のように、本発明に係る冗長化システムは、現用系と待機系とからなる冗長化システムに有用であり、特に、現用系と待機系の切替を短時間で実現でき、低コストで導入可能な冗長化システムに適している。
【図面の簡単な説明】
【００９０】
【図１】本実施例に係る冗長化システムにおけるデータ同期の概要を示す図である。
【図２】本実施例に係る冗長化システムにおける振分先切替の概要を示す図である。
【図３】本実施例に係る冗長化システムにおけるフェイルオーバ時間の短縮について説明するための図である。
【図４】本実施例に係る冗長化システムにおける冗長化組込の概要を示す図である。
【図５】本実施例に係る冗長化システムのネットワーク構成を示す図である。
【図６】本実施例に係る冗長化システムにおける生存監視用メッセージの伝送経路を示す図である。
【図７】生存判定論理の一例を示す図である。
【図８】サーバ装置の構成を示す機能ブロック図である。
【図９】振分装置の構成を示す機能ブロック図である。
【図１０】振分テーブルの一例を示す図である。
【図１１】データ同期処理の処理手順を示すフローチャートである。
【図１２】振分先切替処理の処理手順を示すフローチャートである。
【図１３】冗長構成管理プログラムを実行するコンピュータを示す機能ブロック図である。
【符号の説明】
【００９１】
１    冗長化システム
２〜４  ネットワーク
１０    端末装置
２０    振分装置
２１０    ネットワークインターフェース部
２２０    記憶部
２２１    振分テーブル
２３０    制御部
２３１    振分先監視部
２３２    振分先更新部
２３３    振分実行部
３０ａ〜３０ｃ  サーバ装置
３１０    ネットワークインターフェース部
３２０    記憶部
３２１    情報処理データ
３２２    ネットワーク構成情報
３２３    冗長構成設定情報
３３０    制御部
３３１    情報処理実行部
３３２    冗長構成管理部
３３２ａ  同期制御部
３３２ｂ  生存監視部
３３２ｃ  振分装置制御部
１０００    コンピュータ
１０１０    ＣＰＵ
１０２０    入力装置
１０３０    モニタ
１０４０    媒体読取り装置
１０５０    ネットワークインターフェース装置
１０６０    ＲＡＭ
１０６１    冗長構成管理プロセス
１０７０    ハードディスク装置
１０７１    冗長構成管理プログラム
１０７２    冗長構成管理用データ
１０８０    バス
【図１】
0004806382.tif 000002
【図２】
0004806382.tif 000003
【図３】
0004806382.tif 000004
【図４】
0004806382.tif 000005
【図５】
0004806382.tif 000006
【図６】
0004806382.tif 000007
【図７】
0004806382.tif 000008
【図８】
0004806382.tif 000009
【図９】
0004806382.tif 000010
【図１０】
0004806382.tif 000011
【図１１】
0004806382.tif 000012
【図１２】
0004806382.tif 000013
【図１３】
0004806382.tif 000014