(57)【特許請求の範囲】
【請求項１】
クライアントに対してサービスを提供するクラスタリングシステムを構成している複数のノードのうちの１つのノードであって、
前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、
前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、
前記１つのノードである自ノードは、
前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出する停止ノード検出部と、
前記停止ノードが検出されると、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断する代替判断部と、
自ノードが前記代替候補であると判断されると、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定する代替ノード決定部と、
自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする代替開始部と
を備えるノード。
【請求項２】
さらに、
前記停止ノードが待機状態になったことを検出する復帰検出部と、
前記待機状態が検出されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードから前記停止ノードの仮想アドレスの指定を削除する代替終了部と
を備える請求項１に記載のノード。
【請求項３】
前記代替ノード決定部は、前記複数のノードのうち自ノードと同じ状態にある前記１つ以上のノードに対して、自ノードが前記代替ノードになることの承認要求を送信し、前記承認要求を送信した全てのノードから前記承認要求に対する受諾応答が受信されると、自ノードを前記代替ノードに決定するとともに、前記承認要求をコミットする
請求項１に記載のノード。
【請求項４】
前記代替ノード決定部は、自ノードの負荷レベルが高いほどより長い時間を設定し、設定された時間の経過後に前記承認要求を送信する
請求項３に記載のノード。
【請求項５】
前記代替ノード決定部は、前記承認要求を送信したノードの中に、自ノードよりも負荷レベルが低いノードがない場合にのみ、自ノードを前記代替ノードに決定するとともに、前記承認要求をコミットする
請求項３に記載のノード。
【請求項６】
複数のノードで構成され、クライアントに対してサービスを提供するクラスタリングシステムであって、
前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、
前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、
前記各ノードは、
前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出する停止ノード検出部と、
前記停止ノードが検出されると、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断する代替判断部と、
自ノードが前記代替候補であると判断されると、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定する代替ノード決定部と、
自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする代替開始部と
を備えるクラスタリングシステム。
【請求項７】
複数のノードで構成され、クライアントに対してサービスを提供するクラスタリングシステムの制御方法であって、
前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、
前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、
前記複数のノードのうちの１つである自ノードは、停止ノード検出部と、代替判断部と、代替ノード決定部と、代替開始部とを備え、
前記停止ノード検出部で、前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出し、
前記停止ノードが検出されると、前記代替判断部で、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断し、
自ノードが前記代替候補であると判断されると、前記代替ノード決定部で、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定し、
自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、前記代替開始部で、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする
制御方法。
【請求項８】
複数のノードで構成され、クライアントに対してサービスを提供するクラスタリングシステムを制御するためのコンピュータ実行可能なプログラムであって、
前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、
前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、
前記複数のノードのうちの１つである自ノードにおいて、
前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出する停止ノード検出ステップと、
前記停止ノードが検出されると、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断する代替判断ステップと、
自ノードが前記代替候補であると判断されると、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定する代替ノード決定ステップと、
自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする代替開始ステップと
をコンピュータに実行させるプログラム。
【請求項９】
請求項８に記載のプログラムを記憶しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のノードから構成される高可用性クラスタリングシステムに関し、特には、仮想ＩＰアドレスを用いてノードのＩＰアドレスをフェイルオーバーする技術に関する。
【背景技術】
【０００２】
従来、コンピュータシステムの負荷分散、拡張性、高可用性を実現するために適したシステムアーキテクチャとして、クラスタリングシステムが知られている。クラスタリングシステムは、複数のノード（コンピュータシステム）をネットワークで接続して構成され、当該ネットワークを介して個々のノードからクライアントに対してサービスが提供される。
【０００３】
クラスタリングシステムでは、高可用性を実現するための１つの方策として、１つのノードが故障や保守などのためにサービスを停止した場合に、停止したノードのリソースを他のノードが引き継ぎ、リソースを引き継いだノードが停止したノードのサービスを継続して提供する、フェイルオーバーと呼ばれる処理が行われることがある。
【０００４】
ノードがクライアントに対してサービスを提供するためのＩＰアドレスは、フェイルオーバーによって引き継がれるべきリソースの１つである。ＩＰアドレスの引き継ぎを、仮想ＩＰアドレス（ＩＰエイリアスとも呼ばれる）を用いて行う技術が知られている（例えば、特許文献１を参照）。
【０００５】
特許文献１には、１つの運用系ノード（以下、運用ノード）と１つの予備系ノード（以下、待機ノード）とからなり、個々のノードに固定ＩＰアドレスを割り当て、運用ノードにはクライアントにサービスを提供するための仮想ＩＰアドレスを割り当てたクラスタリングシステムが開示されている。
【０００６】
このクラスタリングシステムは、固定ＩＰアドレスを通してノード間でヘルスチェックを行い、運用ノードの障害が検出されると、前記仮想ＩＰアドレスを待機ノードに割り当てることで、ＩＰアドレスのフェイルオーバーを行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３２４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１は、仮想ＩＰアドレスを用いてノードのＩＰアドレスをフェイルオーバーするという基本的な考え方を示しているものの、開示されている具体例は、１つの運用ノードと１つの待機ノードによる運用形態（いわゆるＡＣＴ／ＳＢＹ運用）のみである。
【０００９】
クラスタリングシステムの運用形態は多様であり、特許文献１に例示される運用形態の他にも、例えば、１つの運用ノードと複数の待機ノードによる運用形態（ＡＣＴ／ＳＢＹ運用の冗長性を高めた形態）、複数の運用ノードによる運用形態（いわゆるＡＣＴ／ＡＣＴ運用）、複数の運用ノードと１つ以上の待機ノードによる運用形態（ＡＣＴ／ＡＣＴ運用に冗長性を付加した形態）といった、各種の運用形態のクラスタリングシステムが考えられる。
【００１０】
このような各種の運用形態のクラスタリングシステムにおいて、仮想ＩＰアドレスを用いてノードのＩＰアドレスをフェイルオーバーする場合、運用形態に応じた処理の違いを検討する必要がある。例えば、サービスを停止した運用ノードのＩＰアドレスを引き継ぐべき代替ノードを決めるにあたって、代替ノードの候補は運用形態によって異なるであろう。
【００１１】
運用形態に応じて適切にＩＰアドレスがフェイルオーバーされるようにノードの機能（制御プログラム）を運用形態ごとにカスタマイズしてもよいが、そうすると、ノードの汎用性や異なる運用形態への適応性が損なわれるという問題が生じる。
【００１２】
本発明は、上記の問題に鑑みてなされたものであり、クラスタリングシステムを構成するノードであって、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーを、異なる複数の運用形態のクラスタリングシステムにおいて統一的に実行することによって、汎用性や異なる運用形態への適応性に優れたノード、そのようなノードで構成されるクラスタリングシステム、およびそのようなノードにおいて実行されるクラスタリングシステムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明のノードは、クライアントに対してサービスを提供するクラスタリングシステムを構成している複数のノードのうちの１つのノードであって、前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、前記１つのノードである自ノードは、前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出する停止ノード検出部と、前記停止ノードが検出されると、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断する代替判断部と、自ノードが前記代替候補であると判断されると、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定する代替ノード決定部と、自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする代替開始部とを備える。
【００１４】
この構成によれば、前記代替判断部は、自ノードが停止ノードの代替候補になるか否かを、自ノードと停止ノードとでの仮想アドレスの異同、および自ノードの状態がＳＢＹおよびＡＣＴのいずれであるかの比較を組み合わせて定義される特徴的な条件に従って判断している。
【００１５】
この判断の条件は、例えば、全てのノードに同じ仮想ＩＰアドレスが指定され高々１つのノードが運用状態になり得るクラスタリングシステムにおいても、また全てのノードに異なる仮想ＩＰアドレスが指定され全てのノードが運用状態になり得るクラスタリングシステムにおいても、さらにまたそのようなクラスタリングシステムに待機状態のままでリザーブされるノードを加えたクラスタリングシステムにおいても、共通かつ有効に機能することから、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーを、異なる複数の運用形態のクラスタリングシステムにおいて統一的に実行できるノードが実現される。
【００１７】
また、さらに、前記停止ノードが待機状態になったことを検出する復帰検出部と、前記待機状態が検出されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードから前記停止ノードの仮想アドレスの指定を削除する代替終了部とを備えてもよい。
【００１８】
この構成によれば、前記代替開始部および前記代替終了部で行われる処理は、例えば前述の各種の運用形態のクラスタリングシステムにおいて、共通かつ有効に機能することから、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーを、異なる複数の運用形態のクラスタリングシステムにおいて統一的に実行できるノードが実現される。
【００１９】
また、前記代替ノード決定部は、前記複数のノードのうち自ノードと同じ状態にある前記１つ以上のノードに対して、自ノードが前記代替ノードになることの承認要求を送信し、前記承認要求を送信した全てのノードから前記承認要求に対する受諾応答が受信されると、自ノードを前記代替ノードに決定するとともに、前記承認要求をコミットしてもよい。
【００２０】
この構成によれば、代替候補となった複数のノード間で、２フェーズコミットの考え方に基づいて矛盾なく代替ノードを決定することができる。
【００２１】
また、前記代替ノード決定部は、自ノードの負荷レベルが高いほどより長い時間を設定し、設定された時間の経過後に前記承認要求を送信してもよい。
【００２２】
この構成によれば、負荷レベルが高いノードほど承認要求を送信するタイミングを意図的に遅らせるので、複数のノードが代替候補となった場合に、負荷レベルが低いノードほど早いタイミングで承認要求を送信することになる。その結果、処理能力に余裕があるノードほど代替ノードになりやすくなるという効果が得られる。
【００２３】
また、前記代替ノード決定部は、前記承認要求を送信したノードの中に、自ノードよりも負荷レベルが低いノードがない場合にのみ、自ノードを前記代替ノードに決定するとともに、前記承認要求をコミットしてもよい。
【００２４】
この構成によれば、自ノードよりも負荷レベルが低いノードがない場合にのみ、自ノードが代替ノードとして決定されるので、代替候補となった複数のノードのうち、最も負荷レベルが低いノードが代替ノードに決定されるという、合理的な決定がなされる。
【００２５】
また、本発明は、前述したようなノードとして実現できるだけでなく、そのような複数のノードから構成されるクラスタリングシステムとして実現することもできる。また、前記ノードが備える特徴的な手段によって実行される処理をステップとするクラスタリングシステムの制御方法として実現することも、さらにはコンピュータプログラムとして実現することもできる。
【発明の効果】
【００２６】
本発明のノードによれば、クライアントに対してサービスを提供するクラスタリングシステムを構成している複数のノードのうちの１つのノードであって、前記複数のノードの各々は、管理用の１つの固定アドレスと、前記クライアントに対して前記サービスを提供するための１つ以上の仮想アドレスとが指定され、前記仮想アドレスを通して前記サービスを提供する運用状態、前記サービスを提供可能な状態で待機している待機状態、および前記サービスを提供することができない停止状態のうちの、どの状態にもなることができ、前記クラスタリングシステムは、全てのノードに同じ仮想アドレスが指定され高々１つのノードが運用状態になり得る第１のクラスタリングシステム、及び全てのノードに異なる仮想アドレスが指定され全てのノードが運用状態になり得る第２のクラスタリングシステム、及び前記第２のクラスタリングシステムに待機状態のままでリザーブされるノードを加えた第３のクラスタリングシステムのうちの何れか１つであり、前記１つのノードである自ノードは、前記複数のノードのうち運用状態から停止状態になったノードを停止ノードとして検出する停止ノード検出部と、前記停止ノードが検出されると、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しいか、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なることにより、自ノードが前記停止ノードの代替候補であると判断する代替判断部と、自ノードが前記代替候補であると判断されると、前記複数のノードのうち自ノードと同じ状態にある１つ以上のノードのなかから、前記停止ノードを実際に代替する代替ノードを決定する代替ノード決定部と、自ノードが前記代替ノードに決定されると、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが等しい場合、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し、自ノードに指定された仮想アドレスと前記停止ノードに指定された仮想アドレスとが異なる場合、自ノードの状態を運用状態に維持したまま自ノードに前記停止ノードの仮想アドレスを追加指定することにより、自ノードを、前記停止ノードに指定された仮想アドレスを通して前記サービスを提供する運用状態にする代替開始部とを備える。
【００２７】
この構成によれば、前記代替判断部は、自ノードが停止ノードの代替候補になるか否かを、自ノードと停止ノードとでの仮想アドレスの異同、および自ノードの状態がＳＢＹおよびＡＣＴのいずれであるかの比較を組み合わせて定義される特徴的な条件に従って判断している。
【００２８】
この判断の条件は、例えば、全てのノードに同じ仮想ＩＰアドレスが指定され高々１つのノードが運用状態になり得るクラスタリングシステムにおいても、また全てのノードに異なる仮想ＩＰアドレスが指定され全てのノードが運用状態になり得るクラスタリングシステムにおいても、さらにまたそのようなクラスタリングシステムに待機状態のままでリザーブされるノードを加えたクラスタリングシステムにおいても、共通かつ有効に機能することから、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーを、異なる複数の運用形態のクラスタリングシステムにおいて統一的に実行できるノードが実現される。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係るクラスタリングシステムの一例を示す概略構成図
【図２】ノードが取り得る状態を説明する状態遷移図
【図３】ノードの機能的な構成の一例を示すブロック図
【図４】状態テーブルの一例を示す図
【図５】仮想アドレス制御処理の一例を示すフローチャート
【図６】代替ノード決定処理の一例を示すフローチャート
【図７】代替開始処理の一例を示すフローチャート
【図８】代替終了処理の一例を示すフローチャート
【図９】第１実施例におけるシステムの動作の一例を示すシーケンスチャート
【図１０】第２実施例におけるシステムの動作の一例を示すシーケンスチャート
【発明を実施するための形態】
【００３０】
本発明の実施の形態におけるクラスタリングシステムおよびノードについて、図面を参照しながら詳細に説明する。
【００３１】
（クラスタリングシステムの構成）
図１は、本発明の実施の形態におけるクラスタリングシステム１０の一例を示す概略構成図である。
【００３２】
クラスタリングシステム１０は、ネットワークを介してクライアント９１〜９４にサービスを提供するシステムであり、ノード１１〜１４をネットワーク１９で接続してなる。
【００３３】
ノード１１〜１４の各々は、一例として、３層モデルによるＷｅｂアプリケーションサーバであり、管理用の１つの固定ＩＰアドレスｉｐｎ（ｎ＝１〜４）と、クライアント９１〜９４に対してサービスを提供するための１つ以上の仮想ＩＰアドレスｖｉｐｎ（ｎ＝１〜４）とが指定される。ここで、固定ＩＰアドレス、仮想ＩＰアドレスは、それぞれ本発明の固定アドレス、仮想アドレスの一例である。以下では、簡便のために、固定ＩＰアドレス、仮想ＩＰアドレスを、それぞれ固定アドレス、仮想アドレスと言うことがある。
【００３４】
ノード１１〜１４は、相互に、管理用の固定ＩＰアドレスｉｐｎを通して、自ノードの最新の状態の通知、ヘルスチェック、およびデータベースの一致制御といった管理用の通信を行うとともに、クライアントに対して、仮想ＩＰアドレスｖｉｐｎを通して、サービスを提供する。
【００３５】
（ノードが取り得る状態）
図２は、ノード１１が取り得る状態を説明する状態遷移図である。ノード１２〜１４も同様の状態を取り得るものとし、ここではノード１１について代表して説明する。
【００３６】
ノード１１は、指定された仮想ＩＰアドレスを通してサービスを提供する運用状態（ＡＣＴ：ＡＣＴｉｖｅ）、サービスを提供可能な状態で待機している待機状態（ＳＢＹ：ＳｔａｎｄＢＹ）、サービスを提供することができない停止状態（ＯＵＳ：ＯＵｔ  ｏｆ  Ｓｅｒｖｉｃｅ）、および電源投入後などにおいてノードが起動中の初期状態（ＩＮＩＴ：ＩＮＩＴｉａｌ）のうちの、どの状態にもなることができる。
【００３７】
本発明は停止状態の種類を限定しないが、一例として、ＳＢＹまたはＡＣＴになるために修理を要する故障状態（ＦＡＩＬ：ＦＡＩＬｕｒｅ）は停止状態の１つの典型例であり、また定期点検や停電によるサービス停止も停止状態の一例になり得る。
【００３８】
以下では簡潔のため、ノードの状態を記号で表記することがある。
【００３９】
ＩＮＩＴとＳＢＹとの間は、オペレータからスタートアップコマンド、シャットダウンコマンドが投入されることで遷移する。ＳＢＹとＡＣＴとの間は、オペレータからアクティベートコマンド、スタンバイコマンドが投入されることで遷移するほかに、後述する代替開始終了部３６が行う制御によって遷移する。ＩＮＩＴ、ＳＢＹ、ＡＣＴの各々からＦＡＩＬへは、故障が発生することで遷移し、ＦＡＩＬからＩＮＩＴへはオペレータによる修理作業を経て遷移する。
【００４０】
なお、ノード１１〜１４の状態は、各ノード間で交換され、記録されるものとする。
【００４１】
ノード１１〜１４は、例えば、状態遷移の都度、遷移後の状態を示す情報を全てのノードにブロードキャストしてもよく、また、例えば、ヘルスチェックのための通信を行う際に自ノードの状態を他ノードへ通知してもよい。
【００４２】
ノード１１〜１４は、そのようにして通知される他ノードの状態を、後述する状態テーブルに記録する。
【００４３】
（ノードの構成）
図３は、ノード１１の機能的な構成の一例を示すブロック図である。ノード１２〜１４も同様に構成されるものとし、ここではノード１１について代表して説明する。
【００４４】
ノード１１は、ＨＤＤ（ハードディスク装置）１７、ＮＩＣ（ネットワークインタフェースコントローラ）１８、サービス実行部２０、および仮想アドレス制御部３０を備え、さらに、図示されていないプロセッサ、メモリなどを用いて構成されたコンピュータシステムである。サービス実行部２０および仮想アドレス制御部３０は、前記プロセッサが前記メモリを用いて所定のプログラムを実行することにより果たされるソフトウェア機能である。
【００４５】
サービス実行部２０は、仮想ＩＰアドレスｖｉｐ１を通して、図外のクライアントにサービスを提供する実行部であり、例えば３層モデルによるＷｅｂアプリケーションサーバの機能を果たす、ＷＥＢ層２１、ＡＰ層２２、およびＤＢ層２３を有する。
【００４６】
なお、サービス実行部２０のこのような構成は１つの例示であることに注意する。サービス実行部２０は、仮想ＩＰアドレスｖｉｐ１を通してクライアントにサービスを提供するものであればよく、３層モデルによるＷｅｂアプリケーションサーバには限定されない。
【００４７】
仮想アドレス制御部３０は、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーを、異なる複数の構成のクラスタリングシステムにおいて統一された手順で実行する制御部であり、状態管理部３１、停止復帰検出部３３、代替判断部３４、代替ノード決定部３５、および代替開始終了部３６を有する。状態管理部３１は、状態テーブル３２を有する。
【００４８】
ここで、停止復帰検出部３３、代替判断部３４、代替ノード決定部３５、および代替開始終了部３６は、それぞれ本発明の停止ノード検出部、代替判断部、代替ノード決定部、および代替開始部の一例である。また、停止復帰検出部３３、代替開始終了部３６は、それぞれ本発明の復帰検出部、代替終了部の一例でもある。
【００４９】
状態管理部３１は、自ノードであるノード１１の状況を定期的にまたは逐次検出し、検出された状態テーブル３２に記録する。ここで言う状況には、例えば、自ノードの状態、負荷レベル、自ノードに指定されている仮想ＩＰアドレスが含まれる。
【００５０】
状態管理部３１は、自ノードの状況に何らかの変化が生じる都度、自ノードの最新の状況を示す情報を全てのノードにブロードキャストする。例えば、自ノードの状態が遷移した場合、負荷レベルが一定量変動した場合、および自ノードに指定されている仮想ＩＰアドレスが追加および削除された場合など、その都度、自ノードの最新の状態、負荷レベル、および仮想ＩＰアドレスを示す情報を、全ノードにブロードキャストする。
【００５１】
状態管理部３１は、他ノードからブロードキャストされるそのような情報を参照して、各ノードの最新の状態、負荷レベル、および仮想ＩＰアドレスを状態テーブル３２に記録する。
【００５２】
状態管理部３１はまた、例えば、固定ＩＰアドレスｉｐｎを通して、ノード１２〜１４との間でヘルスチェックのための通信を行うことで、各ノードの仮想ＩＰアドレス、状態、および負荷レベルを定期的に収集し、収集された最新の情報を状態テーブル３２に記録してもよい。
【００５３】
図４は、ノード１１における状態テーブル３２の一例を示す図である。
【００５４】
状態テーブル３２は、自ノードであるノード１１、および他ノードであるノード１２〜１４の各々について、固定アドレス欄３２１にはノードに指定されたＩＰアドレス、仮想アドレス欄３２２にはノードに指定された１つ以上の仮想ＩＰアドレス、状態欄３２３にはノードの状態（ＡＣＴ、ＳＢＹ、ＦＡＩＬ、ＩＮＩＴの何れかの記号）、および負荷レベル欄３２４にはノードの負荷レベル値（例えばロードアベレージ値）を保持している。
【００５５】
同様の状態テーブル３２は、ノード１２〜１４にも設けられ、ノード１１〜１４の各々において、ノード１１〜１４の状態に関する同一の内容が記録される。
【００５６】
（ノードにおける仮想アドレス制御動作）
図５〜図８のフローチャートを参照しながら、仮想アドレス制御部３０の動作について説明を続ける。
【００５７】
図５は、仮想アドレス制御部３０による仮想アドレス制御処理の一例を示すフローチャートである。
【００５８】
仮想アドレス制御部３０において、停止復帰検出部３３は、運用状態から停止状態になったノードを停止ノードとして検出する（Ｓ１０）。
【００５９】
停止ノードは、いくつかの態様で検出される。例えば、直接的には、自ノードで発生した故障を検出することによって、自ノードを停止ノードとして検出してもよく、また、状態管理部３１が行うヘルスチェックのための通信が途絶したノードを停止ノードとして検出してもよい。いずれの場合も、停止ノードを検出したノードは、通信が可能である限り、検出された停止ノードを特定する停止通知をブロードキャストすることが望ましい。そうすれば、ブロードキャストされる停止通知を受信することによっても、停止ノードを検出できる。停止通知のブロードキャストによって、全ノードにおいて速やかに当該停止ノードの検出が完了する。
【００６０】
停止ノードが検出されると（Ｓ１１でＹ）、代替判断部３４は、自ノードが停止ノードの代替候補であるかを判断する（Ｓ２０）。より具体的には、自ノードが待機状態にありかつ自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが等しいか（Ｓ２１でＹ）、または、自ノードが運用状態にありかつ自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが異なる（Ｓ２２でＹ）ことにより、自ノードが停止ノードの代替候補であると判断する。
【００６１】
ステップＳ２０で自ノードが代替候補であると判断されると、代替ノード決定部５０は、停止ノードを実際に代替する代替ノードを、自ノードと同じ状態にある全てのノードの中から決定する代替ノード決定処理を行う（Ｓ５０）。
【００６２】
図６は、代替ノード決定処理の一例を示すフローチャートである。図６に示される代替ノード決定処理の要部は、一般的な２フェーズコミットの手順に基づいている。
【００６３】
まず、代替ノード決定部５０は、自ノードの負荷レベルが高いほどより長い時間を設定し、設定された時間が経過するまで待つ（Ｓ３１）。
【００６４】
その後、一般的な２フェーズコミットの手順に従って以下の処理を行う。自ノードと同じ状態にある全てのノードに対して、自ノードが代替ノードになることの承認要求を送信し（Ｓ３２）、承認要求を送信したノードから返信されてくる受諾応答を受信する（Ｓ３３）。
【００６５】
承認要求を送信した全てのノードから受諾応答が受信され（Ｓ３４でＹ）、かつ承認要求を送信したノードの中に自ノードよりも負荷レベルが低いノードがない（Ｓ３５でＮ）場合のみ、自ノードを代替ノードに決定し（Ｓ３６）、承認要求をコミットする（Ｓ３７）。承認要求を送信した全てのノードから受諾応答が受信されない場合（Ｓ３４でＮ）、および承認要求を送信したノードの中に自ノードよりも負荷レベルが低いノードがある場合（Ｓ３５でＹ）は、自ノードを代替ノードに決定することなく、承認要求をロールバックする（Ｓ３８）。負荷レベルの比較は、例えば、状態テーブル３２を参照することにより行われる。
【００６６】
なお、上記の代替ノード決定処理の手順において、ステップＳ３１およびステップＳ３５は必須ではないが、ステップＳ３１およびステップＳ３５の両方またはいずれか一方を設けることによって、それぞれ次のような追加的な効果を得ることができる。
【００６７】
すなわち、ステップＳ３１では、負荷レベルが高いノードほど承認要求を送信するタイミングを意図的に遅らせるので、複数のノードが代替候補となった場合に、負荷レベルが低いノードほど早いタイミングで承認要求を送信することになる。その結果、処理能力に余裕があるノードほど代替ノードになりやすくなるという効果が得られる。
【００６８】
また、ステップＳ３５を設けることで、自ノードよりも負荷レベルが低いノードがない場合にのみ、自ノードが代替ノードとして決定されるので、代替候補となった複数のノードのうち、最も負荷レベルが低いノードが代替ノードに決定されるという、合理的な決定がなされる。
【００６９】
なお、ステップＳ３５は、自ノードの負荷レベルからあらかじめ定められた余裕値を減じて得た基準値よりも負荷レベルが低いノードがない場合のみ、自ノードが代替ノードとして決定されるように変形してもよい。そうすれば、自ノードの負荷レベルと他ノードの負荷レベルとの大小が頻繁に入れ替わるような実際的な状況において、代替候補となった全てのノードが、負荷レベルを判断するタイミングの差によって、自ノードを代替ノードに決定しないという不具合が生じる可能性を低減できる。
【００７０】
なお、自ノードと同じ状態にあるノードが自ノードの他になければ、上記のような２フェーズコミットに基づく手順の必要がないことは明らかであり、ステップＳ３６のみを実行して、自ノードを直ちに代替ノードに決定すればよい。
【００７１】
再び図５を参照して、自ノードが代替ノードに決定されると（Ｓ３９でＹ）、代替開始終了部３６は、自ノードを、停止ノードに指定された仮想アドレスを通してサービスを提供する運用状態にする代替開始処理を行う（Ｓ４０）。
【００７２】
図７は、代替開始処理の一例を示すフローチャートである。
【００７３】
代替開始終了部３６は、自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが等しい場合（Ｓ４１でＹ）、自ノードに指定された仮想アドレスを維持したまま自ノードの状態を運用状態に変更し（Ｓ４２）、自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが異なる場合（Ｓ４１でＮ）、自ノードの状態を運用状態に維持したまま自ノードに停止ノードの仮想アドレスを追加指定する（Ｓ４３）。
【００７４】
再び図５を参照して、停止復帰検出部３３は、代替している停止ノードが待機状態に復帰したことを検出する（Ｓ６０）。復帰検出は、一例として、代替している停止ノードが修理されスタートアップコマンドの実行により待機状態になり、その結果として、停止ノードからブロードキャストされる、停止ノードが待機状態になったことを示す情報を受信することによって行ってもよい。
【００７５】
代替していた停止ノードの復帰が検出されると、代替開始終了部３６は代替終了処理を行う（Ｓ７０）。
【００７６】
図８は、代替終了処理の一例を示すフローチャートである。
【００７７】
代替開始終了部３６は、自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが異なる場合（Ｓ７１でＮ）、自ノードの状態を運用状態に維持したまま自ノードから停止ノードの仮想アドレスの指定を削除する（Ｓ７３）。なお、自ノードに指定された仮想アドレスと停止ノードに指定された仮想アドレスとが等しい場合（Ｓ７１でＮ）は、実質的な代替終了処理は行われない。この場合、自ノードは実行状態のままサービスを提供し続ける。
【００７８】
（実施例）
以下では、上記のように構成されたノードが、ノード自体の構成を全く変更することなく、異なる２つの運用形態のクラスタリングシステムに適用され、いずれの運用形態でも、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーが、統一された手順で適切に実行されることを説明する。
【００７９】
第１実施例として、１つのノードを運用状態とし、複数のノードを待機状態とする運用形態（ＡＣＴ／ＳＢＹ運用の冗長性を高めた形態）のクラスタリングシステムへの適用例について説明する。
【００８０】
第１実施例に係るクラスタリングシステムは、図１のクラスタリングシステム１０からノード１４を除いた構成に対応し、ノード１１〜１３に同一の仮想ＩＰアドレスＡが指定され、ノード１１〜１３のうち高々１つのノードがＡＣＴになり得る形態で運用される。クライアントは、仮想ＩＰアドレスＡを通して、このクラスタリングシステムからサービスを受ける。
【００８１】
図９は、第１実施例におけるシステムの動作の一例を示すシーケンスチャートである。図９のシーケンスチャートには、図５〜８のフローチャートの対応するステップの符号が示されている。
【００８２】
最初、ノード１１がＡＣＴであり、クライアントは仮想ＩＰアドレスＡを通してノード１１からサービスを受けている。また、ノード１２、１３はＳＢＹであり、クライアントに対するサービスを提供可能な状態で待機している（つまり、いつでもＡＣＴになり得る状態にあってサービスの提供を保留している）。
【００８３】
ノード１１で、例えばハードディスク装置に故障が発生する。それにより、ノード１１は、自ノードを停止ノードとして検出してＦＡＩＬになるとともに、ノード１１を特定する停止通知ＳＴＯＰをブロードキャストする。ここで、停止通知ＳＴＯＰには、ノード１１を特定する情報（例えば、ノード１１の固定ＩＰアドレス）が含まれている。ノード１２、１３は、停止通知ＳＴＯＰを受信することにより、ノード１１を停止ノードとして検出する（Ｓ１０）。
【００８４】
ノード１１、１２、１３は、代替判断（Ｓ２０）を行う。ノード１２、１３は、自ノードがＳＢＹであり、かつ自ノードに指定された仮想ＩＰアドレスＡと停止ノードに指定された仮想ＩＰアドレスＡとが等しいことにより（Ｓ２１でＹ）、自ノードが停止ノードの代替候補であると判断する。ノード１１は、故障によりＦＡＩＬとなっているため、代替判断の条件が成立しない。
【００８５】
ノード１２、１３は、代替ノード決定処理（Ｓ３０）を行う。ノード１２、１３は、それぞれの承認要求を、自ノードと同じくＳＢＹであるノード１３、１２へ送信しようとする。ここで、ノード１２がノード１３よりも先に承認要求を送信したとすると（Ｓ３１）、ノード１３は自らの承認要求を送信するのをやめてノード１２に受諾応答を返信し、ノード１２はその受諾応答を受信する（Ｓ３２）。ノード１２は自ノードを代替ノードに決定し（Ｓ３４）、ノード１３にコミットを送信する（Ｓ３５）。これにより、ノード１２、１３の間で、ノード１２が代替ノードとして確定する。
【００８６】
ノード１２は、自ノードと停止ノードとで仮想ＩＰアドレスが一致するので、自ノードをＡＣＴにする代替開始処理を行う（Ｓ４２）。これにより、クライアントは仮想ＩＰアドレスＡを通してノード１２から引き続きサービスを受けることができる。
【００８７】
ノード１１が修理される（Ｓ５０）。ノード１１は、起動してＩＮＩＴになった後、オペレータからスタートアップコマンドが投入されることでＳＢＹになる（Ｓ５５）。
【００８８】
ノード１２は、ノード１１が状態遷移の都度ブロードキャストする最新の状態を表す情報を受信することでノード１１の復帰を検出する（Ｓ６０）。ノード１２は、自ノードと停止ノードとで仮想ＩＰアドレスが一致することで、実質的な代替終了処理を行わず、ノード１２はＡＣＴのままで、仮想ＩＰアドレスＡを通してサービスを提供し続ける。その結果、クライアントは仮想ＩＰアドレスＡを通してノード１２から引き続きサービスを受けることができる。
【００８９】
このようにして、クラスタリングシステムが唯一の仮想アドレスＡを通してサービスを提供する運用形態において、サービスの無中断が実現される。
【００９０】
次に、第２実施例として、３つのノードを運用状態とし、１つのノードを待機状態とする運用形態（ＡＣＴ／ＡＣＴ運用に冗長性を付加した形態）のクラスタリングシステムへの適用例について説明する。
【００９１】
第２実施例に係るクラスタリングシステムは、図１のクラスタリングシステム１０の構成に対応し、ノード１１〜１４に相異なる仮想ＩＰアドレスＡ〜Ｄが指定され、ノード１１〜１３が全てＡＣＴになり得る形態で運用される。クライアントは、仮想ＩＰアドレスＡ〜Ｃを通して、このクラスタリングシステムからサービスを受ける。
【００９２】
なお、この運用形態では、ノード１４は、ＳＢＹに維持され、仮想ＩＰアドレス制御処理における停止ノードの代替候補にはならない。ノード１４は、ノード１１〜１３の修理が長期化する場合など、オペレータの操作に応じてノード１１〜１３を置き換えるための機材としてリザーブされる。
【００９３】
図１０は、第２実施例におけるシステムの動作の一例を示すシーケンスチャートである。図１０のシーケンスチャートには、図５〜８のフローチャートの対応するステップの符号が示されている。
【００９４】
最初、ノード１１〜１３がＡＣＴであり、クライアントは仮想ＩＰアドレスＡを通してノード１１からサービスを受けている。ノード１４は、ＳＢＹであり、クライアントに対するサービスを提供可能な状態で待機している（つまり、いつでもＡＣＴになり得る状態にあってサービスの提供を保留している）。
【００９５】
ノード１１で、例えばハードディスク装置に故障が発生する。それにより、ノード１１は、自ノードを停止ノードとして検出してＦＡＩＬになるとともに、ノード１１を特定する停止通知ＳＴＯＰをブロードキャストする。ここで、停止通知ＳＴＯＰには、ノード１１を特定する情報（例えば、ノード１１の固定ＩＰアドレス）が含まれている。ノード１２〜１４は、停止通知ＳＴＯＰを受信することにより、ノード１１を停止ノードとして検出する（Ｓ１０）。
【００９６】
ノード１１〜１４は、代替判断（Ｓ２０）を行う。ノード１２、１３は、自ノードがＡＣＴであり、かつ自ノードに指定された仮想ＩＰアドレスＢ、Ｃと停止ノードに指定された仮想ＩＰアドレスＡとが異なることにより（Ｓ２２でＹ）、自ノードが停止ノードの代替候補であると判断する。ノード１１は、故障によりＦＡＩＬとなっているため、代替判断の条件が成立しない。ノード１４は、自ノードがＳＢＹであり、かつ自ノードに指定された仮想ＩＰアドレスＤと停止ノードに指定された仮想ＩＰアドレスＡとが異なるため、代替判断の条件が成立しない。
【００９７】
ノード１２、１３は、代替ノード決定処理（Ｓ３０）を行う。ノード１２、１３は、それぞれの承認要求を、自ノードと同じくＡＣＴであるノード１３、１２へ送信しようとする。ここで、ノード１２がノード１３よりも先に承認要求を送信したとすると（Ｓ３１）、ノード１３は自らの承認要求を送信するのをやめてノード１２に受諾応答を返信し、ノード１２はその受諾応答を受信する（Ｓ３２）。ノード１２は自ノードを代替ノードに決定し（Ｓ３４）、ノード１３にコミットを送信する（Ｓ３５）。これにより、ノード１２、１３の間で、ノード１２が代替ノードとして確定する。
【００９８】
ノード１２は、自ノードと停止ノードとで仮想ＩＰアドレスが異なるので、自ノードに停止ノードの仮想ＩＰアドレスＡを追加指定する代替開始処理を行う。ノード１２は、仮想ＩＰアドレスＢ、Ａが指定された状態となる（Ｓ４３）。これにより、クライアントは仮想ＩＰアドレスＡを通してノード１２から引き続きサービスを受けることができる。
【００９９】
ノード１１が修理される（Ｓ５０）。ノード１１は、起動してＩＮＩＴになった後、オペレータからスタートアップコマンドが投入されることでＳＢＹになる（Ｓ５５）。
【０１００】
ノード１２は、ノード１１が状態遷移の都度ブロードキャストする最新の状態を表す情報を受信するすることでノード１１の復帰を検出する（Ｓ６０）。ノード１２は、自ノードと停止ノードとで仮想ＩＰアドレスが異なるので、自ノードから停止ノードの仮想ＩＰアドレスＡを削除する代替終了処理を行う。ノード１２に指定された仮想ＩＰアドレスは、再びＢのみになる（Ｓ７３）。
【０１０１】
これにより、ノード１２は仮想ＩＰアドレスＢのみを通してサービスを提供することになり、ノード１２の負荷レベルは直ちに平常化される。
【０１０２】
その後速やかに、ノード１１は、オペレータからアクティベートコマンドが投入されることで、ＡＣＴになる（Ｓ８０）。これにより、クライアントは仮想ＩＰアドレスＡを通して再びノード１１からサービスを受けることができるようになる。
【０１０３】
（まとめ）
以上説明した第１実施例と第２実施例とを比較すれば、本実施の形態のノードは、ノード自体の構成を全く変更することなく、ＡＣＴ／ＳＢＹ運用の冗長性を高めた形態、およびＡＣＴ／ＡＣＴ運用に冗長性を付加した形態の、２つの異なる運用形態のクラスタリングシステムに適用され、いずれの運用形態でも、仮想ＩＰアドレスを用いたＩＰアドレスのフェイルオーバーが、統一された手順で適切に実行されることが分かる。
【０１０４】
とりわけ、本実施の形態のノードでは、自ノードが停止ノードの代替候補になるか否かを、自ノードと停止ノードとでの仮想ＩＰアドレスの異同、および自ノードの状態がＳＢＹおよびＡＣＴのいずれであるかの比較を組み合わせて定義される特徴的な条件に従って判断している。
【０１０５】
この判断の条件は、全てのノードに同じ仮想ＩＰアドレスが指定され高々１つのノードがＡＣＴになり得るＡＣＴ／ＳＢＹ運用においても、また全てのノードに異なる仮想ＩＰアドレスが指定され全てのノードがＡＣＴになり得るＡＣＴ／ＡＣＴ運用においても、さらにまたＡＣＴ／ＡＣＴ運用にＳＢＹのままでリザーブされるべきノードを加えた運用においても、共通かつ有効に機能することから、クラスタリングシステムを構成するための優れた汎用性や異なる運用形態への高い適応性を持ったノードが実現される。
【０１０６】
以上、本発明のノード、そのような複数のノードから構成されるクラスタリングシステム、クラスタリングシステムの制御方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものも本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１０７】
本発明のノード、クラスタリングシステム、クラスタリングシステムの制御方法、およびプログラムは、ＩＰアドレスのフェイルオーバーを行う高可用性クラスタリングシステムに好適に利用できる。
【符号の説明】
【０１０８】
１０  クラスタリングシステム
１１〜１４  ノード
１７  ＨＤＤ
１８  ＮＩＣ
１９  ネットワーク
２０  サービス実行部
２１  ＷＥＢ層
２２  ＡＰ層
２３  ＤＢ層
３０  仮想アドレス制御部
３１  状態管理部
３２  状態テーブル
３３  停止復帰検出部
３４  代替判断部
３５  代替ノード決定部
３６  代替開始終了部
９１〜９４  クライアント
【図１】
0005594668.tif 000002
【図２】
0005594668.tif 000003
【図３】
0005594668.tif 000004
【図４】
0005594668.tif 000005
【図５】
0005594668.tif 000006
【図６】
0005594668.tif 000007
【図７】
0005594668.tif 000008
【図８】
0005594668.tif 000009
【図９】
0005594668.tif 000010
【図１０】
0005594668.tif 000011