(57)【特許請求の範囲】
【請求項１】
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該現用機で故障が発生して該現用機から該予備機への系切り替えが失敗した場合に、予備機のクラスタ状態をサービス稼働中へ遷移させるクラスタサービス再開方法であって、
前記予備機の遷移抑止手段が、前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止ステップと、
前記予備機の停止指示手段が、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示ステップと、
前記予備機の遷移抑止解除手段が、前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除ステップと、
前記予備機の起動指示手段が、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示ステップと、
を有するクラスタサービス再開方法。
【請求項２】
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該予備機として動作するサーバであって、
前記現用機で故障が発生して前記現用機から前記予備機への系切り替えが失敗した場合に、
前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止手段と、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示手段と、
前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除手段と、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示手段と、
を有するサーバ。
【請求項３】
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該予備機として動作するサーバを、
前記現用機で故障が発生して前記現用機から前記予備機への系切り替えが失敗した場合に、
前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止手段、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示手段、
前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除手段、及び
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタサービス再開方法、サーバ及びソフトウェアに関する。
【背景技術】
【０００２】
サービスの重要性が増すにつれ、ダウンタイムの少ないシステムの要求が高まっている。このため、複数のサーバで冗長構成されたクラスタシステムを構築し、何らかの故障が発生したときに自動的にサーバを切り替えることにより、サービスの継続を可能とするＨｅａｒｔｂｅａｔおよびＰａｃｅｍａｋｅｒなどの高可用性クラスタソフトが開発されている（非特許文献１参照）。
【０００３】
高可用性クラスタソフトでは、サーバ上のリソース、ネットワーク、共有ディスク等を監視しており、サービス稼働中のサーバで故障を検知すると、予め待機しているサーバに切り替え、サービスを継続させる。
【０００４】
図１に、高可用性クラスタソフトを用いたクラスタシステムの概略図を示す。クラスタシステムは、ネットワークに接続されている複数のサーバ（現用機及び予備機）と、これらの複数のサーバで共有して用いられる共有ディスクとを有する。
【０００５】
現用機及び予備機は、オペレーティングシステム（ＯＳ）と、高可用性クラスタソフトと、サービスを提供するために必要な構成要素であるリソースとをそれぞれ有する。高可用性クラスタソフトは、現用機での故障の発生を検知し、故障が発生したときに自動的に予備機に切り替える。サーバにおけるサービスの稼働状態、リソースの稼働状態及び故障状態は、内蔵ディスクの状態記憶部に格納され、故障箇所等の詳細な情報は、内蔵ディスクのログ記憶部に格納される。
【０００６】
現用機及び予備機は、サービスＬＡＮと呼ばれるネットワークに接続されており、リソースによるサービスをクライアントに提供する。また、現用機及び予備機は、インターコネクトＬＡＮと呼ばれるネットワークに接続されており、サーバにおけるサービスの稼働状態、リソースの稼働状態、故障状態等の情報を交換する。更に、現用機及び予備機は、管理ＬＡＮと呼ばれるネットワークに接続されており、保守端末からのコマンドを受け付けることができる。
【０００７】
また、現用機及び予備機には、故障時に他サーバの電源を強制的に切断する強制電源断機能を設定することができる。強制電源断機能は、管理ＬＡＮを経由して他サーバのハードウェア制御ボードに対して電源を切断する指示を送信することにより、他サーバの電源を切断する。
【０００８】
共有ディスクは、サービスの一貫性を保つために、サービス提供に用いられるデータを保存する記憶装置である。共有ディスクにより、現用機から予備機に切り替わった後も、同じデータを用いてサービスを継続できる。
【０００９】
このように、高可用性クラスタソフトでリソースの故障を監視しているため、リソース故障が発生した場合に、予備機でサービスを継続させることができる。予備機に系切り替えを行った後は、予備機でサービスが継続される（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４３５３００５号，「クラスタ構成コンピュータシステムの系切替方法」
【非特許文献】
【００１１】
【非特許文献１】三井  一能  他，「サービスの可用性を向上させるＯＳＳミドルＨｅａｒｔｂｅａｔの開発」，ＮＴＴ技術ジャーナル，２００９年３月，４６〜４９ページ
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記のように、予備機に系切り替えを行った後は予備機でサービスが提供される。しかし、ネットワークや共有ディスク等の故障の場合、系切り替えが必ずしも成功するとは限らない。また、系切り替えの失敗はシステムにとって影響の大きい故障であるため、この状態で予備機に系切り替えを行ったとしても、予備機でのサービス開始準備ができていないタイミングで予備機に系切り替えが行われる可能性がある。
【００１３】
本発明は、クラスタシステムの現用機で故障が発生して現用機から予備機への系切り替えが失敗した場合に、予備機でサービスを再開させることを目的とする。
【課題を解決するための手段】
【００１４】
本発明の上記の課題を解決するため、本発明のクラスタサービス再開方法は、
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該現用機で故障が発生して該現用機から該予備機への系切り替えが失敗した場合に、予備機のクラスタ状態をサービス稼働中へ遷移させるクラスタサービス再開方法であって、
前記予備機の遷移抑止手段が、前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止ステップと、
前記予備機の停止指示手段が、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示ステップと、
前記予備機の遷移抑止解除手段が、前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除ステップと、
前記予備機の起動指示手段が、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示ステップと、
を有することを特徴とする。
【００１５】
また、本発明のサーバは、
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該予備機として動作するサーバであって、
前記現用機で故障が発生して前記現用機から前記予備機への系切り替えが失敗した場合に、
前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止手段と、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示手段と、
前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除手段と、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示手段と、
を有することを特徴とする。
【００１６】
また、本発明のプログラムは、
故障状態を監視する故障監視手段と、故障状態に基づく現用機及び予備機のサービス稼働状態として、サービス稼働中の状態と、サービス稼働中へ遷移できる状態と、サービス稼働中への遷移が抑止されている状態と、系切り替え中の状態と、クラスタ状態に組み込まれていない状態とを含むクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とをそれぞれ含む現用機と予備機とで構成されるクラスタシステムで、該予備機として動作するサーバを、
前記現用機で故障が発生して前記現用機から前記予備機への系切り替えが失敗した場合に、
前記状態記憶手段に格納された現用機のクラスタ状態が系切り替え中の状態であり、前記状態記憶手段に格納された現用機の故障状態がリソース停止に失敗した状態であり、前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中へ遷移できる状態である場合、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる遷移抑止手段、
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中への遷移が抑止されている状態である場合、前記現用機に対してオペレーティングシステム又は電源の停止を指示する停止指示手段、
前記状態記憶手段に格納された現用機のクラスタ状態がクラスタ構成に組み込まれていない状態である場合、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる遷移抑止解除手段、及び
前記状態記憶手段に格納された予備機のクラスタ状態がサービス稼働中の状態である場合、前記現用機に対してオペレーティングシステム又は電源の起動を指示する起動指示手段、
として機能させるためのプログラムであることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、クラスタシステムの現用機で故障が発生して現用機から予備機への系切り替えが失敗した場合に、予備機でサービスを再開させることが可能になる。
【図面の簡単な説明】
【００１８】
【図１】高可用性クラスタソフトを用いたクラスタシステムの概略図
【図２】本発明の実施例に係るクラスタシステムの機能ブロック図
【図３】状態管理部で管理されるクラスタ状態の状態遷移図
【図４】状態記憶部に格納される情報を示す図
【図５】本発明の実施例に係るクラスタ状態の遷移を示す図
【図６】本発明を高可用性クラスタソフトに適用したときの機能ブロック図
【図７】本発明を高可用性クラスタソフトに適用したときのサービス再開方法のフローチャート
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施例について説明する。
【００２０】
本発明の実施例では、現用機と予備機とで構成されるクラスタシステムが用いられる。現用機及び予備機は、それぞれ、故障状態を監視する故障監視手段と、故障状態に基づいて現用機及び予備機のサービス稼働状態を示すクラスタ状態を管理する状態管理手段と、クラスタ状態及び故障状態を格納する状態記憶手段とを有する。
【００２１】
現用機で故障が発生して現用機から予備機への系切り替えが失敗した場合に、予備機の遷移抑止手段は、予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる。次に、予備機の停止指示手段は、現用機に対してオペレーティングシステム又は電源の停止を指示する。次に、予備機の遷移抑止解除手段は、予備機のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる。次に、予備機の起動指示手段は、現用機に対してオペレーティングシステム又は電源の起動を指示する。このようにして、予備機のクラスタ状態をサービス稼働中へ遷移させることができる。
【００２２】
本発明の実施例に係るクラスタシステム及び方法を詳細に説明する前に、まず、本発明の実施例で用いられる用語について説明する。
【００２３】
「クラスタ構成」とは、複数のサーバを相互に接続し、サービスを提供するユーザ又は他サーバに対して全体で１つのサーバであるかのように振舞わせる技術のことを言う。クラスタ構成により、１つのサーバが故障しても、システム全体でサービスを継続させることができ、また、サービス継続中に故障修理や交換を行うことができる。
【００２４】
「現用機」とは、クラスタシステムにおいて、サービス提供を開始して故障が発生していないときに、サービス稼働中であるサーバのことを言う。
【００２５】
「予備機」とは、クラスタシステムにおいて、現用機の故障発生時にサービスを引き継ぐサーバのことを言う。予備機は、１つの現用機のサービスを引き継いでもよく、複数の現用機のサービスを引き継いでもよい。すなわち、現用機と予備機との関係は、１対１の関係でもよく、Ｎ対１の関係でもよい。
【００２６】
「高可用性クラスタソフト」とは、クラスタ構成を提供するためのソフトウェアのことを言う。高可用性クラスタソフトは、サーバの故障を監視し、故障時に系切り替えを実施する。
【００２７】
「リソース」とは、サービスを提供するために必要な構成要素のことを言う。クラスタ構成におけるリソースとは、高可用性クラスタソフトが起動、停止、監視等の制御対象とするアプリケーションを示す。リソースには、データベース等が含まれる。
【００２８】
「クラスタ状態」とは、サーバにおけるサービスの稼働状態を言う。クラスタ状態には、ＡＣＴと、ＳＢＹ［ｏｎｌｉｎｅ］と、ＳＢＹ［ｓｔａｎｄｂｙ］と、ＳＢＹ［遷移中］と、ＯＵＳと、ＮＯＮＥとが含まれる。
【００２９】
「リソース状態」とは、サーバにおけるリソースの稼働状態を言う。リソース状態には、他サーバでリソース稼働中である状態と、自サーバでリソースが稼働中である状態と、リソースが停止中である状態と、リソースの管理を行わない状態とが含まれる。
【００３０】
「ＡＣＴ」とは、サーバでサービス稼働中の状態を言う。クラスタ構成において、データベース等のサービスを提供するリソースが稼働しているサーバの状態を「ＡＣＴ」と言う。
【００３１】
「ＳＢＹ［ｏｎｌｉｎｅ］」とは、ＡＣＴへ遷移できる状態を言う。クラスタ構成において、故障等による系切り替えが発生した場合、ＡＣＴからリソースを切り替えることが可能なサーバの状態を「ＳＢＹ［ｏｎｌｉｎｅ］」と言う。
【００３２】
「ＳＢＹ［ｓｔａｎｄｂｙ］」とは、ＡＣＴへの遷移が抑止されている状態を言う。クラスタ構成において、故障等による系切り替えが発生した場合でも、ＡＣＴに遷移しないように抑止されているサーバの状態を「ＳＢＹ［ｓｔａｎｄｂｙ］」と言う。
【００３３】
「ＳＢＹ［遷移中］」とは、系切り替え中の状態を言う。クラスタ構成において、故障等による系切り替えが発生したが、リソース停止に失敗して系切り替えが終了していないサーバの状態を「ＳＢＹ［遷移中］」と言う。
【００３４】
「ＯＵＳ」とは、サーバでリソース故障中の状態を言う。クラスタ構成において、リソース故障が発生している状態を「ＯＵＳ」と言う。
【００３５】
「ＮＯＮＥ」とは、サーバがクラスタ構成に組み込まれていない状態を言う。高可用性クラスタソフトが停止している状態のように、クラスタ構成に組み込まれていないサーバの状態を「ＮＯＮＥ」と言う。
【００３６】
＜クラスタシステムの構成＞
図２に、本発明の実施例に係るクラスタシステムの機能ブロック図を示す。クラスタシステムは、相互に接続されている複数のサーバ（現用機１０及び予備機２０）と、これらの複数のサーバで共有して用いられる共有ディスク３０とを有する。現用機１０及び予備機２０は、ルータ４０を介してクライアントにサービスを提供する。なお、現用機１０の性能は、予備機２０の性能より優れていてもよい。また、クラスタシステムは、２つ以上の現用機と１つの予備機とで構成されてもよい。
【００３７】
現用機１０は、リソース１０１と、故障監視部１１１と、リソース起動・停止部１１３と、状態管理部１１５と、状態記憶部１１７と、故障ログ記憶部１１９と、起動・停止部１２３と、オペレーティングシステム（ＯＳ）１５１と、電源制御部１５３と、電源１５５とを有する。
【００３８】
予備機２０は、リソース２０１と、故障監視部２１１と、リソース起動・停止部２１３と、状態管理部２１５と、状態記憶部２１７と、故障ログ記憶部２１９と、ＡＣＴ化抑止部２２１と、起動・停止指示部２２３と、ＡＣＴ化抑止解除部２２５と、状態確認部２２７と、オペレーティングシステム（ＯＳ）２５１と、電源制御部２５３と、電源２５５とを有する。
【００３９】
リソース１０１及び２０１は、クライアントにサービスを提供するアプリケーションである。リソース１０１及び２０１は、クラスタ状態がサービス稼働中（ＡＣＴ）のサーバで起動している。
【００４０】
故障監視部１１１及び２１１、リソース起動・停止部１１３及び２１３、状態管理部１１５及び２１５が高可用性クラスタソフトに相当する。
【００４１】
故障監視部１１１及び２１１は、サーバの故障状態を監視する。例えば、リソース、ネットワーク、共有ディスク等を監視する。リソースはサービス稼働中（ＡＣＴ）のサーバのみで監視されるが、ネットワーク、共有ディスク及び内蔵ディスクは、現用機と予備機との双方で監視される。現用機で故障が検知された場合、故障状態は、状態管理部１１５を介して状態記憶部１１７に格納される。例えば、故障状態として、故障回数や、故障発生タイミング（リソース開始失敗、リソース監視時の故障、リソース停止失敗）を示すエラーステータスが状態記憶部１１７に格納される。以下に説明するように、現用機の故障状態は、状態管理部２１５を介して予備機の状態記憶部２１７にも格納される。予備機で故障が検知された場合も同様に、予備機の故障状態は、状態管理部２１５を介して状態記憶部２１７に格納され、更に、状態管理部１１５を介して状態記憶部１１７に格納される。また、現用機及び予備機の故障箇所を示す詳細な故障ログ（エラーメッセージ）は、それぞれ故障ログ記憶部１１９及び２１９に格納される。
【００４２】
リソース起動・停止部１１３及び２１３は、クラスタ状態及び故障状態に基づいてリソースを起動及び停止させる。サーバのクラスタ状態がＡＣＴへ遷移できる状態（ＳＢＹ［ｏｎｌｉｎｅ］）のときに他サーバのリソースが停止した場合、リソース起動・停止部１１３及び２１３は、リソースを起動させる。サーバのクラスタ状態がサービス稼働中（ＡＣＴ）のときに故障が発生した場合、リソース起動・停止部１１３及び２１３は、リソースを停止させる。
【００４３】
状態管理部１１５及び２１５は、故障状態に基づいてクラスタ状態を管理する。現用機１０の状態管理部１１５と予備機２０の状態管理部２１５は、互いに状態記憶部に格納された故障状態（故障回数、エラーステータス）、クラスタ状態等の情報を交換し、各サーバの情報を状態記憶部１１７及び２１７に格納する。
【００４４】
図３に、状態管理部１１５及び２１５で管理されるクラスタ状態の状態遷移図を示す。クラスタ状態には、ＡＣＴと、ＳＢＹ［ｏｎｌｉｎｅ］と、ＳＢＹ［ｓｔａｎｄｂｙ］と、ＳＢＹ［遷移中］と、ＯＵＳと、ＮＯＮＥとが含まれる。ＡＣＴのサーバにリソース故障が発生した場合、クラスタ状態はＡＣＴからＯＵＳになる（Ｔ１）。ＡＣＴのサーバにリソース以外の故障（ネットワーク、共有ディスク等の故障）が発生した場合、クラスタ状態はＡＣＴからＳＢＹ［遷移中］になる（Ｔ２）。ＯＵＳのサーバの故障状態がクリアされた場合、クラスタ状態はＯＵＳからＳＢＹ［ｏｎｌｉｎｅ］になる（Ｔ３）。故障等により系切り替えが発生して、ＳＢＹ［ｏｎｌｉｎｅ］のサーバがサービスを引き継ぐ場合、クラスタ状態はＳＢＹ［ｏｎｌｉｎｅ］からＳＢＹ［遷移中］になり（Ｔ４）、更に、ＡＣＴになる（Ｔ５）。ＡＣＴのサーバから他サーバにサービスを引き継ぐためにＡＣＴのサーバでサービスの稼働が抑止された場合、クラスタ状態はＡＣＴからＳＢＹ［ｓｔａｎｄｙ］になる（Ｔ６）。ＳＢＹ［ｓｔａｎｄｙ］のサーバでＡＣＴへの遷移抑止が解除された場合、クラスタ状態はＳＢＹ［ｓｔａｎｄｙ］からＳＢＹ［ｏｎｌｉｎｅ］になる（Ｔ７）。ＳＢＹ［ｏｎｌｉｎｅ］のサーバでＡＣＴへの遷移が抑止された場合、クラスタ状態はＳＢＹ［ｏｎｌｉｎｅ］からＳＢＹ［ｓｔａｎｄｙ］になる（Ｔ８）。また、電源の停止、オペレーティングシステムの停止又は高可用性クラスタソフト自体の停止により、高可用性クラスタソフトが停止した場合、クラスタ状態はＮＯＮＥになる（Ｔ９〜Ｔ１３）。高可用性クラスタソフトが起動した場合、クラスタ状態はＮＯＮＥからＳＢＹ［ｏｎｌｉｎｅ］になる（Ｔ１４）。また、現用機及び予備機の双方のクラスタ状態がＮＯＮＥのときに高可用性クラスタソフトが起動した場合、クラスタ状態はＮＯＮＥからＡＣＴになる（Ｔ１５）。
【００４５】
状態記憶部１１７及び２１７は、各サーバのクラスタ状態及び故障状態を格納する。具体的には、状態記憶部１１７及び２１７は、現用機１０の情報と予備機２０の情報との双方をそれぞれ格納し、状態管理部１１５と状態管理部２１５との情報交換によって、状態記憶部１１７に格納される情報と状態記憶部２１７に格納される情報とは同一に保持される。
【００４６】
図４に、状態記憶部１１７及び２１７に格納される情報の例を示す。状態記憶部１１７及び２１７は、サーバ毎にクラスタ状態、故障回数、エラーステータス及びリソース状態を格納する。状態記憶部１１７及び２１７は、クラスタ状態として、ＡＣＴと、ＳＢＹ［ｏｎｌｉｎｅ］と、ＳＢＹ［ｓｔａｎｄｂｙ］と、ＳＢＹ［遷移中］と、ＯＵＳと、ＮＯＮＥとのうちいずれかを記憶する。故障回数として、故障が発生した回数（０〜Ｎの値）を記憶する。故障発生タイミングを示すエラーステータスとして、エラー無しの状態と、リソース開始に失敗した状態と、リソース監視時に故障を検知した状態と、リソース停止に失敗した状態とのうちいずれかを記憶する。リソース状態として、他サーバでリソース稼働中である状態と、自サーバでリソースが稼働中である状態と、リソースが停止中である状態と、リソースの管理を行わない状態とのうちいずれを記憶する。
【００４７】
また、状態記憶部１１７及び２１７は、他サーバの電源を強制的に切断する機能が設定されているか否かを示す強制電源断設定状態を格納してもよい。強制電源断設定状態は、システム全体として設定されてもよく、サーバ毎に設定されてもよい。なお、現用機１０及び予備機２０は、ネットワークや共有ディスク及び内蔵ディスク等に故障が発生した場合等に、他サーバの電源制御部２５３又は１５３に対して強制的に電源を切断する指示を送信する強制電源断機能部を有してもよい。
【００４８】
故障ログ記憶部１１９及び２１９は、それぞれ現用機１０及び予備機２０の故障ログ（エラーメッセージ）を格納する。故障ログには、故障箇所を示す詳細な情報が含まれる。
【００４９】
ＡＣＴ化抑止部２２１は、状態管理部２１５を介して、状態記憶部２１７に格納された予備機２０のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させる。この遷移抑止により、状態管理部１１５を介して、状態記憶部１１７に格納された予備機２０のクラスタ状態も遷移し、予備機２０のクラスタ状態は、ＳＢＹ［ｓｔａｎｄｂｙ］になる。
【００５０】
起動・停止指示部２２３は、現用機１０の起動・停止部１２３に対してオペレーティングシステム又は電源の起動及び停止を指示する。現用機１０の起動・停止部１２３は、起動・停止指示部２２３から停止指示を受信し、オペレーティングシステム１５１を停止させる。オペレーティングシステム１５１の停止が失敗した場合には、電源制御部１５３を介して電源１５５を停止させる。また、現用機１０の起動・停止部１２３は、起動・停止指示部２２３から起動指示を受信し、電源１５５が停止している場合には、電源制御部１５３を介して電源１５５を起動させる。オペレーティングシステム１５１が停止している場合には、オペレーティングシステム１５１を起動させる。なお、起動・停止指示部２２３は、オペレーティング又は電源の起動・停止を個別に行うのではなく、オペレーティングシステム又は電源の再起動を行ってもよい。
【００５１】
ＡＣＴ化抑止解除部２２５は、状態管理部２１５を介して、状態記憶部２１７に格納された予備機２０のクラスタ状態をサービス稼働中へ遷移できる状態へ遷移させる。この遷移抑止の解除により、状態管理部１１５を介して、状態記憶部１１７に格納された予備機２０のクラスタ状態も遷移し、予備機２０のクラスタ状態は、ＳＢＹ［ｏｎｌｉｎｅ］になる。
【００５２】
状態確認部２２７は、状態管理部２１５を介して、状態記憶部２１７に格納された情報を確認する。例えば、現用機１０及び予備機２０の双方のクラスタ状態、故障回数、エラーステータス及びリソース状態を確認する。
【００５３】
オペレーティングシステム１５１は、サーバ上で高可用性クラスタソフトやアプリケーション等を動作させるための基本ソフトウェアである。
【００５４】
電源制御部１５３は、他サーバから強制的に電源を切断する指示を受信し、サーバに電力を供給する電源１５５をオン及びオフにする。
【００５５】
図５に、本発明の実施例に係るクラスタ状態の遷移を示す。本発明の実施例では、クラスタシステムの現用機で故障が発生して現用機から予備機への系切り替えが失敗した状態を前提とする。この状態から、予備機への系切り替え処理を実施し、予備機でサービスを再開させる。
【００５６】
具体的には、図５に示すように、サービスを開始して故障が発生していない場合、現用機のクラスタ状態は、ＡＣＴであり、予備機のクラスタ状態は、ＳＢＹ［ｏｎｌｉｎｅ］である（Ｓ１）。ネットワークケーブル抜けやディスクケーブル抜け等により、故障監視部１１１が現用機のネットワークや共有ディスク等の故障を検知すると、現用機から予備機への系切り替えが実行され、現用機のリソース起動・停止部１１３はリソースを停止させる。しかし、ネットワークや共有ディスク等の故障時には、現用機のリソース停止は失敗する可能性がある。リソース停止が失敗したとき、状態管理部１１５及び２１５は、現用機のエラーステータスをリソース停止失敗にする。また、状態管理部１１５及び２１５は、現用機のクラスタ状態をＳＢＹ［遷移中］にする（Ｓ２）。なお、ネットワークや共有ディスク等の故障時には、ハードウェア故障の可能性があるため、予備機への系切り替えは自動的に行われず、予備機のクラスタ状態はＳＢＹ［ｏｎｌｉｎｅ］のままである。
【００５７】
この状態から予備機でサービスを再開させるために、状態確認部２２７は、現用機のクラスタ状態がＳＢＹ［遷移中］であり、現用機のエラーステータスがリソース停止失敗であり、予備機のクラスタ状態がＳＢＹ［ｏｎｌｉｎｅ］であると確認してもよい。予備機での意図しないサービス再開を防ぐために、ＡＣＴ化抑止部２１１は、予備機のクラスタ状態をＳＢＹ［ｓｔａｎｄｂｙ］へ遷移させる（Ｓ３）。処理の正常終了を確認するため、状態確認部２２７は、予備機のクラスタ状態がＳＢＹ［ｓｔａｎｄｂｙ］であると確認してもよい。次に、予備機の起動・停止指示部２２３は、現用機の起動・停止部１２３に対して、現用機のオペレーティングシステム又は電源の停止を指示する。現用機のオペレーティングシステム又は電源が停止した場合、現用機のクラスタ状態はＮＯＮＥになる（Ｓ４）。処理の正常終了を確認するため、状態確認部２２７は、現用機のクラスタ状態がＮＯＮＥであると確認してもよい。次に、ＡＣＴ化抑止解除部２２５は、予備機のＡＣＴへの遷移抑止を解除する。この解除により、予備機のクラスタ状態は、ＡＣＴになる（Ｓ５）。処理の正常終了を確認するため、状態確認部２２７は、予備機のクラスタ状態がＡＣＴであると確認してもよい。その後、予備機の起動・停止指示部２２３は、現用機の起動・停止部１２３に対して、現用機のＯＳ又は電源の起動を指示する。この場合、現用機のクラスタ状態は、ＮＯＮＥのままである。このようにして、系切り替えが失敗したときでも、予備機でサービスを再開することができる。
【００５８】
＜高可用性クラスタソフトへの適用＞
図６に本発明を高可用性クラスタソフトに適用したときの機能ブロック図を示す。
【００５９】
高可用性クラスタソフトには、サーバの故障状態を監視する故障監視機能と、クラスタ状態及び故障状態に基づいてリソースを起動及び停止させるリソース起動・停止機能と、故障状態に基づいてクラスタ状態を管理する状態管理機能とが含まれる。故障ログは、内蔵ディスクの故障ログ記憶部に格納され、サーバ毎のクラスタ状態、故障回数、エラーステータス及びリソース状態は、内蔵ディスクの状態記憶部に格納される。
【００６０】
このような高可用性クラスタソフトシステムの現用機に、上記の起動・停止部１２３を設け、予備機に、上記のＡＣＴ化抑止部２２１と、起動・停止指示部２２３と、ＡＣＴ化抑止解除部２２５と、状態確認部２２７とを設けることで、以下に説明するように、系切り替えが失敗したときでも、予備機でサービスを再開することができる。
【００６１】
図７に、本発明を高可用性クラスタソフトに適用したときのサービス再開方法のフローチャートを示す。
【００６２】
このサービス再開方法は、クラスタシステムの現用機で故障が発生して現用機から予備機への系切り替えが失敗した状態から始まる。この場合、現用機及び予備機は以下の状態である。
【００６３】
（現用機の状態）
クラスタ状態：ＳＢＹ［遷移中］
故障回数：１以上
エラーステータス：３
リソース状態：３
（予備機の状態）
クラスタ状態：ＳＢＹ［ｏｎｌｉｎｅ］
故障回数：０
エラーステータス：０
リソース状態：０
サービス再開方法の実行に先立ち、状態確認部２２７は、状態確認コマンドを実行して、予備機の状態記憶部に格納されたクラスタ状態を読み取り、現用機のクラスタ状態がＳＢＹ［遷移中］であり、予備機のクラスタ状態がＳＢＹ［ｏｎｌｉｎｅ］であることを確認してもよい。ここで、高可用性クラスタソフトでは予備機と現用機との間で状態記憶部の情報交換が行われているため、状態確認コマンドにより現用機及び予備機の双方の状態を読み取ることができる。なお、このようなクラスタ状態の場合、現用機のエラーステータスは３である。
【００６４】
この状態において、現用機の故障回復中にサービスが予備機に誤遷移することを回避するため、ＡＣＴ化抑止部２２１は、状態遷移コマンド（系切り替えコマンド）を実行して、予備機の状態記憶部に格納された予備機のクラスタ状態をＳＢＹ［ｓｔａｎｄｂｙ］へ遷移させる（Ｓ１０１）。予備機の高可用性クラスタソフトは、クラスタ状態の遷移を現用機の高可用性クラスタソフトに通知し、現用機の高可用性クラスタソフトは、この通知を受け、現用機の状態記憶部に格納された予備機のクラスタ状態をＳＢＹ［ｓｔａｎｄｂｙ］にする。
【００６５】
次に、状態確認部２２７は、状態確認コマンドを実行して、予備機の状態記憶部に格納された予備機のクラスタ状態を読み取り（Ｓ１０３）、予備機のクラスタ状態がＳＢＹ［ｓｔａｎｄｂｙ］であるか確認する（Ｓ１０５）。このときの現用機及び予備機の状態は以下の状態である。
【００６６】
（現用機の状態）
クラスタ状態：ＳＢＹ［遷移中］
故障回数：１以上
エラーステータス：３
リソース状態：３
（予備機の状態）
クラスタ状態：ＳＢＹ［ｓｔａｎｄｂｙ］
故障回数：０
エラーステータス：０
リソース状態：０
状態遷移が失敗し、予備機が上記の状態になっていない場合（Ｓ１０５：ＮＯ）、エラーが出力される（Ｓ１０７）。例えば、エラーは、管理ＬＡＮに接続された保守端末に表示される。
【００６７】
この状態では、依然として現用機のリソースの停止が完了していない可能性がある。従って、状態遷移が成功し、予備機が上記の状態になっている場合（Ｓ１０５：ＹＥＳ）、起動・停止指示部２２３は、起動・停止部１２３に対して現用機のＯＳの停止を指示する（Ｓ１０９）。停止指示に応じて、起動・停止部１２３は、現用機のＯＳを停止させる。ＯＳの停止が失敗した場合（Ｓ１０９：ＮＯ）、起動・停止指示部２２３は、起動・停止部１２３に対して現用機の電源の停止を指示する（Ｓ１１３）。起動・停止部１２３は、現用機の電源を停止させる。
【００６８】
次に、状態確認部２２７は、状態確認コマンドを実行して、予備機の状態記憶部に格納された現用機のクラスタ状態を読み取り（Ｓ１１５）、現用機のクラスタ状態がＮＯＮＥであるか確認する（Ｓ１１７）。このときの現用機及び予備機の状態は以下の状態である。
【００６９】
（現用機の状態）
クラスタ状態：ＮＯＮＥ
故障回数：０
エラーステータス：０
リソース状態：０
（予備機の状態）
クラスタ状態：ＳＢＹ［ｓｔａｎｄｂｙ］
故障回数：０
エラーステータス：０
リソース状態：０
ＯＳ又は電源の停止が失敗し、現用機が上記の状態になっていない場合（Ｓ１１７：ＮＯ）、エラーが出力される（Ｓ１１９）。
【００７０】
ＯＳ又は電源の停止が成功し、現用機が上記の状態になっている場合（Ｓ１１７：ＹＥＳ）、ＡＣＴ化抑止解除部２２５は、状態遷移コマンド（系切り替えコマンド）を実行して、予備機の状態記憶部に格納された予備機のクラスタ状態をＳＢＹ［ｏｎｌｉｎｅ］へ遷移させる（Ｓ１２１）。このとき、現用機のクラスタ状態はＮＯＮＥであるため（高可用性クラスタソフトが停止しているため）、予備機のクラスタ状態は自動的にＡＣＴへ遷移する。予備機の高可用性クラスタソフトは、クラスタ状態の遷移を現用機の高可用性クラスタソフトに通知し、現用機の高可用性クラスタソフトは、この通知を受け、現用機の状態記憶部に格納された予備機のクラスタ状態をＡＣＴにする。
【００７１】
次に、状態確認部２２７は、状態確認コマンドを実行して、予備機の状態記憶部に格納された予備機のクラスタ状態を読み取り（Ｓ１２３）、予備機のクラスタ状態がＡＣＴであるか確認する（Ｓ１２５）。このときの現用機及び予備機の状態は以下の状態である。
【００７２】
（現用機の状態）
クラスタ状態：ＮＯＮＥ
故障回数：０
エラーステータス：０
リソース状態：０
（予備機の状態）
クラスタ状態：ＡＣＴ
故障回数：０
エラーステータス：０
リソース状態：１
状態遷移が失敗し、予備機が上記の状態になっていない場合（Ｓ１２５：ＮＯ）、エラーが出力される（Ｓ１２７）。
【００７３】
状態遷移が成功し、予備機が上記の状態になっている場合（Ｓ１２５：ＹＥＳ）、起動・停止指示部２２３は、起動・停止部１２３に対して現用機のＯＳ又は電源の起動を指示する。起動・停止部１２３がＯＳ又は電源を起動し（Ｓ１２９）、処理が終了する。なお、ＯＳ又は電源の起動・停止を別々のステップで記載しているが、ステップＳ１０９及びＳ１１３で、それぞれＯＳ及び電源の再起動を行ってもよい。
【００７４】
なお、上記の処理フローは、管理ＬＡＮに接続された保守端末から現用機の各機能部を実行させることにより、実施されてもよい。
【００７５】
＜実施例の効果＞
上記のように、本発明の実施例によれば、クラスタシステムの現用機で故障が発生して現用機から予備機への系切り替えが失敗した場合に、予備機でサービスを再開させることが可能になる。
【００７６】
また、現用機のＯＳ又は電源の停止の前に予備機のクラスタ状態をサービス稼働中への遷移が抑止されている状態へ遷移させることにより、予備機でのサービス開始準備ができていない意図しないタイミングで予備機に系切り替えが行われることを回避することができる。
【００７７】
説明の便宜上、本発明の実施例に係るシステムは機能的なブロック図を用いて説明しているが、本発明のシステムは、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、サーバ（現用機及び予備機）の各機能部がソフトウェアで実現され、オペレーションシステム上にインストールされてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。
【００７８】
以上、本発明の実施例について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００７９】
１０  サーバ（現用機）
２０  サーバ（予備機）
３０  共有ディスク
４０  ルータ
１０１  リソース
１１１  故障監視部
１１３  リソース起動・停止部
１１５  状態管理部
１１７  状態記憶部
１１９  故障ログ記憶部
１２３  起動・停止部
１５１  オペレーティングシステム
１５３  電源制御部
１５５  電源
２０１  リソース
２１１  故障監視部
２１３  リソース起動・停止部
２１５  状態管理部
２１７  状態記憶部
２１９  故障ログ記憶部
２２１  ＡＣＴ化抑止部
２２３  起動・停止指示部
２２５  ＡＣＴ化抑止解除部
２２７  状態確認部
２５１  オペレーティングシステム
２５３  電源制御部
２５５  電源
【図１】
0005277228.tif 000002
【図２】
0005277228.tif 000003
【図３】
0005277228.tif 000004
【図４】
0005277228.tif 000005
【図５】
0005277228.tif 000006
【図６】
0005277228.tif 000007
【図７】
0005277228.tif 000008