(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-10
(54)【発明の名称】電源ユニットの電力レベル保護制限
(51)【国際特許分類】
G06F 1/28 20060101AFI20240403BHJP
H02J 9/06 20060101ALI20240403BHJP
G06F 11/30 20060101ALI20240403BHJP
【FI】
G06F1/28
H02J9/06 110
G06F11/30 162
G06F11/30 140U
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560484
(86)(22)【出願日】2021-12-03
(85)【翻訳文提出日】2023-11-28
(86)【国際出願番号】 US2021061770
(87)【国際公開番号】W WO2022211857
(87)【国際公開日】2022-10-06
(32)【優先日】2021-04-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ハートウェル,デイビッド・ウォーレン
(72)【発明者】
【氏名】ブラウン,アンドリュー・デイビッド・リード
【テーマコード(参考)】
5B011
5B042
5G015
【Fターム(参考)】
5B011DA01
5B011EA01
5B011FF02
5B011GG02
5B011GG16
5B011JA14
5B042GC17
5B042KK03
5B042KK11
5B042KK13
5B042MA08
5B042MA14
5B042MC22
5B042MC38
5G015JA33
5G015KA03
(57)【要約】
冗長電源の可用性に基づいて、サーバの電源および関連する消費電力アラートを管理するための技術が開示される。サーバへの冗長電源が電力供給を停止したことをシステムが検出すると、システムは残りの電源に対して新しい消費電力閾値を構成する。新しい消費電力閾値は、冗長電源が電力を供給していたときの初期消費電力閾値(構成されている場合)とは異なる。電源に対する消費電力アラートをトリガするための消費電力閾値は、アクティブに電力を供給している電源の数に基づくことができる。
【特許請求の範囲】
【請求項1】
命令を記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、1つまたは複数のハードウェアプロセッサによって実行されると、次を含む動作を実行し、
サーバが少なくとも第1の電源と第2の電源によって電力供給されていることを決定するステップと、
前記第2の電源から前記サーバへの送電の停止を検出するステップと、
前記第1の電源から前記サーバの消費電力率を識別するステップと、
前記第1の電源からの前記サーバの前記消費電力率が閾値を超えていると決定するステップと、
(a)前記第2の電源を介した前記サーバへの送電の前記停止と、(b)前記第1の電源からの前記サーバの前記消費電力率が閾値を超えることの同時発生を検出することに応答して、
前記第1の電源から前記サーバの前記消費電力に関連するアラートを送信するステップと、を含む、1つまたは複数の非一時的コンピュータ可読媒体。
【請求項2】
前記第2の電源から前記サーバへの送電の前記停止を検出する前に、
前記第1の電源からの前記サーバの前記消費電力率が前記閾値を超えていると決定するステップと、
前記第2の電源が前記サーバに電力を供給し続けるため、前記消費電力率に基づいて前記アラートが送信されないステップと、をさらに含む、請求項1に記載の媒体。
【請求項3】
前記第1の電源から前記サーバの前記消費電力に関連する前記アラートを送信することは、(c)前記第1の電源が現在前記サーバに電力を供給している前記唯一の電源であると決定することにさらに応答する、請求項1に記載の媒体。
【請求項4】
前記アラートは、前記第1の電源からの前記サーバの前記消費電力に変更を生じさせることなく受信される、請求項1に記載の媒体。
【請求項5】
前記アラートに応答して、
前記サーバの前記消費電力率が前記閾値を超える第1の単位時間の第1の割合を決定するステップ、
前記サーバの前記消費電力率が前記閾値を超える前記第1の単位時間の前記第1の割合に基づいて、前記サーバの少なくとも1つの中央処理装置の消費電力率の減少を決定するステップ、および、
前記サーバの少なくとも1つの中央処理装置の前記消費電力量が減少するステップ、をさらに含む、請求項1に記載の媒体。
【請求項6】
前記第1の割合は、ある期間中に前記第1の電源からの前記サーバの前記消費電力に関連する前記アラートが受信される頻度に基づく、請求項5に記載の媒体。
【請求項7】
命令を記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、1つまたは複数のハードウェアプロセッサによって実行されると、次を含む動作を実行し、
サーバが少なくとも第1の電源と第2の電源によって電力供給されていることを決定するステップと、
前記第2の電源から前記サーバへの送電の停止を検出するステップと、
前記第2の電源から前記サーバへの送電の前記停止の検出に応答し、
前記第2の電源が前記サーバに電力を供給していたときに使用されなかった前記第1の電源の第1の電力閾値を選択するステップ、および、
前記第1の電源から送信される電力が前記第1の電力閾値を超えた場合にアラートを送信するように前記第1の電源を構成するステップと、を含む、1つまたは複数の非一時的コンピュータ可読媒体。
【請求項8】
前記第1の電源から送信される電力が前記第1の電力閾値を超えたときに前記アラートを送信するように前記第1の電源を構成する前に、前記第1の電源は、前記第1の電源から送信される電力が第2の電力閾値を超えたときに前記アラートを送信するように構成されており、前記第2の電力閾値は前記第1の電力閾値よりも高くなる、請求項7に記載の媒体。
【請求項9】
前記第1の電源から送信される電力が前記第1の電力閾値を超えたときに前記アラートを送信するように前記第1の電源を構成する前に、前記第1の電源は消費電力に関するアラートを送信するように構成されなかった、請求項7に記載の媒体。
【請求項10】
前記第1の電源は、第1の電力アクティブ化値を有する第1の回路ブレーカと通信し、
前記第1の電力閾値は、前記第1の回路ブレーカの電力アクティブ化値よりも小さい、請求項7に記載の媒体。
【請求項11】
請求項1から10のいずれかに記載の動作を含む方法。
【請求項12】
請求項1から10のいずれかに記載の動作を実行する手段を含むシステム。
【請求項13】
ハードウェアプロセッサを含み、請求項1から10のいずれかに記載の動作を実行するように構成されているシステム。
【発明の詳細な説明】
【技術分野】
【0001】
技術の分野
本開示は、サーバへの電源の数が削減される期間中のサーバの消費電力を制御することに関する。特に、本開示は、サーバ電源ユニットの電力レベル保護制限を生成することに関する。
【背景技術】
【0002】
背景
商業コンピューティング事業体は、データベース記憶スペースおよび計算能力をサービスとして他の商業事業体に販売することが多くなっている。この環境では、コンピューティング動作はコンピューティングセンター(俗に「サーバファーム」と呼ばれる)に集中することがよくある。これらのコンピュータセンターには数百または数千のシャーシまたは「ラック」が収容され、各々に複数のサーバが収容され得る。ラック内のサーバは互いに近接しているため、またコンピューティングセンター内のラックが集中しているため、サーバの熱状態と電力需要は、過熱および/または過剰な電力を防ぐために、一般に綿密に監視される。
【0003】
クラウドベースのコンピューティングサービスに対する需要が拡大するにつれて、データセンター内に収容されるサーバの典型的な数が増加した。場合によっては、この増加は、ラック内に保持されるサーバの数を増やすことによって促進され、それによってサーバファームの平方フィートあたりのコンピューティング能力が増加する。ラック内で複数のサーバを動作させると、サーバの構成(例えば、物理アドレス指定)の改善や、電源およびデータ入出力ケーブルの構成の改善など、多くの利便性が得られる。場合によっては、設計者は、ラックをコヒーレントなシステムとして設計することができ、その場合、電力要件、処理能力(例えば、単位時間あたりの中央処理装置(CPU)サイクル)、廃熱の発生、および個々のサーバの熱に関する考慮事項が集合的に考慮される。このようにして、ラックの物理構成は、電源入力、冷却システム、およびその他のサーバの運用ニーズに対応できるように設計されている。
【0004】
過剰なサーバ温度によって引き起こされる一連の悪影響を考慮して、一部のサーバCPUには、過熱を回避するために消費電力を大幅に制限するプロセスが装備されている。この「プロチョット」プロセスは、単位時間あたりのCPUプロセッササイクルを大幅に減少させることにより、CPUの消費電力を削減し、したがって廃熱の発生を削減する。プロチョットは通常、プロチョットプロセスが呼び出されるたびに、一定期間、一定量だけCPUサイクルを削減する。
【0005】
このセクションで説明するアプローチは、追求することができるアプローチであるが、必ずしも以前に考案または追求されてきたアプローチではない。したがって、別段の指示がない限り、このセクションに記載されているアプローチのいずれも、単にこのセクションに含まれているという理由だけで従来技術として認定されると想定すべきではない。
【図面の簡単な説明】
【0006】
実施形態は、例として示されるものであり、添付図面の図に限定されるものではない。本開示における「1つの」または「1つの」実施形態への言及は、必ずしも同じ実施形態を指すわけではなく、それらは少なくとも1つを意味することに留意されたい。図面では次のようになる。
【
図1A】1つまたは複数の実施形態による、複数の構成サーバを備えたサーバラックを概略的に示しており、各構成サーバには2つの電源によって電力が供給される。
【
図1B】1つまたは複数の実施形態による、コンピューティング要素を含むサーバと、電源セットのうちの1つからの電力損失に応答してサーバのアクティビティを動的に調整してサーバの性能を最適化することができるサーバ制御システムとを概略的に示す図である。
【
図1C】1つまたは複数の実施形態による、電源制限を記憶し、電源レベルを監視し、電源制限を超えたときにサーバに通知する機能を含む電源を概略的に示す図である。
【
図2】1つまたは複数の実施形態による、複数の冗長電源のセットと通信するサーバ制御システムを概略的に示す図である。
【
図3】1つまたは複数の実施形態による、冗長電源のセットのうちの1つからの電力損失に応答してサーバの消費電力を削減するために使用され得るアラートを生成するための一連の動作例を示す図である。
【
図4】1つまたは複数の実施形態による、冗長電源のセットのうちの1つからの電力損失に応答してサーバの消費電力を削減するために使用され得るアラートを生成する一連の動作の代替例を示す図である。
【
図5A】1つまたは複数の実施形態による、2つの電源のうちの1つがサーバへの電力供給を停止したサーバに
図3または
図4のプロセスが適用される例示的な実施形態の進行段階を示す図である。
【
図5B】1つまたは複数の実施形態による、2つの電源のうちの1つがサーバへの電力供給を停止したサーバに
図3または
図4のプロセスが適用される例示的な実施形態の進行段階を示す図である。
【
図5C】1つまたは複数の実施形態による、2つの電源のうちの1つがサーバへの電力供給を停止したサーバに
図3または
図4のプロセスが適用される例示的な実施形態の進行段階を示す図である。
【
図5D】1つまたは複数の実施形態による、2つの電源のうちの1つがサーバへの電力供給を停止したサーバに
図3または
図4のプロセスが適用される例示的な実施形態の進行段階を示す図である。および
【
図6】1つまたは複数の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
詳細な説明
以下の説明では、説明の目的で、完全な理解を提供するために多くの具体的な詳細が記載される。1つまたは複数の実施形態は、これらの特定の詳細なしで実施されてもよい。一実施形態で説明される特徴は、異なる実施形態で説明される特徴と組み合わせることができる。いくつかの例では、本発明を不必要に分かりにくくすることを避けるために、周知の構造および装置をブロック図形式を参照して説明する。
1. 概要
2. システムアーキテクチャ
3. サーバ電源制御システム
4. サーバの消費電力を制御する方法
5. 実施例
6. コンピュータネットワークとクラウドネットワーク
7. その他;拡張機能
8. ハードウェア概要
1.概要
1つまたは複数の実施形態は、冗長電源の可用性に基づいて、電源および関連する消費電力アラートを管理する。最初は、複数の電源がシステムに電力を供給することができる。各電源には、消費電力(例えば、CPUによる)が消費電力閾値を超えたときにアラートをトリガする初期消費電力閾値が構成されている場合も、構成されていない場合もある。初期消費電力閾値が構成されていない場合、どのレベルの消費電力でもアラートはトリガされない。初期消費電力閾値が構成されている場合、消費電力レベルが初期消費電力閾値を超えると、アラートがトリガされる。このようなアラートは、本明細書ではPSU_Alert信号と呼ばれ得る。冗長電源が電力供給を停止したことをシステムが検出すると、システムは残りの電源に対して新しい消費電力閾値を構成する。他の例では、消費電力閾値が事前に設定されてもよい。この、閾値が事前送信されているというシナリオは、消費電力率を低減するのに必要な時間を短縮することができる。それにもかかわらず、本明細書で説明される実施形態は、電力をアクティブに供給している電源の数に基づいて、電源に対する消費電力アラートをトリガするための消費電力閾値を構成する。
【0008】
1つまたは複数の実施形態は、アクティブに電力を供給している電源の数に基づいて、閾値を超える電源からの消費電力に対応する消費電力アラートを処理する。最小数の電源(例えば2つの電源)がアクティブに電力を供給している場合、システムはアクティブな電源のいずれかから受信した消費電力アラートを無視し得る。消費電力量のアラートを無視することには、消費電力量の削減につながるアクションを控えることも含まれる。最小数の電源がアクティブに電力を供給しなくなった場合、システムは消費電力を削減しようとするためのアクションを実行する。
【0009】
一例では、システムは、少なくとも1つの他の冗長電源が電力を供給している場合、任意の電源からの消費電力アラートを無視する。システムは、(a)冗長電源の故障と(b)残りの電源からの消費電力が電源閾値を超えたという同時発生を検出すると、消費電力を削減しようとするアクションを実行する。このアクションには、消費電力を削減しようとして信号を送信することが含まれ得る。この信号には、例えば、CPUレジスタを更新することによってCPUによる消費電力を削減する機能を備えたサービスプロセッサへのプロチョット信号が含まれ得る。消費電力を削減しようとして信号を送信するアクションは、電力の削減につながる場合もあれば、そうでない場合もある。
【0010】
本明細書に記載され、および/または特許請求の範囲に記載される1つまたは複数の実施形態は、この概要セクションに含まれない場合がある。
【0011】
2.アーキテクチャの概要
複数の電源から電力を受信するようにサーバを構成することは、個々のサーバアーキテクチャの多くの例で一般的である。いくつかの例では、サーバの予想される電力需要は2つ以上の電源に分割され、各電源がサーバに電力の一部を供給する。1つの電源が動作不能になった場合でもサーバへの電力は維持されるが、この電源構成のリスクは、動作中の電源が対応する推奨電源定格を超える可能性があることである。この電源の定格を超える(つまり、2つ以上の電源によって以前に供給されていたレベルの電力を供給することによって)リスクは、電源自体またはサーバファーム(例えば、データセンター)の電源回路内の他の場所の回路ブレーカがアクティブ化され得ることである。回路ブレーカをアクティブ化すると、電源が過熱または損傷から保護されるが、サーバに電力損失が発生する可能性もある。場合によっては、回路ブレーカが最初にアクティブ化する電力システム内の場所によっては、複数のサーバおよび/または複数のラックで電力損失が発生し得る。複数のサーバはもちろんのこと、クラウドコンピューティングセンター内の1台のサーバで電力損失が発生すると、クラウドコンピュータサービスを購入する事業体に重大な運用上の問題が発生し、クラウドコンピューティングセンターを運営する事業体に重大な収益損失が生じ得る。
【0012】
この電力損失を回避するために、一部のサーバ管理システムは、多くのCPUのハードウェアに存在する場合があるプロチョットプロトコルを利用して、電力損失が検出されているときにサーバによる消費電力を削減し得る。プロチョットを使用すると、事前定義済みの期間、CPUの動作アクティビティ(例えば、単位時間あたりのプロセッササイクル)が大幅に減少し、これにより、CPUの電力需要が軽減され、残りの電源(または複数の電源)が推奨電源制限を超えたり、回路ブレーカがアクティブ化したりするのを防ぐ。
【0013】
実装には便利であるが、消費電力を管理するために従来から適用されているプロチョットプロトコルを利用することには、重大な欠点も伴う。プロチョットは、一定期間、単位時間あたりのCPUプロセッササイクルを一定量(例えば、さまざまな例では25%または30%)大幅に減少させることにより、CPU電力需要を削減する。この大幅な減少は、重大度に関係なく、プロチョットのトリガ条件を満たすすべてのイベントに均一かつ一貫して適用される。このプロセッササイクルの大幅な減少により、サーバの生産性が大幅に低下し、クラウドコンピューティング割り当てのタスクの完了時間が増加する。これらの影響により、不便、ビジネスの中断、収益の損失、およびその他さまざまな望ましくない結果が生じ得る。
【0014】
以下に説明する実施形態は、上述したように、プロチョットまたは類似のプロセスの関与によって引き起こされる劇的な中断を回避しながら、サーバによって削減される電源セットに課せられる電力需要を管理する。本明細書の実施形態は、例えば、複数の電源のセットのうちの1つの電源からの電力の停止を検出する。次に、システムは、残りの電源(または残りの電源のいずれか)が閾値を超える電力を供給しているかどうかを決定する。いくつかの例では、閾値は各電源に固有であり、各電源に個別に関連付けられているメモリ構造(「レジスタ」)に記憶することもできる。供給される電力が残りのアクティブな電源に関連付けられている閾値を超えたとの決定に応答して、残りの電源は閾値電力を超えたことをシステムに示す信号(または「アラート」)を生成することができる。このアラートの受信に応答して、システムは、電源閾値を超えている測定間隔の継続時間に比例して、サーバによって消費される電力を制限することができる。システムは、アラートを受信する連続測定間隔の割合を継続的に監視し、それに応じてサーバの消費電力を増減させることができる。このようにして、プロチョットの利用によって引き起こされる一貫した厳しい電力制限とは異なり、CPU性能への影響は重大度と時間の両方で制限される。
【0015】
図1Aは、1つまたは複数の実施形態によるシステム100を示す。
図1に示すように、システム100は、サーバ108、112、116、および120を収容するサーバラック104を含む。この例では、サーバ108、112、116、および120の各々は、電源Aおよび電源Bとして示される2つの電源によって電力供給される。より具体的には、サーバ108は、電源A124および電源B128によって電力を供給される。サーバ112は、電源A132および電源B136によって電力を供給される。サーバ116は、電源A140および電源B144によって電力を供給される。そしてサーバ120は電源A148と電源B152によって電力を供給される。
【0016】
1つまたは複数の実施形態では、システム100は、
図1に示される構成要素よりも多いまたは少ない構成要素を含むことができる。
図1に示されている構成要素は、相互にローカルに存在する場合もあれば、相互にリモートに存在する場合もある。
図1に示される構成要素には、ソフトウェアおよび/またはハードウェアで実装される要素が含まれ得る。各構成要素には、複数のアプリケーションおよび/またはマシンに分散される要素が含まれ得る。複数の構成要素を1つのアプリケーションおよび/またはマシンに組み合わせることができる。1つの構成要素に関して説明される動作は、代わりに別の構成要素によって実行され得る。
【0017】
いくつかの例では、サーバラック104は、複数のサーバが取り付けられ得る単なるシャーシまたはフレームである。サーバラック104は、4つのサーバ(例えば、サーバ108、112、116、および120)を収容するものとして示されているが、サーバラックは、任意の数のサーバ(例えば、1、2、4、10、20、またはそれ以上)を収容するように構成できる。
【0018】
サーバラック104は、コンピューティングセンター内にサーバを配置し、維持する際の利便性を向上させる。例えば、サーバラック104は、複数のサーバを互いに積み重ねることを可能にし、それによってコンピューティングセンター内のサーバの密度を増加させる(例えば、平方フィート当たりのサーバおよび/またはコンピューティングサイクル数を増加させる)。いくつかの例では、サーバラック104などのサーバラックは、サーバの編成および/または物理的な動作の利便性も向上させる。例えば、サーバラックを使用すると、物理サーバのアドレス指定とラベル付けの利便性が向上し、数百および/または数千のサーバを備えた広大なコンピューティングセンター内で特定の装置を(例えば、体系的なラベル付けによって)簡単に見つけることができるようになる。
【0019】
サーバラック104はまた、積み重ねられているにもかかわらず、動作に必要なサーバの部分へのアクセスを維持することによって、サーバの利便性、メンテナンス、および動作を改善することができる。例えば、サーバラック104は、データポートおよび電源ポートを露出させ、視覚的な状態指標(例えば、電源指標、動作状態指標)を可視にし、冷却構造(例えば、ファン、ヒートシンク)に廃熱を排出するのに十分な物理的クリアランスを確保したまま、積み重ねられたサーバを固定することができる。
【0020】
サーバ108、112、116、および120は、データを記憶し、および/または通信可能に結合されているクライアント装置用のコンピューティング機能を実行できるコンピューティングシステムである。サーバの例には、ファイルサーバ、Webサーバ、アプリケーションサーバ、データベースサーバなどが含まれる。
【0021】
サーバ112、116、および120を代表するサーバ108が、
図1Bに概略的に詳細に示されている。高レベルでは、サーバ108(およびサーバ112、116、および120)は、中央処理装置(CPU)156、メモリ160、およびサーバ制御システム164を含むことができる。
【0022】
サーバ108のCPU156は、命令を実行し、要求に応じてデータを処理するように動作する集積論理回路(例えば、マイクロプロセッサ)を含むことができる。いくつかの例では、CPU156は、要求に応じて命令を実行し、データを処理するために互いに連携して動作することができる複数の集積回路装置を含むことができる。例えば、CPU156は、実際には、他の集積回路装置の中でも特に、複数の集積論理チップ、メモリチップ(例えば、スタティックランダムアクセスメモリ(SRAM)チップなどの揮発性メモリ)を含み得る。CPU156の構成、構成要素、および設計は、サーバの使用目的に応じて変り得る。例えば、Webサーバには、データベースサーバとは異なる性能目標に従って設計されているCPUまたはCPUチップセットが搭載され得る。
【0023】
サーバのメモリ160は、特にフラッシュメモリ、動的ランダムアクセスメモリ(DRAM)装置、SRAM装置、光メモリ、磁気メモリなどを含む揮発性および/または不揮発性メモリ装置を含むことができる。
【0024】
CPU156と同様に、メモリ160は、サーバ108の意図されている機能に従って構成され得る。例えば、要求データを記憶、取得、表示するために主に機能するデータベースサーバ(例えば、SQLサーバ)は、複数のクライアント装置からの複数のデータ要求を一時的に記憶し、データ記憶装置から取得されている要求データをさらに記憶するのに十分なメモリを含んでもよい。この例では、メモリ160は、数ギガバイトであり得る揮発性メモリと不揮発性メモリの組み合わせを含むことができる。
【0025】
他の例では、サーバ108のメモリ160は、サーバ自体によって使用されるデータを記憶することができる。例えば、メモリ160は、サーバ108自体の動作を管理するため、またはサーバ108が実行するように要求される動作で使用するためのデータおよび/または命令を記憶するように構成され得る。例えば、メモリ160は、
図3および
図4に関連して以下に説明されるプロチョットおよび/または技術を実行するための実行可能コードをメモリ構造に記憶することができる。
【0026】
サーバ制御システム164は、サーバ108を動作させるための装置、システム、および実行可能コードを含む。
図1Bに示される例示的なサーバ制御システム164は、サービスプロセッサ168およびメモリ装置172を含むものとして示されている。サーバ制御システム164は、サーバ108の動作を制御するためにサーバ108内に組み込まれたコンピューティング装置であるため、サーバ制御システム164は、図示の便宜上
図1Bに示されていない装置およびシステムを含み得る。
【0027】
いくつかの例では、サーバ制御システム164は、サービス108のさまざまな構成要素(例えば、CPU156)の動作温度を監視し、サーバ108の信頼性の高い動作を最適化し、または損傷を防ぐために、動作条件を変更する命令(例えば、CPU156のプロセッササイクルを減らす、冷却ファン速度を上げる、プロチョットを記憶および実行する)を記憶および実行することができる。
【0028】
サーバ制御システム164はまた、電源レベルの監視など、サーバ108の他の必要な動作機能をアクティブにすることもでき、サーバ108へのリモートアクセスを可能にし(例えば、セキュリティプロトコルを利用し、インターネットプロトコルを介して安全な通信を容易にすることによって)、他の動作の中でもパワーアップ/パワーダウンプロトコルおよびシステムを利用することができる。
【0029】
サービスプロセッサ168の例には、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)などの集積回路が含まれ得る。
【0030】
いくつかの例では、サービスプロセッサ168は、本明細書で説明される技術を実行するためにサービスプロセッサ168が選択的に使用できる複数のプロセッサおよびメモリ構造を含み得る。
【0031】
メモリ172は、サービスプロセッサ168と通信することができ、上述のメモリ装置のいずれかを含むことができる。これらには、SRAM、DRAM、フラッシュメモリ、磁気メモリ、光メモリ、または他の形式の揮発性および/または不揮発性メモリが含まれ得る。メモリ172は、サービスプロセッサ168によって使用される実行可能コードおよび/またはデータを記憶することができる。
【0032】
いくつかの例では、メモリ172は、以下の技術の態様のために特別に設計されている別個のメモリ領域、アドレス、レジスタ、および/または装置を含み得る。
【0033】
サーバ制御システム164の動作の一例では、サービスプロセッサ168は、サーバ108の性能および動作を監視するさまざまなシステムおよびセンサと通信していてもよい。例えば、サービスプロセッサ168は、サーバ108内の温度センサからの温度値を監視してもよい。サービスプロセッサ168はまた、冷却ファン速度および/または監視される空気入力チャネルを通る冷却空気の流量など、アクティブ冷却システムのアクティブ動作パラメータを監視することもできる。いくつかの例では、分析を容易にするために、サービスプロセッサ168は、温度値および冷却パラメータを時間の関数として一時的に記憶することさえできる。
【0034】
サービスプロセッサ168は、メモリ172に記憶されている動作閾値および/または動作制限を比較し、温度値が最適化され得るように冷却ファン速度を変更する命令を送信することができる。いくつかの例では、サービスプロセッサ168は、メモリ172に記憶されているプロチョットプロトコルを利用して、CPU156の動作温度を下げることができる。
【0035】
いくつかの例では、サービスプロセッサ168、またはサーバ制御システム164に関連付けられている他の処理装置(例えば、FPGA、ASIC)は、サーバ108に電力を供給する複数の電源の動作状態を監視することができる。例えば、以下でより詳細に説明するように、サーバ108と通信する各電源は、外部電源(交流(AC)であろうと直流(DC)であろうと)の状態を各電源に送信することができる。サービスプロセッサ168またはサーバ制御システム164内の同様の処理装置は、各電源への外部電力がアクティブであるか非アクティブであるかを示す信号を受信することができる。同様に、以下でより詳細に説明するように、サーバ108と通信する電源の各々は、電源からサーバ108に送信される直流電源の状態を送信することができる。サーバ制御システム164内のサービスプロセッサ168または同様の処理装置は、各電源からのDC電力がアクティブであるか非アクティブであるかを示す信号を受信することができる。
【0036】
以下により詳細に説明するように、サーバ制御システム164内のサービスプロセッサ168または同様の処理装置は、メモリ172と協働して、また、期間を測定し、電源から受信した信号が供給電力のレベルが閾値レベルを超えているかどうかを示す各期間の割合を識別することもできる。識別されると、サーバ制御システムは、CPU156にそのアクティビティを増減するように命令し、それによってその消費電力を制御することができる。
【0037】
図1Cを参照すると、電源124が示されている。電源124は、電源124~152を代表するものである。電源124は、電気エネルギーを送信および変換するための多くの異なる種類の電源に見られる要素を含むことができる。これらの要素は、図示の便宜上、
図1Cから省略されている。
【0038】
電源124(および類似の電源128~152)は、対応するサーバ(
図1Aに示されている)に電力を供給する。電源124は、電源から電力を受信し、対応するサーバに電力を送信するための導体および電力ケーブルを含むことができる。電源124はまた、抵抗器、コンデンサー、および変圧器などの電気要素を含んでもよい。これらの電気要素は、電源から受信されるAC電気を、電源から接続されているサーバに送信されるDC電気に変換できる。これらの電気要素は、電流や電圧などの電気的特性を、電源で使用される値からサーバで使用される値に変更もし得る。
【0039】
上述の電源に一般的に見られる要素に加えて、電源124(および類似の電源128~152)は、電力閾値ストア176、消費電力モニタ180、およびプロセッサ184も含む。
【0040】
電力閾値ストア176は、上限電力閾値を記憶する不揮発性メモリ装置を含むことができる。この電力閾値は、一般に、電源124の最大定格電源値よりも小さい。以下でより詳細に説明するように、この閾値は、電源セットのうちの1つの電源のアクティビティの停止を考慮して、サーバへの電源を最適化するために、より具体的には、CPUの計算生産性を最適化するために使用され得る。
【0041】
消費電力モニタ180は、接続されているサーバに供給される電力の瞬時値を記憶および/または監視するためのメモリ装置を含むことができる。例えば、消費電力モニタは、電源124によって接続されているサーバに送信される電力レベルを測定するように構成されている1つまたは複数の装置と通信することができる。消費電力モニタ180は、時間の関数として消費電力データを測定することができ、例えば、測定時間に対応するタイムスタンプまたはインデックス値を伴う電力測定値を記憶することができる。いくつかの例では、消費電力モニタ180は、継続的に、または定期的な間隔で電源値を監視することができる。例えば、消費電力モニタ180は、10マイクロ秒、100マイクロ秒、500マイクロ秒、10ミリ秒、100ミリ秒、または他の好都合な間隔の測定間隔全体にわたって電源値を監視することができる。測定間隔が完了すると、消費電力モニタは、測定間隔の新たなインスタンス化内で測定プロセスを周期的に再開することができる。いくつかの例では、消費電力モニタ180は、消費電力データをプロセッサ184に送信することができる。
【0042】
プロセッサ184の例としては、論理マイクロプロセッサ、FPGA、ASIC等の上述したものが挙げられる。プロセッサ184は、消費電力モニタ180からデータを受信し、受信した瞬間データを電力閾値ストア176に記憶されている閾値と比較することができる。
【0043】
以下に説明する例では、電源124によって送信されている電力が電力閾値ストア176に記憶されている閾値を超えたことを検出すると、プロセッサ184は、信号をサーバ108に送信することができる。この送信信号は、電力閾値を超えた状態をサーバ108にアラートすることができる(本明細書では「アラート」信号と呼ぶ)。信号は、電源124のプロセッサ184を対応するイーサネットポートを介してサーバ制御システム164と通信させるイーサネットケーブルを介して送信することができる。他の例では、信号は、専用通信チャネルまたは仮想通信ポートを介して、電源124のプロセッサ184からサーバ制御システム164に無線で(例えば、BluetoothまたはIEEE802.11無線通信プロトコルを介して)送信され得る。
【0044】
いくつかの例では、プロセッサ184は、過剰な電源状態の間、定期的に、または指定されている頻度で、「アラート」信号をサーバ108に送信することができる。例えば、プロセッサ184は、電力閾値ストア176に記憶されている閾値を超えることが消費電力モニタ180によって検出される各電力レベルに対して、別個のアラート信号をサーバ制御システム164に送信することができる。他の例では、プロセッサ184は、5、10、50、または100個の電源値ごとなど、電源測定値のサブセットを表すアラート信号をサーバ制御システム164に送信することができる。他の例では、プロセッサ184は、消費電力モニタ180によって電力測定値が収集されるのと同じ頻度またはそれよりも低い頻度でアラート信号をサーバ制御システム164に送信することができる。
【0045】
特定の電源124に関連付けられているプロセッサ184は、特定の電源124に対するサーバによる電力需要が関連付けられている閾値を超えるときはいつでも、サーバ108にアラート信号を送信することができる。しかし、サーバ108は、サーバに電力を供給する電源が両方(またはすべて)アクティブである限り、アラートの受信に応答してCPUアクティビティおよび消費電力を調整するいかなるアクションも取らなくてもよい。
【0046】
3.サーバ制御システム
サーバ制御システムは、電源が電力の供給を停止したことを示す信号と、残りの電源が閾値レベルを超えて電力を供給していることを示すアラート信号とを受信することができる。これに応じて、以下に説明するサーバ制御システムの実施形態は、サーバのCPUアクティビティを調整し、それに応じてサーバの消費電力を低減することができる。サーバ制御システムによって実行されるプロセス(後述)は、残りの電源によって供給される実際の電力が電源閾値を超える程度に基づいてCPU処理アクティビティを低下させる。このようにして、サーバ制御システムは、過剰な電源状態が解決されるまで(例えば、冗長電源を再度接続することによって)、可能な限り多くのCPU処理アクティビティを保存する。残りの電源に対するサーバによる電力需要は、電源閾値によって課される制限電源制限によって許容されるように、サーバの消費電力が徐々に増加するように、連続測定間隔内で再評価され得る。
【0047】
本明細書で説明するサーバ制御システムの動作は、固定量の電力および固定期間だけCPU消費電力を劇的に削減するプロチョットプロトコルの従来の実行とは異なる。この劇的な削減は、プロチョットの実行を促す問題の深刻さとは釣り合わない可能性がある。以下に説明する技術を使用すると、サーバ制御システムによって消費電力命令がメモリレジスタに書き込まれ、CPUの消費電力を削減できる。この消費電力レベルは、連続する測定間隔でメモリレジスタに書き換えられるため、消費電力を調整して、電力利用可能性に基づいてCPU性能を最大化できる。いくつかの例では、システムは、CPU消費電力を制御するために、消費電力命令によって決定される短期間プロチョットを使用してもよい。他の例では、CPUの消費電力を制御するために別のプロトコルが使用され得る。
【0048】
図2は、サーバ202、外部電源204、第1の電源208、および第2の電源220を含む例示的なシステム200を示す。
【0049】
サーバ202の要素は、サーバ108について上で説明した要素と類似しており、明確にするために
図2では省略されている。
【0050】
1つまたは複数の外部電源204は、電源208、220に電力を供給する。外部電源204は、発電および送電網のさまざまな要素を集合的に表す。例えば、外部電源204は、点電源(例えば、発電所)であっても、分散型発電システムにおけるローカル電源(例えば、コンピュータセンターの建物の屋根上のソーラーパネル)であっても、発電システムを含むことができる。外部電源204はまた、送電線、変圧器、変電所、スイッチ、および電源から負荷(この場合はサーバ202)に電力を送信するために使用される他の要素を含み得る。いくつかの例では、外部電源204は、実際には、電源208、220の各々に個別に電力を供給する複数の独立した電源204を含む。いくつかのシナリオでは、独立電源204のいくつかの組み合わせが故障し得るため、電源208、220の一方のみが影響を受ける。
【0051】
電源208は、電力閾値ストア210、消費電力モニタ212、およびプロセッサ216を含む。電源220は、電力閾値ストア224、消費電力モニタ228、およびプロセッサ232を含む。電力閾値ストア、消費電力モニタ、およびプロセッサの例は、
図1Cの文脈で上に示されている。これらの要素は完全を期すために
図2に含まれており、
図1Cでの前述の説明は
図2に当てはまる。
【0052】
電源208、220は両方とも、外部電源から電力を受信し、外部から供給される電力を、サーバ202によって使用され得る形式に変換またはコンバートする。例えば、電源208、220は、受信電力の電圧および電流値(他の特徴の中でも特に)を、サーバが動作のために使用可能な電圧および電流値に変更することができる。
【0053】
電源208、220の各々は、データ2つの信号(または2つの構成サブ信号を有する単一の信号)をサーバ202に送信し、より具体的には、サーバ202と通信するサーバ制御システム240に送信する。電源208、220の各々からの第1の送信信号236A、236Bは、(a)外部電源204から電源208、220への電力、および(b)対応する電源208、220からサーバ202への電力の一方または両方の状態を示す。電源208、220の各々からの第2の送信信号238A、238Bは、電源208、220が、電力閾値ストア210に記憶されている電力閾値を超える電力レベル(例えば、ワットで測定される)をサーバ202に提供しているかどうかを示す。いくつかの例では、電源208、220は、プロセッサ216を使用して消費電力を閾値と比較することによって、このアラート信号238A、238Bを送信するかどうかを決定する。あるいは、電源208、220は、電源208、220によって供給される電力が閾値210、224を超えるときはいつでも過剰電力信号238A、238Bを送信することができる。サーバ制御システムは、アクティブな電源の数に基づいて、受信したアラートに応答して行動するかどうかを決定することができる。
【0054】
より具体的には、
図2に示される例では、電源208からサーバ202への第1の信号は、外部/DC電源状態信号236Aとして識別される。電源220からサーバ202への信号は、外部/DC電源状態信号236Bとして識別される。この例では、信号236A、236Bの外部電源状態部分は、外部電源204が現在電源208、220に電力を供給しているかどうかを示す。図示の例では、信号236A、236BのDC状態部分は、それぞれ電源208、220がサーバ202にDC電力を供給しているかどうかを示す。
図2の矢印238A、238Bは、それらの任意の送信を示すために破線で示されている。
図2は、信号236A、236B、238A、238Bに加えて、電源208、220からサーバ202への電力の送信を示す「電力」とラベル付けされている矢印も含む。
【0055】
サーバのサーバ制御システム240は、信号236A、236B、238A、238Bを監視し、以下に説明する例のいくつかに従って応答することができる。サーバ制御システム240は、コントローラ244およびサービスプロセッサ256を含む。
【0056】
サーバ制御システム240のコントローラ244は、電力モニタ248およびアラート信号継続時間レジスタ252をさらに含む。サービスプロセッサ256はさらに、プロチョットプロトコル論理260、比較論理264、および電力制御論理270を含む。
【0057】
いくつかの例では、コントローラ244およびサービスプロセッサ256の要素は、マイクロプロセッサチップもしくはチップセットとして、またはFPGAなどのプログラマブル回路内でインスタンス化され得る。例えば、コントローラ244および/またはサービスプロセッサ256は、論理マイクロプロセッサ、FPGA、ASIC、および/またはDRAM、SRAM、フラッシュメモリなどのメモリ要素を含み得る。
【0058】
より具体的には、サーバ制御システム240の電力モニタ248は、受信電力信号236A、236B、238A、および238Bを監視する。いくつかの例では、電力モニタ248は、電源208、220の一方が信号236A、236Bの一方を介してもはや電力を供給していないこと(または信号236A、236Bの一方の停止)を最初に検出すると、電力制御管理プロセスを開始する。電源208、220のうちの1つからの電力の停止を検出した後の例示的なプロセスにおける第2のステップは、残りの1つのアクティブ電源208または220が、過剰電力信号または「アラート」信号238Aまたは238Bによって示されるように、電力閾値を超える電力を供給しているかどうかを決定することである。
【0059】
いくつかの例では、第2のステップの前段階として、電力モニタ248は、電源208、220のうちの残りのアクティブな電源の電力閾値ストア210、224の値を、アラートに関連付けられているレベルに書き換えることができる。すなわち、場合によっては、電力閾値ストア210、224は両方とも、両方の電源208、220が動作しているときに使用される閾値電力レベルを最初に記憶することができる。電源208、220のうちの1つが電力の供給を停止したと決定すると、電力モニタ248は、残りの1つの電源208、220について更新済みの閾値を電力閾値ストア210、220に書き込むことができる。
【0060】
他の例では、電力閾値ストア210、224はともに、両方の電源208、220が動作しているときに使用される第1の閾値電力レベルを記憶し、また、電源208、220の一方が動作していないときにアクティブ化される第2の閾値電力レベルも記憶し得る。この第2の電力閾値レベルは、第1の電力閾値レベルより小さくてもよい。いくつかの例では、第2の電力閾値レベルは、第1の閾値電力レベルの半分未満、電源の最大電力定格の半分未満、および/またはアクティブ電源と通信する回路ブレーカの定格未満の値である。
【0061】
上述したように、アラート信号は、アクティブ電源208、220内のプロセッサによって生成され得る。プロセッサは、消費電力モニタによって測定される、サーバに供給される電力(例えば、ワット単位)を、電力閾値ストア210、224に記憶されている電力レベルと比較することができる。場合によっては、残りの1つのアクティブ電源208または220の電力閾値ストア210または224に記憶されている電力レベルが、両方の電源208、220がサーバ202にアクティブに電力を供給している場合、電力閾値ストア210、224に記憶されている前の値よりも低い値である。
【0062】
供給される電力が閾値を超える状況の間、アラート信号238Aまたは238Bが(継続的または周期的に)サーバ制御システムに送信される。いくつかの例では、サービスプロセッサ256は、アラート信号238A、238Bに応答して、壊滅的な停電を防止することができる。例えば、サービスプロセッサ256は、サーバ制御システム240の他の要素と対話して、電源208または220に関連付けられている回路ブレーカのアクティブ化を防止し、それによってサーバ202の完全な停電を防止することができる。いくつかの例では、残りの電源208または220からの「過剰電力アラート」に比例した応答を行う前に、サーバ制御システム240は、任意で、サービスプロセッサ256に対し、所定の固定期間および所定の固定レベルの電力削減の間、従来の形式でプロチョットプロトコル260を実行するように命令することができる。上で説明したように、プロチョットプロトコル260のこの従来のアプリケーションはCPUアクティビティを大幅に削減し、それによって消費電力の大幅な削減を引き起こす。
【0063】
他の実施形態では、サーバ制御システム240は、サーバ202に供給される電力に比例してそのアクティビティを削減するようにCPUに命令する異なる電力削減アルゴリズムを使用して、消費電力の削減を調整することができる。他の例では、システムは、CPU電力を削減するためにプロチョットプロトコルを適用することができるが、電力削減がサーバ202に供給される電力に比例するように、プロチョットが使用する時間を制限することができる。使用される特定のプロトコルに関係なく、この調整がなされるアプローチにより、プロチョットプロトコルの使用によって引き起こされるCPU生産性の大幅な損失を回避または軽減できる。
【0064】
いくつかの例では、この調整がなされるアプローチは、部分的に、アラート信号持続時間レジスタ252によって達成される。アラート信号持続時間レジスタ252は、記憶媒体(例えば、DRAM、フラッシュメモリ、循環記憶メモリ構造)を含み、これは、期間(または同じ継続時間を有する複数の連続期間)を定義および記録し、次いで、電力モニタ248で受信されるアラート信号の継続期間を定義済みの期間と比較する。
【0065】
サービスプロセッサ256内の比較論理264は、アラート信号継続時間レジスタ252に記憶されている期間を、対応する期間のアラート信号の継続時間と比較する。したがって、比較論理264は、アラート信号238Aまたは238Bがアクティブであるアラート信号持続時間レジスタ252に記憶される各連続期間(「測定間隔」とも呼ばれる)の割合を決定する。システムは、この割合を、電源が閾値を超える電力を供給する電力イベントの重大度のプロキシとして認識する。
【0066】
サーバ制御システム240、特に電力制御論理270は、アラートがアクティブである決定される時間の割合に基づいて、CPUアクティビティが低減される程度を決定することができる。具体的には、電力制御論理270は、単位時間当たりのCPUプロセスサイクルを低減する命令、CPUクロック速度/デューティサイクルを遅くする命令、または過剰電力イベントの深刻度に比例してCPUが消費する電力を低減する命令を送信することができる。いくつかの例では、電力制御論理270は、プロチョットプロトコル260に対し、アラートがアクティブである測定間隔内の決定される時間の割合に基づく期間アクティブ化するように命令する。他の例では、サーバ202(例えば、CPU)の消費電力を削減するために、別の命令またはプロトコルが使用されてもよい。
【0067】
いくつかの例では、電力制御論理270は、アラートがアサートされる測定期間の割合を再計算することができる。このようにして、測定期間中のアラート信号の頻度および/または継続時間が低下するにつれて、CPUアクティビティの減少が低下する(つまり、CPUアクティビティ自体が増加する)。つまり、システムは、受信するアラート信号の数が少ない、頻度が少ない、または継続時間が短い場合に許容されるように、CPUアクティビティを増加させる。いくつかの実施形態では、システムは、(プロチョットの従来のアプリケーションまたは何らかの他の手段による)最初のCPU電力削減の後、CPUアクティビティを(例えば、連続する測定期間で)徐々に増加させることができる。上述の監視は継続され、システムは後続の測定期間中にアラート信号の頻度および/または持続時間の変化に応答できるようになる。
【0068】
上で示したように、CPUアクティビティに対するこれらの変更は、CPUの消費電力および/または性能を制御または影響を与える消費電力メモリレジスタに対応する値を書き込むことによって達成され得る。この消費電力メモリレジスタは、サーバ制御システム240内(例えば、コントローラ244、サービスプロセッサ256、電力制御論理270内)またはCPU自体内にあってもよい。
【0069】
いくつかの実施形態は、以下の利点のうちの少なくとも2つを含み得る。まず、この技術では、サーバが消費する電力が電源閾値を超える程度に比例してCPUの消費電力が削減される。これは、電源によってサーバに供給される電力が閾値を超えた時間の期間に基づいて電力削減が調整されることを意味する。これにより、プロチョットのアプリケーションによって生じるCPU速度および/または生産性の劇的な低下を軽減または回避できる可能性がある。
【0070】
第2に、サーバが電源閾値を超える程度は、アラート信号継続時間レジスタ252によって定義される単位時間(「測定間隔」)ごとにシステムによって再評価される。これは、過剰電力イベント中にCPUアクティビティレベルを繰り返し(例えば、連続する測定間隔で定期的に)調整できるフィードバック機構を適用する。これは、事前に定義済みの一定期間、固定のCPUアクティビティ削減を適用する従来のプロチョットアプリケーションとは対照的である。
【0071】
1つまたは複数の実施形態では、さまざまな実施形態の態様をデータリポジトリに記憶することができる。データリポジトリは、データを記憶するための任意の種類の記憶ユニットおよび/または装置(例えば、ファイルシステム、データベース、テーブルのコレクション、または任意のその他の記憶機構)である。さらに、データリポジトリには、複数の異なる記憶ユニットおよび/または装置が含まれ得る。複数の異なる記憶ユニットおよび/または装置は、同じ種類であるか、同じ物理サイトに配置されている場合もあれば、そうでない場合もある。さらに、データリポジトリは、サーバ(例えば、サーバ202)と同じコンピューティングシステム上で実装または実行することができる。代替的にまたは追加的に、データリポジトリは、サーバ202とは別個のコンピューティングシステム上で実装または実行されてもよい。データリポジトリ104は、直接接続またはネットワークを介してサーバ202に通信可能に接続することができる。
【0072】
システム100、200および方法300、400を説明する情報は、システム100、200内の任意の構成要素にわたって実装され得る。
【0073】
1つまたは複数の実施形態では、システム100、200は、方法300、400に関して本明細書に記載される動作を実行するように構成されているハードウェアおよび/またはソフトウェアを指す。
【0074】
一実施形態では、システム100、200は、1つまたは複数のデジタル装置上で実装される。「デジタル装置」という用語は、一般的にプロセッサを含むハードウェア装置を指す。デジタル装置は、アプリケーションまたは仮想マシンを実行する物理装置を指し得る。デジタル装置の例には、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、Webサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、機能固有のハードウェア装置、ハードウェアルーター、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(NAT)、ハードウェアロードバランサ、メインフレーム、テレビ、コンテンツ受信機、セットトップボックス、プリンタ、モバイルハンドセット、スマートフォン、携帯情報端末(「PDA」)、無線受信機および/または送信機、基地局、通信管理装置、ルーター、スイッチ、コントローラ、アクセスポイント、および/またはクライアント装置が含まれる。
【0075】
4.サーバの消費電力を制御する方法
図3および
図4は、電源セット(例えば、2つの電源)のうちの電源のサブセット(例えば、1つの電源)がサーバへの電力供給を停止するイベント中にCPU性能を最適化するための動作例を示しており、それぞれ方法300および方法400と総称される。
【0076】
図3に示す方法300は、システムがまずサーバと、サーバに電力をアクティブに供給しているサーバに接続されている少なくとも2つの電源を識別することによって始まる(動作304)。上で示したように、本明細書で説明する技術は、任意の数の電源を含むセットに適用可能であり、そのうちのより小さなサブセットが電力の供給を停止し得る。以下の例は、説明の便宜と明確化のために、2つの電源の文脈で説明され、そのうちの1つは動作を停止する。
【0077】
上述したように、動作304は、(少なくとも)2つの電源の各々が、電力がアクティブに供給されていることを示す信号をサーバに送信することによって上述したように実行され得る。この信号には実際には2つの構成要素が含まれ得る。信号の第1の構成要素は、電源入力がアクティブであることを示し(例えば、「外部電源OK」)、信号の第2の構成要素は、電源自体からサーバへの電力がアクティブであることを示す(例えば、「DC電源OK」)”)。
【0078】
いくつかの例では、電力信号状態データは、特定の装置識別子に関連付けられ得る。例えば、システムは、パケットメタデータ内に存在する対応する識別子、または識別子に対する特定のクエリに応答して送信される識別子によって、サーバおよびその接続されている電源を識別することができる。識別子の例には、IPアドレス、媒体アクセス制御(MAC)識別子(ID)、装置のシリアル番号、またはその他の一意の装置識別子が含まれる。
【0079】
一例では、システムは、1つまたは複数のサーバおよび電源とクエリ、ping、またはその他の方法で通信することができる。クエリに応答して、サーバと電源は、対応する装置識別子と電源状態指標を含むクエリに対する応答を送信し得る。他の例では、サーバ自体が接続されている電源にクエリまたはpingを送信し、電源に関連付けられている識別情報を記憶し得る。次に、サーバは、接続されている電源の識別子を自身の識別子に提供するシステムに通信を送信することができる。
【0080】
他の例では、施設電力システムネットワーク図は、(識別子を介して)サーバおよびその接続されている電源を識別することができる。施設電力システムネットワーク図は記憶装置に記憶され、動作304を実行するためにシステムによってアクセスされ得る。外部電源およびDC電源の状態を電力システムのネットワーク図に関連付けることで、施設全体の電力状態を視覚的にリアルタイムで表示できる。
【0081】
両方の電源が動作している電力状況の場合、方法300の以下の動作は適用されない。代わりに、電源の1つからの送電の停止を検出する前に、システムはサーバの消費電力率を監視し、サーバの消費電力を、接続されているアクティブな電源に関連付けられている電力閾値と比較し得る。接続されアクティブな電源の1つが閾値(例えば、推奨される電源の値)を超えている状況でも、アラートが生成されない場合がある。むしろ、もう一方の電源がアクティブなままであるため、増加した電力需要をアクティブな電源間で再分配できるため、アラートを生成する必要はない。他の例では、たとえアラートが生成されるとしても、複数の電源がアクティブであるため、システムは方法300の動作を適用する必要はない。
【0082】
次いで、システムは、電源のうちの1つからの電力の停止を検出することができる(動作308)。いくつかの例では、システムは、単一の電源のみがサーバにアクティブに電力を供給していると決定する(例えば、2つの電源のうちの1つがアクティブのままである)。システムは、電力状態信号の1つが「OK」(送電を示す)から送電の停止に関連する状態指標に変化したことを検出し得る。一部の例では、電源状態信号がシステムによって単純に検出されない場合がある。この電力状態信号の欠如は、送電の停止に関連付けられる。この特定の例は、電源自体に物理的な故障または停電が発生した場合に発生し得る。
【0083】
他の例では、システムは、「停電」を明示的に示す信号を検出することによって、電源のうちの1つからの送電の停止を検出することができる。他の状況では、電源自体がその電力供給システムに検出可能な中断を経験し得るが、それ以外の場合はシステムと動作可能な通信を維持する。電源も同様に、サーバへの送電の停止を明示的に示す機能を保持することができる。
【0084】
さらに他の例では、システム自体が、電源がもはやサーバに電力を送信していないことを検出してもよい。例えば、サーバは、各々が専用で電源に割り当てられた個別のポートを介して電力潮流を監視し得る。サーバは、個々の電力ポートの各々を介して電力潮流(例えば、電力測定計を介して)または単純に電力の存在を(例えば、電流計を介して)監視することができる。これらの測定技術を使用すると、システム自体が電源の1つが電力の供給を停止したことを検出し得る。
【0085】
方法300を続けると、送電の停止の検出に応答して、システムは、残りのアクティブ電源から引き出されるサーバの消費電力率を識別する(動作312)。この電力潮流の測定は、上述したように、残りのアクティブ電源と通信する適切に構成されている電力潮流測定装置によって実行することができる。電力潮流測定装置は、残りのアクティブ電源そのもの、残りのアクティブ電源からの送電線、または残りのアクティブ電源からの送電線専用の電力ポートに接続されてもよい。
【0086】
システムは、残りのアクティブ電源から流れる電力量を、残りのアクティブ電源に関連付けられている電源閾値と比較する(動作316)。上で説明したように、この電力閾値は、電源自体に関連付けられているメモリ装置に記憶され得る。他の例では、電力閾値は、サーバに関連付けられているモリ装置またはシステム内の他の便利な構造に記憶され得る。いくつかの例では、動作316における電源閾値は、アクティブな電源の数が減少する場合(例えば、2つのアクティブな電源から1つのアクティブな電源へ)に使用される電源閾値であり、サーバに関連付けられているすべての電源がアクティブな場合に使用される閾値の代替値になり得る。
【0087】
電力閾値の値は、電源の最大電力定格、回路ブレーカアクティブ化値、または電源に関連する他の同様の性能基準に関連して選択され得る。例えば、電力閾値は、電源の最大電力定格よりも低い値、および/またはシステムと通信する任意の回路ブレーカの回路ブレーカアクティブ化値よりも低い値を有するように選択され得る。ある例では、電源が最大800ワット(W)の電力を供給するように定格されている場合、電力閾値は700Wまたは600Wに設定できる。
【0088】
いくつかの例では、電力閾値は、電源の数、それらの定格最大値、および電源が接続されているサーバの電力需要に関連して選択され得る。例えば、電力閾値は、サーバへの電力を電源間で均等または比例的に分割する値に対応することができる。1つの図では、サーバが通常1000Wを消費し、2つの電源の各々の定格が最大800Wである場合、2つの電源間の電気需要を均等に分散するために、電力閾値を550Wに設定できる。
【0089】
次に、システムは、動作312で識別される、残りのアクティブ電源を介してサーバによって消費される電力量を電源閾値と比較する(動作316)。この比較は、
図1Cに示すように、電源自体内のプロセッサによって実行できる。あるいは、サーバの電力制御システムがこの比較を実行してもよい。
【0090】
サーバによって消費される電力が電源閾値よりも小さい場合、システムはサーバにアラートを送信しない(動作320)。この例では、システムは、閾値と比較して供給される電力量を(連続的または定期的に)監視し続けることができる。
【0091】
サーバによって消費される電力が電源閾値より大きい場合、システムはサーバにアラートを送信する(動作324)。このアラート信号は、電源閾値を超えたことを示す。いくつかの例では、すべての電源がアクティブな場合、このアラートは送信されない場合がある。他の例では、すべての電源がアクティブで閾値を超えたときにアラートが送信され得るが、システムはこのような状況ではアラートに応じて簡単に動作しない可能性がある。
【0092】
電源閾値を超えたことを示すアラート信号の受信に応答して、システムはサーバの消費電力を低減することができる(動作328)。いくつかの例では、システムは、CPUの生産性と入力電力量のバランスがとれるレベルまでサーバのCPUアクティビティを減らすことにより、サーバの消費電力を削減する。これは、電力状況の重大度に基づいていない一定の(通常は大幅な)量と期間だけCPUアクティビティと消費電力を削減する、従来のプロチョットのアプリケーションとは対照的である。
【0093】
いくつかの例では、アラート信号が受信されるが、アラートの受信は、残りのアクティブ電源からサーバによって消費される電力量を変更しない(動作328)。例えば、システムは、残りの電源から引き出される電力が閾値を超え、アクションを保証するほど深刻ではないと決定した場合には、機能しない可能性がある。以下で説明するように、電力閾値を超える期間は短時間(またはまれ)であるため、システムはサーバの消費電力量を変更しないことがある。この状況の例を以下に説明する。
【0094】
動作328は、サーバ(例えば、CPU)の消費電力が閾値を超える時間単位の割合を決定することを含むことができる(動作332)。上述したように、システム内のメモリ構造は、時間のプロキシとして使用できるクロックまたは他の測定システム(例えば、カウンタ、システムクロックサイクル数)と通信することができる。メモリ構造は、クロックによって識別される連続する測定間隔中にアラート信号状態を収集し、記憶することができる。時間のサブユニットごとに、システムは電源からアラート信号を受信したかどうかを決定する。
【0095】
一例では、測定間隔は1秒であり、測定識別は1ミリ秒間隔であり得る。システムは、特定の1秒の測定間隔内で100ミリ秒間アラート信号を受信し得る。一例では、アラート信号は、特定の1秒の測定間隔中に連続100ミリ秒間アクティブであってもよい。別の例では、アラート信号は、特定の1秒の測定間隔内で合計100ミリ秒である非アラート期間が散在する複数のアラートイベントで散発的にアクティブになり得る。
【0096】
それにもかかわらず、システムはこれらのデータを使用して、測定間隔(または同等の時間の測定単位)の10%中にサーバの消費電力がアクティブ電源閾値を超えたと決定する。
【0097】
アラート信号がアクティブであった時間単位のこの決定される割合に基づいて、システムはサーバの消費電力の削減を決定する(動作336)。いくつかの実施形態では、システムは、特にサーバのCPUの消費電力量の削減を決定することができる。
【0098】
いくつかの例では、システムは、残りの電源の電力閾値を超えた時間の割合に正比例して電力の減少を決定する。前述の例を続けると、測定間隔の10%にわたって電源閾値を超えた場合、システムは10%の電力削減が適用されると決定し得る。他の例では、電力の減少は、電源閾値を超えた測定期間の割合(例えば、5%、20%、50%)に比例し得る。
【0099】
次に、システムは、決定される削減値に従って消費電力量を削減する(動作340)。いくつかの例では、システムは、CPUクロックを遅くするか、CPUデューティサイクルを減らし、それによってCPUアクティビティと消費電力を減らすことができる。他の例では、システムはマルチCPUシステム内の一部のCPUをアイドル状態にすることができる。他の例では、システムは電力を削減するためにサーバの補助機能をアイドル状態にし得る。いくつかの例では、これは、システムがCPUアクティビティを制御するために使用するCPUレジスタ(または電力制御システムレジスタ)に命令を書き込むことによって達成され得る。
【0100】
上で示したように、システムは、システムがサーバの消費電力を削減しないより低い閾値を用いて構成することもできる。例えば、測定期間内に受信されるアラートの頻度が低すぎるため、システムがサーバの消費電力を削減することが保証できない場合がある。同様に、アラート期間の継続時間は、アクションを起こすことを保証するには短すぎる可能性がある(例えば、10ミリ秒、100ミリ秒)。閾値(例えば、0.5%、1%、2%)を超える消費電力の大きさは、アクションを起こすことを保証するには低すぎる可能性がある。
【0101】
動作340から332までの破線の矢印で示すように、システムが電力需要を継続的に監視し、それに応じてサーバ電力レベルを調整するように、これらのプロセスを繰り返すことができる。このプロセスは、電源の完全なセットが再アクティブ化されると停止し得る。いくつかの例では、システムは、アラート信号の継続時間/頻度が監視されるにつれて、連続する測定間隔でシステム消費電力を徐々に増加させ得る(例えば、CPUクロック速度またはCPUデューティサイクルを増加させることによって)。
【0102】
動作328内の動作のいずれにおいても、消費電力の劇的な削減が保証されるとシステムが決定した場合、システムは任意でプロチョットを使用することができる。
【0103】
図4に示される方法400は、サーバに電力をアクティブに供給する電源のセットが減少することによって引き起こされる「過剰電力」状態をシステムにアラートするための一連の動作の別の例を示す。方法300と同様に、方法400は、サーバが少なくとも2つの電源、例えば第1の電源と第2の電源によって電力供給されていることを決定することから始まる(動作404)。動作404に使用される技術は、動作304の文脈で説明したものと類似している。
【0104】
次に、システムは、電源の1つからサーバへの送電の停止を検出する(動作408)。このプロセスは、
図3に示す動作308で説明したプロセスに類似している。
【0105】
電源の1つがもはやサーバに電力をアクティブに送信していないことを検出すると、システムは、残りのアクティブ電力閾値に対する電力閾値を選択する(動作412)。この電力閾値は、両方の電源がサーバに電力をアクティブに送信していたときに使用されていた閾値とは異なる閾値(つまり、異なる値)であり得る。いくつかの例では、電力閾値は回路ブレーカのアクティブ化値よりも低い値に選択され、それによって回路ブレーカがオンになる可能性が減少し、それによって残りの電源から電力が奪われ、サーバの停電が引き起こされ得る。
【0106】
他の例では、上述のように、複数の電源がアクティブであるときに使用される電力閾値は、サーバが通常消費するよりも多くの電力をサーバに提供する能力を推定する値に基づくことができる。このように、複数のアクティブな電源のセットの個々の電源に適用される電力閾値は、単一の電源がアクティブなときに使用される電力閾値よりも高くなり得る。
【0107】
システムは、いくつかの例では、複数のアクティブ電源の電力閾値を使用してアラートをトリガすることができる。例えば、アラートは、電源から引き出される電力が閾値を超えていることを示し、これは回路ブレーカをアクティブ化させるリスクの増加を示し得る。
【0108】
他の例では、動作416の前に、送電イベントについてアラートが送信されないようにシステムを構成することができる。上で説明したように、一部の電源システムは、一連の電源で利用可能な送電容量が、サーバによる電力需要の動作範囲よりも大きくなるように構成されている。この過剰な送電により、高電力イベントによるシステムへのリスクが軽減され、それによってアラートの必要性が減る。
【0109】
方法400を続けると、動作412で電力閾値を選択した後、システムは、残りのアクティブ電源を電源閾値で構成するか(動作416)、以前に選択され記憶されている電力閾値を使用する(動作420)ことができる。より具体的には、動作416は、動作416の直前の動作404~412に関連付けられる。この例では、動作412を実行すると、システムは、新たに選択される電力閾値を超えたときに電源がアラートを送信するように、残りのアクティブな電源を構成する(動作416)。動作420の文脈において、システムは、アラートの生成につながるイベントと同時に発生しなかった動作404~412の以前の反復からのデータを使用する。これらの動作404~412は、電力閾値を生成し、PSUに閾値電力を記憶するために使用される。この状況では、システムは、前のイベントに記憶されている閾値電力を使用してアラートを送信することができる(動作420)。
【0110】
5.例示的な実施形態
明確にするために、詳細な例を以下に説明する。この例は、イベントの進行を示す一連の一組の
図5Aから5Dとして提示されている。以下に説明する構成要素および/または動作は、特定の実施形態には適用できない可能性がある1つの特定の例として理解されるべきである。したがって、以下に説明する構成要素および/または動作は、いずれの請求項の範囲を限定するものとして解釈されるべきではない。
【0111】
図5Aは、サーバ500が第1の電源512および第2の電源516によって電力を供給される初期シナリオを示す。サーバは、CPU504とサーバ制御システム508を含む。CPU504およびサーバ制御システム508システムは両方とも、上で説明した機能と類似している。この図では、サーバ500の消費電力は1200Wであるが、説明の便宜上、
図5A~
図5Dおよび対応する説明では、この値をCPUの消費電力として説明している。
【0112】
電源512および電源516は両方とも、「アクティブ」電源状態、800Wの最大電力定格、および700Wの(対応する電源のメモリ構造に記憶される)電力閾値を有するものとして示されている。
【0113】
2つの矢印は、電源512、516の各々から出ている。電源512、516の各々からの「外部/DCOK」矢印は、対応する電源が電源から外部電力を受信し、DC電力をサーバ500に送信していることを示す。第2の矢印は、電源512、516の各々によってサーバ500に供給される電力量を示す。
【0114】
図5Aに示す例では、電源512と電源516の両方が600Wの電力をサーバ500に供給している。これにより、サーバ500によって消費される1200Wの電力が2つの電源512、516に均等に分割される。各電源からのこの電力レベル(600W)は、各電源512、516の最大電力定格である800Wも下回る。電源の電力閾値は700Wであり、これにより、電源512、516が最大電力定格を下回る電力を供給し、サーバ500による需要の変動に応答することが可能になる。換言すれば、700Wの電力閾値により、電源512、516の一方または両方が、最大電力定格800Wを超えることなく、サーバ500による電力需要の増加に応答できるようになる。この方法で電源を構成することにより(例えば、複数の電源が対応する最大電力定格を大幅に下回って動作する)、両方の電源が動作しているときにサーバの電力需要が増加して回路ブレーカがアクティブ化する可能性を低減することで、システムの信頼性を向上させる。
【0115】
図5Bは、ラベル「非アクティブ電源状態」によって示されるように、電源516がもはや電力を供給していないシナリオを示す。上述のように、これは、電源516自体の故障および/または電源516に電力を供給する電源(図示せず)の故障によって引き起こされ得る。
【0116】
電力システムのこの故障は、電力状態信号「外部/DC故障」によって示される。電源516からサーバへの電力の送信を示す前の矢印は、現在は電力が送信されていないことを示す「X」で終了するように示されている。
【0117】
電源512がまだ動作しているにもかかわらず、サーバ500、より具体的にはサーバ制御システム508へのその信号は変化している。サーバ512がまだ「外部/DCOK」信号を送信している間、送信電力は800Wに増加した。前述したように、これは電力閾値定格の700Wを超えている。その結果、電源512も「過剰電力アラート」(
図5Bの新しい対応するラベル付き矢印で示されている)をサーバに送信する。
【0118】
電源512からの「過剰電力アラート」の受信に応答して、サーバ制御システム508は、方法300または400の一方または両方を実行する。システムは、システムをさらに保護するために、残りのアクティブ電源512の電力閾値を700W未満(例えば、図示のように600W)に下げる。また、サーバ500は、CPUの消費電力を700W未満(図示の例では600W)に低減し、それにより電源512の電力閾値を満たす。電源512は、「過剰電力アラート」を送信しなくなる。
【0119】
上述したように、サーバ制御システム508は、連続する測定間隔中に電力状態を評価して、サーバの消費電力を削減するかどうか、またどの程度削減するかを決定することができる。
図5Dは、サーバ制御システム508がサーバ消費量をどの程度削減するかを決定する基準を概略的に示す。
【0120】
図5Dは、2つのグラフを示す。第1のグラフ(「消費電力対測定間隔」)は、連続する3つの測定間隔におけるサーバの消費電力を示している。電源(例えば、電源512)に対応する電力閾値レベルが示されている。サーバの消費電力は、電源からサーバへの「アラート」信号によって示されるように、電源電力閾値レベルを超える時間間隔の割合に従って削減することができる。システムによって適用される消費電力削減の相対的な度合いが第2のグラフ(「電力削減対測定間隔」)に示されている。
【0121】
第1のグラフを参照すると、第1の測定間隔(X軸上で「1」とラベル付けされている)は、消費電力が測定間隔全体にわたって電源電力閾値レベルを超える状態を示している。第2のグラフに示すように、システムがアラート信号を受信する第1の測定間隔の割合が高いため、第1の測定間隔中に比較的大きな電力削減が生じる。
【0122】
第2の測定間隔(X軸上で「1」とラベル付けされる)中、第2の測定間隔の前半ではアラート信号は受信されない(「アラートなし」というラベルの付いたバーによって示されている)。アラート信号は、第2の測定間隔の後半で受信される(「アラート」というラベルの付いた垂直バーで示されている)。これにより、サーバの消費電力がより低く抑制される(第1の測定間隔中に適用される消費電力の約半分)。
【0123】
第3の測定間隔中にアラートは受信されず、それに応じて、電力削減は適用されない。
6.コンピュータネットワークとクラウドネットワーク
1つまたは複数の実施形態では、コンピュータネットワークは、ノードのセット間の接続を提供する。ノードは相互にローカルに存在することも、相互にリモートに存在することもできる。ノードはリンクのセットによって接続される。リンクの例には、同軸ケーブル、シールドなしツイストケーブル、銅線ケーブル、光ファイバ、仮想リンクが含まれる。
【0124】
ノードのサブセットはコンピュータネットワークを実装する。このようなノードの例には、スイッチ、ルーター、ファイアウォール、およびネットワークアドレストランスレーター(NAT)が含まれる。ノードの別のサブセットはコンピュータネットワークを使用する。このようなノード(「ホスト」とも呼ばれる)は、クライアントプロセスおよび/またはサーバプロセスを実行することができる。クライアントプロセスは、コンピューティングサービス(特定のアプリケーションの実行および/または特定量のデータの記憶など)を要求する。サーバプロセスは、要求サービスを実行したり、および/または対応するデータを返したりすることで応答する。
【0125】
コンピュータネットワークは、物理リンクによって接続されている物理ノードを含む物理ネットワークであってもよい。物理ノードとは、任意のデジタル装置である。物理ノードは、ハードウェアスイッチ、ハードウェアルーター、ハードウェアファイアウォール、およびハードウェアNATなどの機能固有のハードウェア装置であり得る。さらに、または代わりに、物理ノードは、それぞれの機能を実行するさまざまな仮想マシンおよび/またはアプリケーションを実行するように構成されている汎用マシンであってもよい。物理リンクは、2つ以上の物理ノードを接続する物理媒体である。リンクの例には、同軸ケーブル、シールドなしのツイストケーブル、銅線ケーブル、光ファイバが含まれる。
【0126】
コンピュータネットワークは、オーバーレイネットワークであってもよい。オーバーレイネットワークは、別のネットワーク(物理ネットワークなど)の上に実装される論理ネットワークである。オーバーレイネットワーク内の各ノードは、基礎となるネットワークのそれぞれのノードに対応する。したがって、オーバーレイネットワーク内の各ノードは、オーバーレイアドレス(オーバーレイノードにアドレス指定するため)とアンダーレイアドレス(オーバーレイノードを実装するアンダーレイノードにアドレス指定するため)の両方に関連付けられる。オーバーレイノードは、デジタル装置および/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、スレッドなど)であり得る。オーバーレイノードを接続するリンクは、基礎となるネットワークを介したトンネルとして実装される。トンネルの両端のオーバーレイノードは、それらの間の基礎となるマルチホップパスを単一の論理リンクとして扱う。トンネリングは、カプセル化とカプセル化解除を通じて実行される。
【0127】
一実施形態では、クライアントは、コンピュータネットワークに対してローカルであってもよく、および/またはコンピュータネットワークからリモートであってもよい。クライアントは、プライベートネットワークやインターネットなどの他のコンピュータネットワークを介してコンピュータネットワークにアクセスできる。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを使用して、コンピュータネットワークに要求を通信できる。要求は、クライアントインターフェース(Webブラウザなど)、プログラムインターフェース、またはアプリケーションプログラミングインターフェース(API)などのインターフェースを通じて通信される。
【0128】
一実施形態では、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続を提供する。ネットワークリソースには、サーバプロセスを実行するように構成されているハードウェアおよび/またはソフトウェアが含まれる。ネットワークリソースの例には、プロセッサ、データ記憶装置、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションが含まれる。ネットワークリソースは複数のクライアント間で共有される。クライアントは、互いに独立してコンピュータネットワークにコンピューティングサービスを要求する。ネットワークリソースは、オンデマンドベースで要求および/またはクライアントに動的に割り当てられる。各要求および/またはクライアントに割り当てられるネットワークリソースは、例えば(a)特定のクライアントによって要求されるコンピューティングサービス、(b)特定のテナントによって要求される集約コンピューティングサービス、および/または(c)コンピュータネットワークに要求される集約コンピューティングサービスに基づいてスケールアップまたはスケールダウンできる。このようなコンピュータネットワークは、「クラウドネットワーク」と呼ばれることがある。
【0129】
一実施形態では、サービスプロバイダは、クラウドネットワークを1人または複数人以上のエンドユーザに提供する。クラウドネットワークでは、Software-as-a-Service(SaaS)、Platform-as-a-Service(PaaS)、およびInfrastructure-as-a-Service(IaaS)を含むがこれらに限定されない、さまざまなサービスモデルを実装できる。SaaSでは、サービスプロバイダは、ネットワークリソース上で実行されるサービスプロバイダのアプリケーションを使用する機能をエンドユーザに提供する。PaaSでは、サービスプロバイダはエンドユーザにカスタムアプリケーションをネットワークリソースに展開する機能を提供する。カスタムアプリケーションは、サービスプロバイダがサポートするプログラミング言語、ライブラリ、サービス、およびツールを使用して作成できる。IaaSでは、サービスプロバイダは、処理、記憶装置、ネットワーク、およびネットワークリソースによって提供されるその他の基本的なコンピューティングリソースをプロビジョニングする機能をエンドユーザに提供する。動作システムを含む任意のアプリケーションをネットワークリソース上に展開できる。
【0130】
一実施形態では、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含むがこれらに限定されない、コンピュータネットワークによってさまざまな展開モデルを実装することができる。プライベートクラウドでは、ネットワークリソースは、1つまたは複数の事業体の特定のグループによる排他的使用のためにプロビジョニングされる(本明細書で使用される「事業体」という用語は、企業、組織、個人、またはその他の事業体を指す)。ネットワークリソースは、事業体の特定のグループの施設に対してローカルであってもよく、および/またはその施設からリモートであってもよい。パブリッククラウドでは、クラウドリソースは、互いに独立した複数の事業体(「テナント」または「顧客」とも呼ばれる)にプロビジョニングされる。コンピュータネットワークおよびそのネットワークリソースには、異なるテナントに対応するクライアントがアクセスする。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と呼ばれることがある。複数のテナントが、同じ特定のネットワークリソースを異なる時間に、および/または同時に使用し得る。ネットワークリソースは、テナントの施設内にローカルに存在することも、テナントの施設からリモートに存在することもできる。ハイブリッドクラウドでは、コンピュータネットワークはプライベートクラウドとパブリッククラウドを含む。プライベートクラウドとパブリッククラウド間のインターフェースにより、データとアプリケーションの移植性が可能になる。プライベートクラウドに記憶されているデータとパブリッククラウドに記憶されているデータは、インターフェースを介して交換できる。プライベートクラウドに実装されているアプリケーションとパブリッククラウドに実装されているアプリケーションは、相互に依存関係があり得る。プライベートクラウドのアプリケーションからパブリッククラウドのアプリケーションへの呼び出し(またはその逆)は、インターフェースを通じて実行できる。
【0131】
一実施形態では、マルチテナントコンピュータネットワークのテナントは互いに独立している。例えば、あるテナントのビジネスまたは運営は、別のテナントのビジネスまたは運営から分離され得る。テナントが異なれば、コンピュータネットワークに対して異なるネットワーク要件が要求され得る。ネットワーク要件の例には、処理速度、データ記憶の量、セキュリティ要件、性能要件、スループット要件、レイテンシ要件、回復力要件、サービス品質(QoS)要件、テナントの分離、および/または一貫性が含まれる。同じコンピュータネットワークでも、異なるテナントによって要求される異なるネットワーク要件を実装する必要があり得る。
【0132】
1つまたは複数の実施形態では、マルチテナントコンピュータネットワークにおいて、異なるテナントのアプリケーションおよび/またはデータが互いに共有されないことを保証するために、テナント分離が実装される。さまざまなテナント分離アプローチを使用できる。
【0133】
一実施形態では、各テナントはテナントIDに関連付けられる。マルチテナントコンピュータネットワークの各ネットワークリソースには、テナントIDがタグ付けされる。テナントと特定のネットワークリソースが同じテナントIDに関連付けられている場合にのみ、テナントは特定のネットワークリソースへのアクセスを許可される。
【0134】
一実施形態では、各テナントはテナントIDに関連付けられる。コンピュータネットワークによって実装される各アプリケーションには、テナントIDがタグ付けされる。さらに、または代わりに、コンピュータネットワークによって記憶される各データ構造および/またはデータセットには、テナントIDのタグが付けられる。テナントと特定のアプリケーション、データ構造、および/またはデータセットが同じテナントIDに関連付けられている場合にのみ、テナントは特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許可される。
【0135】
一例として、マルチテナントコンピュータネットワークによって実装される各データベースは、テナントIDでタグ付けされ得る。対応するテナントIDに関連付けられているテナントのみが、特定のデータベースのデータにアクセスできる。別の例として、マルチテナントコンピュータネットワークによって実装されるデータベース内の各エントリにテナントIDのタグを付けることができる。対応するテナントIDに関連付けられているテナントのみが、特定のエントリのデータにアクセスできる。しかし、データベースは複数のテナントで共有され得る。
【0136】
一実施形態では、サブスクリプションリストは、どのテナントがどのアプリケーションにアクセスする権限を持っているかを示す。アプリケーションごとに、アプリケーションへのアクセスを許可されているテナントのテナントIDのリストが記憶される。テナントは、そのテナントのテナントIDが特定のアプリケーションに対応するサブスクリプションリストに含まれている場合にのみ、特定のアプリケーションへのアクセスを許可される。
【0137】
一実施形態では、異なるテナントに対応するネットワークリソース(デジタル装置、仮想マシン、アプリケーションインスタンス、スレッドなど)は、マルチテナントコンピュータネットワークによって維持されるテナント固有のオーバーレイネットワークに分離される。一例として、テナントオーバーレイネットワーク内の任意のソース装置からのパケットは、同じテナントオーバーレイネットワーク内の他の装置にのみ送信される。カプセル化トンネルは、テナントオーバーレイネットワーク上のソース装置から他のテナントオーバーレイネットワーク内の装置への送信を禁止するために使用される。具体的には、ソース装置から受信したパケットは、外側のパケット内にカプセル化される。外側のパケットは、第1のカプセル化トンネルエンドポイント(テナントオーバーレイネットワーク内のソース装置と通信中)から第2のカプセル化トンネルエンドポイント(テナントオーバーレイネットワーク内の宛先装置と通信中)に送信される。第2のカプセル化トンネルエンドポイントは、外側のパケットのカプセル化を解除して、ソース装置によって送信される元のパケットを取得する。元のパケットは、同じ特定のオーバーレイネットワーク内の第2のカプセル化トンネルエンドポイントから宛先装置に送信される。
【0138】
7.その他;拡張機能
実施形態は、ハードウェアプロセッサを含み、本明細書に記載および/または以下の請求項のいずれかに記載される動作のいずれかを実行するように構成されている1つまたは複数の装置を備えたシステムを対象とする。
【0139】
一実施形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載され、および/または請求項のいずれかに記載されている動作のいずれかを実行する命令を含む。
【0140】
本明細書で説明される特徴および機能の任意の組み合わせが、1つまたは複数の実施形態に従って使用され得る。前述の明細書では、実装ごとに異なり得る多くの特定の詳細を参照して実施形態を説明した。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味としてみなされるべきである。本発明の範囲の唯一かつ排他的な指標、および出願人が本発明の範囲であると意図しているものは、その後の修正を含む、そのような請求項が発行される特定の形式における、本出願から発行される一連の請求項の文字通りの等価範囲である。
【0141】
8.ハードウェアの概要
一実施形態によれば、本明細書で説明される技術は、1つまたは複数の専用コンピューティング装置によって実装される。専用コンピューティング装置は、技術を実行するように組み込まれ得、または、その技術を実行するように永続的にプログラムされる1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはネットワーク処理装置(NPU)などのデジタル電子装置を含み得、あるいは、ファームウェア、メモリ、他の記憶装置、またはそれらの組み合わせにおけるプログラム命令に従って技術を実行するようにプログラムされる1つまたは複数の汎用ハードウェアプロセッサを含んでもよい。このような専用コンピューティング装置は、カスタムの組み込み論理、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせて、技術を実現することもできる。専用コンピューティング装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルド装置、ネットワーク装置、または技術を実装するための組み込み論理および/またはプログラム論理を組み込んだ他の装置であってもよい。
【0142】
例えば、
図6は、本発明の実施形態が実装され得るコンピュータシステム600を示すブロック図である。コンピュータシステム600は、情報を通信するためのバス602または他の通信機構と、情報を処理するためにバス602に結合されているハードウェアプロセッサ604とを含む。ハードウェアプロセッサ604は、例えば、汎用マイクロプロセッサであってもよい。
【0143】
コンピュータシステム600は、プロセッサ604によって実行される情報および命令を記憶するためにバス602に結合されている、ランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ606も含む。メインメモリ606はまた、プロセッサ604によって実行される命令の実行中に、一時変数または他の中間情報を記憶するために使用されてもよい。このような命令は、プロセッサ604がアクセス可能な非一時的記憶媒体に記憶されると、コンピュータシステム600を、命令で指定される動作を実行するようにカスタマイズされている専用マシンにレンダリングする。
【0144】
コンピュータシステム600は、プロセッサ604のための静的情報および命令を記憶するためにバス602に結合されている読み取り専用メモリ(ROM)608または他の静的記憶装置をさらに含む。磁気ディスクまたは光ディスクなどの記憶装置610が提供され、情報および命令を記憶するためにバス602に結合される。
【0145】
コンピュータシステム600は、コンピュータユーザに情報を表示するために、バス602を介して陰極線管(CRT)などのディスプレイ612に結合され得る。英数字キーおよび他のキーを含む入力装置614は、情報およびコマンド選択をプロセッサ604に通信するためにバス602に結合される。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ604に伝達し、ディスプレイ612上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御装置616である。この入力装置は通常、第1の軸(xなど)と第2の軸(yなど)の2つの軸に2つの自由度を持ち、装置が平面内の位置を指定できるようになる。
【0146】
コンピュータシステム600は、カスタマイズされる組み込み論理、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラム論理を使用して、本明細書に記載される技術を実装することができ、これは、コンピュータシステムと組み合わせて、コンピュータシステム600を専用マシンにするかプログラムする。一実施形態によれば、本明細書の技術は、プロセッサ604がメインメモリ606に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応答して、コンピュータシステム600によって実行される。このような命令は、記憶装置610などの別の記憶媒体からメインメモリ606に読み込まれてもよい。メインメモリ606に含まれる一連の命令を実行すると、プロセッサ604は本明細書で説明するプロセスステップを実行する。代替実施形態では、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、組み込み回路を使用することができる。
【0147】
本明細書で使用される「記憶媒体」という用語は、マシンを特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を含むことができる。不揮発性媒体には、例えば、記憶装置610などの光ディスクまたは磁気ディスクが含まれる。揮発性媒体には、メインメモリ606などの動的メモリが含まれる。記憶媒体の一般的な形式には、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、またはその他の磁気データ記憶媒体、CD-ROM、その他の光学データ記憶媒体、穴のパターンを持つ物理媒体、RAM、PROM、およびEPROM、FLASH-EPROM、NVRAM、任意のその他のメモリチップまたはカートリッジ、連想メモリ(CAM)、および三値連想メモリ(TCAM)が含まれる。
【0148】
記憶媒体は、送信媒体とは別個であるが、送信媒体と組み合わせて使用することもできる。送信媒体は、記憶媒体間の情報の転送に関与する。例えば、送信媒体には、バス602を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバが含まれる。送信媒体は、電波や赤外線データ通信中に生成される音響波や光波の形をとることもできる。
【0149】
1つまたは複数の命令の1つまたは複数のシーケンスを実行のためにプロセッサ604に搬送する際には、さまざまな形式の媒体が関与し得る。例えば、命令は最初にリモートコンピュータの磁気ディスクまたはソリッドステートドライブに搬送され得る。リモートコンピュータは命令を動的メモリにロードし、モデムを使用して電話回線経由で命令を送信できる。コンピュータシステム600にローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号で搬送されるデータを受信することができ、適切な回路はそのデータをバス602上に配置することができる。バス602はデータをメインメモリ606に搬送し、プロセッサ604はそこから命令を取り出して実行する。メインメモリ606によって受信される命令は、任意で、プロセッサ604による実行の前または後のいずれかに記憶装置610に記憶され得る。
【0150】
コンピュータシステム600は、バス602に結合されている信インターフェース618も含む。通信インターフェース618は、ローカルネットワーク622に接続されるネットワークリンク620に結合する双方向データ通信を提供する。例えば、通信インターフェース618は、総合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、または対応する種類の電話回線へのデータ通信接続を提供するモデムであってもよい。別の例として、通信インターフェース618は、互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクも実装することができる。このような実装形態では、通信インターフェース618は、さまざまな種類の情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【0151】
ネットワークリンク620は、通常、1つまたは複数のネットワークを介して他のデータ装置にデータ通信を提供する。例えば、ネットワークリンク620は、ローカルネットワーク622を介して、ホストコンピュータ624またはインターネットサービスプロバイダ(ISP)626によって運営されるデータ機器への接続を提供することができる。ISP626は順に、現在一般的に「インターネット」628と呼ばれている世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク622およびインターネット628は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。コンピュータシステム600との間でデジタルデータを搬送する、さまざまなネットワークを介する信号、ネットワークリンク620上および通信インターフェース618を介する信号は、送信媒体の例示的な形態である。
【0152】
コンピュータシステム600は、ネットワーク、ネットワークリンク620および通信インターフェース618を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ630は、インターネット628、ISP626、ローカルネットワーク622、および通信インターフェース618を介して、アプリケーションプログラムに対して要求されるコードを送信することができる。
【0153】
受信されるコードは、受信されるときにプロセッサ604によって実行され、および/または後で実行するために記憶装置610または他の不揮発性記憶装置に記憶され得る。
【0154】
上記の明細書では、実装ごとに異なり得る多くの特定の詳細を参照して本発明の実施形態を説明した。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味としてみなされるべきである。本発明の範囲の唯一かつ排他的な指標、および出願人が本発明の範囲であると意図しているものは、その後の修正を含む、そのような請求項が発行される特定の形式における、本出願から発行される一連の請求項の文字通りの等価範囲である。
【国際調査報告】