(57)【特許請求の範囲】
【請求項１】
自身の消費電力を制御できる複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して電力制御する制御装置を有するブレードサーバにおける電力制御方法であって、
該制御装置は、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値Ｐ１と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値Ｐ２を設定し、
複数のブレード装置から、該ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を取得し、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値ＷＳを算出し、
該消費電力値ＷＳが、該高負荷電力閾値Ｐ１と該未稼働電力閾値Ｐ２の間で収束するように、取得した該ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御することを特徴とするブレードサーバの電力制御方法。
【請求項２】
ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１を超えたとき、該制御装置は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御することを特徴とする請求項１のブレードサーバの電力制御方法。
【請求項３】
ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２を超えたとき、該制御装置は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を抑制制御することを特徴とする請求項１又は２記載のブレードサーバの電力制御方法。
【請求項４】
ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２未満となったとき、該制御装置は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御することを特徴とする請求項１乃至３のいずれか項記載のブレードサーバの電力制御方法。
【請求項５】
命令を処理するプロセッサを有する複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して制御する制御装置を有するブレードサーバにおける電力制御システムであって、
該制御装置は；
予め設定された、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値Ｐ１と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値Ｐ２を保持する手段と、
該複数のブレード装置に要求して、各ブレード装置の消費電力値ＷＢ及び稼働状態に関する情報を取得する手段と、
該複数のブレード装置から得られた各ブレード装置の消費電力値ＷＢ及び稼働状態に関する情報を管理する第１の管理テーブルと、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値ＷＳを算出する手段と、
予め設定された、該高負荷電力閾値Ｐ１及び該未稼働電力閾値Ｐ２、及び該第１の管理テーブルの情報に基づいて、電力制御の対象となるブレード装置を選択し、該ブレード装置に対して電力制御を行う命令を発する制御手段と、を有し、
該各ブレード装置は；
自ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を管理する第２の管理テーブルと、
該第２の管理テーブルで管理される該情報を該制御装置へ転送する手段と、
該制御装置から発せられる該電力制御命令に基づいて、自ブレード装置における該プロセッサのクロック周波数を変更制御する手段と、を有し、
該制御装置の該制御手段は、算出された該消費電力値ＷＳが、該高負荷電力閾値Ｐ１と該未稼働電力閾値Ｐ２の間で収束するように、該第１の管理テーブルの情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御を行う命令を発し、
該ブレード装置の該変更制御手段は、該電力制御命令に従って、該プロセッサのクロック周波数を変更制御することを特徴とするブレードサーバの電力制御システム。
【請求項６】
ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１を超えたとき、該制御装置の該制御手段は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御することを特徴とする請求項５のブレードサーバの電力制御システム。
【請求項７】
ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２を超えたとき、該制御装置の該制御手段は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を抑制制御することを特徴とする請求項５又は６記載のブレードサーバの電力制御システム。
【請求項８】
ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２未満となったとき、該制御装置の該制御手段は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御することを特徴とする請求項５乃至７のいずれか項記載のブレードサーバの電力制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブレードサーバの電力制御方法及びシステムに係り、特に、複数のブレード装置を搭載したブレードサーバの高性能を維持しつつ、規定の消費電力値を超えない運用を可能とする電力制御に関する。
【背景技術】
【０００２】
ブレードサーバは、マザーボード上にプロセッサやメモリ等を高密度に実装した複数台のブレード装置を専用のラックに搭載したコンピュータであり、電源ユニットや冷却用のＦＡＮユニットを共有することで、省スペース及び運用コストを削減することができる。
【０００３】
近年、ブレードサーバの高集積化、ブレード装置単体の仕様の向上に伴い、ラック単位におけるブレードサーバの消費電力が増加している。一方、ブレードサーバが設置されるデータセンタ等には、利用できる電源容量に制限があるので、ラックに搭載されるブレード装置の台数を制限しなければならないという事態が生じる。そこで、ユーザの要望に応じたサーバの性能を確保しながら、所定の消費電力値を超えることがないように電力制御することが重要となっている。
【０００４】
コンピュータシステムにおける電力制御技術として、情報処理装置で最も消費電力割合が大きいＣＰＵのクロック周波数を規定の周波数値に制御することで、情報処理装置の消費電力値を一定値以下に制限する方法が知られ、この方法は有効とされている。
【０００５】
例えば、特許文献１には、ブレードサーバの筐体内の他ブレードの消費電力値、供給可能電力値を取得して、他ブレードの消費電力の合計値と供給可能電力値との差分値と求め、この差分値に基づいて自ブレードの可能な動作モードを判定して、判定結果によって自ブレードの動作モードを制御することにより、ブレードサーバ全体の電力制御管理を可能とする、ブレードサーバ乃至電力管理方法が記載されている。
【０００６】
また、特許文献２には、選択的に利用度の低いデバイスのデバイス電力制限を低下させ、利用度の高いデバイスのデバイス電力制限を上昇させることにより、システムに利用可能な電力をよりよく利用し、サーバに対するスループットを最大限とする電力管理システム乃至方法が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−８３８４１号公報
【特許文献２】特開２００９−１１６８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１および２に記載の技術は、ブレード装置毎の消費電力値を取得しその合計をブレードサーバ全体の消費電力値として扱っている。上記したように、ブレードサーバには各ブレード装置で共有する電源ユニットやＦＡＮユニット等が存在するため、ブレードサーバ全体の消費電力値としてはこれら装置の消費電力値も考慮すべきである。ブレードサーバが複数の電源ユニットや複数のＦＡＮユニットを有する場合、消費電力の低減を目的にブレード装置の稼働台数や温度状況により、電源ユニットの稼働台数が変化し、またＦＡＮユニットの回転数が変化する機能を持つものも存在する。
【０００９】
これらのユニットによる筐体内の消費電力の変化はブレード装置の電力制御に影響を及ぼすことがある。これらのユニットが低消費電力の状態にあるときには、ブレードサーバ全体の電力リソースに余りが生じることがある。この場合、余った電力リソースを利用してブレードサーバの性能の維持或いは向上したいが、従来のブレードサーバにおける電力制御では、必ずしも余った電力リソースを有効に活用しているとは言い難い。
【００１０】
本発明は、上記に鑑み、ブレードサーバ全体の消費電力を監視して、ブレードサーバの性能を保障しつつ、ユーザに規定の消費電力値を超えないように電力制御することにある。
【課題を解決するための手段】
【００１１】
本発明によるブレードサーバの電力制御方法は、好ましくは、自身の消費電力を制御できる複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して電力制御する制御装置を有するブレードサーバにおける電力制御方法であって、
該制御装置は、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値Ｐ１と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値Ｐ２を設定し、
複数のブレード装置から、ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を取得し、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値ＷＳを算出し、
該消費電力値ＷＳが、該高負荷電力閾値Ｐ１と該未稼働電力閾値Ｐ２の間で収束するように、取得した該ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御することを特徴とするブレードサーバの電力制御方法として構成される。
【００１２】
好ましい例では、ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１を超えたとき、該制御装置は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御する。
また、好ましくは、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２を超えたとき、該制御装置は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を低減制御する。
また、好ましくは、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２を未満となったとき、該制御装置は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御する。
【００１３】
本発明によるブレードサーバの電力制御システムは、好ましくは、命令を処理するプロセッサを有する複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して制御する制御装置を有するブレードサーバにおける電力制御システムであって、
該制御装置は；
予め設定された、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値Ｐ１と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値Ｐ２を保持する手段と、該複数のブレード装置に要求して、各ブレード装置の消費電力値ＷＢ及び稼働状態に関する情報を取得する手段と、該複数のブレード装置から得られた各ブレード装置の消費電力値ＷＢ及び稼働状態に関する情報を管理する第１の管理テーブルと、該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値ＷＳを算出する手段と、予め設定された、該高負荷電力閾値Ｐ１及び該未稼働電力閾値Ｐ２、及び該第１の管理テーブルの情報に基づいて、電力制御の対象となるブレード装置を選択し、該ブレード装置に対して電力制御を行う命令を発する制御手段と、を有し、
該各ブレード装置は；
自ブレード装置の稼働状態、消費電力値ＷＢ、及び電力制御に関する情報を管理する第２の管理テーブルと、該第２の管理テーブルで管理される該情報を該制御装置へ転送する手段と、該制御装置から発せられる該電力制御命令に基づいて、自ブレード装置における該プロセッサのクロック周波数を変更制御する手段と、を有し、
該制御装置の該制御手段は、算出された該消費電力値ＷＳが、該高負荷電力閾値Ｐ１と該未稼働電力閾値Ｐ２の間で収束するように、該第１の管理テーブルの情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御を行う命令を発し、
該ブレード装置の該変更制御手段は、該電力制御命令に従って、該プロセッサのクロック周波数を変更制御することを特徴とするブレードサーバの電力制御システムとして構成される。
【発明の効果】
【００１４】
本発明によれば、ブレードサーバ全体の性能を維持しながら、ユーザに規定の消費電力値を超えないように電力制御することが可能となる。より具体的に言えば、ブレード装置単体の消費電力だけでなくブレードサーバ全体の消費電力値を把握して、ブレードサーバ全体の消費電力値が規定値を超える可能性があると判断されるとき、事前に設定された閾値の範囲内で維持し続けるように電力制御することで、ブレードサーバ全体の性能を維持しつつ、規定の消費電力値を超えないように電力制御することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】一実施例におけるブレードサーバの消費電力の推移を示す図。
【図２】一実施例におけるブレードサーバ全体及びブレード装置の消費電力の推移を示す図。
【図３】一実施例における高負荷状態のブレード装置の電力制御時の消費電力の推移を示す図。
【図４】一実施例におけるブレードサーバの構成を示す図。
【図５】一実施例におけるブレード装置の構成を示す図。
【図６】一実施例におけるブレード情報管理テーブル６００の構成を示す図。
【図７】一実施例における制御装置の管理テーブル７００の構成を示す図。
【図８】一実施例におけるブレードサーバ起動時の事前設定処理動作を示すフロー図。
【図９Ａ】一実施例における電力制御処理動作を示すフロー図。
【図９Ｂ】一実施例における電力制御処理動作を示すフロー図。
【図９Ｃ】一実施例における電力制御処理動作を示すフロー図。
【図９Ｄ】一実施例における電力制御処理動作を示すフロー図。
【図１０】一実施例における電力制御が異なる消費電力推移の例を示す図。
【図１１】一実施例における電力制御時のブレード管理情報７０１のソート後の様子を示す図。
【発明を実施するための形態】
【００１６】
本発明は、複数のブレード装置を搭載したブレードサーバにおいて、ブレードサーバ全体の消費電力値ＷＳ、ブレード装置の消費電力値ＷＢと稼働状態および電力制御状態を定期的に監視しながら、ブレードサーバ全体の消費電力値ＷＳと、予め規定した未稼働電力閾値Ｐ２及び高負荷電力閾値Ｐ１を比較することで、未稼働状態のブレード装置あるいは高負荷状態のブレード装置の電力制御を実施する。具体的な制御構成については、図４以降を参照して詳しく説明するが、まず、図１〜図３を参照して、本発明の電力制御を概念的に説明する。
【００１７】
図１は、一実施例における電力制御によるブレードサーバ全体の消費電力値ＷＳの推移を示す。
本発明においては、ユーザに規定のブレードサーバ全体の消費電力上限値Ｐ０と、Ｐ０を超えない範囲で高負荷状態のブレード装置に対して電力制御を適用する電力閾値Ｐ１（以下、高負荷電力閾値Ｐ１）と、未稼働状態にあって今後起動する可能性のあるブレード装置に対して電力制御を適用する電力閾値Ｐ２（以下、未稼働電力閾値Ｐ２）をそれぞれ設定する。消費電力値ＷＳが消費電力上限値Ｐ０を超えると、ブレードサーバ全体がダウンとなるので、複数のサーバ装置が高負荷状態で稼動してもＰ０を超えないように、上限値Ｐ０に対してマージンを持たせて、高負荷電力閾値Ｐ１を設定した。
【００１８】
そして、時間ｔの経過と共に変動するブレードサーバ全体の消費電力値ＷＳと、高負荷電力閾値Ｐ１および未稼働電力閾値Ｐ２を比較して、その結果に応じて電力制御の要否を判断する。電力制御が必要な場合には、電力制御対象となるブレード装置を特定し、そのブレード装置の消費電力値が規定の値を超えないように、ブレード装置のＣＰＵクロック周波数を制御することで、常にユーザに規定の消費電力上限値Ｐ０を超えないように維持する。
また、ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収まるように電力制御することで、ブレードサーバ全体の性能を高い状態で維持することができる。
【００１９】
図２（ａ）は、ブレードサーバ全体の消費電力値ＷＳの推移を示す。
１又は複数のブレード装置が稼動中でブレードサーバ全体の現在の消費電力値ＷＳが高負荷電力閾値Ｐ１未満の状態の場合、未稼働状態の１又は複数のブレード装置がその後起動されることが予想される。未稼働状態のブレード装置は、通常、ＢＭＣ（Baseboard Management Controller）におけるクロック制御等の最低限の機能維持のために低消費電力を維持し続けている。しかしそれらが一旦起動されると、ＯＳ（Operating System）等のシステムデータの読み込みのために一時的に高消費電力状態となり、ユーザに規定の消費電力上限値Ｐ０を超えてしまう可能性がある。消費電力値ＷＳが上限値Ｐ０を超えると、電源オーバーとなり、その結果的にサーバ全体がダウンする。これでは、ユーザの要望に応えられない。
そこで、本発明は、未稼働状態の１又は複数のブレード装置が起動した場合に消費電力量が増加することを予想して、ブレードサーバ全体における未稼働のブレード装置の制御に必要な電力の閾値（未稼働電力閾値）Ｐ２を設定する。さらに個々のブレード装置には、図２（ｂ）に示すように、未稼働ブレード装置が稼動した場合に使用することができる一定の消費電力制限値（ＷＢＰ１）を設定し、その消費電力制限値（ＷＢＰ１）以内で各ブレード装置の電力を制御することで、各ブレード装置の起動時における一時的な消費電力値の上昇を軽減する。
【００２０】
図３は、高負荷状態のブレード装置が電力制御されたときの消費電力の推移を示す。高負荷状態のブレード装置は電力制御により消費電力値が抑制された後も、制御された範囲で出力可能な最大消費電力を維持し続ける傾向にあるため、削減されるおおまかな消費電力値aを予測することができる。この傾向を利用してブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収まるように、各ブレード装置の電力制御をすることで、必要以上の性能の低下を防ぎながら、ユーザ規定の消費電力上限値Ｐ０を超えないように制御することができる。
【００２１】
また、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２未満となった場合、電力制御対象となっている稼働中の複数のブレード装置の中から、条件にあった１または複数のサーバ装置を選択して、そのサーバ装置の電力制御の条件を緩和する。このような制御により、当該ブレード装置に供給する電力値を増して、ブレード装置の性能を維持又は向上させることができる。このように、ブレードサーバ全体の消費電力ＷＳを高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収まるように制御することで、そのブレード装置に必要な性能を割り当て、維持することができる。
【００２２】
図４は、ブレードサーバの内部構成を示す。
ブレードサーバ４は、複数の電源ユニット４０１と、複数のＬＡＮ ＳＷ（ＬＡＮスイッチ）４０４と、サーバラックの冷却用の複数のＦＡＮユニット４０５と、搭載可能な複数のブレード装置５と、これらの構成部位間を接続する接続基板４０２と、ブレードサーバ４全体及び搭載されるこれらの構成部位の電源を制御する制御装置４０３を備えて構成される。
【００２３】
ブレード装置５は、プロセッサ（ＣＰＵ）５００と、自身のブレード装置の電力制御を行うと共に現在消費している電力値を取得する機能を持ったＨ／Ｓ（Hot Swap）コントローラ５０４と、ＣＰＵのクロック周波数を制御することができるＢＭＣ５０１等を搭載している（なお、ブレード装置の詳細については図５を参照して後述する）。
複数の電源ユニット４０１は、ＬＡＮ ＳＷ４０４、ＦＡＮユニット４０５及びブレード装置５等のユニットへ電源供給線４０７を介して電力を供給する。電源ユニット４０１は、自身の消費電力を測定する機能を持っており、本実施例では、全ての電源ユニット４０１で測定された消費電力の合計値をブレードサーバ全体の消費電力値ＷＳとして扱う。
【００２４】
制御装置４０３はハードウェアモジュールで構成され、本実施例において特徴的な電源制御を行う。即ち、制御装置４０３は、ＰＭバス４０８を通して電源ユニット４０１の消費電力情報を取得して合算することで、ブレードサーバ全体の消費電力値ＷＳを求め管理する。また、制御装置４０３は、ＳＭバス４０９を通して全てのブレード装置５から、ブレード装置５ごとの稼働状態や消費電力値ＷＢおよび電力制御状況を取得して管理する（管理テーブル７００については図７を参照して後述する）。さらに、制御装置４０３は、ブレードサーバ全体の消費電力値ＷＳと高負荷電力閾値Ｐ１、未稼働電力閾値Ｐ２の大きさを比較し、結果に応じて電力制御をするブレード装置５を決定し、ＳＭバス４０９を通して電力制御命令をそのブレード装置５に発行する。
【００２５】
図５は、ブレード装置５の内部構成を示す。
ブレード装置５は、命令を処理するプロセッサ（ＣＰＵ）５００と、自ブレード装置の消費電力値ＷＢや稼働状態を管理すると共に、ＣＰＵ５００のクロック周波数を制御し及びその制御状態を管理し、またこれらの管理情報を制御装置４０３に通知するＢＭＣ５０１と、外部ネットワークと情報通信を行う通信インタフェース５０２と、電源ユニット４０１から電源供給される電源入力部５０３と、自身のブレード装置の消費電力値ＷＢを取得する機能を持ったＨ／Ｓコントローラ５０４と、種々のデータを蓄積するＲＡＭ部５０５と、大量のデータを記憶することが可能なＨＤＤ（ハードディスクドライブ）５０６と、外部からの入力および結果を出力するＩ／Ｏ部５０７と、ブレード装置５の初期設定や自己判断機能を実施するＢＩＯＳ５０８を有して構成される。
【００２６】
ＢＭＣ５０１は、自ブレード装置５の稼動及び電力制御情報をまとめたブレード情報管理テーブル６００（図６参照）を有する。ＢＭＣ５０１は、Ｈ／Ｓコントローラ５０４から消費電力値ＷＢを取得し、自身が管理するブレード情報管理テーブル６００内の情報の更新し、および制御装置４０３へ通知する。ＢＭＣ５０１はまた、制御装置４０３から電力制御命令を受けることによって規定の消費電力値を超えないようにＣＰＵ５００のクロック周波数を変更制御する。
【００２７】
図６は、ブレード情報管理テーブル６００の構成を示す。
ブレード情報管理テーブル６００は、自ブレード装置の稼働状態Ｒ、自ブレード装置の消費電力値ＷＢ、利用可能な消費電力の上限値を意味する電力制御変数Ｘ、電力制御変数Ｘと対であり消費電力から高負荷状態か判定するための消費電力閾値を意味する制御判定閾値Ｙ、及び高負荷状態が継続した回数を意味する制御カウント数Ｚの各情報を管理する。ここで、稼動状態Ｒは、稼動（ＯＮ）のときを「１」、非稼動（ＯＦＦ）のときを「０」で示す。消費電力値ＷＢは、ＢＭＣ５０１がＨ／Ｓコントローラ５０４から取得した、自ブレード装置５の現在の消費電力値を示す。電力制御変数Ｘは電力制御状態を示し、変数Ｘが「０」のときはそのブレード装置５は電力制御状態でなく（即ち電力制限無しの状態）、電力制御変数Ｘが「１」以上のときは、そのブレード装置５が電力制御状態であることを示している。変数Ｘが大きくなるに従って電力制限状態が増し、変数Ｘが「３」では、電力が３０％の状態（１８Ｗ）、即ち電力を７０％低減させた状態（６０Ｗ×７０％減）に制限することを示している。
【００２８】
制御判定閾値Ｙは、消費電力値ＷＢと比較される電力閾値を示し、電力制御変数Ｘの変動に応じて、この閾値Ｙも変更して設定される。この例では、「０」から「３」までの４段階に変更される。制御カウント数Ｚは、自ブレード装置が高負荷状態になった回数を示す。消費電力値ＷＢが制御判定閾値Ｙの消費電力閾値以上のときには高負荷状態と判定し、その回数を制御カウント数Ｚに反映する。
ブレード情報管理テーブル６００は、消費電力値ＷＢの変動に応じて逐次更新される。（a）は更新前のテーブル６００、（b）は更新後のテーブル６００´を示す。
【００２９】
ＢＭＣ５０１は、制御装置４０３から一定タイミング毎に、ブレード装置５の状態を示す情報（ブレード情報管理テーブル）の取得要求を受けると、Ｈ／Ｓコントローラ５０４から自ブレード装置５の消費電力値ＷＢを取得して、ブレード情報管理テーブル６００の消費電力値ＷＢを更新する。その後、消費電力値ＷＢと現在の制御判定閾値Ｙの消費電力閾値を比較し、その結果により制御カウント数Ｚを更新する。消費電力値ＷＢが制御判定閾値Ｙの消費電力閾値以上のときには、ブレード装置５は高負荷状態であると判定し、制御カウント数Ｚを「１」インクリメントする。消費電力値ＷＢが制御判定閾値Ｙの消費電力閾値未満のときには、ブレード装置５は高負荷状態でないと判断して、制御カウント数Ｚを「０」にクリアする。
【００３０】
図示の例において、電力制御変数Ｘが「１」のときに、Ｈ／Ｓコントローラ５０４より最新の消費電力値ＷＢを取得すると、更新後のブレード情報管理テーブル６００´においては、消費電力値ＷＢが４１Ｗの場合、制御判定閾値Ｙが「１」のときの消費電力閾値３９Ｗ以上の大きさのため（即ち４１>３９）、高負荷状態と判定して、制御カウント数Ｚを「１」インクリメントする。このようにブレード情報管理テーブルを更新した後、ＢＭＣ５０１は、更新したブレード情報管理テーブル６００´の情報（ブレード管理情報７０１となる）を制御装置４０３へ転送する。
また、ＢＭＣ５０１は、制御装置４０３から電力制御変数Ｘの変更命令を受けると、消費電力値ＷＢを電力制御変数Ｘが意味する消費電力上限値以下に収まるように、ＣＰＵ５００のクロック周波数変更の制御を開始する。
【００３１】
図７は、制御装置４０３における管理テーブル７００の構成を示す。
管理テーブル７００は、制御装置４０３の制御下にある、ブレードサーバ全体（サーバラック筐体内）の電力制御に関する情報を管理する。即ち、管理テーブル７００は、本発明に特徴的な、ユーザ規定の消費電力上限値Ｐ０、高負荷電力閾値Ｐ１、未稼働電力閾値Ｐ２、電源ユニット４０１から通知される消費電力情報を合算したブレードサーバ全体の消費電力値ＷＳ、および各ブレード装置５のＢＭＣ５０１から通知される稼働状態Ｒや消費電力値ＷＢ、電力制御状態をブレード装置５ごとにまとめたブレード管理情報７０１を管理する。なお、この管理テーブル７００は、制御装置４０３内のメモリに記憶される。
【００３２】
制御装置４０３は、これら情報を元に定期的にブレードサーバ全体の消費電力値ＷＳ（全てのブレード装置の消費電力値ＷＢ、及びＬＡＮ ＳＷ４０４、ＦＡＮユニット４０５等が消費する消費電力値の合計値）と、高負荷電力閾値Ｐ１及び未稼働電力閾値Ｐ２とを比較し、その結果に応じて電力制御の対象となるブレード装置５の特定および電力制御変数Ｘを決定する。そして、電力制御対象のブレード装置５のＢＭＣ５０１に対して、決定された電力制御変数Ｘの値を変更する命令を発行する。対象となったブレード装置５は、電力制御変数Ｘを変更して自ブレード装置の電力制御を行う（なお、この動作については、図９Ａ，９Ｂを参照して後述する）。そして、電力制御変数Ｘの値の変更命令を発行してから一定時間後、制御装置４０３は、全てのブレード装置５のＢＭＣ５０１および電源ユニット４０１から最新の消費電力情報を取得し、再び電力制御を実施する。
【００３３】
次に、本実施例によるブレードサーバにおける電力制御動作について具体的に説明する。
まず、図８を参照して、ブレードサーバ４の電源を投入したときに行う制御装置４０３への事前設定動作について説明する。
ブレードサーバ４の電源投入により電源ユニット４０１から電力供給線４０７を通してブレードサーバ４内の各構成部位へ通電され、それぞれ稼動し始める（Ｓ８００）。このとき、全てのブレード装置５は未稼働状態であり、制御装置４０３から選択されたブレード装置５のＢＭＣ５０１に起動命令を発行することで起動する。本実施例においては、ブレード装置５を起動する前にユーザ規定の消費電力上限値Ｐ０、高負荷電力閾値Ｐ１、未稼働電力閾値Ｐ２をそれぞれ設定する（Ｓ８０１〜Ｓ８０３）。この設定は、図示していないが、例えば、ブレードサーバ４に接続される管理端末の操作によって行われる。
【００３４】
ここで、高負荷電力閾値Ｐ１は未稼働電力閾値Ｐ２よりも大きい値とする。これらの値はブレードサーバ運用時でも変わることがない固定値であり、電力制御を実施する判断基準となるため運用開始前に設定する。なお、ブレードサーバ４の運用時にブレード装置５の故障等により異なるブレード装置５に入れ替わった際などを想定して、運用時の上記設定値の書き換えは可能である。これらの値の設定が終了すると、任意のブレード装置５を起動し運用を開始する（Ｓ８０４）。
【００３５】
次に、図９Ａ〜９Ｄを参照して、ブレードサーバの運用時における制御装置４０３による電力制御動作について説明する。なお、併せて、図１０に示す電力制御方法の異なる３種類のパターンの消費電力推移も参照する。
まず、制御装置４０３は、ブレードサーバ１００内の全ブレード装置５のＢＭＣ５０１に対してＳＭバス４０９を通して稼働状態Ｒ、消費電力値ＷＢ、電力制御変数Ｘそして制御カウント数Ｚの情報を要求する（Ｓ９０１）。要求を受けたＢＭＣ５０１は、Ｈ／Ｓコントローラ５０４から消費電力値ＷＢを取得した後、ブレード情報管理テーブル６００に管理されている電力閾値Ｙと比較して、自ブレード装置５が高負荷状態にあるか判定し、最新のブレード管理情報を制御装置４０３へ転送する。そして、最新のブレード情報を受取った制御装置４０３は、ブレード管理情報７０１を更新する（Ｓ９０１）。
さらに、制御装置４０３は、全ての電源ユニット４０１からＰＭバス４０８を通して消費電力値情報を取得してこれらを合算することで、ブレードサーバ全体の消費電力値ＷＳを算出し、管理テーブル７００を更新する（Ｓ９０２）。
【００３６】
次に、制御装置４０３は、上記ブレードサーバ全体の消費電力値ＷＳと、未稼働電力閾値Ｐ２および高負荷電力閾値Ｐ１と比較を行う（Ｓ９０３，Ｓ９０４）。その比較結果に応じてそれぞれ異なる電力制御を実施する。以下、各電力制御について説明する。
まず、ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１以上の場合（Ｓ９０４：Ｙｅｓ）の電力の制御動作について説明する。この場合、図１０（ａ）に示すように、制御装置４０３はブレードサーバ全体の消費電力値ＷＳが、高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収束するように、高負荷状態のブレード装置５のＢＭＣ５０１にＳＭバス４０９を通して電力制御変数Ｘを変更する命令を発行し、消費電力値ＷＢの抑制を実施する（Ｓ９０５）。即ち、制御装置４０３は、まず管理テーブル７００の情報を用いて、ブレードサーバ全体の消費電力値ＷＳを高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収めるために、ブレードサーバ全体の消費電力値ＷＳから抑制すべき消費電力値Ｋ（以下、抑制値Ｋ）を計算する。本実施例において、抑制値Ｋはブレードサーバ全体の消費電力値ＷＳから未稼働電力閾値Ｐ２を引いた値とし、電力制御後のブレードサーバ全体の消費電力値ＷＳから低下する消費電力値が制限値Ｋ以下であるとする。
【００３７】
次に、制御装置４０３は、高負荷状態のブレード装置を特定しやすくするため、管理情報７０１を消費電力値ＷＢの大きいブレード装置順にＷＢ１〜ＷＢｎとしてソートする（Ｓ９０６）。
図１１（ａ）にソート後のブレード管理情報７０１の例を示す。制御装置４０３は、電力制御によりブレードサーバ全体の消費電力値ＷＳから低下する消費電力値が抑制値Ｋ以下となるブレード装置を特定するため、全てのブレード装置５に対して電力制御を１段階上げた際に予想される消費電力値ＷＢの変化量（以下、差分  ΔＷＢ）を求める（Ｓ９０７）。電力制御を１段階上げた状態を電力制御変数Ｘ´として、電力制御変数Ｘ´が許容する消費電力上限値から現在の消費電力値ＷＢ１〜ＷＢｎを引いた値を差分値ΔＷＢ１〜  ΔＷＢｎとする。そして、制御装置４０３は、ΔＷＢ１〜ΔＷＢｎを順番に積算してΔＷＢの合計値を計算し（Ｓ９０９）、計算したΔＷＢの合計値（以下、合計値ΣΔＷＢ）と抑制値Ｋとの比較を繰り返す（Ｓ９１０〜Ｓ９１２）。
【００３８】
上記比較の結果、合計値ΣΔＷＢ）が抑制値Ｋを越えた場合（Ｓ９１０：Ｙｅｓ）、差分値  ΔＷＢの積算を止める。ここで、抑制値Ｋを超える直前までのブレード装置を電力制御対象とする。図１１（ａ）の例では、上位３台までのブレード装置の差分合計値ΣΔＷＢ（即ち８＋３＋１２＝２３Ｗ）が抑制値Ｋ（＝３０Ｗ）を超える直前の電力制御対象となる。また、全ての差分値  ΔＷＢの合計値ΣΔＷＢが抑制値Ｋを超えない場合は、全てのブレード装置５を電力制御対象とする。
【００３９】
制御装置４０６は、電力制御対象となった全てのブレード装置５のＢＭＣ５０１に対して（図１１（a）の例では、ブレード装置＃Ｂ２，Ｂ４，Ｂ３の３台に対して）、現在の電力制御変数Ｘを１インクリメントした値に変更する命令を発行する（Ｓ９１３、Ｓ９１１２）。電力制御変数Ｘの変更命令を受取ったＢＭＣ５０１は、ブレード情報管理テーブル６００を更新した後、自ブレード装置５の消費電力値ＷＢが電力制御変数Ｘの許容する消費電力上限値内に収まるように、ＣＰＵ５００のクロック周波数を低減させる制御を開始する。
【００４０】
また制御装置４０３は、管理情報７０１の電力制御変数Ｘと稼働状態Ｒの情報を元に、電力制御されていない未稼働状態（電力制御変数Ｘが０）のブレード装置５を検索する（Ｓ９１４）。検索の結果、該当するブレード装置５が存在する場合、制御装置４０３は、そのブレード装置４０３のＢＭＣ５０１に対して、電力制御変数Ｘの値を「１」に変更する命令を発行する（Ｓ９１５）。電力制御変数Ｘを受取ったブレード装置のＢＭＣ５０１は、ブレード情報管理テーブル６００の内容を更新した後、自ブレード装置５の消費電力値ＷＢが電力制御変数Ｘの許容する消費電力値内に収まるように、ＣＰＵ５００のクロック周波数の制御を開始する。この場合、クロック周波数を低減するように制御する。これにより、ブレード装置の起動時の一時的な消費電力の上昇を軽減する。
上記処理が完了した後一定時間が経過すると、再び上記処理を最初から繰り返す（Ｓ９１６）。
【００４１】
次に、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２以上でかつ高負荷電力閾値Ｐ１未満の場合の制御動作について説明する（Ｓ９０４：Ｎｏ）。この場合、図１０（ｂ）に示すように、制御装置４０３は、電力制御されていない未稼働状態のブレード装置を探してそのブレード装置に対して電力制御することで、起動時の一時的な消費電力上昇を軽減する。即ち、制御装置４０３は、ブレード管理情報７０１の電力制御変数Ｘと稼働状態Ｒの情報を元に、電力制御されていない未稼働状態（電力制御変数Ｘが０、及び稼動状態Ｒが０）のブレード装置を検索して、該当するブレード装置を特定し（Ｓ９２１）、そのブレード装置のＢＭＣ５０１に対して電力制御変数Ｘを「１」に変更する命令を発行する（Ｓ９２２）。制御対象となったブレード装置５のＢＭＣ５０１は、電力制御変数Ｘを「１」に変更する命令を受信すると、ブレード情報管理テーブル６００の内容を更新した後、自ブレード装置５の消費電力値ＷＢが電力制御変数Ｘの許容する消費電力値内に収まるようＣＰＵ５００のクロック周波数の制御を開始する。これにより起動時の一時的な消費電力の上昇を軽減する。上記処理が完了した後一定時間が経過すると、再び上記処理を最初から繰り返す（Ｓ９２３）。
【００４２】
次に、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２未満の場合の電力制御動作について説明する（Ｓ９０３：Ｎｏ、図９Ｃ参照）。
図１０（ｃ）に示すように、ブレードサーバ全体の消費電力値ＷＳが未稼働電力閾値Ｐ２未満であるとき、制御装置４０３は、管理テーブル７００のブレード管理情報７０１を検索して、電力制御変数Ｘから電力制御されたブレード装置５（電力制御変数Ｘが１以上）が存在するか確認する（Ｓ９４１）。確認の結果、電力制御されたブレード装置５が存在する場合は（Ｓ９４１：Ｙｅｓ）、ブレードサーバ全体の消費電力値ＷＳが高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収束するように、ブレード装置５のＢＭＣ５０１に電力制御変数Ｘの値を変更する命令を発行し、電力制御を緩和させることでブレードサーバ全体の消費電力値ＷＳの増加を実施する。
【００４３】
即ち、制御装置４０３は、ブレード管理情報７０１の情報を用いて、ブレードサーバ全体の消費電力値ＷＳを高負荷電力閾値Ｐ１と未稼働電力閾値Ｐ２の間に収めるために、上記ブレードサーバ全体の消費電力値ＷＳに対して増加すべき消費電力値Ｌ（以下、増加値Ｌ）を計算する（Ｓ９４２）。本実施例では、増加値Ｌは高負荷電力閾値Ｐ１からブレードサーバ全体の消費電力値ＷＳを引いた値とし、電力制御後のブレードサーバ全体の消費電力値ＷＳから増加する消費電力値が増加値Ｌ以下であるとする。
【００４４】
次に、電力制御を緩和すると、消費電力値ＷＢの増加が見込めるブレード装置５を特定しやすくするために、ブレード管理情報７０１から電力制御変数Ｘが「１」以上のブレード管理情報を抽出する。そして、この抽出された情報から制御カウント数Ｚが大きいかつ消費電力値ＷＢが大きい順にＷＢ１〜ＷＢｎとしてソートする（Ｓ９４３）。
【００４５】
図１１（ｂ）に、ソート後のブレード管理情報７０１の例を示す。制御装置４０３は、電力制御によりブレードサーバ全体の消費電力値ＷＳから増加する消費電力値が増加値Ｋ以下となるブレード装置５を特定するため、全てのブレード装置５に対して電力制御を１段階下げた際に予想される差分ΔＷＢを求める（Ｓ９４４）。電力制御を１段階下げた状態を電力制御変数Ｘ´として、電力制御変数Ｘ´が許容する消費電力上限値から現在の消費電力値ＷＢ１〜ＷＢｎを引いた値を差分値ΔＷＢ１〜ΔＷＢｎとする。
【００４６】
制御装置４０３は、差分値ΔＷＢ１〜ΔＷＢｎを順番に積算して合計値ΣΔＷＢを計算し（Ｓ９４６）、更に増加値Ｌとの比較を繰り返す（Ｓ９４７〜Ｓ９４９）。比較の結果、合計値ΣΔＷＢが増加値Ｌを越えたとき、差分値ΔＷＢの積算を止める。ここで、増加値Ｌを超える直前までのブレード装置５を電力制御対象とする。図１１（ｂ）では、上位２台のブレード装置（ブレード装置＃Ｂ５，Ｂ３の２台）が増加値Ｌを超える直前の電力制御対象とする（即ち、即ち１２＋１３＝２５Ｗ＜３０となり、増加値Ｌを越える直前の値となる）。また、全ての差分値ΔＷＢの合計値ΣΔＷＢが増加値Ｌを超えない場合は、電力制御された全てのブレード装置５を電力制御対象とする。
【００４７】
制御装置４０６は、電力制御対象となった全てのブレード装置５のＢＭＣ５０１に対して現在の電力制御変数Ｘを１デクリメントした値に変更する命令を発行する（Ｓ９５０，Ｓ９４８１）。電力制御変数Ｘの変更命令を受取ったブレード装置５のＢＭＣ５０１は、ブレード情報管理テーブル６００の内容を更新した後、自ブレード装置５の消費電力値ＷＢが電力制御変数Ｘの許容する消費電力上限値内に収まるように、ＣＰＵ５００のクロック周波数の制御を開始する。この場合は、クロック周波数を増加制御する。これによって当該ブレード装置の処理速度が向上して性能が維持される。
【００４８】
また、電力制御されているブレード装置（電力制御変数Ｘが１以上）であって制御カウント数Ｚの値が０のブレード装置５は、高負荷状態でなく、電力制御を緩和しても消費電力値ＷＢの上昇はないため、対象となるブレード装置を検索して探し（Ｓ９５１）、その結果、該当するブレード装置５のＢＭＣ５０１に対して、電力制御変数Ｘの値を「０」に変更する命令を発行する（Ｓ９５２）。対象のブレード装置５のＢＭＣ５０１は、電力制御変数Ｘの値を「０」に変更する命令を受信すると、「１」以上になっていた電力制御変数Ｘの値を「０」にセットして、電力制御状態を解除する（Ｓ９５２）。
【００４９】
この処理が完了した後、一定時間が経過すると、開始に戻り上記処理動作を最初から繰り返す（Ｓ９５３）。なお、上記ブレード管理情報７０１の検索の結果、電力制御されたブレード装置（電力制御変数Ｘが１以上）が存在しない場合も、制御装置４０３は特別な処理をせず、一定時間経過後、開始に戻って上記処理動作を最初から繰り返す（Ｓ９６１）。
【符号の説明】
【００５０】
４：ブレードサーバ    ４０１：電源ユニット    ４０２：接続基板        ４０３：制御装置      ４０４：ＬＡＮＳＷ      ４０５：ＦＡＮユニット  ４０７：電力供給線    ４０８：ＰＭバス        ４０９：ＳＭバス  
５：ブレード装置      ５００：ＣＰＵ          ５０１：ＢＭＣ  
５０２：通信インタフェース  ５０３：電圧入力部  
５０４：Ｈ／Ｓコントローラ  ５０５：ＲＡＭ    ５０６：ＨＤＤ  
５０７：Ｉ／Ｏ        ５０８：ＢＩＯＳ  
６００：ブレード情報管理テーブル      ７００：管理テーブル
７０１：ブレード管理情報
【図１】
0005663383.tif 000002
【図２】
0005663383.tif 000003
【図３】
0005663383.tif 000004
【図４】
0005663383.tif 000005
【図５】
0005663383.tif 000006
【図６】
0005663383.tif 000007
【図７】
0005663383.tif 000008
【図８】
0005663383.tif 000009
【図９Ａ】
0005663383.tif 000010
【図９Ｂ】
0005663383.tif 000011
【図９Ｃ】
0005663383.tif 000012
【図９Ｄ】
0005663383.tif 000013
【図１０】
0005663383.tif 000014
【図１１】
0005663383.tif 000015