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