(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
データ・センタは、しばしば多様なタイプのエンティティによって広範多様な目的のために使用される。電話会社、ケーブル・ネットワーク、電力会社、小売店等々のサービス・プロバイダは、一般に、自分たちの顧客のデータを「サーバ・ファーム」またはデータ・センタ内にストアし、アクセスする。この明細書の目的から「データ・センタ」は、コンピュータ・システムおよび関連する構成要素、たとえば通信およびストレージ・システムの収容に使用される施設を言う。データ・センタは、概してコンピュータ・システムだけでなく、バックアップ電源、冗長データ通信接続、空調および火災抑制等の環境コントロール、セキュリティ・システムおよびデバイス等も含む。
【0003】
データ・センタの運用は、概して顧客サービス・レベルを中心に置く。たとえば、特定の顧客が、その顧客の計算またはデータ通信のために定義済みのサービスの質を有したいと望むことがある。サービスの質は、異なる顧客について異なる要件を有することができる。たとえば1人の顧客についてのサービスの質の主要測度は、遠隔アクセス時にアプリケーションがいかに速く応答するかに関係することがある。別の顧客については、サービスの質が、その顧客の加入者に提供される接続の速度または帯域幅に関係することがある。
【0004】
データ・センタは、所定の顧客のために特定のサービス・レベルを提供することを、公式に取り決めたサービス・レベル合意(SLA)の形式で確約することがある。SLAは、通常、可用性、保守性、性能、運用、請求等のレベルを指定し、またSLAの違反の際における罰則を指定できることさえある。SLAは、一般に性能測定、問題管理、顧客義務、保証、災害復旧、および合意の終結を取り扱う。たとえばSLAは、特定のジョブが指定の確度を伴って特定量のリソースを得ることを要求できる。またSLAは、特定のジョブまたはジョブのグループに割り当てられるべきリソースの量に対して限界を指定することもできる。
【0005】
「仮想化」は、概して、コンピューティング・リソースの物理特性を、ほかのシステム、アプリケーション、またはエンド・ユーザがそれらのリソースとインタラクションする方法から隠蔽するためのテクニックを言う。これは、通常、サーバ、オペレーティング・システム、アプリケーション、ストレージ・デバイス等の単一の物理リソースが、複数の論理リソースとして機能するように見せることを含む。仮想化は、また、複数の物理リソースが単一の論理リソースに見えるようにすることも含むことができる。それに加えて、1つの物理リソースが、いくらか異なる特性を伴って1つの論理リソースとして見えるようにすることも含むことができる。
【0006】
仮想化は、基本的に、複数の環境にわたり、単一コンピュータまたはコンピュータのクラスタのリソースを共有することによって1つのコンピュータに複数のコンピュータのジョブを行わせることが可能である。たとえば仮想サーバおよび仮想デスクトップ等の仮想マシンは、ユーザに複数のオペレーティング・システムおよび複数のアプリケーションをホストする能力をローカルおよび遠隔場所の両方で提供可能であり、物理的および地理的制限からユーザを解放する。より効率的なハードウエア・リソースの使用に起因するエネルギの節約およびより低い資本支出に加えて、ユーザは、リソースの高い可用性、より良好なデスクトップ管理、増加した安全性、および改善された災害復旧プロセスを得ることが可能である。
【0007】
仮想マシンは、所定のコンピュータ・システム内における広範多様な目的に役立つ。たとえば仮想マシンを使用して、そのコンピュータ・システムへの同時アクセスを複数のユーザに提供できる。各ユーザは、異なる仮想マシン内でアプリケーションを実行することができ、仮想マシンは、コンピュータ・システム・ハードウエア上における実行についてスケジュールすることができる。以前は別々のコンピュータ・システム上で実行されていたタスクを、仮想マシンを使用して、たとえば各タスクを1つの仮想マシンに割り当て、それらの仮想マシンをより少ないコンピュータ・システム上において実行することによって併合することができる。仮想マシンは、また、増加した可用性の提供に使用することもできる。たとえばコンピュータ・システムが故障した場合に、そのコンピュータ・システム上の仮想マシン内で実行していたタスクを別のコンピュータ・システム上の類似した仮想マシンに転送することができる。
【0008】
仮想サーバの使用は、その仮想サーバによって提供されるサービスの消費者に対して透過的な、ほかの物理サーバまたはリソースへの処理タスクの移行を可能にするが、それにおいては消費者を、ユーザ、プロセス、別のコンピュータ等とすることができる。「消費者」は、通常、電力コントロール・システム内の処理またはサービスを使用する任意のエンティティである。これは、サービス・レベル合意に従ってデータ・センタがサービスを提供する識別済みエンティティである「顧客」と対比される。性能レベルは、概して顧客によって追跡される。
【0009】
仮想サーバは、物理サーバと大きく異なる。仮想サーバは、通常、それにアクセスするエンティティに単一サーバであるように見えるが、実際は物理サーバのパーティションまたはサブセットとなることがある。またそれが単一サーバとして見えるが、実際にはいくつかの物理サーバからなるということもある。仮想サーバは、上で論じたとおりの仮想化プロセスを通じて作られる。
【0010】
したがって所定のデータ・センタにおいて、仮想化は、仮想サーバ等の複数の仮想マシンがデータ・センタ内の同じ物理マシン(1つまたは複数)のCPU、メモリ、ディスク、ネットワーク・リソース等の物理リソースを共有することを可能にする。各仮想マシンは、通常、所定の仮想マシンのためにどの程度の物理リソースが予約されるべきであるかを決定する対応するリソース要件の仕様を有する。
【発明を実施するための形態】
【0018】
図1は、開示されたテクノロジの実施態様に従ってデータ・センタ・アーキテクチャ100の例を図解している。この例においては、データ・センタ・アーキテクチャ100が、サーバ等の複数の物理デバイス102を含む。各物理デバイス102は、特定のサービスを提供することが可能な、クワッド、デュアル、またはシングルコアのコンピューティング・システム等の実際のマシンである。その種の物理デバイス102の例は、一般に、通信サーバ、データベース・サーバ、アプリケーション・サーバ等を含む。各物理デバイス102は、その上で動作している仮想サーバ等の少なくとも1つの仮想マシン104を有するとして図示されている。この例においては、仮想マシン104がオペレーティング・システムの最上位で動作するアプリケーションを含む。
【0019】
この例において仮想マシン104は、サービス/電力コントローラ等の低レベル・モジュール108が、仮想マシンのリソース所要および物理デバイス102のリソースに部分的に基づいて仮想マシン内の処理タスクを物理デバイス102に課することを可能にする。低レベル・モジュール108は、コントローラまたはスケジューラと呼ばれることもある。コントローラ108は、仮想マシンの処理をスケジュールすることが可能であるか、またはコントローラ108は、仮想マシン内において実行されることになる個別のタスクをスケジュールすることが可能である。ここで使用する場合の用語『ジョブ』は、概して仮想マシンまたはスケジュールされているタスクを言う。
【0020】
例においては、コントローラ108が単一のコントローラとして示されているが、当業者は、コントローラ108が実際にいくつかのコンピュータ、処理コア等にわたって分散され得ることを認識するであろう。コントローラ108は、物理デバイス102の間でジョブを移行し、かつ物理デバイス102の電力消費を調整することができる。中央コントローラ108に加えて、個別の物理デバイス102のうちの1つまたは複数が局部コントローラ106を有することがある。物理デバイス102が、この例ではサーバとして図解されているが、電源、ストレージ・アレイまたはそのほかのタイプのストレージ、テープ・デッキ等といったそのほかのタイプのデバイスを含めることができる。
【0021】
中央コントローラ108は、データ・ライン110に結合することができる。データ・センタの機能は、概して何らかの種類のデータ処理を中心に置いており、コントローラは、データ・ラインと同じ電力分配構造内に単に存在するだけのこともあり、または電力コントローラがデータ・ラインの運用を監視するかまたは影響を及ぼすこともある。同様に、電力コントローラが電力ライン112と同じ電力構造内に単に存在するだけのこともあり、またはコントローラ108が電力ライン112を伴ったより能動的な役割につくこともある。電力ライン112は、概して送電線路、変換器、変圧器、および電力スイッチを含む『グリッド』とも呼ばれる局地的電力インフラストラクチャから到来する。
【0022】
図2は、開示されたテクノロジの実施態様に従ったデータ・センタ最適化システム200の例を図解する。例においてデータ・センタ最適化システム200は、データ・センタ管理インターフェース202、データ・センタ顧客登録モジュール204、データ・センタ・リソース最適化モジュール206、およびデータ・センタ顧客費用決定モジュール208を含む。データ・センタ最適化システム200は、たとえば物理デバイスのグループ等の運用センタ210、およびデータ・センタ・リソース利用モデル更新モジュール212も含む。この例では、データ・センタ最適化システム200が、バッチ・ジョブQoSコントロール・モジュール214も含む。
【0023】
この例においては、データ・センタ顧客登録モジュール204を使用し、データ・センタ顧客固有のデータ・センタのサービス・レベル合意(SLA)の実行を容易にすること、およびその顧客のためのデータ・センタ・リソース利用モデルを確立することによって、それぞれの新しいデータ・センタ顧客を登録することが可能である。データ・センタ・リソース利用モデルは、顧客によって要求されるデータ・センタのリソースの定量化を含むことができる。たとえばデータ・センタ顧客登録モジュール204は、データ・センタ顧客に、メモリ、ディスク空間、およびCPU帯域幅等のそれぞれの特定のデータ・センタ・リソースをどの程度、その顧客が要求したいのかについて問い合わせを行うことができる。データ・センタ最適化システム200は、その後、その顧客についてのデータ・センタ顧客プロファイルを作成し、その顧客についてのSLAおよびデータ・センタ・リソース利用モデル両方をデータ・センタ顧客プロファイルの部分としてストアすることができる。
【0024】
図1に図解されているデータ・センタ・アーキテクチャ100等の共有リソース・システムにおいては、サービスの質仕様に従ってデータ・センタ・リソースの使用を慎重に管理することによって同一のデータ・センタ・リソースを伴う複数のジョブを供することが可能である。たとえばデータ・センタ・リソース・プールへの複数ジョブ(または仮想マシン)の統計的パッキングのためのテクニックを、その種のテクニックが、たとえばジョブが必要とするリソースを受けないことになるという許容リスクを指定する仕様等のサービスの質仕様の使用に関係するところに実装することができる。その種のテクニックは、ジョブがサービスの質の多様性を有するとき、かなりのデータ・センタ・リソースを節約することができる。特に、よりリスク耐性のあるジョブは、偶発的な予約として捨て去られる可能性があり、よりリスクを嫌うジョブのデータ・センタ・リソース予約を共有できる。
【0025】
この例においては、データ・センタ・リソース最適化モジュール206が、たとえば所定の顧客のための初期(たとえば最適)データ・センタ・リソース割り付けを、その顧客のSLAおよびデータ・センタ・リソース利用モデルに基づいて決定し、その後そのデータ・センタ・リソース割り付けを、実行のために運用センタ210に割り当てることができる。データ・センタ・リソース割り付けの決定においてデータ・センタ・リソース最適化モジュール206は、メモリおよび処理等のリソースを特定の顧客に提供するといったサービスを行うデータ・センタに対する費用を決定(たとえば評価)することが可能なデータ・センタ顧客費用決定モジュール208とインタラクションすることができる。特定の実施態様においては、データ・センタ・リソース最適化モジュール206が、データ・センタ顧客費用決定モジュール208に特定のデータ・センタ顧客またはデータ・センタ顧客のグループについてのデータ・センタ顧客費用の決定のための要求を送ることができる。
【0026】
顧客費用決定モジュール208が顧客またはグループについてのデータ・センタ顧客費用を決定すると、データ・センタ顧客費用決定モジュール208は、そのデータ・センタ顧客費用をデータ・センタ・リソース最適化モジュール206に提供できる。データ・センタ・リソース最適化モジュール206は、その後そのデータ・センタ顧客費用に基づいてデータ・センタ・リソース割り付けを生成し、そのデータ・センタ・リソース割り付けを、実行のために運用センタ210に割り当てることができる。
【0027】
データ・センタ・リソース利用モデル更新モジュール212は、運用センタ210を監視することができる。運用センタ210の監視に基づいて、データ・センタ・リソース利用モデル更新モジュール212は、データ・センタ顧客登録モジュール204に推奨を提供できる。たとえばデータ・センタ・リソース利用モデル更新モジュール212は、データ・センタ顧客登録モジュール204が特定の顧客についてのデータ・センタ顧客プロファイルを、特定の時間期間にわたるその顧客の運用センタ210の利用を前提に修正することを推奨できる。代替実施態様においては、データ・センタ・リソース利用モデル更新モジュール212が、データ・センタ顧客プロファイルを直接修正すること、または新しく作成したデータ・センタ顧客プロファイルを提供してその顧客についての既存のデータ・センタ顧客プロファイルと置き換えることのいずれも可能である。
【0028】
バッチ・サービスの質(QoS)コントロール・モジュール214をバッチ・ジョブのために使用することが可能である。これはスケジューリングおよび実行する間のサービスの特定の優先度というより、指定された時間までの完了が要求される傾向にあるという点でむしろ独特な属性を有する傾向がある。バッチ・ジョブのためのデータ・センタ・リソース割り付けに関係する状況においては、データ・センタ・リソース予約を各時間スライスに対して行うことが可能であるが、要求をかなり緩和することができる。言い替えると、バッチ・ジョブは、概して柔軟なジョブであり、時間スライスの終了までに高い確度を伴ってそれらのジョブが終了されることを除けば、毎時間スライス・ベースの質の要件が低い。
【0029】
バッチ・ジョブQoSコントロール・モジュール214は、ここに述べられているテクニックを実装し、一方ではより高い優先度のタスクの混合の中においてデータ・センタ・リソースを最適化しつつ、たとえば確率論的なリソース要件またはデッドライン完了仕様を満たすことによってバッチ・ジョブのための上首尾の完了の時間を実質的に保証することが可能である。その種のテクニックは、バッチ・ジョブが短期リスク耐性となり、かつその結果としてそれによって要求されるデータ・センタ・リソースのレベルが下がるように、しかも同時に、そのバッチ・ジョブが高いQoS仕様を伴ってデッドライン等の長期目的を満たすことを可能にするように、QoS共有リソース・システムにおけるバッチ・ジョブの統合を伴うことが可能である。
【0030】
特定の実施態様は、QoS仕様に基づくバッチ・ジョブのためのコントロール・アルゴリズムの実装を含むことができる。ここで使用されるとき、QoS仕様は、バッチ・ジョブの完了のために必要とされるデータ・センタ・リソースおよびそのバッチ・ジョブの上首尾の提供における何らかの不確実性を見込む要素の指定を含むことができる。いくつかの実施態様においては、必要とされるリソースをQoS仕様が指定せず、むしろ、実行時のすべてのバッチ・ジョブの所要の上首尾の提供のために許容される不確実性を指定する。
【0031】
ここで使用されるとき、QoS仕様は、一般にSLAに類似であり、いくつかの実施態様においては同じになることがある。しかしながら、SLAが概してより顧客に近く、また顧客のアプリケーションに関係する点からサービスを記述できることに対して、QoSが概してよりデータ・センタ・リソース最適化に近く、1つまたは複数のデータ・センタ・リソースの点からサービスを記述できることから別々の用語が使用される。QoS仕様がSLAと異なる実施態様においては、部分的にSLAに基づいてQoS仕様を導出することを含む段階があり得る。バッチ・コントロール運用の場合には、ここで使用されるところの用語『即時』および『拡張間隔』QoS仕様を互いに識別することも可能である。
【0032】
コントロール・アルゴリズムを使用して、バッチ・ジョブにとってより自然な『拡張間隔』QoS仕様を達成するために、統計的パッキング・アルゴリズムに頻繁に提供される『即時』QoS仕様の操作を進めることが可能である。特定の実施態様においては、統計的パッキング・アルゴリズムの実装からのデータ・センタ顧客費用フィードバックが、
図2に図解されているとおり、2つの最適化アルゴリズムの連接を提供できる(すなわち、バッチ・ジョブQoSコントロール・モジュール214が、フィードバックをデータ・センタ顧客費用決定モジュール208から受け取る)。
【0033】
いずれも統計的リソース・パッキング・モジュール308によって扱われるトランザクショナル・ジョブ302をはじめバッチ・ジョブ304との使用に適した(
図2のデータ・センタ最適化システム200等の)データ・センタ最適化システムのサブシステム300の例を示している
図3に図解されているとおり、開示されたテクノロジの実施態様は、データ・センタ・アーキテクチャ内に、バッチ・ジョブQoS問題をデータ・センタ・リソース最適化要素(たとえば、統計的パッキング・アルゴリズムの実装)から分離する層を実質的に差し込む。しかしながらバッチ・ジョブ304は、バッチ・ジョブQoSコントロール・モジュール306により実装されるところのバッチ・ジョブQoSコントロール・アルゴリズムによって最初に扱われる。
【0034】
特定の実施態様においては、バッチ・ジョブQoSコントロール・アルゴリズムが、バッチ・ジョブの『拡張間隔』QoS仕様を、拡張間隔のためのジョブのリソース・モデルとともに採用し、個別の時間スライスに適用されることになるそのバッチ・ジョブのための一連の『即時』QoS仕様を適応的に作り出すことが可能である。これらの『即時』QoS仕様は、通常、『拡張間隔』QoSよりはるかに柔軟となり、したがって効果的な統計的パッキングを容易にすることになる。システムのアーキテクチャ内に差し込まれる層は、『拡張間隔』QoS仕様を直接最適化する必要性から統計的パッキング・アルゴリズムを好適に解放し、むしろこの場合には、これらの『拡張間隔』QoS仕様を『即時』QoS仕様に翻訳する、より高いレベルのコントロールの層が存在し、それが統計的パッキング・アルゴリズムの実装への入力(およびそれの動作)を有意に単純化する。
【0035】
図4は、開示されたテクノロジの実施態様に従って、たとえばバッチ・ジョブQoSコントロール・モジュールを介したバッチ・ジョブQoSコントロール・アルゴリズムの実装に関係する方法400の例を図解したフローチャートである。この例においては、共有データ・センタ・リソース・システムが、時間スライス(たとえば、毎3分時)内にデータ・センタ・リソースを予約し、かつトランザクショナル・ジョブおよびバッチ・ジョブの両方を提供するが、それにおいて各ジョブは、その時間スライス内にそのジョブが必要とするデータ・センタ・リソースが提供されないことになる許容失敗確度pを含むことができる即時QoS仕様を有する。たとえば上で述べたような統計的パッキング・アルゴリズムの実装は、ジョブのグループのための低減されたデータ・センタ・リソース要件に到達するために、ジョブのデータ・センタ・リソース所要の確度およびモデルを含む即時QoS仕様を好適に結合することができる。
【0036】
たとえば毎時間スライスの許容提供不足の確度pを指定することは、トランザクショナル・ジョブについては自然なQoS問題となり得るが、それが、より長い時間期間よりは終了時における完了が問題となり得るバッチ・ジョブと直接関係しない。その種のジョブのために、開示されたテクノロジは、『拡張間隔』QoSと呼ぶことができる、それらのバッチ・ジョブ用の異なる種類のQoS仕様が存在するという仮定を伴うことができる。1つの例示的な実施態様においては、拡張間隔QoS仕様が、たとえばn時間スライスの後の時間区間の終了までにそのジョブが完了されないことになる許容失敗確度qを含むことができる。
【0037】
ステップ402においては、バッチ・ジョブQoSコントロール・アルゴリズムの実装(たとえば、
図2のバッチ・ジョブQoSコントロール・モジュール214または
図3のバッチ・ジョブQoSコントロール・モジュール306によって実装されるところのもの)が、あらかじめわかる所定のバッチ・ジョブの合計のデータ・センタ・リソース所要(たとえば、データ・センタ・リソース需要)がTであることが既知であり、そのバッチ・ジョブのデッドライン(たとえば、バッチ・ジョブの完了のための)がn時間スライス内であり、かつ拡張間隔QoS内における許容失敗がqであるとの決定を最初に伴う。例示の目的のため、Tが、そのバッチ・ジョブによって必要とされる合計の計算リソースを表すと考えることができる。当業者は理解することになろうが、Tがディスク帯域幅またはネットワーク帯域幅等のそのほかのリソース所要も表すことが可能であるか、またはそれをバッチ・ジョブによってすべて必要とされるいくつかのリソース・タイプのベクトルとすることが可能である。
【0038】
ステップ404においてはバッチ・ジョブQoSコントロール・アルゴリズムの実装が、pとともに即時間隔QoS内に提出されるべき、次の時間スライスのための初期データ・センタ・リソース予約Sを決定することが可能であり、これは、たとえばパッキングを容易にするためにqよりはるかに大きく選択される入力パラメータである。例においては、その後バッチ・ジョブQoSコントロール・モジュールが、各時間スライスについてのデータ・センタ・リソース予約Sを、次式に従って、失敗がmまたはそれより少ないとする確度が、要求される成功レート(1‐q)より大きいかまたは等しくなるような最少失敗数mを見つけることによって決定できる。
【0040】
ステップ408においては、バッチ・ジョブQoSコントロール・アルゴリズムの実装が、その時間スライスについての最終データ・センタ・リソース割り付けSを、バッチ・ジョブがmの失敗を伴うことはあっても完了するように、次式に従って決定できる。
【0042】
したがってこの例においては、バッチ・ジョブQoSコントロール・アルゴリズムの実装が、先行する時間スライスの中で何らかの進捗がなされたことを反映する残存リソース要件Tの新しい値に基づき、データ・センタ・リソース予約Sの決定を時間スライスごとに反復することができる。ステップ408においては、バッチ・ジョブQoSコントロール・モジュールが、オプションとしてバッチ・ジョブの進捗に基づいてデータ・センタ・リソース予約Sを調整することができる。たとえば特定時間スライスの間にバッチ・ジョブがデータ・センタ・リソースの獲得に多数の失敗を積み重ねている場合に、バッチ・ジョブQoSコントロール・モジュールは、そのバッチ・ジョブの完了を保証するために(たとえば、ジョブのデッドラインに応じて)データ・センタ・リソース予約Sを増加することが可能である。代替として、各時間スライスにわたってバッチ・ジョブが進捗している状況においては、バッチ・ジョブQoSコントロール・モジュールが、データ・センタ・リソース予約Sを減少することが可能である。
【0043】
この種のSの閉ループ・コントロールは、いくつかの点において保守的であると考えることができる。第1に、バッチ・ジョブQoSコントロール・モジュールは、特定の時間スライス内で即時QoSが失敗するときはTにおける進捗がまったくなされていないと仮定して計画しており、実際に、バッチ・ジョブに提供されている部分的なデータ・センタ・リソースに関係する即時QoSの失敗がしばしば存在することになろう。第2に、Sを動的に修正することによってバッチ・ジョブQoSコントロール・モジュールは、失敗の実際の確度を、Sの単一計算を用いる開ループ実行について概して正確である、上で論じた式によって予測されるところの確度より下に減少させることができる。
【0045】
上で論じた実施態様は、QoSコントロール・モジュールの動作に先行してTが既知であるという仮定を含んでいた。しかしながら概して、開示されたテクノロジの実装は、Tについての確率論的モデルを含む。したがってバッチ・ジョブQoSコントロール・アルゴリズムを拡張し、Tに不確実性が存在する場合であっても『拡張間隔』QoSを達成することができる。たとえばTの可能値の分布が決定可能であれば、システムは、その分布に照らしてどのようなSがあるべきかを決定することが可能である。
【0046】
Tに対するフィードバックを含む例示的な実施態様
【0047】
特定の実施態様においては、バッチ・ジョブを、その進捗の動的な評価を提供するべく組み立てることが可能であり、そこから残存するTの評価が計算できるか、またはその組み立てがバッチ・ジョブの実行に従って残存するTの直接評価を提供することができる。その種の実施態様においては、そのようにSの動的な計算の中に情報を含めることができる。
【0048】
より精密なSの計算を含む例示的な実施態様
【0049】
上で論じた実施態様においては、QoSコントロール計画が、Sの計算が各時間スライスで反復される場合であっても概して残りの時間スライスにわたってSが一定のままであるということを(保守的に)仮定している。しかしながらSについての計画がSに対する将来の閉ループ調整を考慮に入れると、さらに良好な性能を達成することが可能である。当業者は認識することになろうが、失敗の確度に等価の閉ループは、必ずしも閉じた形式である必要はなく、むしろ動的なプログラミングを介して計算が可能である。これは、都合よく、バッチ・ジョブQoSコントロール・アルゴリズムの実装がわずかに保守的でなくなることを(たとえば、Sが以前の結果に属する情報に基づいて再調整されるという知識から)可能にし、それによってさらに多くのデータ・センタ・リソースを節約することができる。
【0050】
Sおよびp両方の操作を含む例示的な実施態様
【0051】
上で論じた実施態様においては、即時QoS仕様が一定のpを含み、Sに対する動的調整を行ってバッチ・ジョブが、それの拡張間隔QoSに従って完了されることを保証していた。代替実施態様は、変動するpを即時QoS内に含むことができる。たとえばシステムは、より大きなp(すなわち許容される失敗)を許しつつ、より多くのSを各時間スライス内に割り付ける(すなわち、より大きなSを求める)ことができる。その種の実装は、したがって、即時QoS仕様のための解のパラメータ化されたファミリ(p,S)の生成に使用することが可能である。これはいくつかの点で有利となり得る。
【0052】
たとえば、バッチ・ジョブがそれの拡張間隔の終了に近づくに従って、バッチ・ジョブQoSコントロール・モジュールは、Sを増加してジョブが完了することを保証できる。特定の時間スライスにおいて利用可能な(または使用可能な)データ・センタ・リソースの量に上限が存在する場合には、解のパラメータ化されたファミリが、そのジョブの完了の保証に求められるSのサイズを制限するpの減少を容易にすることが可能である。また、統計的パッキング・モジュールが(p,S)に基づく原価計算を提供する場合には、バッチ・ジョブQoSコントロール・モジュールが、解のパラメータ化されたファミリの中で(p,S)の選択を最適化できる。統計的パッキング・モジュールからQoSバッチ・コントロール・モジュールへのその種の『価格信号』は、好適に、これら2つのモジュールが良好な合併された最適化を達成することを、より複雑な組み合わせ最適化問題の解決を必要とすることなく可能にすることができる。
【0053】
図5は、開示されたテクノロジの実施態様に従って30の時間スライスの期間にわたりバッチ・ジョブのためにデータ・センタ・リソース予約Sを調整する第1の例を図解したグラフ500である。この例において、各点は、対応する時間スライスについての(すなわち、x軸に沿った)バッチ・ジョブのためのデータ・センタ・リソース割り付けSを表す。実線はバッチ・ジョブの進捗を表し、1番目の時間スライスにおけるデータ・センタ・リソース所要が合計のデータ・センタ・リソース所要Tである。バッチ・ジョブが進捗するに従って、データ・センタ・リソース割り付けSが、バッチ・ジョブによってなされた進捗に応答して調整される。この例においては、データ・センタ・リソース割り付けSが、バッチ・ジョブがそれの完了のデッドラインに近づいていることから20番目の時間スライスの当たりで顕著に増加しているが、データ・センタ・リソース割り付けSの調整なしでは、デッドラインを満足する充分な進捗がなされない。
【0054】
図6は、開示されたテクノロジの実施態様に従って30の時間スライスの期間にわたりバッチ・ジョブのためにデータ・センタ・リソース予約Sを調整する第2の例を図解したグラフ600である。
図5の場合と同じく、
図6のグラフ600の各点は、対応する時間スライスについての(すなわち、x軸に沿った)バッチ・ジョブのためのデータ・センタ・リソース割り付けSを表す。バッチ・ジョブが進捗するに従って、データ・センタ・リソース割り付けSが、バッチ・ジョブによってなされた進捗に応答して調整される。この例においては、データ・センタ・リソース割り付けSがバッチ・ジョブの実行全体の間にわたって極めて一定に保たれており、特に5番目と10番目の間の時間スライスでバッチ・ジョブに有意の進捗があると見られる。