(57)【特許請求の範囲】
【請求項１】
複数の処理ステップを含む処理シーケンスを実行する情報処理装置と、
前記情報処理装置に処理ステップを所定の順で実行させることで、前記処理シーケンスの実行を管理する複数の管理装置であって、いずれか１つの管理装置が、前記処理シーケンスの実行管理を行う運用系として動作し、運用系以外の管理装置が、前記処理シーケンスの実行管理を運用系の管理装置から引き継ぐまで待機する待機系として動作する複数の管理装置と、
を備え、
前記各管理装置は、
待機系から運用系に遷移して、運用系であった他の前記管理装置から前記処理シーケンスの実行管理を引き継いだときに、前記処理シーケンスの進行状態を示す状態情報を前記情報処理装置から取得する情報取得手段と、
前記情報取得手段によって取得された前記状態情報に基づいて、前記処理シーケンスの未実行の処理ステップの実行を前記情報処理装置に継続させる制御手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記各管理装置は、
運用系として動作する際に、前記処理シーケンスの各処理ステップが実行されるたびに、前記状態情報を前記情報処理装置から受信する第１の受信手段と、
待機系として動作中であって、運用系の前記管理装置によって前記処理シーケンスの実行管理が行われる間、前記状態情報のうち、少なくとも、前記処理シーケンスに含まれる最終の処理ステップが実行されたことを示す最終状態情報を、運用系の前記管理装置から受信する第２の受信手段と、
をさらに有し、
前記情報取得手段は、前記処理シーケンスの実行管理を運用系であった他の前記管理装置から引き継ぐとき、前記第２の受信手段によって前記最終状態情報が未受信である場合に、前記状態情報を前記情報処理装置から取得する、
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記各管理装置は、待機系として動作する間、前記情報処理装置の状態を示すフラグ情報を記録媒体に設定し、運用系の前記管理装置によって前記処理シーケンスの実行管理が開始された後、前記最終状態情報を前記第２の受信手段が受信したときに、前記フラグ情報の値を変化させるフラグ設定手段をさらに有し、
前記情報取得手段は、待機系から運用系に遷移したとき、前記フラグ情報の値が前記最終状態情報の受信によって変化していない場合に、前記状態情報を前記情報処理装置から取得する、
ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記第２の受信手段は、運用系の前記管理装置による前記処理シーケンスの実行管理中において、運用系の前記管理装置の前記第１の受信手段が前記情報処理装置から前記状態情報を受信するたびに、当該第１の受信手段が受信した状態情報を運用系の前記管理装置から受信し、
前記制御手段は、前記処理シーケンスの実行管理を運用系の前記管理装置から引き継ぐとき、前記情報取得手段によって前記情報処理装置から取得された前記状態情報と、前記第２の受信手段による受信済みの前記状態情報とを照合して、前記情報処理装置において処理ステップが所定の順で実行されているか否かを判定する、
ことを特徴とする請求項２または３記載の情報処理システム。
【請求項５】
前記制御手段は、前記情報取得手段によって取得された前記状態情報が、前記情報受信手段が最後に受信した前記状態情報と同一であるか、または、最後に受信した前記状態情報より１処理ステップ分だけ前記処理シーケンスが進行した状態を示す場合に、前記情報取得手段によって取得された前記状態情報に基づいて、前記処理シーケンスの未実行の処理ステップの実行を前記情報処理装置に継続させることを特徴とする請求項４記載の情報処理システム。
【請求項６】
情報処理装置における処理シーケンスの実行を管理する管理装置において、
前記処理シーケンスに含まれる処理ステップを所定の順で実行させる実行管理処理を他の管理装置から引き継ぐとき、前記処理シーケンスの進行状態を示す状態情報を前記情報処理装置から取得する情報取得手段と、
前記情報取得手段によって取得された前記状態情報に基づいて、前記処理シーケンスの未実行の処理ステップの実行を前記情報処理装置に継続させる制御手段と、
を有することを特徴とする管理装置。
【請求項７】
情報処理装置における処理シーケンスの実行を管理する管理方法において、
複数の管理装置のうち運用系として動作する第１の管理装置が、前記処理シーケンスに含まれる処理ステップを前記情報処理装置に所定の順で実行させることで、前記処理シーケンスの実行を管理し、
運用系の管理装置が変更されて、前記複数の管理装置のうち新たに運用系となった第２の管理装置が前記処理シーケンスの実行管理を前記第１の管理装置から引き継ぐとき、前記第２の管理装置が、前記処理シーケンスの進行状態を示す状態情報を前記情報処理装置から取得し、
前記第２の管理装置が、前記情報処理装置から取得した前記状態情報に基づいて、前記処理シーケンスの未実行の処理ステップの実行を前記情報処理装置に継続させる、
ことを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、管理装置、および情報処理装置の管理方法に関する。
【背景技術】
【０００２】
コンピュータなどの情報処理装置の処理を外部の装置から管理するようにしたシステムは、広く普及している。例えば、ブレードサーバシステムの物理的／論理的な仕様を定めたＡＴＣＡ（Advanced Telecom Computing Architecture）規格では、ブレードサーバシステムが有する情報処理装置であるサーバブレードにおける起動処理の進行に関して、複数の状態が規定されている。そして、ブレードサーバシステムのシャーシ内などに設けられる管理装置（シェルフマネージャ）は、サーバブレードにおける状態の遷移を管理することで、サーバブレードの起動処理を進行させる。管理装置は、サーバブレードの状態を遷移させる過程で、消費電力などの情報をサーバブレードから順次取得し、サーバブレードを含めたシャーシ内のデバイスなどのハードウェア資源による電力需要を予測する。そして、予測された電力需要が、シャーシ内の電源装置から供給可能な範囲内であれば、サーバブレードに対して、電源装置からの電源の供給を開始させる。このように、管理装置の管理下でサーバブレードにおける起動処理をあらかじめ決められた順番で進行させることで、ブレードサーバシステム全体の信頼性を維持した状態で、サーバブレードを確実に起動させることができる。【０００３】
なお、情報処理装置と管理装置とを有するシステムの他の例として、シャーシ内に、複数のプロセッサカードと、各プロセッサカードにおけるファンの回転速度および温度の検出やプロセッサカードの挿抜の検出を行うサーバ管理カードとを備えるサーバシステムがある。【０００４】
一方、システムの耐故障性を向上させる方法として、運用系装置とは別に待機系装置を用意する方法がある。例えば、本体装置とサービスプロセッサとの間で情報の整合がとられるシステムにおいて、処理を運用中の系統である運用系のサービスプロセッサが故障した場合に、本体装置と予備のサービスプロセッサとを接続して、本体装置が保持する情報を予備のサービス処理装置が読み出すものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１５０４０９号公報
【特許文献２】特開昭５９−１４０５４号公報
【非特許文献】
【０００６】
【非特許文献１】“PICMG 3.0 Revision 2.0 AdvancedTCA Base Specification”，PCI Industrial Computer Manufactures Group，２００５年１０月２８日，Ｐ３−３１〜３−３８
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ＡＴＣＡ規格に準拠したサーバシステムにおいても、システムの耐故障性の向上を目的として、運用系の管理装置とは別に、運用系の管理装置が運用中に待機する待機系の管理装置を設置することにより、管理装置を冗長化することが考えられる。しかし、管理装置を冗長化した場合、処理を行う情報処理装置であるサーバブレードでの起動処理の実行中に運用系の管理装置が停止したときに、サーバブレードにおける状態遷移の制御を待機系の管理装置がどのようにして引き継ぐかという課題があった。【０００８】
前述のように、運用系の管理装置は、サーバブレードの起動処理をあらかじめ決められた順番で進行させる。サーバブレードの起動処理の制御を待機系の管理装置が引き継ぐ場合でも、サーバブレードの起動処理の順番は守られなくてはならない。サーバブレードの起動処理の制御を待機系の管理装置が引き継いだときに、サーバブレードの起動処理の順番が変わってしまうと、サーバブレードの起動処理が停止し、起動処理を正常に完了できなくなる。例えば、サーバブレードの起動処理中に運用系の管理装置が変更になったとき、新たに運用系となった管理装置がサーバブレードの起動処理を最初から実行させるように制御した場合には、起動処理の順番が守られないため、起動処理を正常に完了できない。【０００９】
また、上記のサーバシステムに限らず、情報処理装置での処理シーケンスの進行を管理装置により管理する他のシステムでも、運用系の管理装置とは別に待機系の管理装置を設置することが考えられる。そして、このように運用系の管理装置が情報処理装置での処理シーケンスを管理するとともに待機系の管理装置を有するシステムでも、情報処理装置での処理の実行中に運用系の管理装置が停止した場合に、情報処理装置に対する制御を待機系の管理装置がどのようにして引き継ぎ、情報処理装置の処理を続行させるかという課題があった。【００１０】
本発明はこのような課題に鑑みてなされたものであり、情報処理装置の処理の実行を管理する管理装置が別の管理装置に変更された場合に、情報処理装置の処理を続行させることが可能な情報処理システム、管理装置、および情報処理装置の管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、情報処理システムが提供される。この情報処理システムは、複数の処理ステップを含む処理シーケンスを実行する情報処理装置と、前記情報処理装置に処理ステップを所定の順で実行させることで、前記処理シーケンスの実行を管理する複数の管理装置と、を備える。複数の管理装置のうちのいずれか１つは、前記処理シーケンスの実行管理を行う運用系として動作し、運用系以外の管理装置は、前記処理シーケンスの実行管理を運用系の管理装置から引き継ぐまで待機する待機系として動作する。また、前記各管理装置は、待機系から運用系に遷移して、運用系であった他の前記管理装置から前記処理シーケンスの実行管理を引き継いだときに、前記処理シーケンスの進行状態を示す状態情報を前記情報処理装置から取得する情報取得手段と、前記情報取得手段によって取得された前記状態情報に基づいて、前記処理シーケンスの未実行の処理ステップの実行を前記情報処理装置に継続させる制御手段と、を有する。【００１２】
また、上記目的を達成するために、上記の情報処理システムに含まれる管理装置、および、上記の情報処理システムと同様の処理を行う情報処理装置の管理方法が提供される。
【発明の効果】
【００１３】
上記の情報処理システム、管理装置、および情報処理装置の管理方法によれば、情報処理装置での処理シーケンスの実行を管理する運用系の管理装置が別の管理装置に変更された場合でも、変更後の管理装置の制御の下で情報処理装置での処理シーケンスを続行させることができる。【００１４】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態に係る情報処理システムの構成例を示す図である。
【図２】第２の実施の形態に係る情報処理システムとしてのブレードサーバシステムの構成例を示す図である。
【図３】サーバブレードのハードウェア構成例を示す図である。
【図４】管理カードのハードウェア構成例を示す図である。
【図５】サーバブレードの処理機能の例を示すブロック図である。
【図６】管理カードの処理機能の例を示すブロック図である。
【図７】ブレード管理テーブルに保持される情報の例を示す図である。
【図８】ブレード管理部の内部構成例を示すブロック図である。
【図９】運用系管理カードから待機系管理カードに対してデータを通知する際に用いられるコマンドについて説明する図である。
【図１０】運用系管理カードによる起動制御手順の例を示すフローチャートである。
【図１１】運用系管理カードによる起動制御手順の例を示すフローチャートである。
【図１２】運用系管理カードの電源切断制御部による電源切断制御手順の例を示すフローチャートである。
【図１３】サーバブレードが起動する際の各装置の処理例を示すシーケンス図である。
【図１４】サーバブレードが起動する際の各装置の処理例を示すシーケンス図である。
【図１５】サーバブレードの電源が切断される際の各装置の処理例を示すシーケンス図である。
【図１６】サーバブレードの電源が切断される際の各装置の処理例を示すシーケンス図である。
【図１７】サーバブレードの状態と、待機系管理カードが認識する状態とが一致しない場合の参考処理例を示すシーケンス図である。
【図１８】待機系として動作する管理カードのフラグ設定部の処理手順の例を示すフローチャートである。
【図１９】起動制御部を制御する起動時移行制御部の処理手順の例を示すフローチャートである。
【図２０】電源切断制御部を制御する切断時移行制御部の処理手順の例を示すフローチャートである。
【図２１】サーバブレードに対する起動制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。
【図２２】サーバブレードに対する起動制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。
【図２３】サーバブレードに対する起動制御が別の管理カードに引き継がれる場合の処理例２を示すシーケンス図である。
【図２４】サーバブレードに対する電源切断制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。
【図２５】サーバブレードに対する電源切断制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。
【図２６】サーバブレードに対する電源切断制御が別の管理カードに引き継がれる場合の処理例２を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る情報処理システムの構成例を示す図である。
【００１７】
図１に示す情報処理システムは、複数の管理装置１０ａ，１０ｂと、情報処理装置２０とを含む。管理装置１０ａ，１０ｂおよび情報処理装置２０は、例えば、コンピュータとして実現される。
【００１８】
管理装置１０ａ，１０ｂは、情報処理装置２０での処理シーケンスの実行を管理する。管理装置１０ａ，１０ｂのうち一方の管理装置は、情報処理装置２０での処理シーケンスの実行を管理する運用系として動作する。また、他方の管理装置は、情報処理装置２０での処理シーケンスの実行管理を運用系の管理装置から引き継ぐまで待機する待機系として動作する。待機系の管理装置は、例えば運用系の管理装置が異常発生によって停止した場合などに、待機系から運用系に遷移して、処理シーケンスの実行管理を運用系であった管理装置から引き継ぐ。
【００１９】
図１の例では、運用系の管理装置は、情報処理装置２０に、処理ステップＡ、処理ステップＢ、処理ステップＣ、処理ステップＤの順に処理シーケンスを実行させる。情報処理装置２０で実行される各処理ステップでの処理内容には、例えば、運用系の管理装置からの要求に応じて所定の処理を行って、運用系の管理装置に応答する処理が含まれてもよい。あるいは、運用系の管理装置からの要求に応じて実行されるものの、運用系の管理装置への応答を必要としない処理が含まれてもよい。
【００２０】
管理装置１０ａ，１０ｂは、情報取得手段１１と、制御手段１２とを有する。これらの情報取得手段１１および制御手段１２の処理は、処理シーケンスの実行管理を、運用系であった他方の管理装置から引き継ぐ際に実行される。ここで、説明をわかりやすくするために、例として、管理装置１０ｂが備える情報取得手段１１および制御手段１２の処理について説明する。
【００２１】
情報取得手段１１は、管理装置１０ｂが待機系から運用系に遷移して、運用系であった他方の管理装置１０ａから処理シーケンスの実行管理を引き継いだときに、処理シーケンスの進行状態を示す状態情報を、情報処理装置２０から取得する。情報取得手段１１は、この処理を、例えば、管理装置１０ａが停止したことや、管理装置１０ａにおいてリセットが発生したことを検知したときに実行する。なお、状態情報は、情報処理装置２０において処理シーケンスがどの段階まで実行されたかを判別できる情報であればよい。例えば、状態情報は、情報処理装置２０で最後に実行された処理ステップを示す情報である。また、状態情報は、情報処理装置２０が処理ステップを実行するたびに遷移する状態を示す情報であってもよい。
【００２２】
制御手段１２は、情報取得手段１１によって取得された状態情報に基づいて、処理シーケンスに含まれる処理ステップのうち未実行の処理ステップの実行を、情報処理装置２０に継続させる。情報処理装置２０に未実行の処理ステップを実行させることにより、管理装置１０ａによる処理シーケンスの実行管理が、管理装置１０ｂによって引き継がれる。すなわち、未実行の処理ステップのうちの先頭の処理ステップから、情報処理装置２０での処理シーケンスの実行が再開される。そして、以後、管理装置１０ａによる処理シーケンスの実行管理手順と同様の処理手順が、管理装置１０ｂによって実行される。
【００２３】
次に、図１を参照して、管理装置１０ａによる処理シーケンスの実行管理が管理装置１０ｂに引き継がれる際の処理手順の例について説明する。なお、以下の説明では、例として、次のような手順で情報処理装置２０での処理シーケンスの実行が管理されるものとする。情報処理装置２０は、各処理ステップの実行を終了するたびに、実行を終了した処理ステップを示す状態情報を、運用系の管理装置１０ａに通知する。通知を受けた管理装置１０ａは、通知された状態情報を基に、情報処理装置２０で実行が終了した処理ステップを認識し、認識した処理ステップの次の処理ステップを、情報処理装置２０に実行させる。管理装置は、例えば、次の処理ステップにおいて決められた最初の処理を情報処理装置２０に開始させることで、処理ステップを実行させる。
【００２４】
まず、初期状態では、運用系の管理装置１０ａの管理の下で、情報処理装置２０において処理シーケンスが実行される。情報処理装置２０は、処理シーケンス中の処理ステップＡの処理を終了すると、処理ステップＡの実行を終了したことを示す状態情報を、管理装置１０ａに送信する（ステップＳ１）。管理装置１０ａは、情報処理装置２０から処理ステップＡの終了を示す状態情報を受信すると、次の処理ステップＢの実行を情報処理装置２０に要求する（ステップＳ２）。情報処理装置２０は、管理装置１０ａからの要求に応じて、処理ステップＢを実行し、処理ステップＢの実行が終了すると、処理ステップＢが終了したことを示す状態情報を管理装置１０ａに送信する（ステップＳ３）。
【００２５】
ここで、例えば、管理装置１０ａが故障するなどして、待機系であった管理装置１０ｂが、情報処理装置２０を管理する運用系に遷移したものとする。このとき、管理装置１０ｂの情報取得手段１１は、情報処理装置２０から状態情報を取得する（ステップＳ４）。例えば、管理装置１０ｂの情報取得手段１１は、情報処理装置２０に対して状態情報の通知を要求し、通知要求を受けた情報処理装置２０は、状態情報を管理装置１０ｂに通知する。
【００２６】
管理装置１０ｂの制御手段１２は、情報取得手段１１が情報処理装置２０から状態情報を取得すると、取得した状態情報から、情報処理装置２０での処理ステップＢの実行が終了したと判断して、次の処理ステップＣの実行を情報処理装置２０に要求する（ステップＳ５）。
【００２７】
情報処理装置２０は、管理装置１０ｂの制御手段１２からの要求に応じて、処理ステップＣを実行し、実行が終了すると、処理ステップＣが終了したことを示す状態情報を管理装置１０ｂに送信する（ステップＳ６）。管理装置１０ｂの制御手段１２は、情報処理装置２０から状態情報を受信すると、次の処理ステップＤの実行を情報処理装置２０に要求する（ステップＳ７）。情報処理装置２０は、制御手段１２からの要求に応じて、処理ステップＤを実行する。
【００２８】
以上の処理では、管理装置１０ｂは、情報処理装置２０から状態情報を取得することで、情報処理装置２０で実行済みの処理ステップを認識する。そして、管理装置１０ｂは、次に情報処理装置２０が実行すべき処理ステップを判断し、その処理ステップを情報処理装置２０に実行させる。これにより、管理装置１０ｂは、管理装置１０ａによって実行されていた処理シーケンスの実行管理を、情報処理装置２０での処理順を守ったまま引き継ぐことができる。また、情報処理装置２０では、処理シーケンスの実行中に、自装置を管理する運用系の管理装置が変更されても、変更後の運用系の管理装置による制御の下で処理シーケンスが継続される。従って、情報処理装置２０での処理を進行させることができるようになる。
【００２９】
次に、情報処理システムの例として、ＡＴＣＡ規格に準拠したブレードサーバシステムを適用した場合の実施の形態について説明する。
［第２の実施の形態］
図２は、第２の実施の形態に係る情報処理システムとしてのブレードサーバシステムの構成例を示す図である。
【００３０】
ブレードサーバシステム１００は、複数のスロットを備えた筐体であるシャーシ１１０を備え、各スロットには、ブレードと呼ばれる基板を装着できるようになっている。シャーシ１１０の内部には、データを送受信するバスや電源線などを含むバックプレーン１２０が設けられ、スロットに装着されたブレードは、バックプレーン１２０を介して互いに接続される。
【００３１】
図２に示すブレードサーバシステム１００は、ブレードとして、１つ以上のサーバブレードを備えている。本実施の形態のブレードサーバシステム１００は、例として最大８個のサーバブレード２００ａ〜２００ｈを装着可能であるものとする。サーバブレード２００ａ〜２００ｈのそれぞれは、ＣＰＵ（Central Processing Unit）や記憶装置などのハードウェア資源としてのデバイスを備え、各種のサーバとして稼働するブレードである。サーバブレード２００ａ〜２００ｈは、例えば、通信サービスを提供するサーバである。
【００３２】
また、ブレードサーバシステム１００は、管理カード３００ａ，３００ｂを備えている。管理カード３００ａ，３００ｂもそれぞれ、シャーシ１１０内の所定のスロットに挿入されるブレードである。
【００３３】
管理カード３００ａ，３００ｂは、シャーシ１１０に搭載された各ブレードを制御する。例えば、管理カード３００ａ，３００ｂは、シャーシ１１０内の各ブレードに対する電源モジュール４１０からの電源分配の制御、各ブレードにおける異常発生の監視、各ブレードでの温度検出結果に応じたファンモジュール４２０でのファンの回転速度の制御などを行う。また、後述するように、管理カード３００ａ，３００ｂは、サーバブレード２００ａ〜２００ｈの起動時および電源切断時の処理シーケンスを制御する機能も有する。
【００３４】
さらに、管理カード３００ａ，３００ｂは、通信モジュールなどにより外部のネットワーク５１０に接続し、ネットワーク５１０に接続された遠隔監視装置５２０からの要求に応じて、シャーシ１１０内の各ブレードを制御することもできる。ネットワーク５１０は、例えばＬＡＮ（Local Area Network）である。なお、遠隔監視装置５２０は、管理カード３００ａ，３００ｂのいずれかから通知される情報に基づいて、シャーシ１１０に搭載された各ブレードにおける異常発生を監視してもよい。
【００３５】
なお、これらの２つの管理カード３００ａ，３００ｂのうち、一方は、処理を運用中の系統である運用系として動作し、他方は、運用系が動作中の間、運用系の管理カードをバックアップする待機系として動作する。以下の説明では、管理カード３００ａ，３００ｂのうち、運用系として動作中のものを“運用系管理カード”と呼称し、待機系として動作中のものを“待機系管理カード”と呼称する。
【００３６】
また、ブレードサーバシステム１００のシャーシ１１０には、電源モジュール４１０およびファンモジュール４２０が搭載されている。電源モジュール４１０は、シャーシ１１０に搭載された装置に対して、バックプレーン１２０を介して共通に電源を供給する。ファンモジュール４２０は、管理カード３００ａ，３００ｂからの制御に応じてファンを回転させ、シャーシ１１０内の温度を調整する。
【００３７】
図３は、サーバブレードのハードウェア構成例を示す図である。なお、図３では、例としてサーバブレード２００ａの構成例を示すが、他のサーバブレード２００ｂ〜２００ｈも、図３と同様の構成であればよい。
【００３８】
サーバブレード２００ａは、ＣＰＵ２０１、ＲＡＭ（Random Access Memory）２０２、ＭＣＨ（Memory Controller Hub）２０３、ＩＣＨ（In/Out Controller Hub）２０４、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）２０５、ＩＰＭＣ（Intelligent Platform Management Controller）２０６、ＮＶＲＡＭ（Non Volatile RAM）２０７、電源スイッチ２０８、電源回路２０９、温度センサ２１０および電圧センサ２１１を備えている。
【００３９】
ＣＰＵ２０１は、サーバブレード２００ａ全体を統括的に制御する。ＲＡＭ２０２は、サーバブレード２００ａの主記憶装置として使用され、ＣＰＵ２０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００４０】
ＭＣＨ２０３は、ＣＰＵ２０１、ＲＡＭ２０２およびＩＣＨ２０４のそれぞれの間で、データを中継する。ＩＣＨ２０４は、ＭＣＨ２０３、ＨＤＤ２０５およびＩＰＭＣ２０６のそれぞれの間で、データを中継する。
【００４１】
ＨＤＤ２０５は、サーバブレード２００ａの二次記憶装置として使用され、ＣＰＵ２０１により実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、フラッシュメモリなどの半導体記憶装置が使用されてもよい。
【００４２】
ＩＰＭＣ２０６は、ＩＰＭＩ（IPM Interface）規格に準拠して、バックプレーン１２０内のＩＰＭＢ（IPM Bus）１２１を通じて運用系管理カードと通信する。また、ＩＰＭＣ２０６は、ＩＣＨ２０４およびＭＣＨ２０３を通じて、ＣＰＵ２０１との間でデータを送受信する。ＩＰＭＣ２０６は、例えば、内部にＣＰＵやＲＯＭ（Read Only Memory）などを含むマイクロコンピュータである。
【００４３】
サーバブレード２００ａがブレードサーバシステム１００のスロットに装着され、サーバブレード２００ａの電源回路２０９とバックプレーン１２０内の電源線とが接続されると、ＩＰＭＣ２０６は、電源回路２０９からの電源が投入された状態となる。このとき、サーバブレード２００ａ内のＩＰＭＣ２０６以外のデバイスには、電源回路２０９からの電源は投入されない。以下、サーバブレード２００ａにおける電源状態の１つとして、サーバブレード２００ａ内のＩＰＭＣ２０６にのみ電源が投入された状態を“電源オフ状態”と呼ぶ。この“電源オフ状態”は、後述する“状態１”に相当する。また、サーバブレード２００ａの全体に電源が投入された状態を“運用状態”と呼ぶ。この“運用状態”は、後述する“状態４”に相当する。
【００４４】
ＩＰＭＣ２０６は、サーバブレード２００ａが電源オフ状態から運用状態に遷移する起動時や、サーバブレード２００ａが運用状態から電源オフ状態に遷移する電源切断時に、運用系管理カードによる制御の下で、電源回路２０９をはじめとするサーバブレード２００ａ内の各部の動作を制御する。また、ＩＰＭＣ２０６は、サーバブレード２００ａが運用状態のとき、運用系管理カードからの要求に応じて、温度センサ２１０による温度検出値および電圧センサ２１１による電圧検出値を、運用系管理カードに対して送信する。なお、ＩＰＭＣ２０６は、温度センサ２１０による温度検出値および電圧センサ２１１による電圧検出値を、自発的に運用系管理カードに対して送信してもよい。
【００４５】
ＮＶＲＡＭ２０７は、ＩＰＭＣ２０６での処理に必要な各種のデータを記憶する不揮発性メモリである。ＮＶＲＡＭ２０７には、例えば、サーバブレード２００ａの起動時に、ＩＰＭＣ２０６によって運用系管理カードに通知される情報などがあらかじめ格納される。
【００４６】
電源スイッチ２０８は、スイッチ機構に対する入力操作に応じた信号をＩＰＭＣ２０６に供給する。ＩＰＭＣ２０６は、電源スイッチ２０８に対する入力操作に応じて、サーバブレード２００ａを電源オフ状態から運用状態に遷移させる起動処理と、サーバブレード２００ａを運用状態から電源オフ状態に遷移させる電源切断処理とのいずれかを開始する。
【００４７】
電源回路２０９は、バックプレーン１２０内の電源線（図示せず）を通じて、電源モジュール４１０から電源の供給を受け、サーバブレード２００ａ内の各部に対して電源を供給する。電源回路２０９は、サーバブレード２００ａ内のデバイスのうち、少なくとも、ＩＰＭＣ２０６とその他のデバイスとに対して、それぞれ個別に電源を供給できる。例えば、電源回路２０９は、ＩＰＭＣ２０６に対してのみ電源を供給した状態で、ＩＰＭＣ２０６からの要求に応じて、その他のデバイスへの電源供給を開始したり停止したりすることができる。
【００４８】
温度センサ２１０は、例えばＣＰＵ２０１の周辺など、サーバブレード２００ａ内の所定の位置の温度を検出し、検出結果をＩＰＭＣ２０６に出力する。電圧センサ２１１は、電源回路２０９からサーバブレード２００ａ内の各部に出力される電源の電圧を検出し、検出結果をＩＰＭＣ２０６に出力する。
【００４９】
図４は、管理カードのハードウェア構成例を示す図である。
管理カード３００ａは、ＣＰＵ３０１、ＲＡＭ３０２、不揮発性メモリ３０３、ＩＰＭＣ３０４、ネットワークインタフェース（Ｉ／Ｆ）３０５およびウォッチドッグタイマ（ＷＤＴ：Watch Dog Timer）３０６を備えている。
【００５０】
ＣＰＵ３０１は、管理カード３００ａ全体を統括的に制御する。ＲＡＭ３０２は、管理カード３００ａの主記憶装置として使用され、ＣＰＵ３０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００５１】
不揮発性メモリ３０３は、管理カード３００ａの二次記憶装置として使用され、ＣＰＵ３０１により実行されるプログラムやその実行に必要な各種のデータなどを記憶する。不揮発性メモリ３０３は、例えば、フラッシュメモリなどの半導体記憶装置である。なお、二次記憶装置としては、ＨＤＤが使用されてもよい。
【００５２】
ＩＰＭＣ３０４は、ＩＰＭＩ規格に準拠して、バックプレーン１２０内のＩＰＭＢ１２１を通じて、サーバブレード２００ａ〜２００ｈなどのシャーシ１１０内のブレードと通信する。また、ＩＰＭＣ３０４は、他の管理カード３００ｂと通信することも可能である。さらに、ＩＰＭＣ３０４は、バックプレーン１２０内のＩＰＭＢ１２１とＣＰＵ３０１との間のデータ送受信を制御する。また、ＩＰＭＣ３０４は、リセット信号線１２２を介して、管理カード３００ｂと接続されている。ＩＰＭＣ３０４は、管理カード３００ａがリセットされると、リセット信号線１２２にリセットパルスを出力し、管理カード３００ｂに対してリセットの発生を通知する。また、ＩＰＭＣ３０４は、管理カード３００ｂから出力されたリセットパルスを、リセット信号線１２２を介して受信することで、管理カード３００ｂでのリセットの発生を検知する。
【００５３】
ネットワークＩ／Ｆ３０５は、ネットワーク５１０に接続し、遠隔監視装置５２０などのネットワーク５１０上の他の機器との間でデータを送受信する。
ＷＤＴ３０６は、その内部に設けられたタイマの計時時間に基づいて、ＣＰＵ３０１でのプログラム実行処理を監視し、管理カード３００ａが異常停止したことを検知すると、管理カード３００ａをリセットさせる。
【００５４】
なお、管理カード３００ａにも、管理カード３００ａ内の各部に電源を供給する回路や、その回路のコントローラなどが設けられるが、図４では省略する。また、管理カード３００ｂについても、上記の管理カード３００ａと同様のハードウェア構成によって実現される。
【００５５】
次に、管理カード３００ａ，３００ｂによるサーバブレード２００ａ〜２００ｈの動作制御について説明する。特に、以下では、サーバブレード２００ａ〜２００ｈの起動時および電源切断時における動作を運用系管理カードが制御する手順について、詳しく説明する。
【００５６】
サーバブレード２００ａ〜２００ｈのそれぞれにおいては、電源の投入／切断に関する状態として、次の状態１〜状態６までの６つの状態が規定されている。状態１は、電源オフ状態である。ただし、状態１では、電源回路２０９からサーバブレード内のＩＰＭＣ２０６に対してのみ、電源が供給される。サーバブレードは、状態１から起動する際には、起動処理を開始した状態である状態２と、起動処理中である状態３とを経て、サーバブレードの全体に対する電源投入が完了した運用状態である状態４に遷移する。また、サーバブレードは、電源の切断時には、状態４から、電源切断処理を開始した状態である状態５と、電源切断処理中である状態６とを経て、状態１に遷移する。
【００５７】
サーバブレード２００ａ〜２００ｈのそれぞれにおける状態の変化は、運用系管理カードによって管理される。運用系管理カードは、各サーバブレードにおける状態遷移を、あらかじめ決められたシーケンスに従ってサーバブレードごとにそれぞれ個別に制御する。
【００５８】
図５は、サーバブレードの処理機能の例を示すブロック図である。なお、図５では、例としてサーバブレード２００ａの処理機能について示すが、他のサーバブレード２００ｂ〜２００ｈも、図５と同様の処理機能を有する。
【００５９】
サーバブレード２００ａは、起動／切断処理部２２１およびセンサ検出値送信部２２２を備えている。これらの起動／切断処理部２２１およびセンサ検出値送信部２２２の処理は、例えば、ＩＰＭＣ２０６が備えるＣＰＵが所定のプログラムを実行することで実現される。
【００６０】
起動／切断処理部２２１は、運用系管理カードによる制御の下で、あらかじめ決められたシーケンスに従って、サーバブレード２００ａの起動処理（電源投入処理）および電源切断処理を実行する。起動／切断処理部２２１は、基本的に、前述した状態１〜状態６のそれぞれにおいて決められた処理を、運用系管理カードからの要求または実行許可通知に応じて実行し、実行が終了すると、次の状態に遷移するとともに、遷移した状態を示す状態情報を運用系管理カードに通知する。後述するように、サーバブレード２００ａは、ＡＴＣＡ規格で規定された“Platform Event Message”コマンドを用いて、状態情報を４ビットデータとして運用系管理カードに通知する。その後、起動／切断処理部２２１は、運用系管理カードからの要求または実行許可通知に応じて、遷移した状態に対して決められた処理を実行する。
【００６１】
また、起動／切断処理部２２１は、サーバブレード２００ａの起動処理の際、ＮＶＲＡＭ２０７に格納された電力情報２３１を読み出し、運用系管理カードに送信する。電力情報２３１は、サーバブレード２００ａの運用状態における消費電力を示す情報であり、例えば、それぞれ１バイトのデータである“Power Multiplier”および“Power Draw”を含む。“Power Multiplier”の値をＰ１、“Power Draw”の値をＰ２とすると、消費電力の値（Ｗ）はＰ１／１０×Ｐ２によって計算される。サーバブレード２００ａは、ＡＴＣＡ規格で規定された“Get Power Level”コマンドを運用系管理カードから受信すると、受信したコマンドの応答として“Power Multiplier”および“Power Draw”を送信する。
【００６２】
さらに、起動／切断処理部２２１は、サーバブレード２００ａが運用状態に遷移した後に、ＮＶＲＡＭ２０７に格納されたセンサ情報テーブル２３２および製造情報テーブル２３３から情報を読み出し、運用系管理カードに送信する。
【００６３】
センサ情報テーブル２３２は、例えば、ＩＰＭＩ規格で“Full Sensor Record”と呼ばれるテーブルであり、サーバブレード２００ａが備えるセンサの種類を示す情報を保持する。センサ情報テーブル２３２には、サーバブレード２００ａが備えるセンサごとにレコードが設けられる。図５に示した例のように、サーバブレード２００ａが温度センサ２１０および電圧センサ２１１という２つのセンサを備えている場合、センサ情報テーブル２３２には温度センサ２１０および電圧センサ２１１のそれぞれに対応するレコードが設けられる。
【００６４】
センサ情報テーブル２３２内の各レコードには、レコードの識別番号である２バイトの“Record ID”、レコードに対応するセンサの識別番号である１バイトの“Sensor Number”、レコードに対応するセンサの種別を示す１バイトの“Sensor Type”などが登録される。ここで、以下の説明では数値の最後に“ｈ”を付加することで１６進数を表すものとすると、センサが温度センサの場合、“Sensor Type”は“０１ｈ”とされ、センサが電圧センサである場合、“Sensor Type”は“０２ｈ”とされる。
【００６５】
製造情報テーブル２３３は、サーバブレード２００ａの製造メーカ、型番、シリアル番号などの情報を保持する。製造情報テーブル２３３は、例えば、ＮＶＲＡＭ２０７内に設定されたＦＲＵ（Field Replacement Unit）情報領域２３４に記憶される。ＦＲＵ情報領域２３４は、運用系管理カードがサーバブレード２００ａに対して直接的にアドレスを指定することでアクセス可能なメモリ領域である。
【００６６】
製造情報テーブル２３３は、ＩＰＭＩ規格で“Product Info Area”と呼ばれる８０バイトの領域に記憶される。製造情報テーブル２３３には、例えば、製造者名を示す“Manufacturer Name”、製品の型番を示す“Product Part/Model Number”、製品のシリアルナンバを示す“Product Serial Number”が格納される。
【００６７】
また、起動／切断処理部２２１は、運用系管理カードからの要求に応じて、現在のサーバブレード２００ａの状態を示す状態情報を通知する機能も有する。後述するように、状態情報の通知要求は、運用系管理カードが変更になった場合に、新たな運用系管理カード、すなわち当初運用系だった管理カードから処理を引き継いだ管理カードから、必要に応じてサーバブレード２００ａに出力される。
【００６８】
センサ検出値送信部２２２は、サーバブレード２００ａが運用状態であるとき、温度センサ２１０および電圧センサ２１１の各検出値を、運用系管理カードに対して送信する。センサ検出値送信部２２２は、ＡＴＣＡ規格で規定された“Get Sensor Reading”コマンドを運用系管理カードから受信すると、受信したコマンドの応答として、温度センサ２１０および電圧センサ２１１の各検出値を１バイトずつのデータとして運用系管理カードに送信する。なお、センサ検出値送信部２２２は、例えば、運用系管理カードからの要求によらずに、温度センサ２１０および電圧センサ２１１の各検出値を定期的に運用系管理カードに送信してもよい。
【００６９】
次に、図６は、管理カードの処理機能の例を示すブロック図である。なお、図６では、例として管理カード３００ａの処理機能について示すが、管理カード３００ｂも図８と同様の処理機能を有する。
【００７０】
管理カード３００ａは、ブレード管理部３１０ａ〜３１０ｈと、リセット検出部３４０とを備えている。これらのブレード管理部３１０ａ〜３１０ｈおよびリセット検出部３４０の処理は、例えば、管理カード３００ａが備えるＣＰＵ３０１によって所定のプログラムが実行されることで実現される。
【００７１】
ブレード管理部３１０ａ〜３１０ｈは、管理カード３００ａが運用系である場合に、それぞれサーバブレード２００ａ〜２００ｈにおける状態１〜６の遷移を管理する。例えば、ブレード管理部３１０ａは、サーバブレード２００ａにおける状態遷移を管理し、ブレード管理部３１０ｂは、サーバブレード２００ｂにおける状態遷移を管理する。
【００７２】
また、ブレード管理部３１０ａ〜３１０ｈは、それぞれサーバブレード２００ａ〜２００ｈにおける状態遷移を並行して制御することができる。例えば、ブレード管理部３１０ｃがサーバブレード２００ｃを状態１から状態４まで遷移させる起動処理の制御と、ブレード管理部３１０ｄがサーバブレード２００ｄを状態４から状態１まで遷移させる電源切断処理の制御とを並行して実行できる。
【００７３】
ブレード管理部３１０ａ〜３１０ｈは、サーバブレード２００ａ〜２００ｈにおける状態遷移を管理する際に、ブレード管理テーブル３５０を利用する。例えば、ブレード管理部３１０ａ〜３１０ｈは、管理対象のサーバブレードの状態を示す状態情報をブレード管理テーブル３５０に登録する。また、ブレード管理部３１０ａ〜３１０ｈは、管理対象のサーバブレードを状態１から状態４まで遷移させる間に、ブレード管理テーブル３５０に対して、サーバブレードの消費電力を示す電力情報を登録する。さらに、ブレード管理部３１０ａ〜３１０ｈは、管理対象のサーバブレードが状態４に遷移すると、管理対象のサーバブレードのセンサ情報および製造情報をブレード管理テーブル３５０に登録する。また、ブレード管理部３１０ａ〜３１０ｈは、管理対象のサーバブレードを状態４から状態１に遷移させる間に、管理対象のサーバブレードの電力情報、センサ情報および製造情報を、ブレード管理テーブル３５０から削除する。
【００７４】
ブレード管理テーブル３５０は、例えば、管理カード３００ａのＲＡＭ３０２に格納されればよいが、ブレード管理テーブル３５０に保持される情報の一部（サーバブレードのアドレス）は、不揮発性メモリ３０３にあらかじめ記憶される。なお、ブレード管理テーブル３５０に保持される情報の詳細については、図７で説明する。
【００７５】
また、ブレード管理部３１０ａ〜３１０ｈは、サーバブレード２００ａ〜２００ｈにおける状態遷移を管理する際に、最大許容電力３６１および現在の許容電力３６２を参照する。最大許容電力３６１は、ブレード管理部３１０ａ〜３１０ｈのそれぞれがサーバブレード２００ａ〜２００ｈの状態遷移を制御する過程で、電力配分計算を行う際に参照される。最大許容電力３６１は、ブレードサーバシステム１００に搭載された電源モジュール４１０からサーバブレード２００ａ〜２００ｈ全体に対して供給可能な最大電力を表す。この最大許容電力３６１は、例えば、管理カード３００ａの不揮発性メモリ３０３に対して設定される。
【００７６】
現在の許容電力３６２は、電源モジュール４１０が、現在状態４であるサーバブレード以外に、あとどれだけの電力を供給可能かを示す値であり、ブレード管理部３１０ａ〜３１０ｈによって計算され、更新される。現在の許容電力３６２は、ブレード管理テーブル３５０に登録されたサーバブレードの電力情報の値の総和を、最大許容電力３６１から減算することで得られる。実際の計算では、現在の許容電力３６２の初期値は最大許容電力３６１の値とされ、現在の許容電力３６２の値は、サーバブレードが状態４に遷移するたびに、状態４に遷移したサーバブレードの消費電力の分だけ減算される。また、現在の許容電力３６２の値は、サーバブレードが状態１に遷移するたびに、状態１に遷移したサーバブレードの消費電力の分だけ加算される。なお、現在の許容電力３６２は、例えば、管理カード３００ａのＲＡＭ３０２に格納される。
【００７７】
なお、ブレード管理部３１０ａ〜３１０ｈは、管理カード３００ａが待機系である場合には、ブレード管理テーブル３５０内の情報および現在の許容電力３６２を、運用系管理カード（すなわち管理カード３００ｂ）から通知された情報によって更新する。
【００７８】
また、ブレード管理部３１０ａ〜３１０ｈは、サーバブレード２００ａ〜２００ｈにおける状態遷移を管理する際に、更新許可フラグＦＬ０を参照する。更新許可フラグＦＬ０は、現在の許容電力３６２の更新が許可された状態であるか否かを示す。更新許可フラグＦＬ０は、初期状態ではオンにされ、更新許可フラグＦＬ０がオンであるとき、ブレード管理部３１０ａ〜３１０ｈは、更新許可フラグＦＬ０をオフにすることで、現在の許容電力３６２を更新できる。ブレード管理部３１０ａ〜３１０ｈのうちの１つが更新許可フラグＦＬ０をオフにしたとき、更新許可フラグＦＬ０をオフにしたブレード管理部のみが現在の許容電力３６２を更新でき、その他のブレード管理部が現在の許容電力３６２を更新できない状態になる。また、更新許可フラグＦＬ０をオフからオンに戻すことができるのは、その直前に更新許可フラグＦＬ０をオフにしたブレード管理部のみである。
【００７９】
更新許可フラグＦＬ０が使用されることで、複数のブレード管理部によって複数のサーバブレードにおける起動処理や電源切断処理が並行して制御された状態でも、現在の許容電力３６２の計算を正確に実行できるようになる。
【００８０】
リセット検出部３４０は、管理カード３００ａが待機系である場合に、運用系管理カード（すなわち管理カード３００ｂ）からリセット信号線１２２を通じて送信されるリセットパルスに基づいて、運用系管理カードにおいてリセットが発生したか否かを監視する。リセット検出部３４０によって運用系管理カードでのリセットが検出されると、管理カード３００ａは運用系に遷移する。
【００８１】
図７は、ブレード管理テーブルに保持される情報の例を示す図である。
ブレード管理テーブル３５０は、サーバブレード２００ａ〜２００ｈのそれぞれに対応するレコード３５０ａ〜３５０ｈを備える。レコード３５０ａ〜３５０ｈのそれぞれには、アドレス、状態情報、電力情報、センサ情報および製造情報が格納される。
【００８２】
アドレスは、ＩＰＭＢ１２１における各サーバブレードの位置を示す情報であり、シャーシ１１０のスロットごとにあらかじめ決められている。例えば、サーバブレードが挿入される８個のスロットには、“４１ｈ”から“４８ｈ”までのアドレスがあらかじめ付与される。なお、管理カード３００ａ，３００ｂが挿入されるスロットのアドレスも、あらかじめ決められている。例えば、管理カード３００ａのアドレスは“０８ｈ”であり、管理カード３００ｂのアドレスは“０９ｈ”である。これらのＩＰＭＢ１２１におけるアドレスは、ＩＰＭＢ１２１を通じてコマンドが送受信される際に、コマンドの送信元および送信先をそれぞれ識別する情報として用いられる。
【００８３】
レコード内の状態情報、電力情報、センサ情報および製造情報は、そのレコードに対応するサーバブレードを制御するブレード管理部によって更新される。例えば、レコード３５０ａ内の状態情報、電力情報、センサ情報および製造情報は、ブレード管理部３１０ａによって更新され、レコード３５０ｂ内の状態情報、電力情報、センサ情報および製造情報は、ブレード管理部３１０ｂによって更新される。
【００８４】
また、管理カード３００ａが運用系である場合には、管理カード３００ａ内のブレード管理テーブル３５０には、管理対象のサーバブレードから通知された状態情報、電力情報、センサ情報および製造情報が登録される。一方、管理カード３００ａが待機系である場合には、管理カード３００ａ内のブレード管理テーブル３５０には、運用系の管理カード（すなわち管理カード３００ｂ）から転送された状態情報、電力情報、センサ情報および製造情報が登録される。
【００８５】
状態情報は、前述した、サーバブレードの電源に関する状態（状態１〜状態６）を示す。ブレード管理部は、管理対象のサーバブレードの状態が変化するたびに、管理対象のサーバブレードに対応するレコード内の状態情報を更新する。
【００８６】
状態情報は、ＡＴＣＡ規格で規定された“Platform Event Message”コマンドを用いて、サーバブレードから運用系管理カードに通知される。“Platform Event Message”コマンドでは、状態情報は４ビットデータとして送信され、状態１〜状態６は、それぞれ“１ｈ”〜“６ｈ”の値とされる。
【００８７】
なお、ブレード管理部は、管理対象のサーバブレードのＩＰＭＣ２０６と通信できない場合（例えば、スロットにサーバブレードが挿入されていない場合）には、レコード内の状態情報を空欄にする。あるいは、ブレード管理部は、管理対象のサーバブレードのＩＰＭＣ２０６と通信できない場合には、レコード内の状態情報を状態０としてもよい。これらのいずれの場合でも、ブレード管理部は、管理対象のサーバブレードがスロットに挿入され、管理対象のサーバブレードのＩＰＭＣ２０６に電源が投入されて、電源が投入されたＩＰＭＣ２０６との通信が開始されると、レコード内の状態情報を状態１とする。また、ブレード管理部は、管理対象のサーバブレードが状態１であるときに、管理対象のサーバブレードのＩＰＭＣ２０６と通信できなくなった場合（例えば、スロットからサーバブレードが取り外された場合）には、レコード内の状態情報を空欄または状態０とする。
【００８８】
電力情報の欄には、サーバブレードの消費電力を示す情報として、サーバブレードに保持された電力情報２３１がサーバブレードから通知され、登録される。電力情報２３１は、“Get Power Level”コマンドに対する応答として、サーバブレードから運用系管理カードに通知され、それぞれ１バイトのデータである“Power Multiplier”および“Power Draw”を含む。なお、ブレード管理テーブル３５０の電力情報の欄には、例えば、サーバブレードから通知された“Power Multiplier”および“Power Draw”を基に計算された消費電力の値（Ｗ）が格納されてもよい。
【００８９】
運用系管理カード内のブレード管理部は、管理対象のサーバブレードが状態３であるときに、管理対象のサーバブレードに対して“Get Power Level”コマンドを送信し、管理対象のサーバブレードから電力情報２３１を受信する。このとき、ブレード管理部は、現在の許容電力３６２の値から、受信した電力情報２３１を基に計算した消費電力の値を減算する。なお、前述のように、現在の許容電力３６２の初期値は、最大許容電力３６１の値である。ブレード管理部は、減算結果が０以上である場合に、管理対象のサーバブレードに対して状態４への遷移を許可する。このとき、ブレード管理部は、受信した電力情報２３１をブレード管理テーブル３５０内の電力情報の欄に登録するとともに、上記の減算結果によって現在の許容電力３６２の値を更新する。
【００９０】
また、運用系管理カード内のブレード管理部は、管理対象のサーバブレードに対して状態１への遷移を許可したとき、管理対象のサーバブレードについての消費電力の値を、ブレード管理テーブル３５０の電力情報の欄から削除する。これとともに、ブレード管理部は、現在の許容電力３６２の値に、状態１に遷移させたサーバブレードについての消費電力の値を加算し、その加算結果によって現在の許容電力３６２を更新する。
【００９１】
センサ情報は、サーバブレードが備えるセンサに関する情報である。センサ情報には、サーバブレードが備えるセンサごとに付与された識別情報である１バイトの“Sensor Number”と、各識別情報に対応するセンサの種別を表す１バイトの“Sensor Type”とが格納される。“Sensor Number”および“Sensor Type”は、ＡＴＣＡ規格で規定された“Get Device SDR”コマンドに対する応答として、サーバブレードのセンサ情報テーブル２３２から読み出されて運用系管理カードに通知される。
【００９２】
製造情報の欄には、サーバブレードの製品に関する情報として、製造者名を示す“Manufacturer Name”、製品の型番を示す“Product Part/Model Number”、製品のシリアルナンバを示す“Product Serial Number”が格納される。これらの“Manufacturer Name”、“Product Part/Model Number”および“Product Serial Number”は、ＡＴＣＡ規格で規定された“Read FRU Data”コマンドに対する応答として、サーバブレードの製造情報テーブル２３３から読み出されて運用系管理カードに通知される。
【００９３】
次に、図８は、ブレード管理部の内部構成例を示すブロック図である。なお、図８では、サーバブレード２００ａを管理するブレード管理部３１０ａについて説明するが、ブレード管理部３１０ｂ〜３１０ｈについても、それぞれ図８と同じ構成とされればよい。
【００９４】
ブレード管理部３１０ａは、起動制御部３１１、電源切断制御部３１２、待機系処理部３２１、フラグ設定部３２２、起動時移行制御部３３１、切断時移行制御部３３２およびブレード監視部３４１を備えている。
【００９５】
起動制御部３１１および電源切断制御部３１２は、管理カード３００ａが運用系管理カードである場合に動作する。起動制御部３１１は、管理対象のサーバブレード２００ａが状態１から状態４まで遷移する起動処理を、あらかじめ決められたシーケンスに従って制御する。電源切断制御部３１２は、管理対象のサーバブレード２００ａが状態４から状態５，６を経て状態１に遷移する電源切断処理を、あらかじめ決められたシーケンスに従って制御する。
【００９６】
起動制御部３１１は、サーバブレード２００ａの起動制御中において、サーバブレード２００ａの状態が変化するたびに、サーバブレード２００ａから状態情報の通知を受ける。起動制御部３１１は、サーバブレード２００ａから通知された状態情報によって、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報を更新する。
【００９７】
また、起動制御部３１１は、サーバブレード２００ａの起動制御の際に、サーバブレード２００ａから通知された電力情報と、ＲＡＭ３０２に記憶された現在の許容電力３６２とを基に、サーバブレード２００ａに対して状態４への遷移を許可するか否かを判定する。起動制御部３１１は、サーバブレード２００ａから通知された電力情報に基づく消費電力の値を現在の許容電力３６２の値から減算し、その減算結果が０以上である場合に、サーバブレード２００ａに対して状態４への遷移を許可する。このとき、起動制御部３１１は、サーバブレード２００ａから通知された電力情報の値を、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄に登録する。これとともに、起動制御部３１１は、上記の減算結果によって現在の許容電力３６２の値を更新する。
【００９８】
さらに、起動制御部３１１は、サーバブレード２００ａの起動制御の際に、ブレード管理テーブル３５０のレコード３５０ａにおけるセンサ情報および製造情報の各欄に、サーバブレード２００ａから通知された情報を登録する。
【００９９】
また、起動制御部３１１は、サーバブレード２００ａの起動制御中において、ブレード管理テーブル３５０に登録した情報と、現在の許容電力３６２の更新後の値とを、待機系管理カード（すなわち管理カード３００ｂ）に対して送信する。また、起動制御部３１１は、待機系管理カードに送信した情報のうち少なくとも一部を、遠隔監視装置５２０に対しても送信する。
【０１００】
また、起動制御部３１１は、管理カード３００ａが待機系から運用系に遷移したとき、起動制御シーケンス中の処理ステップのうち、起動時移行制御部３３１から要求された処理ステップから処理を開始する。これにより、他の管理カード３００ｂによるサーバブレード２００ａの起動制御中に管理カード３００ａが運用系となった場合に、起動制御部３１１は、サーバブレード２００ａの起動制御を引き継ぐことが可能になる。
【０１０１】
電源切断制御部３１２は、サーバブレード２００ａの電源切断制御中において、サーバブレード２００ａの状態が変化するたびに、サーバブレード２００ａから状態情報の通知を受ける。電源切断制御部３１２は、サーバブレード２００ａから通知された状態情報によって、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報を更新する。これとともに、電源切断制御部３１２は、サーバブレード２００ａから通知された状態情報を、待機系管理カードおよび遠隔監視装置５２０に対して転送する。
【０１０２】
また、電源切断制御部３１２は、サーバブレード２００ａに対して状態１への遷移を許可すると、ブレード管理テーブル３５０のレコード３５０ａから電力情報を読み出し、読み出した電力情報に基づく消費電力の値を、現在の許容電力３６２の値に加算する。電源切断制御部３１２は、加算結果によって現在の許容電力３６２の値を更新するとともに、更新した現在の許容電力３６２の値を待機系管理カードに送信する。このとき、電源切断制御部３１２は、ブレード管理テーブル３５０のレコード３５０ａに登録された電力情報、センサ情報および製造情報を削除する。
【０１０３】
さらに、電源切断制御部３１２は、管理カード３００ａが待機系から運用系に遷移したとき、電源切断制御シーケンス中の処理ステップのうち、切断時移行制御部３３２から要求された処理ステップから処理を開始する。これにより、他の管理カード３００ｂによるサーバブレード２００ａの電源切断制御中に管理カード３００ａが運用系となった場合に、電源切断制御部３１２は、サーバブレード２００ａの電源切断制御を引き継ぐことが可能になる。
【０１０４】
待機系処理部３２１およびフラグ設定部３２２は、管理カード３００ａが待機系である場合に動作する。待機系処理部３２１は、運用系管理カードから転送された、サーバブレード２００ａについての状態情報、電力情報、センサ情報および製造情報を受信し、受信したこれらの情報をブレード管理テーブル３５０のレコード３５０ａに登録する。また、待機系処理部３２１は、運用系管理カードから転送された、現在の許容電力の値を受信し、受信した値によってＲＡＭ３０２内の現在の許容電力３６２を更新する。
【０１０５】
フラグ設定部３２２は、ブレード管理テーブル３５０のレコード３５０ａに登録された、サーバブレード２００ａについての状態情報を監視し、登録された状態情報に応じて、起動フラグＦＬ１および切断フラグＦＬ２の値を設定する。なお、起動フラグＦＬ１および切断フラグＦＬ２は、それぞれ、ブレード管理部ごとにＲＡＭ３０２に設定される。
【０１０６】
起動時移行制御部３３１は、管理カード３００ａが待機系から運用系に遷移したときに、起動制御部３１１に開始させる動作を判定し、サーバブレード２００ａに対する起動制御を続行させる。起動時移行制御部３３１は、管理カード３００ａが待機系から運用系に遷移したとき、起動フラグＦＬ１がオンである場合には、サーバブレード２００ａから状態情報を取得し、サーバブレード２００ａから取得した状態情報に応じて起動制御部３１１を制御する。
【０１０７】
切断時移行制御部３３２は、管理カード３００ａが待機系から運用系に遷移したときに、電源切断制御部３１２に開始させる動作を判定し、サーバブレード２００ａに対する電源切断制御を続行させる。切断時移行制御部３３２は、管理カード３００ａが待機系から運用系に遷移したとき、切断フラグＦＬ２がオンである場合には、サーバブレード２００ａから状態情報を取得し、サーバブレード２００ａから取得した状態情報に応じて電源切断制御部３１２を制御する。
【０１０８】
ブレード監視部３４１は、管理カード３００ａが運用系であって、サーバブレード２００ａが運用状態であるとき、サーバブレード２００ａに対して、センサの検出値を定期的に要求する。ブレード監視部３４１は、例えば、サーバブレード２００ａの温度センサ２１０の検出値を基に、ファンモジュール４２０によるファンの回転動作を制御する。また、ブレード監視部３４１は、サーバブレード２００ａの温度センサ２１０および電圧センサ２１１の各検出値を基に、サーバブレード２００ａで異常が発生したか否かを監視する。例えば、ブレード監視部３４１は、サーバブレード２００ａから通知された温度が所定のしきい値を超えた場合や、サーバブレード２００ａから通知された電圧が所定の範囲から逸脱した場合に、サーバブレード２００ａで異常が発生したと判定する。
【０１０９】
ところで、本実施の形態のブレードサーバシステムでは、運用系管理カードから待機系管理カードに対して、状態情報などのデータが通知される。しかし、ＩＰＭＩ規格およびＡＴＣＡ規格では、管理カード間でデータを送受信する際のプロトコルについて規定されていない。そこで、本実施の形態では、運用系管理カードから待機系管理カードにデータを通知する制御コマンドとして、次の図９に示すような“Set MMC Notice”コマンドを用意する。
【０１１０】
図９は、運用系管理カードから待機系管理カードに対してデータを通知する際に用いられるコマンドについて説明する図である。
図９の左側には、ＩＰＭＩ規格で規定されたリクエストデータの通信フォーマット（General IPMI request format）を示す。リクエストデータの第１バイトには、送信先のアドレスを示す“Responder Slave Address”が格納され、第４バイトには、送信元のアドレスを示す“Requester Slave Address”が格納される。また、リクエストデータの第２バイトには“NetFn”（ネットワークファンクション）が格納され、第４バイトには“Command”が格納される。“NetFn”の値と“Command”の値との組み合わせによって、コマンドが特定される。
【０１１１】
リクエストデータの第８バイトから第Ｎバイト（ただし、Ｎは０から３１までの整数）には“Data Bytes”が設けられている。“Date Bytes”には、必要に応じて送信データが格納される。例えば、ある情報をコマンド発行先に通知する場合には、リクエストデータ内の“Data Bytes”に、通知する情報が格納される。
【０１１２】
本実施の形態では、リクエストデータの“Command”および“NetFn”の各欄に対して、組み合わせがＩＰＭＩ規格で未使用となるような値を設定した“Set MMC Notice”コマンドを用意する。“Set MMC Notice”コマンドの送信の際には、例えば、リクエストデータの“Command”の値は“０１ｈ”とされ、“NetFn”の値は“４０ｈ”とされる。なお、“Set MMC Notice”コマンドを受信した側が返信するレスポンスデータにおいては、“NetFn”の値は“４１ｈ”とされる。
【０１１３】
“Set MMC Notice”コマンドのリクエストデータでは、“Data Byte”の第１バイトに“Data Classification”、第２バイトに“Blade Address”、第３バイト以降に“Data”がそれぞれ格納される。“Data Classification”は、待機系管理カードに通知するデータの種別を示す。この“Data Classification”には、“Data”の欄に格納するデータの種別ごとに異なる値が設定される。運用系管理カードから待機系管理カードに通知されるデータの種別としては、状態情報、電力計算結果（現在の許容電力３６２）、サーバブレードの電力情報、サーバブレードのセンサ情報、サーバブレードの製造情報、サーバブレードからの情報収集の完了通知などがある。ただし、“Data Classification”に情報収集の完了を示す値が設定された場合には、“Data”の欄には特に値が設定されなくてもよい。
【０１１４】
“Blade Address”には、“Data”の欄に格納するデータがどのサーバブレードに関するデータかを示すアドレスが格納される。この“Blade Address”に格納されるアドレスは、ブレード管理テーブル３５０の各レコードに登録されたアドレスである。例えば、サーバブレード２００ａに関するデータを待機系管理カードに通知する場合、“Blade Address”にはアドレス“４１ｈ”が設定される。
【０１１５】
運用系管理カードから待機系管理カードに対して状態情報、サーバブレードの電力情報、サーバブレードのセンサ情報、および、サーバブレードの製造情報が通知される場合、“Data”には、サーバブレードから運用系管理カードに対して通知された情報が格納される。例えば、待機系管理カードに状態情報を通知する場合、“Data”の第１バイトに、“Platform Event Message”コマンドのリクエストデータに格納された状態情報が設定される。
【０１１６】
また、電力計算結果（現在の許容電力３６２）は、例えば、待機系管理カードに対して電力情報と同時に送信される。例えば、待機系管理カードに電力情報が通知される際に、“Data”の第１バイトおよび第２バイトには、サーバブレードから通知された“Power Multiplier”および“Power Draw”の各値が設定され、第３バイトおよび第４バイトに、運用系管理カードに保持された現在の許容電力３６２の値が設定される。
【０１１７】
なお、現在の許容電力３６２の値は、例えば、“Power Multiplier”および“Power Draw”と同じ記述方式で設定されればよい。例えば、現在の許容電力３６２を２バイトデータとし、第１バイトの値をＰ３、第２バイトの値をＰ４とすると、現在の許容電力３６２の実際の値は、Ｐ３／１０×Ｐ４によって計算される。
【０１１８】
次に、運用系管理カードによるサーバブレードの起動制御および電源切断制御の基本的な処理手順について説明する。以下の説明では、例として、運用系管理カードによってサーバブレード２００ａの起動制御および電源切断制御を行う場合の処理について説明するが、運用系管理カードによってサーバブレード２００ｂ〜２００ｈのそれぞれの起動制御および電源切断制御を行う場合も、制御対象のサーバブレードごとに同様の処理が実行される。
【０１１９】
まず、図１０，図１１は、運用系管理カードによる起動制御手順の例を示すフローチャートである。図１０，図１１に示す処理は、運用系管理カードのブレード管理部３１０ａの起動制御部３１１によって実行されるものである。
【０１２０】
なお、図１０の初期状態では、サーバブレード２００ａは、電源オフ状態である状態１であり、運用系管理カードのブレード管理部３１０ａは、サーバブレード２００ａが状態１であることを認識した状態であるものとする。運用系管理カードのブレード管理部３１０ａの起動制御部３１１は、例えば、サーバブレード２００ａが新たにシャーシ１１０に取り付けられ、サーバブレード２００ａのＩＰＭＣ２０６との通信が開始された際に、そのサーバブレード２００ａの状態を状態１と認識する。このとき、起動制御部３１１は、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に、状態１を示す値を登録する。また、起動制御部３１１は、後述する電源切断制御部３１２の処理により、サーバブレード２００ａから状態１を示す状態情報を受信したとき（後の図１２のステップＳ５７に対応）にも、サーバブレード２００ａが状態１に遷移したことを認識する。
【０１２１】
［ステップＳ１１］起動制御部３１１は、遠隔監視装置５２０からの、サーバブレード２００ａに対する電源投入要求を監視し、電源投入要求を受信した場合には、ステップＳ１２の処理を実行する。また、起動制御部３１１は、例えば、ステップＳ１１の監視処理の開始から計時を行い、一定時間内に電源投入要求を受信しなかった場合には、ステップＳ１４の処理を実行する。
【０１２２】
［ステップＳ１２］起動制御部３１１は、サーバブレード２００ａに対して電源投入を要求する。
サーバブレード２００ａの起動／切断処理部２２１は、起動制御部３１１からの電源投入要求を受けると、起動処理を開始して状態２に遷移し、“Platform Event Message”コマンドを用いて、状態２に遷移したことを運用系管理カードに通知する。
【０１２３】
［ステップＳ１３］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から状態２を示す状態情報を受信すると、状態２を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ１５の処理を実行する。
【０１２４】
［ステップＳ１４］電源投入要求を受信していない場合、起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から状態２を示す状態情報を受信すると、状態２を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ１５の処理を実行する。また、起動制御部３１１は、例えば、ステップＳ１４の監視処理の開始から計時を行い、一定時間内に状態情報を受信しなかった場合には、ステップＳ１１の処理を実行する。
【０１２５】
なお、ステップＳ１４においてサーバブレード２００ａの起動／切断処理部２２１から状態２を示す状態情報を受信する場合とは、遠隔監視装置５２０からの電源投入要求によらずに、サーバブレード２００ａの起動処理が開始される場合である。このような例としては、サーバブレード２００ａが備える電源スイッチ２０８への操作入力によって、サーバブレード２００ａの電源投入が要求された場合が考えられる。サーバブレード２００ａの起動／切断処理部２２１は、状態１において電源スイッチ２０８に操作入力が行われると、起動処理を開始して状態２に遷移し、“Platform Event Message”コマンドを用いて、状態２に遷移したことを運用系管理カードに通知する。
【０１２６】
［ステップＳ１５］起動制御部３１１は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して、サーバブレード２００ａから受信した状態２を示す状態情報を通知する。また、起動制御部３１１は、遠隔監視装置５２０に対しても、状態２を示す状態情報を通知する。
【０１２７】
状態２を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１２８】
［ステップＳ１６］起動制御部３１１は、“Get Device ID”コマンドを用いて、サーバブレード２００ａの起動／切断処理部２２１に対して種別情報の送信を要求する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から種別情報を受信すると、ステップＳ１７の処理を実行する。
【０１２９】
［ステップＳ１７］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から受信した種別情報に基づいて、通信相手のサーバブレード２００ａが起動／電源切断処理の制御対象としてサポートする相手であるかを判定する。この判定処理では、起動制御部３１１は、“Get Device ID”コマンドに対するレスポンスデータ内の“Completion Code”の値が“００ｈ”である場合に、通信相手が正常に通信可能なＩＰＭＣであり、制御のサポート対象であると判定する。この場合、起動制御部３１１は、ステップＳ１８の処理を実行する。一方、起動制御部３１１は、“Get Device ID”コマンドに対するレスポンスデータ内の“Completion Code”の値が“００ｈ”以外の値である場合に、通信相手が制御のサポート対象でないと判定する。この場合、起動制御部３１１は、例えばサーバブレード２００ａにエラーを通知した後、起動制御を終了する。
【０１３０】
［ステップＳ１８］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１に対して起動許可通知を送信する。
サーバブレード２００ａの起動／切断処理部２２１は、起動制御部３１１からの起動許可通知を受けると、状態３に遷移し、“Platform Event Message”コマンドを用いて、状態３に遷移したことを運用系管理カードに通知する。
【０１３１】
［ステップＳ１９］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から、起動処理中である状態３を示す状態情報を受信すると、状態３を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ２０の処理を実行する。
【０１３２】
［ステップＳ２０］起動制御部３１１は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して状態３を示す状態情報を通知する。また、起動制御部３１１は、遠隔監視装置５２０に対しても、状態３を示す状態情報を通知する。
【０１３３】
状態３を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１３４】
［ステップＳ２１］起動制御部３１１は、現在の許容電力３６２の更新が許可された状態か否かを示す更新許可フラグＦＬ０の値を参照する。起動制御部３１１は、更新許可フラグＦＬ０がオンであれば、ステップＳ２２の処理を実行する。一方、起動制御部３１１は、更新許可フラグＦＬ０がオフである場合には、処理を一時的に停止し、更新許可フラグＦＬ０がオンになった後、ステップＳ２２の処理を実行する。
【０１３５】
［ステップＳ２２］起動制御部３１１は、更新許可フラグＦＬ０の値をオフにして、他のブレード管理部３１０ｂ〜３１０ｈが現在の許容電力３６２を更新できない状態にする。
【０１３６】
［ステップＳ２３］起動制御部３１１は、“Get Power Level”コマンドを用いて、サーバブレード２００ａの起動／切断処理部２２１に対して電力情報の送信を要求する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から電力情報を受信すると、ステップＳ２４の処理を実行する。
【０１３７】
“Get Power Level”コマンドのリクエストデータを受信したサーバブレード２００ａの起動／切断処理部２２１は、ＮＶＲＡＭ２０７から電力情報２３１を読み出し、読み出した電力情報２３１を“Power Multiplier”および“Power Draw”に設定したレスポンスデータを、運用系管理カードに送信する。
【０１３８】
［ステップＳ２４］サーバブレード２００ａから受信した電力情報は、運用状態である状態４になったときのサーバブレード２００ａの消費電力を示すものである。起動制御部３１１は、現在の許容電力３６２としてＲＡＭ３０２に保持された値から、サーバブレード２００ａから受信した電力情報が示す消費電力の値を減算して、サーバブレード２００ａが運用状態に遷移したときの残りの許容電力を計算する。
【０１３９】
なお、現在の許容電力３６２の初期値は、電源モジュール４１０が供給可能な最大電力を示す最大許容電力３６１の値である。例えば、サーバブレード２００ａ以外のサーバブレード２００ｂ〜２００ｈが電源切断状態（状態１）である場合、現在の許容電力３６２の値は最大許容電力３６１と一致する。
【０１４０】
［ステップＳ２５］起動制御部３１１は、ステップＳ２４での減算結果が０以上である場合、サーバブレード２００ａに対する電源モジュール４１０からの電源供給が可能であると判定して、ステップＳ２７の処理を実行する。一方、起動制御部３１１は、ステップＳ２４での減算結果が０未満である場合、サーバブレード２００ａに対する電源モジュール４１０からの電源供給が不可能であると判定して、ステップＳ２６の処理を実行する。
【０１４１】
［ステップＳ２６］サーバブレード２００ａに対する電源モジュール４１０からの電源供給が不可能と判定した場合、起動制御部３１１は、更新許可フラグＦＬ０の値をオンに戻した後、起動制御を終了する。このとき、起動制御部３１１は、例えば、サーバブレード２００ａの起動／切断処理部２２１にエラーを通知してもよい。
【０１４２】
［ステップＳ２７］起動制御部３１１は、ステップＳ２４での減算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する。また、起動制御部３１１は、ステップＳ２３でサーバブレード２００ａから受信した電力情報を、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄に登録する。
【０１４３】
［ステップＳ２８］起動制御部３１１は、“Set MMC Notice”コマンドを用いて、ステップＳ２４での減算結果（すなわち、更新後の現在の許容電力３６２の値）と、ステップＳ２３でサーバブレード２００ａから受信した電力情報とを、待機系管理カードに対して通知する。
【０１４４】
“Set MMC Notice”コマンドを受信した待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した減算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する。これとともに、待機系処理部３２１は、受信した電力情報を、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄に登録する。
【０１４５】
［ステップＳ２９］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１に対して、運用状態への遷移を許可する運用許可通知を送信する。
運用許可通知を受信したサーバブレード２００ａの起動／切断処理部２２１は、電源回路２０９に対して、サーバブレード２００ａ全体に対して電源を投入するように要求する。これにより、サーバブレード２００ａは、運用状態である状態４に遷移する。その後、サーバブレード２００ａの起動／切断処理部２２１は、“Platform Event Message”コマンドを用いて、状態４に遷移したことを運用系管理カードに通知する。
【０１４６】
［ステップＳ３０］起動制御部３１１は、更新許可フラグＦＬ０の値をオンに戻す。
［ステップＳ３１］起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１から、運用状態である状態４を示す状態情報を受信すると、状態４を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ３２の処理を実行する。
【０１４７】
［ステップＳ３２］起動制御部３１１は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して状態４を示す状態情報を通知する。また、起動制御部３１１は、遠隔監視装置５２０に対しても、状態４を示す状態情報を通知する。
【０１４８】
状態４を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１４９】
［ステップＳ３３］起動制御部３１１は、“Get Device SDR”コマンドを用いて、サーバブレード２００ａの起動／切断処理部２２１に対してセンサ情報の送信を要求する。起動制御部３１１は、“Get Device SDR”コマンドのリクエストデータに“Record ID”を１つ設定する。“Get Device SDR”コマンドのリクエストデータを受信したサーバブレード２００ａの起動／切断処理部２２１は、リクエストデータの“Record ID”に設定されたＩＤに対応するレコードをセンサ情報テーブル２３２から選択し、選択したレコードから“Sensor Number”および“Sensor Type”を読み出す。起動／切断処理部２２１は、読み出した各情報を格納したレスポンスデータを、運用系管理カードに送信する。
【０１５０】
レスポンスデータを受信した起動制御部３１１は、ブレード管理テーブル３５０のレコード３５０ａ内のセンサ情報の欄に、受信したレスポンスデータから抽出した“Sensor Number”および“Sensor Type”の各値を対応付けて登録する。また、起動制御部３１１は、“Record ID”の値を変えながら“Get Device SDR”コマンドを順次発行することで、サーバブレードが備えるすべてのセンサについてのセンサ情報を取得し、ブレード管理テーブル３５０のレコード３５０ａに登録する。
【０１５１】
［ステップＳ３４］起動制御部３１１は、“Read FRU Data”コマンドを用いて、サーバブレード２００ａの起動／切断処理部２２１に対して製造情報の送信を要求し、起動／切断処理部２２１から製造情報を取得する。
【０１５２】
このステップＳ３４では、起動制御部３１１は、まず、“Read FRU Data”コマンドを用いて、サーバブレード２００ａにおけるＦＲＵ情報領域２３４の先頭から例えば８バイト分のデータを取得する。そして、起動制御部３１１は、取得した８バイトのデータから、ＦＲＵ情報領域２３４における製造情報テーブル２３３（Product Info Area）の先頭アドレスを抽出する。次に、起動制御部３１１は、“Read FRU Data”コマンドを用いて、製造情報テーブル２３３の先頭から例えば８０バイト分のデータを取得する。起動制御部３１１は、取得した８０バイトのデータから、“Manufacturer Name”“Product Part/Model Number”“Product Serial Number”などの製造情報を抽出する。
【０１５３】
起動制御部３１１は、ブレード管理テーブル３５０のレコード３５０ａ内の製造情報の欄に、受信したレスポンスデータから抽出した“Manufacturer Name”“Product Part/Model Number”“Product Serial Number”の各値を登録する。
【０１５４】
［ステップＳ３５］起動制御部３１１は、ステップＳ３３，Ｓ３４においてサーバブレード２００ａから受信したセンサ情報および製造情報を、“Platform Event Message”コマンドを用いて待機系管理カードに通知する。
【０１５５】
“Platform Event Message”コマンドを受信した待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、運用系管理カードから受信したセンサ情報および製造情報を、ブレード管理テーブル３５０のレコード３５０ａ内のセンサ情報および製造情報の各欄に登録する。
【０１５６】
［ステップＳ３６］起動制御部３１１は、“Platform Event Message”コマンドを用いて、待機系管理カードに対して、サーバブレード２００ａからの情報収集が完了したことを通知する。
【０１５７】
［ステップＳ３７］起動制御部３１１は、ブレード管理部３１０ａ内のブレード監視部３４１に対して、サーバブレード２００ａの動作監視処理を開始するように要求し、サーバブレード２００ａの起動制御を終了する。
【０１５８】
以上の図１０，図１１に示した起動時の処理によれば、サーバブレード２００ａにおける状態１から状態４への遷移が、ブレード管理部３１０ａの起動制御部３１１によって管理される。起動制御部３１１は、サーバブレード２００ａが起動する過程において、あらかじめ決められた手順に従って、サーバブレード２００ａからサーバブレード２００ａに関する情報を収集する。そして、起動制御部３１１は、収集した情報に問題がなければ、サーバブレード２００ａの状態を遷移させて、次の状態で規定された情報を収集する。
【０１５９】
起動制御部３１１は、収集した情報を基に、シャーシ１１０内で共有されている電源モジュール４１０からサーバブレード２００ａに対して、電源を供給しても問題がないかを判定する。そして、起動制御部３１１は、電源を供給しても問題がないと判定した場合にのみ、サーバブレード２００ａが完全に起動することを許可する。このような手順が実行されることで、サーバブレード２００ａの起動が完了した際の異常発生確率が低減され、ブレードサーバシステム１００の信頼性が向上する。
【０１６０】
また、上記の図１０，図１１の処理において、ブレード管理部３１０ａの起動制御部３１１は、サーバブレード２００ａが状態３に遷移した後、サーバブレード２００ａを状態４に遷移させてよいかを判定し、サーバブレード２００ａに対して状態４への遷移を許可するまでの間、更新許可フラグＦＬ０をオフにする。これにより、サーバブレード２００ａが状態３に遷移してから状態４への遷移を許可されるまでの間に、現在の許容電力３６２が他のブレード管理部３１０ｂ〜３１０ｈによって更新されないようになる。このため、サーバブレード２００ａが状態３から状態４に遷移する際に、他のサーバブレード２００ｂ〜２００ｈの少なくとも１つにおける起動処理または電源切断処理が並行して実行された場合でも、現在の許容電力３６２を正確に計算できる。従って、ブレードサーバシステム１００に挿入されたサーバブレードを電源モジュール４１０の許容電力を超えない範囲で動作させることができ、ブレードサーバシステム１００の信頼性を保つことができる。
【０１６１】
なお、図１１の処理において、ステップＳ２４での減算結果によって現在の許容電力３６２を更新し（ステップＳ２７）、減算結果および現在の許容電力３６２の各値を待機系管理カードに通知し（ステップＳ２８）、更新許可フラグＦＬ０をオンに戻す（ステップＳ３０）処理は、例えば、ステップＳ３１でサーバブレード２００ａから状態４に遷移したことの通知を受けた後に実行されてもよい。
【０１６２】
ところで、上記の図１０，図１１に示した処理は、サーバブレード２００ａの起動処理中に運用系管理カードが変更されなかった場合に、運用系管理カードのブレード管理部３１０ａの起動制御部３１１によって実行されるものである。しかしながら、後述するように、サーバブレード２００ａの起動処理中に運用系管理カードが別の管理カードに変更された場合には、新たに運用系となった管理カードのブレード管理部３１０ａの起動制御部３１１により、上記処理手順の途中から起動制御が引き継がれる。
【０１６３】
次に、図１２は、運用系管理カードの電源切断制御部による電源切断制御手順の例を示すフローチャートである。図１２に示す処理は、運用系管理カードのブレード管理部３１０ａの電源切断制御部３１２によって実行されるものである。
【０１６４】
なお、図１２の初期状態では、サーバブレード２００ａは、運用状態である状態４であり、運用系管理カードのブレード管理部３１０ａは、サーバブレード２００ａが状態４であることを認識した状態であるものとする。ブレード管理部３１０ａの電源切断制御部３１２は、起動制御部３１１がサーバブレード２００ａから状態４を示す状態情報を受信し、状態４を示す情報がブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録されたときに（図１１のステップＳ３１に対応）、サーバブレード２００ａが状態４に遷移したことを認識する。
【０１６５】
［ステップＳ４１］電源切断制御部３１２は、遠隔監視装置５２０からの、サーバブレード２００ａに対する電源切断要求を監視し、電源切断要求を受信した場合には、ステップＳ４２の処理を実行する。また、電源切断制御部３１２は、例えば、ステップＳ４１の監視処理の開始から計時を行い、一定時間内に電源切断要求を受信しなかった場合には、ステップＳ４４の処理を実行する。
【０１６６】
［ステップＳ４２］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１に対して電源切断を要求する。
サーバブレード２００ａの起動／切断処理部２２１は、電源切断制御部３１２からの電源切断要求を受けると、電源切断処理を開始して状態５に遷移し、“Platform Event Message”コマンドを用いて、状態５に遷移したことを運用系管理カードに通知する。
【０１６７】
［ステップＳ４３］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１から、電源切断処理を開始した状態である状態５を示す状態情報を受信すると、状態５を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ４５の処理を実行する。
【０１６８】
［ステップＳ４４］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１から状態５を示す状態情報を受信すると、状態５を示す状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録した後、ステップＳ４５の処理を実行する。また、電源切断制御部３１２は、例えば、ステップＳ４４の監視処理の開始から計時を行い、一定時間内に状態情報を受信しなかった場合には、ステップＳ４１の処理を実行する。
【０１６９】
なお、ステップＳ４４においてサーバブレード２００ａの起動／切断処理部２２１から状態５を示す状態情報を受信する場合とは、遠隔監視装置５２０からの電源切断要求によらずに、サーバブレード２００ａの電源切断処理が開始される場合である。このような例としては、サーバブレード２００ａが備える電源スイッチ２０８への操作入力によって、サーバブレード２００ａの電源切断が要求された場合が考えられる。サーバブレード２００ａの起動／切断処理部２２１は、状態４において電源スイッチ２０８に操作入力が行われると、電源切断処理を開始して状態５に遷移し、“Platform Even Message”コマンドを用いて、状態５に遷移したことを運用系管理カードに通知する。
【０１７０】
［ステップＳ４５］電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して状態５を示す状態情報を通知する。また、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態５を示す状態情報を通知する。
【０１７１】
状態５を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１７２】
［ステップＳ４６］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１に対して電源切断を許可するか否かを判定する。この処理では、電源切断制御部３１２は、状態４から状態５に遷移したことを、状態情報を基に認識することで、電源切断を許可する。電源切断制御部３１２は、電源切断を許可する場合にはステップＳ４７の処理を実行する。一方、電源切断制御部３１２は、電源切断を許可しないと判定した場合には、例えばサーバブレード２００ａの起動／切断処理部２２１にエラーを通知した後、電源切断制御を終了する。
【０１７３】
［ステップＳ４７］電源切断制御部３１２は、現在の許容電力３６２の更新が可能か否かを示す更新許可フラグＦＬ０の値を参照する。電源切断制御部３１２は、更新許可フラグＦＬ０がオンであれば、ステップＳ４８の処理を実行する。一方、電源切断制御部３１２は、更新許可フラグＦＬ０がオフである場合には、処理を一時的に停止し、更新許可フラグＦＬ０がオンになった後、ステップＳ４８の処理を実行する。
【０１７４】
［ステップＳ４８］電源切断制御部３１２は、更新許可フラグＦＬ０の値をオフにして、他のブレード管理部３１０ｂ〜３１０ｈが現在の許容電力３６２を更新できない状態にする。
【０１７５】
［ステップＳ４９］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１に対して電源切断許可通知を送信する。
サーバブレード２００ａの起動／切断処理部２２１は、電源切断制御部３１２からの電源切断許可通知を受けると、電源切断処理中である状態６に遷移し、“Platform Event Message”コマンドを用いて、状態６に遷移したことを運用系管理カードに通知する。その後、起動／切断処理部２２１は、電源回路２０９を制御して、ＩＰＭＣ２０６以外のサーバブレード２００ａ内への電源供給を停止させる。ＩＰＭＣ２０６以外のサーバブレード２００ａ内への電源供給が停止されると、起動／切断処理部２２１は、状態１に遷移し、“Platform Event Message”コマンドを用いて、状態１に遷移したことを運用系管理カードに通知する。
【０１７６】
［ステップＳ５０］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視し、電源切断処理中である状態６を示す状態情報を受信すると、ステップＳ５１の処理を実行する。
【０１７７】
［ステップＳ５１］電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して状態６を示す状態情報を通知する。また、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態６を示す状態情報を通知する。
【０１７８】
状態６を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１７９】
［ステップＳ５２］電源切断制御部３１２は、現在の許容電力３６２の再計算を行う。具体的には、電源切断制御部３１２は、ブレード管理テーブル３５０のレコード３５０ａから、電力情報の欄に登録された、サーバブレード２００ａの消費電力の値を読み出す。電源切断制御部３１２は、読み出した消費電力の値を、ＲＡＭ３０２に保持された現在の許容電力３６２の値に加算する。
【０１８０】
［ステップＳ５３］電源切断制御部３１２は、ステップＳ５２での加算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する。また、電源切断制御部３１２は、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄から、サーバブレード２００ａの消費電力の値を削除する。
【０１８１】
［ステップＳ５４］電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して、ステップＳ５２での加算結果（すなわち、更新後の現在の許容電力３６２の値）を通知する。
【０１８２】
“Set MMC Notice”コマンドを受信した待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した加算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する。これとともに、待機系処理部３２１は、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄に登録された値を削除する。
【０１８３】
［ステップＳ５５］電源切断制御部３１２は、更新許可フラグＦＬ０をオンに戻す。
［ステップＳ５６］電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１からの状態情報を監視する。電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１から、電源オフ状態である状態１を示す状態情報を受信すると、ステップＳ５７の処理を実行する。
【０１８４】
［ステップＳ５７］電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、待機系管理カードに対して状態１を示す状態情報を通知する。また、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態１を示す状態情報を通知する。以上で、サーバブレード２００ａに対する電源切断制御が終了する。
【０１８５】
状態１を示す状態情報の通知を受けた待機系管理カードにおいて、ブレード管理部３１０ａの待機系処理部３２１は、受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０１８６】
以上の図１２に示した電源切断時の処理によれば、サーバブレード２００ａにおける状態４から状態１への遷移が、ブレード管理部３１０ａの電源切断制御部３１２によって管理される。電源切断制御部３１２は、あらかじめ決められた手順に従って、サーバブレード２００ａを状態４から状態１へ遷移させる。これにより、サーバブレード２００ａでの電源切断処理時における異常発生確率が低減され、ブレードサーバシステムの信頼性が向上する。
【０１８７】
また、サーバブレード２００ａが状態４から状態１に遷移する過程で、サーバブレード２００ａの消費電力の値が、ＲＡＭ３０２に保持された現在の許容電力３６２に加算される。これにより、サーバブレード２００ａが消費していた電力分が、ブレードサーバシステム１００全体の許容電力に戻され、例えば、新たに起動するサーバブレードに対して電源モジュール４１０からの電力を供給できるようになる。
【０１８８】
また、上記の図１２の処理において、ブレード管理部３１０ａの電源切断制御部３１２は、サーバブレード２００ａに状態６への遷移を許可してから、現在の許容電力３６２を更新し、更新された現在の許容電力３６２を待機系管理カードに通知するまでの間、更新許可フラグＦＬ０をオフにする。これにより、サーバブレード２００ａに状態６への遷移を許可してから、現在の許容電力３６２を更新し、更新された現在の許容電力３６２を待機系管理カードに通知するまでの間に、現在の許容電力３６２が他のブレード管理部３１０ｂ〜３１０ｈによって更新されないようになる。このため、サーバブレード２００ａが状態６から状態７または状態１に遷移する際に、他のサーバブレード２００ｂ〜２００ｈの少なくとも１つにおける起動処理または電源切断処理が並行して実行された場合でも、現在の許容電力３６２を正確に計算できる。従って、ブレードサーバシステム１００に挿入されたサーバブレードを電源モジュール４１０の許容電力を超えない範囲で動作させることができ、ブレードサーバシステム１００の信頼性を保つことができる。
【０１８９】
なお、図１２の処理において、現在の許容電力３６２を更新し（ステップＳ５３）、更新された現在の許容電力３６２を待機系管理カードに通知し（ステップＳ５４）、更新許可フラグＦＬ０をオンに戻す（ステップＳ５５）処理は、例えば、ステップＳ５７でサーバブレード２００ａが状態１に遷移したことの通知を受けた後に実行されてもよい。
【０１９０】
ところで、以上の図１２に示した処理は、サーバブレード２００ａの電源切断処理中に運用系管理カードが変更されなかった場合に、運用系管理カードのブレード管理部３１０ａの電源切断制御部３１２によって実行されるものである。しかしながら、後述するように、サーバブレード２００ａの電源切断処理中に運用系管理カードが別の管理カードに変更された場合には、新たに運用系となった管理カードのブレード管理部３１０ａの電源切断制御部３１２により、上記処理手順の途中から電源切断制御が引き継がれる。
【０１９１】
次に、１つの運用系管理カードによってサーバブレードの起動処理および電源切断処理が正常に実行された場合のシステム内の各装置の処理例について、シーケンス図を用いて説明する。
【０１９２】
まず、図１３，図１４は、サーバブレードが起動する際の各装置の処理例を示すシーケンス図である。
なお、図１３，図１４では、例として、サーバブレード２００ａが起動する際の処理について説明する。このため、図１３，図１４で説明する管理カード３００ａの起動制御部３１１の処理は、管理カード３００ａのブレード管理部３１０ａ内の起動制御部３１１によって実行されるものである。また、図１３，図１４で説明する管理カード３００ｂの待機系処理部３２１の処理は、管理カード３００ｂのブレード管理部３１０ａ内の待機系処理部３２１によって実行されるものである。サーバブレード２００ａ以外のサーバブレードが起動する際には、管理カード３００ａ，３００ｂでは、起動するサーバブレードに対応するブレード管理部によって、図１３，図１４の管理カード３００ａ，３００ｂと同様の処理が行われる。
【０１９３】
図１３の初期状態では、管理カード３００ａが運用系であり、管理カード３００ｂが待機系であるものとする。また、サーバブレード２００ａは状態１であり、管理カード３００ａ，３００ｂの両方とも、サーバブレード２００ａが状態１であることを認識した状態であるものとする（ステップＳ１０１）。
【０１９４】
上記の状態から、例えば、遠隔監視装置５２０から運用系の管理カード３００ａに対して、サーバブレード２００ａの電源を投入する要求が発行される（ステップＳ１０２）。管理カード３００ａの起動制御部３１１は、遠隔監視装置５２０からの要求に応じて、サーバブレード２００ａの起動／切断処理部２２１に対して電源投入を要求する（ステップＳ１０３）。
【０１９５】
サーバブレード２００ａの起動／切断処理部２２１は、起動処理を開始した状態である状態２に遷移し（ステップＳ１０４）、“Platform Event Message”コマンドを用いて、管理カード３００ａに対して、状態２を示す状態情報を通知する（ステップＳ１０５）。管理カード３００ａのブレード管理部３１０ａの起動制御部３１１は、サーバブレード２００ａが状態２に遷移したことを認識し（ステップＳ１０６）、状態２を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。起動制御部３１１は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態２を示す状態情報を通知する（ステップＳ１０７）。このとき、起動制御部３１１は、遠隔監視装置５２０に対しても、状態２を示す状態情報を通知する（ステップＳ１０８）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１０９）。
【０１９６】
なお、例えば、サーバブレード２００ａが備える電源スイッチ２０８への操作入力によって、サーバブレード２００ａの電源投入が要求された場合には、遠隔監視装置５２０は電源投入要求を発しないので、ステップＳ１０２，Ｓ１０３が実行されずに、ステップＳ１０４の処理が実行される。
【０１９７】
状態２への遷移を認識した管理カード３００ａの起動制御部３１１は、“Get Device ID”コマンドを用いて、サーバブレード２００ａに対して種別情報の送信を要求する（ステップＳ１１０）。サーバブレード２００ａの起動／切断処理部２２１は、種別情報として“Completion Code”に“００ｈ”を設定したレスポンスデータを、管理カード３００ａに返信する（ステップＳ１１１）。
【０１９８】
管理カード３００ａの起動制御部３１１は、通知された種別情報に基づいて、サーバブレード２００ａが、自ブレードが動作状態の監視および起動／電源切断の制御をサポートするサーバブレードであるか否かを判定する（ステップＳ１１２）。この判定処理では、起動制御部３１１は、“Completion Code”の値が“００ｈ”である場合に、制御をサポートするサーバブレードであると判定する。サーバブレード２００ａがサポート対象であると判定した場合、管理カード３００ａの起動制御部３１１は、サーバブレード２００ａに対して起動許可通知を送信する（ステップＳ１１３）。
【０１９９】
サーバブレード２００ａの起動／切断処理部２２１は、起動許可通知を受信すると、起動処理中である状態３に遷移し（ステップＳ１１４）、“Platform Event Message”コマンドを用いて、管理カード３００ａに対して状態３を示す状態情報を通知する（ステップＳ１１５）。管理カード３００ａの起動制御部３１１は、サーバブレード２００ａが状態３に遷移したことを認識し（ステップＳ１１６）、状態３を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。起動制御部３１１は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態３を示す状態情報を通知する（ステップＳ１１７）。このとき、起動制御部３１１は、遠隔監視装置５２０に対しても、状態３を示す状態情報を通知する（ステップＳ１１８）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１１９）。
【０２００】
また、状態３への遷移を認識した管理カード３００ａの起動制御部３１１は、更新許可フラグＦＬ０をオフにした後、サーバブレード２００ａの起動／切断処理部２２１に対して、“Get Power Level”コマンドを用いて電力情報の送信を要求する（ステップＳ１２０）。サーバブレード２００ａの起動／切断処理部２２１は、ＮＶＲＡＭ２０７から電力情報２３１を読み出して、管理カード３００ａに通知する（ステップＳ１２１）。
【０２０１】
管理カード３００ａの起動制御部３１１は、現在の許容電力３６２としてＲＡＭ３０２に保持された値から、サーバブレード２００ａから受信した電力情報が示す消費電力の値を減算し、その減算結果を基にサーバブレード２００ａへの電力供給が可能であるか否かを判定する（ステップＳ１２２）。起動制御部３１１は、減算結果が０以上である場合に、サーバブレード２００ａへの電源供給が可能と判定する。このとき、起動制御部３１１は、減算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２に値を更新する。さらに、起動制御部３１１は、“Set MMC Notice”コマンドを用いて、減算結果を管理カード３００ｂに通知した後（ステップＳ１２３）、サーバブレード２００ａの起動／切断処理部２２１に対して運用許可通知を送信する（ステップＳ１２４）。また、起動制御部３１１は、更新フラグＦＬ０をオンに戻す。
【０２０２】
サーバブレード２００ａの起動／切断処理部２２１は、運用許可通知を受信すると、電源回路２０９に、サーバブレード２００ａの全体に対する電源供給を開始させる（ステップＳ１２５）。装置全体への電源供給が完了すると、起動／切断処理部２２１は、サーバブレード２００ａの全体に対する電源投入が完了した運用状態である状態４に遷移する（ステップＳ１２６）。起動／切断処理部２２１は、“Platform Event Message”コマンドを用いて、状態４を示す状態情報を管理カード３００ａに通知する（ステップＳ１２７）。
【０２０３】
管理カード３００ａの起動制御部３１１は、サーバブレード２００ａが状態４に遷移したことを認識し（ステップＳ１２８）、状態４を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。起動制御部３１１は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態４を示す状態情報を通知する（ステップＳ１２９）。このとき、起動制御部３１１は、遠隔監視装置５２０に対しても、状態４を示す状態情報を通知する（ステップＳ１３０）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１３１）。
【０２０４】
また、状態４の遷移を認識した管理カード３００ａの起動制御部３１１は、“Get Device SDR”コマンドを用いて、サーバブレード２００ａに対してセンサ情報の送信を要求する（ステップＳ１３２）。サーバブレード２００ａの起動／切断処理部２２１は、“Get Device SDR”コマンドのリクエストデータ内の“Record ID”に設定されたＩＤに対応するレコードをセンサ情報テーブル２３２から選択する。起動／切断処理部２１１は、選択したセンサ情報テーブル２３２から“Sensor Number”および“Sensor Type”を読み出し、読み出した情報を“Requested bytes”に格納したレスポンスデータを、管理カード３００ａに送信する（ステップＳ１３３）。
【０２０５】
レスポンスデータを受信した管理カード３００ａの起動制御部３１１は、ブレード管理テーブル３５０のレコード３５０ａ内のセンサ情報の欄に、受信したレスポンスデータから抽出した“Sensor Number”および“Sensor Type”の各値を対応付けて登録する。また、起動制御部３１１は、“Record ID”の値を変えながら“Get Device SDR”コマンドを順次発行することで、サーバブレードが備えるすべてのセンサについてのセンサ情報を取得し、ブレード管理テーブル３５０のレコード３５０ａに登録する。
【０２０６】
管理カード３００ａの起動制御部３１１は、さらに、“Read FRU Data”コマンドを用いて、サーバブレード２００ａに対して製造情報の送信を要求する（ステップＳ１３４）。製造情報の送信が要求される際には、起動制御部３１１は、まず、“Read FRU Data”コマンドを用いて、サーバブレード２００ａにおけるＦＲＵ情報領域２３４の先頭から８バイト分のデータを取得する。そして、起動制御部３１１は、取得した８バイトのデータから、ＦＲＵ情報領域２３４における製造情報テーブル２３３（Product Info Area）の先頭アドレスを取得する。次に、起動制御部３１１は、“Read FRU Data”コマンドを用いて、製造情報テーブル２３３の先頭から例えば８０バイト分のデータを取得する。このときに取得した８０バイトのデータに、“Manufacturer Name”“Product Part/Model Number”“Product Serial Number”などの製造情報が含まれる（ステップＳ１３５）。
【０２０７】
起動制御部３１１は、ブレード管理テーブル３５０のレコード３５０ａ内の製造情報の欄に、受信したレスポンスデータから抽出した“Manufacturer Name”“Product Part/Model Number”“Product Serial Number”の各値を登録する。
【０２０８】
管理カード３００ａの起動制御部３１１は、サーバブレード２００ａから受信したセンサ情報２２３および製造情報２２４を、“Platform Event Message”コマンドを用いて管理カード３００ｂに通知する（ステップＳ１３６，Ｓ１３７）。管理カード３００ｂの待機系処理部３２１は、受信したセンサ情報および製造情報を、ブレード管理テーブル３５０のレコード３５０ａ内のセンサ情報および製造情報の各欄に登録する。管理カード３００ａの起動制御部３１１は、“Platform Event Message”コマンドを用いて、管理カード３００ｂに対して情報収集が完了したことを通知して起動制御を完了し（ステップＳ１３８）、ブレード管理部３１０ａ内のブレード監視部３４１の処理を開始させる。
【０２０９】
ブレード監視部３４１は、“Get Sensor Reading”コマンドを用いて、センサの検出値の送信をサーバブレード２００ａに定期的に要求する（ステップＳ１３９）。サーバブレード２００ａのセンサ検出値送信部２２２は、管理カード３００ａからの要求に応じて、温度センサ２１０および電圧センサ２１１の各検出値を、管理カード３００ａのブレード監視部３４１に通知する（ステップＳ１４０）。
【０２１０】
以上の図１３，図１４に示した起動時の処理によれば、サーバブレード２００ａにおける状態１から状態４への遷移が、管理カード３００ａの起動制御部３１１によって管理される。起動制御部３１１は、サーバブレード２００ａが起動する過程において、あらかじめ決められた手順に従って、サーバブレード２００ａからサーバブレード２００ａに関する情報を収集する。そして、起動制御部３１１は、収集した情報に問題がなければ、サーバブレード２００ａの状態を遷移させて、次の状態で規定された情報を収集する。
【０２１１】
起動制御部３１１は、収集した情報を基に、シャーシ１１０内で共有されている電源モジュール４１０からサーバブレード２００ａに対して、電源を供給しても問題がないかを判定する。そして、起動制御部３１１は、電源を供給しても問題がないと判定した場合にのみ、サーバブレード２００ａが完全に起動することを許可する。このような手順が実行されることで、サーバブレード２００ａの起動が完了した際の異常発生確率が低減され、ブレードサーバシステム１００の信頼性が向上する。
【０２１２】
次に、図１５，図１６は、サーバブレードの電源が切断される際の各装置の処理例を示すシーケンス図である。
なお、図１５，図１６では、例として、サーバブレード２００ａの電源が切断される際の処理について説明する。このため、図１５，図１６で説明する管理カード３００ａの電源切断制御部３１２の処理は、管理カード３００ａのブレード管理部３１０ａ内の電源切断制御部３１２によって実行されるものである。また、図１５，図１６で説明する管理カード３００ｂの待機系処理部３２１の処理は、管理カード３００ｂのブレード管理部３１０ａ内の待機系処理部３２１によって実行されるものである。サーバブレード２００ａ以外のサーバブレードの電源が切断される際には、管理カード３００ａ，３００ｂでは、電源が切断されるサーバブレードに対応するブレード管理部によって、図１５，図１６の管理カード３００ａ，３００ｂと同様の処理が行われる。
【０２１３】
図１５の初期状態では、管理カード３００ａが運用系であり、管理カード３００ｂが待機系であるものとする。また、サーバブレード２００ａは状態４であり、管理カード３００ａ，３００ｂの両方とも、サーバブレード２００ａが状態４であることを認識した状態であるものとする（ステップＳ１５１）。
【０２１４】
上記の状態から、例えば、遠隔監視装置５２０から運用系の管理カード３００ａに対して、サーバブレード２００ａの電源を切断する要求が発行される（ステップＳ１５２）。管理カード３００ａの電源切断制御部３１２は、遠隔監視装置５２０からの要求に応じて、サーバブレード２００ａの起動／切断処理部２２１に対して電源切断を要求する（ステップＳ１５３）。
【０２１５】
サーバブレード２００ａの起動／切断処理部２２１は、電源切断処理を開始した状態である状態５に遷移し（ステップＳ１５４）、“Platform Event Message”コマンドを用いて、管理カード３００ａに対して状態５を示す状態情報を通知する（ステップＳ１５５）。管理カード３００ａの電源切断制御部３１２は、サーバブレード２００ａが状態５に遷移したことを認識し（ステップＳ１５６）、状態５を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態５を示す状態情報を通知する（ステップＳ１５７）。このとき、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態５を示す状態情報を通知する（ステップＳ１５８）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１５９）。
【０２１６】
なお、例えば、サーバブレード２００ａが備える電源スイッチ２０８への操作入力によって、サーバブレード２００ａの電源切断が要求された場合には、遠隔監視装置５２０は電源切断要求を発しないので、ステップＳ１５２，Ｓ１５３が実行されずに、ステップＳ１５４の処理が実行される。
【０２１７】
状態５への遷移を認識した管理カード３００ａの電源切断制御部３１２は、サーバブレード２００ａの電源切断を許可するか否かを判定する（ステップＳ１６０）。電源切断を許可すると判定した場合、電源切断制御部３１２は、サーバブレード２００ａの起動／切断処理部２２１に対して、電源切断許可通知を送信する（ステップＳ１６１）。このとき、電源切断制御部３１２は、更新付加フラグＦＬ０をオフにする。
【０２１８】
サーバブレード２００ａの起動／切断処理部２２１は、電源切断処理中である状態６に遷移し（ステップＳ１６２）、“Platform Event Message”コマンドを用いて、管理カード３００ａに対して、状態６を示す状態情報を通知する（ステップＳ１６３）。管理カード３００ａの電源切断制御部３１２は、サーバブレード２００ａが状態６に遷移したことを認識し（ステップＳ１６４）、状態６を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。
【０２１９】
電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態６を示す状態情報を通知する（ステップＳ１６５）。このとき、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態６を示す状態情報を通知する（ステップＳ１６６）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１６７）。
【０２２０】
また、状態６への遷移を認識した管理カード３００ａの電源切断制御部３１２は、現在の許容電力３６２の再計算を行う（ステップＳ１６８）。電源切断制御部３１２は、ブレード管理テーブル３５０のレコード３５０ａから、電力情報の欄に登録された、サーバブレード２００ａの消費電力の値を読み出す。電源切断制御部３１２は、読み出した消費電力の値を、ＲＡＭ３０２に保持された現在の許容電力３６２の値に加算し、その加算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する。また、電源切断制御部３１２は、ブレード管理テーブル３５０のレコード３５０ａ内の電力情報の欄から、サーバブレード２００ａの消費電力の値を削除する。
【０２２１】
電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、加算結果（すなわち更新後の現在の許容電力３６２の値）を通知する（ステップＳ１６９）。
【０２２２】
一方、サーバブレード２００ａの起動／切断処理部２２１は、状態６に遷移すると、ＩＰＭＣ２０６を除くサーバブレード２００ａ内の各部への電源供給を停止するように、電源回路２０９に要求する（ステップＳ１７０）。起動／切断処理部２２１は、ＩＰＭＣ２０６を除くサーバブレード２００ａ内の各部への電源供給が停止されると、電源オフ状態である状態１に遷移し（ステップＳ１７１）、“Platform Event Message”コマンドを用いて、状態１を示す状態情報を管理カード３００ａに通知する（ステップＳ１７２）。
【０２２３】
管理カード３００ａの電源切断制御部３１２は、サーバブレード２００ａが状態１に遷移したことを認識し（ステップＳ１７３）、状態１を示す状態情報をブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する。電源切断制御部３１２は、“Set MMC Notice”コマンドを用いて、管理カード３００ｂに対して、状態１を示す状態情報を通知する（ステップＳ１７４）。このとき、電源切断制御部３１２は、遠隔監視装置５２０に対しても、状態１を示す状態情報を通知する（ステップＳ１７５）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａからの状態情報を受信し、ブレード管理テーブル３５０のレコード３５０ａ内の状態情報の欄に登録する（ステップＳ１７６）。
【０２２４】
以上の図１５，図１６に示した電源切断時の処理によれば、サーバブレード２００ａにおける状態４から状態１への遷移が、管理カード３００ａの電源切断制御部３１２によって管理される。電源切断制御部３１２は、あらかじめ決められた手順に従って、サーバブレード２００ａを状態４から状態１へ遷移させる。これにより、サーバブレード２００ａでの電源切断処理時における異常発生確率が低減され、ブレードサーバシステムの信頼性が向上する。
【０２２５】
また、サーバブレード２００ａが状態４から状態１に遷移する過程で、サーバブレード２００ａの消費電力の値が、ＲＡＭ３０２に保持された現在の許容電力３６２に加算される。これにより、サーバブレード２００ａが消費していた電力分が、ブレードサーバシステム１００全体の許容電力に戻され、例えば、新たに起動するサーバブレードに対して電源モジュール４１０からの電力を供給できるようになる。
【０２２６】
次に、運用系の管理カードが他の管理カードに変更された場合に、新たに運用系となった管理カードがサーバブレードの制御処理を引き継ぐ際の処理について説明する。サーバブレードのそれぞれにおける起動処理および電源切断処理は、運用系管理カードの制御の下であらかじめ決められた順序に従って実行される必要がある。このように決められた順序に従って起動処理や電源切断処理が実行されることで、ブレードサーバシステムの信頼性が維持される。
【０２２７】
そして、各サーバブレードは、起動処理や電源切断処理の途中で運用系管理カードが他方の管理カードに変更された場合でも、処理の順序を守ったまま起動処理や電源切断処理を実行する必要がある。起動処理や電源切断処理の途中で運用系管理カードが他方の管理カードに変更されたとき、起動処理や電源切断処理の順序が変わってしまうと、サーバブレードの起動処理や電源切断処理は正しく実行されなくなり、処理が停止する。
【０２２８】
例えば、サーバブレードの起動処理中に運用系の管理カードが変更になったとき、新たに運用系となった管理カードがサーバブレードの起動処理を最初から実行させるように制御した場合には、起動処理の順番が守られないため、起動処理を正常に完了できない。また、遠隔監視装置５２０は、運用系管理カードからサーバブレードの状態情報の通知を随時受けていることから、サーバブレードの状態が決められた順に遷移するかを監視することができる。このような遠隔監視装置５２０による状態遷移の監視下で、新たに運用系となった管理カードがサーバブレードの起動処理を最初から実行させるように制御した場合には、遠隔監視装置５２０は、サーバブレードにおける状態遷移の順序が守られていないことを検知して、サーバブレードにおいて故障が発生したと判断してしまうこともある。
【０２２９】
一方、上記の図１２〜図１６の処理例では、運用系管理カードは、サーバブレードから通知された状態情報を、待機系管理カードにも随時通知する。これによって、運用系管理カードだけでなく、待機系管理カードも、サーバブレードの状態を認識することができる。
【０２３０】
待機系管理カードにおける状態情報の利用方法としては、例えば、運用系管理カードから通知された最新の状態情報を、待機系管理カードが待機系から運用系に遷移したときに利用することが考えられる。例えば、サーバブレードの起動処理中に運用系管理カードが故障した場合に、運用系に遷移した別の管理カードが、自装置が認識するサーバブレードの状態を起点として、サーバブレードの起動処理を続行する、という処理が考えられる。
【０２３１】
しかしながら、運用系管理カードから待機系管理カードに対して状態情報を随時転送するだけでは、新たに運用系となった管理カードによってサーバブレードの制御を正しく引き継ぐことができない場合があるという問題があった。この問題は、運用系管理カードでの故障発生タイミングによっては、サーバブレードが実際に遷移した状態と、待機系管理カードが認識するサーバブレードの状態とが、必ずしも一致しないことに起因する。
【０２３２】
ここで、図１７は、サーバブレードの状態と、待機系管理カードが認識する状態とが一致しない場合の参考処理例を示すシーケンス図である。なお、図１７では、図１３と同様に、例としてサーバブレード２００ａが起動する際の処理について示す。また、図１７では、図１３と同じ処理ステップには同じ符号を付して示す。
【０２３３】
前述のように、運用系管理カードの起動制御部３１１は、サーバブレード２００ａから状態情報の通知を受けると、その状態情報を待機系管理カードに通知する。例えば、図１７において、管理カード３００ａの起動制御部３１１は、ステップＳ１０５において、起動処理を開始した状態である状態２を示す状態情報をサーバブレード２００ａから受信し、ステップＳ１０７において、状態２を示す状態情報を管理カード３００ｂに通知する。これにより、運用系の管理カード３００ａだけでなく、待機系の管理カード３００ｂも、サーバブレード２００ａが状態２に遷移したことを認識する。
【０２３４】
ところが、サーバブレード２００ａの状態が遷移してから、遷移した状態を示す状態情報が運用系管理カードから待機系管理カードに通知されるまでの期間では、サーバブレード２００ａが実際に遷移した状態と、待機系管理カードが認識するサーバブレード２００ａの状態とが一致しない。このため、この期間に運用系管理カードが他方の管理カードに変更されると、新たな運用系管理カードは、サーバブレード２００ａに実行させるべき処理を正しく判別できなくなる。
【０２３５】
例えば、図１７において、サーバブレード２００ａは、起動処理中である状態３に遷移すると（ステップＳ１１４）、状態３を示す状態情報を運用系の管理カード３００ａに通知する（ステップＳ１１５）。ここで、サーバブレード２００ａから管理カード３００ａに対して状態情報を通知した直後に、管理カード３００ａに異常が発生し、管理カード３００ａがリセットされたものとすると（ステップＳ１９１）、管理カード３００ｂは、管理カード３００ａでのリセット発生を検出し、運用系に遷移する（ステップＳ１９２）。このとき、管理カード３００ｂが保持するブレード管理テーブル３５０のレコード３５０ａにおいては、状態情報の欄に、ステップＳ１０７で管理カード３００ａから通知された状態２を示す情報が登録されている。すなわち、管理カード３００ｂは、サーバブレード２００ａが状態３に遷移したことを認識していないので、このままでは、状態３において決められた制御を実行することはできない。従って、サーバブレード２００ａでは、いずれの管理カードからも状態遷移の指示が来ないため、状態３に遷移した状態で処理が停止してしまい、起動処理が完了されない。
【０２３６】
また、サーバブレードの電源切断処理においても、同様の原因で、運用系管理カードが変更されるタイミングによっては、電源切断処理の制御が継続されず、電源切断処理が途中で停止してしまう場合がある。
【０２３７】
これに対して、本実施の形態では、サーバブレードの起動処理中に運用系管理カードが変更された場合には、変更後の運用系管理カードの起動制御部３１１は、起動時移行制御部３３１の制御の下で、起動処理の制御を引き継ぐ。変更後の運用系管理カードの起動時移行制御部３３１は、必要に応じて、サーバブレードに対して状態情報の通知を要求し、サーバブレードの現在の状態を認識する。これによって、サーバブレードの起動制御を、変更後の運用系管理カードがより確実に引き継ぎ、サーバブレードでの起動処理を続行させることができるようにする。
【０２３８】
また、起動時移行制御部３３１は、状態情報の通知を要求するか否かを、起動フラグＦＬ１の値に応じて判断する。起動フラグＦＬ１が用いられることで、起動制御の引き継ぎ処理が効率化される。
【０２３９】
一方、サーバブレードの電源切断処理中に運用系管理カードが変更された場合には、変更後の運用系管理カードの電源切断制御部３１２は、切断時移行制御部３３２の制御の下で、電源切断処理の制御を引き継ぐ。変更後の運用系管理カードの切断時移行制御部３３２は、必要に応じて、サーバブレードに対して状態情報の通知を要求し、サーバブレードの現在の状態を認識する。これによって、サーバブレードの電源切断制御を、変更後の運用系管理カードがより確実に引き継ぎ、サーバブレードでの電源切断処理を続行させることができるようにする。
【０２４０】
また、切断時移行制御部３３２は、状態情報の通知を要求するか否かを、切断フラグＦＬ２の値に応じて判断する。切断フラグＦＬ２が用いられることで、電源切断制御の引き継ぎ処理が効率化される。
【０２４１】
起動フラグＦＬ１および切断フラグＦＬ２の値は、管理カードが待機系である状態において、フラグ設定部３２２によって設定される。ここで、待機系管理カードにおける各ブレード管理部のフラグ設定部３２２の処理について説明する。次の図１８では例として、待機系管理カードのブレード管理部３１０ａに設けられたフラグ設定部３２２によって、サーバブレード２００ａの状態に応じたフラグの値が設定される場合の処理について説明する。サーバブレード２００ａ以外のサーバブレードの状態に応じてフラグの値が設定される場合には、サーバブレードに対応するブレード管理部に設けられたフラグ設定部３２２によって、以下の処理が実行される。
【０２４２】
図１８は、待機系として動作する管理カードのフラグ設定部の処理手順の例を示すフローチャートである。この図１８に示すステップＳ２０１〜Ｓ２０８の処理は、フラグ設定部３２２を備える管理カードが待機系である間、例えば一定時間ごとに繰り返される。
【０２４３】
［ステップＳ２０１］フラグ設定部３２２は、ブレード管理テーブル３５０のレコード３５０ａから、サーバブレード２００ａの状態を示す状態情報を取得する。なお、フラグ設定部３２２は、例えば、レコード３５０ａ内の状態情報が更新されるたびに、更新された状態情報を取得する。
【０２４４】
［ステップＳ２０２〜Ｓ２０４］フラグ設定部３２２は、取得した状態情報が示すサーバブレード２００ａの状態を判定する。フラグ設定部３２２は、取得した状態情報が状態１，状態２，状態３のいずれかを示す場合、ステップＳ２０５の処理を実行し、取得した状態情報が状態１〜状態３ではない場合、すなわち、サーバブレード２００ａの全体に対する電源投入が完了した運用状態である状態４，電源切断処理を開始した状態５，電源切断処理中である状態６のいずれかを示す場合、ステップＳ２０７の処理を実行する。
【０２４５】
［ステップＳ２０５］フラグ設定部３２２は、起動フラグＦＬ１をオンにする。
［ステップＳ２０６］フラグ設定部３２２は、切断フラグＦＬ２をオフにする。この後、ステップＳ２０１の処理に戻る。
【０２４６】
［ステップＳ２０７］フラグ設定部３２２は、起動フラグＦＬ１をオフにする。
［ステップＳ２０８］フラグ設定部３２２は、切断フラグＦＬ２をオンにする。この後、ステップＳ２０１の処理に戻る。
【０２４７】
以上の処理によれば、ブレード管理部３１０ａが参照する起動フラグＦＬ１は、サーバブレード２００ａで起動処理が開始された後、運用系管理カードから状態２および状態３を示す状態情報が通知されたとき、オンのままとなり、状態４を示す状態情報が運用系管理カードから通知されたとき、オフになる。すなわち、ブレード管理部３１０ａが参照する起動フラグＦＬ１は、サーバブレード２００ａで起動処理が開始された後に、サーバブレード２００ａの起動処理が終了したことの通知を運用系管理カードから受けたか否かを示す情報となる。
【０２４８】
また、ブレード管理部３１０ａが参照する切断フラグＦＬ２は、サーバブレード２００ａで電源切断処理が開始された後、運用系管理カードから状態５および状態６を示す状態情報が通知されたとき、すでにオンになっていればオンのままとなり、電源オフ状態である状態１を示す状態情報が通知されたとき、オフになる。すなわち、ブレード管理部３１０ａが参照する切断フラグＦＬ２は、サーバブレード２００ａで電源切断処理が開始された後に、電源切断処理が終了したことの通知を運用系管理カードから受けたか否かを示す情報となる。
【０２４９】
次に、図１９は、起動制御部を制御する起動時移行制御部の処理手順の例を示すフローチャートである。この図１９では、例として、ブレード管理部３１０ａ内の起動時移行制御部３３１の処理について説明するものとするが、サーバブレード２００ａ以外のサーバブレードの起動処理中では、起動処理中のサーバブレードに対応するブレード管理部内の起動時移行制御部３３１によって同様の処理が行われる。なお、図１９の処理の初期状態では、図１９の処理を実行する起動時移行制御部３３１が設けられた管理カードは、待機系の状態である。
【０２５０】
［ステップＳ２２１］起動時移行制御部３３１は、リセット検出部３４０による検出信号を監視し、運用系である他方の管理カードがリセットされたか否かを判定する。起動時移行制御部３３１は、リセット検出部３４０によってリセットが検出された場合に、ステップＳ２２２の処理を実行する。このとき、リセットを検出した管理カードは運用系に遷移する。
【０２５１】
［ステップＳ２２２］起動時移行制御部３３１は、起動フラグＦＬ１を参照し、起動フラグＦＬ１がオンである場合には、ステップＳ２２４の処理を実行する。また、起動時移行制御部３３１は、起動フラグＦＬ１がオフである場合、すなわち、サーバブレード２００ａが状態４に遷移したことの通知をすでに受けていた場合には、ステップＳ２２３の処理を実行する。
【０２５２】
［ステップＳ２２３］起動時移行制御部３３１は、起動制御部３１１に対して、図１１に示したステップＳ３３から、図１１に図示したサーバブレード２００ａの起動制御を開始するように要求し、処理を終了する。この場合、ブレード管理テーブル３５０のレコード３５０ａには、サーバブレード２００ａが状態４であることがすでに登録されているので、起動制御部３１１は、運用系管理カードから状態４の通知を受けた後のステップＳ３３から、起動処理を開始すればよい。
【０２５３】
［ステップＳ２２４］起動時移行制御部３３１は、“Set Event Receiver”コマンドを用いて、サーバブレード２００ａに対して、状態情報の送信を要求する。
“Set Event Receiver”コマンドのリクエストデータを受信したサーバブレード２００ａは、レスポンスデータを返信した後、現在の状態を示す状態情報を設定した“Platform Event Message”コマンドのリクエストデータを、“Set Event Receiver”コマンドの発行元の管理カードに対して送信する。
【０２５４】
［ステップＳ２２５］起動時移行制御部３３１は、サーバブレード２００ａから通知された状態情報を受信する。
［ステップＳ２２６〜Ｓ２２８］起動時移行制御部３３１は、サーバブレード２００ａから受信した状態情報が示す状態を判定する。起動時移行制御部３３１は、受信した状態情報が電源オフ状態である状態１を示す場合、ステップＳ２２９の処理を実行し、受信した状態情報が起動処理を開始した状態である状態２を示す場合、ステップＳ２３０の処理を実行し、受信した状態情報が起動処理中である状態３を示す場合、ステップＳ２３２の処理を実行する。また、起動時移行制御部３３１は、受信した状態情報が状態１〜状態３ではない、すなわち、サーバブレード２００ａの全体に対する電源投入が完了した運用状態である状態４，電源切断処理を開始した状態である状態５，電源切断処理中である状態６のいずれかを示す場合、ステップＳ２３４の処理を実行する。
【０２５５】
［ステップＳ２２９］起動時移行制御部３３１は、起動制御部３１１に対して、図１０に示したステップＳ１１から、サーバブレード２００ａの起動制御を開始するように要求し、処理を終了する。
【０２５６】
［ステップＳ２３０］起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの起動処理の処理順、すなわち状態の遷移順が正しいか否かを判定する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が、電源オフ状態である状態１または起動処理を開始した状態である状態２のいずれかを示す場合に、起動処理順が正しいと判定して、ステップＳ２３１の処理を実行する。一方、起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態１および状態２以外の状態を示す場合には、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２５７】
［ステップＳ２３１］起動時移行制御部３３１は、起動制御部３１１に対して、図１０に示したステップＳ１５から、サーバブレード２００ａの起動制御を開始するように要求する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２２５で受信した状態情報を登録し、処理を終了する。
【０２５８】
［ステップＳ２３２］起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの起動処理の処理順が正しいか否かを判定する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が起動処理を開始した状態である状態２または起動処理中である状態３のいずれかを示す場合に、起動処理順が正しいと判定して、ステップＳ２３３の処理を実行する。一方、起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態２および状態３以外の状態を示す場合には、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２５９】
［ステップＳ２３３］起動時移行制御部３３１は、起動制御部３１１に対して、図１０に示したステップＳ２０から、サーバブレード２００ａの起動制御を開始するように要求する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２２５で受信した状態情報を登録し、処理を終了する。
【０２６０】
［ステップＳ２３４］起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの起動処理の処理順が正しいか否かを判定する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が、起動処理中である状態３またはサーバブレード２００ａの全体に対する電源投入が完了した運用状態である状態４のいずれかを示す場合に、起動処理順が正しいと判定して、ステップＳ２３５の処理を実行する。一方、起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態３および状態４以外の状態を示す場合には、処理順が正しくないと判断し、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２６１】
［ステップＳ２３５］起動時移行制御部３３１は、起動制御部３１１に対して、図１１に示したステップＳ３２から、サーバブレード２００ａの起動制御を開始するように要求する。起動時移行制御部３３１は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２２５で受信した状態情報を登録し、処理を終了する。
【０２６２】
以上の処理では、起動時移行制御部３３１は、自装置が待機系から運用系に遷移したとき、起動フラグＦＬ１がオンであれば、状態情報をあらためてサーバブレード２００ａから取得する。そして、起動時移行制御部３３１は、取得した状態情報を基に、起動制御部３１１に、サーバブレード２００ａの起動制御を引き継がせる。このような処理により、起動時移行制御部３３１は、サーバブレード２００ａでの起動処理の完了が確認されていない状態でも、サーバブレード２００ａの現在の状態を正しく認識でき、その結果、サーバブレード２００ａの起動処理を最後まで継続させることができる。
【０２６３】
従って、決められた処理順通りにサーバブレード２００ａへの電源投入を完了させることができ、ブレードサーバシステム１００の信頼性を維持できる。例えば、シャーシ１１０内のデバイスへ供給される総電力が、電源モジュール４１０が供給し得る最大電力を上回るといった事態が発生する確率を低減できる。
【０２６４】
また、状態情報をサーバブレード２００ａから取得するか否かが起動フラグＦＬ１の値を基に判定されることで、判定処理が単純化され、その結果、起動制御の引き継ぎ処理の効率が向上する。
【０２６５】
さらに、ステップＳ２３０，Ｓ２３２，Ｓ２３４での判定処理により、サーバブレード２００ａでの起動処理を正しい順序で実行させることができる。特に、これらの処理ステップでは、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が示す状態が、ステップＳ２２５で受信した状態情報が示す状態より１段階前の状態であっても、起動処理の処理順が正しいと判定される。このような判定処理により、サーバブレード２００ａの実際の状態と、運用系に遷移した管理サーバが認識するサーバブレード２００ａの状態とが異なる状況であっても、サーバブレード２００ａの起動処理を正しく続行させることができる。
【０２６６】
なお、ブレード管理部３１０ａの起動制御部３１１は、上記のステップＳ２２３，Ｓ２２９，Ｓ２３１，Ｓ２３３，Ｓ２３５のいずれかで発せられる要求に応じて、サーバブレード２００ａの起動処理を開始する。このとき、起動制御部３１１によって実行される処理には、例えばステップＳ１５，Ｓ２０など、情報を待機系管理カードに通知する処理が含まれる。しかしながら、これらの処理では、正常動作中の待機系管理カードが他に存在する場合にのみ、その待機系管理カードに情報が通知されればよい。
【０２６７】
次に、図２０は、電源切断制御部を制御する切断時移行制御部の処理手順の例を示すフローチャートである。この図２０では、例として、ブレード管理部３１０ａ内の切断時移行制御部３３２の処理について説明するものとするが、サーバブレード２００ａ以外のサーバブレードの電源切断処理中では、電源切断処理中のサーバブレードに対応するブレード管理部内の切断時移行制御部３３２によって同様の処理が行われる。なお、図２０の処理の初期状態では、図２０の処理を実行する切断時移行制御部３３２が設けられた管理カードは、待機系の状態である。
【０２６８】
［ステップＳ２５１］起動時移行制御部３３１は、リセット検出部３４０による検出信号を監視し、運用系である他方の管理カードがリセットされたか否かを判定する。切断時移行制御部３３２は、リセット検出部３４０によってリセットが検出された場合に、ステップＳ２５２の処理を実行する。このとき、切断時移行制御部３３２が設けられた管理カードは運用系に遷移する。
【０２６９】
［ステップＳ２５２］切断時移行制御部３３２は、切断フラグＦＬ２を参照し、切断フラグＦＬ２がオンである場合には、ステップＳ２５３の処理を実行する。また、切断時移行制御部３３２は、切断フラグＦＬ２がオフである場合には、サーバブレード２００ａは電源オフ状態にあるため、電源切断制御を終了する。
【０２７０】
［ステップＳ２５３］切断時移行制御部３３２は、“Set Event Receiver”コマンドを用いて、サーバブレード２００ａに対して、状態情報の送信を要求する。
“Set Event Receiver”コマンドのリクエストデータを受信したサーバブレード２００ａは、レスポンスデータを返信した後、現在の状態を示す状態情報を設定した“Platform Event Message”コマンドのリクエストデータを、“Set Event Receiver”コマンドの発行元の管理カードに対して送信する。
【０２７１】
［ステップＳ２５４］切断時移行制御部３３２は、サーバブレード２００ａから通知された状態情報を受信する。
［ステップＳ２５５〜Ｓ２５７］切断時移行制御部３３２は、サーバブレード２００ａから受信した状態情報が示す状態を判定する。切断時移行制御部３３２は、受信した状態情報がサーバブレード２００ａの全体に対する電源投入が完了した運用状態である状態４を示す場合、ステップＳ２５８の処理を実行し、受信した状態情報が電源切断処理を開始した状態である状態５を示す場合、ステップＳ２５９の処理を実行し、受信した状態情報が電源切断処理中である状態６を示す場合、ステップＳ２６１の処理を実行する。また、切断時移行制御部３３２は、受信した状態情報が状態４〜状態６以外、すなわち、電源オフ状態である状態１，起動処理を開始した状態である状態２，起動処理中である状態３のいずれかを示す場合、ステップＳ２６３の処理を実行する。
【０２７２】
［ステップＳ２５８］切断時移行制御部３３２は、電源切断制御部３１２に対して、図１２に示したステップＳ４１から、サーバブレード２００ａの電源切断制御を開始するように要求し、処理を終了する。
【０２７３】
［ステップＳ２５９］切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの電源切断処理の処理順、すなわち状態の遷移順が正しいか否かを判定する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態４または状態５のいずれかを示す場合に、電源切断処理順が正しいと判定して、ステップＳ２６０の処理を実行する。一方、切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態４および状態５以外の状態を示す場合には、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２７４】
［ステップＳ２６０］切断時移行制御部３３２は、電源切断制御部３１２に対して、図１２に示したステップＳ４５から、サーバブレード２００ａの電源切断制御を開始するように要求する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２５４で受信した状態情報を登録し、処理を終了する。
【０２７５】
［ステップＳ２６１］切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの電源切断処理の処理順が正しいか否かを判定する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態５または状態６のいずれかを示す場合に、電源切断処理順が正しいと判定して、ステップＳ２６２の処理を実行する。一方、切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態５および状態６以外の状態を示す場合には、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２７６】
［ステップＳ２６２］切断時移行制御部３３２は、電源切断制御部３１２に対して、図１２に示したステップＳ５１から、サーバブレード２００ａの電源切断制御を開始するように要求する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２５４で受信した状態情報を登録し、処理を終了する。
【０２７７】
［ステップＳ２６３］切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報に基づいて、サーバブレード２００ａでの起動処理の処理順が正しいか否かを判定する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態６または状態１のいずれかを示す場合に、電源切断処理順が正しいと判定して、ステップＳ２６４の処理を実行する。一方、切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が状態６および状態１以外の状態を示す場合には、例えばサーバブレード２００ａにエラーを通知した後、処理を終了する。
【０２７８】
［ステップＳ２６４］切断時移行制御部３３２は、電源切断制御部３１２に対して、図１２に示したステップＳ５７から、サーバブレード２００ａの電源切断制御を開始するように要求する。切断時移行制御部３３２は、ブレード管理テーブル３５０のレコード３５０ａに、ステップＳ２５４で受信した状態情報を登録し、処理を終了する。
【０２７９】
以上の処理では、切断時移行制御部３３２は、自装置が待機系から運用系に遷移したとき、切断フラグＦＬ２がオンであれば、状態情報をあらためてサーバブレード２００ａから取得する。そして、切断時移行制御部３３２は、取得した状態情報を基に、電源切断制御部３１２に、サーバブレード２００ａの電源切断制御を引き継がせる。このような処理により、切断時移行制御部３３２は、サーバブレード２００ａでの電源切断処理の完了が確認されていない状態でも、サーバブレード２００ａの現在の状態を正しく認識でき、その結果、サーバブレード２００ａの電源切断処理を最後まで継続させることができる。従って、決められた処理順通りにサーバブレード２００ａの電源切断処理を完了させることができ、ブレードサーバシステム１００の信頼性を維持できる。
【０２８０】
また、状態情報をサーバブレード２００ａから取得するか否かが切断フラグＦＬ２の値を基に判定されることで、判定処理が単純化され、その結果、電源切断制御の引き継ぎ処理の効率が向上する。
【０２８１】
さらに、ステップＳ２５９，Ｓ２６１，Ｓ２６３での判定処理により、サーバブレード２００ａでの電源切断処理を正しい順序で実行させることができる。特に、これらの処理ステップでは、ブレード管理テーブル３５０のレコード３５０ａに登録されていた状態情報が示す状態が、ステップＳ２５４で受信した状態情報が示す状態より１段階前の状態であっても、電源切断処理の処理順が正しいと判定される。このような判定処理により、サーバブレード２００ａの実際の状態と、運用系に遷移した管理サーバが認識するサーバブレード２００ａの状態とが異なる状況であっても、サーバブレード２００ａの電源切断処理を正しく続行させることができる。
【０２８２】
なお、電源切断制御部３１２は、上記のステップＳ２５８，Ｓ２６０，Ｓ２６２，Ｓ２６４のいずれかで発せられる要求に応じて、サーバブレード２００ａの電源切断処理を開始する。このとき、電源切断制御部３１２によって実行される処理には、例えばステップＳ４５，Ｓ４９など、情報を待機系管理カードに通知する処理が含まれる。しかしながら、これらの処理では、正常動作中の待機系管理カードが他に存在する場合にのみ、その待機系管理カードに情報が通知されればよい。
【０２８３】
次に、サーバブレードに対する起動制御および電源切断制御が、別の管理カードに引き継がれる場合の処理例について説明する。以下の図２１〜図２６では、管理カード３００ａが運用系である状態から、管理カード３００ａに異常が発生した場合の処理例を挙げる。これらの図２１〜図２６では、例として、サーバブレード２００ａに対する起動制御および電源切断制御が行われる場合について説明する。このため、図２１〜図２６において説明する管理カード３００ａ，３００ｂの処理は、管理カード３００ａ，３００ｂがそれぞれ備えるブレード管理部３１０ａ内の処理ブロックによって実行されるものである。サーバブレード２００ａ以外のサーバブレードに対する起動制御および電源切断制御が行われる場合には、管理カード３００ａ，３００ｂでは、制御対象のサーバブレードに対応するブレード管理部内の処理ブロックによって、図２１〜図２６に示す処理が実行される。
【０２８４】
図２１，図２２は、サーバブレードに対する起動制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。なお、図２１，図２２では、図１３，図１４と同じ処理ステップには同じ符号を付して示す。
【０２８５】
図２１の初期状態では、図１３と同様に、管理カード３００ａは運用系であり、管理カード３００ｂは待機系である。また、サーバブレード２００ａは状態１であり、管理カード３００ａ，３００ｂの両方とも、サーバブレード２００ａが状態１であることを認識した状態である（ステップＳ１０１）。このとき、管理カード３００ｂのブレード管理部３１０ａによって参照される起動フラグＦＬ１はオンになっている。
【０２８６】
この状態から、例えば、遠隔監視装置５２０から運用系の管理カード３００ａに対して、サーバブレード２００ａの電源を投入する要求が発行されると（ステップＳ１０２）、管理カード３００ａの起動制御部３１１の制御の下で、サーバブレード２００ａの起動処理が開始される。管理カード３００ａの起動制御部３１１は、サーバブレード２００ａの起動／切断処理部２２１に対して電源投入を要求する（ステップＳ１０３）。サーバブレード２００ａの起動／切断処理部２２１は、起動処理を開始した状態である状態２に遷移し（ステップＳ１０４）、管理カード３００ａに対して、状態２を示す状態情報を通知する（ステップＳ１０５）。
【０２８７】
この状態で、管理カード３００ａに異常が発生すると、管理カード３００ａのＷＤＴ３０６はタイムアウトを検出し、管理カード３００ａをリセットする（ステップＳ３０１）。管理カード３００ｂのリセット検出部３４０は、管理カード３００ａでのリセット発生を検出し、管理カード３００ｂは運用系に遷移する（ステップＳ３０２）。
【０２８８】
管理カード３００ａの起動時移行制御部３３１は、起動フラグＦＬ１を参照し、状態情報をサーバブレード２００ａから取得するか否かを判定する（ステップＳ３０３）。起動フラグＦＬ１はオンであることから、管理カード３００ｂの起動時移行制御部３３１は、“Set Event Receiver”コマンドを用いて、サーバブレード２００ａに対して状態情報の送信を要求する（ステップＳ３０４）。サーバブレード２００ａの起動／切断処理部２２１は、状態２を示す状態情報を管理カード３００ｂに通知する（ステップＳ３０５）。
【０２８９】
管理カード３００ｂの起動時移行制御部３３１は、サーバブレード２００ａが状態２であることを認識する（ステップＳ３０６）。このとき、管理カード３００ｂの起動時移行制御部３３１は、起動処理の処理順が正しいと判定した後、起動制御部３１１に、図１０の処理をステップＳ１５を起点として開始させる（図１９のステップＳ２３０，Ｓ２３１に対応）。
【０２９０】
これにより、管理カード３００ａの起動制御部３１１の代わりに、管理カード３００ｂの起動制御部３１１の制御の下で、サーバブレード２００ａの起動処理が続行される。すなわち、図１３のステップＳ１０８以降に管理カード３００ａの起動制御部３１１、サーバブレード２００ａの起動／切断処理部２２１および遠隔監視装置５２０が行う処理と同様の処理が、管理カード３００ｂの起動制御部３１１、サーバブレード２００ａの起動／切断処理部２２１および遠隔監視装置５２０によって実行される。
【０２９１】
管理カード３００ｂの起動制御部３１１は、ステップＳ３０６においてサーバブレード２００ａが状態２であることを認識すると、サーバブレード２００ａから種別情報を取得する（ステップＳ１１０ａ，Ｓ１１１）。管理カード３００ｂの起動制御部３１１は、種別情報に基づき、サーバブレード２００ａが、自装置が動作状態の監視および起動／電源切断の制御をサポートするブレードであると判定すると（ステップＳ１１２ａ）、サーバブレード２００ａに起動許可を与える（ステップＳ１１３ａ）。
【０２９２】
管理カード３００ｂの起動制御部３１１は、サーバブレード２００ａが状態３に遷移したことを認識すると（ステップＳ１１６ａ）、サーバブレード２００ａから電力情報を取得する（ステップＳ１２０ａ，１２１）。管理カード３００ｂの起動制御部３１１は、現在の許容電力３６２としてＲＡＭ３０２に保持された値から、サーバブレード２００ａから受信した電力情報が示す消費電力の値を減算し、その減算結果が０以上である場合に、サーバブレード２００ａに対して運用許可通知を送信する（ステップＳ１２２ａ，Ｓ１２４ａ）。管理カード３００ｂの起動制御部３１１は、サーバブレード２００ａが状態４に遷移したことを認識すると（ステップＳ１２８ａ）、サーバブレード２００ａからのセンサ情報および製造情報の収集を開始する（ステップＳ１３２ａ〜Ｓ１３５）。
【０２９３】
以上の図２１，図２２の処理では、管理カード３００ｂが運用系に遷移した時点（ステップＳ３０２）では、管理カード３００ｂが認識するサーバブレード２００ａの状態と、サーバブレード２００ａの実際の状態とが一致しない。このような状態認識の間違いが生じたにもかかわらず、管理カード３００ｂの起動制御部３１１は、管理カード３００ａの起動制御部３１１による起動制御を正しく引き継ぐことができ、その結果、サーバブレード２００ａの起動処理が続行されるようになる。
【０２９４】
また、管理カード３００ｂが認識するサーバブレード２００ａの状態と、サーバブレード２００ａの実際の状態とが一致しない場合としては、上記の他に次のようなケースがある。例えば、サーバブレード２００ａが状態３に遷移し、状態３を示す状態情報が運用系の管理カード３００ａに通知されたものの、同じ状態情報が待機系の管理カード３００ｂに転送される前に、運用系の管理カード３００ａに故障が発生した場合（ケース１）がある。これは、図１３において、ステップＳ１１５の処理が完了した後、ステップＳ１１７の処理が実行される前に、運用系の管理カード３００ａに故障が発生した場合である。あるいは、他の例として、サーバブレード２００ａが状態４に遷移し、状態４を示す状態情報が運用系の管理カード３００ａに通知されたものの、同じ状態情報が待機系の管理カード３００ｂに転送される前に、運用系の管理カード３００ａに故障が発生した場合（ケース２）がある。これは、図１４において、ステップＳ１２７の処理が完了した後、ステップＳ１２９の処理が実行される前に、運用系の管理カード３００ａに故障が発生した場合である。
【０２９５】
上記のケース１、ケース２のいずれの場合でも、管理カード３００ａでの故障発生を検知した管理カード３００ｂの起動時移行制御部３３１は、起動フラグＦＬ１がオンであることから、サーバブレード２００ａに対して状態情報の送信を要求する。ケース１では、起動時移行制御部３３１は、サーバブレード２００ａからの状態情報に基づいて、サーバブレード２００ａが状態３であることを認識し、起動制御部３１１に、図１０の処理をステップＳ２０を起点として開始させる。また、ケース２では、起動時移行制御部３３１は、サーバブレード２００ａからの状態情報に基づいて、サーバブレード２００ａが状態４であることを認識し、起動制御部３１１に、図１１の処理をステップＳ３２を起点として開始させる。従って、どちらのケースでも、管理カード３００ｂの起動制御部３１１は、管理カード３００ａの起動制御部３１１による起動制御を正しく引き継ぐことができ、その結果、サーバブレード２００ａの起動処理が続行されるようになる。
【０２９６】
図２３は、サーバブレードに対する起動制御が別の管理カードに引き継がれる場合の処理例２を示すシーケンス図である。なお、図２３では、図１３，図１４，図２２と同じ処理ステップには同じ符号を付して示す。
【０２９７】
図２３の例では、管理カード３００ａの起動制御部３１１の制御の下で、サーバブレード２００ａの起動処理が開始される。サーバブレード２００ａの起動／切断処理部２２１は、状態４に遷移し（ステップＳ１２６）、状態４を示す状態情報を管理カード３００ａに通知する（ステップＳ１２７）。管理カード３００ａの起動制御部３１１は、サーバブレード２００ａが状態４に遷移したことを認識し（ステップＳ１２８）、管理カード３００ｂおよび遠隔監視装置５２０のそれぞれに対して、状態４を示す状態情報を通知する（ステップＳ１２９，Ｓ１３０）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａから受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａに登録する（ステップＳ１３１）。このとき、管理カード３００ｂのフラグ設定部３２２は、起動フラグＦＬ１をオフにする。
【０２９８】
この状態で、管理カード３００ａに異常が発生すると、管理カード３００ａのＷＤＴ３０６はタイムアウトを検出し、管理カード３００ａをリセットする（ステップＳ３０１ａ）。管理カード３００ｂのリセット検出部３４０は、管理カード３００ａでのリセット発生を検出し、管理カード３００ｂは運用系に遷移する（ステップＳ３０２ａ）。
【０２９９】
管理カード３００ａの起動時移行制御部３３１は、起動フラグＦＬ１を参照し、状態情報をサーバブレード２００ａから取得するか否かを判定する（ステップＳ３０３ａ）。起動フラグＦＬ１はオフであることから、管理カード３００ｂの起動時移行制御部３３１は、状態情報を取得することなく、起動制御部３１１に、図１１の処理をステップＳ３３を起点として開始させる（図１９のステップＳ２２３に対応）。これにより、管理カード３００ｂの起動制御部３１１、サーバブレード２００ａの起動／切断処理部２２１および遠隔監視装置５２０によって、図２２のステップＳ１３２ａ以後の処理が実行される。
【０３００】
以上の図２３の処理では、管理カード３００ｂが運用系に遷移した時点（ステップＳ３０２ａ）で、管理カード３００ｂの起動時移行制御部３３１は、起動フラグＦＬ１に基づいて、サーバブレード２００ａがすでに状態４に遷移したことを認識する。状態４は、起動制御部３１１が遷移を管理する最終の状態であるため、管理カード３００ｂの起動時移行制御部３３１は、状態情報をサーバブレード２００ａからあらためて取得する必要がないと判断する。従って、起動時移行制御部３３１は、無駄な通信処理を行うことなく、起動制御部３１１に起動制御を引き継がせることができる。
【０３０１】
なお、その他のケースとして、サーバブレード２００ａが状態１であり、運用系である管理カード３００ａおよび待機系である管理カード３００ｂの両方とも、サーバブレード２００ａが状態１であることを認識した状態において、管理カード３００ａに異常が発生するケースがある。この場合、管理カード３００ｂのブレード管理部３１０ａによって参照される起動フラグＦＬ１はオンになっている。管理カード３００ａにおけるエラーの発生を検知した管理カード３００ｂの起動時移行制御部３３１は、起動フラグＦＬ１がオンであることから、サーバブレード２００ａに対して状態情報の送信を要求する。管理カード３００ｂの起動時移行制御部３１１は、サーバブレード２００ａから受信した状態情報に基づき、サーバブレード２００ａが状態１であることを認識し、例えば、遠隔監視装置５２０からのサーバブレード２００ａの電源投入要求を監視する。
【０３０２】
次に、図２４，図２５は、サーバブレードに対する電源切断制御が別の管理カードに引き継がれる場合の処理例１を示すシーケンス図である。なお、図２４，図２５では、図１５，図１６と同じ処理ステップには同じ符号を付して示す。
【０３０３】
図２４の初期状態では、図１５と同様に、管理カード３００ａは運用系であり、管理カード３００ｂは待機系である。また、サーバブレード２００ａは状態４であり、管理カード３００ａ，３００ｂの両方とも、サーバブレード２００ａが状態４であることを認識した状態である（ステップＳ１５１）。このとき、管理カード３００ｂに保持された切断フラグＦＬ２はオンになっている。
【０３０４】
この状態から、例えば、遠隔監視装置５２０から運用系の管理カード３００ａに対して、サーバブレード２００ａの電源を切断する要求が発行されると（ステップＳ１５２）、管理カード３００ａの電源切断制御部３１２の制御の下で、サーバブレード２００ａの電源切断処理が開始される。管理カード３００ｂの電源切断制御部３１２は、サーバブレード２００ａに対して電源切断を要求する（ステップＳ１５３）。サーバブレード２００ａの起動／切断処理部２２１は、状態５に遷移し（ステップＳ１５４）、管理カード３００ｂに対して、状態５を示す状態情報を通知する（ステップＳ１５５）。
【０３０５】
この状態で管理カード３００ａに異常が発生すると、管理カード３００ａのＷＤＴ３０６はタイムアウトを検出し、管理カード３００ａをリセットする（ステップＳ３５１）。管理カード３００ｂのリセット検出部３４０は、管理カード３００ａでのリセット発生を検出し、管理カード３００ｂは運用系に遷移する（ステップＳ３５２）。
【０３０６】
管理カード３００ａの切断時移行制御部３３２は、切断フラグＦＬ２を参照し、状態情報をサーバブレード２００ａから取得するか否かを判定する（ステップＳ３５３）。切断フラグＦＬ２はオンであることから、管理カード３００ｂの切断時移行制御部３３２は、“Set Event Receiver”コマンドを用いて、サーバブレード２００ａに対して状態情報の送信を要求する（ステップＳ３５４）。サーバブレード２００ａの起動／切断処理部２２１は、状態５を示す状態情報を管理カード３００ｂに通知する（ステップＳ３５５）。
【０３０７】
管理カード３００ｂの切断時移行制御部３３２は、サーバブレード２００ａが状態５であることを認識し（ステップＳ３５６）、さらに電源切断処理の処理順が正しいと判定した後、電源切断制御部３１２に、図１２の処理をステップＳ４５を起点として開始させる（図２０のステップＳ２５９，Ｓ２６０に対応）。
【０３０８】
これにより、管理カード３００ａの電源切断制御部３１２の代わりに、管理カード３００ｂの電源切断制御部３１２の制御の下で、サーバブレード２００ａの電源切断処理が続行される。すなわち、図１５のステップＳ１５８以降に管理カード３００ａの電源切断制御部３１２、サーバブレード２００ａの起動／切断処理部２２１および遠隔監視装置５２０が行う処理と同様の処理が、管理カード３００ｂの電源切断制御部３１２、サーバブレード２００ａの起動／切断処理部２２１および遠隔監視装置５２０によって実行される。
【０３０９】
管理カード３００ｂの電源切断制御部３１２は、サーバブレード２００ａの電源切断を許可するか否かを判定し（ステップＳ１６０ａ）。電源切断を許可すると判定した場合、サーバブレード２００ａに対して電源切断許可を与える（ステップＳ１６１ａ）。管理カード３００ｂの電源切断制御部３１２は、サーバブレード２００ａが状態６に遷移したことを認識すると（ステップＳ１６４ａ）、ブレード管理テーブル３５０のレコード３５０ａから、電力情報の欄に登録された、サーバブレード２００ａの消費電力の値を読み出す。電源切断制御部３１２は、読み出した消費電力の値を、ＲＡＭ３０２に保持された現在の許容電力３６２の値に加算し、その加算結果により、ＲＡＭ３０２に保持された現在の許容電力３６２の値を更新する（ステップＳ１６８ａ）。
【０３１０】
一方、サーバブレード２００ａでは、ＩＰＭＣ２０６を除くサーバブレード２００ａ内の各部への電源供給が停止され（ステップＳ１７０）、サーバブレード２００ａは状態１に遷移する（ステップＳ１７１）。管理カード３００ｂの電源切断制御部３１２は、サーバブレード２００ａが状態１に遷移したことを認識し（ステップＳ１７３ａ）、遠隔監視装置５２０に対して状態１を示す状態情報を通知する（ステップＳ１７５ａ）することで、電源切断制御を完了する。
【０３１１】
以上の図２４，図２５の処理では、管理カード３００ｂが運用系に遷移した時点（ステップＳ３５２）では、管理カード３００ｂが認識するサーバブレード２００ａの状態と、サーバブレード２００ａの実際の状態とが一致しない。このような状態認識の間違いが生じたにもかかわらず、管理カード３００ｂの電源切断制御部３１２は、管理カード３００ａの電源切断制御部３１２による電源切断制御を正しく引き継ぐことができ、その結果、サーバブレード２００ａの電源切断処理が続行されるようになる。
【０３１２】
また、管理カード３００ｂが認識するサーバブレード２００ａの状態と、サーバブレード２００ａの実際の状態とが一致しない場合としては、上記の他に次のようなケースもある。例えば、サーバブレード２００ａが状態６に遷移し、状態６を示す状態情報が運用系の管理カード３００ａに通知されたものの、同じ状態情報が待機系の管理カード３００ｂに転送される前に、運用系の管理カード３００ａに故障が発生した場合（ケース３）がある。これは、図１５のステップＳ１６３の処理が完了した後、図１６のステップＳ１６５の処理が実行される前に、運用系の管理カード３００ａに故障が発生した場合である。あるいは、他の例として、サーバブレード２００ａが状態１に遷移し、状態１を示す状態情報が運用系の管理カード３００ａに通知されたものの、同じ状態情報が待機系の管理カード３００ｂに転送される前に、運用系の管理カード３００ａに故障が発生した場合（ケース４）がある。これは、図１６において、ステップＳ１７２の処理が完了した後、ステップＳ１７４の処理が実行される前に、運用系の管理カード３００ａに故障が発生した場合である。
【０３１３】
上記のケース３、ケース４のいずれの場合でも、管理カード３００ａでの故障発生を検知した管理カード３００ｂの切断時移行制御部３３２は、起動フラグＦＬ２がオンであることから、サーバブレード２００ａに対して状態情報の送信を要求する。ケース３では、切断時移行制御部３３２は、サーバブレード２００ａからの状態情報に基づいて、サーバブレード２００ａが状態６であることを認識し、電源切断制御部３１２に、図１２の処理をステップＳ５１を起点として開始させる。また、ケース４では、切断時移行制御部３３２は、サーバブレード２００ａからの状態情報に基づいて、サーバブレード２００ａが状態１であることを認識し、電源切断制御部３１２に、図１２の処理をステップＳ５７を起点として開始させる。従って、どちらのケースでも、管理カード３００ｂの電源切断制御部３１２は、管理カード３００ａの電源切断制御部３１２による電源切断制御を正しく引き継ぐことができ、その結果、サーバブレード２００ａの電源切断処理が続行されるようになる。
【０３１４】
図２６は、サーバブレードに対する電源切断制御が別の管理カードに引き継がれる場合の処理例２を示すシーケンス図である。なお、図２６では、図１５，図１６と同じ処理ステップには同じ符号を付して示す。
【０３１５】
図２６の例では、管理カード３００ａの電源切断制御部３１２の制御の下で、サーバブレード２００ａの電源切断処理が開始される。サーバブレード２００ａの起動／切断処理部２２１は、状態１に遷移し（ステップＳ１７１）、状態１を示す状態情報を管理カード３００ａに通知する（ステップＳ１７２）。管理カード３００ａの電源切断制御部３１２は、サーバブレード２００ａが状態１に遷移したことを認識し（ステップＳ１７３）、管理カード３００ｂおよび遠隔監視装置５２０のそれぞれに対して、状態１を示す状態情報を通知する（ステップＳ１７４，Ｓ１７５）。管理カード３００ｂの待機系処理部３２１は、管理カード３００ａから受信した状態情報を、ブレード管理テーブル３５０のレコード３５０ａに登録する（ステップＳ１７６）。このとき、管理カード３００ｂのフラグ設定部３２２は、切断フラグＦＬ２をオフにする。
【０３１６】
この状態で、管理カード３００ａに異常が発生すると、管理カード３００ａのＷＤＴ３０６はタイムアウトを検出し、管理カード３００ａをリセットする（ステップＳ３５１ａ）。管理カード３００ｂのリセット検出部３４０は、管理カード３００ａでのリセット発生を検出し、管理カード３００ｂは運用系に遷移する（ステップＳ３５２ａ）。
【０３１７】
管理カード３００ａの切断時移行制御部３３２は、切断フラグＦＬ２を参照し、状態情報をサーバブレード２００ａから取得するか否かを判定する（ステップＳ３５３ａ）。切断フラグＦＬ２はオフであることから、管理カード３００ｂの切断時移行制御部３３２は、状態情報をサーバブレード２００ａから取得することなく、電源切断制御を終了する。
【０３１８】
上記の図２６の処理では、管理カード３００ｂが運用系に遷移した時点（ステップＳ３５２ｄ）で、管理カード３００ｂの切断時移行制御部３３２は、切断フラグＦＬ２に基づいて、サーバブレード２００ａがすでに状態１に遷移したことを認識する。状態１は、電源切断制御部３１２が遷移を管理する最終の状態であるため、管理カード３００ｂの切断時移行制御部３３２は、状態情報をサーバブレード２００ａからあらためて取得する必要がないと判断する。従って、切断時移行制御部３３２は、無駄な通信処理を行うことなく、電源切断制御部３１２に電源切断制御を完了させることができる。
【０３１９】
なお、その他のケースとして、サーバブレード２００ａが状態４であり、運用系である管理カード３００ａおよび待機系である管理カード３００ｂの両方とも、サーバブレード２００ａが状態４あることを認識した状態において、管理カード３００ａに異常が発生するケースがある。この場合、管理カード３００ｂのブレード管理部３１０ａによって参照される起動フラグＦＬ２はオンになっている。管理カード３００ａにおけるエラーの発生を検知した管理カード３００ｂの切断時移行制御部３３２は、起動フラグＦＬ２がオンであることから、サーバブレード２００ａに対して状態情報の送信を要求する。管理カード３００ｂの切断時移行制御部３１２は、サーバブレード２００ａから受信した状態情報に基づき、サーバブレード２００ａが状態４であることを認識し、例えば、遠隔監視装置５２０からのサーバブレード２００ａの電源切断要求を監視する。
【０３２０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、上記の管理装置、情報処理装置、管理カード、サーバブレードなどが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc−Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０３２１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０３２２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０３２３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０３２４】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０３２５】
１０ａ，１０ｂ  管理装置
１１  情報取得手段
１２  制御手段
２０  情報処理装置
【図１】
0005585654.tif 000002
【図２】
0005585654.tif 000003
【図３】
0005585654.tif 000004
【図４】
0005585654.tif 000005
【図５】
0005585654.tif 000006
【図６】
0005585654.tif 000007
【図７】
0005585654.tif 000008
【図８】
0005585654.tif 000009
【図９】
0005585654.tif 000010
【図１０】
0005585654.tif 000011
【図１１】
0005585654.tif 000012
【図１２】
0005585654.tif 000013
【図１３】
0005585654.tif 000014
【図１４】
0005585654.tif 000015
【図１５】
0005585654.tif 000016
【図１６】
0005585654.tif 000017
【図１７】
0005585654.tif 000018
【図１８】
0005585654.tif 000019
【図１９】
0005585654.tif 000020
【図２０】
0005585654.tif 000021
【図２１】
0005585654.tif 000022
【図２２】
0005585654.tif 000023
【図２３】
0005585654.tif 000024
【図２４】
0005585654.tif 000025
【図２５】
0005585654.tif 000026
【図２６】
0005585654.tif 000027