(58)【調査した分野】(Int.Cl.,DB名)
前記サーバー群中の他の電力制限されたサーバーの総消費電力に対する前記特定のサーバーの消費電力に基づいて前記任意の電力量の前記一部を前記特定のサーバーに割り当てる請求項1に記載の方法。
前記消費電力リミットを前記特定のサーバーに送る工程をさらに含み、前記特定のサーバーが前記消費電力リミットにより設定されるよりも少ない電力を消費するように、前記特定のサーバーの動作パラメータが調整される請求項4に記載の方法。
【発明を実施するための形態】
【0009】
図1は、データセンターの消費電力を管理するための例示的なシステム100を示している。例えば、システム100は、システム管理者がサーバー管理ソフトウェア102を用いデータセンターまたはサーバーラックにおいてサーバー電力制限(power capping)を設定(configure)することのできるメカニズムを提供できる。
【0010】
いくつかの実施形態においてシステム100は管理装置104を含み得る。例えば、管理装置104はラップトップコンピュータ、デスクトップコンピュータ、タブレットデバイスまたはその他の携帯用デバイス(例えばスマートフォン)であってよい。管理装置104は管理ソフトウェア102を備えて構成されていてよい。いくつかの実施形態において、サーバーまたはデータセンター管理者は、管理ソフトウェア102とやりとりして、データセンター110および/またはサーバーラック120、130、および140について電力制限パラメータを設定することができる。例えば、データセンター110は、1つまたはそれ以上のラック120、130および/または140に編成されたサーバーの群に対応するものであり得る。ラック120、130および/または140は、下記に詳述するように、1つまたはそれ以上のサーバー、電源ユニット、スイッチ、および/またはラック管理コントローラを含み得る。サーバーのラックは、データセンターのサーバーのサブグループまたはサブセットと見なすことができる。
【0011】
いくつかの実施形態では、管理装置104は、ネットワーク106を介して電力制限パラメータをデータセンター110および/またはサーバーラック120、130および140に送ることができる。例えば、ネットワーク106はローカルエリアネットワーク、広域ネットワーク、またはインターネットであり得る。電力制限パラメータには、例えば、データセンター110に対する電力リミット、サーバーラック120、130および/もしくは140に対する電力リミット、またはサーバーラック中の1つもしくそれ以上のサーバー(例としてサーバー124)に対する電力リミットが含まれ得る。
【0012】
いくつかの実施形態において、データセンター、サーバーラック、および/または個々のサーバーは、サーバー管理者が設定した電力制限パラメータに基づいて、自動的に電力制限モードに移行することができる。例えば、システム管理者があるサーバー群(例えばデータセンター、ラックなど)について電力リミットを設定している場合、当該サーバー群の総消費電力が設定された電力リミットに近付くと(例えば設定された電力リミットの閾値パーセンテージをこえると)、当該サーバー群について電力制限モードが動的に開始され得る(例えば、電力制限モードに移行、電力制限モードが始まる)。サーバー群の総消費電力がサーバー群について設定された電力リミットの閾値量を下回ると、当該サーバー群についての電力制限モードは動的に終了し得る(例えば、電力制限モードが終わる、取り消される)。個々のサーバーそれぞれについての電力制限は、サーバー群における他のサーバーに対比しての、当該個々のサーバーの所要電力(power requirements)に基づいて動的に調整することが可能である。これについては以下により詳しく述べる。
【0013】
いくつかの実施形態において、システム100はデータセンター110を含み得る。例えば、データセンター110はサーバーラック120、130および/または140を含み得る。サーバーラック120は複数のサーバー124を含み得る。サーバーラック120はパワーシェルフ(power shelf)122を含み得る。パワーシェルフ122は1つまたはそれ以上の電源ユニットを含み得る。パワーシェルフ122は、下記するように、ラック管理コントローラを含み得る。
【0014】
いくつかの実施形態において、サーバー管理者は、管理ソフトウェア102を用い、データセンター110の電力制限パラメータを設定することができる。例えば、サーバー管理者は、管理ソフトウェア102のグラフィカルユーザーインターフェース(
図3)を介して、データセンター110の電力リミット(例えば、最大電力定格、消費電力リミットなど)を設定することができる。
【0015】
いくつかの実施形態において、管理ソフトウェア102は各サーバーラック120、130および140から使用電力統計値(power usage statistics)を受け取ることができる。例えば、各ラック120、130および140におけるラック管理コントローラは、各ラックの電力使用を監視し、消費電力メトリクス(power consumption metrics)を管理ソフトウェア102に報告することができる。例えば、管理ソフトウェア102は、ネットワーク接続を介しラック管理コントローラに接続されて、ラック管理コントローラから消費電力メトリクスを受け取ることができる。
【0016】
いくつかの実施形態において、管理ソフトウェア102は、各ラックの消費電力をデータセンター110について設定された電力リミットと比較することができる。例えば、管理ソフトウェア102は、各ラックについて受け取った消費電力メトリクスの総計を計算して、データセンター110の総消費電力を決定することができる。データセンター110の総消費電力が閾値(例えば設定されたデータセンターの電力リミットの90%)よりも大きい場合、管理ソフトウェア102はデータセンター110を電力制限モードに移行させ得る。管理ソフトウェア102はデータセンター110の総消費電力を監視すると共に、データセンターの総消費電力が閾値(例えば設定されたデータセンターの電力リミットの70%)を下回るときに、データセンター110に電力制限モードを終了させる。例えば、いつデータセンター110の電力制限モードを開始および終了するかを決定するのに、異なる閾値を用いることができる。
【0017】
いくつかの実施形態において、管理ソフトウェア102は、データセンター110中のサーバーラック120、130および/または140についての電力制限リミットを自動的に決定することができる。例えば、管理ソフトウェア102は、データセンター110が電力制限モードにあるときに、ラックの消費電力リミットを設定することによってデータセンター110におけるラックの消費電力を制限することができる。
【0018】
いくつかの実施形態において、データセンター110におけるサーバーラック120、130、および/または140の電力制限リミットを決めるのに、管理ソフトウェア102は、データセンター110が利用可能な任意の電力(discretionary power)の量を決定することができる。任意のデータセンターの電力は、例えば、電力制限が有効となったデータセンター110中のサーバーラックに分配され得る電力の量に対応していてよい。例えば、サーバーラック140が電力制限されていないときに、サーバーラック120およびサーバーラック130は電力制限が有効となり得る。サーバーラック140は電力制限されていないため、サーバーラック140は、いかなる人為的なリミット(例えば制限(cap))もなしに、データセンターから必要なだけ電力を引き出すことができるであろう。
【0019】
いくつかの実施形態において、任意のデータセンター電力(ddcPower)は、データセンターに対し管理者が設定した電力リミット(dcLimit)から、非制限(non−capped)ラック、例えば電力制限が無効となっている(disabled)ラック(例えばラック140)の消費電力(nRacks)と、現在電源オフとなっているラックの予期される消費電力(oRacks)とを引くことによって算出され得る(例えばddcPower.=dcLimit−(nRacks+oRacks))。任意のデータセンター電力の計算には電源オフのラックも含めなくてはならない。それらラックは、後に電源オンとなるときに、電力制限されないかもしれないからである。
【0020】
いくつかの実施形態において、管理ソフトウェア102は、任意のデータセンター電力を、電力制限されたラック(例えばラック120、ラック130)に分配することができる。例えば、管理ソフトウェア102は、データセンター110中の各電力制限されたラックの相対的な消費電力に基づいて、各電力制限されたラックの電力リミット(rLimit)を決めることができる。任意のデータセンター電力は、例えば、データセンター110中の電力制限されたラックの総消費電力に対する、電力制限されたラックの消費電力の比率に基づいて分配され得る。
【0021】
いくつかの実施形態において、管理ソフトウェア102はラック120の最大消電力を決定することができる。最大消費電力(rPowerConsumption)は、経験的データ(empirical data)に基づいて決定され得る。例えば、管理ソフトウェア102は、長い期間をかけてラック120から消費電力メトリクスを収集し(例えば履歴データ(historical data))、収集したメトリクスに基づいて、過去の(historical)消費電力の平均を算出する、または収集された最高の消費電力メトリクスを判断することができる。最大消費電力はラックおよび/またはその中のサーバーの仕様に基づいて設定され得る。最大消費電力は管理者により設定される値(administrator−specified value)であってよい。
【0022】
いくつかの実施形態において、管理ソフトウェア102は、データセンター110における全ての電力制限されたラックの最大消費電力を決定することができる。例えば、管理ソフトウェア102は、データセンター110における全ての電力制限されたラックについての最大消費電力値の総計を計算する(例えば合計する)ことで、データセンター110における電力制限されたラックの総消費電力(tdcPowerConsumption)を決定することができる。
【0023】
いくつかの実施形態において、管理ソフトウェア102は、任意のデータセンター電力(ddcPower)に、総データセンター消費電力(tdcPowerConsumption)に対するラック120消費電力(rPowerConsumption)の割合を掛けることにより、ラック120の電力制限リミット(rLimit)を決定することができる。例えば、管理ソフトウェアは、rLimit=ddcPower*(rPowerConsumption/tdcPowerConsumption)を計算することによって、ラック電力リミットを決定することができる。
【0024】
いくつかの実施形態において、ラック120の電力制限リミットが算出されたら、管理ソフトウェア102はラック120に電力制限リミットを送ることができる。例えば、管理ソフトウェア102は、ラック120のラック管理コントローラに電力制限リミットを送ることができる。いくつかの実施形態では、ラック120は、管理ソフトウェア102によって計算されたラック電力リミットに基づき、自動的に消費電力を管理することができる。例えば、ラック120のラック管理コントローラは、後述する電力制限技術を用いてラック120の消費電力を管理することができる。
【0025】
図2は、サーバーラックの消費電力を管理するためのシステム200を示している。システム200は、上述したシステム100の追加的な詳細を説明するものである。いくつかの実施形態において、管理ソフトウェア102はラック電力制限リミット(rLimit)をラック120に送ることができる。例えば、上述したように、データセンターの電力制限が実行されているとき、管理ソフトウェア102は自動的にラック電力制限リミットを決定することができる。管理ソフトウェア102は、ラック120の電力制限リミットを設定するサーバー管理者から入力を受信することができる。
【0026】
いくつかの実施形態において、管理ソフトウェア102は、ラック120のラック電力制限リミットをラック管理コントローラ(RMC)204に送ることができる。例えば、RMC204は、ラック120の各種機能を監視および制御するように構成されたラックレベルプロセッサ(rack−level processor)であり得る。例えば、RMC204は、ラック120のパワーシェルフ122内に収納されていてよい。RMC204は、電源ユニット204の健康状態を監視し、バックアップバッテリユニット(図示せず)をオンにすることによって電源異常を軽減することができる。RMC204はラック120内の温度を監視し、ファンをオンにし、サーバーをオフにする、または消費電力を調整することで温度を下げると共にコンポーネントを保護することができる。
【0027】
いくつかの実施形態において、RMC204はサーバー210および220の消費電力を監視することができる。例えば、RMC204はサーバー210のサービスコントローラ(SC)214およびサーバー220のサービスコントローラ(SC)224と通信可能に(communicatively)接続され得る。サービスコントローラ214およびサービスコントローラ224は例えばベースボード管理コントローラ(BMC)またはマネジメントエンジン(ME)であってよい。サービスコントローラ214および224は、既知のメカニズムを用い、サーバーの210および220の消費電力を監視することができる。RMC204はサービスコントローラから周期的に消費電力メトリクスを取得することができ、これによりRMC204はサーバー210および220の消費電力を監視し、ラック120の消費電力を管理できるようになる。RMC204は消費電力メトリクスを順次、管理ソフトウェア102に送ることができ、これによってサーバー管理者がサーバーの消費電力を監視し、電力制限ポリシー(policies)を実行できるようになる。
【0028】
いくつかの実施形態において、RMC204はサーバー210および220の消費電力を、管理ソフトウェア102から受け取ったラック電力制限リミット(rLimit)と比較して、ラック120の電力制限モードをいつ開始するかを決定することができる。例えば、RMC204は、各サーバー210、220の消費電力を、ラック120について管理ソフトウェア102が設定した電力リミットと比較することができる。RMC204は、ラック120中の各サーバー210および220についてサービスコントローラ214およびサービスコントローラ224から受け取った消費電力メトリクスを合計して、ラック120の総消費電力を決定することができる。ラック120の総消費電力は、例えば、ラック120中の全てのサーバーの消費電力を合計する(例えば総計する(summing、totaling)ことによって算出され得る。ラック120の総消費電力が閾値(例えば設定されたラック電力リミットの90%)よりも大きい場合、RMC204は、ラック120の電力制限モードに自動的に移行することができる。RMC204はラック120の総消費電力を監視すると共に、ラック120の総消費電力が閾値(例えば設定されたラック電力リミットの70%)を下回ると、ラック120の電力制限モードを終了することができる。例えば、いつラック120の電力制限モードに移行するか、およびいつラック120の電力制限モードを終了するかを、異なる閾値を用いて決定することができる。
【0029】
いくつかの実施形態において、RMC204は、ラック120が電力制限モードにあるときに、ラック120中のサーバー210および220について電力制限リミットを自動的に決定することができる。例えば、RMC204は、ラック120が電力制限モードにあるときに、サーバーの消費電力リミットを設定することによって、ラック120中のサーバーの消費電力を制限することができる。ラック120中のサーバー210および220の電力制限リミットを決定するのに、RMC204は、ラック120が利用可能な任意の電力の量を決定することができる。任意のラック電力は、例えば、電力制限が有効とされたラック120中のサーバーに分配され得る電力の量に対応し得る。
【0030】
いくつかの実施形態において、任意のラック電力(drPower)は、ラック120について管理者または管理ソフトウェア102が設定した電力リミット(rLimit)から、非キャップサーバー、例えば電力制限が無効となっているサーバーの消費電力(nServers)と、現在電源オフとなっているサーバーの予期される消費電力(oServers)とを引くことによって算出することができる(例えば、drPower.=rLimit−(nServers+oServers))。任意のラック電力の計算には電源オフのサーバーも含めなくてはならない。それらサーバーは、電源オンのときに電力制限されないかもしれず、故にシステムから過度の電力を引き出す可能性があるからである。
【0031】
いくつかの実施形態において、RMC204は、電力制限されたサーバーに任意のラック電力を分配することができる。例えば、RMC204は、ラック120中の各電力制限されたサーバーの相対的な消費電力に基づいて、各電力制限されたサーバーの電力リミット(sLimit)を決定することができる。任意のラック電力は、ラック120中の電力制限されたサーバーの総消費電力に対する電力制限されたサーバーの消費電力の比率に基づいて、電力制限されたサーバーに分配され得る。サーバーの電力リミット(sLimit)は、サーバーに分配される任意のラック電力の比例量(proportional amount)であり得る。
【0032】
いくつかの実施形態において、RMC204はサーバー210の最大消費電力を決定することができる。サーバー210の最大消費電力(sPowerConsumption)は経験的データ(empirical data)に基づくものであり得る。例えば、RMC204は、長い期間をかけて、サービスコントローラ214およびサービスコントローラ224から消費電力メトリクス(履歴データ(historical data))を収集することができる。RMC204は、過去の(historical)消費電力の平均を算出することによって、最大消費電力を決定することができる。RMCは、収集された消費電力メトリクス中から最大消費電力メトリックを判断することによって、最大消費電力を決定することができる。サーバー210の最大消費電力はサーバーの仕様および/またはその中のCPUの仕様に基づくものであり得る。サーバー210の最大消費電力は管理者により設定される値であってよい。
【0033】
いくつかの実施形態において、RMC204は、ラック120中の全ての電力制限されたサーバーの最大消費電力を決定することができる。例えば、RMC204は、ラック120中の全ての電力制限されたサーバーの最大消費電力値を合計し(例えば総計し)、ラック120中の電力制限されたサーバーの総消費電力(trPowerConsumption)を決定することができる。
【0034】
いくつかの実施形態において、RMC204は、任意のラック電力(drPower)に、総ラック消費電力(trPowerConsumption)に対するサーバー210の消費電力(sPowerConsumption)の割合を掛けることによって、サーバー210の電力制限リミット(sLimit)を決定することができる。例えば、RMC204は、sLimit=dsPower*(sPowerConsumption/trPowerConsumption)を計算することにより、サーバーの電力リミットを決定することができる。
【0035】
いくつかの実施形態において、サーバー210の電力制限リミットが算出されると、RMC204は電力制限リミットをサーバー210に送ることができる。例えば、RMC204は電力制限リミットをサーバー210のサービスコントローラ214に送ることができる。次いで、サービスコントローラ214は、サーバー210について設定された電力制限リミット以上の電力をサーバーが消費しないように、サーバー210の各種コンポーネント(例えばCPU212)を調整することができる。いくつかの実施形態において、サービスコントローラ214は、RMC204によって算出されたサーバー電力リミットに基づいて、サーバー210の消費電力を自動的に管理することができる。例えば、サービスコントローラ214は、CPU212の設定(configuration)(例えば、p状態(p−state)、電力状態、動作状態、動作周波数)を調整して、CPU212が動作する周波数を低減することにより、サーバー210により消費される電力の量を減らすことができる。
【0036】
サーバー210と類似する方式で、サーバー220についてRMC204により電力制限リミットが算出され得る。例えば、RMC204は電力制限リミットをサービスコントローラ224に送ることができ、サービスコントローラ224は、サーバー220がRMCにより設定される電力制限リミットよりも少ない電力を消費するよう、サーバー220の各種コンポーネント(例えばCPU222)を調整することができる。サービスコントローラ224は、RMC204により算出されたサーバー電力リミットに基づいて、サーバー220の消費電力を自動的に管理することができる。例えば、サービスコントローラ224は、CPU222の設定(例えばp状態)を調整して、CPU222が動作する周波数を低減することにより、サーバー220によって消費される電力の量を減らすことができる。
【0037】
いくつかの実施形態において、管理ソフトウェア102は上述したRMC204の機能を実行することができる。例えば、ラック120はRMC204を含まなくてもよい。よって、いくつかの実施形態において管理ソフトウェア102は、
図2およびRMC204に関して上に述べたように、サービスコントローラ214および224から直接に電力消費メトリクスを受け取り、サーバー210および220の電力制限リミットを決定し、かつ決定された電力制限リミットをサービスコントローラ214および224に伝達することができる。
【0038】
図3は、データセンターの消費電力を管理するのに用いる例示的なグラフィカルユーザーインターフェース(GUI)300を示している。例えば、上述したように、GUI300は管理ソフトウェア102のインターフェースであり得る。サーバー管理者は入力をGUI300に提供して、データセンター、ラックおよび/またはサーバーについて電力制限を有効にすることができる。上述のように、サーバー管理者は入力をGUI300に提供して、データセンター、ラックおよびサーバーの電力制限を実行するのに用いられることとなるデータセンターおよびラックの消費電力リミットを設定することができる。
【0039】
いくつかの実施形態において、GUI300は、データセンターにおいて電力制限を有効にするのに用いられるグラフィカルエレメント302を含み得る。例えば、サーバー管理者(つまりユーザー)は、グラフィカルエレメント302を選択して、データセンター110における電力制限を有効または無効にすることができる。GUI300は、データセンター110の電力リミットを設定するのに用いられるグラフィカルエレメント304を含み得る。例えば、サーバー管理者は、グラフィカルエレメント304(例えばプルダウンメニュー、リストなど)から、データセンターがこえることのできない消費電力の量を示す値を選択することができる。サーバー管理者は、最大電力値を示すグラフィカルエレメント304中にテキストを入力することができる。データセンター110において電力制限が有効となっているときに、データセンターの消費電力が閾値(例えばデータセンターの電力リミットの90%)をこえると、データセンター110は電力制限モードに移行することとなる。データセンターの消費電力が閾値(例えばデータセンターの電力リミットの70%)を下回ると、データセンター110は電力制限モードを終了することとなる。
【0040】
いくつかの実施形態において、GUI300は、サーバーラックについての電力制限パラメータを設定するのに用いられるグラフィカルエレメント306を含み得る。例えば、グラフィカルエレメント306は、データセンター110におけるラック120を表すことができる。例えば、GUI300は、データセンター110中の各ラックに対応するグラフィカルエレメント306を含み得る。
【0041】
いくつかの実施形態では、グラフィカルエレメント306は、サーバーラックにおいて電力制限を有効にするのに用いられるグラフィカルエレメント308を含み得る。例えば、サーバー管理者は、グラフィカルエレメント306を選択して、サーバーラック120の電力制限をオンおよびオフにすることができる。グラフィカルエレメント306は、サーバーラック120の電力リミットを設定するのに用いられるグラフィカルエレメント310を含み得る。例えば、サーバー管理者は、グラフィカルエレメント310(例えばプルダウンメニュー、リストなど)から、サーバーラック120がこえることのできない消費電力の量を示す値を選択することができる。サーバー管理者は、サーバーラック120の最大電力値を示すグラフィカルエレメント310中にテキストを入力することができる。サーバーラック120で電力制限が有効となっているときに、サーバーラック120の消費電力が閾値(例えばラックの電力リミットの90%)をこえると、サーバーラック120は電力制限モードに移行することとなる。サーバーラック120の消費電力が閾値(例えばラックの電力リミットの70%)を下回ると、サーバーラック120は電力制限モードを終了することとなる。
【0042】
いくつかの実施形態において、グラフィカルエレメント306は、サーバーラック中のサーバーの電力制限を有効および無効にするのに用いられるグラフィカルエレメント312〜322を含み得る。例えば、グラフィカルエレメント312〜322はサーバーラック120中のサーバー(例えばサーバー210、サーバー220)に対応し得る。サーバー管理者は、個々のグラフィカルエレメント312〜322(例えば、チェックボックス、スイッチ、トグルなど)を選択して、対応するサーバーの電力制限を有効または無効にすることができる。
【0043】
いくつかの実施形態において、グラフィカルエレメント306は、ラック中の各サーバーの最大消費電力を示すことができる。例えば、グラフィカルエレメント306は、ラック120中の対応するサーバー(例えばサーバー210、サーバー220など)および各サーバーが消費する最大の電力量を明らかとする(identify)グラフィカルエレメント312〜322を示すことができる。ラック120が電力制限モードにあるとき、ラック120は最大消費電力値を用いて、ラックの任意の電力を、ラック中のサーバーにどのように分配するかを決定することができる。
【0044】
例えば、上述したように、任意の電力は、ラックの電力リミットから、非電力制限サーバーの消費電力と、電源オフとなっているサーバーの消費電力とを引くことによって、算出され得る。グラフィカルエレメント306を参照すると、ラック120は、選択された(例えばボックスにチェックが入っている)グラフィカルエレメント312、314および316に対応する3つの電力制限されたサーバー(例えば、サーバー1、サーバー2、サーバー3)を含む。ラック120は、グラフィカルエレメント318および320に対応する2つの非電力制限サーバー(例えばサーバー4、サーバー5)を含む。ラック120は、グラフィカルエレメント322に対応する1つの電源オフのサーバー(例えばサーバー6)を含む。ラック120(例えばラック1)の任意の電力を計算するため、2つの非電力制限サーバーの消費電力(サーバー4:400ワット;サーバー5:325ワット)と、電源オフのサーバーの消費電力(サーバー6:400ワット)とを、ラック120の電力リミット(2000ワット)から引くことができる。よって、ラック120の任意の電力は875ワットである(例えば2000−(400+325+400))。
【0045】
上記した実施例に続いて、各サーバーにより消費される相対的な電力の量に基づいて、ラック120の任意の電力が、電力制限されたサーバー(例えばサーバー1、サーバー2、サーバー3)に分配され得る。例えば、サーバー1に割り当てられる任意の電力の量は、任意の電力(875ワット)に、ラック120中の全ての電力制限されたサーバーの総消費電力(例えば600ワット+450ワット+500ワット=1550ワット)に対する当該サーバーの消費電力(例えば600ワット)の割合を掛けることにより算出することができる。よって、サーバー1に割り当てられる任意の電力の量は338ワットである(例えば875*(600/1550))。サーバー2に割り当てられる任意の電力の量は254ワットである(例えば875*(450/1550))。サーバー3に割り当てられる任意の電力の量は282ワットである(例えば875*(500/1550))。
【0046】
データセンターの任意の電力、およびデータセンター内のラックへの任意の電力の割り当てを決定するのに、
図1を参照して上に述べたような、類似するプロセスを用いることができる。
【0047】
図4は、動的なサーバー電力制限の例示的なプロセス400を示している。例えば、データセンターレベルおよび/またはサーバーラックレベルでサーバーの消費電力を管理するのにプロセス400を用いることができる。
【0048】
ステップ402において、計算装置(computing device)はサーバーの群の電力使用量(power usage)を監視することができる。例えば、サーバーの群はデータセンターに対応していてよい。サーバーの群はサーバーラックに対応していてよい。管理装置104は、管理ソフトウェア102を備えて構成されており、データセンター110内のサーバーの電力使用量を監視することができる。ラック管理コントローラ204は、ラック120内のサーバーの電力使用量を監視するように構成されていてよい。
【0049】
ステップ404において、計算装置は、サーバーの群の電力使用量が第1の閾値レベルをこえていると判断することができる。例えば、管理装置104は、データセンター110の電力使用量がデータセンター110の電力リミットの90%をこえていると判断することができる。ラック管理コントローラ204は、ラック120の電力使用量がラック120の電力リミットの90%をこえていると判断することができる。
【0050】
ステップ406において、計算装置は、サーバーの群を電力制限モードに移行させることができる。例えば、データセンター110の電力使用量が第1の閾値をこえるとの判断に応じ、管理装置104はデータセンター110を電力制限モードに移行させることができる。同様に、ラック120の電力使用量が第1の閾値よりも大きいとの判断に応じ、ラック管理コントローラ204はラック120を電力制限モードに移行させることができる。
【0051】
ステップ408において、計算装置は、電力制限(power capping)に用いることのできる任意の電力の量を決定することができる。例えば、管理装置104は、データセンター110内の電力制限されたサーバーラックに分配するのに利用可能な任意の電力の量を決定することができる。ラック管理コントローラ204は、サーバーラック120内の電力制限されたサーバーに分配するのに利用可能な任意の電力の量を決定することができる。
【0052】
ステップ410において、計算装置は任意の電力を割り当てることができる。例えば、上述したように、管理装置104は、データセンター110内の各ラックにより消費される電力の比例量(proportional amount)に基づいて、データセンター110内の電力制限されたラックに任意のデータセンター電力を割り当てることができる。上述したように、ラック管理コントローラ204は、ラック120内の各サーバーにより消費される電力の比例量に基づいて、ラック120内のサーバーに任意のラック電力を割り当てることができる。例えば、ラックまたはサーバーに割り当てられる任意の電力の量は、ラックまたはサーバーの電力リミットとなる。
【0053】
ステップ414において、計算装置は、サーバーの群の電力使用量が第2の閾値レベルを下回ると判断することができる。例えば、管理装置104は、データセンター110内のラックの消費電力を監視すると共に、ラックの消費電力がいつ第2の閾値レベル(例えば、データセンターの電力リミットの70%)を下回るかを検出することができる。ラック管理コントローラ204は、ラック120内のサーバーの消費電力を監視すると共に、サーバーの消費電力がいつ第2の閾値レベル(例えば、ラックの電力リミットの70%)を下回るかを検出することができる。
【0054】
ステップ416において、計算装置は、サーバーの群に電力制限モードを終了させることができる。例えば、データセンター110内のラックの消費電力が第2の閾値レベルを下回ったと検出したことに応じ、管理装置104は、データセンター110内のラックから電力リミットを取り除くことができ、これによりデータセンター110中のラックの消費電力はもはや制限されないようになる。同様に、ラック120内のサーバーの消費電力が第2の閾値レベルを下回ったと検出したことに応じ、ラック管理コントローラ204はラック120内のサーバーから電力リミットを取り除くことができ、これによりラック120中のサーバーのラックの消費電力はもはや制限されないようになる。
【0055】
<例示的なシステムアーキテクチャ>
図5は、
図1〜4の特徴およびプロセスを実行する例示的システムアーキテクチャ500のブロック図である。アーキテクチャ500は、コンパイルされた命令からできた(derived from)ソフトウェアアプリケーションを実行する任意の電子デバイスにおいて実施されるものであってよく、当該任意の電子デバイスには、限定はされないが、パーソナルコンピュータ、サーバー、スマートフォン、メディアプレーヤー、電子タブレット、ゲームコンソール、eメールデバイスなどが含まれる。いくつかの実施形態において、アーキテクチャ500は1つまたはそれ以上のプロセッサ502、1つまたはそれ以上の入力装置504、1つまたはそれ以上のディスプレイ装置506、1つまたはそれ以上のネットワークインターフェース508、および1つまたはそれ以上のコンピュータ可読媒体510を含み得る。これらコンポーネントの各々はバス512によって接続され得る。
【0056】
ディスプレイ装置506は、限定はされないが、液晶ディスプレイ(LCD)または発光ダイオード(LED)技術を用いたディスプレイ装置を含む任意の既知のディスプレイ装置であってよい。プロセッサ(複数のプロセッサ)502は、限定はされないが、グラフィックプロセッサおよびマルチコアプロセッサを含む任意の既知のプロセッサ技術を用いるものであってよい。入力装置504は、限定はされないが、キーボード(バーチャルキーボードを含む)、マウス、トラックボール、およびタッチセンシティブパッドまたはディスプレイを含む任意の既知の入力装置であってよい。バス512は、限定はされないが、ISA、EISA、PCI、PCIエクスプレス、NuBus、USB、シリアルATAまたはファイヤーワイヤー(FireWire)を含む任意の既知の内部または外部バス技術を用いるものであってよい。
【0057】
コンピュータ可読媒体510は、プロセッサ(複数のプロセッサ)502に命令を与えて実行させることに関与する任意の媒体であってよく、限定はされないが、不揮発性ストレージメディア(例えば光ディスク、磁気ディスク、フラッシュドライブなど)または揮発性メディア(例えばSDRAM、ROMなど)が含まれる。コンピュータ可読媒体(例えばストレージデバイス、媒体、およびメモリ)は、例えば、ビットストリームなどを含むケーブルまたはワイヤレス信号を含み得る。しかし、非一時的(non−transitory)コンピュータ可読ストレージ媒体は、言及されるときには、エネルギー、搬送波信号、電磁波および信号それ自体のような媒体を明示的に排除する。
【0058】
コンピュータ可読媒体510は、オペレーティングシステム514(例えばMac OS(登録商標)、Windows(登録商標)、Linux(登録商標))を実行するためのさまざまな命令を含み得る。オペレーティングシステム514は、マルチユーザー、マルチプロセッシング、マルチタスキング、マルチスレッディング、リアルタイムなどのものであり得る。オペレーティングシステム514は、限定はされないが、入力装置504からの入力を認識するタスク、ディスプレイ装置506に出力を送るタスク、コンピュータ可読媒体510上にファイルおよびディレクトリを記録するタスク、直接またはI/Oコントローラを介して制御され得る周辺装置(例えばディスクドライブ、プリンタなど)を制御するタスク、ならびにバス512上のトラフィックを管理するタスクを含む基本的なタスクを実行する。ネットワーク通信命令516はネットワーク接続を確立および維持することができる(例えば、TCP/IP、HTTP、Ethernet(登録商標)などのような通信プロトコルを実行するソフトウェア)。いくつかの実施形態において、オペレーティングシステム514は、上に
図1〜4に関して説明したプロセスの少なくとも一部を実行することができる。
【0059】
グラフィック処理システム518は、グラフィックおよび画像処理能力を与える命令を含み得る。例えば、グラフィック処理システム518は、
図1〜4を参照にして述べたプロセスを実行することができる。アプリケーション(複数のアプリケーション)520は、
図1〜4を参照にして述べたプロセスを使用または実行するアプリケーションであり得る。例えば、アプリケーション520は管理ソフトウェア204を含み得る。アプリケーション(複数のアプリケーション)520は、ラック内の電力を管理するためのラック管理コントローラソフトウェアを含み得る。アプリケーション(複数のアプリケーション)520は、サーバー内の消費電力を管理するためのシステムコントローラソフトウェアを含み得る。
【0060】
サービスコントローラ522は、プロセッサ(複数のプロセッサ)502および/またはオペレーティングシステム514から独立して動作するコントローラであり得る。いくつかの実施形態において、サービスコントローラ522は、プロセッサ(複数のプロセッサ)502が電源オンにされ、オペレーティングシステム514がプロセッサ(複数のプロセッサ)502にロードされる前に、電源が供給され、動作可能となり得る。例えば、サービスコントローラ522は、専用のネットワークインターフェースまたはその他の入力装置を介して、計算装置のpre−OS管理を提供することができる。例えば、サービスコントローラ522は、インテリジェントプラットフォーム管理インターフェース(IMPI)、キーボード、ビデオ、およびマウス(KVM)リダイレクション、シリアルオーバーLAN(SOL)、ならびに/またはその他のインターフェースを介し、デバイスのセンサ(例えば、電圧、温度、ファンなど)の監視、故障解析のイベントのロギング、LED誘導診断(guided diagnostics)の提供、電源管理の実行、および/または遠隔管理機能の提供を行うベースボード管理コントローラ(サービスコントローラ)であり得る。サービスコントローラ522は、上に
図1〜4を参照して説明したプロセスを実行することができる。例えば、サービスコントローラ522は、サーバー内の消費電力を管理するように構成されていてよい。
【0061】
記載された機能(features)は、有利には、データストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、かつこれらへデータおよび命令を送信するよう接続された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である1つまたはそれ以上のコンピュータプログラムにおいて実施することができる。コンピュータプログラムとは、直接または間接的にコンピュータで用いられて所定の動作を行う、または所定の結果をもたらすことのできる一連の命令である。コンピュータプログラムは、コンパイルまたはインタープリットされた言語を含む任意の形式のプログラミング言語(例えばObjective−C,Java(登録商標))で記述されたものであってよく、かつそれは、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境で用いるのに適したその他のユニットを含む任意の形式で展開され得る。
【0062】
命令のプログラムの実行に適したプロセッサには、例えば、任意の種類のコンピュータの汎用および専用マイクロプロセッサの両方、ならびに単独のプロセッサまたは複数のプロセッサもしくはコアのうちの1つが含まれる。一般にプロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。命令を実行するプロセッサ、ならびに命令およびデータを保存する1つまたはそれ以上のメモリは、コンピュータに不可欠な構成要素である。また、一般にコンピュータは、データファイルを保存するための1つもしくはそれ以上のマスストレージデバイスをも含む、またはこれらと通信すべく動作可能に接続される。かかるデバイスには、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびに光ディスクが含まれる。コンピュータプログラム命令およびデータを確実に具体化するのに適したストレージデバイスには、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびにCD−ROMおよびDVD−ROMディスクを含む全ての形式の不揮発性メモリが含まれる。プロセッサおよびメモリは、ASIC(特定用途向け集積回路)によって補われても、またはこれに組み込まれてもよい。
【0063】
ユーザーとのインタラクションを実現するために、上記機能は、ユーザーに情報を表示するためのCRT(陰極線管)またはLCD(液晶ディスプレイ)モニターのようなディスプレイ装置、ならびにユーザーによるコンピュータへの情報の提供を可能とするキーボードおよびマウスまたはトラックボールのようなポインティングデバイスを備えたコンピュータに実装することができる。
【0064】
上記機能は、データサーバーのようなバックエンドコンポーネント、またはアプリケーションサーバーもしくはインターネットサーバーのようなミドルウェアコンポーネント、またはグラフィカルユーザーインターフェースもしくはインターネットブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネント、またはこれらの任意の組み合わせを含むコンピュータシステムに実装され得る。システムのコンポーネントは、任意の方式で、または通信ネットワークのようなデジタルデータ通信の媒体によって接続され得る。通信ネットワークの例には、例えば、LAN、WAN、ならびにインターネットを形成するコンピュータおよびネットワークが含まれる。
【0065】
コンピュータシステムには、クライアントおよびサーバーが含まれ得る。クライアントおよびサーバーは一般に互いに遠く離れたところにあり、かつ通常はネットワークを通じてやり取りする。クライアントとサーバーとの関係は、それぞれのコンピュータで実行され、かつクライアント−サーバーの関係(client−server relationship)を互いに有するコンピュータプログラムに基づいて生じる。
【0066】
開示した実施形態の1つまたはそれ以上の特徴またはステップは、APIを用いて実行され得る。APIは、通話アプリケーション(calling application)と、サービスを提供する、データを提供する、またはオペレーションもしくは計算を実行するその他のソフトウェアコード(例えばオペレーティングシステム、ライブラリルーチン、ファンクション)との間で伝達される1つまたはそれ以上のパラメータを定義することができる。
【0067】
APIは、API仕様書において定義された呼び出し規約(call convention)に基づくパラメータリストまたはその他の構造により1つまたはそれ以上のパラメータを送信または受信するプログラムコード中の1つまたはそれ以上の呼び出しとして実行され得る。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、アレイ、リスト、またはその他の呼び出しであってよい。API呼び出しおよびパラメータは任意のプログラミング言語に実装され得る。プログラミング言語は、プログラマがAPIをサポートする機能にアクセスするために用いるであろう語彙および呼び出し規約を定義することができる。
【0068】
いくつかの実施において、API呼び出しは、入力能力、出力能力、処理能力、電源能力、通信能力などのようなアプリケーションを動作させるデバイスの能力を、アプリケーションに報告することができる。
【0069】
多数の実施形態を上に記載した。しかしながら、さまざまな変更を加え得るということが理解されるであろう。例えば、上述したフローから他のステップが提供されても、またはステップが省かれてもよいし、かつ、上述したシステムに他のコンポーネントが加えられても、または上述したシステムから除去されてもよい。したがって、他の実施形態も以下の特許請求の範囲内に入る。