説明

ブレードサーバの電力制御方法及びシステム

【課題】ブレードサーバ全体の消費電力を監視し、ブレードサーバ全体の性能を保障しつつユーザに規定の消費電力値を超えないように電力制御する。
【解決手段】自身の消費電力を制御できる複数のブレード装置と、複数のブレード装置の消費電力及び稼働状態、並びに電源ユニットの消費電力を監視して電力制御する制御装置を有するブレードサーバにおいて、制御装置は高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値を予め設定する。制御装置は、ブレードサーバ全体の消費電力値が、高負荷電力閾値と未稼働電力閾値の間で収束するように、複数のブレード装置から取得したブレード装置の稼働状態、消費電力値及び電力制御に関する情報を参照して、対象となるブレード装置を選択して電力制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブレードサーバの電力制御方法及びシステムに係り、特に、複数のブレード装置を搭載したブレードサーバの高性能を維持しつつ、規定の消費電力値を超えない運用を可能とする電力制御に関する。
【背景技術】
【0002】
ブレードサーバは、マザーボード上にプロセッサやメモリ等を高密度に実装した複数台のブレード装置を専用のラックに搭載したコンピュータであり、電源ユニットや冷却用のFANユニットを共有することで、省スペース及び運用コストを削減することができる。
【0003】
近年、ブレードサーバの高集積化、ブレード装置単体の仕様の向上に伴い、ラック単位におけるブレードサーバの消費電力が増加している。一方、ブレードサーバが設置されるデータセンタ等には、利用できる電源容量に制限があるので、ラックに搭載されるブレード装置の台数を制限しなければならないという事態が生じる。そこで、ユーザの要望に応じたサーバの性能を確保しながら、所定の消費電力値を超えることがないように電力制御することが重要となっている。
【0004】
コンピュータシステムにおける電力制御技術として、情報処理装置で最も消費電力割合が大きいCPUのクロック周波数を規定の周波数値に制御することで、情報処理装置の消費電力値を一定値以下に制限する方法が知られ、この方法は有効とされている。
【0005】
例えば、特許文献1には、ブレードサーバの筐体内の他ブレードの消費電力値、供給可能電力値を取得して、他ブレードの消費電力の合計値と供給可能電力値との差分値と求め、この差分値に基づいて自ブレードの可能な動作モードを判定して、判定結果によって自ブレードの動作モードを制御することにより、ブレードサーバ全体の電力制御管理を可能とする、ブレードサーバ乃至電力管理方法が記載されている。
【0006】
また、特許文献2には、選択的に利用度の低いデバイスのデバイス電力制限を低下させ、利用度の高いデバイスのデバイス電力制限を上昇させることにより、システムに利用可能な電力をよりよく利用し、サーバに対するスループットを最大限とする電力管理システム乃至方法が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−83841号公報
【特許文献2】特開2009−116862号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1および2に記載の技術は、ブレード装置毎の消費電力値を取得しその合計をブレードサーバ全体の消費電力値として扱っている。上記したように、ブレードサーバには各ブレード装置で共有する電源ユニットやFANユニット等が存在するため、ブレードサーバ全体の消費電力値としてはこれら装置の消費電力値も考慮すべきである。ブレードサーバが複数の電源ユニットや複数のFANユニットを有する場合、消費電力の低減を目的にブレード装置の稼働台数や温度状況により、電源ユニットの稼働台数が変化し、またFANユニットの回転数が変化する機能を持つものも存在する。
【0009】
これらのユニットによる筐体内の消費電力の変化はブレード装置の電力制御に影響を及ぼすことがある。これらのユニットが低消費電力の状態にあるときには、ブレードサーバ全体の電力リソースに余りが生じることがある。この場合、余った電力リソースを利用してブレードサーバの性能の維持或いは向上したいが、従来のブレードサーバにおける電力制御では、必ずしも余った電力リソースを有効に活用しているとは言い難い。
【0010】
本発明は、上記に鑑み、ブレードサーバ全体の消費電力を監視して、ブレードサーバの性能を保障しつつ、ユーザに規定の消費電力値を超えないように電力制御することにある。
【課題を解決するための手段】
【0011】
本発明によるブレードサーバの電力制御方法は、好ましくは、自身の消費電力を制御できる複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して電力制御する制御装置を有するブレードサーバにおける電力制御方法であって、
該制御装置は、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値P1と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値P2を設定し、
複数のブレード装置から、ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を取得し、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値WSを算出し、
該消費電力値WSが、該高負荷電力閾値P1と該未稼働電力閾値P2の間で収束するように、取得した該ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御することを特徴とするブレードサーバの電力制御方法として構成される。
【0012】
好ましい例では、ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1を超えたとき、該制御装置は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御する。
また、好ましくは、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を超えたとき、該制御装置は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を低減制御する。
また、好ましくは、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を未満となったとき、該制御装置は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御する。
【0013】
本発明によるブレードサーバの電力制御システムは、好ましくは、命令を処理するプロセッサを有する複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して制御する制御装置を有するブレードサーバにおける電力制御システムであって、
該制御装置は;
予め設定された、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値P1と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値P2を保持する手段と、該複数のブレード装置に要求して、各ブレード装置の消費電力値WB及び稼働状態に関する情報を取得する手段と、該複数のブレード装置から得られた各ブレード装置の消費電力値WB及び稼働状態に関する情報を管理する第1の管理テーブルと、該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値WSを算出する手段と、予め設定された、該高負荷電力閾値P1及び該未稼働電力閾値P2、及び該第1の管理テーブルの情報に基づいて、電力制御の対象となるブレード装置を選択し、該ブレード装置に対して電力制御を行う命令を発する制御手段と、を有し、
該各ブレード装置は;
自ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を管理する第2の管理テーブルと、該第2の管理テーブルで管理される該情報を該制御装置へ転送する手段と、該制御装置から発せられる該電力制御命令に基づいて、自ブレード装置における該プロセッサのクロック周波数を変更制御する手段と、を有し、
該制御装置の該制御手段は、算出された該消費電力値WSが、該高負荷電力閾値P1と該未稼働電力閾値P2の間で収束するように、該第1の管理テーブルの情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御を行う命令を発し、
該ブレード装置の該変更制御手段は、該電力制御命令に従って、該プロセッサのクロック周波数を変更制御することを特徴とするブレードサーバの電力制御システムとして構成される。
【発明の効果】
【0014】
本発明によれば、ブレードサーバ全体の性能を維持しながら、ユーザに規定の消費電力値を超えないように電力制御することが可能となる。より具体的に言えば、ブレード装置単体の消費電力だけでなくブレードサーバ全体の消費電力値を把握して、ブレードサーバ全体の消費電力値が規定値を超える可能性があると判断されるとき、事前に設定された閾値の範囲内で維持し続けるように電力制御することで、ブレードサーバ全体の性能を維持しつつ、規定の消費電力値を超えないように電力制御することが可能となる。
【図面の簡単な説明】
【0015】
【図1】一実施例におけるブレードサーバの消費電力の推移を示す図。
【図2】一実施例におけるブレードサーバ全体及びブレード装置の消費電力の推移を示す図。
【図3】一実施例における高負荷状態のブレード装置の電力制御時の消費電力の推移を示す図。
【図4】一実施例におけるブレードサーバの構成を示す図。
【図5】一実施例におけるブレード装置の構成を示す図。
【図6】一実施例におけるブレード情報管理テーブル600の構成を示す図。
【図7】一実施例における制御装置の管理テーブル700の構成を示す図。
【図8】一実施例におけるブレードサーバ起動時の事前設定処理動作を示すフロー図。
【図9A】一実施例における電力制御処理動作を示すフロー図。
【図9B】一実施例における電力制御処理動作を示すフロー図。
【図9C】一実施例における電力制御処理動作を示すフロー図。
【図9D】一実施例における電力制御処理動作を示すフロー図。
【図10】一実施例における電力制御が異なる消費電力推移の例を示す図。
【図11】一実施例における電力制御時のブレード管理情報701のソート後の様子を示す図。
【発明を実施するための形態】
【0016】
本発明は、複数のブレード装置を搭載したブレードサーバにおいて、ブレードサーバ全体の消費電力値WS、ブレード装置の消費電力値WBと稼働状態および電力制御状態を定期的に監視しながら、ブレードサーバ全体の消費電力値WSと、予め規定した未稼働電力閾値P2及び高負荷電力閾値P1を比較することで、未稼働状態のブレード装置あるいは高負荷状態のブレード装置の電力制御を実施する。具体的な制御構成については、図4以降を参照して詳しく説明するが、まず、図1〜図3を参照して、本発明の電力制御を概念的に説明する。
【0017】
図1は、一実施例における電力制御によるブレードサーバ全体の消費電力値WSの推移を示す。
本発明においては、ユーザに規定のブレードサーバ全体の消費電力上限値P0と、P0を超えない範囲で高負荷状態のブレード装置に対して電力制御を適用する電力閾値P1(以下、高負荷電力閾値P1)と、未稼働状態にあって今後起動する可能性のあるブレード装置に対して電力制御を適用する電力閾値P2(以下、未稼働電力閾値P2)をそれぞれ設定する。消費電力値WSが消費電力上限値P0を超えると、ブレードサーバ全体がダウンとなるので、複数のサーバ装置が高負荷状態で稼動してもP0を超えないように、上限値P0に対してマージンを持たせて、高負荷電力閾値P1を設定した。
【0018】
そして、時間tの経過と共に変動するブレードサーバ全体の消費電力値WSと、高負荷電力閾値P1および未稼働電力閾値P2を比較して、その結果に応じて電力制御の要否を判断する。電力制御が必要な場合には、電力制御対象となるブレード装置を特定し、そのブレード装置の消費電力値が規定の値を超えないように、ブレード装置のCPUクロック周波数を制御することで、常にユーザに規定の消費電力上限値P0を超えないように維持する。
また、ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1と未稼働電力閾値P2の間に収まるように電力制御することで、ブレードサーバ全体の性能を高い状態で維持することができる。
【0019】
図2(a)は、ブレードサーバ全体の消費電力値WSの推移を示す。
1又は複数のブレード装置が稼動中でブレードサーバ全体の現在の消費電力値WSが高負荷電力閾値P1未満の状態の場合、未稼働状態の1又は複数のブレード装置がその後起動されることが予想される。未稼働状態のブレード装置は、通常、BMC(Baseboard Management Controller)におけるクロック制御等の最低限の機能維持のために低消費電力を維持し続けている。しかしそれらが一旦起動されると、OS(Operating System)等のシステムデータの読み込みのために一時的に高消費電力状態となり、ユーザに規定の消費電力上限値P0を超えてしまう可能性がある。消費電力値WSが上限値P0を超えると、電源オーバーとなり、その結果的にサーバ全体がダウンする。これでは、ユーザの要望に応えられない。
そこで、本発明は、未稼働状態の1又は複数のブレード装置が起動した場合に消費電力量が増加することを予想して、ブレードサーバ全体における未稼働のブレード装置の制御に必要な電力の閾値(未稼働電力閾値)P2を設定する。さらに個々のブレード装置には、図2(b)に示すように、未稼働ブレード装置が稼動した場合に使用することができる一定の消費電力制限値(WBP1)を設定し、その消費電力制限値(WBP1)以内で各ブレード装置の電力を制御することで、各ブレード装置の起動時における一時的な消費電力値の上昇を軽減する。
【0020】
図3は、高負荷状態のブレード装置が電力制御されたときの消費電力の推移を示す。高負荷状態のブレード装置は電力制御により消費電力値が抑制された後も、制御された範囲で出力可能な最大消費電力を維持し続ける傾向にあるため、削減されるおおまかな消費電力値aを予測することができる。この傾向を利用してブレードサーバ全体の消費電力値WSが高負荷電力閾値P1と未稼働電力閾値P2の間に収まるように、各ブレード装置の電力制御をすることで、必要以上の性能の低下を防ぎながら、ユーザ規定の消費電力上限値P0を超えないように制御することができる。
【0021】
また、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2未満となった場合、電力制御対象となっている稼働中の複数のブレード装置の中から、条件にあった1または複数のサーバ装置を選択して、そのサーバ装置の電力制御の条件を緩和する。このような制御により、当該ブレード装置に供給する電力値を増して、ブレード装置の性能を維持又は向上させることができる。このように、ブレードサーバ全体の消費電力WSを高負荷電力閾値P1と未稼働電力閾値P2の間に収まるように制御することで、そのブレード装置に必要な性能を割り当て、維持することができる。
【0022】
図4は、ブレードサーバの内部構成を示す。
ブレードサーバ4は、複数の電源ユニット401と、複数のLAN SW(LANスイッチ)404と、サーバラックの冷却用の複数のFANユニット405と、搭載可能な複数のブレード装置5と、これらの構成部位間を接続する接続基板402と、ブレードサーバ4全体及び搭載されるこれらの構成部位の電源を制御する制御装置403を備えて構成される。
【0023】
ブレード装置5は、プロセッサ(CPU)500と、自身のブレード装置の電力制御を行うと共に現在消費している電力値を取得する機能を持ったH/S(Hot Swap)コントローラ504と、CPUのクロック周波数を制御することができるBMC501等を搭載している(なお、ブレード装置の詳細については図5を参照して後述する)。
複数の電源ユニット401は、LAN SW404、FANユニット405及びブレード装置5等のユニットへ電源供給線407を介して電力を供給する。電源ユニット401は、自身の消費電力を測定する機能を持っており、本実施例では、全ての電源ユニット401で測定された消費電力の合計値をブレードサーバ全体の消費電力値WSとして扱う。
【0024】
制御装置403はハードウェアモジュールで構成され、本実施例において特徴的な電源制御を行う。即ち、制御装置403は、PMバス408を通して電源ユニット401の消費電力情報を取得して合算することで、ブレードサーバ全体の消費電力値WSを求め管理する。また、制御装置403は、SMバス409を通して全てのブレード装置5から、ブレード装置5ごとの稼働状態や消費電力値WBおよび電力制御状況を取得して管理する(管理テーブル700については図7を参照して後述する)。さらに、制御装置403は、ブレードサーバ全体の消費電力値WSと高負荷電力閾値P1、未稼働電力閾値P2の大きさを比較し、結果に応じて電力制御をするブレード装置5を決定し、SMバス409を通して電力制御命令をそのブレード装置5に発行する。
【0025】
図5は、ブレード装置5の内部構成を示す。
ブレード装置5は、命令を処理するプロセッサ(CPU)500と、自ブレード装置の消費電力値WBや稼働状態を管理すると共に、CPU500のクロック周波数を制御し及びその制御状態を管理し、またこれらの管理情報を制御装置403に通知するBMC501と、外部ネットワークと情報通信を行う通信インタフェース502と、電源ユニット401から電源供給される電源入力部503と、自身のブレード装置の消費電力値WBを取得する機能を持ったH/Sコントローラ504と、種々のデータを蓄積するRAM部505と、大量のデータを記憶することが可能なHDD(ハードディスクドライブ)506と、外部からの入力および結果を出力するI/O部507と、ブレード装置5の初期設定や自己判断機能を実施するBIOS508を有して構成される。
【0026】
BMC501は、自ブレード装置5の稼動及び電力制御情報をまとめたブレード情報管理テーブル600(図6参照)を有する。BMC501は、H/Sコントローラ504から消費電力値WBを取得し、自身が管理するブレード情報管理テーブル600内の情報の更新し、および制御装置403へ通知する。BMC501はまた、制御装置403から電力制御命令を受けることによって規定の消費電力値を超えないようにCPU500のクロック周波数を変更制御する。
【0027】
図6は、ブレード情報管理テーブル600の構成を示す。
ブレード情報管理テーブル600は、自ブレード装置の稼働状態R、自ブレード装置の消費電力値WB、利用可能な消費電力の上限値を意味する電力制御変数X、電力制御変数Xと対であり消費電力から高負荷状態か判定するための消費電力閾値を意味する制御判定閾値Y、及び高負荷状態が継続した回数を意味する制御カウント数Zの各情報を管理する。ここで、稼動状態Rは、稼動(ON)のときを「1」、非稼動(OFF)のときを「0」で示す。消費電力値WBは、BMC501がH/Sコントローラ504から取得した、自ブレード装置5の現在の消費電力値を示す。電力制御変数Xは電力制御状態を示し、変数Xが「0」のときはそのブレード装置5は電力制御状態でなく(即ち電力制限無しの状態)、電力制御変数Xが「1」以上のときは、そのブレード装置5が電力制御状態であることを示している。変数Xが大きくなるに従って電力制限状態が増し、変数Xが「3」では、電力が30%の状態(18W)、即ち電力を70%低減させた状態(60W×70%減)に制限することを示している。
【0028】
制御判定閾値Yは、消費電力値WBと比較される電力閾値を示し、電力制御変数Xの変動に応じて、この閾値Yも変更して設定される。この例では、「0」から「3」までの4段階に変更される。制御カウント数Zは、自ブレード装置が高負荷状態になった回数を示す。消費電力値WBが制御判定閾値Yの消費電力閾値以上のときには高負荷状態と判定し、その回数を制御カウント数Zに反映する。
ブレード情報管理テーブル600は、消費電力値WBの変動に応じて逐次更新される。(a)は更新前のテーブル600、(b)は更新後のテーブル600´を示す。
【0029】
BMC501は、制御装置403から一定タイミング毎に、ブレード装置5の状態を示す情報(ブレード情報管理テーブル)の取得要求を受けると、H/Sコントローラ504から自ブレード装置5の消費電力値WBを取得して、ブレード情報管理テーブル600の消費電力値WBを更新する。その後、消費電力値WBと現在の制御判定閾値Yの消費電力閾値を比較し、その結果により制御カウント数Zを更新する。消費電力値WBが制御判定閾値Yの消費電力閾値以上のときには、ブレード装置5は高負荷状態であると判定し、制御カウント数Zを「1」インクリメントする。消費電力値WBが制御判定閾値Yの消費電力閾値未満のときには、ブレード装置5は高負荷状態でないと判断して、制御カウント数Zを「0」にクリアする。
【0030】
図示の例において、電力制御変数Xが「1」のときに、H/Sコントローラ504より最新の消費電力値WBを取得すると、更新後のブレード情報管理テーブル600´においては、消費電力値WBが41Wの場合、制御判定閾値Yが「1」のときの消費電力閾値39W以上の大きさのため(即ち41>39)、高負荷状態と判定して、制御カウント数Zを「1」インクリメントする。このようにブレード情報管理テーブルを更新した後、BMC501は、更新したブレード情報管理テーブル600´の情報(ブレード管理情報701となる)を制御装置403へ転送する。
また、BMC501は、制御装置403から電力制御変数Xの変更命令を受けると、消費電力値WBを電力制御変数Xが意味する消費電力上限値以下に収まるように、CPU500のクロック周波数変更の制御を開始する。
【0031】
図7は、制御装置403における管理テーブル700の構成を示す。
管理テーブル700は、制御装置403の制御下にある、ブレードサーバ全体(サーバラック筐体内)の電力制御に関する情報を管理する。即ち、管理テーブル700は、本発明に特徴的な、ユーザ規定の消費電力上限値P0、高負荷電力閾値P1、未稼働電力閾値P2、電源ユニット401から通知される消費電力情報を合算したブレードサーバ全体の消費電力値WS、および各ブレード装置5のBMC501から通知される稼働状態Rや消費電力値WB、電力制御状態をブレード装置5ごとにまとめたブレード管理情報701を管理する。なお、この管理テーブル700は、制御装置403内のメモリに記憶される。
【0032】
制御装置403は、これら情報を元に定期的にブレードサーバ全体の消費電力値WS(全てのブレード装置の消費電力値WB、及びLAN SW404、FANユニット405等が消費する消費電力値の合計値)と、高負荷電力閾値P1及び未稼働電力閾値P2とを比較し、その結果に応じて電力制御の対象となるブレード装置5の特定および電力制御変数Xを決定する。そして、電力制御対象のブレード装置5のBMC501に対して、決定された電力制御変数Xの値を変更する命令を発行する。対象となったブレード装置5は、電力制御変数Xを変更して自ブレード装置の電力制御を行う(なお、この動作については、図9A,9Bを参照して後述する)。そして、電力制御変数Xの値の変更命令を発行してから一定時間後、制御装置403は、全てのブレード装置5のBMC501および電源ユニット401から最新の消費電力情報を取得し、再び電力制御を実施する。
【0033】
次に、本実施例によるブレードサーバにおける電力制御動作について具体的に説明する。
まず、図8を参照して、ブレードサーバ4の電源を投入したときに行う制御装置403への事前設定動作について説明する。
ブレードサーバ4の電源投入により電源ユニット401から電力供給線407を通してブレードサーバ4内の各構成部位へ通電され、それぞれ稼動し始める(S800)。このとき、全てのブレード装置5は未稼働状態であり、制御装置403から選択されたブレード装置5のBMC501に起動命令を発行することで起動する。本実施例においては、ブレード装置5を起動する前にユーザ規定の消費電力上限値P0、高負荷電力閾値P1、未稼働電力閾値P2をそれぞれ設定する(S801〜S803)。この設定は、図示していないが、例えば、ブレードサーバ4に接続される管理端末の操作によって行われる。
【0034】
ここで、高負荷電力閾値P1は未稼働電力閾値P2よりも大きい値とする。これらの値はブレードサーバ運用時でも変わることがない固定値であり、電力制御を実施する判断基準となるため運用開始前に設定する。なお、ブレードサーバ4の運用時にブレード装置5の故障等により異なるブレード装置5に入れ替わった際などを想定して、運用時の上記設定値の書き換えは可能である。これらの値の設定が終了すると、任意のブレード装置5を起動し運用を開始する(S804)。
【0035】
次に、図9A〜9Dを参照して、ブレードサーバの運用時における制御装置403による電力制御動作について説明する。なお、併せて、図10に示す電力制御方法の異なる3種類のパターンの消費電力推移も参照する。
まず、制御装置403は、ブレードサーバ100内の全ブレード装置5のBMC501に対してSMバス409を通して稼働状態R、消費電力値WB、電力制御変数Xそして制御カウント数Zの情報を要求する(S901)。要求を受けたBMC501は、H/Sコントローラ504から消費電力値WBを取得した後、ブレード情報管理テーブル600に管理されている電力閾値Yと比較して、自ブレード装置5が高負荷状態にあるか判定し、最新のブレード管理情報を制御装置403へ転送する。そして、最新のブレード情報を受取った制御装置403は、ブレード管理情報701を更新する(S901)。
さらに、制御装置403は、全ての電源ユニット401からPMバス408を通して消費電力値情報を取得してこれらを合算することで、ブレードサーバ全体の消費電力値WSを算出し、管理テーブル700を更新する(S902)。
【0036】
次に、制御装置403は、上記ブレードサーバ全体の消費電力値WSと、未稼働電力閾値P2および高負荷電力閾値P1と比較を行う(S903,S904)。その比較結果に応じてそれぞれ異なる電力制御を実施する。以下、各電力制御について説明する。
まず、ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1以上の場合(S904:Yes)の電力の制御動作について説明する。この場合、図10(a)に示すように、制御装置403はブレードサーバ全体の消費電力値WSが、高負荷電力閾値P1と未稼働電力閾値P2の間に収束するように、高負荷状態のブレード装置5のBMC501にSMバス409を通して電力制御変数Xを変更する命令を発行し、消費電力値WBの抑制を実施する(S905)。即ち、制御装置403は、まず管理テーブル700の情報を用いて、ブレードサーバ全体の消費電力値WSを高負荷電力閾値P1と未稼働電力閾値P2の間に収めるために、ブレードサーバ全体の消費電力値WSから抑制すべき消費電力値K(以下、抑制値K)を計算する。本実施例において、抑制値Kはブレードサーバ全体の消費電力値WSから未稼働電力閾値P2を引いた値とし、電力制御後のブレードサーバ全体の消費電力値WSから低下する消費電力値が制限値K以下であるとする。
【0037】
次に、制御装置403は、高負荷状態のブレード装置を特定しやすくするため、管理情報701を消費電力値WBの大きいブレード装置順にWB1〜WBnとしてソートする(S906)。
図11(a)にソート後のブレード管理情報701の例を示す。制御装置403は、電力制御によりブレードサーバ全体の消費電力値WSから低下する消費電力値が抑制値K以下となるブレード装置を特定するため、全てのブレード装置5に対して電力制御を1段階上げた際に予想される消費電力値WBの変化量(以下、差分 ΔWB)を求める(S907)。電力制御を1段階上げた状態を電力制御変数X´として、電力制御変数X´が許容する消費電力上限値から現在の消費電力値WB1〜WBnを引いた値を差分値ΔWB1〜 ΔWBnとする。そして、制御装置403は、ΔWB1〜ΔWBnを順番に積算してΔWBの合計値を計算し(S909)、計算したΔWBの合計値(以下、合計値ΣΔWB)と抑制値Kとの比較を繰り返す(S910〜S912)。
【0038】
上記比較の結果、合計値ΣΔWB)が抑制値Kを越えた場合(S910:Yes)、差分値 ΔWBの積算を止める。ここで、抑制値Kを超える直前までのブレード装置を電力制御対象とする。図11(a)の例では、上位3台までのブレード装置の差分合計値ΣΔWB(即ち8+3+12=23W)が抑制値K(=30W)を超える直前の電力制御対象となる。また、全ての差分値 ΔWBの合計値ΣΔWBが抑制値Kを超えない場合は、全てのブレード装置5を電力制御対象とする。
【0039】
制御装置406は、電力制御対象となった全てのブレード装置5のBMC501に対して(図11(a)の例では、ブレード装置#B2,B4,B3の3台に対して)、現在の電力制御変数Xを1インクリメントした値に変更する命令を発行する(S913、S9112)。電力制御変数Xの変更命令を受取ったBMC501は、ブレード情報管理テーブル600を更新した後、自ブレード装置5の消費電力値WBが電力制御変数Xの許容する消費電力上限値内に収まるように、CPU500のクロック周波数を低減させる制御を開始する。
【0040】
また制御装置403は、管理情報701の電力制御変数Xと稼働状態Rの情報を元に、電力制御されていない未稼働状態(電力制御変数Xが0)のブレード装置5を検索する(S914)。検索の結果、該当するブレード装置5が存在する場合、制御装置403は、そのブレード装置403のBMC501に対して、電力制御変数Xの値を「1」に変更する命令を発行する(S915)。電力制御変数Xを受取ったブレード装置のBMC501は、ブレード情報管理テーブル600の内容を更新した後、自ブレード装置5の消費電力値WBが電力制御変数Xの許容する消費電力値内に収まるように、CPU500のクロック周波数の制御を開始する。この場合、クロック周波数を低減するように制御する。これにより、ブレード装置の起動時の一時的な消費電力の上昇を軽減する。
上記処理が完了した後一定時間が経過すると、再び上記処理を最初から繰り返す(S916)。
【0041】
次に、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2以上でかつ高負荷電力閾値P1未満の場合の制御動作について説明する(S904:No)。この場合、図10(b)に示すように、制御装置403は、電力制御されていない未稼働状態のブレード装置を探してそのブレード装置に対して電力制御することで、起動時の一時的な消費電力上昇を軽減する。即ち、制御装置403は、ブレード管理情報701の電力制御変数Xと稼働状態Rの情報を元に、電力制御されていない未稼働状態(電力制御変数Xが0、及び稼動状態Rが0)のブレード装置を検索して、該当するブレード装置を特定し(S921)、そのブレード装置のBMC501に対して電力制御変数Xを「1」に変更する命令を発行する(S922)。制御対象となったブレード装置5のBMC501は、電力制御変数Xを「1」に変更する命令を受信すると、ブレード情報管理テーブル600の内容を更新した後、自ブレード装置5の消費電力値WBが電力制御変数Xの許容する消費電力値内に収まるようCPU500のクロック周波数の制御を開始する。これにより起動時の一時的な消費電力の上昇を軽減する。上記処理が完了した後一定時間が経過すると、再び上記処理を最初から繰り返す(S923)。
【0042】
次に、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2未満の場合の電力制御動作について説明する(S903:No、図9C参照)。
図10(c)に示すように、ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2未満であるとき、制御装置403は、管理テーブル700のブレード管理情報701を検索して、電力制御変数Xから電力制御されたブレード装置5(電力制御変数Xが1以上)が存在するか確認する(S941)。確認の結果、電力制御されたブレード装置5が存在する場合は(S941:Yes)、ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1と未稼働電力閾値P2の間に収束するように、ブレード装置5のBMC501に電力制御変数Xの値を変更する命令を発行し、電力制御を緩和させることでブレードサーバ全体の消費電力値WSの増加を実施する。
【0043】
即ち、制御装置403は、ブレード管理情報701の情報を用いて、ブレードサーバ全体の消費電力値WSを高負荷電力閾値P1と未稼働電力閾値P2の間に収めるために、上記ブレードサーバ全体の消費電力値WSに対して増加すべき消費電力値L(以下、増加値L)を計算する(S942)。本実施例では、増加値Lは高負荷電力閾値P1からブレードサーバ全体の消費電力値WSを引いた値とし、電力制御後のブレードサーバ全体の消費電力値WSから増加する消費電力値が増加値L以下であるとする。
【0044】
次に、電力制御を緩和すると、消費電力値WBの増加が見込めるブレード装置5を特定しやすくするために、ブレード管理情報701から電力制御変数Xが「1」以上のブレード管理情報を抽出する。そして、この抽出された情報から制御カウント数Zが大きいかつ消費電力値WBが大きい順にWB1〜WBnとしてソートする(S943)。
【0045】
図11(b)に、ソート後のブレード管理情報701の例を示す。制御装置403は、電力制御によりブレードサーバ全体の消費電力値WSから増加する消費電力値が増加値K以下となるブレード装置5を特定するため、全てのブレード装置5に対して電力制御を1段階下げた際に予想される差分ΔWBを求める(S944)。電力制御を1段階下げた状態を電力制御変数X´として、電力制御変数X´が許容する消費電力上限値から現在の消費電力値WB1〜WBnを引いた値を差分値ΔWB1〜ΔWBnとする。
【0046】
制御装置403は、差分値ΔWB1〜ΔWBnを順番に積算して合計値ΣΔWBを計算し(S946)、更に増加値Lとの比較を繰り返す(S947〜S949)。比較の結果、合計値ΣΔWBが増加値Lを越えたとき、差分値ΔWBの積算を止める。ここで、増加値Lを超える直前までのブレード装置5を電力制御対象とする。図11(b)では、上位2台のブレード装置(ブレード装置#B5,B3の2台)が増加値Lを超える直前の電力制御対象とする(即ち、即ち12+13=25W<30となり、増加値Lを越える直前の値となる)。また、全ての差分値ΔWBの合計値ΣΔWBが増加値Lを超えない場合は、電力制御された全てのブレード装置5を電力制御対象とする。
【0047】
制御装置406は、電力制御対象となった全てのブレード装置5のBMC501に対して現在の電力制御変数Xを1デクリメントした値に変更する命令を発行する(S950,S9481)。電力制御変数Xの変更命令を受取ったブレード装置5のBMC501は、ブレード情報管理テーブル600の内容を更新した後、自ブレード装置5の消費電力値WBが電力制御変数Xの許容する消費電力上限値内に収まるように、CPU500のクロック周波数の制御を開始する。この場合は、クロック周波数を増加制御する。これによって当該ブレード装置の処理速度が向上して性能が維持される。
【0048】
また、電力制御されているブレード装置(電力制御変数Xが1以上)であって制御カウント数Zの値が0のブレード装置5は、高負荷状態でなく、電力制御を緩和しても消費電力値WBの上昇はないため、対象となるブレード装置を検索して探し(S951)、その結果、該当するブレード装置5のBMC501に対して、電力制御変数Xの値を「0」に変更する命令を発行する(S952)。対象のブレード装置5のBMC501は、電力制御変数Xの値を「0」に変更する命令を受信すると、「1」以上になっていた電力制御変数Xの値を「0」にセットして、電力制御状態を解除する(S952)。
【0049】
この処理が完了した後、一定時間が経過すると、開始に戻り上記処理動作を最初から繰り返す(S953)。なお、上記ブレード管理情報701の検索の結果、電力制御されたブレード装置(電力制御変数Xが1以上)が存在しない場合も、制御装置403は特別な処理をせず、一定時間経過後、開始に戻って上記処理動作を最初から繰り返す(S961)。
【符号の説明】
【0050】
4:ブレードサーバ 401:電源ユニット 402:接続基板 403:制御装置 404:LANSW 405:FANユニット 407:電力供給線 408:PMバス 409:SMバス
5:ブレード装置 500:CPU 501:BMC
502:通信インタフェース 503:電圧入力部
504:H/Sコントローラ 505:RAM 506:HDD
507:I/O 508:BIOS
600:ブレード情報管理テーブル 700:管理テーブル
701:ブレード管理情報

【特許請求の範囲】
【請求項1】
自身の消費電力を制御できる複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して電力制御する制御装置を有するブレードサーバにおける電力制御方法であって、
該制御装置は、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値P1と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値P2を設定し、
複数のブレード装置から、該ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を取得し、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値WSを算出し、
該消費電力値WSが、該高負荷電力閾値P1と該未稼働電力閾値P2の間で収束するように、取得した該ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御することを特徴とするブレードサーバの電力制御方法。
【請求項2】
ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1を超えたとき、該制御装置は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御することを特徴とする請求項1のブレードサーバの電力制御方法。
【請求項3】
ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を超えたとき、該制御装置は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を低減制御することを特徴とする請求項1又は2記載のブレードサーバの電力制御方法。
【請求項4】
ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を未満となったとき、該制御装置は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御することを特徴とする請求項1乃至3のいずれか項記載のブレードサーバの電力制御方法。
【請求項5】
命令を処理するプロセッサを有する複数のブレード装置と、該ブレード装置に電力を供給する電源ユニットと、該複数のブレード装置の消費電力及び稼働状態、並びに該電源ユニットの消費電力を監視して制御する制御装置を有するブレードサーバにおける電力制御システムであって、
該制御装置は;
予め設定された、高負荷状態のブレード装置を電力制御対象とする高負荷電力閾値P1と、未稼働状態のブレード装置を電力制御対象とする未稼働電力閾値P2を保持する手段と、
該複数のブレード装置に要求して、各ブレード装置の消費電力値WB及び稼働状態に関する情報を取得する手段と、
該複数のブレード装置から得られた各ブレード装置の消費電力値WB及び稼働状態に関する情報を管理する第1の管理テーブルと、
該電源ユニットから電力値を得て、ブレードサーバ全体の消費電力値WSを算出する手段と、
予め設定された、該高負荷電力閾値P1及び該未稼働電力閾値P2、及び該第1の管理テーブルの情報に基づいて、電力制御の対象となるブレード装置を選択し、該ブレード装置に対して電力制御を行う命令を発する制御手段と、を有し、
該各ブレード装置は;
自ブレード装置の稼働状態、消費電力値WB、及び電力制御に関する情報を管理する第2の管理テーブルと、
該第2の管理テーブルで管理される該情報を該制御装置へ転送する手段と、
該制御装置から発せられる該電力制御命令に基づいて、自ブレード装置における該プロセッサのクロック周波数を変更制御する手段と、を有し、
該制御装置の該制御手段は、算出された該消費電力値WSが、該高負荷電力閾値P1と該未稼働電力閾値P2の間で収束するように、該第1の管理テーブルの情報を参照して、対象となるブレード装置を選択して、該ブレード装置に対して電力制御を行う命令を発し、
該ブレード装置の該変更制御手段は、該電力制御命令に従って、該プロセッサのクロック周波数を変更制御することを特徴とするブレードサーバの電力制御システム。
【請求項6】
ブレードサーバ全体の消費電力値WSが高負荷電力閾値P1を超えたとき、該制御装置の該制御手段は、稼働中の複数のブレード装置の中から高負荷状態のブレード装置を選択し、該ブレード装置に対して、消費電力を抑制させるように命令を発行して、該ブレード装置の電力を抑制制御することを特徴とする請求項5のブレードサーバの電力制御システム。
【請求項7】
ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を超えたとき、該制御装置の該制御手段は、複数のブレード装置の中から電力制御されていない未稼働状態のブレード装置を選択し、該ブレード装置に対して電力を低減制御することを特徴とする請求項5又は6記載のブレードサーバの電力制御システム。
【請求項8】
ブレードサーバ全体の消費電力値WSが未稼働電力閾値P2を未満となったとき、該制御装置の該制御手段は、複数のブレード装置の中から電力制御状態にあるブレード装置を選択し、選択された該ブレード装置の電力制御を緩和するように制御することを特徴とする請求項5乃至7のいずれか項記載のブレードサーバの電力制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図9D】
image rotate

【図10】
image rotate

【図11】
image rotate