(57)【要約】【課題】コントローラの障害解析を容易に行うことができるコントローラ、制御システム、制御方法及びプログラムを提供する。【解決手段】ファームウェア１０１は、コントローラ１００の各種制御を行うとともに、その制御に関する第１のメッセージを生成する。死活監視部１０２は、第１の死活監視信号を生成するとともに、他のコントローラが生成した第２の死活監視信号を監視する。第１の通信制御部１０５は、第１のメッセージと第１の死活監視信号とを他のコントローラに送信するとともに、他のコントローラが生成した第２のメッセージと第２の死活監視信号とを他のコントローラから受信する。判別処理部１０４は、第１の通信制御部が受信した信号が第２のメッセージであればメモリ１０３に格納し、第２の死活監視信号であれば死活監視部１０２に転送する。【選択図】図１
2013239110.tif 000002
【特許請求の範囲】
【請求項１】
コントローラの各種制御を行うとともに、前記制御に関する第１のメッセージを生成するファームウェアと、
第１の死活監視信号を生成するとともに、他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、
メモリと、
前記第１のメッセージと、前記第１の死活監視信号とを他のコントローラに送信するとともに、前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、
前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージを前記メモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有する
コントローラ。
【請求項２】
コントローラの各種制御を行うとともに、前記制御に関する第１のメッセージを生成するファームウェアと、
第１の死活監視信号を生成する死活監視部と、
前記第１のメッセージと、前記第１の死活監視信号とを他のコントローラに送信する第１の通信制御部とを有する
コントローラ。
【請求項３】
他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、
前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、
前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージを前記メモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有する
コントローラ。
【請求項４】
他の装置と前記ファームウェアとの通信を制御する第２の通信制御部をさらに備え、
前記ファームウェアは、前記第２の通信制御部が受信した信号が前記他の装置からの通信要求である場合、前記第１のメッセージを前記第２の通信制御部に転送する
請求項１乃至３いずれか１項記載のコントローラ。
【請求項５】
請求項１又は２記載のコントローラである第１のコントローラと、
請求項１又は３記載のコントローラである第２のコントローラとを有し、
前記第１のコントローラの第１の通信制御部と、前記第２のコントローラの第１の通信制御部とが、互いに通信可能に接続されている
制御システム。
【請求項６】
前記第１のコントローラ又は前記第２のコントローラの少なくともいずれか一方は、
他の装置と前記第１のコントローラ又は前記第２のコントローラの前記ファームウェアとの通信を制御する第２の通信制御部をさらに備え、
前記第１のコントローラ又は前記第２のコントローラの前記ファームウェアは、前記第２の通信制御部が受信した信号が前記他の装置からの通信要求である場合、前記第１のメッセージを前記第２の通信制御部に転送する
請求項５記載の制御システム。
【請求項７】
ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により他のコントローラに送信するステップと、
前記他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した前記第２の死活監視信号とを、前記第１の通信制御部により前記他のコントローラから受信するステップと、
前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージをメモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送するステップとを有する
制御方法。
【請求項８】
ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により他のコントローラに送信するステップを有する
制御方法。
【請求項９】
他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した前記第２の死活監視信号とを、第１の通信制御部により前記他のコントローラから受信するステップと、
前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージをメモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を死活監視部に転送するステップとを有する
制御方法。
【請求項１０】
コンピュータに、請求項７乃至９いずれか１項記載の制御方法を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラ、制御システム、制御方法及びプログラムに関し、例えばコントローラの障害解析を容易に行う技術に関する。
【背景技術】
【０００２】
ＢＭＣ（ベースボード・マネジメント・コントローラ）を備えたサーバシステムが広く知られている。ＢＭＣは、システム基盤上のさまざまなセンサーの監視や、サーバシステムのハードウェア制御などを行うためのコントローラである。一般に、ＢＭＣにはＢＭＣＦＷ（ＢＭＣを制御するためのファームウェア）が組み込まれ、動作している。ＢＭＣＦＷは、例えば組み込みＬｉｎｕｘ（登録商標）ベースであり得る。かかる構成は、エンタープライズ向けのサーバシステム、特に基幹系システムに利用されるコンピュータシステムにおいて多く採用されている。
【０００３】
ＢＭＣは、仮に故障するとサーバシステムの起動や停止ができなくなり、サーバシステムの運用が不可となることがある。すなわち、ＢＭＣはＳＰＯＦ（Ｓｉｎｇｌｅ  Ｐｏｉｎｔ  ｏｆ  Ｆａｉｌｕｒｅ：当該部位が故障するとシステム全体が使用不可となるコンポーネント）となる可能性がある。そこで、ＢＭＣがＳＰＯＦとなる可能性を低減するため、ＢＭＣが二重化されることがある。すなわち、ＢＭＣを二基搭載し、動作中のＢＭＣが故障した場合、他のＢＭＣが故障したＢＭＣに代わって動作するよう構成される。
【０００４】
特許文献１には、複数のＢＭＣを搭載したコンピュータ装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１５８９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＢＭＣにおいて、何らかのハードウェア障害やＢＭＣＦＷの不具合などが発生すると、ＢＭＣＦＷがカーネルパニック（ＢＭＣＦＷのＯＳのカーネル部分に致命的エラーが生じ、そのエラーから復旧できなくなる状態）を引き起こすことがある。このとき、典型的なＢＭＣは、カーネルパニックに関するメッセージをそのＢＭＣ内のＦＬＡＳＨＲＯＭ（不揮発性記憶領域）に保存する。ここで、メッセージの保存が正常に行われていれば、後にそのメッセージを利用してＢＭＣＦＷの動作履歴の把握や障害解析を行うことができる。しかし、何らかの理由によりＦＬＡＳＨＲＯＭへの保存が失敗すると、メッセージは失われ、障害解析が不可能となってしまう。
【０００７】
ＢＭＣには、１以上のＵＡＲＴ（シリアルポート制御のための集積回路）が搭載され、１つのＵＡＲＴがサーバ管理者の管理端末（ＰＣ等）とシリアルケーブルで接続されることにより、管理端末をＢＭＣＦＷのデバッグ用シリアルコンソール（端末操作画面）として使用することができるものもある。このようなＢＭＣにおいては、カーネルパニックに関するメッセージを、ＵＡＲＴを介してシリアルコンソールにも出力するという動作が行われる。しかし、その際にシリアルコンソールが未接続であればメッセージの採取は不可能である。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、コントローラの障害解析を容易に行うことができるコントローラ、制御システム、制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る第１の態様のコントローラは、コントローラの各種制御を行うとともに、前記制御に関する第１のメッセージを生成するファームウェアと、第１の死活監視信号を生成するとともに、他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、メモリと、前記第１のメッセージと、前記第１の死活監視信号とを他のコントローラに送信するとともに、前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージを前記メモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有するものである。
【００１０】
本発明に係る第２の態様のコントローラは、コントローラの各種制御を行うとともに、前記制御に関する第１のメッセージを生成するファームウェアと、第１の死活監視信号を生成する死活監視部と、前記第１のメッセージと、前記第１の死活監視信号とを他のコントローラに送信する第１の通信制御部とを有するものである。
【００１１】
本発明に係る第３の態様のコントローラは、他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、メモリと、前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージを前記メモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有するものである。
【００１２】
本発明に係る制御システムは、前記第１の態様のコントローラ又は前記第２の態様のコントローラである第１のコントローラと、前記第１の態様のコントローラ又は前記第３の態様のコントローラである第２のコントローラとを有し、前記第１のコントローラの第１の通信制御部と、前記第２のコントローラの第１の通信制御部とが、互いに通信可能に接続されているものである。
【００１３】
本発明に係る第１の態様の制御方法は、ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により他のコントローラに送信するステップと、前記他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した前記第２の死活監視信号とを、前記第１の通信制御部により前記他のコントローラから受信するステップと、前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージをメモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を前記死活監視部に転送するステップとを有するものである。
【００１４】
本発明に係る第２の態様の制御方法は、ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により他のコントローラに送信するステップを有するものである。
【００１５】
本発明に係る第３の態様の制御方法は、他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した前記第２の死活監視信号とを、第１の通信制御部により前記他のコントローラから受信するステップと、前記第１の通信制御部が受信した信号が前記第２のメッセージである場合、前記第２のメッセージをメモリに格納させ、前記第２の死活監視信号である場合、前記第２の死活監視信号を死活監視部に転送するステップとを有するものである。
【００１６】
本発明に係るプログラムは、コンピュータに、前記第１の態様の制御方法乃至第３の態様の制御方法のうちいずれか１つを実行させるものである。
【発明の効果】
【００１７】
本発明により、コントローラの障害解析を容易に行うことができるコントローラ、制御システム、制御方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態にかかるコントローラ１００の構成を示す図である。
【図２】実施の形態にかかるコントローラ１００の構成を示す図である。
【図３】実施の形態にかかるコントローラ１００の構成を示す図である。
【図４】実施の形態にかかるコントローラ１００の他のコントローラからのデータ受信動作を示す図である。
【図５】実施の形態にかかるコントローラ１００のコンソールＰＣからのデータ受信動作を示す図である。
【図６】実施の形態にかかるコントローラ１００のデータ送信動作を示す図である。
【図７】従来のサーバシステムの構成を示す図である。
【図８】従来のサーバシステムの構成を示す図である。
【発明を実施するための形態】
【００１９】
まず、本発明の課題を明確にするため、従来の二重化されたＢＭＣの例について説明する。
【００２０】
図７は、従来の二重化されたＢＭＣをサーバシステムに搭載した例を示すブロック図である。このサーバシステム１０００は、１つのＯＳ１００１（オペレーティングシステム：サーバシステム全体を管理する基本ソフトウェア）、２つのＢＭＣ１００３及び１０１１を有している。これらのＢＭＣのうち、現在ＯＳ１００１と接続され、サーバシステム１０００を制御しているＢＭＣ１００３をＭａｓｔｅｒ  ＢＭＣと呼ぶ。一方、ＯＳ１００１と接続されず、サーバシステムを制御していないＢＭＣ１０１１をＳｔａｎｄｂｙ  ＢＭＣと呼ぶ。なお、Ｓｔａｎｄｂｙ  ＢＭＣは、一般にＳｌａｖｅ  ＢＭＣ、Ｂａｃｋｕｐ  ＢＭＣ、Ａｌｔｅｒｎａｔｉｖｅ  ＢＭＣなどと呼ばれることもある。これらのＢＭＣは二重化されており、Ｍａｓｔｅｒ  ＢＭＣ１００３が故障した場合、Ｓｔａｎｄｂｙ  ＢＭＣ１０１１に動作が切り替わり、Ｓｔａｎｄｂｙ  ＢＭＣ１０１１によるサーバシステム１０００の制御が可能となる。これにより、サーバシステム１０００の運用は継続され、システムの信頼性は高くなる。
【００２１】
ＢＭＣ１００３、１０１１にはＬＡＮ１００４、１０１２（ネットワークコントローラ）が搭載されている。ＬＡＮ１００４及び１０１２は、ＢＭＣ１００３のＢＭＣＦＷとＢＭＣ１０１１のＢＭＣＦＷ間で高速なネットワーク通信を行い、情報交換をするために利用される。また、ＢＭＣ１００３、１０１１にはそれぞれ２つのＵＡＲＴ１００５、１００８及び１０１３、１０１６（シリアルポート制御のための集積回路）が搭載されている。このうちＵＡＲＴ１００５、１０１３はそれぞれ他のＢＭＣと接続され、後述する死活監視プロセス１００６、１０１４が他のＢＭＣとの間で相互に死活監視（ハートビートの監視）を行うための通信経路として使用される。死活監視プロセス１００６、１０１４は、それぞれが生成するハートビート信号をＵＡＲＴ１００５、１０１３を介して互いに送受信し、相手方のハートビート信号が途絶えたことをもって他のＢＭＣのストール（完全停止）を検出することができる。これを契機として、Ｓｔａｎｄｂｙ  ＢＭＣ１０１１がＭａｓｔｅｒ  ＢＭＣ１００３と切り替わり、サーバシステム１０００の制御を開始する。この切替の詳細な機序については説明を省略する。他方、ＵＡＲＴ１００８、１０１６はそれぞれ図示しない管理端末（ＰＣ等）とシリアルケーブルで接続されることにより、管理端末をＢＭＣＦＷのデバッグ用シリアルコンソール（端末操作画面）として使用することができるようにする。さらに、ＢＭＣ１００３、１０１１にはＦＬＡＳＨＲＯＭ１００７、１０１５（不揮発性記憶領域）が搭載される。ＦＬＡＳＨＲＯＭ１００７、１０１５にはＢＭＣＦＷ自体が格納されており、サーバシステム１０００の電源オン（供給電源投入）に応じて、図示しないプロセッサによりＢＭＣＦＷが読み出され、起動される。また、ＦＬＡＳＨＲＯＭ１００７、１０１５は、ＢＭＣＦＷが生成するログやメッセージの保存領域としても使用される。
【００２２】
図８は、ＢＭＣ１００３、１０１１と、これらのＢＭＣが含むＢＭＣＦＷとの機能構成を示すブロック図である。なお、ここでは説明の簡略化のため、ＢＭＣ１００３、１０１１のＢＭＣＦＷは共通のプログラムであるものとする。ＢＭＣＦＷは、Ｌｉｎｕｘ（登録商標）  ｋｅｒｎｅｌ２０００を含む。Ｌｉｎｕｘ  ｋｅｒｎｅｌ２０００は、ＢＭＣＦＷのＯＳのカーネル（中核部分）であり、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２００１（ＢＭＣＦＷのシリアルコンソールを制御するデバイスドライバ）、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２００２（ＵＡＲＴ２００３、２００６を制御するデバイスドライバ）を含む。ＵＡＲＴ２００３（ＢＭＣ１００３、１０１１のＵＡＲＴ１００８、１０１６に相当）と管理端末としてのコンソールＰＣ２００５をシリアルケーブル２００４で接続することにより、管理者はＢＭＣＦＷのシリアルコンソールを使用することができる。ＢＭＣＦＷからコンソールＰＣ２００５にデータを送信する際は、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２００１はｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２００２を経由してＵＡＲＴ２００３にデータを送信する。コンソールＰＣ２００５からデータを受信する際は、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２００１はＵＡＲＴ２００３及びｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２００２を経由してデータを受信する。ＵＡＲＴ２００６（ＢＭＣ１００３、１０１１のＵＡＲＴ１００５、１０１３に相当）は、死活監視プロセス１００６、１０１４によって利用される。死活監視プロセス１００６、１０１４は、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２００２を経由して、ＵＡＲＴ２００６にハートビート信号を送る。また、死活監視プロセス１００６、１０１４は、ＵＡＲＴ２００６及びｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２００２を経由して他のＢＭＣ２００８からハートビート信号を受信する。ＵＡＲＴ２００６は、シリアル接続２００７を介して他のＢＭＣ２００８とハートビート信号の送受信、すなわちハートビート通信を行う。
【００２３】
図７に戻り、この二重化されたＢＭＣ１００３、１０１１を有するサーバシステム１０００は、ＢＭＣＦＷ（例えば組み込みＬｉｎｕｘ）のカーネルの動作ログや、カーネルパニックに陥った場合のメッセージを、ＢＭＣＦＷのシリアルコンソールに出力し、かつＢＭＣ１００３、１０１１自身のＦＬＡＳＨＲＯＭ１００７、１０１５に保存する。しかしながら、ＢＭＣＦＷのシリアルコンソールが未接続であり、かつＦＬＡＳＨＲＯＭ１００７、１０１５への書き込みが失敗した場合には、メッセージは管理者に対して出力されず、管理者はカーネルパニックに関する情報などを採取することはできない。
【００２４】
このような問題を解決するため、本発明の実施の形態にかかるＢＭＣは、ＢＭＣ上で動作するＢＭＣＦＷが、カーネルパニックに関するメッセージを、シリアルコンソールではなく、他のＢＭＣと接続されているＵＡＲＴを介して他のＢＭＣＦＷに出力する。また、他のＢＭＣＦＷには、ＵＡＲＴを介して受信したハートビート情報とカーネルパニックに関するメッセージとを識別する手段を設ける。これにより、二重化されたＢＭＣにおいて、カーネルパニックの要因の解析性を向上させ、さらにはカーネルパニックの発生をサーバ管理者に通報するなどの機能を実現する。
【００２５】
まず、図１を用いて、本発明の実施の形態にかかるコントローラ（ＢＭＣ）１０００の基本的な構成について説明する。
【００２６】
コントローラ１００は、ファームウェア１０１、死活監視部１０２、メモリ１０３、判別処理部１０４、第１の通信制御部１０５を有する。コントローラ１００は、図示しない他のコントローラと二重化されており、これらのコントローラのいずれかがストールしても、いずれかが代替して動作することにより、ＳＰＯＦとなることなく、システム制御を継続することができる。なお、他のコントローラは、コントローラ１００と同等の機能を有するものであることが好ましい。
【００２７】
ファームウェア１０１は、コントローラ１００のＢＭＣＦＷである。ファームウェア１０１は、図示しない記憶装置に格納され、図示しないプロセッサによって当該記憶装置より読み出されて実行される。これにより、ファームウェア１０１は、コントローラ１００の各種制御処理、例えばシステム基盤上のさまざまなセンサーの監視や、サーバシステムのハードウェア制御などを実行する。また、ファームウェア１０１は、カーネルパニックが発生すると、カーネルパニックに関するメッセージを、後述する第１の通信制御部１０５に対して出力する。なお、ファームウェア１０１が格納される記憶装置は、後述のメモリ１０３であってよい。
【００２８】
死活監視部１０２は、他のコントローラ（ＢＭＣ）との間で継続的にハートビート通信を行い、他のコントローラのストール（完全停止）を検出する処理を行う。死活監視部１０２は、コントローラ１００が稼働していることを示すハートビート信号（第１の死活監視信号）を一定時間毎に生成し、第１の通信制御部１０５を介して他のコントローラに送信する。また、他のコントローラが生成したハートビート信号（第２の死活監視信号）を、第１の通信制御部１０５を介して受信する。死活監視部１０２は、他のコントローラのハートビート信号が途絶えたとき、すなわち所定時間以上にわたって第２の死活監視信号を受信できないとき、他のコントローラがストール（完全停止）したものと判定する。他のコントローラが現在システムを制御しているコントローラである場合、この判定を契機として、コントローラ１００が他のコントローラに代わってシステムの制御を開始する。この制御の引き継ぎの詳細な機序については、本発明の対象外であるため説明を省略する。
【００２９】
第１の通信制御部１０５は、コントローラ１００とともに二重化ＢＭＣを構成する他のコントローラと、通信路を介して接続されている。第１の通信制御部１０５は、死活監視部１０２が生成したハートビート信号を、通信路を介し他のコントローラに対して送信する処理を行う。加えて、第１の通信制御部１０５は、ファームウェア１０１が生成したカーネルパニックに関するメッセージを、同じ通信路を介して他のコントローラに送信する。さらに、第１の通信制御部１０５は、他のコントローラが生成したハートビート信号、及び他のコントローラのファームウェアが生成したカーネルパニックに関するメッセージを受信し、後述する判別処理部１０４に引き渡す。
【００３０】
判別処理部１０４は、第１の通信制御部１０５が他のコントローラから受信したデータを受け取り、そのデータがハートビート信号であるか、あるいはカーネルパニックに関するメッセージであるかを判別する。この判別方法の詳細については後述する。ここで、データがハートビート信号であれば、判別処理部１０４は、そのハートビート信号を死活監視部１０２に引き渡す。一方、データがカーネルパニックに関するメッセージであれば、判別処理部１０４は、そのメッセージを後述のメモリ１０３に格納する。
【００３１】
メモリ１０３は、判別処理１０４で振り分けられた、他のコントローラのカーネルパニックに関するメッセージを記録する記憶装置である。メモリ１０３は、好ましくは不揮発性記憶領域であり、システムの電源がオフであってもデータが消失することはない。
【００３２】
図２に、コントローラ１００のより具体的な実装例を示す。
【００３３】
コントローラ１００は、図１と同様、ファームウェア１０１、死活監視部１０２、メモリ１０３としてのＦＬＡＳＨＲＯＭ１０３、判別処理部１０４、第１の通信制御部１０５としてのＵＡＲＴ１０５を有する。このコントローラ１００では、ファームウェア１０１はＦＬＡＳＨＲＯＭ１０３に格納されているものとする。加えて、このコントローラ１００は、第２の通信制御部としてのＵＡＲＴ１０７、ＬＡＮ１０６を含む。
【００３４】
ＬＡＮ１０６は、他のコントローラとのネットワーク通信を行うためのモジュールである。コントローラ１００と他のコントローラとは、この通信路により二重化構成を実現するためのデータ通信を行う。
【００３５】
第２の通信制御部としてのＵＡＲＴ１０７は、図示しない管理端末としてのコンソールＰＣとシリアルケーブルで接続されることにより、コンソールＰＣをファームウェア１０１のシリアルコンソールとして使用することを可能とする。
【００３６】
図３に、図２のコントローラ１００と、ファームウェア１０１との機能構成を示す。
【００３７】
ファームウェア１０１は、例えば組み込みＬｉｎｕｘベースであり、Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００を含む。Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００は、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１、切替処理部２０２、及びｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を含む。ここで、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１とは、ファームウェア１０１のシリアルコンソールを制御するデバイスドライバであり、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３とは、ＵＡＲＴ１０７、１０５を制御するデバイスドライバである。Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００が出力するメッセージ（カーネルパニックに関するメッセージを含む）は、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１及びｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を経由して、ＵＡＲＴ１０５又は１０７に出力される。
【００３８】
ＵＡＲＴ１０７と管理端末としてのコンソールＰＣ２０５とがシリアルケーブル２０４で接続され、ファームウェア１０１のシリアルコンソールが使用される場合、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１は、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を経由し、ＵＡＲＴ１０７を介してコンソールＰＣ２０５へデータを出力する。また、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１は、ＵＡＲＴ１０７を介し、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を経由してコンソールＰＣ２０５からデータ受信する。なお、本実施の形態においては、シリアルコンソールの使用開始にあたっては、従来のＢＭＣ１００３、１０１１にはない特殊の手順を必要とする。この特殊の手順については追って説明する。
【００３９】
死活監視部１０２は、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を経由し、ＵＡＲＴ１０５を介して他のコントローラ２０７との間でハートビート通信を行う。なお、ＵＡＲＴ１０５は他のコントローラ２０７とシリアル接続２０６により常に通信可能な状態にあるものとする。
【００４０】
つづいて、図４乃至図６を用いて、コントローラ１００の動作について説明する。
【００４１】
図４は、コントローラ１００が他のコントローラからデータを受信する処理を示スフローチャートである。
【００４２】
Ｓ５００：ＵＡＲＴ１０５が、他のコントローラから出力されたデータを受信する。受信したデータは、判別処理部１０４に転送される。
【００４３】
Ｓ５０１：判別処理部１０４は、受信したデータの内容の識別を行う。ここで、ハートビート信号は、ファームウェアのカーネルが出力するメッセージが通常使用することのない制御コードによって構成されることが好ましい。一方、ファームウェアのカーネルが出力するメッセージ（カーネルパニック時のメッセージも含む）は、制御コードではなく、アルファベット、数字、記号といった人が識別可能な文字（文字コード）で構成されるのが一般的である。そこで、判別処理部１０４は、例えば受信したデータが制御コードを含むか否かを調べることにより、他のコントローラのハートビート信号であるか、あるいは他のコントローラのファームウェアのカーネルが出力したメッセージ（カーネルパニックに関するメッセージを含む）であるかを判別することができる。
【００４４】
Ｓ５０２：判別処理部１０４は、受信したデータがハートビート信号であれば、ハートビート信号を死活監視部１０２に転送する。一方、受信したデータが他のコントローラのファームウェアのカーネルが出力したメッセージ（カーネルパニックに関するメッセージを含む）であれば、メッセージをＦＬＡＳＨＲＯＭ１０３に転送する。
【００４５】
Ｓ５０３：ＦＬＡＳＨＲＯＭ１０３は、判別処理部１０４から受け取ったメッセージを格納する。
【００４６】
Ｓ５０４：図示しない処理部が、ＦＬＡＳＨＲＯＭ１０３に格納されたメッセージの内容を解析する。解析の結果、メッセージが障害発生（カーネルパニック）を表すものであれば、サーバ管理者や保守会社へ通報を行う。メッセージがカーネルパニックを表すものであるかどうかは、例えばメッセージに特定の文字列が含まれているか否かにより判別することができる。また、通報は、例えば予め通報先として登録された送信先（典型的にはメールアドレスなど）に対し、メールなどを送信することにより行うことができる。メールには、例えばメッセージ中に検出された特定の文字列や、特定の文字列に予め対応付けて登録された、障害の内容を示す文言など含めることができる。一方、メッセージがカーネルパニックを表すものでない場合、そのメッセージをファームウェアの動作内容を示すトレース又はログとみなし、ＦＬＡＳＨＲＯＭ１０３や図示しない他の記憶装置などに保存する。このトレース又はログは、後に管理者により取得され、障害解析などに役立てられる。管理者は、この通報に基づき、障害内容の分析を行い、不正動作をしたコントローラ１００に対してしかるべき対応（強制リセットや完全停止など）を行うことが可能となる。
【００４７】
Ｓ５０５：死活監視部１０２は、判別処理部１０４からハートビート信号を受信する。なお、死活監視部１０２は、他のコントローラのハートビート信号を所定時間以上にわたって受信できないとき、他のコントローラがストール（完全停止）したものと判定し、他のコントローラとのシステム制御の引き継ぎ処理を行うことができる。
【００４８】
図５は、コントローラ１００とコンソールＰＣ２０５とをシリアルケーブル２０４で接続し、ファームウェア１０１のシリアルコンソールを利用する場合において、コンソールＰＣ２０５からコントローラ１００に対してデータを送信する際の動作を示スフローチャートである。
【００４９】
従来のサーバシステム１０００では、ＢＭＣ１００３、１０１１とコンソールＰＣとを、ＵＡＲＴ１００８、１０１６を介してシリアルケーブルで接続することにより、ＢＭＣＦＷのシリアルコンソールを利用することが可能であった。しかしながら、本実施の形態においては、ＵＡＲＴ１０７とコンソールＰＣ２０５とをシリアルケーブル２０４で接続するだけでは、シリアルコンソールの利用を開始することはできない。シリアルコンソールを利用するためには、すなわちＬｉｎｕｘ  ｋｅｒｎｅｌ２００が出力するメッセージをコンソールＰＣ２０５に出力するためには、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１のデータ出力先をＵＡＲＴ１０５からＵＡＲＴ１０７に明示的に切り替える必要がある。これは、コントローラ１００では通常、換言すればシリアルコンソール未利用時には、Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００が出力するメッセージ（カーネルパニックに関するメッセージを含む）を他のコントローラに送信すべく、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１のデータ出力先がＵＡＲＴ１０５に設定されていることによる。本実施の形態では、コントローラ１００は、コンソールＰＣ２０５から送信される特別な信号を契機として、Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００のメッセージ出力先を切り替え、シリアルコンソールを利用可能とする処理を行うこととする。
【００５０】
Ｓ６００：ＵＡＲＴ１０７が、コンソールＰＣ２０５から出力されたデータを受信する。受信したデータは、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を経由して切替処理部２０２に転送される。
【００５１】
Ｓ６０１〜Ｓ６０２：切替処理部２０２は、受信したデータの内容が、シリアルコンソールの開始を要求するための、予め定義された特殊コマンドであるか否かを識別する。
【００５２】
Ｓ６０３：切替処理部２０２は、受信したデータが特殊コマンドでなければ、そのデータをｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１を介してＬｉｎｕｘ  ｋｅｒｎｅｌ２００に引き渡す。
【００５３】
Ｓ６０４：切替処理部２０２は、受信したデータが特殊コマンドであれば、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１のデータ出力先の設定を、ＵＡＲＴ１０５からＵＡＲＴ１０７へ変更する処理を行う。例えば、図示しない記憶領域に設けられた出力先設定情報を更新することにより、変更処理を行うことができる。これにより、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１とコンソールＰＣ２０５との間に通信路が設けられ、Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００が出力するメッセージがＵＡＲＴ１０７を介してコンソールＰＣ２０５に送信されるようになる。また、コンソールＰＣ２０５から送信されるデータは、ＵＡＲＴ１０７に着信し、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１を介してＬｉｎｕｘ  ｋｅｒｎｅｌ２００に入力する（Ｓ６０３）。これにより、コンソールＰＣ２０５からシリアルコンソールを利用することができるようになる。
【００５４】
図６は、ファームウェア１０１のＬｉｎｕｘ  ｋｅｒｎｅｌ２００がメッセージ（カーネルパニックに関するメッセージを含む）を出力する際の動作を示すフローチャートである。
【００５５】
Ｓ７００〜Ｓ７０１：Ｌｉｎｕｘ  ｋｅｒｎｅｌ２００がメッセージを生成すると、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１は、ＵＡＲＴ１０７又はＵＡＲＴ１０５のどちらにデータを送信するかを判別する。例えば、図示しない記憶領域に設けられた出力先設定情報を参照することにより、判別処理を行うことができる。
【００５６】
Ｓ７０２：出力先がＵＡＲＴ１０７として設定されている場合、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１は、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を介してＵＡＲＴ１０７にメッセージを出力する。メッセージは、シリアルケーブル２０４を経由してコンソールＰＣ２０５に着信する。
【００５７】
Ｓ７０３：出力先がＵＡＲＴ１０７として設定されている場合、ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ２０１は、ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ２０３を介してＵＡＲＴ１０５にメッセージを出力する。メッセージは、シリアル接続２０６を経由して他のコントローラ２０７に着信する。
【００５８】
本実施の形態においては、ファームウェア１０１のＬｉｎｕｘ  ｋｅｒｎｅｌ２００が出力するメッセージを、ＵＡＲＴ１０５経由で他のコントローラに送信する。これにより、コントローラ１００が動作停止した場合においても、他のコントローラにメッセージを保存することができる。すなわち、何らかの理由によりメッセージをコントローラ１００自身のメモリ１０３に保存できない場合においても、他のコントローラにおいてメッセージを保存し、これを障害解析に役立てることができる。
【００５９】
また、本実施の形態においては、コンソールＰＣ２０５からコントローラ１００に対し特別な指示を行うことにより、ファームウェア１０１がＬｉｎｕｘ  ｋｅｒｎｅｌ２００のメッセージ出力先を切り替える。これにより、上述のように他のコントローラにメッセージを保存する構成を備えた場合であっても、コンソールＰＣ２０５とコントローラ１００をシリアルケーブルで接続してシリアルコンソールを利用することができる。
【００６０】
さらに、本実施の形態においては、コントローラ１００と他のコントローラの間でハートビート通信を行う際、ハートビート信号に制御コードを利用することにより、判別処理部１０４がハートビート信号とカーネルの出力メッセージとを区別できるようにした。これにより、ハートビート信号とカーネルの出力メッセージの送受信に同一のＵＡＲＴ１０５を使用しつつ、カーネルの出力メッセージの保存及び死活監視処理のいずれをも損なうことなく遂行できる。
【００６１】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００６２】
例えば、上述の実施の形態では、Ｍａｓｔｅｒ  ＢＭＣ、Ｓｔａｎｄｂｙ  ＢＭＣの双方にコントローラ１００を利用する例を説明した。しかしながら、Ｍａｓｔｅｒ  ＢＭＣは少なくともファームウェアと、他のコントローラに送信するためのハートビート信号を生成する死活監視部と、ファームウェアが出力するメッセージ及び前記ハートビート信号を他のコントローラに送信するＵＡＲＴとを有するものであってよい。また、Ｓｔａｎｄｂｙ  ＢＭＣは、少なくとも他のコントローラが生成したハートビート信号を監視する死活監視部と、メモリと、他のコントローラのファームウェアが出力したメッセージ及び前記ハートビート信号とを受信するＵＡＲＴと、前記ＵＡＲＴが受信したデータが前記メッセージである場合は前記メモリに格納させるとともに、前記ハートビート信号である場合は前記死活監視部に転送する判別処理部とを有するものであってよい。
【００６３】
また、上述のＭａｓｔｅｒ  ＢＭＣが他のＢＭＣとＵＡＲＴを介して接続されていない場合、例えば単一のＭａｓｔｅｒ  ＢＭＣのみがシステム内に存在する場合においては、Ｍａｓｔｅｒ  ＢＭＣからファームウェアのカーネルのメッセージが出力されるＵＡＲＴを、システム内に存在するＬＣＤ等の表示装置に接続し、カーネルパニックメッセージなどの出力が表示装置に表示されるよう構成してもよい。この場合、表示装置側に判別処理部１０４に相当する構成を備えることも可能である。この例は、Ｍａｓｔｅｒ  ＢＭＣ側のファームウェアに改修が不要であるという利点を有する。
【００６４】
また、上述の実施の形態では、主にＬｉｎｕｘをカーネルとするファームウェアを例として説明してが、カーネルは他のＯＳにより構成されていても良い。
【００６５】
また、上述の実施の形態では、主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６６】
（付記１）
第２の通信制御部が前記他の装置から通信要求を受信した場合、前記ファームウェアが、前記第１のメッセージを前記第２の通信制御部に転送するステップをさらに有する
請求項７乃至９いずれか１項記載の制御方法。
（付記２）
第１のコントローラが、ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により第２のコントローラに送信するステップと、
第２のコントローラが、前記第１のメッセージと、前記第１の死活監視信号とを、前記第１のコントローラから受信するステップと、
前記第２のコントローラが受信した信号が前記第１のメッセージである場合、前記第１のメッセージをメモリに格納させ、前記第１の死活監視信号である場合、前記第１の死活監視信号を前記第２のコントローラの死活監視部に転送するステップとを有する
制御方法。
（付記３）
前記第１のコントローラ又は前記第２のコントローラの少なくともいずれか一方において、第２の通信制御部が前記他の装置から通信要求を受信した場合、前記第１のコントローラ又は前記第２のコントローラのファームウェアが生成するメッセージを前記第２の通信制御部に転送するステップをさらに有する
付記２記載の制御方法。
（付記４）
前記コントローラは、ＢＭＣ（ベースボード・マネジメント・コントローラ）である
請求項１乃至４いずれか１項記載のコントローラ。
（付記５）
前記第１のメッセージ又は前記第２のメッセージは、前記ファームウェアの障害に関するメッセージを含む
請求項１乃至４いずれか１項記載のコントローラ。
（付記６）
前記他の装置と前記ファームウェアとの通信は、シリアルコンソールに関する通信である
請求項４記載のコントローラ。
（付記７）
前記ファームウェアは、前記第２の通信制御部が受信した信号に所定のコマンドが含まれている場合、前記信号を前記他の装置からの通信要求と判別する
請求項４記載のコントローラ。
（付記８）
前記判別処理部は、前記第１の通信制御部が受信した信号に所定の制御コードが含まれている場合、前記信号を前記第２の死活監視信号と判別する
請求項１又は３記載のコントローラ。
（付記９）
前記メモリに格納された前記第２のメッセージが障害発生を示すものである場合、所定の連絡先に通報をおこなう通報処理部をさらに有する
請求項１又は３記載のコントローラ。
【符号の説明】
【００６７】
１００  コントローラ
１０１  ファームウェア
１０２  死活監視部
１０３  ＦＬＡＳＨＲＯＭ
１０４  判別処理部
１０５  ＵＡＲＴ
１０６  ＬＡＮ
１０７  ＵＡＲＴ
２００  Ｌｉｎｕｘ  ｋｅｒｎｅｌ
２０１  ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ
２０２  切替処理部
２０３  ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ
２０４  シリアルケーブル
２０５  コンソールＰＣ
２０６  シリアル接続
２０７  他のコントローラ
１０００  サーバシステム
１００１  ＯＳ（オペレーティングシステム）
１００３  Ｍａｓｔｅｒ  ＢＭＣ
１００４  ＬＡＮ
１００５  ＵＡＲＴ
１００６  死活監視プロセス
１００７  ＦＬＡＳＨＲＯＭ
１００８  ＵＡＲＴ
１０１１  Ｓｔａｎｄｂｙ  ＢＭＣ
１０１２  ＬＡＮ
１０１３  ＵＡＲＴ
１０１４  死活監視プロセス
１０１５  ＦＬＡＳＨＲＯＭ
１０１６  ＵＡＲＴ
２０００  Ｌｉｎｕｘ  ｋｅｒｎｅｌ
２００１  ｃｏｎｓｏｌｅ  ｄｒｉｖｅｒ
２００２  ｓｅｒｉａｌ  ｐｏｒｔ  ｄｒｉｖｅｒ
２００３  ＵＡＲＴ
２００４  シリアルケーブル
２００５  コンソールＰＣ
２００６  ＵＡＲＴ
２００７  シリアル接続
２００８  他のコントローラ
【図１】
2013239110.tif 000003
【図２】
2013239110.tif 000004
【図３】
2013239110.tif 000005
【図４】
2013239110.tif 000006
【図５】
2013239110.tif 000007
【図６】
2013239110.tif 000008
【図７】
2013239110.tif 000009
【図８】
2013239110.tif 000010
【手続補正書】
【提出日】平成25年8月2日(2013.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントローラの各種制御を行うとともに、前記制御に関する第１のメッセージを生成するファームウェアと、
第１の死活監視信号を生成するとともに、他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、
メモリと、
前記第１のメッセージと、前記第１の死活監視信号とを他のコントローラに送信するとともに、前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、
前記第１の通信制御部が受信した信号が制御コードを含まない場合、前記信号は前記第２のメッセージであると判断し、前記第２のメッセージを前記メモリに格納させ、前記信号が制御コードを含む場合、前記信号は前記第２の死活監視信号であると判断し、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有する
コントローラ。
【請求項２】
他のコントローラが生成した第２の死活監視信号を監視する死活監視部と、
前記他のコントローラが生成した第２のメッセージと、前記第２の死活監視信号とを前記他のコントローラから受信する第１の通信制御部と、
前記第１の通信制御部が受信した信号が制御コードを含まない場合、前記信号は前記第２のメッセージであると判断し、前記第２のメッセージをメモリに格納させ、前記信号が制御コードを含む場合、前記信号は前記第２の死活監視信号であると判断し、前記第２の死活監視信号を前記死活監視部に転送する判別処理部とを有する
コントローラ。
【請求項３】
他の装置と前記ファームウェアとの通信を制御する第２の通信制御部をさらに備え、
前記ファームウェアは、前記第２の通信制御部が受信した信号が前記他の装置からの通信要求である場合、前記第１のメッセージを前記第２の通信制御部に転送する
請求項１記載のコントローラ。
【請求項４】
請求項１記載のコントローラである第１のコントローラと、
請求項１又は２記載のコントローラである第２のコントローラとを有し、
前記第１のコントローラの第１の通信制御部と、前記第２のコントローラの第１の通信制御部とが、互いに通信可能に接続されている
制御システム。
【請求項５】
前記第１のコントローラ又は前記第２のコントローラの少なくともいずれか一方は、
他の装置と前記第１のコントローラ又は前記第２のコントローラの前記ファームウェアとの通信を制御する第２の通信制御部をさらに備え、
前記第１のコントローラ又は前記第２のコントローラの前記ファームウェアは、前記第２の通信制御部が受信した信号が前記他の装置からの通信要求である場合、前記第１のメッセージを前記第２の通信制御部に転送する
請求項４記載の制御システム。
【請求項６】
ファームウェアが生成した第１のメッセージと、死活監視部が生成した第１の死活監視信号とを、第１の通信制御部により他のコントローラに送信するステップと、
前記他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した第２の死活監視信号とを、前記第１の通信制御部により前記他のコントローラから受信するステップと、
前記第１の通信制御部が受信した信号が制御コードを含まない場合、前記信号は前記第２のメッセージであると判断し、前記第２のメッセージをメモリに格納させ、前記信号が制御コードを含む場合、前記信号は前記第２の死活監視信号であると判断し、前記第２の死活監視信号を前記死活監視部に転送するステップとを有する
制御方法。
【請求項７】
他のコントローラが生成した第２のメッセージと、前記他のコントローラが生成した第２の死活監視信号とを、第１の通信制御部により前記他のコントローラから受信するステップと、
前記第１の通信制御部が受信した信号が制御コードを含まない場合、前記信号は前記第２のメッセージであると判断し、前記第２のメッセージをメモリに格納させ、前記信号が制御コードを含む場合、前記信号は前記第２の死活監視信号であると判断し、前記第２の死活監視信号を死活監視部に転送するステップとを有する
制御方法。
【請求項８】
コンピュータに、請求項６又は７記載の制御方法を実行させる
プログラム。