(57)【要約】【課題】サービス提供の停止を抑制しつつ迅速に処理を引き継ぐことで、システムの信頼性の向上を図ると共に、ユーザの利便性の向上を図る。【解決手段】ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムにおけるフェイルオーバ方法であって、コンピュータと通信接続中の特定の情報処理装置が、コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信し、この送信された接続状態情報を他の情報処理装置が受信して記憶する接続状態情報複製工程と、他の情報処理装置が、特定の情報処理装置の状態に応じて、記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する接続再現工程と、を有する。【選択図】図１
2008242685.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムにおけるフェイルオーバ方法であって、
前記コンピュータと通信接続中の特定の前記情報処理装置が、前記コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の前記情報処理装置に送信し、この送信された前記接続状態情報を前記他の情報処理装置が受信して記憶する接続状態情報複製工程と、
前記他の情報処理装置が、前記特定の情報処理装置の状態に応じて、記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する接続再現工程と、
を有することを特徴とするフェイルオーバ方法。
【請求項２】
前記接続状態情報複製工程は、前記特定の情報処理装置と前記コンピュータとの所定の送受信処理が正常に実行されたタイミングで前記他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項１記載のフェイルオーバ方法。
【請求項３】
前記接続状態情報複製工程は、前記特定の情報処理装置と前記コンピュータとの間でＡＣＫ信号が送受信されるタイミングで前記他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項２記載のフェイルオーバ方法。
【請求項４】
前記接続状態情報複製工程は、前記特定の情報処理装置が前記コンピュータに対してＡＣＫ信号を送信するタイミングで前記他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項３記載のフェイルオーバ方法。
【請求項５】
前記接続状態情報複製工程は、前記特定の情報処理装置が複数の他の情報処理装置に対して前記接続状態情報を送信し、この送信された接続状態情報を前記複数の他の情報処理装置がそれぞれ受信して記憶し、
前記接続再現工程は、前記接続状態情報を記憶した前記複数の他の情報処理装置のうちの１つが前記コンピュータとの接続を再現する、
ことを特徴とするフェイルオーバ方法。
【請求項６】
前記接続状態情報は、前記コンピュータとの通信接続状態を特定する情報と、通信接続時に作動しているプロセスが扱っている情報と、を含む、
ことを特徴とする請求項１，２，３，４又は５記載のフェイルオーバ方法。
【請求項７】
前記接続再現工程は、前記他の情報処理装置が、前記特定の情報処理装置に障害が生じたことを検出したときに、記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する、
ことを特徴とする請求項１，２，３，４，５又は６記載のフェイルオーバ方法。
【請求項８】
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムであって、
前記コンピュータと通信接続中の特定の前記情報処理装置が、前記コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の前記情報処理装置に送信する接続状態情報送信手段を備え、
他の前記情報処理装置が、前記特定の情報処理装置から送信された前記接続状態情報を受信して記憶する接続状態情報受信手段と、前記特定の情報処理装置の状態に応じて記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する接続再現手段と、を備えた、
ことを特徴とするクラスタシステム。
【請求項９】
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムを構成する情報処理装置であって、
前記コンピュータと通信接続中に、当該コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信する接続状態情報送信手段と、
前記コンピュータと通信接続中ではない場合に、前記コンピュータと通信接続中の他の情報処理装置に装備された前記接続状態情報送信手段から送信された前記接続状態情報を受信して記憶する接続状態情報受信手段と、前記コンピュータと通信接続中の他の情報処理装置の状態に応じて記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する接続再現手段と、
を備えたことを特徴とする情報処理装置。
【請求項１０】
前記接続状態情報送信手段は、前記コンピュータとの送受信処理が正常に実行されたタイミングで他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記接続状態情報送信手段は、前記コンピュータとの間でＡＣＫ信号が送受信されるタイミングで他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
前記接続状態情報送信手段は、前記コンピュータに対してＡＣＫ信号を送信するタイミングで他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項１１記載の情報処理装置。
【請求項１３】
前記接続状態情報送信手段は、複数の他の情報処理装置に対して前記接続状態情報を送信する、
ことを特徴とする請求項９，１０，１１又は１２記載の情報処理装置。
【請求項１４】
前記接続状態情報は、前記コンピュータとの接続状態を特定する情報と、接続時に作動しているプロセスが扱っている情報と、を含む、
ことを特徴とする請求項９，１０，１１，１２又は１３記載の情報処理装置。
【請求項１５】
前記接続再現手段は、前記コンピュータと通信接続中の他の情報処理装置の状態を監視してこの情報処理装置に障害が生じたことを検出したときに、記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する、
ことを特徴とする請求項９，１０，１１，１２，１３又は１４記載の情報処理装置。
【請求項１６】
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムを構成する情報処理装置に、
前記コンピュータと通信接続中に、当該コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信する接続状態情報送信手段と、
前記コンピュータと通信接続中ではない場合に、前記コンピュータと通信接続中の他の情報処理装置に装備された前記接続状態情報送信手段から送信された前記接続状態情報を受信して記憶する接続状態情報受信手段と、前記コンピュータと通信接続中の他の情報処理装置の状態に応じて記憶している前記接続状態情報に基づいて前記コンピュータとの接続状態を再現する接続再現手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェイルオーバ方法にかかり、特に、クラスタシステムを構成しクライアント端末に接続された情報処理装置を切り替えるフェイルオーバ方法に関する。
【背景技術】
【０００２】
コンピュータ及びネットワークシステムの発達に伴い、ネットワーク上に設置されたサーバコンピュータからネットワークを介した種々の情報サービスが提供されている。そして、このようなネットワークを介した情報システムは、今や社会基盤とも言えるものであり、これを支えるハードウェアとソフトウェアには、高い信頼性が要求されている。このため、近年では、仮に、サーバに障害が発生した場合であっても、他のサーバが処理を引き継ぐよう構成されている。このような複数のサーバコンピュータなどの情報処理装置が相互に状態を監視して処理を代替する機能をフェイルオーバ機能と呼ぶ。そして、このフェイオーバー機能には、できる限り短時間のうちに障害が発生したサーバの処理を引き継いで代替処理を再開することができよう、保守容易性が求められている。
【０００３】
【特許文献１】特開２００５−１８２７８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、上述したようにネットワーク上でのサービスを提供するコンピュータシステムにおいてフェイルオーバを実行する場合には、サービスを提供していたサーバから他の代替サーバに引き継ぐ間に、一時的にサービスを停止しなければならない、という問題があった。例えば、ファイル共有サービスを提供するシステムにおいて、ネットワーク接続にCIFSプロトコルを用いている場合には、TCPコネクションが切断されると、それまでの状態を捨てて再接続を行う必要があり、この再接続に所定の時間を要していた。
【０００５】
ここで、特許文献１には、主プロセッサがチェックポイント状態のデータをネットワーク接続型永続メモリユニットに記憶し、これをバックアッププロセスがチェックポイント状態を取得して、主プロセスの障害時に当該主プロセスの機能を実行する、というシステムが開示されている。
【０００６】
しかし、上記従来技術では、主プロセッサのチェックポイント状態のデータを、一旦、メモリユニットに記憶しているため、主プロセッサに障害が生じるなどバックアッププロセッサに迅速な処理の引継ぎが必要な場合であっても、チェックポイント状態のデータを取得する際に時間を要し、プロセスの再開の一時的な停止が生じうる、という問題があった。
【０００７】
また、チェックポイントの設定によっては、主プロセッサのプロセス内容が保障されずにバックアッププロセッサに引き継がれる場合も生じ、信頼性が低下しうる、という問題も生じうる。
【０００８】
さらには、予めプロセスを実行するアプリケーションに特別なチェックポイントを設定する必要があり、アプリケーション作成の手間が増大し、また、処理負担が増加する、という問題があった。
【０００９】
このため、本発明では、上記従来例の有する不都合を改善し、特に、サービス提供の停止を抑制しつつ迅速に処理を引き継ぐことで、システムの信頼性の向上を図ることができると共に、ユーザの利便性の向上を図ることができるフェイルオーバ方法を提供する、ことをその目的とする。
【課題を解決するための手段】
【００１０】
そこで、本発明の一形態では、
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムにおけるフェイルオーバ方法であって、
コンピュータと通信接続中の特定の情報処理装置が、コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信し、この送信された接続状態情報を他の情報処理装置が受信して記憶する接続状態情報複製工程と、
他の情報処理装置が、特定の情報処理装置の状態に応じて、記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する接続再現工程と、
を有することを特徴としている。
【００１１】
上記発明によると、まず、クラスタシステムにおいて、所定のコンピュータに特定の情報処理装置が接続されて、ある情報サービスが提供されている場合に、特定の情報処理装置はコンピュータとの接続状態を表す接続状態情報を他の情報処理装置に送信する。すると、他の情報処理装置は、送信された接続状態情報を受信して記憶しておく。その後、他の情報処理装置は、特定の情報処理装置に障害が発生するなどした場合には、当該特定の情報処理装置から取得して記憶している上記接続状態情報を用いて、コンピュータとの接続状態を再現する。これにより、コンピュータとの接続が他の情報処理装置に切り替えられ、情報サービスの提供が継続される。従って、サービスを提供する情報処理装置を迅速に切り替えることができ、サービス提供を停止することが抑制されるため、システムの信頼性の向上を図ることができると共に、ユーザの利便性の向上を図ることができる。
【００１２】
そして、上記接続状態情報複製工程は、特定の情報処理装置とコンピュータとの所定の送受信処理が正常に実行されたタイミングで他の情報処理装置に対して接続状態情報を送信する、ことを特徴としている。具体的に、接続状態情報複製工程は、特定の情報処理装置とコンピュータとの間でＡＣＫ信号が送受信されるタイミングで他の情報処理装置に対して接続状態情報を送信する、ことを特徴としており、特に、特定の情報処理装置がコンピュータに対してＡＣＫ信号を送信するタイミングで他の情報処理装置に対して接続状態情報を送信する、ことを特徴としている。
【００１３】
これにより、特定の情報処理装置が、コンピュータの送受信処理が正常に実行されたタイミング、例えば、ＡＣＫ信号の送受信のタイミングで、コンピュータとの接続状態を表す接続状態情報を他の情報処理装置に送信する。従って、特定の情報処理装置は、コンピュータとの相互間における送受信データが保障されたタイミングにおいて、そのときの接続状態情報を他の情報処理装置に送信して記憶させているため、その後に他の情報処理装置への切り替えが生じた場合であっても、データの欠損がなく処理を引き継ぐことができる。その結果、システムの信頼性の向上を図ることができると共に、ユーザの利便性の向上を図ることができる。また、通常、通信時に送受信されるＡＣＫ信号を接続状態情報の送信タイミングとして利用することで、特定の情報処理装置側のアプリケーションなど特別なチェックポイントを予め設定しておく必要がなく、アプリケーション作成コストを軽減し、また、情報処理装置による処理負担を抑制することができる。
【００１４】
また、上記接続状態情報複製工程は、特定の情報処理装置が複数の他の情報処理装置に対して接続状態情報を送信し、この送信された接続状態情報を複数の他の情報処理装置がそれぞれ受信して記憶し、上記接続再現工程は、接続状態情報を記憶した複数の他の情報処理装置のうちの１つがコンピュータとの接続を再現する、ことを特徴としている。これにより、コンピュータとの接続処理を引き継ぐことが可能な情報処理装置の台数が増え、システムの信頼性の向上を図ることができる。
【００１５】
なお、上記接続状態情報は、コンピュータとの通信接続状態を特定する情報と、通信接続時に作動しているプロセスが扱っている情報と、を含む、ことを特徴としている。
【００１６】
また、上記接続再現工程は、例えば、他の情報処理装置が、特定の情報処理装置に障害が生じたことを検出したときに、記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する、ことを特徴としている。
【００１７】
そして、本発明の他の形態は、
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムであって、
コンピュータと通信接続中の特定の情報処理装置が、コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信する接続状態情報送信手段を備え、
他の情報処理装置が、特定の情報処理装置から送信された接続状態情報を受信して記憶する接続状態情報受信手段と、特定の情報処理装置の状態に応じて記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する接続再現手段と、を備えた、ことを特徴としている。
【００１８】
さらに、本発明の他の形態は、
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムを構成する情報処理装置であって、
コンピュータと通信接続中に、当該コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信する接続状態情報送信手段と、
コンピュータと通信接続中ではない場合に、コンピュータと通信接続中の他の情報処理装置に装備された接続状態情報送信手段から送信された接続状態情報を受信して記憶する接続状態情報受信手段と、コンピュータと通信接続中の他の情報処理装置の状態に応じて記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する接続再現手段と、
を備えたことを特徴としている。
【００１９】
そして、上記接続状態情報送信手段は、コンピュータとの送受信処理が正常に実行されたタイミング、例えば、コンピュータとの間でＡＣＫ信号が送受信されるタイミング、特に、コンピュータに対してＡＣＫ信号を送信するタイミングで、他の情報処理装置に対して接続状態情報を送信する、ことを特徴としている。
【００２０】
また、上記接続状態情報送信手段は、複数の他の情報処理装置に対して接続状態情報を送信する、ことを特徴としている。なお、上記接続状態情報は、コンピュータとの接続状態を特定する情報と、接続時に作動しているプロセスが扱っている情報と、を含む、ことを特徴としている。
【００２１】
また、接続再現手段は、コンピュータと通信接続中の他の情報処理装置の状態を監視してこの情報処理装置に障害が生じたことを検出したときに、記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する、ことを特徴としている。
【００２２】
さらに、本発明の他の形態であるプログラムは、
ネットワークを介して接続された所定のコンピュータに対して同一の情報サービスを提供可能な複数の情報処理装置を備えたクラスタシステムを構成する情報処理装置に、
コンピュータと通信接続中に、当該コンピュータとの接続状態を他の情報処理装置にて再現するために必要な情報である接続状態情報を他の情報処理装置に送信する接続状態情報送信手段と、
コンピュータと通信接続中ではない場合に、コンピュータと通信接続中の他の情報処理装置に装備された接続状態情報送信手段から送信された接続状態情報を受信して記憶する接続状態情報受信手段と、コンピュータと通信接続中の他の情報処理装置の状態に応じて記憶している接続状態情報に基づいてコンピュータとの接続状態を再現する接続再現手段と、
を実現させる、ことを特徴としている。
【００２３】
上述した構成のシステム、情報処理装置、プログラムの発明であっても、上記フェイルオーバ方法と同様に作用するため、上述した本発明の目的を達成することができる。
【発明の効果】
【００２４】
本発明は、以上のように構成され機能するので、これによると、クラスタシステムにおいて、クライアントのコンピュータに対してサービスを提供する情報処理装置を迅速に切り替えることができ、サービス提供を停止することが抑制されるため、システムの信頼性の向上を図ることができると共に、ユーザの利便性の向上を図ることができる、という従来にない優れた効果を有する。
【発明を実施するための最良の形態】
【００２５】
本発明では、サービスの提供を受けるクライアント端末に接続された複数の情報処理装置を備えたクラスタシステムにおいて、クライアント端末と通信中の情報処理装置を、その接続状態を維持したまま他の情報処理装置に迅速に切り替えることができる、という点に特徴を有する。以下、実施例にて、クライアント端末にネットワークストレージサービスを提供するクラスタシステムを一例に挙げて、詳細な構成及び動作を説明する。但し、本発明の特徴となるフェイルオーバ機能は、いかなる情報サービスを提供するクラスタシステムに利用されてもよく、例えば、Ｗｅｂサービスを提供するシステムに利用されてもよい。
【実施例１】
【００２６】
本発明の第１の実施例を、図１乃至図９を参照して説明する。図１は、クラスタシステムの構成を示すブロック図であり、図２は、そのうちのノードの構成を示す機能ブロック図である。図３は、接続状態情報のデータ構造の一例を示す図である。図４は、クラスタシステムにおけるフェイルオーバの動作を示すシーケンス図であり、図５乃至図６は、ノードの動作を示すフローチャートである。図７乃至図９は、クラスタシステムの動作を示す説明図である。
【００２７】
［構成］
図１に、本実施例におけるクラスタシステムの全体構成を示す。この図に示すように、本実施例におけるクラスタシステムは、ストレージ装置４と、このストレージ装置４にＳＡＮ４０（ストレージエリアネットワーク）を介して接続された複数のノード１，２，３（情報処理装置）と、を備えている。そして、各ノード１，２，３にはネットワークを介してクライアント端末５（コンピュータ）が接続されており、このクライアント端末５にストレージ装置４に対するデータの共有サービス、つまり、ストレージサービスを提供するよう、クラスタシステムは構成されている。なお、クラスタシステムを構成するノード１，２，３は、少なくとも２台装備されていればよく、設置台数は任意である。
【００２８】
そして、各ノード１，２，３は、サーバコンピュータにて構成されており、クライアント端末５とストレージ装置４とを接続する中継点として機能する。つまり、ノード１，２，３は、そのうちの１台がクライアント端末５とＴＣＰ／ＩＰを基盤としたＣＩＦＳプロトコルにて接続し、ストレージ装置４に対するファイル共有サービスを提供する機能を有する。そして、接続しているノードに障害などが発生してクライアント端末５との接続を維持できなくなると、他のノードがクライアント端末５との接続を引き継いでサービスを継続して提供するフェイルオーバ機能を有する。以下、ノード１，２，３の構成について説明するが、全ては同じ構成を有しているため、符号１に示すノードを例に挙げて説明する。
【００２９】
図２に示すように、ノード１には、演算装置であるＣＰＵ１Ａと、記憶装置であるメモリ１Ｂと、が装備されている。そして、ＣＰＵ１Ａには、プログラムが組み込まれることにより、通信処理部１１と、接続状態コピー処理部１２と、接続再現処理部１３と、が構築されている。また、メモリ１Ｂには、接続状態情報が記憶される接続状態情報記憶部１４が形成されている。以下、さらに詳述する。
【００３０】
通信処理部１１は、クライアント端末５とＴＣＰコネクションを利用してＣＩＦＳプロトコルにて接続する機能を有し、ストレージ装置４を共有可能とする。なお、これに伴い、クライアント端末５にも、ＣＩＦＳプロトコルにてノード１，２，３と接続する機能が装備されている。また、通信装置１１は、ストレージ装置４と接続するよう機能し、さらには、他のノード２，３とも接続するよう機能する。
【００３１】
接続状態コピー処理部１２（接続状態情報複製手段）は、上述したようにＣＩＦＳプロトコルにて通信接続中のクライアント端末５との接続状態を表す接続状態情報を抽出して、他のノードに送信する機能を有する。具体的に、接続状態情報は、図３に示すように、クライアント端末５との通信接続状態を特定するコネクション情報（例えば、送受信ＩＰアドレス、ポート番号、ＴＣＰのシーケンス番号、返却ＡＣＫ番号など）と、通信接続時に作動しているプロセスが扱っている情報（例えば、プロセスが持つデータ（コンテキスト）、プログラムカウンタなど）と、を含んでいる情報である。そして、この接続状態情報は、ノード１とクライアント端末５との接続状態を、他のノード２，３とクライアント端末５との間で再現するために必要な情報である。つまり、後述するように、他のノード２，３は、上記接続状態情報を得てこれを利用することで、クライアント端末５と通信しているノード１との接続状態を再現することができる。
【００３２】
そして、上記接続状態コピー処理部１２は、特に、通信中のクライアント端末５の送受信処理において、当該送受信処理が正常に実行されたタイミング、つまり、クライアント端末５のデータの送受信時にＴＣＰ／ＩＰプロトコルにてデータの送信先から送信元へ送られる肯定的な返事となる「ＡＣＫ信号」が送受信されるタイミングで、他のノード２，３に接続状態情報を送信するよう作動する。具体的に、本実施例では、クライアント端末５がノード１に対してデータを送信し、そのデータをノード１が正常に受信したことをクライアント端末５に通知するためにＡＣＬ信号を返送するが、このＡＣＫ信号の返送時に、ノード１が他のノード２，３に対して接続状態情報を送信する。なお、このとき、ノード１の接続状態コピー処理部１２は、ＲＤＭＡ（Remote Direct Memory Access）技術にて、他のノード２，３のメモリ（図示せず）に直接、接続状態情報を送信する。
【００３３】
また、接続状態コピー処理部１２は、ノードがクライアント端末５と通信接続中ではない場合には、他のノードから送信された上述した接続状態情報を受信して、メモリ１Ｂの接続状態情報記憶部１４に記憶する機能（接続状態情報受信手段）を有する。つまり、本実施例においては、他のノード２，３に装備された接続状態コピー処理部は、クライアント端末５と接続されているノード１の接続状態コピー処理部１２から送信された当該ノード１における接続状態情報を受信して、メモリに記憶する。
【００３４】
そして、接続再現処理部１３（接続再現手段）は、主にクライアント端末５と接続中ではないノードにて機能するものである。従って、ここでは、符号２のノード２に装備されているものとして説明する。この接続再現処理部は、通信処理部を介して、まず、他のノード（ここでは符号１，３のノード）の状態を監視している。特に、クライアント端末５と通信中のノード１に障害が発生していないかどうかを監視している。そして、上記ノード１に障害が発生したことを検出すると、自身のメモリの接続状態情報記憶部（符号１４を参照）に記憶されている接続状態情報を読み出して、当該接続状態情報に基づいてクライアント端末５との接続状態を再現して、ノード２にてクライアント端末５に対するサービス提供を回復するよう作動する。つまり、クライアント端末５に対して符号１のノードが接続していたときの状態を、そのまま符合２のノードにて再現して引き継ぐ。このような引継ぎ処理は、接続状態情報が上述したようにコネクション情報やプロセス情報を利用することで実現可能である。
【００３５】
［動作］
次に、上記構成のシステムの動作を、図４乃至図９を参照して説明する。図４は、システム全体の動作を示すシーケンス図であり、図５は、符号１のノードの動作を示すフローチャートであり、図６は、符号２のノードの動作を示すフローチャートである。図７乃至図９は、接続状態やデータの流れを示す説明図である。
【００３６】
まず、クライアント端末５と符号１のノード１との通信接続が確立され（図４のステップＳ１，Ｓ２、図７の（１））、ノード１がＣＩＦＳサービスの提供を開始し（図５のステップＳ２１）、クライアント端末５にＣＩＦＳサービスを提供する（図５のステップＳ２２）。これにより、クライアント端末５は、ノード１にて提供されるストレージサービスを利用することができる。つまり、ストレージ装置４にアクセスすることができ、当該ストレージ装置４に対するファイルの記録再生を行うことができる。
【００３７】
そして、クライアント端末５からデータ（Ａ）の送信があり（図４のステップＳ３）、これをノード１が完全に受信すると、受信確認を表すＡＣＫ信号をクライアント端末５に返送する（図４のステップＳ４、図５のステップＳ２３でイエス、図７の（２））。すると、ノード１は、このＡＣＫ返送のタイミングで、クライアント端末５との接続状態を表す接続状態情報を抽出して（図５のステップＳ２４）、他のノード２，３に送信する（図４のステップＳ５、図５のステップＳ２５、図７の（３）、接続状態情報複製工程）。
【００３８】
これに対し、他のノード２，３は、上記ノード１から送信された接続状態情報を受信して（図６のステップＳ３１）、メモリ内の接続状態情報記憶部に記憶しておく（図４のステップＳ６、図６のステップＳ３２、接続状態情報複製工程）。その後、ノード１は、ＣＩＦＳサービス提供が終了するまで（図５のステップＳ２６でノー、図６のステップＳ３３でノー）、上述したように、クライアント端末５にＡＣＫ信号を送信するたびに接続状態情報を他のノード２，３に送信し、これに応じて、ノード２，３は、送信されてきた接続状態情報を受信して最新のものを記憶しておく。
【００３９】
続いて、ノード１に障害が発生したときのことを考える。ここでは、図４に示すように、クライアント端末５からデータ（Ｂ）がノード１に送信され（図４のステップＳ７）、これをノード１が完全に受信しないうちに、当該ノード１に障害が発生したとする（図４のステップＳ８、図６のステップＳ３３でイエス、図８の（４））。すると、他のノード２，３が、監視しているノード１の障害を検出し（図４のステップＳ９）、ノード２，３間の予め設定されたやり取りによってノード１の処理を引き継ぐことが決定した符号２のノードが、自己のメモリに記憶されているノード１から受信した接続状態情報を読み出して、これに基づいてクライアント端末５との接続を再現する。これにより、ノード２がクライアント端末５に対するＣＩＦＳサービスを回復し（図４のステップＳ１０、図６のステップＳ３５）、クライアント端末５のノード１への接続がノード２に引き継がれて、当該ノード２とクライアント端末５との接続が確立される（図４のステップＳ１１，Ｓ１２、図８の（５）（矢印Ｙ１参照）、接続再現工程）。なお、ノード２がノード１の障害を検出したときには、既に接続を引き継ぐための接続状態情報が記憶されているため、かかる引継ぎ処理を迅速に実行することができる。
【００４０】
そして、その後は、ノード２からクライアント端末５に対してＣＩＦＳサービスが提供される（図６のステップＳ３６）。すると、クライアント端末５は、ノード１に障害が生じる前にデータ（Ｂ）を送信しているが（図４のステップＳ７参照）、これに対する受信確認信号であるＡＣＫ信号を得ていないため、データ（Ｂ）を再送する（図４のステップＳ１３）。すると、現在は、ノード２が接続されているため、当該ノード２にデータ（Ｂ）を送信することとなる。従って、ノード１の障害発生前の処理がノード２で引き継がれるため、確実に処理が継続されうる。そして、ノード２がクライアント端末５からデータ（Ｂ）を完全に受信すると、その受信確認信号であるＡＣＫをクライアント端末５に送信する（図４のステップＳ１４、図９の（６））。すると、これと同時に、ノード２は、上述同様に、このときのクライアント端末５との接続状態を表す接続状態情報を、他のノード１，３に送信する（図４のステップＳ１５、図９の（７））。但し、ノード１が障害発生状態のままである場合には、当該ノード１には送信されない。
【００４１】
以上のように本発明によると、まず、常時、クライアント端末５と通信中であるノード１の接続状態を表す情報が他のノード２にコピーされているため、障害発生時には、他のノード２にて迅速に接続状態を引き継ぐことができ、信頼性の向上を図ることができると共に、利用者の利便性の向上を図ることができる。そして、特に、接続状態情報をコピーするタイミングをＡＣＫ信号の送信タイミングとすることで、クライアント端末との通信されるデータが保障された状態で他のノードに接続を引き継ぐことができ、さらなる信頼性の向上を図ることができる。このことは、ノードのアプリケーションなどに接続状態情報をコピーするタイミングとして特別なチェックポイントを予め設定しておく必要がなく、アプリケーション作成コストを軽減し、また、ノードの処理負担を抑制することにもなる。
【００４２】
なお、上記では、接続状態情報をコピーするタイミングしてＡＣＫ信号の送信時を一例に挙げて説明したが、クライアント端末５と通信接続中のノード１との通信データが保障されているタイミングであれば、いかなるタイミングで上記接続状態情報のコピーを実行してもよい。例えば、ディスクＩ／Ｏが完了していないデータを他のノードにコピーするといったデータ保障タイミングで、上記接続状態情報の他のノードへのコピーを実行してもよい。
【００４３】
また、上記では、ノード１，２，３はサーバコンピュータであるとして説明したが、上述した構成を具備した情報処理装置であれば、いかなる装置であってもよい。例えば、ルータであってもよい。
【００４４】
さらに、上記では、ノードが装備されるシステムとして、ストレージサービスを提供するクラスタシステムを例示したが、他のシステムに適用してもよい。例えば、ノードが同一のウェブサイトを開設してウェブサービスを提供する複数のウェブサーバにて構成されていてもよい。
【産業上の利用可能性】
【００４５】
本発明のフェイルオーバ方法は、ネットワークストレージサービスを提供するクラスタシステムのフェイルオーバや、ウェブサービスを提供するシステムのフェイルオーバといった用途などに適用することができ、産業上の利用可能性を有する。
【図面の簡単な説明】
【００４６】
【図１】クラスタシステムの構成を示すブロック図である。
【図２】ノードの構成を示す機能ブロック図である。
【図３】接続状態情報のデータ構造の一例を示す図である。
【図４】クラスタシステムにおけるフェイルオーバの動作を示すシーケンス図である。
【図５】ノードの動作を示すフローチャートである。
【図６】ノードの動作を示すフローチャートである。
【図７】クラスタシステムのフェイルオーバ時の動作を示す説明図である。
【図８】クラスタシステムのフェイルオーバ時の動作を示す説明図である。
【図９】クラスタシステムのフェイルオーバ時の動作を示す説明図である。
【符号の説明】
【００４７】
１，２，３  ノード
４  ストレージ装置
５  クライアント端末
１１  通信処理部
１２  接続状態コピー処理部
１３  接続再現処理部
１４  接続状態情報記憶部
【図１】
2008242685.tif 000003
【図２】
2008242685.tif 000004
【図３】
2008242685.tif 000005
【図４】
2008242685.tif 000006
【図５】
2008242685.tif 000007
【図６】
2008242685.tif 000008
【図７】
2008242685.tif 000009
【図８】
2008242685.tif 000010
【図９】
2008242685.tif 000011