(57)【要約】【課題】システム管理者などが介在することなく、計算機に障害が発生する前に障害発生が予測される計算機上で動いているサービスを他の計算機に移し、障害発生が予測される計算機を正常に停止させることで安定した運用を実現する。【解決手段】基底型サービスＢＳ１の障害予測検出機能ＰＦＳ１は、障害予測解析プロセスＰＦＡ１により計算機Ｃ１の障害発生の予測が通知されると、計算機Ｃ１でのサービスを停止状態とする。これにより、基底型サービスＢＳ１に対して強い依存関係にあるユーザサービスＳＶＣ１，ＳＶＣ２が他の計算機Ｃ２，Ｃ３にスイッチオーバされる。障害計算機停止機能ＰＯＦ１は、全てのユーザサービスＳＶＣ１，ＳＶＣ２のスイッチオーバが確認されると計算機Ｃ１を停止させる。【選択図】    図１
2004334713.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機から構成される計算機システムにおいて、
前記計算機の障害発生を予測する障害予測手段と、
前記障害予測手段によって障害発生が予測された計算機上で稼働している全てのサービスを正常終了させると共に、当該サービスを他の計算機上で再実行させるサービス管理手段と、
前記サービス管理手段により全てのサービスが前記他の計算機で再実行された後に、前記障害予測手段によって障害発生が予測された計算機を停止させる障害計算機停止手段と
を具備したことを特徴とする計算機システム。
【請求項２】
複数の計算機から構成される計算機システムにおいて、
前記計算機の障害発生を予測する障害予測手段と、
前記複数の計算機上で稼働状態になることで提供される第１のサービスに対して、前記第１のサービスが稼働状態にある計算機上でのみ稼働状態となり得る関係にある第２のサービスを管理するサービス管理手段と、
前記サービス管理手段によって管理された第１のサービスがエラー状態となった場合に、当該第１のサービスが稼働していた計算機上で稼働している前記第２のサービスを正常終了させると共に、前記第２のサービスを他の計算機上で再実行させる再実行手段とが設けられ
前記第１のサービスは、
前記障害予測手段によって障害発生が予測された計算機での状態をエラー状態にする障害予測検出手段と、
前記障害予測検出手段によりエラー状態にされることにより前記再実行手段によって前記第２のサービスが前記他の計算機で再実行された後に、前記障害予測手段によって障害発生が予測された計算機を停止させる障害計算機停止手段と
を具備したことを特徴とする計算機システム。
【請求項３】
前記障害計算機停止手段は、
前記障害予測手段によって障害発生が予測された計算機上で実行中の前記第２のサービスの有無を判別する第１の判別手段と、
前記障害予測手段によって障害発生が予測された計算機上で実行中の他の第１のサービスの有無を判別する第２の判別手段と、
前記第１の判別手段により実行中の前記第２のサービスが無いと判別され、かつ前記第２の判別手段により実行中の前記他の第１のサービスが無いと判別された場合に計算機を停止させる計算機停止手段を含むことを特徴とする請求項２記載の計算機システム。
【請求項４】
前記第１の判別手段は、実行中の前記第２のサービスが有ると判別した場合、一定時間経過した後に再度判別し、
前記第２の判別手段は、実行中の前記他の第１のサービスが有ると判別した場合、一定時間経過した後に再度判別することを特徴とする請求項３記載の計算機システム。
【請求項５】
複数の計算機から構成される計算機システムにおいて、
前記計算機の障害発生を予測する障害予測手段と、
前記計算機上で稼働されるサービスに組み込まれ、前記障害予測手段によって障害発生が予測された場合にサービスを正常終了させると共に、当該サービスを他の計算機上で再実行させる第１のサービス再実行手段と、
前記障害予測手段によって障害発生が予測された計算機を、前記第１のサービス再実行手段によって当該計算機上で稼働されていたサービスが前記他の計算機で再実行された後に停止させる第１の障害計算機停止手段と
を具備したことを特徴とする計算機システム。
【請求項６】
前記サービス再実行手段は、
組み込まれたサービスの実行に最適な計算機が他にあるか判別する計算機判別手段と、
前記計算機判別手段によって最適な計算機があると判別された場合に、サービスを正常終了させると共に、当該サービスを前記最適な計算機上で再実行させる第２のサービス再実行手段とを含むことを特徴とする請求項５記載の計算機システム。
【請求項７】
前記第１の障害計算機停止手段は、
前記障害予測手段によって障害発生が予測された計算機上で実行中のサービスの有無を判別する第１の判別手段と、
前記障害予測手段によって障害発生が予測された計算機上で実行中の、前記第１の障害計算機停止手段と同等の機能をもつ第２の障害計算機停止手段の有無を判別する第２の判別手段と、
前記第１の判別手段により実行中の前記第２のサービスが無く、かつ前記第２の判別手段により実行中の第２の障害計算機停止手段が無いと判別された場合に計算機を停止させる計算機停止手段を含むことを特徴とする請求項５記載の計算機システム。
【請求項８】
コンピュータを、
ネットワークを介して接続された他の複数のコンピュータ上で実行されるプログラムと共に稼働状態となることで１つのサービスを提供する第１のサービス手段として機能させると共に、
前記コンピュータに設けられた障害予測機能によって障害発生が予測された場合に前記第１のサービス手段の状態をエラー状態にする障害予測検出手段と、
前記障害予測検出手段によりエラー状態にされることにより、前記第１のサービス手段に対して、前記第１のサービス手段が稼働状態にある計算機上でのみ稼働状態となり得る関係にある第２のサービスが、正常終了されて他の計算機で再実行された後に、前記コンピュータを停止させる障害計算機停止手段とに機能させるためのサービス継続制御プログラム。
【請求項９】
コンピュータを、
前記コンピュータ上で稼働されるサービスに組み込まれて、前記コンピュータに設けられた障害予測機能によって障害発生が予測された場合にサービスを正常終了させると共に、当該サービスを他のコンピュータ上で再実行させるサービス再実行手段に機能させるためのサービス継続制御プログラム。
【請求項１０】
コンピュータを、
前記コンピュータに設けられた障害予測機能によって障害発生が予測された場合に、同コンピュータ上で稼働していた全てのサービスが停止された後、障害発生が予測された前記コンピュータを停止させる障害計算機停止手段に機能させるためのサービス継続制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数台の計算機から構成されるクラスタ計算機システムに係り、特に障害予測機能を備えたクラスタ計算機システム及び同システムで実行されるサービス継続制御プログラムに関する。
【０００２】
【従来の技術】
近年、計算機システムの障害によるビジネス等における損失の発生を抑えるための様々な技術が開発されている。例えば、計算機システムの障害発生を事前に予測し、被害を最小限にするための障害予測機能がある。障害予測機能としては、例えばＰＦＡ（Ｐｒｅｄｉｃｔｉｖｅ  Ｆａｉｌｕｒｅ  Ａｎａｌｙｓｉｓ）機能が知られている（例えば、非特許文献１）。
【０００３】
障害予測機能は、計算機に実装されたメモリ、プロセッサ、ハードディスク、ファン、電源装置などに障害が発生しそうな場合、これを予測してシステム管理者に事前に障害発生の危険性を通知することができる。
【０００４】
システム管理者は、障害予測機能から障害発生の危険性を通知されると、当該計算機で実行されているサービスを正常終了させ、実行可能な計算機のリソースを調整して再実行させるといった処置（スイッチオーバ）を計算機に実行させる。
【０００５】
システム管理者は、故障が予測されている計算機の全サービスのスイッチオーバを確認すると、当該計算機の障害が計算機システムに影響を起こさないように停止させるなどの操作を行う。
【０００６】
また、複数のサーバ（計算機）でシステムを構成し、一部のサーバが障害を起こしてもサービスを他の計算機で引き継ぐことでシステム全体を停止させないクラスタシステムが開発されている（例えば、非特許文献２）。高可用性（ＨＡ：Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）型のクラスタシステムは、障害が発生したときに障害が発生したシステムで実行していたサービスを予め設定されているポリシーに従い適当な計算機にフェイルオーバする。
【０００７】
【非特許文献１】
「４．ｅ−ｂｕｓｉｎｅｓｓを支えるＩＢＭのＮｅｔｆｉｎｉｔｙ（第一部  インタビュー（ＩＢＭの最新ＰＣサーバテクノロジー））」、ビジネスコミュニケーション、ビジネスコミュニケーション株式会社、１９９９年、６月号
【０００８】
【非特許文献２】
金子哲夫、他１名、「クラスタソフトウェア」、東芝レビュー、１９９９年、Ｖｏｌ．５４、Ｎｏ．１２、ｐ．１８−２１
【０００９】
【発明が解決しようとする課題】
このように従来の計算機システムでは、障害予測機能によって、障害発生以前にサービスのスイッチオーバや障害計算機の停止などの処置を実行させるようになった。しかしながら、その処置を実行させるには、障害予測機能からの通知を受けたシステム管理者が操作する必要があった。
【００１０】
また、クラスタシステムでは、障害発生後にサービスのフェイルオーバを行うために、フェイルオーバ後のサービスの起動をかける前に障害復旧処理などの作業を行う必要があった。
【００１１】
本発明は前記のような事情を考慮してなされたもので、システム管理者などが介在することなく、計算機に障害が発生する前に障害発生が予測される計算機上で動いているサービスを他の計算機に移し、障害発生が予測される計算機を正常に停止させることで安定した運用を実現することが可能な計算機システム、サービス継続制御プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明によれば、複数の計算機から構成される計算機システム（例えばクラスタ計算機システム）が提供される。このシステムは、計算機の障害発生を予測する障害予測手段を利用し、サービス管理手段により、前記障害予測手段によって障害発生が予測された計算機上で稼働している全てのサービスを正常終了させると共に当該サービスを他の計算機上で再実行させ（スイッチオーバ）、障害計算機停止手段により、前記サービス管理手段により全てのサービスが前記他の計算機で再実行された後に、前記障害予測手段によって障害発生が予測された計算機を停止させる。
【００１３】
このような構成においては、システム管理者などが介在することなく、計算機に障害が発生する前に、障害発生が予測される計算機上のサービスが正常に終了され、他の計算機上で再実行された後に、障害発生が予測される計算機が停止される。
【００１４】
また本発明によれば、複数の計算機から構成される計算機システム（例えばクラスタ計算機システム）が提供される。このシステムは、サービス管理手段（クラスタシステム）によって、複数の計算機上で稼働状態になることで提供される第１のサービス（基底型サービス）に対して、第１のサービスが稼働状態にある計算機上でのみ稼働状態となり得る関係（強い依存関係）にある第２のサービス（ユーザサービス）が管理されている。また、前記サービス管理手段によって管理された第１のサービスが停止状態となった場合に、再実行手段（クラスタシステム）によって、当該第１のサービスが稼働していた計算機上で稼働している前記第２のサービスを正常終了させると共に、前記第２のサービスを他の計算機上で再実行させる。前記第１のサービスは、前記障害予測手段によって障害発生が予測された計算機での状態を停止状態にする障害予測検出手段と、前記障害予測検出手段により停止状態にされることにより前記再実行手段によって前記第２のサービスが前記他の計算機で再実行された後に、前記障害予測手段によって障害発生が予測された計算機を停止させる障害計算機停止手段とを有している。
【００１５】
このような構成においては、計算機の障害発生を予測する障害予測手段を利用し、障害発生が予測された計算機では、第１のサービスに設けられた障害予測検出機能により第１のサービスを停止状態にすることで、この第１のサービスに対して強い依存関係にある第２のサービスが当該計算機上で正常終了されて他の計算機で再実行され（スイッチオーバ）、また障害計算機停止手段により第２のサービスが前記他の計算機で再実行された後に障害発生が予測された計算機が停止されるので、システム管理者などが介在することなく、計算機に障害が発生する前に、障害発生が予測される計算機上のサービスが正常に終了され、障害発生が予測される計算機が停止される。
【００１６】
また本発明は、第１のサービス再実行手段が計算機上で稼働されるサービスに組み込まれ、前記障害予測手段によって障害発生が予測された場合にサービスを正常終了させると共に、当該サービスを他の計算機上で再実行させる（スイッチオーバ）。第１の障害計算機停止手段は、前記障害予測手段によって障害発生が予測された計算機を、前記第１のサービス再実行手段によって当該計算機上で稼働されていたサービスが前記他の計算機で再実行された後に停止させる。
【００１７】
このような構成においては、システム管理者などが介在することなく、計算機に障害が発生する前に、障害発生が予測される計算機上のサービスが正常に終了され、他の計算機上で再実行された後に、障害発生が予測される計算機が停止される。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【００１９】
本発明による計算機システムは、ＨＡ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）型のクラスタシステムと障害予測機能を組み合わせることによって、計算機に障害が発生する前に故障の発生が予測される計算機上で動いているサービスを事前に他の計算機に移して、なおかつ障害発生が予測される計算機を正常に停止させることを、システム管理者などが操作を行なうことなく実現できるようにする。
【００２０】
図１は本発明の第１実施形態に係る計算機システム（クラスタ計算機システム）のシステム構成を示すブロック図である。
【００２１】
図１に示すクラスタ計算機システムは、各種のサービス（アプリケーションプログラム）を提供可能なｎ（ｎは２以上の自然数）台のサーバ計算機（以下、単に計算機と称する）から構成される。なお、図１では、説明を容易にするために３台の計算機Ｃ１，Ｃ２，Ｃ３を示している。計算機Ｃ１，Ｃ２，Ｃ３は、ネットワークＮにより相互に接続されている。ネットワークＮには、クラスタ計算機システム内の計算機Ｃ１，Ｃ２，Ｃ３からサービスの提供を受けるクライアント端末（図示せず）が接続されている。
【００２２】
計算機Ｃ１，Ｃ２，Ｃ３は、稼働中であり、それぞれオペレーティングシステムＯＳ−１，ＯＳ−２，ＯＳ−３が動作している。
【００２３】
また、計算機Ｃ１，Ｃ２，Ｃ３は、クラスタとしての制御を司るためのクラスタ制御機構ＣＳ１−１，ＣＳ１−２，ＣＳ１−３をそれぞれ備えている。クラスタ制御機構ＣＳ１−１，ＣＳ１−２，ＣＳ１−３は、それぞれネットワークＮを介して互いに通信しながら同一の処理を実行する。これにより、クラスタ制御機構ＣＳ１−１，ＣＳ１−２，ＣＳ１−３は、クラスタ計算機システム全体で１つの仮想的なＨＡ型のクラスタシステムＣＳ１を構成する。
【００２４】
クラスタシステムＣＳ１は、サービスを起動、停止する計算機を決定するもので、何れの計算機で何れのサービスを実行させるかを決定すると共に、何れの計算機で実行されている何れのサービスを停止させるかを決定する。第１実施形態のクラスタシステムＣＳ１は、各計算機Ｃ１，Ｃ２，Ｃ３で起動されているサービス間の依存関係を設定する。第１実施形態におけるサービス間の依存関係としては「強い依存関係」がある。例えば、第１実施形態では、基底型サービスＢＳ１（第１のサービス）に対して、ユーザが作成したユーザサービスＳＶＣ１，ＳＶＣ２（第２のサービス）が強い依存関係に設定される。ユーザサービスＳＶＣ１，ＳＶＣ２は、強い依存関係にある基底型サービスＢＳ１が稼働している計算機でのみ実行するようにクラスタシステムＣＳ１により管理される。なお、ユーザサービスＳＶＣ１，ＳＶＣ２は、計算機Ｃ１で動作し、計算機Ｃ２，Ｃ３を待機系としている。
【００２５】
計算機Ｃ１，Ｃ２，Ｃ３では、基底型サービスＢＳ１を実現するためのプログラムがそれぞれにおいて実行される。基底型サービスＢＳ１は、複数の計算機で実行条件が成立すれば全ての計算機で稼働状態になる１つのサービスであり、障害予測検出機能ＰＦＳ（ＰＦＳ１，ＰＦＳ２，ＰＦＳ３）、及び障害計算機停止機能ＰＯＦ（ＰＯＦ１，ＰＯＦ２，ＰＯＦ３）を含んでいる。障害予測検出機能ＰＦＳは、障害予測解析プロセスＰＦＡによって障害発生が予測された計算機での状態をエラー状態にする。障害計算機停止機能ＰＯＦは、障害予測検出機能ＰＦＳにより基底型サービスＢＳ１がエラー状態にされることにより、クラスタシステムＣＳ１により基底型サービスＢＳ１に対して強い依存関係のあるユーザサービスＳＶＣ１，ＳＶＣ２がスイッチオーバされた後に、障害発生が予測された自信が動作している計算機を停止させる。
【００２６】
計算機Ｃ１，Ｃ２，Ｃ３には、それぞれ障害予測解析プロセスＰＦＡ１，ＰＦＡ２，ＰＦＡ３が動作している。障害予測解析プロセスＰＦＡ１，ＰＦＡ２，ＰＦＡ３は、例えばＯＳやハードウェアに組み込まれて実現されるプロセスであり、計算機に実装されたメモリ、プロセッサ、ハードディスク、ファン、電源装置などの障害発生を予測し、障害が発生する可能性がある場合にオペレータやシステムに対して通知する機能を持つ。
【００２７】
次に、第１実施形態におけるクラスタ計算機システムの動作について説明する。図２は、第１実施形態におけるクラスタシステムＣＳ１のスイッチオーバに係わる処理の流れを示すフローチャート、図３は、障害計算機停止機能ＰＯＦの処理の流れを示すフローチャートである。
【００２８】
ここでは、計算機Ｃ１において、基底型サービスＢＳ１に対して強い依存関係があるように設定されユーザサービスＳＶＣ１，ＳＶＣ２が動作しているものとする（なお、図１は計算機Ｃ１において障害発生が予測されことにより、ユーザサービスＳＶＣ１，ＳＶＣ２がスイッチオーバされた後、計算機Ｃ１が停止された状態を表している）。
【００２９】
計算機Ｃ１では、障害予測解析プロセスＰＦＡ１が動作しており、ハードウェア等に障害が発生する可能があるか予測している。ここで、障害予測解析プロセスＰＦＡ１は、障害発生の可能性が予測された場合、オペレータやシステムに対して通知する。
【００３０】
基底型サービスＢＳ１は、システムを通じて障害予測解析プロセスＰＦＡ１より障害予測の通知を受けると、計算機Ｃ１上の基底型サービスＢＳ１の状態をエラー状態とする。この時、計算機Ｃ２，Ｃ３上で動作している基底型サービスＢＳ１の状態は稼動状態である。
【００３１】
クラスタシステムＣＳ１（計算機Ｃ１上で動作しているクラスタ制御機能ＣＳ１−１）は、計算機Ｃ１で基底型サービスＢＳ１がエラー状態であると感知すると（図２、ステップＡ１、Ｙｅｓ）、基底型サービスＢＳ１に対して強い依存関係を持つユーザサービスＳＶＣ１，ＳＶＣ２が計算機Ｃ１で稼動できないと判断する。
【００３２】
この判断の結果、クラスタシステムＣＳ１は、ユーザサービスＳＶＣ１，ＳＶＣ２が強い依存関係のある基底型サービスＢＳ１が正常に稼動している計算機Ｃ２，Ｃ３を検出し（ステップＡ２）、各ユーザサービスＳＶＣ１，ＳＶＣ２を稼働させる計算機を選択する（ステップＡ３）。例えば、各ユーザサービスＳＶＣ１，ＳＶＣ２に対して最適な計算機、例えば予めユーザサービスに対して設定されている優先度や、各計算機の負荷状態などに基づいて決定される最適な計算機を選択する。ここでは、ユーザサービスＳＶＣ１に対して計算機Ｃ２、ユーザサービスＳＶＣ２に対して計算機Ｃ３が選択されたものとする。
【００３３】
クラスタシステムＣＳ１は、ユーザサービスＳＶＣ１，ＳＶＣ２を、それぞれ基底型サービスＢＳ１が正常に稼働している計算機Ｃ２，Ｃ３にスイッチオーバする（ステップＡ４）。すなわち、計算機Ｃ１上で正常終了させ、計算機Ｃ２，Ｃ３においてそれぞれ再実行させる。
【００３４】
一方、基底型サービスＢＳ１の障害計算機停止プロセスＰＯＦ１は、障害予測解析プロセスＰＦＡ１から計算機Ｃ１に障害発生の可能性のあることが通知されると（ステップＢ１、Ｙｅｓ）、基底型サービスＢＳ１に対して強い依存関係のあるサービスが実行中であるかを判別する（ステップＢ２）。
【００３５】
ここで、実行中の強い依存関係のあるユーザサービスＳＶＣが実行中である場合（ステップＢ２、Ｙｅｓ）、障害計算機停止機能ＰＯＦ１は、一定時間スリープして（ステップＢ３）、その後、再度、実行中のサービスの有無を判別する（ステップＢ２）。
【００３６】
基底型サービスＢＳ１には、強い依存関係のあるサービスが全て無くなった後にリセット処理を行うように設定してある。ユーザーサービスＳＶＣ１，ＳＶＣ２が計算機Ｃ１で停止したことを確認すると、リセット処理として、障害計算機停止機能ＰＦＯ１は、自身が動作している計算機Ｃ１上で、他に障害計算機停止機能をもつサービス（例えば、基底型サービスＢＳ１と同等の機能を持つ基底型サービスＢＳ２，…）の有無を確認する（図３、ステップＢ４）。
【００３７】
すなわち、障害計算機停止機能ＰＦＯ１でリセット処理が実行される場合、基底型サービスＢＳ１に対して強い依存関係のあるユーザサービスが計算機Ｃ１に無い状態にあるが、他に障害計算機停止機能をもつ基底型サービスがある場合には、この他のサービスに対して強い依存関係が設定され計算機Ｃ１上で動作しているユーザサービスが存在している可能性がある。
【００３８】
ここで、他に障害計算機停止機能をもつサービスが稼働していた場合（ステップＢ４、Ｙｅｓ）、障害計算機停止プロセスＰＯＦ１は、一定時間スリープして（ステップＢ５）、その後、再度、他のサービスの実行の有無を判別する（ステップＢ４）。一定時間スリープすることで、他のサービスが障害予測解析プロセスＰＦＡ１からの通知によりエラー状態となり、このサービスに対して強い依存関係のあるユーザサービスについてスイッチオーバされるのを待つ。これにより、障害計算機停止機能をもつ複数のサービスが計算機Ｃ１上で稼働していたとしても、ユーザサービスが稼働している時に計算機Ｃ１を停止させることがない。
【００３９】
障害計算機停止プロセスＰＯＦ１は、他に障害計算機停止機能をもつサービスが無いことを確認すると（ステップＢ４、Ｎｏ）、障害が予測された計算機Ｃ１を停止させる（ステップＢ６）。
【００４０】
ここで、基底型サービスＢＳ１は、計算機Ｃ１では停止状態となる。しかし、計算機Ｃ２，Ｃ３では稼動状態のままである。ユーザサービスＳＶＣ１は、計算機Ｃ２上で稼働状態となり、ユーザサービスＳＶＣ２は、計算機Ｃ３上で稼働状態となる（図１に示す状態）。
【００４１】
ところで、その後、計算機Ｃ１が復旧されると、基底型サービスＢＳ１は、計算機Ｃ１で起動され稼動状態となる。ユーザサービスＳＶＣ１，ＳＶＣ２を実行するのに最適な計算機が計算機Ｃ１である場合、クラスタシステムＣＳ１は、計算機Ｃ１上で基底型サービスＢＳ１が稼働状態にあることから、次のスケジュールのタイミングでユーザサービスＳＶＣ１，ＳＶＣ２を計算機Ｃ１へスイッチオーバする。
【００４２】
このようにして、第１実施形態のクラスタ計算機システムでは、障害予測解析プロセスＰＦＡ１から、計算機Ｃ１について障害発生の可能性があることが通知された場合に、基底型サービスＢＳ１を障害予測検出機能ＰＦＳ１によりエラー状態にすることで、基底型サービスＢＳ１に対して強い依存関係にあるユーザサービスＳＶＣ１，ＳＶＣ２を他の計算機Ｃ２，Ｃ３にスイッチオーバさせる。基底型サービスＢＳ１の障害計算機停止機能ＰＯＦ１は、ユーザサービスＳＶＣ１，ＳＶＣ２がスイッチオーバされることで、障害が発生する前に計算機Ｃ１を正常に停止させることができる。
【００４３】
（第２実施形態）
次に、本発明の第２実施形態について説明する。
【００４４】
第２実施形態における第１実施形態との違いは、ユーザーサービス毎に障害予測対応スイッチオーバ機能を組み込み、基底型サービスＢＳとしてではなく各計算機Ｃ１，Ｃ２，Ｃ３に障害計算機停止プロセスＰＯＦ１，ＰＯＦ２，ＰＯＦ３を実行させる。
【００４５】
図４は本発明の第２実施形態に係る計算機システム（クラスタ計算機システム）のシステム構成を示すブロック図である。なお、第１実施形態で説明した構成（図１）と共通する部分については説明を省略する。
【００４６】
第２実施形態において、最初の状態において、ユーザサービスＳＶＣ１，ＳＷ２は計算機Ｃ１で動作し、計算機Ｃ２，Ｃ３を待機系としている。また、ユーザサービスＳＶＣ３は、計算機Ｃ３で動作し、計算機Ｃ１，Ｃ２を待機系としている（なお、図４は計算機Ｃ１において障害発生が予測されことにより、ユーザサービスＳＶＣ１，ＳＶＣ２がそれぞれ計算機Ｃ２，Ｃ３にスイッチオーバされた状態を表している）。
【００４７】
計算機Ｃ１，Ｃ２，Ｃ３では、障害予測対応スイッチオーバ機能ＳＷ１，ＳＷ２，ＳＷ３を実現するためのプログラムがそれぞれにおいて実行されることで、ユーザサービスＳＶＣ１，ＳＶＣ２，ＳＶＣ３に対して、障害予測対応スイッチオーバ機能ＳＷ１，ＳＷ２，ＳＷ３がそれぞれ組み込まれる。
【００４８】
例えば、ユーザサービスＳＶＣ１の障害予測対応スイッチオーバ機能ＳＷ１は、障害予測解析プロセスＰＦＡ１からの通知を待ち、障害予測解析プロセスＰＦＡ１からの通知を受けると、計算機Ｃ１でのサービスＳＶＣ１の処理を正常終了させ、クラスタシステムに設定されたポリシーに従い待機系である計算機Ｃ２でユーザサービスＳＶＣ１を正常に起動させるスイッチオーバを行う。
【００４９】
また、計算機Ｃ１，Ｃ２，Ｃ３では、障害計算機停止プロセスＰＯＦ１，ＰＯＦ２，ＰＯＦ３を実現するためのプログラムが実行されることで、障害計算機停止プロセスＰＯＦ１，ＰＯＦ２，ＰＯＦ３が動作する。
【００５０】
障害予測対応スイッチオーバ機能ＳＷ１，ＳＷ２，ＳＷ３は、組み込み先のユーザサービスＳＶＣ１，ＳＶＣ２，ＳＶＣ３がそれぞれの計算機Ｃ１，Ｃ２，Ｃ３上で処理を実行する場合に、対応する障害計算機停止プロセスＰＯＦ１，ＰＯＦ２，ＰＯＦ３に対して処理の実行を登録する。
【００５１】
次に、第２実施形態におけるクラスタ計算機システムの動作について説明する。図５は、第２実施形態における障害予測対応スイッチオーバ機能ＳＷの処理の流れを示すフローチャート、図６は、障害計算機停止プロセスＰＯＦの処理の流れを示すフローチャートである。
【００５２】
計算機Ｃ１では、障害予測解析プロセスＰＦＡ１が動作しており、ハードウェア等に障害が発生する可能があるか予測している。ここで、障害予測解析プロセスＰＦＡ１は、障害発生の可能性が予測された場合、オペレータやシステムに対して通知する。
【００５３】
ユーザサービスＳＶＣ１の障害予測対応スイッチオーバ機能ＳＷ１は、システムを通じて障害予測解析プロセスＰＦＡ１からの通知を受けると（図５、ステップＣ１、Ｙｅｓ）、計算機Ｃ１でのサービスＳＶＣ１の処理を正常終了させる（ステップＣ４）。
【００５４】
障害予測対応スイッチオーバ機能ＳＷ１は、ＨＡ型のクラスタシステムＣＳ１に設定されたポリシーに従い、待機系であるユーザサービスＳＶＣ１に対して最適な計算機Ｃ２でユーザサービスＳＶＣ１を正常に起動させるスイッチオーバを行う（ステップＣ５）。
【００５５】
同様にして、ユーザサービスＳＶＣ２の障害予測対応スイッチオーバ機能ＳＷ２は、障害予測解析プロセスＰＦＡ１からの通知を受けると（ステップＣ１、Ｙｅｓ）、計算機Ｃ１でのサービスＳＶＣ２の処理を正常終了させ（ステップＣ４）、待機系であるユーザサービスＳＶＣ２に対して最適な計算機Ｃ３でユーザサービスＳＶＣ１を正常に起動させる（ステップＣ５）。
【００５６】
ところで、各ユーザサービスＳＶＣに組み込まれた障害予測対応スイッチオーバ機能ＳＷは、障害予測解析プロセスＰＯＦからの通知が無い場合は（ステップＣ１，Ｎｏ）、サービスを実行するのにより最適な計算機があるかをチェックする（ステップＣ２）。ここで、障害予測対応スイッチオーバ機能ＳＷは、サービスを実行するのにより最適な計算機が無い場合には（ステップＣ２，Ｎｏ）、一定時間スリープし（ステップＣ３）、その後、同様にして最適な計算機があるかをチェックする。
【００５７】
最適な計算機がある場合（ステップＣ２、Ｙｅｓ）、障害予測対応スイッチオーバ機能ＳＷは、現在、稼動中の計算機ＣでのユーザサービスＳＶＣを正常終了し（ステップＣ４）、最適な計算機で再起動を実施する（ステップＣ５）。
【００５８】
図４に表す状態では、計算機Ｃ１に障害が発生する可能性があったため、ユーザサービスＳＶＣ１，ＳＶＣ２がそれぞれスイッチオーバされて、計算機Ｃ２，Ｃ３上でそれぞれ動作している。ここで、計算機Ｃ１が復旧された場合、ユーザサービスＳＶＣ１，ＳＶＣ２に対して最適な計算機が計算機Ｃ１であるとすると、計算機Ｃ２上で動作しているユーザサービスＳＶＣ１は、障害予測対応スイッチオーバ機能ＳＷ１によって、自動的に計算機Ｃ１にスイッチバックされることになる。同様にして、計算機Ｃ３上で動作しているユーザサービスＳＶＣ２は、障害予測対応スイッチオーバ機能ＳＷ２によって計算機Ｃ１で再起動される。
【００５９】
障害予測解析プログラムＰＦＡ１から通知のあった計算機Ｃ１は、障害発生が予測された原因が解消されるまで最適な計算機と選択されることは無い。
【００６０】
ところで、計算機Ｃ１〜Ｃ３では、障害計算機停止プロセスＰＦ１〜ＰＦ３が図６に示すフローチャートの手順に従い稼動している。
【００６１】
障害計算機停止プロセスＰＯＦは、障害予測対応スイッチオーバ機能ＳＷにより処理の実行が登録されており、自身が動作する計算機Ｃ上で実行中のユーザサービスＳＶＣを把握している。最初の状態において、障害計算機停止プロセスＰＯＦ１は、計算機Ｃ１上でユーザサービスＳＶＣ１，ＳＶＣ２が動作している情報を有している。
【００６２】
障害計算機停止プロセスＰＯＦ１は、障害予測解析プロセスＰＦＡ１から計算機Ｃ１に障害発生の可能性のあることが通知されると（ステップＤ１、Ｙｅｓ）、障害予測対応スイッチオーバ機能ＳＷからの通知により有している情報をもとに、実行中のユーザサービスＳＶＣがあるかを判別する（ステップＤ２）。
【００６３】
ここで、実行中のユーザサービスＳＶＣがある場合（ステップＤ２、Ｙｅｓ）、障害計算機停止プロセスＰＯＦ１は、一定時間スリープして（ステップＤ３）、その後、再度、実行中のサービスの有無を判別する（ステップＤ２）。
【００６４】
実行中のユーザサービスＳＶＣが無い場合（ステップＤ２、Ｎｏ）、障害計算機停止プロセスＰＯＦ１は、自身が動作している計算機Ｃ１上で、他に障害計算機停止プロセスＰＯＦ（例えば、障害計算機停止プロセスＰＯＦ２，…）の有無を確認する（ステップＤ４）。
【００６５】
すなわち、他に障害計算機停止プロセスＰＯＦが動作している場合には、このプロセスＰＯＦが管理しているユーザサービスＳＶＣが計算機Ｃ１上で動作している可能性がある。
【００６６】
ここで、他に障害計算機停止プロセスＰＯＦが動作していた場合（ステップＤ４、Ｙｅｓ）、障害計算機停止プロセスＰＯＦ１は、一定時間スリープして（ステップＤ５）、その後、再度、他の障害計算機停止機能ＰＯＦの有無を判別する（ステップＤ４）。
【００６７】
障害計算機停止プロセスＰＯＦ１は、他に障害計算機停止機能ＰＯＦが無いことを確認すると（ステップＤ４、Ｎｏ）、障害が予測された計算機Ｃ１を停止させる（ステップＤ６）。
【００６８】
これにより、複数の障害計算機停止プロセスＰＯＦが同一計算機Ｃ１で起動されていても、確実に全ての障害計算機停止機能ＰＯＦが終了した後、すなわち他の障害計算機停止機能ＰＯＦが管理するユーザサービスＳＶＣについてもスイッチオーバされた後に計算機Ｃ１の復旧処理を実施することができる。
【００６９】
このようにして、第２実施形態のクラスタ計算機システムでは、各ユーザサービスＳＶＣ１，ＳＶＣ２に障害予測対応スイッチオーバ機能ＳＷ１，ＳＷ２を組み込み、障害予測解析プロセスＰＦＡ１から、計算機Ｃ１について障害発生の可能性があることが通知された場合に待機系の他の計算機Ｃ２，Ｃ３にスイッチオーバする。障害計算機停止プロセスＰＯＦ１は、障害発生の可能性のある計算機Ｃ１上で動作している全てのユーザサービスＳＶＣ１，ＳＶＣ２（他の障害計算機停止機能ＰＯＦが管理する他のユーザサービスＳＶＣを含む）がスイッチオーバされた後、障害が発生する前に計算機Ｃ１を正常に停止させることができる。
【００７０】
なお、上述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。本システムを実現するコンピュータ（計算機）は、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【００７１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００７２】
【発明の効果】
以上詳述したように本発明によれば、システム管理者などが介在することなく、計算機に障害が発生する前に障害発生が予測される計算機上で動いているサービスを他の計算機に移し、障害発生が予測される計算機を正常に停止させることで安定した運用を実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る計算機システム（クラスタ計算機システム）のシステム構成を示すブロック図。
【図２】第１実施形態におけるクラスタシステムＣＳ１のスイッチオーバに係わる処理の流れを示すフローチャート。
【図３】第１実施形態における障害計算機停止機能ＰＯＦの処理の流れを示すフローチャート。
【図４】本発明の第２実施形態に係る計算機システム（クラスタ計算機システム）のシステム構成を示すブロック図。
【図５】第２実施形態における障害予測対応スイッチオーバ機能ＳＷの処理の流れを示すフローチャート。
【図６】第２実施形態における障害計算機停止プロセスＰＯＦの処理の流れを示すフローチャート。
【符号の説明】
Ｎ…ネットワーク、Ｃ（Ｃ１，Ｃ２，Ｃ３）…計算機、ＳＶＣ（ＳＶＣ１，ＳＶＣ２、ＳＶＣ３）…ユーザサービス、ＢＳ１…基底型サービス、ＰＦＳ…障害予測検出機能、ＰＯＦ…障害計算機停止機能、ＰＦＡ…障害予測解析プロセス、ＣＳ１…クラスタシステム、ＣＳ１−１，ＣＳ１−２，ＣＳ１−３…クラスタ制御機能、ＯＳ（ＯＳ−１，ＯＳ−２，ＯＳ−３）…オペレーティングシステム、ＳＷ（ＳＷ１，ＳＷ２，ＳＷ３）…障害予測対応スイッチオーバ機能。
【図１】
2004334713.tif 000003
【図２】
2004334713.tif 000004
【図３】
2004334713.tif 000005
【図４】
2004334713.tif 000006
【図５】
2004334713.tif 000007
【図６】
2004334713.tif 000008