(57)【要約】  クライアントへの現用系サーバによるサービスの提供が適切に行われているか否かをより確実に判断する。クラスタシステム（１）は、ネットワーク（４）を介してクライアント装置に所定のサービスを提供する現用系サーバ（２）と、現用系サーバ（２）に異常が発生した場合に、現用系サーバ（２）に代って所定のサービスをクライアント装置に提供する待機系サーバ（３）とを備える。待機系サーバ（３）は、ネットワーク（４）を介して、現用系サーバ（２）が提供する所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する監視部（６）を有する。現用系サーバ（２）は、現用系サーバ（２）が提供する所定のサービスに正常にアクセスできないと待機系サーバ（３）の監視部（６）によって判定された場合、フェイルオーバーを実施するクラスタ制御部（５）を有する。
2019049433.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してクライアント装置に所定のサービスを提供する現用系サーバ装置と、
前記現用系サーバ装置に異常が発生した場合に、前記現用系サーバ装置に代って前記所定のサービスを前記クライアント装置に提供する待機系サーバ装置と
を備え、
前記待機系サーバ装置は、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する第１の監視手段を有し、
前記現用系サーバ装置は、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置の前記第１の監視手段によって判定された場合、フェイルオーバーを実施するクラスタ制御手段を有する
クラスタシステム。
【請求項２】
前記クラスタ制御手段は、複数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項１に記載のクラスタシステム。
【請求項３】
前記クラスタ制御手段は、複数の前記待機系サーバ装置のうち所定の割合以上の数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項１に記載のクラスタシステム。
【請求項４】
前記待機系サーバ装置は、さらに、前記待機系サーバ装置自身の稼働状態を監視する第２の監視手段を有し、
前記現用系サーバ装置の前記クラスタ制御手段は、前記第２の監視手段により異常が検知されていない複数の前記待機系サーバ装置のうち所定の割合以上の数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項３に記載のクラスタシステム。
【請求項５】
前記現用系サーバ装置は、さらに、前記現用系サーバ装置自身の稼働状態を監視する第３の監視手段を有し、
前記現用系サーバ装置の前記クラスタ制御手段は、前記第２の監視手段により異常が検知されていない前記待機系サーバ装置が存在しない場合、前記第３の監視手段による監視結果に基づいて、フェイルオーバーを実施するか否かを決定する
請求項４に記載のクラスタシステム。
【請求項６】
前記ネットワークは、パブリックＬＡＮであり、前記現用系サーバ装置と前記待機系サーバ装置の相互間で死活監視を行うために用いられるインタコネクトＬＡＮとは別のネットワークである
請求項１乃至５のいずれか１項に記載のクラスタシステム。
【請求項７】
現用系サーバ装置が、ネットワークを介してクライアント装置に所定のサービスを提供し、
前記現用系サーバ装置とともにクラスタシステムを構成する待機系サーバ装置が、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視し、
前記現用系サーバ装置が、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置によって判定された場合、フェイルオーバーを実施する
クラスタシステムの制御方法。
【請求項８】
ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供手段と、
前記サービス提供手段が提供する前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御手段と
を有し、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
サーバ装置。
【請求項９】
ネットワークを介してクライアント装置に所定のサービスを提供し、
前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施し、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
制御方法。
【請求項１０】
ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供ステップと、
前記サービス提供ステップの処理により提供される前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御ステップと
をコンピュータに実行させ、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
プログラムが格納された非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクラスタシステム、クラスタシステムの制御方法、サーバ装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体に関する。
【背景技術】
【０００２】
システムの可用性を向上させるための技術として、ＨＡ（High Availability：高可用性）クラスタシステムがある。例えば、特許文献１は、クライアントからの処理要求に応答して処理業務を実行する運用系装置と、運用系装置が故障した場合にその処理業務を引き継ぐ待機系装置と、運用系装置と待機系装置とクライアントとを接続するＬＡＮ（Local Area Network）と、運用系装置と待機系装置の装置間を接続する連絡パスとを有するクラスタシステムについて開示している。【０００３】
ＨＡクラスタシステムでは、一般的に、業務サービスなどの所定のサービスを提供する現用系サーバと、障害が発生した際にサービスを引き継いで提供する待機系サーバが存在している。クラスタを構成する起動中の各サーバは、相互通信が可能かどうかについて相互に監視する。すなわち、ハートビートによる監視である。また、これ以外に、現用系サーバは、自サーバが正常にサービスを提供できている状態であるかどうかについて監視し、待機系サーバも、自サーバが正常にサービスを引き継げる状態であるかについて監視している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３３８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現用系サーバは、自サーバの監視においては、例えば、ディスク監視、ＮＩＣ（Network Interface Card）監視、パブリックＬＡＮ監視、及び、特定のサービス向けの監視（ＨＴＴＰ（Hypertext Transfer Protocol）のプロトコル監視など）を組み合わせて、自サーバが適切にサービスを提供できているかを判断する。しかしながら、この判断はあくまで現用系サーバ自身による判断であるため、実際に外部クライアントに対してパブリックＬＡＮ経由でサービスを提供できていることを確実に保証できるわけではない。【０００６】
本発明の目的は、上述した課題を鑑み、クライアントへの現用系サーバによるサービスの提供が適切に行われているか否かをより確実に判断することができるクラスタシステム、クラスタシステムの制御方法、サーバ装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様にかかるクラスタシステムは、ネットワークを介してクライアント装置に所定のサービスを提供する現用系サーバ装置と、前記現用系サーバ装置に異常が発生した場合に、前記現用系サーバ装置に代って前記所定のサービスを前記クライアント装置に提供する待機系サーバ装置とを備え、前記待機系サーバ装置は、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する第１の監視手段を有し、前記現用系サーバ装置は、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置の前記第１の監視手段によって判定された場合、フェイルオーバーを実施するクラスタ制御手段を有する。【０００８】
本発明の一態様にかかるクラスタシステムの制御方法では、現用系サーバ装置が、ネットワークを介してクライアント装置に所定のサービスを提供し、前記現用系サーバとともにクラスタシステムを構成する待機系サーバ装置が、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視し、前記現用系サーバ装置が、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置によって判定された場合、フェイルオーバーを実施する。【０００９】
本発明の一態様にかかるサーバ装置は、ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供手段と、前記サービス提供手段が提供する前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御手段とを有し、前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である。
また、本発明の一態様にかかる制御方法では、ネットワークを介してクライアント装置に所定のサービスを提供し、前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施し、前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である。【００１０】
本発明の一態様にかかるプログラムは、ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供ステップと、前記サービス提供ステップの処理により提供される前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御ステップとをコンピュータに実行させ、前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である。
【発明の効果】
【００１１】
本発明によれば、クライアントへの現用系サーバによるサービスの提供が適切に行われているか否かをより確実に判断することができるクラスタシステム、クラスタシステムの制御方法、サーバ装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態の概要にかかるクラスタシステムの構成の一例を示すブロック図である。
【図２】実施の形態にかかるクラスタシステムの機能構成の一例を示すブロック図である。
【図３】実施の形態にかかるクラスタシステムを構成する各サーバのハードウェア構成の一例を示すブロック図である。
【図４】クラスタシステムにおける業務サービスの提供開始時の動作例を示すシーケンスチャートである。
【図５】待機系のサーバで業務サービスの異常を検出した場合のクラスタシステムの動作例を示すシーケンスチャートである。
【図６】クラスタシステムにおいて、１台の待機系のサーバにおいて、異常が発生した場合の動作例を示すシーケンスチャートである。
【図７】クラスタシステムにおいて、全ての待機系のサーバにおいて、異常が発生した場合の動作例を示すシーケンスチャートである。
【図８】実施の形態にかかるサーバ装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１４】
＜実施の形態の概要＞
実施の形態の説明に先立って、本発明にかかる実施の形態の概要を説明する。図１は、実施の形態の概要にかかるクラスタシステム１の構成の一例を示すブロック図である。図１に示すように、クラスタシステム１は、現用系サーバ２と、待機系サーバ３と、ネットワーク４とを有する。
【００１５】
現用系サーバ２は、ネットワーク４を介してクライアント装置（図示せず）に所定のサービスを提供するサーバ装置である。すなわち、クライアント装置は、ネットワーク４を介して現用系サーバ２が提供する所定のサービスにアクセスする。
待機系サーバ３は、現用系サーバ２に異常が発生した場合に、現用系サーバ２に代って所定のサービスをクライアント装置に提供するサーバ装置である。
【００１６】
また、待機系サーバ３は、監視部６（監視手段）を有し、現用系サーバ２は、クラスタ制御部５（クラスタ制御手段）を有する。監視部６は、ネットワーク４を介して、現用系サーバ２が提供する所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する。すなわち、監視部６は、クライアント装置と同様、ネットワーク４を介して現用系サーバ２にアクセスする。クラスタ制御部５は、現用系サーバ２が提供する所定のサービスに正常にアクセスできないと待機系サーバ３の監視部６によって判定された場合、フェイルオーバーを実施する。クラスタ制御部５は、例えば、所定サービスの提供を待機系サーバ３が引き継ぐようフェイルオーバーの処理を実施する。
【００１７】
一般的に、現用系サーバ自身がサービスについて監視する場合、ループバックアドレスが使用される。このため、サーバ内に閉じた通信処理による監視となってしまう。そのため、実際にクライアント装置が用いるネットワーク経由で特定のポート番号に対して通信してサービスにアクセスできるか否かを確認することができない。また、サーバに接続するネットワーク機器に対するping（ＩＣＭＰ（Internet Control Message Protocol）)による疎通確認は可能であるが、外部のネットワーク機器の故障、ＯＳ（Operating System）のバグ、ファイアウォールの設定ミスなどによって特定のポート番号で外部通信ができない場合は異常を検出することが困難である。このため、クライアント装置にサービスを提供できることを確実に判断することができない。また、サービスを監視する運用管理ソフトウェア及び運用管理サーバを導入することでより確実な判断を期待することもできるが、これらの導入及び運用コストがかかる。
【００１８】
これに対し、クラスタシステム１では、待機系サーバ３が、クライアント装置がアクセスに用いるのと同じネットワーク４経由で現用系サーバ２が提供するサービスにアクセスし、これにより現用系サーバ２によるサービス提供を監視する。したがって、実際にサービスの提供を受けるクライアント装置と同様のアクセスによりサービス提供について監視できる。
【００１９】
このため、クラスタシステム１によれば、クライアント装置への現用系サーバによるサービスの提供が適切に行われているか否かをより確実に判断することができる。また、待機系サーバ３を用いた監視であるため、サービスを監視するための運用管理サーバを新たに用意することやサービス監視用の運用管理ソフトウェアを新たに導入する必要なくなり、導入及び運用のコストを抑えることが可能となる。
【００２０】
＜実施の形態１＞
以下、本発明の実施の形態について説明する。図２は、実施の形態にかかるクラスタシステム１０の機能構成の一例を示すブロック図である。また、図３は、クラスタシステム１０を構成する各サーバのハードウェア構成の一例を示すブロック図である。
【００２１】
図２に示すように本実施の形態にかかるクラスタシステム１０は、現用系サーバ１００Ａと、待機系サーバ１００Ｂと、待機系サーバ１００Ｃと、ネットワーク２００と、ネットワーク３００とを有する。現用系サーバ１００Ａと待機系サーバ１００Ｂ、１００Ｃは、それぞれクラスタウェア１１０Ａ、１１０Ｂ、１１０Ｃを有しており、ネットワーク２００及び３００によって相互通信することで、ＨＡクラスタシステムを構成している。以下の説明において、クラスタシステム１０を構成するサーバについて、特に区別せずに言及する場合、サーバ１００と称すことがある。
【００２２】
現用系サーバ１００Ａは、図１の現用系サーバ２に対応しており、ネットワーク２００を介してクライアントに業務サービスを提供するサーバである。また、待機系サーバ１００Ｂ、１００Ｃは、図１の待機系サーバ３に対応しており、現用系サーバ１００Ａに異常が発生した場合に、現用系サーバ１００Ａに代って業務サービスをクライアントに提供するサーバである。すなわち、待機系サーバ１００Ｂ、１００Ｃは、フェイルオーバーが実施された場合に、業務サービスのクライアントへの提供を引き継ぐ装置である。
【００２３】
現用系サーバ１００Ａは、図２に示すように、業務サービス提供部１２０Ａと、クラスタウェア１１０Ａとを有する。また、クラスタウェア１１０Ａは、業務サービス制御部１１１Ａと、他サーバ監視部１１２Ａと、自サーバ監視部１１３Ａと、クラスタ制御部１１４Ａとを有する。待機系サーバ１００Ｂ、１００Ｃは、現用系サーバ１００Ａと同様の構成を備える。すなわち、待機系サーバ１００Ｂは、業務サービス提供部１２０Ｂと、業務サービス制御部１１１Ｂ、他サーバ監視部１１２Ｂ、自サーバ監視部１１３Ｂ、及びクラスタ制御部１１４Ｂを含むクラスタウェア１１０Ｂとを有する。また、待機系サーバ１００Ｃは、業務サービス提供部１２０Ｃと、業務サービス制御部１１１Ｃ、他サーバ監視部１１２Ｃ、自サーバ監視部１１３Ｃ、及びクラスタ制御部１１４Ｃを含むクラスタウェア１１０Ｃとを有する。
【００２４】
なお、業務サービス提供部１２０Ａ、１２０Ｂ、１２０Ｃについて、特に区別せずに言及する場合、業務サービス提供部１２０と称すことがある。クラスタウェア１１０Ａ、１１０Ｂ、１１０Ｃについて、特に区別せずに言及する場合、クラスタウェア１１０と称すことがある。業務サービス制御部１１１Ａ、１１１Ｂ、１１１Ｃについて、特に区別せずに言及する場合、業務サービス制御部１１１と称すことがある。他サーバ監視部１１２Ａ、１１２Ｂ、１１２Ｃについて、特に区別せずに言及する場合、他サーバ監視部１１２と称すことがある。自サーバ監視部１１３Ａ、１１３Ｂ、１１３Ｃについて、特に区別せずに言及する場合、自サーバ監視部１１３と称すことがある。クラスタ制御部１１４Ａ、１１４Ｂ、１１４Ｃについて、特に区別せずに言及する場合、クラスタ制御部１１４と称すことがある。
【００２５】
ここで、図３を参照して、各サーバ１００のハードウェア構成の一例を示す。サーバ１００は、ネットワークインタフェース１５１、メモリ１５２、及びプロセッサ１５３を含む。
【００２６】
ネットワークインタフェース１５１は、ネットワーク２００又はネットワーク３００を介して他の装置と通信するために使用される。ネットワークインタフェース１５１は、例えば、ネットワークインタフェースカード（ＮＩＣ）を含んでもよい。
【００２７】
メモリ１５２は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ１５２は、プロセッサ１５３から離れて配置されたストレージを含んでもよい。この場合、プロセッサ１５３は、図示されていない入出力インタフェースを介してメモリ１５２にアクセスしてもよい。
【００２８】
メモリ１５２は、プロセッサ１５３により実行されるソフトウェア（コンピュータプログラム）などを格納するために使用される。
【００２９】
このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、Compact Disc Read Only Memory（CD-ROM）、CD-R、CD-R/W、半導体メモリ（例えば、マスクROM、Programmable ROM（PROM）、Erasable PROM（EPROM）、フラッシュROM、Random Access Memory（RAM））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３０】
プロセッサ１５３は、メモリ１５２からコンピュータプログラムを読み出して実行することで、業務サービス提供部１２０の処理、クラスタウェア１１０の処理、及びその他の処理を行う。プロセッサ１５３は、例えば、マイクロプロセッサ、ＭＰＵ、又はＣＰＵであってもよい。プロセッサ１５３は、複数のプロセッサを含んでもよい。
【００３１】
ネットワーク２００は、パブリックＬＡＮであり、各サーバ１００の相互通信の他、外部のクライアントとの通信に用いられるネットワークである。すなわち、ネットワーク２００は、外部クライアントに対して業務サービスを提供するためのネットワーク経路として用いられる。
【００３２】
ネットワーク３００は、インタコネクトＬＡＮであり、各サーバ１００の相互通信に用いられるものの、外部クライアントとの通信には用いられない。業務サービスへの影響を避けることやセキュリティを考慮し、ネットワーク３００は、クラスタシステム１０内の専用の回線として用いられる。ネットワーク３００は、クラスタシステム１０における内部通信(処理要求、各サーバ１００間のハートビート(死活監視)、業務データの同期等)で使用される。
【００３３】
このように、ネットワーク２００は、現用系のサーバ１００と待機系のサーバ１００の相互間で死活監視を行うために用いられるネットワーク３００とは別のネットワークである。
【００３４】
次に、図２示した各サーバ１００の構成について説明する。
業務サービス提供部１２０は、ネットワーク２００を介するアクセスを受け、所定の業務サービスを提供する。すなわち、業務サービス提供部１２０（サービス提供手段）は、ネットワーク２００を介してクライアント装置に所定のサービスを提供する。なお、業務サービス提供部１２０は、現用系のサーバ１００において動作するモジュールである。したがって、現用系サーバ１００Ａにおける業務サービス制御部１１１Ａは動作しているが、待機系サーバ１００Ｂ、１００Ｃにおける業務サービス制御部１１１Ｂ、１１１Ｃは動作していない。
【００３５】
クラスタ制御部１１４は、図１のクラスタ制御部５と対応しており、他のサーバのクラスタ制御部１１４と協働し、クラスタシステム１０の可用性を実現するための種々の制御を実施する。クラスタ制御部１１４は、ハートビートによる他のサーバ１００の死活監視、及びフェイルオーバの実施などを行う。また、クラスタ制御部１１４は、他サーバ監視部１１２による監視結果を他のサーバ１００に通知し、各サーバ１００間での監視結果の同期を実現する。なお、各サーバ１００に同期された業務サービスの監視結果は、業務サービスが正常であるかの判断や各サーバ１００のクラスタ管理ＧＵＩ（Graphical User Interface）の表示情報として利用される。クラスタ制御部１１４のその他の処理内容については、クラスタシステム１０の動作とともに後述する。
【００３６】
業務サービス制御部１１１は、業務サービス提供部１２０の起動及び停止を制御する。本実施の形態では、業務サービス制御部１１１は、クラスタ制御部１１４からの起動要求に応じて、業務サービス提供部１２０を起動するよう制御し、クラスタ制御部１１４からの停止要求に応じて、業務サービス提供部１２０を停止するよう制御する。すなわち、例えば、業務サービス制御部１１１Ａは、クラスタ制御部１１４Ａからの起動要求に応じて、業務サービス提供部１２０Ａを起動するよう制御し、クラスタ制御部１１４Ａからの停止要求に応じて、業務サービス提供部１２０Ａを停止するよう制御する。
【００３７】
自サーバ監視部１１３（監視手段）は、自サーバのディスクやＮＩＣ等の状態を監視する。自サーバ監視部１１３は、監視により障害を検出した場合、クラスタ制御部１１４に対して異常を通知する。すなわち、例えば、自サーバ監視部１１３Ａは、現用系サーバ１００Ａ自身の稼働状態を監視し、クラスタ制御部１１４Ａに監視結果を通知する。同様に、例えば、自サーバ監視部１１３Ｂは、待機系サーバ１００Ｂ自身の稼働状態を監視し、クラスタ制御部１１４Ｂに監視結果を通知する。
【００３８】
他サーバ監視部１１２（監視手段）は、図１の監視部６と対応しており、ネットワーク２００を介して、現用系のサーバ１００の業務サービス提供部１２０が提供する所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する。すなわち、例えば、他サーバ監視部１１２Ｂは、業務サービス提供部１２０Ａが提供する所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する。なお、他サーバ監視部１１２は、待機系のサーバ１００において動作するモジュールである。したがって、待機系サーバ１００Ｂ、１００Ｃにおける他サーバ監視部１１２Ｂ、１１２Ｃは動作しているが、現用系サーバ１００Ａにおける他サーバ監視部１１２は動作していない。つまり、待機系サーバ１００Ｂ、１００Ｃは、他サーバ監視部１１２Ｂ、１１２Ｃによって、ネットワーク２００経由で現用系サーバ１００Ａが提供する業務サービスにアクセスできるかどうかを監視する。なお、本実施の形態では、他サーバ監視部１１２は、定期的に、監視を行う。他サーバ監視部１１２は、監視結果をクラスタ制御部１１４に通知する。すなわち、例えば、他サーバ監視部１１２Ｂは、監視結果をクラスタ制御部１１４Ｂに通知する。
【００３９】
他サーバ監視部１１２は、現用系のサーバ１００で提供される業務サービスのプロトコル（ＦＴＰ、ＨＴＴＰ、ＩＭＡＰ４、ＰＯＰ３、ＳＭＴＰなど）に応じた監視処理を行う。また、他サーバ監視部１１２は、実際の外部クライアントと同等のアクセスを行うため、上述の通りネットワーク２００を経由した監視処理を行う。ここで、他サーバ監視部１１２による監視処理の具体例について説明する。
【００４０】
提供される業務サービスがＦＴＰ（File Transfer Protocol）を用いたサービスである場合、すなわち現用系サーバ１００ＡがＦＴＰサーバとして機能する場合、他サーバ監視部１１２は、監視対象のＦＴＰサーバに接続し、ユーザー認証処理を行う。その後、他サーバ監視部１１２は、ＦＴＰサーバのファイル一覧の取得を行う。他サーバ監視部１１２は、これらの処理が全て正常だったことをもって、サービス提供が正常に行われていると判断する。
【００４１】
提供される業務サービスがＨＴＴＰを用いたサービスである場合、すなわち現用系サーバ１００ＡがＨＴＴＰサーバとして機能する場合、他サーバ監視部１１２は、監視対象のＨＴＴＰサーバに対してＨＴＴＰリクエストを送信し、ＨＴＴＰサーバからのＨＴＴＰレスポンスの処理結果が正常だったことをもって、サービス提供が正常に行われていると判断する。
【００４２】
提供される業務サービスがＩＭＡＰ４（Internet Message Access Protocol 4）を用いたサービスである場合、すなわち現用系サーバ１００ＡがＩＭＡＰサーバとして機能する場合、他サーバ監視部１１２は、監視対象のＩＭＡＰサーバに接続し、ユーザー認証処理を行う。その後、他サーバ監視部１１２は、ＮＯＯＰコマンドを実行する。他サーバ監視部１１２は、これらの処理が全て正常だったことをもって、サービス提供が正常に行われていると判断する。
【００４３】
提供される業務サービスがＰＯＰ３（Post Office Protocol 3）を用いたサービスである場合、すなわち現用系サーバ１００ＡがＰＯＰ３サーバとして機能する場合、他サーバ監視部１１２は、監視対象のＰＯＰ３サーバに接続し、ユーザー認証処理を行う。その後、他サーバ監視部１１２は、ＮＯＯＰコマンドを実行する。他サーバ監視部１１２は、これらの処理が全て正常だったことをもって、サービス提供が正常に行われていると判断する。
【００４４】
提供される業務サービスがＳＭＴＰ（Simple Mail Transfer Protocol）を用いたサービスである場合、すなわち現用系サーバ１００ＡがＳＭＴＰサーバとして機能する場合、他サーバ監視部１１２は、監視対象のＳＭＴＰサーバに接続し、ユーザー認証処理を行う。その後、他サーバ監視部１１２は、ＮＯＯＰコマンドを実行する。他サーバ監視部１１２は、これらの処理が全て正常だったことをもって、サービス提供が正常に行われていると判断する。
【００４５】
なお、システム環境に合わせて最適な監視を実現できるように、他サーバ監視部１１２による監視において異常を判断するための閾値として、タイムアウト時間又はリトライ回数が設けられてもよい。例えば、他サーバ監視部１１２は、予め定められたタイムアウト時間内に業務サービスに正常にアクセスできない場合に現用系のサーバ１００によるサービス提供が正常に行われていないと判断してもよい。また、他サーバ監視部１１２は、予め定められたリトライ回数以内に業務サービスに正常にアクセスできない場合に現用系のサーバ１００によるサービス提供が正常に行われていないと判断してもよい。
【００４６】
クラスタシステム１０では、上述のような構成により、例えば次のような動作が行われる。現用系サーバ１００Ａでは、クラスタ制御部１１４Ａの要求により業務サービス制御部１１１Ａの制御の下、業務サービス提供部１２０Ａが起動される。これにより、業務サービス提供部１２０Ａは、外部クライアントに対してネットワーク２００経由で業務サービスを提供する。また、現用系サーバ１００Ａでは、自サーバ監視部１１３が、現用系サーバ１００Ａ自身の稼働状態を監視し、障害が発生していた場合は、クラスタ制御部１１４Ａに対して異常を通知する。異常の通知を受けたクラスタ制御部１１４Ａは、業務サービス制御部１１１Ａに業務サービスの停止を要求することで、業務サービス提供部１２０Ａの動作を停止する。その後、クラスタ制御部１１４Ａは待機系サーバ１００Ｂのクラスタ制御部１１４Ｂに業務サービス提供部１２０Ｂの起動を要求し、待機系サーバ１００Ｂから業務サービスを提供可能とすることでフェイルオーバーを行う。
【００４７】
また、待機系サーバ１００Ｂ、１００Ｃでは、自サーバ監視部１１３Ｂ、１１３Ｃによって、自サーバの稼働状態を監視する。また、他サーバ監視部１１２Ｂ、１１２Ｃが、ネットワーク２００経由で現用系サーバ１００Ａが提供する業務サービスにアクセスできるかどうかを監視する。クラスタ制御部１１４Ｂ、１１４Ｃは、他サーバ監視部１１２による監視結果を現用系サーバ１００Ａのクラスタ制御部１１４Ａに通知する。クラスタ制御部１１４Ａは、待機系サーバ１００Ｂ、１００Ｃの両方において、現用系サーバ１００Ａの業務サービスにアクセスできないという監視結果が得られた場合、現用系サーバ１００Ａで障害が発生していると判断し、業務サービスのフェイルオーバーを行う。
【００４８】
このように、本実施の形態では、クラスタ制御部１１４Ａは、複数の待機系のサーバ１００の他サーバ監視部１１２によって、現用系サーバ１００Ａが提供する所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する。より詳細には、クラスタ制御部１１４Ａは、複数の待機系のサーバ１００のうち所定の割合以上の数の待機系のサーバ１００の他サーバ監視部１１２によって、現用系サーバ１００Ａが提供する所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する。なお、本実施の形態では、具体的には、複数の待機系のサーバ１００のうち過半数の待機系のサーバ１００の他サーバ監視部１１２によって、サービスに正常にアクセスできないと判定された場合に、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、フェイルオーバーを実施する。このように本実施の形態では、クラスタシステム１０では、複数の待機系のサーバ１００の他サーバ監視部１１２の監視結果を統合して、フェイルオーバーを実施するか否かが判定される。したがって、待機系のサーバ１００の故障に起因した他サーバ監視部１１２の誤検知に基づくフェイルオーバーの発生が抑止される。
【００４９】
次に、シーケンスチャートを用いて、クラスタシステム１０の具体的な動作例について説明する。図４は、クラスタシステム１０における業務サービスの提供開始時の動作例を示すシーケンスチャートである。以下、図４に沿って、クラスタシステム１０の動作を説明する。
【００５０】
ステップ１０１（Ｓ１０１）において、クラスタ制御部１１４Ａが、業務サービス制御部１１１Ａに業務サービス提供部１２０Ａの起動を要求する。このため、ステップ１０２（Ｓ１０２）において、業務サービス制御部１１１Ａは、業務サービス提供部１２０Ａを起動する。
【００５１】
業務サービスが利用可能な状態になると、ステップ１０３（Ｓ１０３）において、現用系サーバ１００Ａで提供が開始された業務サービスについての定期監視処理の開始を、クラスタ制御部１１４Ａがクラスタ制御部１１４Ｂに要求する。このため、ステップ１０４（Ｓ１０４）において、クラスタ制御部１１４Ｂは、他サーバ監視部１１２Ｂに現用系サーバ１００Ａで提供が開始された業務サービスの定期監視処理の開始を要求する。
【００５２】
次に、ステップ１０５（Ｓ１０５）において、現用系サーバ１００Ａで提供が開始された業務サービスについての定期監視処理の開始を、クラスタ制御部１１４Ａがクラスタ制御部１１４Ｃに要求する。このため、ステップ１０６（Ｓ１０６）において、クラスタ制御部１１４Ｃは、他サーバ監視部１１２Ｃに現用系サーバ１００Ａで提供が開始された業務サービスの定期監視処理の開始を要求する。
【００５３】
次に、ステップ１０７（Ｓ１０７）において、他サーバ監視部１１２Ｂが、業務サービスの定期監視処理を実施する。他サーバ監視部１１２Ｂは、ネットワーク２００経由で、実際に業務サービスにアクセスし、利用可能であるかどうかの確認を行う。なお、ここでは、正常にアクセスできる（すなわち、業務サービスを正常に利用可能である）と判定されたとする。
ステップ１０８（Ｓ１０８）において、他サーバ監視部１１２Ｂは、クラスタ制御部１１４Ｂにステップ１０７で実施した監視結果（正常）を通知する。
ステップ１０９（Ｓ１０９）において、クラスタ制御部１１４Ｂは、他の各サーバ１００にステップ１０８で通知された監視結果（正常）を通知し、監視結果についての同期を行う。
【００５４】
次に、ステップ１１０（Ｓ１１０）において、クラスタ制御部１１４Ａは、同期された監視結果を確認し、フェイルオーバーが必要かどうかを判断する。ここではクラスタ制御部１１４Ａは、フェイルオーバーは不要と判断する。
【００５５】
次に、ステップ１１１（Ｓ１１１）において、他サーバ監視部１１２Ｃが、他サーバ監視部１１２Ｂと同様に、業務サービスの定期監視処理を実施する。なお、ここでは、正常にアクセスできる（すなわち、業務サービスを正常に利用可能である）と判定されたとする。
ステップ１１２（Ｓ１１２）において、他サーバ監視部１１２Ｃは、クラスタ制御部１１４Ｃにステップ１１１で実施した監視結果（正常）を通知する。
ステップ１１３（Ｓ１１３）において、クラスタ制御部１１４Ｃは、他の各サーバ１００にステップ１１２で通知された監視結果（正常）を通知し、監視結果についての同期を行う。
【００５６】
次に、ステップ１１４（Ｓ１１４）において、クラスタ制御部１１４Ａは、同期された監視結果を確認し、フェイルオーバーが必要かどうかを判断する。ここではクラスタ制御部１１４Ａは、フェイルオーバーは不要と判断する。
【００５７】
図５は、待機系のサーバ１００で業務サービスの異常を検出した場合のクラスタシステム１０の動作例を示すシーケンスチャートである。以下、図５に沿って、他サーバ監視部１１２が異常を検出した場合のクラスタシステム１０の動作について説明する。
【００５８】
ステップ２０１（Ｓ２０１）において、業務サービス提供部１２０Ａが提供する業務サービスに障害が発生し、外部クライアントから業務サービスが利用不能な状態となる。
【００５９】
ステップ２０２（Ｓ２０２）において、他サーバ監視部１１２Ｂが、図４のステップ１０７と同様、業務サービスの定期監視処理を実施する。ステップ２０２において、他サーバ監視部１１２は、正常にアクセスできない（すなわち、業務サービスを正常に利用できない）と判定する。
ステップ２０３（Ｓ２０３）において、他サーバ監視部１１２Ｂは、クラスタ制御部１１４Ｂにステップ２０２で実施した監視結果（異常）を通知する。
ステップ２０４（Ｓ２０４）において、クラスタ制御部１１４Ｂは、他の各サーバ１００にステップ２０３で通知された監視結果（異常）を通知し、監視結果についての同期を行う。
【００６０】
次に、ステップ２０５（Ｓ２０５）において、クラスタ制御部１１４Ａは、同期された監視結果を確認し、フェイルオーバーが必要かどうかを判断する。現時点では、異常を検出した待機系のサーバ１００は１台であり、待機系のサーバ１００の総数の過半数を下回っているため、クラスタ制御部１１４Ａは、フェイルオーバーは不要と判断する。
【００６１】
ステップ２０６（Ｓ２０６）において、他サーバ監視部１１２Ｃが、図４のステップ１１１と同様、業務サービスの定期監視処理を実施する。ステップ２０６において、他サーバ監視部１１２は、正常にアクセスできない（すなわち、業務サービスを正常に利用できない）と判定する。
ステップ２０７（Ｓ２０７）において、他サーバ監視部１１２Ｃは、クラスタ制御部１１４Ｃにステップ２０６で実施した監視結果（異常）を通知する。
ステップ２０８（Ｓ２０８）において、クラスタ制御部１１４Ｃは、他の各サーバ１００にステップ２０７で通知された監視結果（異常）を通知し、監視結果についての同期を行う。
【００６２】
次に、ステップ２０９（Ｓ２０９）において、クラスタ制御部１１４Ａは、同期された監視結果を確認し、フェイルオーバーが必要かどうかを判断する。異常を検出した待機系のサーバ１００は２台であり、待機系のサーバ１００の総数の過半数を上回っているため、クラスタ制御部１１４Ａは、フェイルオーバーを開始する。具体的には、フェイルオーバー処理として以下の処理が行われる。
【００６３】
ステップ２１０（Ｓ２１０）において、クラスタ制御部１１４Ａは、クラスタ制御部１１４Ｂに業務サービスの定期監視処理の終了を要求する。このため、ステップ２１１（Ｓ２１１）において、クラスタ制御部１１４Ｂは、他サーバ監視部１１２Ｂに業務サービスの定期監視処理の終了を要求する。
【００６４】
また、ステップ２１２（Ｓ２１２）において、クラスタ制御部１１４Ａは、クラスタ制御部１１４Ｃに業務サービスの定期監視処理の終了を要求する。このため、ステップ２１３（Ｓ２１３）において、クラスタ制御部１１４Ｃは、他サーバ監視部１１２Ｃに業務サービスの定期監視処理の終了を要求する。
【００６５】
次に、ステップ２１４（Ｓ２１４）において、クラスタ制御部１１４Ａは、業務サービス制御部１１１Ａに業務サービスの提供の停止を要求する。このため、ステップ２１５（Ｓ２１５）において、業務サービス制御部１１１Ａは、業務サービス提供部１２０Ａの処理を停止させる。以降、いずれかの待機系のサーバ１００で起動処理が行われ、フェイルオーバーが完了する。すなわち、待機系のサーバ１００において、業務サービスの提供が引き継がれる。
【００６６】
以上、実施の形態１について説明した。本実施の形態では、上述の通り、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、業務サービス提供部１２０Ａが提供する所定のサービスにネットワーク２００を介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ１００Ｂ、１００Ｃが送信した監視結果を取得する。そして、クラスタ制御部１１４Ａは、取得した監視結果が待機系のサーバ１００から所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施する。したがって、実際にサービスの提供を受けるクライアントと同様のアクセスによりサービス提供についての監視が行われる。このため、実施の形態１にかかるクラスタシステム１０によれば、クライアントへの現用系サーバ１００Ａによるサービスの提供が適切に行われているか否かをより確実に判断することができる。また、待機系サーバ１００Ｂ、１００Ｃを用いた監視であるため、サービスを監視するための運用管理サーバを新たに用意したり、サービス監視用の運用管理ソフトウェアを新たに導入したりする必要がない。
【００６７】
また、本実施の形態では、複数の待機系のサーバ１００のうち過半数の待機系のサーバ１００の他サーバ監視部１１２によって、サービスに正常にアクセスできないと判定された場合に、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、フェイルオーバーを実施する。このため、待機系のサーバ１００の故障や待機系のサーバ１００と接続するネットワーク機器の故障などによって、他サーバ監視部１１２の監視が正常に行われない場合の誤検知による影響を抑制することができる。
【００６８】
＜実施の形態２＞
次に、実施の形態２について、実施の形態１と異なる点を説明する。実施の形態１では、クラスタ制御部１１４Ａは、クラスタシステム１０を構成する全ての待機系のサーバ１００のうち所定の割合以上の数の待機系のサーバ１００の他サーバ監視部１１２によって、現用系サーバ１００Ａが提供する所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施した。すなわち、実施の形態１では、待機系のサーバ１００が正常に稼働しているか否かに関わらず、待機系のサーバ１００の他サーバ監視部１１２の監視結果をフェイルオーバーの実施についての判断に用いた。
【００６９】
これに対し、本実施の形態では、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、自サーバ監視部１１３により異常が検知されていない複数の待機系のサーバ１００のうち所定の割合以上の数の待機系のサーバ１００の他サーバ監視部１１２によって、現用系サーバ１００Ａが提供する所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する。すなわち、本実施の形態では、待機系のサーバ１００の自サーバ監視部１１３によって自サーバの異常が検知されている場合は、そのサーバ１００の他サーバ監視部１１２の監視結果は、多数決の際の件数には含めない。
【００７０】
また、本実施の形態では、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、自サーバ監視部１１３により異常が検知されていない待機系のサーバ１００が存在しない場合、現用系サーバ１００Ａの自サーバ監視部１１３Ａによる監視結果に基づいて、フェイルオーバーを実施するか否かを決定する。すなわち、本実施の形態では、自サーバ監視部１１３により正常に動作していると判定される待機系のサーバ１００が存在していない場合、言い換えると、他サーバ監視部１１２が正常に動作している待機系のサーバ１００が存在していない場合、現用系サーバ１００Ａのクラスタ制御部１１４Ａは、自サーバ監視部１１３Ａの監視結果によって、業務サービスが正常に提供されているか否かを判定する。現用系サーバ１００Ａの自サーバ監視部１１３Ａは、例えば、ループバックアドレスを用いて、業務サービス制御部１１１Ａが提供するサービスにアクセスすることで、業務サービスについての監視処理を行う。
【００７１】
シーケンスチャートを用いて、実施の形態２にかかるクラスタシステム１０の具体的な動作例について説明する。図６は、実施の形態２にかかるクラスタシステム１０において、１台の待機系のサーバ１００において、異常が発生した場合の動作例を示すシーケンスチャートである。以下、図６に沿って、クラスタシステム１０の動作を説明する。なお、図６に示した例では、クラスタシステム１０を構成する２台の待機系のサーバ１００のうち、待機系サーバ１００Ｂにおいて異常が発生した場合を示している。また、図６に示すシーケンスチャートは、例えば、図４に示したシーケンスチャートに続くシーケンスチャートである。
【００７２】
ステップ３０１（Ｓ３０１）において、待機系サーバ１００Ｂで障害が発生し、待機系サーバ１００Ｂの自サーバ監視部１１３Ｂの監視処理で障害が検知される。
ステップ３０２（Ｓ３０２）において、自サーバ監視部１１３Ｂは、クラスタ制御部１１４Ｂにステップ３０１で実施した監視結果（異常）を通知する。
ステップ３０３（Ｓ３０３）において、クラスタ制御部１１４Ｂは、他の各サーバ１００にステップ３０２で通知された監視結果（異常）を通知し、監視結果についての同期を行う。
【００７３】
次に、ステップ３０４（Ｓ３０４）において、クラスタ制御部１１４Ａは、同期された監視結果を確認する。同期された監視結果が待機系サーバ１００Ｂの異常を示すため、クラスタ制御部１１４Ａは、待機系サーバ１００Ｂの他サーバ監視部１１２Ｂによる監視結果についてフェイルオーバーの判定から除外することを示すフラグ（除外フラグ）を立てる。
【００７４】
待機系サーバ１００Ｂの除外フラグを立てたことにより、フェイルオーバーの実施が必要かどうかの判断が変わる可能性があるため、ステップ３０５（Ｓ３０５）において、クラスタ制御部１１４Ａは、待機系のサーバ１００の他サーバ監視部１１２の監視結果を再確認する。なお、この時点において、いずれの待機系のサーバ１００の他サーバ監視部１１２も、異常を検知していないものとする。この場合、クラスタ制御部１１４Ａは、フェイルオーバーは不要と判断する。
【００７５】
一方、待機系サーバ１００Ｂのクラスタ制御部１１４Ｂは、ステップ３０６（Ｓ３０６）において、他サーバ監視部１１２Ｂの監視処理を一時停止する。ここで一時停止した他サーバ監視部１１２Ｂの監視処理は、待機系サーバ１００Ｂの状態が正常に戻るまで再開しない。
【００７６】
上述の通り、クラスタ制御部１１４Ａは、待機系のサーバ１００から当該サーバ１００の異常の発生が通知されると、除外フラグを立てる。実施の形態２では、クラスタ制御部１１４Ａは、クラスタシステム１０を構成する待機系のサーバ１００のうち、除外フラグが立てられていない待機系のサーバ１００の他サーバ監視部１１２の監視結果を用いて、フェイルオーバーの実施についての判定を行う。すなわち、クラスタシステム１０を構成する待機系のサーバ１００の台数がＮ（Ｎは１以上の整数）であり、このうち、除外フラグが立てられていない待機系のサーバ１００の台数がｎ１（ｎ１は１以上Ｎ以下の整数）であるとする。また、このｎ１台の待機系のサーバ１００のうち、他サーバ監視部１１２が異常を検出したサーバの台数をｎ２（ｎ２は１以上ｎ１以下の整数）であるとする。この場合、クラスタ制御部１１４Ａは、ｎ２／ｎ１が所定の割合以上である場合（例えば、ｎ２がｎ１の過半数である場合）、フェイルオーバーを実施する。
【００７７】
このように、本実施の形態では、待機系のサーバ１００の自サーバ監視部１１３によって自サーバの異常が検知されている場合は、そのサーバ１００の他サーバ監視部１１２の監視結果を、フェイルオーバーの実施の判定には考慮しない。このため、異常が発生した待機系のサーバ１００の他サーバ監視部１１２による誤った監視結果による、フェイルオーバーの実施の判定への影響を抑制できる。
【００７８】
図７は、実施の形態２にかかるクラスタシステム１０において、全ての待機系のサーバ１００において、異常が発生した場合の動作例を示すシーケンスチャートである。なお、図７に示すシーケンスチャートは、図６に示したシーケンスチャートに続くシーケンスチャートである。すなわち、図７に示すシーケンスチャートは、待機系サーバ１００Ｂにおいて既に障害が発生している状況におけるシーケンスチャートである。以下、図７に沿って、クラスタシステム１０の動作を説明する。
【００７９】
ステップ４０１（Ｓ４０１）において、待機系サーバ１００Ｃで障害が発生し、待機系サーバ１００Ｃの自サーバ監視部１１３Ｃの監視処理で障害が検知される。
ステップ４０２（Ｓ４０２）において、自サーバ監視部１１３Ｃは、クラスタ制御部１１４Ｃにステップ４０１で実施した監視結果（異常）を通知する。
ステップ４０３（Ｓ４０３）において、クラスタ制御部１１４Ｃは、他の各サーバ１００にステップ４０２で通知された監視結果（異常）を通知し、監視結果についての同期を行う。
【００８０】
次に、ステップ４０４（Ｓ４０４）において、クラスタ制御部１１４Ａは、同期された監視結果を確認する。同期された監視結果が待機系サーバ１００Ｃの異常を示すため、クラスタ制御部１１４Ａは、待機系サーバ１００Ｃの他サーバ監視部１１２Ｃによる監視結果についてフェイルオーバーの判定から除外することを示すフラグ（除外フラグ）を立てる。
【００８１】
次に、ステップ４０５（Ｓ４０５）において、全ての待機系のサーバ１００が異常となったため、クラスタ制御部１１４Ａは、現用系サーバ１００Ａの自サーバ監視部１１３Ａによる業務サービスの監視に切り替える。このため、クラスタ制御部１１４Ａは、現用系サーバ１００Ａの自サーバ監視部１１３Ａに業務サービスの監視開始を要求する。クラスタ制御部１１４Ａは、いずれかの待機系のサーバ１００が正常になるまで、自サーバ監視部１１３Ａによる監視結果に基づいてフェイルオーバーの必要性を判定する。
【００８２】
一方、待機系サーバ１００Ｃのクラスタ制御部１１４Ｃは、ステップ４０６（Ｓ４０６）において、他サーバ監視部１１２Ｃの監視処理を一時停止する。ここで一時停止した他サーバ監視部１１２Ｃの監視処理は、待機系サーバ１００Ｃの状態が正常に戻るまで再開しない。
【００８３】
このように、本実施の形態では、正常な待機系のサーバ１００が存在しない場合、現用系のサーバ１００の自サーバ監視部１１３の監視結果によりフェイルオーバーの実施の判定ができる。このため、待機系のサーバ１００の他サーバ監視部１１２の監視結果を用いることができない状況においても、フェイルオーバーの実施の必要性を判定できる。
【００８４】
以上、実施の形態について述べたが、図８に示すような構成を有するサーバ装置によっても、クライアントへのサービスの提供が適切に行われているか否かを確実に判断することができる。図８に示すサーバ装置７は、サービス提供部８（サービス提供手段）と、クラスタ制御部９（クラスタ制御手段）とを有する。なお、サーバ装置７は、待機系サーバ装置とともにクラスタシステムを構成している。
【００８５】
サービス提供部８は、上述の実施の形態の業務サービス提供部１２０に相当している。サービス提供部８は、ネットワークを介してクライアント装置に所定のサービスを提供する。
クラスタ制御部９は、上述の実施の形態のクラスタ制御部１１４に相当している。クラスタ制御部９は、待機系サーバ装置が送信した監視結果を取得して、監視結果が待機系サーバ装置から所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施する。ここで、待機系サーバ装置は、フェイルオーバーが実施された場合に、所定のサービスのクライアント装置への提供を引き継ぐ装置であり、サービス提供部８が提供する所定のサービスに上記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する。
【００８６】
このように、サーバ装置７は、待機系サーバ装置によるアクセスに基づくサービスの監視結果を取得し、フェイルオーバーの実施についての判断を行う。このため、サーバ装置７によれば、クライアントへのサービスの提供が適切に行われているか否かをより確実に判断することができる。
【００８７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、３つのサーバ１００によりＨＡクラスタシステムが構成されているが、クラスタシステム１０は、現用系のサーバ１００と待機系のサーバ１００とを有すればよく、サーバの台数は任意である。また、サーバ１００が現用系又は待機系のいずれか一つのサーバとして動作するクラスタ構成である片方向スタンバイ型のみではなく、サーバ１００が現用系かつ待機系のサーバとして動作するクラスタ構成である双方向スタンバイ型によりクラスタシステム１０を構成することも可能である。
【００８８】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８９】
この出願は、２０１７年９月６日に出願された日本出願特願２０１７−１７１１２９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００９０】
１、１０    クラスタシステム
２、１００Ａ    現用系サーバ
３、１００Ｂ、１００Ｃ    待機系サーバ
４、２００、３００    ネットワーク
５、９、１１４、１１４Ａ、１１４Ｂ、１１４Ｃ    クラスタ制御部
６    監視部
７    サーバ装置
８    サービス提供部
９    クラスタ制御部
１００    サーバ
１１０、１１０Ａ、１１０Ｂ、１１０Ｃ    クラスタウェア
１１１、１１１Ａ、１１１Ｂ、１１１Ｃ    業務サービス制御部
１１２、１１２Ａ、１１２Ｂ、１１２Ｃ    他サーバ監視部
１１３、１１３Ａ、１１３Ｂ、１１３Ｃ    自サーバ監視部
１２０、１２０Ａ、１２０Ｂ、１２０Ｃ    業務サービス提供部
１５１    ネットワークインタフェース
１５２    メモリ
１５３    プロセッサ
【図１】
2019049433.tif 000003
【図２】
2019049433.tif 000004
【図３】
2019049433.tif 000005
【図４】
2019049433.tif 000006
【図５】
2019049433.tif 000007
【図６】
2019049433.tif 000008
【図７】
2019049433.tif 000009
【図８】
2019049433.tif 000010
【手続補正書】
【提出日】令和2年2月12日(2020.2.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介してクライアント装置に所定のサービスを提供する現用系サーバ装置と、
前記現用系サーバ装置に異常が発生した場合に、前記現用系サーバ装置に代って前記所定のサービスを前記クライアント装置に提供する待機系サーバ装置と
を備え、
前記待機系サーバ装置は、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視する第１の監視手段を有し、
前記現用系サーバ装置は、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置の前記第１の監視手段によって判定された場合、フェイルオーバーを実施するクラスタ制御手段を有する
クラスタシステム。
【請求項２】
前記クラスタ制御手段は、複数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項１に記載のクラスタシステム。
【請求項３】
前記クラスタ制御手段は、複数の前記待機系サーバ装置のうち所定の割合以上の数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項１に記載のクラスタシステム。
【請求項４】
前記待機系サーバ装置は、さらに、前記待機系サーバ装置自身の稼働状態を監視する第２の監視手段を有し、
前記現用系サーバ装置の前記クラスタ制御手段は、前記第２の監視手段により異常が検知されていない複数の前記待機系サーバ装置のうち所定の割合以上の数の前記待機系サーバ装置の前記第１の監視手段によって、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと判定された場合に、フェイルオーバーを実施する
請求項３に記載のクラスタシステム。
【請求項５】
前記現用系サーバ装置は、さらに、前記現用系サーバ装置自身の稼働状態を監視する第３の監視手段を有し、
前記現用系サーバ装置の前記クラスタ制御手段は、前記第２の監視手段により異常が検知されていない前記待機系サーバ装置が存在しない場合、前記第３の監視手段による監視結果に基づいて、フェイルオーバーを実施するか否かを決定する
請求項４に記載のクラスタシステム。
【請求項６】
前記ネットワークは、パブリックＬＡＮであり、前記現用系サーバ装置と前記待機系サーバ装置の相互間で死活監視を行うために用いられるインタコネクトＬＡＮとは別のネットワークである
請求項１乃至５のいずれか１項に記載のクラスタシステム。
【請求項７】
現用系サーバ装置が、ネットワークを介してクライアント装置に所定のサービスを提供し、
前記現用系サーバ装置とともにクラスタシステムを構成する待機系サーバ装置が、前記ネットワークを介して、前記現用系サーバ装置が提供する前記所定のサービスにアクセスし、正常にアクセスできるか否かについて監視し、
前記現用系サーバ装置が、前記現用系サーバ装置が提供する前記所定のサービスに正常にアクセスできないと前記待機系サーバ装置によって判定された場合、フェイルオーバーを実施する
クラスタシステムの制御方法。
【請求項８】
ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供手段と、
前記サービス提供手段が提供する前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御手段と
を有し、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
サーバ装置。
【請求項９】
ネットワークを介してクライアント装置に所定のサービスを提供し、
前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施し、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
制御方法。
【請求項１０】
ネットワークを介してクライアント装置に所定のサービスを提供するサービス提供ステップと、
前記サービス提供ステップの処理により提供される前記所定のサービスに前記ネットワークを介してアクセスし正常にアクセスできるか否かについて監視する待機系サーバ装置が送信した監視結果を取得して、前記監視結果が前記待機系サーバ装置から前記所定のサービスに正常にアクセスできないことを示す場合、フェイルオーバーを実施するクラスタ制御ステップと
をコンピュータに実行させ、
前記待機系サーバ装置は、フェイルオーバーが実施された場合に、前記所定のサービスの前記クライアント装置への提供を引き継ぐ装置である
プログラム。
【国際調査報告】
2019049433.tif 000011
2019049433.tif 000012