JP6157869B2 - カスケード割当てによる長期資源プロビジョニング - Google Patents

カスケード割当てによる長期資源プロビジョニング Download PDF

Info

Publication number
JP6157869B2
JP6157869B2 JP2013023968A JP2013023968A JP6157869B2 JP 6157869 B2 JP6157869 B2 JP 6157869B2 JP 2013023968 A JP2013023968 A JP 2013023968A JP 2013023968 A JP2013023968 A JP 2013023968A JP 6157869 B2 JP6157869 B2 JP 6157869B2
Authority
JP
Japan
Prior art keywords
job
jobs
provisioning
qos
reservation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013023968A
Other languages
English (en)
Other versions
JP2013175178A (ja
Inventor
ダニエル・エイチ・グリーン
ララ・エス・クロフォード
モーリス・ケー・チュー
ジョン・ハンレー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palo Alto Research Center Inc
Original Assignee
Palo Alto Research Center Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Palo Alto Research Center Inc filed Critical Palo Alto Research Center Inc
Publication of JP2013175178A publication Critical patent/JP2013175178A/ja
Application granted granted Critical
Publication of JP6157869B2 publication Critical patent/JP6157869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本明細書は、一般に、データセンタのオペレーションに関し、より詳細には、データセンタに対して長期資源プロビジョニングを提供するシステムに関する。
近年の仮想化技術はデータセンタが共有された環境において様々なジョブを実行することを可能にした。いいかえれば、このような様々なジョブは、その全てを単一のマシンまたは複数のマシンのクラスタによって提供することができるメモリ、中央処理装置(CPU)、および帯域幅などの同じ物理資源を共有することができる。データ・センタ・オペレーションの重要な考慮する点は、単一のマシンまたは複数のマシンのクラスタで複数のジョブ(または負荷)を統合することである。
資源の有効なプロビジョニングは良好に統合することができるジョブのグループ、即ち、マシンまたは複数のマシンのクラスタで物理資源をより有効に活用することができるグループを検索することを含む。より良好な統合によって増加したデータセンタ容量を得ることができる。さらに、未使用のマシンの電源を切ることによって、データセンタはその省エネ効果を高めることもできる。
本発明の一実施形態は、複数のジョブによって共有された物理資源をプロビジョニングするためのシステムを提供する。動作中、このシステムはジョブに対する資源使用モデルを確立し、ジョブに関連付けられたサービス品質(QoS)要件に基づいてジョブを格付けし、上位のQoS格付けを有しているジョブの第1の部分集合に関連付けられた任意の未使用予約が、他の残存ジョブのうち最上位のQoS格付けを有しているジョブの第2の部分集合の方を優先させて、他の残存ジョブへ分布されるように所定の時間インターバルに対してジョブをプロビジョニングする。ジョブのプロビジョニングは、資源使用モデルとジョブに関連付けられた対応するQoS要件に基づいてジョブに対して予約を行うことを含む。
この実施形態の一変形例において、ジョブのプロビジョニングは、ジョブに関連付けられた対応するQoS格付けに基づいてジョブへ異なる数の共有を割り当て、ジョブの第1の部分集合に関連付けられた未使用資源が、他の残存ジョブへ割り当てられた共有の数に基づいて他の残存ジョブに比例して分布されることを前提に、予約を割り当てることをさらに含む。それぞれのジョブに割り当てられた共有数はそれぞれのジョブのQoS格付けに互いに関連している。
本実施形態による一変形例において、ジョブのプロビジョニングは、QoS格付けに基づいて降順でジョブを仕分けし、最上位のQoS格付けを有しているジョブからスタートして、次のインラインジョブを直前に形成されたサブグループに加算することによってサブグループを形成するステップと、サブグループに対して資源使用モデルを確立するステップと、サブグループに対する資源使用モデルと次のインラインジョブに関連付けられたQoS要件に基づいてサブグループによって必要とされる資源要求量を決定するステップと、を反復することを含む。
本実施形態の更なる変形例において、このシステムは、要求された資源の量と直前に形成されたサブグループに対して行われた予約量との差に基づいて次のインラインジョブに対して予約を行う。
更なる変形例において、同じQoS格付けを有している少なくとも2つのジョブに応答して、システムは、直前に形成されたサブグループに少なくとも2つのジョブをティアとして加算することによってティアードサブグループを形成し、少なくとも2つのジョブの各々によって要求される資源に基づいて少なくとも2つのジョブの各々に対する基準倍率を算定し、この基準倍率に基づいてこれら少なくとも2つのジョブの各々に対して予約を行う。
本実施形態の一変形例において、システムは、複数の所定の時間インターバルに対してジョブをプロビジョニングし、その際、複数の所定の時間インターバルに対して1つ以上のジョブから成るグループによって必要とされる資源の最大量を算定することを含む。
本実施形態の一変形例において、システムはジョブの間で分離の度合を定義する分離パラメータを受信する。ジョブのプロビジョニングは、ジョブに対して予約を行っている間、分離パラメータを適用することを含み、完全な分離によってジョブに対して個別予約が行われる。
ジョブに対する例示的な不足解析を示す図である。 本発明の一実施形態による、2つの互いに隣り合うプレフィックスグループ間で資源がどのようにカスケード(層化)するかを示す図である。 本発明の一実施形態による、資源プロビジョニングコントローラを示す図である。 本発明の一実施形態による、資源プロビジョニングの例示的なプロセスを示す流れ図である。 本発明の一実施形態による、データセンタ内の資源プロビジョニングのための例示的なコンピュータシステムを示す図である。
図面では、同じ要素には同じ参照番号が付される。
以下の記載は、当業者が本発明の実施形態を活用することを可能にするために提示され、特定のアプリケーションとその要件に関して提供されている。開示されている実施形態に対する様々な変更は当業者に容易に理解され、本明細書中に定義されている一般的な原理が本明細書の精神及び範囲を逸脱しない限りに於いて他の実施形態やアプリケーションに適用可能である。よって、本発明は図示されている実施形態に限定されないが、本明細書中に開示された原理および特性を逸脱しない最も広い範囲に一致する。
概要
本発明の実施形態は、データセンタへ長期資源プロビジョニングを提供するためのシステムを提供する。より詳細には、システムは、今後発生する時間インターバルの集合内のジョブの資源ニーズに基づいてジョブのグループに対して資源をプロビジョンする。ジョブに対する資源ニーズを満たすだけでなくサービス品質(QoS)要件を満たすために、システムは、行われた累積予約が全てのジョブの資源ニーズを十分に満たすほど大きくなるまで、QoS降順に基づいてジョブに対する個別予約を行う全体のプール割当てアルゴリズムを適用する。カスケードされたアルゴリズムはそれらのQoS格付けに基づいて未使用予約の再分布を他のジョブに対して計画するためにも使用される。
本明細書において、用語「物理資源」は、計算ジョブを完了するために必要とされる様々なタイプの物理的機器をさす。この用語は、処理能力、記憶領域、通信帯域幅、入/出力などを含み得る。さらに、特定の「物理資源」は、データセンタの単一マシン、マシンのクラスタ、またはすべてのマシンに言及することができる。また、用語「物理資源」と「物理マシン」は互いに互換性がある。
本明細書において、用語「ジョブ」は、共有された環境における計算可能なタスクをいう。より具体的には、ジョブは、仮想マシンインスタンスまたは仮想マシンインスタンスの集合であってよい。
単一インターバルプロビジョニング
データ・センタ・オペレーションにとって好ましいとされる資源プロビジョニングシステムはプロビジョニングを自動的にかつ頻繁に調整することができるはずだが、このようなシステムへの人間のオペレータによる厳密な管理がいまだに望ましいとされる。例えば、ジョブの資源ニーズを監視しかつ資源プロビジョニングを提案する監視ツールを有することが望ましい。次に、人間のオペレータはプロビジョニングを承認して実施する。自動システムは15分ごとにプロビジョニングを調整するが、管理されたシステムははるかに少ない頻度でプロビジョニングを調整する(例えば、毎日、毎週、または毎月)。
単一時間インターバルにおける資源のプロビジョニングは短期プロビジョニングに非常に類似している。唯一の違いは、短期システムは、(次の15分などの)直ぐ後に続く時間インターバルに対してジョブのグループの資源使用要件を予測するモデルを使用して、これらのジョブのQoS仕様に基づいて資源を割り当てて資源使用要件を満たす。一方、単一時間インターバルプロビジョニングは、すぐ後に続かない特定の時間インターバルに対する資源のプロビジョンを含む。短期プロビジョニングは、最近の資源消費量が近く発生する期間の資源ニーズの強力な予測子となるので、相対的に簡単に行うことができる。
この開示に於いて、ジョブに対するQoS仕様(またはQoSレベル)はpで表され、pは、ジョブがその資源ニーズで完全にプロビジョニングされない受容可能な確率である。すなわち、QoSレベルpを有しているジョブは、測定されたインターバルの間、確率pを有する全ての要求された資源を受信するわけではない。QoSレベルpはジョブ失敗の確率と混同されるべきではないことに注意されたい。最新のアプリケーションは、それらが要求された資源の100%を有していない場合でも十分良好に実行できるほど良好に書かれている。例えば、重い負荷が掛かったアプリケーションはより低い解像度の画像を一時的に分配するか、またはバッチモードで実行されているアプリケーションはデッドラインまでの完了を確実とするために早くスタートする。しかしながら、しかしながら、資源の不足へのレジリエンス(回復力)はアプリケーションの固有の特性である。混同を避けるために、完全にプロビジョニングするための失敗を「不足」の状況と称する。QoSp(即ち、許容された「不足の確率」)の適切な設定値は、許容されたジョブの失敗の確率よりも大きいことに留意されたい。
この開示に於いて、時間インターバルτにおいてジョブiによって必要とされる資源を表すためにわれわれはランダム変数Zτ (i)を使用する。ZはCPUサイクル、メモリ、ハードディスク、またはI/Oなどの一次元資源あるいは多次元資源であってもよいことを留意されたい。単一の時間インターバルだけを考慮する場合、われわれはτ指数を一時的に省略することができる。
ジョブiに対する資源ニーズは、ランダム変数Z(i)に対する観察された確率分布関数φ(i)(z)によってモデリングすることができる。対応する累積分布は以下のように表すことができる。
観察された分布と真の分布の差は十分なサンプルがあるので無視することができることに留意されたい。しかしながら、モデリングと統合アルゴリズムがジョブの集合に新たに適用される場合、それ以前の仮説を用いかつモデリングエラーのリスクを取り入れる際にはいくぶん注意が必要である。
(統計的パッキングアルゴリズムとも呼ばれこともある)全体のプールアルゴリズムは、累積予約

がジョブの全体プールが十分な資源を有するほどに大きくなるまで、
に基づいてジョブの個別の予約を行うことによってQoSの降順(または増加するp)においてジョブを処理する。(kより大きい指数を有している)残存ジョブは予約を必要としない。いいかえれば、より上位のQoSレベルを有しているジョブがそれらのQoS要件を満たす十分な資源によって個別にプロビジョニングされると、未使用の資源の頻繁な利用可能性はより下位のQoSレベルを有するジョブの要件を満たすには十分である。
より形式的ないい方をすれば、全体のプール割当てアルゴリズムは、第1のk−1個のジョブに対する個別予約

+ジョブkにおける部分予約s(k)≦r(k)の部分合計が、k番目のジョブのQoSレベル(即ち、p(k))においてグループ総資源のニーズを満たすほど大きくなるように、最小の指数kを検索することによって効果的に作用する。即ち、自式となる。

の上付き(n)はグループ全体への累積分布を意味することに留意されたい。等式(3)によれば、ジョブ1、2、...、kは予約r(1),r(2),...,r(k―1),s(k)を得ることができ、残存ジョブには予約は入らない。ジョブがQoS順序にあるため、残存ジョブのQoS要件は、更なる予約なしでも満たすことができることに留意されたい。ジョブiに与えられる実際の予約は、遷移的指数kに対してジョブがスタンドしている場所に依存する。
等式(4)を以下のそのアルゴリズムバージョンを用いて表す方が便利である。
ここで、変数“accum”は発生した予約全体である。等式(4)の正確度(およびそのアルゴリズムバージョン)は、等式(3)に基づくグループの資源ニーズを満たすことがp(k)のQoSレベルのすべての個別のジョブの資源ニーズを満たすという観察に準じており、この観察は、p(j)≧p(k)であるとき、指数j>kを有する任意のこれ以降発生するジョブに対して十分すぎるくらいである。
全体のプールアルゴリズムのアプリケーションは、個別のジョブ(等式(2))に対する資源ニーズのモデリングだけでなく、グループ全体(等式(3))に対する資源ニーズのモデリングも必要とする。これまで、我々は、QoS順序でのジョブを介してシーケンシャルに進行し、kを下回る指数を有するジョブに対しては大きな保護予約をするが、kを上回る指数を有するジョブに対しては予約を行わない結果的に等式(4)に示した予約が得られる全体のプール割当てアルゴリズムについて説明してきた。この結果を少しだけ改変し、所謂、固定小数点計算を用いて全ての予約を一回計算することによって合計予約を削減することが可能である。大抵の場合、固定小数点計算の結果は、等式(4)の予約に類似するが、kを下回る指数を有するジョブに対する予約は少ないが、kを上回る指数を有するジョブに対しては少ない予約でも、kにおける遷移を緩和することができる。
ジョブiごとに、われわれがジョブの資源ニーズ(ランダム変数Z(i))とジョブiを除く全ての他のジョブの全体的資源ニーズ(ランダム変数Y(−i))とのジョイント(共同)分布(これは観察された確率分布関数:
と表示される)をモデリングすることができると仮定すると、不足確率は以下のように計算される。

ここで、s(i)はジョブiに対して行われた個別予約であり、s=s(1)+s(2)+...+s(n)はグループ全体に対して行われた予約である。不足は、個別予約またはグループ予約のいずれも
を満たすほど大きくない場合に発生する。
図1はジョブの例示的な不足解析を示す図である。x軸は、ジョブiの資源ニーズ(変数z)であり、y軸は全ての他のジョブの資源ニーズである(変数y)。点線は、ジョブi(s(i))に対して行われた個別予約を意味し、破線は、グループ全体(s)のために行われた予約を意味する。ジョブiに対する資源ニーズがジョブiに対して行われた個別予約を下回る場合(即ち、点線の左側)、このようなニーズはジョブiの個別予約によって満たすことができる。ジョブiに対する資源ニーズがその個別予約を上回る(即ち、点線の右側)が、グループに対する資源ニーズがグループ予約を下回る場合(即ち、破線の下)、ジョブiに対する資源ニーズは他のジョブの未使用の予約によって満たすことができる。斜線部分(点線の左側でかつ破線の上)はいわゆる不足領域である。資源ニーズが不足領域内にあるときに不足が発生する。グループ予約が十分に大きくない場合、仮想マシンのスケジューラがどのように作用するかによっては、まだ全体的にプロビジョニングされるジョブもあることに留意されたい。ここで、「痛みが共有される」、即ち、グループ内のすべてのジョブがその全資源ニーズに不足があって僅かの不足であってもQoS要件達成のためには失敗事象としてカウントされるとわれわれは仮定する。これはQoS要件を満たすための従来のアプローチであり、即ち、これらの要件が個別又はグループ予約によって満たされない限り、われわれは要件が満たされたと仮定することはない。
不足確率を用いて、必要とされる個別予約s(i)

の同時解として算定することができる。
等式(6)および(7)は、固定小数点計算を用いて解くことができる。合計予約sからスタートし、等式(6)に基づいてQoS要件を満たすために必要な個別予約s(i)を解き、これらの個別予約を用いて等式(7)に基づく新しい全体予約を定義する。観察された確率分布関数がヒストグラムとして与えられたとき、この固定小数点計算をシステマチックに進めることができる。即ち、最大可能値からスタートして、正確なsを検索し、sを段階的に減らしていく。これによって、単調に増分する等式(6)の解において、s(i)が得られる。s(i)の和がsを上回ると、この検索は終了し、これによって、ヒストグラムの量子化の精度範囲に対して固定小数点を識別する。アルゴリズムを終了するために、等式(7)に基づいてsはs(i)の和に設定され、これによって、sとs(i)が共に必要以上であることを確実にする。
このアルゴリズムの正確度は等式(6)に準じている。固定小数点において、不足の確率はQoS仕様によって必要とされる確率p(i)である。ヒストグラムと段階的な検索を使用する場合、オーバーシュートが生じることもあることに留意されたい。しかしながら、sとs(i)の両方が大きくなるにつれて、q(i)(s(i),s)が単調減少するという事実によって、
が得られ、これがジョブiのQoS要件を満たすかまたはこれを超える。
プロビジョニングの唯一のコントロールが個別のジョブ予約をすることであると仮定した場合、全体のプール割当てアルゴリズムの固定小数点のばらつきをプロビジョニングの問題の最適なソリューションとして検討することができるが、未使用の予約を選択的に再分布するソリューションを含むプロビジョニングをコントロールするためであれば、他のツールを使用することもできる。
前述の全体のプール割当てアルゴリズムは、未使用の予約がプール内のすべてのジョブの間で均等に再分布されることを可能にする。しかしながら、上位QoS格付けを有するジョブ(即ち、下位pを有するジョブ)を優先してこれらの未使用の予約を選択的に再分布する方が有利である。一実施形態において、未使用の予約を再分布する時に「共有」マシンが使用される。具体的には、各ジョブには多数の共有が割当てられ、未使用の予約は、資源を必要とする残存ジョブの共有に比例して分布される。従って、より上位のQoSジョブにより多くの共有を割り当てることによって、これらのジョブがより多くの未使用予約を取得することができることを確実とする。例えば、ジョブがQoS降順に指数付けされる場合、システムは指数に基づいて共有を割当てることができる。ジョブiは、Mn―i個の共有を受信する。ここで、Mは大きい正の定数であり、nはプール内のジョブの数である。Mが大きくなればなるほど、再分布はより上位のQoSジョブを優先する。限界M→∞において、すべてのジョブの資源ニーズが満たされるまで(または十分な資源がなくなるまで)、すべての未使用の資源は残存ジョブを介してQoS順に「カスケード」する。実際に、Mは5または10などの有限値に設定される。これらの有限値において、未使用の資源の一部はより下位のQoSジョブへ「リークする」。この全体のプール割当てアルゴリズムを用いれば、未使用資源を下位のQoSジョブへ付与することも統合の役に立つことから、これらの資源も無駄にはならない。
他の実施形態において、共有をジョブや仮想マシンに割り当てる代わりに、システムは、ジョブのQoS格付けに応じてこれらのジョブに類似している未使用資源のカスケードを作成するためにグルーピングマシンを使用する。より具体的には、最上位のQoS格付けを有している2つのジョブ(または仮想マシン)が一緒にグルーピングされ、その後、グループの階層は、以下に示されるように、この階層が拡張されるにつれて下位のQoSジョブを連続的に加算することによって構築される。
個別のジョブ(または仮想マシン)には予約
が付与され、総資源プール
は個別予約の和よりも大きくなるように選択され、以下のように与えられる。
はいくつかの余分なパッディングによって設定され、複数の物理マシンを介してマシンの整数を四捨五入すべくビンパッキングを可能にすることに留意されたい。各グループには、そのプール内の総資源からサブツリー内に存在しない任意の予約を減算したものに等しいに大きな予約が付与される。
ここで、
は、そのサブツリー内のvm,vm,...,vmiを含む階層内に形成されるグループに対する予約である。これらのグループ予約は全てのニーズが満たされるまで、それらのサブツリーにおける未使用の資源をキャプチャする。このように未使用の資源はグループ階層の左側を優先し、資源が下位のQoSジョブの資源ニーズを満たす前により上位のQoSジョブの資源ニーズを満たす。
一つの実用的な考慮は、QoS仕様が少数の固定レベルに含まれる傾向があることである。これにより、全てのジョブが異なるQoSレベルp(i)を有することにはならない。ジョブを介して未使用の資源をシーケンシャルにカスケードするのではなく、むしろ、未使用の資源が同じQoSレベルを有する全てのジョブに対して同時にカスケードすることができる。このカスケードは、等しいQoSジョブに対する共有割当てを等しくすることによって、またはグルーピングメカニズムを使用する場合は階層内の同じレベルで等しいQoSジョブをまとめて加算することによって、配列され得る。
単純化するために、我々は最初、異なるQoSレベルのケースを考慮し、カスケーディング(即ち、M→∞、または各レベルにおいて加算された一つの新しい仮想マシンを有しているグループの階層)を厳密に命令した。カスケード過剰アルゴリズムは、最初に、最上位のQoSジョブによってQoSの降順(したがって、昇順p(i))でジョブを処理する。各ステップにおいて、実際の予約
は累積予約がすべての先行ジョブによってグルーピングされるジョブiの資源ニーズを満たすように選択される。iごとに、
が、グループ内の最新ジョブのQoSレベルにおいてプレフィックスグループ{1、2、...、i}に必要とされる全体予約であるとすると、
となり、ここで、Ψ(i)はプレフィックスグループに対する累積分布関数(CDF)である。ジョブiに対する実際の予約
は、プレフィックスグループ{1、2、...、i}の全体要件を満たすために、ジョブiに必要とされる(上位のQoSジョブに対して既に行われている予約の和
を上回る)更なる予約である。
を計算するためのアルゴリズムは、以下のように記載できる。
QoSの降順で残存ジョブを介して未使用資源をカスケードするために共有(またはグルーピング)マシンを用いることから得られる利点は、その予測資源より多く(例えば、そのQoSニーズを満たすために必要である資源を上回る量)を必要とする下位QoSジョブは、これらの資源が上位のQoSジョブを介してカスケードするまで、未使用資源を受信しないことに留意されたい。図2は、本発明の一実施形態による、2つの互いに隣り合うプレフィックスグループ間で資源がどのようにカスケードするかを示す図である。図2の上半分はプレフィックスグループ{1、2、...、i−1}の確率密度関数(PDF)を示し、図2の下半分は、次のプレフィックスグループ{1、2、...、i}に対するPDFを示している。QoSの降順の場合、不足確率p(i)がiとともに増分し、これによって、分布に相対して左方向へのプレフィックスグループシフトに対して必要とされる予約につながることに注意されたい。図2から、更なる予約
が殆ど必要とされないことが分かる。このカスケード過剰アルゴリズムの正確度は、

を知ることによって、および等式(12)によって、提供される。カスケード過剰アルゴリズムに基づいて行われた累積予約は、QoSレベルp(i)におけるグループ{1、2、...、i}の資源ニーズを満たすほど十分に大きく、QoSレベルp(i)におけるグループの最後のメンバであるジョブiに対する資源ニーズを必ず満たすことになる。
複数のジョブが同じQoS要件を有している場合、ティア(層)ベースのカスケード過剰アルゴリズムが実施される。より具体的には、未使用の予約は、同じティア(層)内のすべてのジョブ、または同じQoSレベルを有するジョブを、同時にカスケードする。そうするためには、所与の層内のジョブへ等数の共有が付与される。したがって、これらのジョブに予約が与えられる場合、これらのジョブは余分の使用可能な資源の等しい部分を受信する。
層ベースのカスケードアルゴリズムはm個のQoS層を定義付け、これによって、各(QoS順の)ジョブiが層に割り当てられ、所与の層内の各ジョブは同じQoSレベルを共有する。ジョブiの層kは、グルーピングメカニズムによって、k=G(i)として定義付けることができ、層k内のジョブの数はmとして表される。層がQoS降順で指数付けされると仮定すると、G(i)≦kであるようにすべてのジョブiを含むプレフィックスグループに必要とされる予約は、
となり、ここで、Ψ (k)はプレフィックスグループのCDFであり、p (k)はQoSの層kに関連付けられる不足確率である。
共有メカニズムは層内のジョブの間で各層において余分な資源を等しく割り当てるので、必要とされる残存予約
は各ジョブの個別のプロビジョニング予約r (i)に比例的にヒューリスティックに割り当てることができる。一実施形態において、システムは、ジョブのスケーリングされた個別予約に基づいてジョブごとに実際の予約を行う。ジョブiに対してスケーリングされる個別予約は、以下のように定義される。
したがって、ジョブiの実際の予約は次式で与えられる。
等式(14)によって定義された倍率の個別予約以外に、与えられたティアに対する全てのγ(i)値に合計が1であれば、この比例倍率の他の定義も可能であることに留意されたい。個別のプロビジョニング予約に比例してティア予約を配分する、この特定のヒューリスティックは、個別の保護を提供するのみならず最新の移行決定を賢明にガイドするという利点がある。ティアベースのカスケード過剰アルゴリズムの正確度は、kごとに、
であることを知ることによって提供される。これによって、

となる。したがって、等式(13)に基づいて、累積予約はQoSレベルp(k)において、ティアプレフィックスグループΨ (k)のニーズを満たすほど大きい。
概して、モデリング努力と達成される統合の量との間にはトレードオフがある。シンプルな全体のプール割当てアルゴリズムは、個別ジョブ資源と総資源をモデリングする最もシンプルなモデリング要件を有している。全体のプール割当てアルゴリズムの固定小数点のばらつきは、より良好で、より統合された解を取得するが、ジョブごとにジョイント(共同)モデルを必要とする。カスケード過剰アルゴリズムは、根本的な仮想化スケジューラ(即ち、共有またはグルーピングのいずれか)により多くのプロビジョニングマシンを用いることによってより良好でより統合された解を得ることができるが、そのモデリングニーズはシンプルな全体のプール割当てよりもやや複雑であり、n個の個別モデルではなく、n個の「プレフィックスグループ」のモデルを必要とする。カスケード過剰アルゴリズムの拡張としてのティアベースのカスケード過剰アルゴリズムは、改良された統合解を取得するが、m個のティアプレフィクスグループだけでなく、(γを計算するための)n個の個別モデルを必要とする。
ジョブが独立している場合、さまざまなモデリング要件は重要ではなく、全ての上記のモデルは個別のジョブモデルの様々な畳み込みによって導き出すことができる。しかしながら、実際には、ジョブの資源ニーズは通常相関関係にあり、この相関関係を説明するモデリング(即ち、様々なグループ資源の要件をモデリングすること)は、統合問題をうまく解決する上で不可欠である。カスケード過剰アルゴリズムはまた、下位QoSジョブからの上位QoSジョブの分離の利点を提供する。
複数のインターバルプロビジョニング
データセンタの長期プロビジョニングは、複数の時間インターバルのためのプロビジョニングを含む。各時間インターバルの前にプロビジョニングを動的に変更するよりむしろ、複数の時間インターバルに対して効果を表す一つのプロビジョニングを予め設定することが好ましい(例えば、全日または全週)。このより安定したプロビジョニングに対する動機は、例えば、あまり頻繁に検討せずおよび/またはより長期のプロビジョニング勧告を手動で適用することによってデータセンタオペレータがデータセンタのオペレーションをより慎重に管理できるようにすることである。
複数のインターバルプロビジョニングへの挑戦は、複数のインターバルに対して同時に作用するプロビジョニングを計算することである。単純な戦略は、各時間インターバルτ
に対して予約rτ (i)を計算するために上記した単一インターバルプロビジョニングアルゴリズムのいずれか一つを使用することであり、次に
を設定することにより全てのこのような予約の最大値を用いることである。
これはジョブのいくつかの集合に有効であるが、ジョブの資源ニーズが相補関係にある場合、同じ時間インターバルでは全ての資源ニーズが予約の最大値を必要としない場合もあるという欠点があった。従って、この単一のインターバルプロビジョニングアルゴリズムは単一の時間インターバル内で資源を共有するために良い仕事をしたとしても、等式(15)における最大の演算は時間インターバルの間で資源を共有するためにいい仕事をしない。従って、より優れたアプローチが必要になる。
様々な単一インターバルプロビジョニングアルゴリズムのなかでも、カスケード過剰アルゴリズムは、時間インターバルの間で資源の再配分するために大部分のコントロールを提供する。ここでは、カスケード過剰アルゴリズムを複数の時間インターバルに拡張することができる。各プレフィックスグループ{1、2、...、i}ごとに、全ての時間インターバルに対するグループ(即ちp(i))の最新のメンバのQoSレベルにおけるグループの資源ニーズを満たすために必要とされる予約
は、

を用いて計算することができる。
前述の共有やグルーピングマシンを使用し、過剰資源がQoS降順でジョブへカスケードすると仮定して、以下のアルゴリズムを用いて実際予約を計算することができる。
このアルゴリズムは、等式(15)において記述されている単純な最大値アルゴリズムとは異なる。実際の単一インターバル予約
に最大値を適用するよりむしろ、このアルゴリズムは、等式(17)に示すように、実際の予約を行う前に、この最大値を要求された予約へ適用する。この方法はプレフィックスグループ内の資源のより多くの共有を可能にする。
このアルゴリズムの正確度は、各プレフィックスグループ{1、2、...、i}ごとに、
としての十分な累積予約があることを通知することによって提供される。等式(17)に基づいて、累積予約
はすべての時間インターバルにおいて、グループの最後のメンバ、ジョブiのQoSレベルにおいてプレフィックスグループの資源ニーズを満たすほど大きい。従って、プレフィックスグループiのプロビジョニングは、そのQoS要件を満たすことを確実にする。
ティアードされた(層になった)場合、等式(16)および(17)は以下のように書き換えることができる。
ここで、
は、全ての時間インターバルに対するグループ(即ち、p (i))の最後のティアのQoSレベルにおけるグループの資源ニーズを満たすために必要とされる予約である。
ジョブiに対してスケーリングされた個別予約は、

に基づいて、全ての時間インターバルに対する小数の平均値として計算することができ、ここでTは時点数である。
アルゴリズムは単一インターバルのティア(層)ベースのカスケード過剰アルゴリズムに類似している。
kごとに、

であるので、単一のインターバルシナリオの正確度を証明する論理は、この複数のインターバルティアベースのカスケード過剰アルゴリズムのためにも通じる。
ジョブモデル間の分離
仮想化の利点の一つは、仮想マシンが資源を共有できるようにすることである。また他の利点は、あまり頻繁に引用されないが、互いから仮想マシンを分離させることである。共有する資源が完成した分離が可能でないか又は望ましくないことをしばしば意味することから、これらの利点の両方を達成することは難しい。実際には、一つのジョブの不正な振舞いが、システム内の他のジョブに深刻な影響を与えない程度の分離を有することは望ましいといえる。
分離を改良するための簡単なステップは、VMware(登録商標)(VMware、Inc、Palo Alto、California)などの仮想化システムにおいて提示された「最大値」の仕様を使用することである。例えば、ジョブiのための個別予約が
で表される予約を必要とする場合、
その後、最大値は、
に基づいて設定することができる。
つまり、このケース2において、ある一定の係数によってそのQoS要件をアウトパフォームするために必要な量より多い資源を使用することは許されない。最大値を特定する別の簡単なアプローチは、r (i)に用いられた1.2などの、1より大きい基準倍率を使用することであるが、Φ(i)の可用性は、等式(23)を最大値設定に対するより基本的なアプローチにすることができる。等式(23)で設定される最大値は、上記したセクションに説明した異なるグループの統合が最小値を設定するために使用されている場合でも設定可能であることに留意されたい(即ち、予約)。最大値を設定することが有用である一方、グループ統合アルゴリズムが使用されている場合、ジョブ分離のより効果的なコントロールを提供するための更なる技術も必要とされる。
ジョブが最初に仮想化されている場合、従来の戦略は、直前に用いられた物理資源に等しい仮想資源の量に対して予約を行うことである。これは互いからジョブを完全には分離しないが(まだに未使用の資源を共有し利益を得ようとするが)、少なくともそれらの直前の非仮想化された物理的実施と同じくらい良好に分離する。残念ながら、直前に用いられた物理資源に等しい仮想資源を単に予約するこの従来のアプローチは、仮想化の利点を最大限に実現していない。ジョブの資源ニーズが良好にモデル化され、QoS要件が良好に指定されると、資源における相当な更なる保存やQoSの改善が分離削減や資源共有を介して可能となる。これは前述のアルゴリズムのいずれかを介して達成することができる。
可変性の高い資源ニーズを有するジョブが上述の資源統合アルゴリズムにとって問題ではなく、それらの可変性が十分良好にモデリングされている限りにおいて分離させる必要がないことを強調することが重要である。ジョブが最初に仮想化された場合、高い分離を皮切りに、分離の度合いを管理して、その後、ジョブの資源ニーズがより良好にモデリングされるにつれて、分離を削減してより大きな統合を成し遂げることが重要である。
ここで、われわれはジョブの分離をコントロールするパラメータαを導入する。αの範囲は0〜1であり、0は完全分離を意味し、1はジョブ間での資源の完全共有を意味する。ジョブが異なるQoSレベルを有している場合、等式(22)は予約を個別に定義し、グループ(即ち、p(i))の最新メンバのQoSレベルにおけるグループの資源ニーズを満たすためのプレフィックスグループ{1、2、...、i}に対して必要とされる予約
は、(等式(16)‐(17)に基づいて)次式で表される。
ジョブがQoS降順で等式(22)と(24)を使用して仕分けられると仮定すると、われわれはその割当てを以下に基づいて設定することができる。
見ての通り、一つの極値(α=0)において、上記のアルゴリズムは等式(22)で定義される個別のプロビジョニング
に還元される。一方、他の極値(α=1)において、上記のアルゴリズムは前のセクションで述べた複数のインターバルカスケード過剰アルゴリズムへ還元される。
ジョブが同じQoSレベル(ティアベースの場合)を有するケースについては、最新のティアメンバのQoS要件を満たすことができるティア「プレフィックスグループ」に必要とされる予約は、(等式(18)‐(19)に基づいて)
で表される。
同じαパラメータを用いて、以下に基づいて割当てを設定することができる。
前出のアルゴリズムと同様に、このティアベースのアルゴリズムは、α=0において個別プロビジョニングに還元され、α=1において上記のセクションで述べた複数のインターバルの層ベースのカスケード過剰アルゴリズムへ還元される。
本発明の実施形態によれば、データセンタにおける長期の資源プロビジョニングのためのソリューションが提供される。具体的には、システムは、一週間あたり一日または複数日にわたって複数の時間周期などの複数の時間インターバルに対する更なる資源ニーズに対するモデルに対して複数のインターバルアルゴリズムを適用して、あまり頻繁ではないプロビジョニングの変更を可能にする。これによって、システムは人間のオペレータに資源のプロビジョニングを監督する機会を提供する。たとえば、人間のオペレータはジョブの資源使用を監視する監視ツールからの推薦を受け取り、その後、その推薦を手動的に適用することができる。システムがジョブの間で分離の程度を管理することが可能である。とりわけ、システムはほぼ完全な分離モードと非常に効率的なグループの統合を可能にする資源共有モードとの間を遷移することができる。例えば、ジョブが新たに導入され、それらの資源ニーズがあまり理解されない場合、システムは、ジョブがそれらのQoSニーズを満たすことができる個別予約を受信する完全な分離モードで動作することができる。ジョブが良好にモデリングされ、資源の潜在的な共有が解析され実施された後、システムは、(全体のプール割当てアルゴリズムとその変形に基づいて)グループへの予約が行われて効率的なグループ統合を可能にする共有モードで動作することができる。
システムとモジュール
図3は、本発明の一実施形態による、資源のプロビジョニングコントローラを示す図である。図3において、資源プロビジョニングコントローラ300は、QoS識別子302と、資源使用モニタ304と、資源使用モデル構築子306、予約計算子308、過剰再分布モジュール310と、スケジューラ312と、ユーザインタフェース314と、を含む。
資源プロビジョニングコントローラ300は、最高のパフォーマンスを達成するために、物理マシンまたはマシンのクラスタに位置付けされているジョブの資源のプロビジョニングをコントロールする。QoS識別子302は各ジョブに関連付けられたQoS要件を識別する。一実施形態において、QoS要件は不足確率によって表される。資源使用モニタ304はジョブごとに資源ニーズを監視し、このモニタはランダムであるか又はいくつかの時間的パターンを有することができる。資源使用モデル構築子306は、資源使用モニタ304から使用情報を受信し、これに応じて、ジョブごとに資源使用モデルを構築する。いくつかの実施形態において、資源使用モデル構築子306は、ジョブのプレフィックスグループのモデルを計算する。一実施形態において、資源使用モデルは一定量の資源を必要とするジョブのジョブまたはグループの確率を示している資源ニーズ分布関数を含む。更なる実施形態において、資源使用モデルはジョブまたはジョブのグループの資源ニーズの時間的分布を含む。例えば、ある特定のジョブが午前中に大量の資源を必要とする確率は高い。
構築された資源使用モデルとジョブごとのQoS要件に基づいて、予約計算子308はジョブごとに必要とされる予約を計算する。一実施形態において、全体のプール割当てアルゴリズムは必要とされる予約を計算するために使用される。より具体的には、予約計算子308は最初、ジョブをQoS降順で指数付けし、次に、最初のk−1個のジョブ+ジョブkに対する部分予約の部分和がk番目のジョブのQoSレベルにおけるグループ総資源ニーズを満たすほどに大きくなるように最小の指数kを検索する。つまり、予約計算子308は、ジョブのQoS要件を満たすために必要とされる個別予約として第1のk−1個のジョブに対する予約と、ジョブのQoS要件を満たすために必要とされるその個別予約の分数としてk番目のジョブに対する予約と、残存する下位QoSジョブに対するゼロ予約と、を出力する。一実施形態において、予約計算子308は、全体のプール割当てアルゴリズムの固定小数点のばらつきを利用してこれらの予約を計算する。固定小数点のばらつきを実施するために、資源使用モデル構築子306は、ジョブと残存グループに対する資源ニーズを記述するジョブに対してジョイントモデルを構築する必要があることに留意されたい。
過剰再分布モジュール310は、未使用予約がジョブの間でどのように再分布されるかをコントロールする。一実施形態において、過剰再分布モジュール310はそれらのQoS要件に基づいてジョブに共有を割り当てる「共有」マシンを使用し、上位QoSジョブにより多くの共有が割り当てられる。このように、VMwareなどのシステムのオペレーションによって、共有数に比例して未使用予約を分布することによって残存ジョブを介して未使用予約をQoS順にカスケードさせる。一実施形態において、過剰再分布モジュール310は次に、各々がインラインの下位順序のQoSジョブを直前に形成されたグループへ加算することによって形成される、グループの階層を構築する「グルーピング」マシンを使用する。新しく加算されたジョブに対して行われた予約は、現在のグループのQoS要件を満たすことができる(上位のQoSジョブに対して既に行われている予約の和を上回る)ジョブに必要な更なる予約である。未使用予約が残存ジョブの間で均等に分布される場合には過剰再分布モジュール310は呼び出されないことに留意されたい。
一実施形態において、予約計算子308と過剰再分布モジュール310の出力はスケジューラ312へ送信され、スケジューラ312はジョブごとに実際の予約を行う。一実施形態において、出力は、人間のオペレータへの出力を提供する、ユーザインタフェース314へ送信される。人間のオペレータは、提示された資源プロビジョニングを検討し、このようなプロビジョニングを実行するかどうかを判定する。ユーザインタフェース314は、オペレータが分離モジュール316をコントロールすることを可能にする。より詳細には、オペレータは分離パラメータを設定することができる。分離パラメータを用いて、分離モジュール316は、ジョブ間の分離の程度を管理することができる。分離パラメータが0に設定されている場合、ジョブの全体分離が分離モジュール316で要求される。これによって、予約計算子308はジョブの個別のニーズに基づいてジョブに対する予約を計算する。分離パラメータが1に設定されている場合、分離モジュール316はジョブに資源を完全に共有させることができる。したがって、予約計算子308はグループとしてのジョブのニーズに基づいてジョブに対する予約を計算する。更なる実施形態において、人間のオペレータに代えて、分離モジュール316は、資源使用モニタ304からの入力に基づいて分離パラメータを算定する。システムがこれらのジョブの資源使用に関する知識が徐々に蓄積されていくにつれ、分離モジュール316は、分離パラメータを増加させる。
資源プロビジョニングコントローラ300は、単一の時間インターバルまたは複数の時間インターバルに対する資源をプロビジョニングするために使用することができる。複数のインターバルプロビジョニングに使用する場合、資源使用モデル構築子306は、様々な時間インターバルに対する資源利用モデルを構築する必要があり、予約計算子308はすべての時間インターバルのQoS要件を満たすことができるジョブの予約を計算する。同様に、過剰な再分布モジュール310はまた、未使用の予約を再分布する際、複数のインターバルアルゴリズムを実施することも必要とする。複数のインターバルのためのプロビジョニング戦略は、ユーザインタフェース314によってオペレータに提示可能であり、オペレータはスケジューラ312へ複数の時間インターバルに対して提案されたプロビジョニングを同時に実行するように指示することができる。
図4は、本発明の一実施形態による、資源プロビジョニングの例示的なプロセスを示す流れ図である。動作中、システムはマシンのクラスタで実行されるジョブごとにQoS要件を識別し(動作402)、ジョブの資源使用履歴に基づいてジョブごとに資源使用モデルを構築する(動作404)。一実施形態において、確率密度関数(PDF)などの資源の使用モデルは資源使用確率分布関数を含む。更なる実施形態において、資源使用確率分布関数は経時的に変化する。
次に、システムはジョブに対する資源予約を計算する(動作406)。所望される統合のレベル次第では、これらに限定されないが、単一の全体のプール割当てアルゴリズム、全体のプール割当てアルゴリズムの固定小数点のばらつき、およびティアベースのカスケード過剰アルゴリズムを含む、様々なアルゴリズムが資源予約を計算するために使用することができる。更なる実施形態に於いて、システムはジョブの間での分離の度合をコントロールするために分離パラメータを使用する。計算された資源予約が単一の時間インターバルまたは複数の時間インターバルに適用できることに留意されたい。複数のインターバルの場合、資源予約を計算する時にさまざまなアルゴリズムの複数のインターバルのばらつきがシステムによって実行される。
システムは必要に応じて計算された資源予約を人間のオペレータへ提供し(動作408)、オペレータからフィードバックを受信する(動作410)。オペレータのフィードバックに基づいて、システムは単一の時間インターバルまたは複数の時間インターバルに対して資源予約を実行する(動作412)。
図5は、本発明の一実施形態による、データセンタ内の資源プロビジョニングのための例示的なコンピュータシステムを示している。一実施形態において、コンピュータおよび通信システム500は、プロセッサ502、メモリ504、および記憶装置506を含む。記憶装置506は、資源プロビジョニングアプリケーション508のみならずアプリケーション510と512などの他のアプリケーションも記憶している。動作中、資源プロビジョニングアプリケーション508は、記憶装置506からメモリ504へロードされ、その後、プロセッサ502によって実行される。プログラムを実行している間、プロセッサ502は、前述した機能を実行する。コンピュータおよび通信システム500は、任意選択のディスプレイ514、キーボード516、およびポインティングデバイス518に連結される。
資源プロビジョニングの以上の考慮する点は、単一マシン、マシンのクラスタ、またはデータセンタを含む、データセンタ内の複数のレベルにおいて、適用することができることから、グループ統合は、資源利用を改良するためでなく、QoS要件を満たすために使用することができることに留意されたい。

Claims (8)

  1. 複数のジョブによって共有される物理資源をプロビジョニングするためのコンピュータ実行可能な方法であって、
    資源使用モニタから受信した情報に基づき所定のアルゴリズムを実行することで前記ジョブに対して必要とされる資源を予測する資源使用モデルを構築するステップと、
    前記ジョブに関連付けられたサービス品質(QoS)要件に基づいて前記ジョブを格付けするステップと、
    上位QoS格付けを有しているジョブの第1の部分集合に関連付けられた任意の未使用の予約が、他の残存ジョブのうち最上位のQoS格付けを有しているジョブの第2の部分集合の方を優先させて前記他の残存ジョブへ分布されるように、所定の時間インターバルに対して前記ジョブをプロビジョニングするステップであって、前記ジョブのプロビジョニングが前記資源使用モデルと前記ジョブに関連付けられた対応するQoS要件に基づいて前記ジョブに対して予約を行うことを含む、ステップと、
    を含む、方法。
  2. コンピュータで実行されると、複数のジョブによって共有された物理資源をプロビジョニングするための方法を前記コンピュータに実行させる命令を記憶しているコンピュータ読出可能記憶媒体であって、
    前記方法が、
    資源使用モニタから受信した情報に基づき所定のアルゴリズムを実行することで前記ジョブに対して必要とされる資源を予測する資源使用モデルを構築するステップと、
    前記ジョブに関連付けられたサービス品質(QoS)要件に基づいて前記ジョブを格付けするステップと、
    上位QoS格付けを有しているジョブの第1の部分集合に関連付けられた任意の未使用の予約が、他の残存ジョブのうち最上位のQoS格付けを有しているジョブの第2の部分集合の方を優先させて、前記他の残存ジョブへ分布されるように、所定の時間インターバルに対して前記ジョブをプロビジョニングするステップであって、前記ジョブのプロビジョニングが前記資源使用モデルと前記ジョブに関連付けられた対応するQoS要件に基づいて前記ジョブに対して予約を行うことを含む、ステップと、
    を含むことよりなる、コンピュータ読出可能記憶媒体。
  3. 複数のジョブによって共有された物理資源をプロビジョニングするための計算システムであって、
    資源使用モニタから受信した情報に基づき所定のアルゴリズムを実行することで前記ジョブに対して必要とされる資源を予測する資源使用モデルを構築するように構成されている資源使用モデル構築子と、
    前記ジョブに関連付けられたサービス品質(QoS)要件に基づいて前記ジョブを格付けするように構成されている格付けメカニズムと、
    上位QoS格付けを有しているジョブの第1の部分集合に関連付けられた任意の未使用の予約が、他の残存ジョブのうち最上位のQoS格付けを有しているジョブの第2の部分集合の方を優先させて前記他の残存ジョブへ分布されるように、所定の時間インターバルに対して前記ジョブをプロビジョニングするように構成されているプロビジョニングメカニズムであって、前記ジョブのプロビジョニングが前記資源使用モデルと前記ジョブに関連付けられた対応するQoS要件に基づいて前記ジョブに対して予約を行うことを含むプロビジョニングメカニズムと、
    を含む計算システム。
  4. 前記ジョブをプロビジョニングしている間、前記プロビジョニングメカニズムが、
    前記ジョブに関連付けられた対応するQoS格付けに基づいて前記ジョブへ異なる数の共有資源を割り当て、それぞれのジョブに割り当てられた前記共有資源の数が前記それぞれのジョブのQoS格付けに逆相関され、
    ジョブの前記第1の部分集合に関連付けられた未使用の予約が前記他の残存ジョブに割り当てられた共有資源の数に基づいて前記他の残存ジョブへ比例分布されることを前提に予約を割当てる、
    ように構成されている、請求項3に記載のシステム。
  5. 前記ジョブをプロビジョニングしている間、前記プロビジョニングメカニズムが、
    QoS格付けに基づいて降順に前記ジョブを仕分するように構成され、かつ、
    最上位のQoS格付けを有しているジョブからスタートして、
    次のインラインジョブを直前に形成されたサブグループに加算することによってサブグループを形成するステップと、
    前記サブグループに対して前記資源使用モデルを構築するステップと、
    前記サブグループに対する前記資源使用モデルと前記次のインラインジョブに関連付けられたQoS要件に基づいて前記サブグループによって必要とされる資源要求量を算定するステップと、
    を反復するように構成されている、請求項3に記載のシステム。
  6. 前記ジョブをプロビジョニングしている間、前記プロビジョニングメカニズムが前記資源要求量と前記直前に形成されたサブグループに対して行われた予約との間の差に基づいて前記次のインラインジョブに対して予約を行うように構成されている、請求項5に記載のシステム。
  7. 前記ジョブをプロビジョニングしている間、
    前記プロビジョニングメカニズムが、
    同じQoS格付けを有している少なくとも2つのジョブに応答して、一つの層としての前記少なくとも2つのジョブを前記直前に形成されたサブグループに加算することによって階層状サブグループを形成し、
    前記少なくとも2つのジョブの各々によって必要とされる資源に基づいて前記2つのジョブの各々に対してスケーリングされた資源の予約を求めて、
    前記スケーリングされた資源の予約に基づいて、前記少なくとも2つのジョブの各々に対して予約を行うように構成されている、請求項5に記載のシステム。
  8. ジョブの間で分離の度合を定義付ける分離パラメータを算定するように構成されている分離モジュールを更に含むことで、前記ジョブに対して予約を行っている間、前記プロビジョニングメカニズムが前記分離パラメータを適用するように構成され、完全な分離によって前記ジョブに対して個別予約が行われる、請求項3に記載のシステム。

JP2013023968A 2012-02-26 2013-02-12 カスケード割当てによる長期資源プロビジョニング Expired - Fee Related JP6157869B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261603365P 2012-02-26 2012-02-26
US61/603,365 2012-02-26
US13/692,912 2012-12-03
US13/692,912 US9092265B2 (en) 2012-02-26 2012-12-03 Long-term resource provisioning with cascading allocations

Publications (2)

Publication Number Publication Date
JP2013175178A JP2013175178A (ja) 2013-09-05
JP6157869B2 true JP6157869B2 (ja) 2017-07-05

Family

ID=47790019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013023968A Expired - Fee Related JP6157869B2 (ja) 2012-02-26 2013-02-12 カスケード割当てによる長期資源プロビジョニング

Country Status (3)

Country Link
US (1) US9092265B2 (ja)
EP (1) EP2631798B1 (ja)
JP (1) JP6157869B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136295A1 (en) 2012-11-13 2014-05-15 Apptio, Inc. Dynamic recommendations taken over time for reservations of information technology resources
US9628399B2 (en) * 2013-03-14 2017-04-18 International Business Machines Corporation Software product instance placement
US10417591B2 (en) 2013-07-03 2019-09-17 Apptio, Inc. Recursive processing of object allocation rules
US10325232B2 (en) 2013-09-20 2019-06-18 Apptio, Inc. Allocating heritage information in data models
US9372636B1 (en) * 2013-12-20 2016-06-21 Emc Corporation Tiered-storage design
US11244364B2 (en) 2014-02-13 2022-02-08 Apptio, Inc. Unified modeling of technology towers
US10001760B1 (en) * 2014-09-30 2018-06-19 Hrl Laboratories, Llc Adaptive control system capable of recovering from unexpected situations
JP6426532B2 (ja) * 2015-05-08 2018-11-21 株式会社日立製作所 仮想マシン運用支援システムおよび仮想マシン運用支援方法
US9350561B1 (en) * 2015-05-27 2016-05-24 Apptio, Inc. Visualizing the flow of resources in an allocation model
US11151493B2 (en) 2015-06-30 2021-10-19 Apptio, Inc. Infrastructure benchmarking based on dynamic cost modeling
US10268979B2 (en) 2015-09-28 2019-04-23 Apptio, Inc. Intermediate resource allocation tracking in data models
US10387815B2 (en) 2015-09-29 2019-08-20 Apptio, Inc. Continuously variable resolution of resource allocation
US9384511B1 (en) 2015-12-16 2016-07-05 Apptio, Inc. Version control for resource allocation modeling
US9529863B1 (en) 2015-12-21 2016-12-27 Apptio, Inc. Normalizing ingested data sets based on fuzzy comparisons to known data sets
US10726367B2 (en) 2015-12-28 2020-07-28 Apptio, Inc. Resource allocation forecasting
EP3338410A4 (en) * 2016-01-18 2018-08-01 Huawei Technologies Co., Ltd. System and method for cloud workload provisioning
US10474974B2 (en) 2016-09-08 2019-11-12 Apptio, Inc. Reciprocal models for resource allocation
US10936978B2 (en) 2016-09-20 2021-03-02 Apptio, Inc. Models for visualizing resource allocation
US10482407B2 (en) 2016-11-14 2019-11-19 Apptio, Inc. Identifying resource allocation discrepancies
US10157356B2 (en) 2016-12-14 2018-12-18 Apptio, Inc. Activity based resource allocation modeling
US10268980B1 (en) 2017-12-29 2019-04-23 Apptio, Inc. Report generation based on user responsibility
US11775552B2 (en) 2017-12-29 2023-10-03 Apptio, Inc. Binding annotations to data objects
US10324951B1 (en) 2017-12-29 2019-06-18 Apptio, Inc. Tracking and viewing model changes based on time
US11243794B2 (en) * 2019-03-22 2022-02-08 Amazon Technologies, Inc. Interactive GUI for bin-packing virtual machine workloads based on predicted availability of compute instances and scheduled use of the compute instances
US11221887B2 (en) 2019-03-22 2022-01-11 Amazon Technologies, Inc. Bin-packing virtual machine workloads using forecasted capacity usage
US11249810B2 (en) 2019-03-22 2022-02-15 Amazon Technologies, Inc. Coordinated predictive autoscaling of virtualized resource groups
CN111047057A (zh) * 2019-12-17 2020-04-21 珠海市同海科技股份有限公司 一种基于钥匙箱的大小修网络级联处理系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062558B2 (en) * 2001-11-13 2006-06-13 Hewlett-Packard Development, L.P. Method and system for enabling resource sharing in a communication network having a plurality of application environments
US8087026B2 (en) * 2006-04-27 2011-12-27 International Business Machines Corporation Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
JP5000456B2 (ja) * 2007-10-31 2012-08-15 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 資源管理システム、資源管理装置およびその方法
US8656404B2 (en) 2008-10-16 2014-02-18 Palo Alto Research Center Incorporated Statistical packing of resource requirements in data centers

Also Published As

Publication number Publication date
EP2631798B1 (en) 2021-01-06
US20130227584A1 (en) 2013-08-29
JP2013175178A (ja) 2013-09-05
EP2631798A2 (en) 2013-08-28
EP2631798A3 (en) 2013-12-18
US9092265B2 (en) 2015-07-28

Similar Documents

Publication Publication Date Title
JP6157869B2 (ja) カスケード割当てによる長期資源プロビジョニング
US8312460B1 (en) Allocating computer resources to workloads using utilization based probability distributions
JP4119239B2 (ja) 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US9218213B2 (en) Dynamic placement of heterogeneous workloads
US9495215B2 (en) Optimizing virtual machines placement in cloud computing environments
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
US8224938B2 (en) Data processing system and method for iteratively re-distributing objects across all or a minimum number of processing units
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
US9374314B2 (en) QoS aware balancing in data centers
JP2011118525A (ja) サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
CN111813523A (zh) 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质
US10048987B1 (en) Methods and apparatus for a resource sharing platform having resource quality estimation
JP2016126562A (ja) 情報処理システム、管理装置、及び情報処理システムの制御方法
CN103812886B (zh) 计算机集群资源分配系统和方法
CN111373372A (zh) 在分布式计算环境中对应用分配优先级以进行对角缩放
US10643193B2 (en) Dynamic workload capping
KR20210070253A (ko) 분산 병렬 기반 인공지능 예측 모델 관제 장치 및 방법
CN112506650A (zh) 资源分配方法、系统、计算机设备和存储介质
CN112148471A (zh) 分布式计算系统中资源调度的方法和装置
KR20150070930A (ko) 최적 비용을 고려한 마이그레이션 자원 할당 시스템 및 할당 방법
US20130290669A1 (en) Physical memory usage prediction
Ghanavatinasab et al. SAF: simulated annealing fair scheduling for Hadoop Yarn clusters
CN112667392A (zh) 云计算资源分配方法、装置、计算机设备和存储介质
CN117331691A (zh) 一种分配中央处理器核心的方法、装置、服务器及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R150 Certificate of patent or registration of utility model

Ref document number: 6157869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees