(57)【特許請求の範囲】
【請求項１】
複数のモジュールを多重化して構成されたフォールトトレラントコンピュータであって、
各前記モジュールは、
当該モジュールの電源状態を保持する電源状態保持手段と、
アクティブＢＭＣ（Baseboard Management Controller）として決定された場合に前記複数のモジュールの電源制御を行うシステム管理用コントローラ（Baseboard Management Controller：以下、ＢＭＣ）と、を備え、
前記ＢＭＣについて故障を検出する故障検出手段と、
前記故障検出手段により前記アクティブＢＭＣの故障が検出された場合、他のモジュールのＢＭＣにアクティブＢＭＣとして前記複数のモジュールの電源制御を引き継がせる切替手段と、
前記故障検出手段により故障が検出された前記ＢＭＣをリセットするリセット手段と、
を備えることを特徴とするフォールトトレラントコンピュータ。
【請求項２】
前記切替手段は、前記故障検出手段により前記アクティブＢＭＣの故障が検出された場合、優先順位に従って、他のモジュールのＢＭＣにアクティブＢＭＣとして前記複数のモジュールの電源制御を引き継がせる、
ことを特徴とする請求項１に記載のフォールトトレラントコンピュータ。
【請求項３】
前記ＢＭＣは、前記リセット手段によるリセット後、各前記モジュールの前記電源状態保持手段から電源状態の情報を取得する、
ことを特徴とする請求項１又は２に記載のフォールトトレラントコンピュータ。
【請求項４】
各前記ＢＭＣは、前記故障検出手段と前記切替手段と前記リセット手段とを含む、
ことを特徴とする請求項１乃至３何れか一項に記載のフォールトトレラントコンピュータ。
【請求項５】
複数のモジュールを多重化して構成されたフォールトトレラントコンピュータにおける電源制御方法であって、
各前記モジュールにおいて、当該モジュールの電源状態を保持するステップと、
特定のモジュールが備える単一のＢＭＣにより全てのモジュールの電源制御を行うステップと、
前記ＢＭＣについて故障を検出する故障検出ステップと、
前記故障検出ステップにより、前記特定のモジュールが備える単一のＢＭＣの故障が検出された場合、他のモジュールのＢＭＣに全てのモジュールの電源制御を引き継がせる切替ステップと、
前記故障が検出されたＢＭＣをリセットするステップと、
を備えることを特徴とする電源制御方法。
【請求項６】
前記切替ステップにおいて、前記故障検出ステップにより、前記特定のモジュールが備える単一のＢＭＣの故障が検出された場合、優先順位に従って、他のモジュールのＢＭＣに全てのモジュールの電源制御を引き継がせる、
ことを特徴とする請求項５に記載の電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントコンピュータにおける電源制御方法に関する。
【背景技術】
【０００２】
多くのサーバプラットフォームでは、サーバ管理機能を提供するためにＢＭＣ（Baseboard Management Controller：システム管理用コントローラ）が組み込まれている。ＢＭＣは、システム診断、ファン制御、電源制御、サーバ管理のためのリモートアクセス等を実現する。ＢＭＣの機能の一つである電源制御は、ＢＭＣが電源ユニットの電源制御信号を直接制御することにより実現される。
また、モジュールを多重化して並列して動作させることによりシステムの可用性を高めるフォールトトレラントシステムがある。複数のサーバを多重化して構成されたフォールトトレラントシステムでは、各モジュール（サーバ）に搭載されたＢＭＣがモジュール毎に電源制御を行う。
【０００３】
例えば、特許文献１には、ＢＭＣの初期化中の故障が検出された場合に、故障検出手段が電源に接続された電源制御信号をアサートしてシステムの電源投入を行う技術が開示されている。
また、特許文献２には、多重化されたシステムにおいて装置に異常が発生した場合における電源制御に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３２０７８０号公報
【特許文献２】特開昭６０−０１５７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなフォールトトレラントシステムでは、システム稼働中にＢＭＣの故障が発生した場合、そのＢＭＣを回復させるためにリセットする必要がある。このリセットにより、ＢＭＣは電源制御信号を初期状態へ戻すため、異常が無く、電源オンの状態であったモジュールも一旦電源が落とされてしまい、結果的にシステムの可用性が低下する。
【０００６】
本発明は、上記問題点に鑑みてなされたもので、ＢＭＣの故障時においてもモジュールの電源制御を維持し、システムの可用性を向上できるフォールトトレラントコンピュータ及び電源制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係るフォールトトレラントコンピュータは、
複数のモジュールを多重化して構成されたフォールトトレラントコンピュータであって、
各前記モジュールは、
当該モジュールの電源状態を保持する電源状態保持手段と、
アクティブＢＭＣ（Baseboard Management Controller）として決定された場合に前記複数のモジュールの電源制御を行うシステム管理用コントローラ（Baseboard Management Controller：以下、ＢＭＣ）と、を備え、
前記ＢＭＣについて故障を検出する故障検出手段と、
前記故障検出手段により前記アクティブＢＭＣの故障が検出された場合、他のモジュールのＢＭＣにアクティブＢＭＣとして前記複数のモジュールの電源制御を引き継がせる切替手段と、
前記故障検出手段により故障が検出された前記ＢＭＣをリセットするリセット手段と、
を備えることを特徴とする。
【０００８】
また、本発明の第２の観点に係る電源制御方法は、
複数のモジュールを多重化して構成されたフォールトトレラントコンピュータにおける電源制御方法であって、
各前記モジュールにおいて、当該モジュールの電源状態を保持するステップと、
特定のモジュールが備える単一のＢＭＣにより全てのモジュールの電源制御を行うステップと、
前記ＢＭＣについて故障を検出する故障検出ステップと、
前記故障検出ステップにより、前記特定のモジュールが備える単一のＢＭＣの故障が検出された場合、他のモジュールのＢＭＣに全てのモジュールの電源制御を引き継がせる切替ステップと、
前記故障が検出されたＢＭＣをリセットするステップと、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＢＭＣの故障時においてもモジュールの電源制御を維持し、システムの可用性を向上することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るフォールトトレラントコンピュータの構成を示すブロック図である。
【図２】図１のフォールトトレラントコンピュータにおける電源状態保持部の機能ブロック図である。
【図３】図１に示すフォールトトレラントコンピュータの動作を接続するためのブロック図である。
【図４】本発明の変形例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態に係るフォールトトレラントコンピュータについて図面を参照して説明する。本システムでは、単一で機能するサーバコンピュータを、交換可能な一つのモジュールとして用い、これらのモジュールを多重化して組み合わせたシステム構成をとる。
【００１２】
図１は本発明の実施形態に係るフォールトトレラントコンピュータの構成を示すブロック図である。図示されるように、このシステムは、複数のモジュール１００と、電源制御要求部４０と、故障検出部２０と、を備える。
【００１３】
モジュール１００は、単一で機能する通常のサーバコンピュータから構成され、ＢＭＣ（Baseboard Management Controller：システム管理用コントローラ）１０と電源状態保持部５０を備える。全てのモジュール１００のＢＭＣ１０と電源状態保持部５０は、通信用インタフェース６０（例えばＩ２Ｃバス等）で互いに接続されている。
【００１４】
ＢＭＣ１０は、システム診断、ファン制御、サーバ管理のためのリモートアクセス等のような一般的なＢＭＣの機能に加えて、このフォールトトレラントコンピュータにおける全てのモジュール１００について電源制御を行う機能を有する。各モジュール１００におけるＢＭＣ１０のうちのいずれか一つのＢＭＣ１０がアクティブＢＭＣとなり、単一で全モジュール１００の電源制御を行う機能を実効化する。また、ＢＭＣ１０は、一定時間毎に故障検出部２０にハートビート信号（ＢＭＣヘルスチェック信号）２１を送信する。
【００１５】
電源状態保持部５０は、当該モジュールの電源状態を保持するためのものであり、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）、またはこれらと同等なデバイスにより実現される。電源状態保持部５０は、モジュールの電源状態を示す情報（電源制御情報）の記憶や、電源７０を制御する電源制御信号３１の供給等を行う。
【００１６】
図２は電源状態保持部５０の機能ブロック図である。電源状態保持部５０は、ＢＭＣインタフェース５１と、電源制御情報保持部５２と、電源制御操作部５３と、を備える。ＢＭＣインタフェース５１は、通信用インタフェース６０を介してＢＭＣ１０との通信を行う。電源制御情報保持部５２は、モジュールの電源状態を示す電源制御情報を記憶保持する。この電源制御情報はＢＭＣインタフェース５１を介してＢＭＣ１０により更新、参照される。電源制御信号操作部５３は、電源制御情報保持部５２の電源制御情報が更新されると、更新内容に応じた電源制御信号３１（オン／オフ信号）を電源７０へ供給する。
【００１７】
図１に示す電源制御要求部４０は、ＢＭＣ１０に対してモジュール１００の電源オン／オフ要求（電源制御要求）４１を発行するものであり、例えば、電源ボタンスイッチや電源制御ソフトウェア等により実現される。
【００１８】
故障検出部２０は、各ＢＭＣ１０をハートビート信号２１により監視する。ハートビート監視によりＢＭＣ１０の故障を検出すると、ＢＭＣ制御信号２２を送信して故障したＢＭＣ１０をリセットする。故障検出部２０は、ＰＬＤやＦＰＧＡ、またはこれらと同等なデバイスにより実現される。
【００１９】
次に、本実施形態に係るフォールトトレラントコンピュータの電源制御処理における動作を説明する。なお、以下の例では、システムは、図３に示すように、モジュール１００ａ（ＢＭＣ１０ａを含む）とモジュール１００ｂ（ＢＭＣ１０ｂを含む）から構成されることとする。
【００２０】
まず、システムの電源投入時等の所定のタイミングで、各ＢＭＣ１０ａ、１０ｂの初期化処理が実行される。この初期化処理時に、全てのモジュール１００ａ、１００ｂの電源制御を行うアクティブＢＭＣを決定する。アクティブＢＭＣの決定方法は任意である。例えば、ＢＭＣ１０ａと１０ｂについて予め設定された優先順位に従って決定してもよく、また、アクティブＢＭＣを指定する入力に従って決定してもよい。
【００２１】
ここでは、モジュール１００ａのＢＭＣ１０ａがアクティブＢＭＣとして決定されたこととする。もう一方のモジュール１００ｂはスタンバイＢＭＣとなる。
【００２２】
ＢＭＣ１０ａ、１０ｂの初期化処理の後、電源制御要求部４０は、各モジュール１００ａ、１００ｂの電源７０ａ、７０ｂをオンにするために、ＢＭＣ１０ａ、１０ｂに対して電源制御要求４１を送信する。ＢＭＣ１０ａは、電源制御要求部４０から電源制御要求４１を受けとると、本システムにおける全てのモジュール１００ａ、１００ｂの電源制御を行う。具体的には、ＢＭＣ１０ａは通信用インタフェース６０を介して各モジュール１００ａ、１００ｂの電源状態保持部５０ａ、５０ｂに対して電源オン要求を送信する。
【００２３】
各電源状態保持部５０ａ、５０ｂは、それぞれ、ＢＭＣインタフェース５１を介して電源オン要求を受け取り、電源制御情報保持部５２に記憶される電源制御情報をオンを示す情報に更新する。この電源制御情報の更新に応答して、電源制御信号操作部５３は、電源オンを指示する電源制御信号３１を電源７０ａ、７０ｂに送信する。これにより、各モジュール１００ａ、１００ｂの電源がオンとなる。
【００２４】
なお、ＢＭＣ１０ａが電源制御要求部４０から電源オフの電源制御要求を受け取った場合には、上記と同様に、各モジュール１００ａ，１００ｂの電源状態保持部５０ａ、５０ｂに対して電源オフ要求を送信する。これに応じて各電源状態保持部５０ａ、５０ｂは、電源制御情報保持部５２の電源制御情報をオフを示す情報に更新し、電源制御信号操作部５３により電源オフを指示する電源制御信号３１が電源７０ａ、７０ｂに送信される。
【００２５】
次に、アクティブＢＭＣ（ＢＭＣ１０ａ）に故障が発生した場合の動作について説明する。
故障検出部２０は、ハートビート信号２１の監視によりＢＭＣ１０ａの故障を検出した場合、ＢＭＣ制御信号２２により、スタンバイＢＭＣのいずれか、この例では、ＢＭＣ１０ｂに制御切り替えを指示する。これにより、ＢＭＣ１０ｂがアクティブＢＭＣとなる。なお、スタンバイＢＭＣのうちのいずれをアクティブＢＣＭとして選択するかは任意であり、例えば、優先度に基づく。
【００２６】
また、故障検出部２０は、ＢＭＣ制御信号２２により、ＢＭＣ１０ａのハードリセットを行う。ハードリセットによりＢＭＣ１０ａは初期化処理を実行して復帰する。そして、ＢＭＣ１０ａは、通信用インタフェース６０を介して各モジュール１００ａ，１００ｂの電源状態保持部５０ａ，５０ｂから電源状態情報を取得し、スタンバイＢＭＣとしての動作を開始する。
【００２７】
以上説明したように本発明によれば、電源状態保持部５０がモジュール１００の電源７０を管理する。このため、モジュール１００の電源を落とすことなく、故障したＢＭＣ１０をリセットすることができる。また、ＢＭＣ１０を冗長化することにより、ＢＭＣ１０の単一故障においてもシステム全体の電源制御を可能とすることができる。
【００２８】
なお、本発明は種々の変形及び応用が可能である。
例えば、図４に示すように、故障検出部２０の機能をＢＭＣ１０（１０ａ、１０ｂ）が備えるようにしてもよい。この場合、各ＢＭＣ１０ａ、１０ｂがハートビート信号により互いの状態を監視する。例えば、ＢＭＣ１０ａがアクティブＢＭＣ、ＢＭＣ１０ｂがスタンバイＢＭＣの場合、ＢＭＣ１０ａに故障が発生すると、ＢＭＣ１０ｂがこれを検出し、自ら電源制御切り替えを行ってアクティブＢＭＣとなる。また、ＢＭＣ１０ｂは、ＢＭＣ制御信号２２を通してＢＭＣ１０ａのハードリセットを行う。ハードリセットによりＢＭＣ１０ａは初期化処理を実行して復帰する。そして、ＢＭＣ１０ａは各モジュール１００の電源状態保持部５０から電源状態情報を取得し、スタンバイＢＭＣとしての動作を開始する。
【００２９】
また、上記説明ではモジュール１００を２重化した構成を例に説明したが、本発明は３重化以上の構成においても適用できる。
また、ＢＭＣ１０の故障検出はシステム上のドライバソフトウェアから実施するようにしてもよい。
【符号の説明】
【００３０】
１０            ＢＭＣ
２０            故障検出部
２１            ハートビート信号
２２            ＢＭＣ制御信号
３１            電源制御信号
４０            電源制御要求部
４１            電源制御要求
５０            電源状態保持部
５１            ＢＭＣインタフェース
５２            電源制御情報保持部
５３            電源制御信号操作部
１００          モジュール
【図１】
0005509730.tif 000002
【図２】
0005509730.tif 000003
【図３】
0005509730.tif 000004
【図４】
0005509730.tif 000005