(57)【特許請求の範囲】
【請求項１】
特定処理を含む複数の処理を実行する第１プロセッサと、
所定の条件を満たした場合に前記特定処理を実行する第２プロセッサと
を備え、
前記特定処理を実行するためのコマンドが前記第１プロセッサと前記第２プロセッサとで異なる
ベースボード管理コントローラ。
【請求項２】
前記第２プロセッサは、前記第１プロセッサと異なるファームウェア又はソフトウェアによって動作する
請求項１に記載のベースボード管理コントローラ。
【請求項３】
特定処理を含む複数の処理を実行する第１プロセッサと、
所定の条件を満たした場合に前記特定処理を実行する第２プロセッサと
を備え、
前記第２プロセッサは、前記第１プロセッサと異なるファームウェア又はソフトウェアによって動作する
ベースボード管理コントローラ。
【請求項４】
前記第２プロセッサは、前記特定処理の実行結果が期待される結果と異なる場合に、当該特定処理を実行する
請求項１ないし３のいずれか１項に記載のベースボード管理コントローラ。
【請求項５】
前記第２プロセッサは、前記第１プロセッサとは独立したプロセッサである
請求項１ないし４のいずれか１項に記載のベースボード管理コントローラ。
【請求項６】
請求項１ないし５のいずれか１項に記載のベースボード管理コントローラを備える情報処理装置と、
前記特定処理を実行するためのコマンドを送信するサーバ装置と
を備える情報処理システム。
【請求項７】
特定処理を含む複数の処理を第１プロセッサにおいて実行し、所定の条件を満たした場合には、前記特定処理を第２プロセッサにおいて実行し、
前記特定処理を実行するためのコマンドが前記第１プロセッサと前記第２プロセッサとで異なる
ベースボード管理コントローラの処理実行方法。
【請求項８】
特定処理を含む複数の処理を第１プロセッサにおいて実行し、所定の条件を満たした場合には、前記特定処理を第２プロセッサにおいて実行し、
前記第２プロセッサは、前記第１プロセッサと異なるファームウェア又はソフトウェアによって動作する
ベースボード管理コントローラの処理実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベースボード管理コントローラ（Baseboard Management Controller。以下「ＢＭＣ」という。）に関する。
【背景技術】
【０００２】
ＢＭＣを搭載したコンピュータシステムは、ＯＳ（Operating System）の動作状態に依存せずに当該システムの操作（設定変更、電源制御など）を実現可能である。しかし、ＢＭＣのプロセッサがストールすると、システムを正常に動作させることができなくなる。そのため、ＢＭＣを搭載したコンピュータシステムは、システムを継続的に動作させるために、ＢＭＣのプロセッサを監視してストールの発生に対処している。
【０００３】
ＢＭＣを搭載したコンピュータシステムを継続的に動作させるための技術としては、例えば、２つのＢＭＣが連携してコンピュータシステムを管理する二重化（冗長化）技術が知られている。ＢＭＣを二重化した場合、一方（第１のＢＭＣ）がマスタ、他方（第２のＢＭＣ）がスタンバイとなり、第１のＢＭＣがコンピュータシステムを管理する。このとき、第２のＢＭＣは、第１のＢＭＣを監視する。そして、第２のＢＭＣは、第１のＢＭＣのプロセッサにストールが発生したことを第２のＢＭＣが検出すると、第１のＢＭＣに代わってコンピュータシステムの管理を開始する。
【０００４】
このように、ＢＭＣを二重化すると、一方のＢＭＣにストールが発生した場合であっても、コンピュータシステムを継続的に動作させることが可能である。しかしながら、ＢＭＣを複数要したり、マザーボードの設計が複雑化したりすることによりシステムのコストが上昇する。また、複数のＢＭＣに共通のファームウェア（ソフトウェア）を使用した場合、ファームウェア（ソフトウェア）にバグがあったときに双方のＢＭＣがストールする可能性がある。
【０００５】
システムの継続的な動作のために複数のプロセッサを使用する技術は、例えば、特許文献１、２に開示されている。特許文献１は、システム支援プロセッサの障害発生時に他のプロセッサ（命令プロセッサ）上で動作しているＯＳに割り込みを発生し、当該他のプロセッサをシステム支援プロセッサと交代させる情報処理システムを開示している。また、特許文献２は、共通のＯＳで動作する複数のＣＰＵ（Central Processing Unit）を搭載したマルチＣＰＵコンピュータを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２５１４４３号公報
【特許文献２】特許第４４８９８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術は、命令プロセッサがシステム支援プロセッサと交代するまでは、情報処理システムを制御することができないものである。また、特許文献２に記載の技術は、ＯＳの動作状態に依存するものであり、ＢＭＣに関する技術とは異質のものである。
【０００８】
本発明は、ＢＭＣを複数設けなくとも、ＢＭＣにおいてストールが発生した場合に特定の処理を継続的に実行可能にすることを目的の一つとする。
【課題を解決するための手段】
【０００９】
本発明は、一の態様において、特定処理を含む複数の処理を実行する第１プロセッサと、所定の条件を満たした場合に前記特定処理を実行する第２プロセッサとを備えるベースボード管理コントローラを提供する。
【発明の効果】
【００１０】
本発明によれば、ＢＭＣを複数設けなくとも、ＢＭＣにおいてストールが発生した場合に特定の処理を継続的に実行することが可能である。
【図面の簡単な説明】
【００１１】
【図１】図１は、ＢＭＣ１の構成を示すブロック図である。
【図２】図２は、情報処理システム１０の構成を示すブロック図である。
【図３】図３は、情報処理システム１０が実行する処理を示すシーケンスチャートである。
【図４】図４は、情報処理システム１０が実行する処理を示すシーケンスチャートである。
【図５】図５は、確認処理を示すフローチャートである。
【図６】図６は、情報処理システム１０ａの構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
図１は、本発明の一実施形態に係るＢＭＣ１の構成を示すブロック図である。ＢＭＣ１は、サーバ装置などの情報処理装置のマザーボードに搭載されるコントローラである。ＢＭＣ１は、第１プロセッサ１１と、第２プロセッサ１２とを備える。
【００１３】
第１プロセッサ１１は、複数の処理を実行するプロセッサである。また、第２プロセッサ１２は、第１プロセッサ１１が実行する処理のうち一部の処理を限定的に実行するプロセッサである。以下においては、第１プロセッサ１１及び第２プロセッサ１２が実行可能な処理のことを「特定処理」という。
【００１４】
また、第１プロセッサ１１及び第２プロセッサ１２は、互いに独立して動作可能である。ここにおいて、「独立」とは、一方の動作が他方の動作状態の影響を受けないことをいう。例えば、第１プロセッサ１１及び第２プロセッサ１２は、一方がストールして動作できない状態になっていたとしても、他方は（一方の動作状態によらず）動作可能である。
【００１５】
特定処理は、例えば、情報処理装置の操作に関連する処理である。具体的には、情報処理装置の各種設定を変更する処理や電源を制御（オン又はオフ）する処理が特定処理に該当し得る。ただし、第１プロセッサ１１及び第２プロセッサ１２の一方のみが実行する処理は、ここでいう特定処理には該当しない。
【００１６】
第２プロセッサ１２は、所定の条件を満たした場合に特定処理を実行する。具体的には、第２プロセッサ１２は、第１プロセッサ１１にストールが発生した場合に所定のコマンドを外部から受信し、当該コマンドを契機として特定処理を実行するように構成される。この場合、ここでいう所定の条件とは、第１プロセッサ１１にストールが発生した場合に送信される所定のコマンドを外部から受信することである。なお、所定の条件を満たしていない場合、特定処理は、第１プロセッサ１１によって実行される。
【００１７】
ＢＭＣ１を備える情報処理装置は、特定処理に関し、プロセッサを複数備えないＢＭＣを複数設けた場合と同等の信頼性を提供することが可能である。ＢＭＣ１を備える情報処理装置は、第１プロセッサ１１にストールが発生した場合に第２プロセッサ１２が特定処理を実行可能であるため、特定処理を実行するためにＢＭＣを複数設ける必要がない。
【００１８】
また、一般に、１つのＢＭＣに複数のプロセッサを実装するコストは、複数のＢＭＣをマザーボードに実装するコストよりも少なくなる。したがって、ＢＭＣ１をマザーボードに搭載する場合のハードウェアコストは、（ＢＭＣ１と異なる一般的な）ＢＭＣをマザーボードに複数搭載する場合のハードウェアコストよりも少なくて済む。
【００１９】
［第２実施形態］
図２は、本発明の別の実施形態に係る情報処理システム１０の構成を示すブロック図である。情報処理システム１０は、情報処理装置１００と、管理サーバ３００とを備え、これらをネットワーク４００によって相互に接続した構成である。また、情報処理装置１００は、ＢＭＣ２００を含んで構成される。
【００２０】
情報処理システム１０は、情報処理装置１００の状態を遠隔から監視（モニタ）するためのコンピュータシステムである。管理サーバ３００は、ネットワーク４００を介して、情報処理装置１００の状態を監視し、必要に応じて情報処理装置１００を遠隔から操作するサーバ装置である。管理サーバ３００は、情報処理装置１００の各部の温度、電圧、ファンの回転数などの情報を取得することができる。また、管理サーバ３００による遠隔操作は、特に限定されないが、ここでは電源の操作であるとする。なお、管理サーバ３００は、サーバ装置としての一般的な構成を有していれば足り、本実施形態に特有の構成を備える必要はない。
【００２１】
情報処理装置１００は、ＢＭＣ２００に加え、電源制御部１１０を備える。電源制御部１１０は、情報処理装置１００に備わる電源（１又は複数）を制御する。例えば、電源制御部１１０は、ＢＭＣ２００からのコマンドに従い、電源をオンからオフ（又はオフからオン）に切り替える。また、情報処理装置１００は、ＣＰＵ、メモリ、ファンなどのハードウェアコンポーネントを含み得るが、ここでは図示及び詳細な説明が省略されている。
【００２２】
ＢＭＣ２００は、プロセッサ２１０、２２０と、ネットワークコントローラ２３０とを備える。プロセッサ２１０、２２０は、電源制御部１１０に接続されている。また、ネットワークコントローラ２３０は、ネットワーク４００に接続されている。ネットワークコントローラ２３０は、管理サーバ３００からネットワーク４００を介して送信されたコマンドをプロセッサ２１０、２２０に供給することができる。
【００２３】
プロセッサ２１０は、情報処理装置１００の各ハードウェアコンポーネントの監視や情報処理装置１００の操作を実現するプロセッサである。プロセッサ２１０は、ファームウェアＦＷ１に従って処理を実行することによって所定の機能２１１、２１２、２１３、…、２１ｎを実現する。このうち、機能２１１は、電源を操作する機能に相当する。プロセッサ２１０は、上述した第１プロセッサ１１の一例に相当する。
【００２４】
プロセッサ２２０は、主たるプロセッサ２１０に対して従たるプロセッサである。プロセッサ２２０は、ファームウェアＦＷ１と異なるファームウェアＦＷ２に従って処理を実行することによって所定の機能２２１を実現する。機能２２１は、電源を操作する機能に相当する。プロセッサ２２０は、上述した第２プロセッサ１２の一例に相当する。
【００２５】
図３、４は、情報処理システム１０において実行される処理を示すシーケンスチャートである。これらの図において、破線で示されたステップは、実際には実行されない処理を示している。図３は、プロセッサ２１０にストールが発生していない場合の処理を示し、図４は、プロセッサ２１０にストールが発生した場合の処理を示している。
【００２６】
まず、管理サーバ３００は、特定処理を実行するためのコマンドをプロセッサ２１０に送信する（ステップＳ１）。このとき送信されるコマンドは、本実施形態においては、電源操作コマンド（ＤＣ＿ＯＮ、ＤＣ＿ＯＦＦなど）である。プロセッサ２１０は、ストールが発生していない場合には、ネットワークコントローラ２３０を介して電源操作コマンドを受信する。
【００２７】
プロセッサ２１０は、電源操作コマンドを受信すると、電源操作コマンドを処理する（ステップＳ２）。この結果、プロセッサ２１０は、受信した電源操作コマンドに応じたコマンドを電源制御部１１０に発行する（ステップＳ３）。電源制御部１１０は、プロセッサ２１０からのコマンドに従い、電源のオン又はオフなどの処理を実行する（ステップＳ４）。
【００２８】
管理サーバ３００は、電源操作コマンドを送信した後、所定のタイミングで、情報処理装置１００の電源状態を判断する（ステップＳ５）。以下においては、説明の便宜上、ステップＳ５の処理のことを「確認処理」という。確認処理は、換言すれば、特定処理が想定どおりに実行されたか否かを判断する処理であるともいえる。
【００２９】
図５は、確認処理を示すフローチャートである。この処理において、管理サーバ３００は、まず、電源状態を確認するための所定のコマンドをプロセッサ２１０に送信する（ステップＳ５１）。以下においては、このコマンドのことを「確認コマンド」という。
【００３０】
プロセッサ２１０は、ストールが発生していない場合には、ネットワークコントローラ２３０を介して確認コマンドを受信する。プロセッサ２１０は、確認コマンドを受信したら、受信した確認コマンドに応じたコマンドを電源制御部１１０に発行する。電源制御部１１０は、プロセッサ２１０からのコマンドに従い、電源状態を示す値をプロセッサ２１０に送信する。プロセッサ２１０は、ネットワークコントローラ２３０を介して、確認コマンドに対する応答（すなわち電源状態を示す値）を管理サーバ３００に送信する。
【００３１】
管理サーバ３００は、確認コマンドの送信後、応答を受信したか否かを判断する（ステップＳ５２）。管理サーバ３００は、応答を受信したら（ステップＳ５２：ＹＥＳ）、確認処理の実行を終了する（ステップＳ５４）。一方、応答が未受信である場合（ステップＳ５２：ＮＯ）、管理サーバ３００は、確認コマンドを送信してから所定時間が経過したか否かを判断する（ステップＳ５３）。管理サーバ３００は、確認コマンドを送信してから所定時間が経過していなければ（ステップＳ５３：ＮＯ）、応答を待機し、ステップＳ５２の判断を繰り返す。一方、確認コマンドを送信してから所定時間が経過した場合（ステップＳ５３：ＹＥＳ）、管理サーバ３００は、応答を受信することなく確認処理の実行を終了する。
【００３２】
確認処理の終了後、管理サーバ３００は、電源状態を示す値が期待される値であるか否かを判断し（ステップＳ６）、期待される値、すなわち電源操作コマンドによって指示した値であれば（ステップＳ６：ＹＥＳ）、処理を終了する（ステップＳ７）。
【００３３】
一方、プロセッサ２１０にストールが発生している場合、プロセッサ２１０は、電源操作コマンドを受信して処理することができない。したがって、この場合、ステップＳ２〜Ｓ４の処理が実行されない。そうすると、管理サーバ３００は、ステップＳ６において、電源状態を示す値が期待される値でないと判断する。また、電源状態を示す値は、確認処理において応答が受信できなかった場合にも、期待される値でないといえる。このような場合（ステップＳ６：ＮＯ）、管理サーバ３００は、電源操作コマンドをプロセッサ２２０に送信する（ステップＳ８）。
【００３４】
なお、ステップＳ８において送信される電源操作コマンドは、ステップＳ１において送信される電源操作コマンドとは異なるコマンドである。これらの電源操作コマンドは、当該コマンドによって実行すべき処理は同一であるものの、処理の実行主体が異なる（プロセッサ２１０、２２０のいずれか）ように構成されている。つまり、ステップＳ１において送信される電源操作コマンドは、特定処理をプロセッサ２１０に実行させるためのコマンドであり、ステップＳ８において送信される電源操作コマンドは、特定処理をプロセッサ２２０に実行させるためのコマンドである。
【００３５】
プロセッサ２２０は、管理サーバ３００から電源操作コマンドを受信すると、プロセッサ２１０が電源操作コマンドを受信した場合と同様に動作する。すなわち、プロセッサ２２０は、電源操作コマンドを処理し（ステップＳ９）、電源操作コマンドに応じたコマンドを電源制御部１１０に発行する（ステップＳ１０）。電源制御部１１０は、プロセッサ２２０からコマンドを受け付けた場合において、ステップＳ４の場合と同様に、コマンドに応じた処理を実行する（ステップＳ１１）。
【００３６】
以上のように、本実施形態の情報処理システム１０は、特定処理（ここでは電源の操作）の実行結果が期待される結果と異なる場合に、プロセッサ２２０が特定処理を実行するように構成されている。これにより、情報処理システム１０は、プロセッサ２１０においてストールが発生したことを実際に検出しなくても特定処理を確実に実行することが可能である。
【００３７】
企業などの情報システムにおいては、システムの信頼性を高めるためにフェイルオーバー機能を用いることがある。通常、フェイルオーバー機能は、現用系（稼働中のシステム）において異常を検出すると、現用系を停止させた後に代替系（予備系、冗長系ともいう。）に機能を引き継ぎ、処理を続行できるようにする。しかし、現用系で異常を検出した後、現用系を停止させることができない場合には、フェイルオーバー機能を終了させることができない場合がある。
【００３８】
ここで必要とされる操作は、異常の原因となっている装置を停止させる操作であり、当該装置の電源をオフにする操作である。つまり、装置の電源を確実にオフにすることが可能であれば、フェイルオーバー機能をより確実に終了させることが可能である。
【００３９】
本実施形態の情報処理システム１０は、プロセッサ２１０にストールが発生しても電源を操作することが可能であるため、フェイルオーバー機能を用いた場合にこれを確実に終了させることが可能である。したがって、本実施形態の情報処理システム１０は、高い可用性や信頼性が要求されるシステムに好適に適用される。
【００４０】
［第３実施形態］
図６は、本発明のさらに別の実施形態に係る情報処理システム１０ａの構成を示すブロック図である。情報処理システム１０ａは、情報処理装置１００ａの構成（の一部）を除き、上述した第２実施形態の情報処理システム１０と同様の構成を有している。図６において、図１に記載された符号と同一の符号が付与された構成要素は、第２実施形態において説明された構成要素と同様のものである。そのため、本実施形態は、第２実施形態と異なる点を中心に説明され、第２実施形態と共通する点の説明については適宜省略される。
【００４１】
情報処理装置１００ａは、ＢＭＣ２２０ａを備える点において情報処理装置１００と異なる。ＢＭＣ２２０ａは、プロセッサ２２０に代えてプロセッサ２２０ａを備える点においてＢＭＣ２２０と異なる。プロセッサ２２０ａは、ファームウェアＦＷ２ａに従って処理を実行する点においてプロセッサ２２０と異なる。
【００４２】
プロセッサ２２０ａは、ファームウェアＦＷ２ａにより、機能２２１に加えて機能２２２を実現する。機能２２１は、第２実施形態と同様に、電源を操作する機能に相当する。また、機能２２２は、電源情報を取得する機能に相当する。ここにおいて、電源情報とは、電源に関する情報をいい、例えば、電源（ＡＣ又はＤＣ）のオン又はオフ、正常又は異常、適用されているモード（省電力状態など）を表す。
【００４３】
情報処理装置１００ａは、電源情報を取得するコマンドをプロセッサ２２０ａにおいて処理する。すなわち、本実施形態において、電源情報を取得する処理は、プロセッサ２１０がストールしているか否かを問わず、プロセッサ２２０ａにおいて実行される。つまり、プロセッサ２２０ａは、特定処理以外の処理を実行する点において第２実施形態のプロセッサ２２０と異なる。
【００４４】
情報処理装置１００ａは、特定処理に関し、第２実施形態の情報処理装置１１０と同様に動作する。すなわち、情報処理装置１００ａは、図４、５に示した処理を実行することができる。したがって、情報処理装置１００ａは、特定処理に関して情報処理装置１１０と同様の作用効果を奏することができる。
【００４５】
加えて、情報処理装置１００ａは、特定処理以外の処理をプロセッサ２１０とプロセッサ２２０ａとで分担して実行することが可能である。なお、プロセッサ２２０ａは、特定処理以外の処理を複数実行してもよい。つまり、プロセッサ２２０ａは、特定処理以外の処理として、機能２２２以外の処理を実行してもよい。
【００４６】
なお、機能２２２は、特定処理として構成されてもよい。すなわち、情報処理装置１００ａは、電源情報を取得する処理をプロセッサ２１０及びプロセッサ２２０ａの双方で実行可能であってもよい。このように、本発明でいう特定処理は、複数あってもよく、その数は特に限定されない。
【００４７】
［変形例］
本発明は、上述した実施形態に限らず、以下の変形例に示す形態でも実施可能である。また、本発明は、複数の変形例を組み合わせてもよい。
【００４８】
（１）変形例１
管理サーバ３００は、電源操作コマンドを、プロセッサ２１０が処理する場合とプロセッサ２２０（又は２２０ａ）が処理する場合とで異ならせなくてもよい。ただし、プロセッサ２１０及びプロセッサ２２０が共通の電源操作コマンドによって動作する場合、プロセッサ２２０は、プロセッサ２１０が当該コマンドに従って処理を実行し、当該処理が終了したか否かを判定する必要がある。この判定は、電源操作コマンドに応じた処理がプロセッサ２１０及びプロセッサ２２０の双方で重複して実行されないために必要な処理である。
【００４９】
（２）変形例２
本発明は、ＢＭＣ単体のほか、ＢＭＣを備える情報処理装置や、この情報処理装置とコマンド送信用のサーバ装置とを備える情報処理システム（遠隔監視システム）といった形態でも提供され得る。また、本発明は、ＢＭＣ（又はこれを備える情報処理装置）の操作方法を提供し得る。
【符号の説明】
【００５０】
１、２００、２００ａ    ＢＭＣ
１１    第１プロセッサ
１２    第２プロセッサ
１０、１０ａ    情報処理システム
１００、１００ａ    情報処理装置
１１０    電源制御部
２１０、２２０、２２０ａ    プロセッサ
２１１、２１２、２１３、２１ｎ、２２１、２２２    機能
２３０    ネットワークコントローラ
ＦＷ１、ＦＷ２、ＦＷ２ａ    ファームウェア
【図１】
0006540142.tif 000002
【図２】
0006540142.tif 000003
【図３】
0006540142.tif 000004
【図４】
0006540142.tif 000005
【図５】
0006540142.tif 000006
【図６】
0006540142.tif 000007