IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7465045異常イベントに対する仮想マシンの処理能力の増加
<>
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図1
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図2
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図3
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図4
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図5
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図6
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図7
  • 特許-異常イベントに対する仮想マシンの処理能力の増加 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-02
(45)【発行日】2024-04-10
(54)【発明の名称】異常イベントに対する仮想マシンの処理能力の増加
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240403BHJP
【FI】
G06F9/50 120A
【請求項の数】 18
(21)【出願番号】P 2021544753
(86)(22)【出願日】2020-01-28
(65)【公表番号】
(43)【公表日】2022-03-18
(86)【国際出願番号】 EP2020052028
(87)【国際公開番号】W WO2020160961
(87)【国際公開日】2020-08-13
【審査請求日】2022-06-22
(31)【優先権主張番号】16/268,059
(32)【優先日】2019-02-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】サットン、ピーター、グリム
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2006-323872(JP,A)
【文献】特表2015-532754(JP,A)
【文献】再公表特許第2014/147802(JP,A1)
【文献】特開2008-108261(JP,A)
【文献】特開2002-202959(JP,A)
【文献】米国特許第08060610(US,B1)
【文献】特開2012-190109(JP,A)
【文献】米国特許出願公開第2008/0104245(US,A1)
【文献】米国特許出願公開第2014/0059542(US,A1)
【文献】米国特許出願公開第2008/0082983(US,A1)
【文献】米国特許出願公開第2014/0007097(US,A1)
【文献】米国特許出願公開第2013/0144744(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ実行方法であって、プロセッサを使用して、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することであって、プロセッサ・ユニットの前記セットが、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備え、前記1つまたは複数の第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記提供することと、
アクティブ状態の前記1つまたは複数の第1のコアを伴うプロセッサ・ユニットの前記セットを備える計算リソースの前記第1のセットを、前記DPS上でホストされるパーティションにアロケートすることと、
前記1つまたは複数の第2のコアがアクティブ化される前、前記1つまたは複数の第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させることをリソース・マネージャによって決定することと、
前記パーティション内のオペレーティング・システムまたはアプリケーションによって前記異常イベントを検出することであって、
前記増加の前記決定が、前記異常イベントを検出した前記パーティションの前記オペレーティング・システムまたは前記アプリケーションによってリクエストされた増加リクエストに基づき、
前記異常イベントは、前記異常イベントが検出されたパーティション内で生じている、
前記検出することと、
前記増加の前記決定に応答して、前記非アクティブ状態から前記アクティブ状態に前記1つまたは複数の第2のコアをアクティブ化することと、
前記1つまたは複数の第2のコアがアクティブ化された後、前記1つまたは複数の第1のコアと前記1つまたは複数の第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第2のコアを非アクティブ化することと
を含む、方法。
【請求項2】
前記1つまたは複数の第2のコアが、前記パーティションをホストしている前記DPSの一部である、請求項1に記載の方法。
【請求項3】
前記増加の前記決定が、前記リソース・マネージャによって受け取られた増加リクエストに基づく、請求項1または2に記載の方法。
【請求項4】
前記異常イベントが、前記パーティションで実行するオペレーティング・システム・インスタンスの初期プログラム・ロードである、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記所定の判断基準が、前記異常イベントの完了である、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記所定の判断基準が、前記1つまたは複数の第2のコアをアクティブ化してからの所定の持続期間、およびプロセッサ出力の所定の量の使用のうちの少なくとも1つである、請求項1~4いずれか1項に記載の方法。
【請求項7】
前記異常イベントの所定の負荷要件または検出した負荷要件のうちの少なくとも1つに基づいて、前記パーティションのためにアクティブ化することになる追加の非アクティブコアの数を決定することをさらに含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記パーティションについての所定の優先度値、または前記パーティションに関連付けられた履歴データのうちの少なくとも1つに基づいて、前記パーティションのためにアクティブ化することになる前記1つまたは複数の第2のコアの数を、前記リソース・マネージャによって決定することをさらに含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記リソース・マネージャが、前記パーティションの作成、終了、および動作を監督するハイパーバイザを含む、請求項8に記載の方法。
【請求項10】
前記パーティションの作成、終了、および動作を監督するハイパーバイザによって前記異常イベントを検出することをさらに含み、前記増加の決定が、前記ハイパーバイザが前記異常イベントを検出することに基づく、請求項1~のいずれか1項に記載の方法。
【請求項11】
異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ実行方法であって、プロセッサを使用して、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することであって、プロセッサ・ユニットの前記セットが、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備え、前記1つまたは複数の第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記提供することと、
アクティブ状態の前記1つまたは複数の第1のコアを伴うプロセッサ・ユニットの前記セットを備える計算リソースの前記第1のセットを、前記DPS上でホストされるパーティションにアロケートすることと、
前記1つまたは複数の第2のコアがアクティブ化される前、前記1つまたは複数の第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させることを、リソース・マネージャによって決定することと、
前記増加の前記決定に応答して、前記非アクティブ状態から前記アクティブ状態に前記1つまたは複数の第2のコアをアクティブ化することと、
前記1つまたは複数の第2のコアがアクティブ化された後、前記1つまたは複数の第1のコアと前記1つまたは複数の第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第2のコアを非アクティブ化することと、
を含み、
前記パーティション、もしくは前記パーティションで動く動作、またはその両方が、別個のコア上でそれぞれ動くことができる複数のスレッドとともに動くことができると判定した場合に、前記処理能力を増加させることを決定する、方法。
【請求項12】
異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ実行方法であって、プロセッサを使用して、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することであって、プロセッサ・ユニットの前記セットが、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備え、前記1つまたは複数の第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記提供することと、
アクティブ状態の前記1つまたは複数の第1のコアを伴うプロセッサ・ユニットの前記セットを備える計算リソースの前記第1のセットを、前記DPS上でホストされるパーティションにアロケートすることと、
前記1つまたは複数の第2のコアがアクティブ化される前、前記1つまたは複数の第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させることを、リソース・マネージャによって決定することと、
前記増加の前記決定に応答して、前記非アクティブ状態から前記アクティブ状態に前記1つまたは複数の第2のコアをアクティブ化することと、
前記1つまたは複数の第2のコアがアクティブ化された後、前記1つまたは複数の第1のコアと前記1つまたは複数の第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第2のコアを非アクティブ化することと、
前記パーティションへの計算リソースの追加と時間内に重複する第2の異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して第2のパーティションのために処理能力を増加させることを、前記リソース・マネージャによって決定することと、
前記第2のパーティションのための前記増加の前記決定に応答して、a)アクティブ化された前記1つもしくは複数の第2のコアによって提供されるリソースを増加させること、またはb)前記第2のパーティションに1つもしくは複数の第3のコアをアロケートすること、からなるグループから選択される、前記第2のパーティションにさらなるリソースを提供することと、
前記1つまたは複数の第3のコアがアクティブ化された後、前記パーティションにおける前記1つもしくは複数の第1のコア、または前記1つもしくは複数の第2のコアのうちの少なくとも1つと時間的に重複する前記第2のパーティションにおける前記1つまたは複数の第3のコアを使用して、前記第2のパーティションを動作させることと、
第2の所定の判断基準に応じて、a)アクティブ化された前記1つもしくは複数の第2のコアによって提供されたリソースを減少させること、またはb)前記第2のパーティションからの前記1つもしくは複数の第3のコアのアロケートを取り消すこと、からなるグループから選択される、前記第2のパーティションに以前に提供された前記さらなるリソースを除去することと
を含む、方法。
【請求項13】
前記1つまたは複数の第3のコアの前記アロケートが、前記非アクティブ状態から前記アクティブ状態に1つまたは複数の第3のコアをアクティブ化することを含み、
前記1つまたは複数の第3のコアの前記アロケート取消しが、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第3のコアを非アクティブ化することを含む、請求項12に記載の方法。
【請求項14】
前記1つまたは複数の前記第3のコアの前記アロケートが、前記パーティションから前記第2のパーティションに前記第2のコアのうちの1つまたは複数を部分的または完全に再割当てすることを含み、
前記1つまたは複数の第3のコアの前記アロケート取消しが、前記第2のパーティションから前記1つまたは複数の第3のコアの再割当てを取り消すことを含む、請求項12に記載の方法。
【請求項15】
異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ実行方法であって、プロセッサを使用して、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することであって、プロセッサ・ユニットの前記セットが、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備え、前記1つまたは複数の第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記提供することと、
アクティブ状態の前記1つまたは複数の第1のコアを伴うプロセッサ・ユニットの前記セットを備える計算リソースの前記第1のセットを、前記DPS上でホストされるパーティションにアロケートすることと、
前記1つまたは複数の第2のコアがアクティブ化される前、前記1つまたは複数の第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させることをリソース・マネージャによって決定することと、
前記パーティション内のオペレーティング・システムまたはアプリケーションによって前記異常イベントを検出することであって、
前記増加の前記決定が、前記異常イベントを検出した前記パーティションの前記オペレーティング・システムまたは前記アプリケーションによってリクエストされた増加リクエストに基づき、
前記異常イベントは、前記異常イベントが検出されたパーティション内で生じている、
前記検出することと、
前記増加の前記決定に応答して、前記非アクティブ状態から前記アクティブ状態に前記1つまたは複数の第2のコアをアクティブ化することと、
前記1つまたは複数の第2のコアがアクティブ化された後、前記1つまたは複数の第1のコアと前記1つまたは複数の第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第2のコアを非アクティブ化することと、
前記1つまたは複数の第2のコアのアクティブ化および非アクティブ化に関連して、前記異常イベントに関する時間的な情報のロギング、追跡、または検査のうちの少なくとも1つを実施することと
を含む、方法。
【請求項16】
異常イベントによってトリガされた仮想マシンの増加した処理能力を測定し、レポートするためのコンピュータ実行方法であって、プロセッサを使用して、
異常イベントの発生によってトリガされた、パーティションのための処理能力の増加のために、追加のリソースが前記パーティションに適用されたと判定することと、
前記追加のリソースの前記適用の範囲および持続期間を決定することと、
前記追加のリソースのアクティブ化および非アクティブ化に関連して、前記異常イベントに関する時間的な情報のロギング、追跡、または検査のうちの少なくとも1つを実施することと
を含み、
前記異常イベントは、前記パーティション内のオペレーティング・システムまたはアプリケーションによって検出され、
前記処理能力の前記増加が、前記異常イベントを検出した前記パーティションの前記オペレーティング・システムまたは前記アプリケーションによってリクエストされた増加リクエストに基づき、
前記異常イベントは、前記異常イベントが検出されたパーティション内で生じている、
方法。
【請求項17】
異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ・システムであって、命令を実行するように構成されたプロセッサを備え、前記命令は、前記プロセッサ上で実行されると、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することであって、プロセッサ・ユニットの前記セットが、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備え、前記1つまたは複数の第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記提供することと、
アクティブ状態の前記1つまたは複数の第1のコアを伴うプロセッサ・ユニットの前記セットを備える計算リソースの前記第1のセットを、前記DPS上でホストされるパーティションにアロケートすることと、
前記1つまたは複数の第2のコアがアクティブ化される前、前記1つまたは複数の第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させることをリソース・マネージャによって決定することと、
前記パーティション内のオペレーティング・システムまたはアプリケーションによって前記異常イベントを検出することであって、
前記増加の前記決定が、前記異常イベントを検出した前記パーティションの前記オペレーティング・システムまたは前記アプリケーションによってリクエストされた増加リクエストに基づき、
前記異常イベントは、前記異常イベントが検出されたパーティション内で生じている、
前記検出することと、
前記増加の前記決定に応答して、前記非アクティブ状態から前記アクティブ状態に前記1つまたは複数の第2のコアをアクティブ化することと、
前記1つまたは複数の第2のコアがアクティブ化された後、前記1つまたは複数の第1のコアと前記1つまたは複数の第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記1つまたは複数の第2のコアを非アクティブ化することと
を前記プロセッサに行わせる、コンピュータ・システム。
【請求項18】
コンピュータ・プログラムであって、
プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)上でホストされるパーティションにアロケートすることであって、プロセッサ・ユニットの前記セットが、アクティブ状態の第1のコア、および当初は非アクティブ状態の第2のコアを備え、前記第2のコアが、前記非アクティブ状態の間は利用可能でないが、一定の条件下において利用可能となる、アクティブ化可能なリソースに相当する、前記アロケートすることと、
前記第2のコアがアクティブ化される前、前記第1のコアを使用して前記パーティションを動作させることと、
異常イベントの発生に基づいて、前記アクティブ化可能なリソースを利用して前記パーティションのために処理能力を増加させるために、増加リクエストをリソース・マネージャによって受け取ることと、
前記パーティション内のオペレーティング・システムまたはアプリケーションによって前記異常イベントを検出することであって、
前記増加の前記決定が、前記異常イベントを検出した前記パーティションの前記オペレーティング・システムまたは前記アプリケーションによってリクエストされた増加リクエストに基づき、
前記異常イベントは、前記異常イベントが検出されたパーティション内で生じている、
前記検出することと、
前記増加リクエストに応答して、前記非アクティブ状態から前記アクティブ状態に前記第2のコアをアクティブ化することと、
前記第2のコアがアクティブ化された後、前記第1のコアと前記第2のコアの両方を使用して前記パーティションを動作させることと、
所定の判断基準に応じて、前記アクティブ状態から前記非アクティブ状態に前記第2のコアを非アクティブ化することと
をコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムに関する。
【背景技術】
【0002】
データ処理システムであって、異常イベントが発生したときに、データ処理システムの対応するパーティション上で実行している1つまたは複数の仮想マシンの処理能力を動的に増加させるためのデータ処理システムを本明細書で開示する。
【0003】
組織は、一般に、製品の製造、サービスの実施、内部活動、および他の適切な動作の際に、ネットワーク・データ処理システムを使用する。組織によっては、ハードウェアおよびソフトウェアが組織によって所有され、維持されるネットワーク・データ処理システムを使用するものもある。これらのタイプのネットワーク・データ処理システムは、ローカル・エリア・ネットワーク、広域ネットワーク、および他の適切な形をしていてもよい。これらのタイプのネットワークでは、リソースを維持し、管理する負担が組織にかかる。場合によっては、組織は、ネットワーク・データ処理システムのメンテナンスを外部委託することもある。他の組織は、ハードウェアおよびソフトウェアがサード・パーティによって置かれ、維持されることがあるネットワーク・データ処理システムを使用することもある。このタイプの組織に関して言えば、組織は、コンピュータ・システムを使用して、ネットワーク・データ処理システムにアクセスする。このタイプのアーキテクチャに関して言えば、組織には、使用し、維持するべきハードウェアが少ない。
【0004】
また、このタイプのネットワーク・データ処理システムは、クラウドと呼ばれることがある。クラウド環境では、クラウドは、インターネットを通じてアクセスされることが多く、組織は、コンピュータまたは簡単なネットワーク・データ処理システムを使用して、これらのリソースにアクセスする。さらに、クラウドに関して言えば、組織に提供される計算リソースの数が動的に変化することがある。例えば、組織が、より多くの計算リソースを必要とすると、組織は、これらの計算リソースをリクエストすることができる。
【0005】
結果として、クラウドを使用する組織は、ハードウェアおよびソフトウェアを所有しない。さらに、これらの組織は、計算リソースのメンテナンスのための設備投資および費用を避ける。組織は、使用した計算リソースの代金を支払う。組織は、実際の処理時間およびストレージ空間、または他のリソース使用など、実際に使用したリソースに基づいて支払うこともある。また、組織は、定額の計算リソースの代金を定期的に支払うこともある。例えば、組織は、選択した量のストレージおよび処理能力の代金を毎月支払うこともある。この使用量は、電気またはガスなどのリソースに似ている。
【0006】
本開示は、クラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で列挙される教示についての実装形態は、クラウド・コンピューティング環境に限定されない。むしろ、実施形態は、現在知られているか、後で開発される他の任意のタイプのコンピューティング環境とともに実装することができる。
【発明の概要】
【0007】
1つまたは複数の実施形態によれば、コンピュータ実行方法は、プロセッサを使用して、プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS:data processing system)内で提供することを含む。プロセッサ・ユニットのセットは、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備える。1つまたは複数の第2のコアは、非アクティブ状態の間、プロセッサ・ユニットのセット内に予め存在している潜在的なCPU能力(LCC:latent CPU capacity)に相当する。プロセッサは、アクティブ状態の1つまたは複数の第1のコアを伴うプロセッサ・ユニットのセットを備える計算リソースの第1のセットを、DPS上でホストされるパーティションにアロケートする。パーティションは、1つまたは複数の第2のコアがアクティブ化される前、1つまたは複数の第1のコアを使用して動作する。リソース・マネージャは、異常イベントの発生に基づいて、LCCを利用してパーティションのために処理能力を増加させるべきかどうかを決定する。増加の決定に応答して、プロセッサは、非アクティブ状態からアクティブ状態に1つまたは複数の第2のコアをアクティブ化する。パーティションは、次に、1つまたは複数の第2のコアがアクティブ化された後、1つまたは複数の第1のコアと1つまたは複数の第2のコアの両方を使用して動作する。所定の判断基準に応じて、1つまたは複数の第2のコアは、アクティブ状態から非アクティブ状態に非アクティブ化される。
【0008】
1つまたは複数の実施形態によれば、コンピュータ実行方法は、プロセッサを使用して、プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することを含み、プロセッサ・ユニットのセットは、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備える。1つまたは複数の第2のコアは、非アクティブ状態の間、プロセッサ・ユニットのセット内に予め存在している潜在的なCPU能力(LCC)に相当する。プロセッサは、アクティブ状態の1つまたは複数の第1のコアを伴うプロセッサ・ユニットのセットを備える計算リソースの第1のセットを、DPS上でホストされるパーティションにアロケートする。パーティションは、1つまたは複数の第2のコアがアクティブ化される前、1つまたは複数の第1のコアを使用して動作する。リソース・マネージャは、異常イベントの発生に基づいて、LCCを利用してパーティションのために処理能力を増加させるべきかどうかを決定する。増加の決定に応答して、1つまたは複数の第2のコアは、非アクティブ状態からアクティブ状態にアクティブ化される。パーティションは、次に、1つまたは複数の第2のコアがアクティブ化された後、1つまたは複数の第1のコアと1つまたは複数の第2のコアの両方を使用して動作する。所定の判断基準に応じて、1つまたは複数の第2のコアは、アクティブ状態から非アクティブ状態に非アクティブ化される。プロセッサは、1つまたは複数の第2のコアのアクティブ化および非アクティブ化に関連して、情報のロギング、追跡、または検査のうちの少なくとも1つを実施する。
【0009】
1つまたは複数の実施形態によれば、異常イベントによってトリガされた仮想マシンの増加した処理能力を測定し、レポートするためのコンピュータ実行方法は、プロセッサを使用して、異常イベントの発生によってトリガされた、パーティションのための処理能力の増加のために、追加のリソースがパーティションに適用されたと判定することを含む。プロセッサは、次に、追加のリソースの適用の範囲および持続期間を決定することと、追加の処理リソースのアクティブ化および非アクティブ化に関連して、情報のロギング、追跡、または検査のうちの少なくとも1つを実施することとを行う。
【0010】
1つまたは複数の実施形態によれば、異常イベントのために仮想マシンの処理能力を増加させるためのコンピュータ・システムを提供する。コンピュータ・システムは、命令を実行するように構成されたプロセッサを備え、命令は、プロセッサ上で実行されると、プロセッサ・ユニットのセットを備える計算リソースの第1のセットを、データ処理システム(DPS)内で提供することをプロセッサに行わせる。プロセッサ・ユニットのセットは、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備える。1つまたは複数の第2のコアは、非アクティブ状態の間、プロセッサ・ユニットのセット内に予め存在している潜在的なCPU能力(LCC)に相当する。システムは、アクティブ状態の1つまたは複数の第1のコアを伴うプロセッサ・ユニットのセットを備える計算リソースの第1のセットを、DPS上でホストされるパーティションにアロケートする。システムは、1つまたは複数の第2のコアがアクティブ化される前、1つまたは複数の第1のコアを使用してパーティションを動作させる。リソース・マネージャは、異常イベントの発生に基づいて、LCCを利用してパーティションのために処理能力を増加させるべきかどうかを決定する。増加の決定に応答して、システムは、非アクティブ状態からアクティブ状態に1つまたは複数の第2のコアをアクティブ化し、1つまたは複数の第2のコアがアクティブ化された後、1つまたは複数の第1のコアと1つまたは複数の第2のコアの両方を使用してパーティションを動作させる。所定の判断基準に応じて、システムは、アクティブ状態から非アクティブ状態に1つまたは複数の第2のコアを非アクティブ化する。
【0011】
1つまたは複数の実施形態によれば、コンピュータ・プログラム製品は、プロセッサ上で実行されると、データ処理システム(DPS)内で提供するためのコンピュータ可読プログラム・コードが具現化されたコンピュータ可読ストレージ媒体を備える。計算リソースの第1のセットは、プロセッサ・ユニットのセットを備え、プロセッサ・ユニットのセットは、アクティブ状態の1つまたは複数の第1のコア、および当初は非アクティブ状態の1つまたは複数の第2のコアを備える。1つまたは複数の第2のコアは、非アクティブ状態の間、プロセッサ・ユニットのセット内に予め存在している潜在的なCPU能力(LCC)に相当する。プロセッサは、プログラム・コードを使用して、アクティブ状態の1つまたは複数の第1のコアを伴うプロセッサ・ユニットのセットを備える計算リソースの第1のセットを、DPS上でホストされるパーティションにアロケートすることと、第2のコアがアクティブ化される前、第1のコアを使用してパーティションを動作させることとを行う。コードは、異常イベントの発生に基づいて、LCCを利用してパーティションのために処理能力を増加させるために、リソース・マネージャが増加指示を受け取ることを可能にする。コードは、増加リクエストに応答して、非アクティブ状態からアクティブ状態に第2のコアをアクティブ化し、第2のコアがアクティブ化された後、第1のコアと第2のコアの両方を使用してパーティションを動作させるようにプロセッサに指図する。コードは、所定の判断基準に応じて、アクティブ状態から非アクティブ状態に第2のコアを非アクティブ化するようにプロセッサに指図する。
【0012】
さらなる特徴および長所が、本発明の技法によって実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明され、特許請求される発明の一部とみなされる。この長所および特徴とともに本発明をより良く理解するために、説明および図面を参照する。
【0013】
以下の詳細な説明は、添付の図面とともに行われ、下記で直接、簡単に説明され、以下で、より詳細に論じられることがある。
【図面の簡単な説明】
【0014】
図1】本明細書で開示された1つまたは複数の実施形態による、クラウド・コンピューティング環境の例を示す絵図である。
図2】本明細書で開示された1つまたは複数の実施形態による、抽象化モデル層の例の絵図である。
図3】本明細書で開示された1つまたは複数の実施形態による、DPSのブロック図である。
図4】本明細書で開示された1つまたは複数の実施形態による、リソース管理環境のブロック図である。
図5】本明細書で開示された1つまたは複数の実施形態による、DPS内のリソース管理モジュールのブロック図である。
図6】本明細書で開示された1つまたは複数の実施形態による、DPS内のパーティションのセットのブロック図である。
図7】本明細書で開示された1つまたは複数の実施形態による、特定のイベント処理中にプロセッサ・コアの処理能力を増加させるための実例の方法の流れ図である。
図8】本明細書で開示された1つまたは複数の実施形態による、特定のイベント処理中にプロセッサ・コアの処理能力を増加させるための別の方法の例の流れ図である。
【発明を実施するための形態】
【0015】
本明細書で開示した1つまたは複数の実施形態は、異常イベントの検出後、追加の計算リソースの配信を容易にすることができる。典型的なコンピューティング・システムは、様々な異常イベントの後、パフォーマンスが低下する。また、低下したパフォーマンスは、診断情報の収集、ハードウェアおよびソフトウェア・サービス・パッチの適用、このような異常イベント後の更新、ならびに、システム機能停止からの回復により、引き起こされることもある。診断情報の収集は、ダンプおよびトレースの収集を含むことができる。
【0016】
異常イベントからの回復には、例えば、トリガされたIPL、または、コンピューティング・システムの1つもしくは複数のパーティションのブートにより、かなりの時間およびリソースが、さらにかかることがある。このような動作(診断情報の収集/回復)は、通常動作中の典型的な予想システム・ワークロードを上回るワークロードを含むことがあるので、追加の時間が必要になることがある。代替としてまたはさらに、初期プログラム・ロード(ブート)、または予定の更新/パッチなどの、計画イベントにより、コンピューティング・システムのパフォーマンスが低下することがある。低下したパフォーマンスの持続期間を軽減するため、および、機能停止後、または追加のワークロードを含む予定の動作中に、パフォーマンスの向上を可能にするために、追加の計算リソースをコンピューティング・システムに追加することができる。
【0017】
以下の定義を下記で使用する。
【0018】
【表1】
【0019】
以下の頭字語を下記で使用することがある。
【0020】
【表2】
【0021】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で列挙される教示の実装形態は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているか、後で開発される他の任意のタイプのコンピューティング環境とともに実装することができる。
【0022】
クラウド・コンピューティングは、最低限の管理努力、またはサービスの提供者との対話により、迅速に提供し、公開することが可能な、構成可能な計算リソースの共用プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)への便利なオン・デマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの導入モデルを含むことができる。
【0023】
特性は、以下のようなものである。
オン・デマンド・セルフサービス:クラウドの利用者は、サービスの提供者との人間対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的に提供することができる。
ブロード・ネットワーク・アクセス:能力は、ネットワークで利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準メカニズムを通じてアクセスされる。
リソース・プーリング:プロバイダの計算リソースは、マルチ・テナント・モデルを使用して複数の利用者に供給するためにプールされ、異なる物理および仮想リソースが、需要に応じて動的に割り当てられ、再割当てされる。利用者には、一般に、提供されたリソースの正確な位置についての制御権も知識もないが、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)で位置を特定できることがあるという位置独立の感覚(a sense of location independence)がある。
迅速な伸縮性(rapid elasticity):能力は、素早くスケール・アウトするために迅速かつ伸縮自在に、場合によっては自動的に提供すること、および、素早くスケール・インするために迅速に公開することができる。利用者にとって、提供するために利用可能な能力は、無制限のように見えることが多く、いつでも任意の量で購入することができる。
計測されるサービス(measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化のいくつかのレベルで計量能力を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用率の監視、制御、およびレポートを行うことができ、利用されるサービスの提供者と利用者双方に透明性をもたらす。
【0024】
サービス・モデルは、以下のようなものである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動くプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセス可能である。利用者は、限定的なユーザ固有のアプリケーション構成設定を例外とする可能性はあるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、ことによると、個々のアプリケーション能力を含んだ、基礎をなすクラウド・インフラストラクチャの管理も制御も行わない。
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成した、または獲得したアプリケーションを、クラウド・インフラストラクチャ上に配布することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含んだ、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、配布されたアプリケーション、および場合によっては、アプリケーション・ホスティング環境構成を制御することができる。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者が配布し、動かすことができる、処理、ストレージ、ネットワーク、および他の基本的な計算リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、オペレーティング・システム、ストレージ、配布されたアプリケーションの制御、および場合によっては、選択したネットワーク構成要素(例えば、ホスト・ファイアウォール)の限定的な制御を行うことができる。
【0025】
導入モデルは、以下のようなものである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のために単に運用される。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されてもよく、オンプレミスであっても、オフプレミスであってもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、関心(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンスの考慮)を共有してきた特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されてもよく、オンプレミスであっても、オフプレミスであってもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体が利用でき、クラウド・サービスを売る組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままだが、データおよびアプリケーションの移植性(例えば、クラウド間のロード・バランスのためのクラウド・バースティング)を可能にする標準または独自の技術でまとめられた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0026】
クラウド・コンピューティング環境は、ステートレス状態(statelessness)、疎結合、モジュール性、および意味論的相互運用性(semantic interoperability)に重点を置くサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
【0027】
次に図1を参照すると、例証的なクラウド・コンピューティング環境50が描写されている。図示のように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど、クラウドの利用者によって使用されるローカル・コンピューティング・デバイスが通信することができる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。ノード10は、上述のようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、あるいはその組合せなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上にリソースを維持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。図1に示したコンピューティング・デバイス54A~54Nのタイプは、単に例証であることを意図するものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワーク、またはネットワーク・アドレス可能接続、あるいはその両方で、任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0028】
次に図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される機能的抽象化層のセットが示されている。図2に示した構成要素、層、および機能は、単に例証であることを意図するものであり、本発明の実施形態は、これに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびに、ネットワークおよびネットワーク構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに、仮想クライアント75という、仮想エンティティの例を提供することができる抽象化層を提供する。
【0029】
1つの例では、管理層80が、下記で説明される機能を提供することがある。リソース提供81は、クラウド・コンピューティング環境内でタスクを実施するために利用される計算リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときの費用追跡、および、これらのリソースの消費量についての請求書送付またはインボイス送付を行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウドの利用者およびタスクについての本人確認、ならびに、データおよび他のリソースのための保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを、利用者およびシステム・アドミニストレータに提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウド・計算リソースの割当ておよび管理を提供する。サービス・レベル契約(SLA)計画立案およびフルフィルメント85は、SLAによる、将来の要件が予想されるクラウド・計算リソースの事前配置、および調達を行う。
【0030】
ワークロード層90は、クラウド・コンピューティング環境が利用されることがある機能の例を示す。この層から提供することができるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム・エデュケーション配信93、データ分析処理94、トランザクション処理95、ならびにモバイル・デスクトップ96を含む。
【0031】
図3は、1つまたは複数の実施形態による、実例のDPSのブロック図である。DPSは、クラウド・コンピューティング・ノード10として使用することができる。この例証的な例では、DPS100は、プロセッサ・ユニット104、メモリ106、永続ストレージ108、通信ユニット110、I/Oユニット112、およびディスプレイ114の間の通信を提供することができる通信バス102を含むことができる。
【0032】
プロセッサ・ユニット104は、メモリ106にロードすることができるソフトウェアのための命令を実行するように機能する。プロセッサ・ユニット104は、特定の実装形態に応じて、いくつかのプロセッサ、マルチプロセッサ・コア、または、プロセッサの他のいくつかのタイプであってもよい。番号は、項目を参照しながら本明細書で使用されるように、1つまたは複数の項目を意味する。さらに、プロセッサ・ユニット104は、単一のチップ上にメイン・プロセッサが2次プロセッサとともに存在する、いくつかの異種プロセッサ・システムを使用して実装することができる。別の例証的な例として、プロセッサ・ユニット104は、同じタイプの複数のプロセッサを収める対称型マルチプロセッサ・システムであってもよい。
【0033】
メモリ106および永続ストレージ108は、ストレージ・デバイス116の例である。ストレージ・デバイスは、例えば、限定することなく、データ、関数形式のプログラム・コード、または他の適切な情報、あるいはその組合せなどの情報を、一時的または永続的あるいはその両方で格納することができるハードウェアのいずれかであってもよい。メモリ106は、これらの例では、例えば、ランダム・アクセス・メモリ、または、他の任意の適切な揮発性もしくは不揮発性のストレージ・デバイスであってもよい。永続ストレージ108は、特定の実装形態に応じて、様々な形をしていてもよい。
【0034】
例えば、永続ストレージ108は、1つもしくは複数の構成要素またはデバイスを収めることができる。例えば、永続ストレージ108は、ハード・ドライブ、フラッシュ・メモリ、書換え可能光ディスク、書換え可能磁気テープ、または、上記のいくつかの組合せであってもよい。永続ストレージ108によって使用される媒体も、取外し可能であってもよい。例えば、取外し可能ハード・ドライブを、永続ストレージ108のために使用することができる。
【0035】
これらの例における通信ユニット110は、他のDPSまたはデバイスとの通信を提供することができる。これらの例では、通信ユニット110は、ネットワーク・インターフェース・カードである。通信ユニット110は、物理通信リンクとワイヤレス通信リンクのどちらかまたは両方を使用して通信することができる。
【0036】
入出力ユニット112は、DPS100に接続することができる他のデバイスとのデータの入力および出力を可能にすることができる。例えば、入出力ユニット112は、キーボード、マウス、または他のいくつかの適切な入力デバイス、あるいはその組合せを通じたユーザ入力のための接続を行うことができる。さらに、入出力ユニット112は、プリンタに出力を送ることができる。ディスプレイ114は、ユーザに情報を表示するためのメカニズムを提供することができる。
【0037】
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せのための命令は、通信バス102を通じてプロセッサ・ユニット104と通信中のストレージ・デバイス116内に置くことができる。これらの例証的な例では、命令は、永続ストレージ108上の関数形式である。これらの命令は、プロセッサ・ユニット104による実行のために、メモリ106にロードすることができる。異なる実施形態の処理は、メモリ106などのメモリ内に置くことができるコンピュータ実行命令を使用して、プロセッサ・ユニット104によって実施することができる。
【0038】
これらの命令は、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット104におけるプロセッサによって読み込まれ、実行することができる。異なる実施形態におけるプログラム・コードは、メモリ106または永続ストレージ108などの、異なる物理的または有形のコンピュータ可読媒体上に具現化されてもよい。
【0039】
プログラム・コード118は、選択的に取外し可能なコンピュータ可読媒体120上に関数形式で置くことができ、プロセッサ・ユニット104による実行のために、DPS100にロードまたは移送することができる。プログラム・コード118およびコンピュータ可読媒体120は、これらの例では、コンピュータ・プログラム製品122を形成することができる。1つの例では、コンピュータ可読媒体120は、コンピュータ可読ストレージ媒体124またはコンピュータ可読信号媒体126であってもよい。コンピュータ可読ストレージ媒体124は、例えば、永続ストレージ108の一部であるハード・ドライブなどのストレージ・デバイスに移送するための、永続ストレージ108の一部であるドライブまたは他のデバイスに挿入されるか、置かれた、光学または磁気ディスクを含むことができる。また、コンピュータ可読ストレージ媒体124は、DPS100に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続ストレージの形をしていてもよい。いくつかの事例では、コンピュータ可読ストレージ媒体124は、DPS100から取外し可能でなくてもよい。これらの例証的な例では、コンピュータ可読ストレージ媒体124は、非一過性のコンピュータ可読ストレージ媒体である。
【0040】
代替として、プログラム・コード118は、コンピュータ可読信号媒体126を使用して、DPS100に移送することができる。コンピュータ可読信号媒体126は、例えば、プログラム・コード118を収めた伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体126は、電磁気信号、光信号、または他の任意の適切なタイプの信号、あるいはその組合せであってもよい。これらの信号は、ワイヤレス通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤ、または他の任意の適切なタイプの通信リンク、あるいはその組合せなどの、通信リンクで伝送することができる。言い換えれば、通信リンクまたは接続あるいはその両方は、例証的な例では、物理的またはワイヤレスであってもよい。
【0041】
いくつかの例証的な実施形態では、プログラム・コード118は、DPS100内で使用するために、コンピュータ可読信号媒体126を通じて別のデバイスまたはDPSから永続ストレージ108に、ネットワークでダウンロードすることができる。例えば、サーバDPS内のコンピュータ可読ストレージ媒体に格納されたプログラム・コードは、サーバからDPS100にネットワークでダウンロードすることができる。プログラム・コード118を提供するDPSは、プログラム・コード118を格納し、伝送することができる、サーバ・コンピュータ、クライアント・コンピュータ、または他のいくつかのデバイスであってもよい。
【0042】
DPS100について示した異なる構成要素は、異なる実施形態を実装できる手法に、構造的に限定するためのものではない。異なる例証的な実施形態は、DPS100について示したものに加えて、またはその代わりに、構成要素を含むDPS内で実装することができる。図1に示した他の構成要素は、示した例証的な例から変化してもよい。
【0043】
図4を参照すると、1つまたは複数の実施形態による、実例のリソース管理環境のブロック図が描写されている。リソース管理環境200は、例証的な実施形態を実装することができる環境の例である。例証的な実施形態のリソース管理環境200は、例えば、サーバであることもある(一括してまたは例として、参照番号202で言及されることがある)複数のDPS202a~202cを含むサーバ・クラスタに実装することができる。DPS202は、DPS100の実装形態の例であってもよい。例証では、DPSブロックのうちの1つについてだけ、詳細が示されているが、他のDPS202が、類似のアーキテクチャを含むことがある。さらに、3つのDPSブロック202だけが図3に示されているが、他の例では、リソース管理環境200は、他の任意の数のDPSを含むことができる。
【0044】
DPS202のそれぞれは、リソース・マネージャ203、およびリソースのセット206を含むことができる。リソース・マネージャ203は、1つまたは複数のリソース206の使用を管理する。さらに、リソース・マネージャ203は、他のDPS202との間で追加の計算リソース206を提供する/受け取るために、リソース管理環境200における他のDPS202の対応するリソース管理モジュールと通信することができる。リソース・マネージャ203は、図に単一のブロックとして示されているが、その機能の様々な部分を、リソース管理環境200の全体にわたって拡散させることができる。
【0045】
リソースのセット206は、DPS202内の1つまたは複数の計算リソースを指すことができる。例えば、リソースのセット206は、デバイス208を含むことができる。デバイス208は、例えば、プロセッサ・ユニット104、メモリ106、永続ストレージ108、通信ユニット110、入出力(I/O)ユニット112、およびディスプレイ114などのデバイスを含むことができる任意の数の異なるデバイスを含むことができる。デバイス208は、DPS202の外部にあるデバイスも含むことができる。例えば、デバイス208は、ユニバーサル・シリアル・バス(USB)または他の適切なコネクタによって接続された、カメラまたは外部ストレージ・デバイスなど、DPSに接続されたデバイスを含むことができる。
【0046】
様々な例証的な実施形態では、リソース管理プロセス204は、リソースの増加についてのリクエスト210を受け取ることができる。リソース管理プロセス204は、図4に示したように、ユーザ・インターフェース214を介して、ユーザからリクエスト210を受け取ることができる。それでも、リソース管理プロセス204は、リソース管理環境200の一部を形成する他のエンティティからもリクエスト210を受け取ることができる。図5を参照すると、リクエスト210は、リソース・マネージャと対話するハイパーバイザ330から来ることがある。図6を参照すると、リクエスト210は、パーティション414aのオペレーティング・システム430、または、このパーティション内で動き、パーティション・メモリ216を利用するアプリケーション435からも来ることがある。図には示していないが、いくつかの実施形態では、リクエスト210は、厳密には、リソース・マネージャ203によって受け取られる実際の通信を伴わないこともあるが、同様に、リソース・マネージャ203に含まれるロジック、および、リソース・マネージャ203が利用可能なリソース管理環境200の様々なリソースの情報へのアクセスに基づく「推測のリクエスト」であってもよい。言い換えれば、「推測のリクエスト」は、また、いくつかの必要な(しかし、明示的にリクエストされない)リソースを独自に決定するリソース・マネージャ203と本明細書で解釈することもできる。本明細書で使用されるような用語「リクエスト」210の使用は、簡潔さのために、このような「推測のリクエスト」を含むことができる。推測のリクエストは、また、増加指示と解釈することもできる(すなわち、増加指示は、パーティションのために処理能力を増加させることを明示的にリクエストしていない、いくつかの必要なリソースを決定するものと解釈することができる)。
【0047】
これらの例では、リクエスト210は、リソースのセット206における能力またはパフォーマンスの増加についての増加リクエストであってもよい。例えば、リクエスト210は、CUoDについてのリクエストであってもよい。1つの例では、リクエスト210は、リソースのセット206の処理能力212を増加させたいというリクエストである。別の例では、リクエスト210は、リソースのセット206のためのメモリ216の増加についてのリクエストである。さらに別の例証的な例では、リクエスト210は、リソースのセット206のための入出力デバイスのセット218の増加についてのリクエストであってもよい。増加の決定は、1つの実装形態では、リソース・マネージャ203によって受け取られた増加リクエストに基づくことができる。リクエストは、パーティション内で動くオペレーティング・システムに、または、パーティション内のオペレーティング・システム上で動くアプリケーションに、あるいはその両方に由来してもよい。
【0048】
リソースのセット206の処理能力212を増加させたいというリクエスト210を、リソース管理プロセス204が受け取る(または推測する)と、リソース管理プロセス204は、複数のコア222の非アクティブコア220をアクティブ化するべきかどうかを判定し、リクエスト210を承認することができる。これらの例では、コア220は、プロセッサのセット224内の複数のコア222に含まれるコアである。例えば、複数のコア222内のコアのセット226は、プロセッサのセット224においてアクティブ状態223にある。本明細書で使用されるように、プロセッサ内のコアに言及するときの「アクティブ」は、命令を動作および実行し、プロセッサのための動作を実施するために、コアが現時点で利用可能であることを意味する。コア220は、プロセッサのセット224内で非アクティブであってもよい。本明細書で使用されるように、プロセッサ内のコアに言及するときの「非アクティブ」は、命令を実行し、プロセッサのための動作を実施するために、コアが現時点で利用可能でないことを意味する。例えば、コア220は、非アクティブ状態221であっても、アクティブ状態223であってもよい。コア220の非アクティブ状態221は、命令を実行するために、コア220が現時点で利用可能でないときである。例えば、コア220は、プロセッサ・ユニットのセット224において非アクティブ状態221である間、スリープ状態であってもよい。リソースのセット206においてアクティブ状態223になるようにコア220をアクティブ化すると、リソースのセット206の処理能力212を増加させることができる。1つの実施形態では、非アクティブコアは、また、通常動作中にユーザに利用されないコアであってもよく、一定の条件下でのみアクティブ化される潜在的なプロセッサ能力を表す。したがって、非アクティブ状態のプロセッサは、プロセッサ・ユニットのセット内に予め存在している潜在的なCPU能力(LCC)に相当する。
【0049】
リソース管理プロセス204は、コア220をアクティブ化するためのリソースの使用が、DPS202における1つまたは複数のリソース使用ポリシまたはルール230を満たすかどうかを判定することができる。例えば、1つまたは複数のポリシ230は、SLA、DPS202における電力の使用についてのルールを示す電力使用ポリシ、等を含むことができる。例えば、一定量の処理能力だけが、DPS202での使用に利用可能であってもよい。1つまたは複数のポリシは、DPSのどのユーザまたはクライアント・デバイスが、ユーザとのSLAに基づいて、DPS202における一定のリソースを使用することができるかについてのルールも含むことができる。
【0050】
第1の周波数228でコア220をアクティブ化することによって生じるリソースの使用が1つまたは複数のポリシ230を満たすとリソース管理プロセス204が判定すると、リソース管理プロセス204は、第1の周波数228でコア220をアクティブ化することができる。例えば、リソース管理プロセス204は、第1の周波数228を確立すること、および、コア220上での命令を予定することによって、コア220をアクティブ化することができる。その一方で、1つまたは複数のポリシ230を満たしていない場合、リソース管理プロセス204は、処理能力212を増加させたいというリクエスト210を拒否することができる。リソース管理プロセス204は、処理能力212を増加させたいというリクエスト210が利用不可能であるという指示227を提供することができる。例えば、リソース管理プロセス204は、ユーザ・インターフェース214を介したユーザへの指示227、または、示されたリクエストについてのメッセージングまたはロギングのいくつかの形を提供することができる。
【0051】
これらの例では、最低動作周波数は、コアが動作できる最低周波数であってもよい。最低周波数は、コアの物理的な特性、コアの論理設計の結果、または、システムの様々な構成要素を相互接続するバスのサイズなど、システムの別の特性によるものであってもよい。限界の原因が何であっても、明確に定義された最低動作周波数があってもよい。
【0052】
リソース管理プロセス204は、次に、コア220の第1の周波数228を増加させることができる。これらの例証的な例では、第1の周波数228の所望の値は、リソースのセット206のための処理能力212の増加量に基づいて選択することができる。この例では、コア220およびコアのセット226は、同じ周波数で動作することができる。それでも、この同じ周波数は、コア220のアクティブ化前の、コアのセット226の第2の周波数232より低くてもよい。
【0053】
上記の例は、プロセッサ周波数の調節の形でリソースを調節することを説明しているが、他の例では、異なるタイプのリソースを調節することができる。例えば、リクエスト210は、また、リソースのセット206におけるメモリ216の増加についてのリクエストであってもよい。例えば、上記で説明したユーザまたは他のエンティティは、キャパシティ・アップグレード・オン・デマンドで追加のメモリをリクエストすることができる。代替としてまたはさらに、リソース管理プロセス204は、データがメモリ216に読み書きされる速度244を識別することができる。リソース管理プロセス204は、例えば、スロットリングによって、速度244を調節することができる。スロットリングは、メモリ216上で実施される動作に休眠期間を挿入するという処理である。例えば、一定期間、メモリ216は、非アクティブであってもよい。メモリ216が非アクティブだと、データがメモリ216に読み書きされる速度244が低下する。1つまたは複数の例では、特定の機能のために以前に予約された専門のコンピュータ・リソースも、限定的な期間、ユーザに利用可能にされてもよい。
【0054】
さらに、1つまたは複数の例では、リクエスト210は、また、リソースのセット206のための入出力デバイスのセット218の増加についてのリクエストであってもよい。例えば、上記で説明したユーザまたは他のエンティティは、キャパシティ・アップグレード・オン・デマンドで追加の入出力デバイスをリクエストすることができる。入出力デバイスのセット218は、例えば、永続ストレージ108および通信ユニット110などの、永続ストレージまたは通信ユニットあるいはその両方を含むことができる。
【0055】
本明細書で説明される1つまたは複数の実施形態によれば、リソース管理プロセス204は、リソースのセット206を監視し、リクエスト210を管理することができる。リソース管理プロセス204は、リクエスト210が許可された後、DPS202におけるリソース206の使用を監視することができる。リソース206の使用がSLAまたは他のポリシを満たさない場合、リソース管理プロセス204は、リソースのセット206におけるデバイス208のパラメータのセット248を調節することができる。例えば、リソース管理プロセス204は、メモリ216の転送速度244を調節することができる。リソース管理プロセス204は、コアのセット226の第2の周波数232、またはコア222のセットに供給される電圧を調節することができる。周波数および電圧の調節は、スケーリングと呼ばれることがある。リソース管理プロセス204は、電力使用ポリシ230を満たすように、周波数および電圧をスケーリングすることができる。リソース管理プロセス204は、また、コア220が非アクティブ状態223になるようにコア220を、メモリ216の一部を、または、入出力デバイスのセット218におけるデバイスを、あるいはその組合せを非アクティブ化することができる。
【0056】
1つの例証的な例では、リソース管理プロセス204は、処理能力212を維持するために、リソースのセット206におけるアクティブ状態223にあるべきコアのセット226のコア220の数を識別することができる。リソース管理プロセス204は、コアのセット226が動作している第2の周波数232を監視することができる。リソース管理プロセス204は、次に、この第2の周波数232を、コアのセット226の公称周波数250と比較することができる。公称周波数250は、周波数の変化(低減/増分)がない状態で、コアのセット226が動作できることが期待される周波数である。
【0057】
1つまたは複数の実施形態によれば、DPS202におけるリソースのセット206は、DPS202内のパーティションであってもよい。例えば、リソースのセット206は、共通筐体内の、デバイス208が置かれる物理パーティションであってもよい。メモリ216および入出力デバイスのセット218も、共通筐体内に置くことができる。他の例証的な実施形態では、プロセッサのセット224、メモリ216、および入出力デバイスのセット218は全て、1つまたは複数の通信ユニットを介して相互接続され、互いに外部に置かれたリソース・プールの一部であってもよい。リソース管理プロセス204は、デバイス208をアロケートして、リソースのセット206を形成することができる。リソースの所与のセット206は、1つまたは複数のユーザによって同時に使用することができる。
【0058】
別の例では、コア220は、リソースのセット206の一部でなくてもよい。処理能力212を増加させたいというリクエスト210をリソース管理プロセス204が受け取ったとき、リソースのセット206内の全てのコアが動作していてもよい。リソース管理プロセス204は、リソースの異なるセットからリソースのセット206に、コア220をアロケートすることができる。同様に、メモリ216および入出力デバイスのセット218も、リソースのセット206にアロケートすることができる。
【0059】
さらに別の例では、リクエスト210は、一時的なリクエストであってもよい。リクエスト210は、ただ1つの期間の能力の増加についてのリクエストであってもよい。この期間の後、リソース管理プロセス204は、リクエスト210を許可するためにアクティブ化されたデバイスを非アクティブ化することができる。他の例では、リクエスト210は、時間を基準値として使用すること以外の、サービス請求基準または別のポリシ・ベースの判断基準に基づいてもよい。
【0060】
図5は、1つまたは複数の実施形態による、リソース・マネージャ203について詳細に説明するDPS202の実例のブロック図である。リソース・マネージャ203は、リソース管理プロセス204およびアップグレード管理プロセス306を含むことができる。例えば、リソース管理プロセス204は、DPS202におけるデバイスによる計算リソースの使用を管理することができる。アップグレード管理プロセス306は、例えば、リクエスト210などの能力の増加についてのリクエストを管理することができる。
【0061】
DPS202は、リソースのセット206を含むことができる。リソースのセット206は、基板のセット310、メモリ216、および入出力デバイスのセット218を含むことができる。基板のセット310、メモリ216、および入出力デバイスのセット218は、これらの例におけるリソースのセット206内にあってもよいリソースである。基板のセット310は、いくつかのプロセッサ316を含むことができる。例えば、基板のセット310は、プロセッサ316a、316bを含むことができる。他の例では、基板のセット310は、任意の数のプロセッサを含むことができる。これらの例では、基板のセット310は、DPS内に構成要素を配置するため、および、DPS内の構成要素間の接続を行うための、任意の表面であってもよい。例えば、限定することなく、基板のセット310は、プリント回路基板、マザーボード、ブレッドボード、または他の適切な表面、あるいはその組合せであってもよい。
【0062】
1つまたは複数の例では、基板のセット310は、プロセッサ316を制御するコントローラ324も含むことができる。例えば、コントローラ324は、プロセッサ316a、または、プロセッサ316aの内部にある複数のコア222におけるコア220aの1つをアクティブ化することができる。コントローラ324は、複数のコア222におけるコア220のそれぞれが動作する周波数も制御することができる。コントローラ324は、複数のコア222におけるコア220に印加される電圧も制御することができる。コントローラ324は、例えば、限定することなく、マイクロコントローラ、プロセッサ、電圧および周波数センサ、発振器、または他の任意の適切なデバイス、あるいはその組合せなどのハードウェア・デバイスを含むことができる。他の例では、コントローラ324は、プロセッサ316を制御するためのプログラム・コードを含むことができる。
【0063】
リソース管理プロセス204およびアップグレード管理プロセス306は、コントローラ324と通信して、リソースのセット206におけるリソースを管理する。例えば、リソース・マネージャ203は、ユーザ・インターフェース214、または上記で論じた他の要素からの、リクエスト210を介して、リソースのセット206の能力を増加させたいというリクエストを受け取ることができる。リクエスト210は、複数のコア222における1つまたは複数のコア220をアクティブ化することによって処理能力を増加させたいというリクエストであってもよい。複数のコア222におけるいくつかのコアは、非アクティブ状態221であってもよい。リソースのセット206は、一定数のコアをアクティブ化することを許可されることもある。言い換えれば、リソースのセットは、複数のコア222における一定数のコア220を使用するように、ライセンスされることもある。1つまたは複数の例では、リクエスト210は、ライセンス・コードを含むことができる。ライセンス・コードは、コア220aの識別子、およびコア220aをアクティブ化するためのキーを含むことができる。リソース・マネージャ203は、ライセンス・コードを受け取り、ハイパーバイザ330と通信して、複数のコア222の中のどのコアにライセンスするかを決定することができる。
【0064】
ハイパーバイザ330は、複数のオペレーティング・システムをDPS202上で動かすことができることがあるモジュールである。ハイパーバイザ330は、リクエストからのライセンス・コードを、ストレージ・デバイスに格納されたライセンス・コードのセット332と比較することができる。これらの例では、複数のコア222の中の各コアは、ライセンス・コードのセット332におけるライセンス・コードを有する。リクエストからのライセンス・コードが、ライセンス・コードのセット332におけるライセンス・コードに一致する場合、ハイパーバイザ330は、ライセンス・コードのセット332において一致したライセンス・コードに、複数のコア222におけるどのコアが対応するかを判定する。判定されたコアは、リソースのセット206におけるライセンス予定のコア220である。ハイパーバイザ330は、リソースのセット206におけるライセンス予定のコア220をリソース・マネージャ203に伝達する。その一方で、リクエストにおけるライセンス・コードが、ライセンス・コードのセット332におけるライセンス・コードに一致しない場合、リクエスト210を拒否することができる。下記でより詳細に説明される一定の状況下では、リクエスト210を受け入れるか、利用可能なリソースを増加させるために、このようなライセンス・コード332を使用する必要がない。
【0065】
追加として、リソースのセット206がDPS202内のパーティションである場合、ハイパーバイザ330は、パーティション・マネージャ334と通信して、どのリソースがパーティション414(図6)の一部であるかを判定することができる。例えば、処理能力を増加させたい(計算リソースの増加)というリクエスト210は、特定のパーティションにおける能力を増加させたいというリクエストであってもよい。ハイパーバイザ330は、複数のコア222の中の、ライセンスされたいとリクエストされたコア220aが、パーティション414の一部であることを確認することができる。パーティション・マネージャ334は、特定のパーティション414の一部であるリソースのリスト化を続けることができる。ライセンスされたいとリクエストされたコア220aが、能力の増加をリクエストするパーティションの一部でない場合、パーティション・マネージャ334は、パーティション414にコア220aをアロケートすることができる。次に、ハイパーバイザ330は、リソースのセット206におけるライセンス予定のコア220aを、リソース・マネージャ203に伝達することができる。
【0066】
これらの例証的な例では、リソース・マネージャ203は、コア222におけるライセンス予定のコア220aを識別する情報を受け取ることができる。アップグレード管理プロセス306は、次に、コントローラ324に命令を送り、複数のコア222におけるライセンス予定のコア220aをアクティブ化することができる。1つまたは複数の例では、アップグレード管理プロセス306は、コア・パフォーマンス・センサ336を含むことができる。コア・パフォーマンス・センサ336は、コア222からの1つまたは複数のコアのパフォーマンスを監視する。例えば、コア・パフォーマンス・センサ336は、複数のコア222の中のアクティブコアが動作する周波数を監視することができる。アップグレード管理プロセス306は、図4のコア220について以前に論じたように、複数のコア222における他のアクティブコアと同じ周波数になるように、コア220aをアクティブ化することができる。他の例では、アップグレード管理プロセス306は、第1の周波数でコア220aをアクティブ化し、周波数を調節して、リソースのセット206における複数のコア222の処理能力を増加させることができる。
【0067】
DPS202におけるリソース・マネージャ203の図は、異なる特徴を実装することができる手法を物理的または構造的に限定することを意味するためのものではない。図示したものに加えて、またはその代わりに、あるいはその両方で、他の構成要素を使用することができる。また、いくつかの機能的な構成要素を図示するために、ブロックを提示する。これらのブロックの1つまたは複数は、異なる例証的な実施形態で実装されるとき、異なるブロックへの結合または分割あるいはその両方を行うことができる。これは、当業者によって理解されるように、図に示したブロックのいずれかに当てはまる。
【0068】
例えば、限定することなく、いくつかの例証的な実施形態では、リソース・マネージャ203は、DPS202の一部でなくてもよい。リソース・マネージャ203は、DPS202から遠くに置くことができる。例えば、リソース管理プロセス204およびアップグレード管理プロセス306は、DPS202から遠くに置かれたコンピューティング・システム上で動いていてもよい。リソース管理プロセス204およびアップグレード管理プロセス306は、他のデータ処理要素と通信して、DPS202における電力の使用を監視し、制御することができる。
【0069】
他の例証的な実施形態では、リソースのセット206は、基板のセット310のような、任意の数の基板を含むことができる。リソースのセット206における各基板には、例えばコントローラ324などの別個のコントローラがあってもよい。コントローラ324は、リソースのセット206の基板のセット310における2つ以上の基板上のプロセッサも制御することができる。いくつかの例証的な実施形態では、コア・パフォーマンス・センサ336などのセンサは、リソースのセット206における各基板上に置くことができる。他の例では、リソースのセット206は、各リソースのためのセンサを含むことができる。コア・パフォーマンス・センサ336におけるセンサは、プロセッサ316における個々のプロセッサ、および、複数のコア222におけるコアの一部であってもよい。
【0070】
図6は、例証的な実施形態による、DPS202におけるパーティションのセット402の例を示すブロック図である。DPS202は、パーティションのセット402を含む。図示の例では、リソース・マネージャ203は、DPS202におけるパーティションのセット402についてのリソース使用ポリシ230を含むことができる。リソース使用ポリシ230は、DPS202における計算リソースの使用を指定するポリシ、またはルールのセットを組み込むことができる。例えば、リソース使用ポリシ230は、リソース制限408を含むことができる。リソース制限408は、DPS202での使用に利用可能な計算リソースの量の制限であってもよい。リソース制限408は、また、パーティションのセット402からのパーティション414aが「消費する」または「使用する」ことができる電力量の制限であってもよい。1つまたは複数の例では、リソース制限408は、パーティションに関するSLAに基づくことができ、SLAは、パーティションを使用しているユーザとともに定められる。
【0071】
これらの例証的な例では、リソース使用ポリシ230は、パーティション414aについての閾値のセット412を含むことができる。閾値のセット412は、パーティション414aにおけるデバイスについてのリソース使用閾値を含むことができる。例えば、閾値のセット412は、基板のセット310からの各基板、メモリ216、または入出力デバイスのセット218、あるいはその組合せについてのリソース使用閾値を含むことができる。したがって、閾値のセット412における電力使用閾値は、パーティション414aにおけるデバイスに固有のものであってもよい。同様に、プロセッサのセット224における各プロセッサ、およびコアのセット222における各コアは、電力の使用についての閾値のセット412における閾値を有することができる。
【0072】
リソース・マネージャ203は、パーティション414aにおけるデバイスによる計算リソースの使用を監視することができる。リソース・マネージャ203は、パーティション414aにおけるデバイスによる計算リソースの使用が、閾値のセット412における閾値内であるかどうかを判定することができる。計算リソースの使用が閾値内ではない場合、リソース・マネージャ203は、計算リソースの使用が、リソース使用ポリシ230を満たしていないと判定することができる。
【0073】
リソース・マネージャ203は、パーティション414bおよび414cで使用される計算リソースも監視することができる。例えば、リソース使用ポリシ230は、パーティション414bにおけるデバイスによる計算リソースの使用についての閾値のセット412bを含むことができる。閾値のセット412bは、パーティション414bにおける計算リソースの使用を制限することができる。例えば、リソース・マネージャ203は、パーティション414bにおける能力を増加させたいというリクエスト210を受け取ることができる。リソース・マネージャ203は、計算リソースの使用が、閾値のセット412b内であり、リソース使用ポリシ230を満たす場合、リクエストの許可から生じる計算リソースの使用のリクエストを許可することができる。パーティション414bについての閾値のセット412bは、パーティション414bにおけるデバイスによる計算リソースの使用の増加が、例えば、SLAによる契約値を超えないことを保証することができる。したがって、リソース・マネージャ203は、リクエストによって能力がSLA値を超えるようにさせるとき、1つのパーティションにおける能力を増加させたいというリクエストを許可することができない。
【0074】
リソース・マネージャ203は、リソース管理環境200における別のDPS202からリソース206をアロケートすることができる。例えば、診断イベント、初期プログラム・ロード、トレースのキャプチャ、または他の任意のこのような計算負荷の高い動作を含むことができる、第1のDPS202の内部イベント、または通常動作から外れた状況のために、第1のDPSのプロセッサ224のうちの1つが使用されている場合、リソース・マネージャ203は、第1のDPS202における1つまたは複数の動作/ワークロードをハンドリングするために、第2のDPS202からプロセッサ224の1つをアロケートすることができる。同様に、第1のDPS202の計算リソース206のいずれかが、異常イベントのために使用されている場合、第2のDPS202の他の任意のタイプのリソース206を、第1のDPS202のタスク/動作を実施するためにアロケートすることができる。
【0075】
1つまたは複数の例では、レポート・モジュール440は、パーティションのセット402におけるパーティションのそれぞれによる計算リソース使用量を受け取る。レポート・モジュール440は、対応するパーティションによって使用された計算リソースに応じて、1つまたは複数のそれぞれのユーザ(クライアント・デバイス)への請求を自動的に生成することができる。例えば、レポート・モジュール440は、特定の計算リソースがパーティション414によって使用された持続期間を受け取ることができる。レポート・モジュール440は、パーティション414を使用しているユーザのSLAを使用して、パーティション414によって使用された計算リソースの1つまたは複数についての料金を決定することができ、SLAに従ってユーザへの請求額を計算することができる。
【0076】
DPS202におけるパーティションのセット402の図は、異なる特徴を実装できる手法に、物理的または構造的に限定することを意味するためのものではない。他の構成要素は、図示したものに加えて、またはその代わりに、あるいはその両方で、使用することができる。
【0077】
異常イベントの場合、1つまたは複数の計算リソースは、異常イベントに対処するために使用することができる。計算リソースのこのような使用は、異常イベントに対処することを、DPS202の内部イベントとみなすことができるので、ユーザに請求する必要はない。さらに、異常イベントによって、ユーザは、ユーザによって提供されるサービスを機能停止させることができる。例えば、ユーザは、機能停止の最も小さいものであっても大きな影響をもたらすことがある、ソーシャル・ネットワーク・プロバイダ(例えば、FaceBook(登録商標))、eコマース・プロバイダ(例えば、Amazon(登録商標))、金融機関(例えば、銀行)、ヘルス・サービス・プロバイダ(例えば、医者、病院、保険プロバイダ)などの、クラウド・サービス・プロバイダであってもよい。本明細書で説明されるように、1つまたは複数の例では、クラウドの機能停止および他の異常イベントは、DPS202のインフラストラクチャにおける故障の結果になることがある。代替としてまたはさらに、故障は、クラウド・サービス・プロバイダ、またはクラウド・サービス・プロバイダのエンド・ユーザによってもたらされるワークロードによって引き起こされることがある。機能停止または異常イベントの原因に関わらず、DPS202上で実行するシステムができるだけ速く、通常の実行状態で動作していることが重要である。
【0078】
典型的には、故障状態の診断は、リソース負荷の高い診断を必要とする。例えば、詳細なトレース記録の作成、および追加のデータ・ロギングを、故障診断が必要とするとき、追加のプロセッサ・リソースを消費することがある。1つまたは複数のプロセッサの分岐トレースなど、ハードウェア機能の中には、著しいプロセッサのオーバヘッドをもたらすことがあるものもある。さらに、x86アーキテクチャなど、プロセッサ上のスタック・オーバレイのデバッグは、追加のプロセッサが、ポインタおよび制御スタック配置をチェックすることを必要とすることがある。1つまたは複数の例では、計算リソース負荷の高いトレースまたは診断を必要とする故障状態の原因となる異常イベントが、パーティション414で発生することがあるが、他のパーティションは、通常の処理を続け、故障状態ではない。
【0079】
1つまたは複数の例では、このような機能停止をハンドリングするために、クラスタ化されたコンピューティングが、HA処理を提供するための共通の技法である。HAシステムでは、複数のマシンがセットアップされ、それぞれが、ワークロードを実行することができる。1つまたは複数の例では、ワークロードを、クラスタ内の複数のマシン上で分担し、同時に実行することができる。クラスタ内の1つのマシンが機能停止、または故障状態になると、クラスタ内の第2のマシンからの追加のプロセッサが、機能停止の診断をサポートすることができる。代替としてまたはさらに、クラスタ内の第2のマシンは、故障している第1のマシンが動作させていた追加のワークロードを負担することができる。このような場合、フォールバック・システム、つまり、この場合、第2のマシンにかかる追加のワークロードは、第2のマシンとしての定常状態の負荷より高い。さらに、第2のマシンは、1次システム、つまり、故障している第1のマシンが機能していない間に生じた、何らかのバックログのワークロードを完了させるために、追加の動作を実施しなければならないことがある。このフォールバック動作は、計画的であることも、計画的でないこともある。
【0080】
したがって、故障状態を解消することは、計算リソース負荷の高いものになることがある。例えば、故障状態を解消することは、トレース動作を実施してシステム・ダンプをキャプチャし、キャプチャしたシステム・ダンプのデータを使用してDPS202を診断することを含むことがある。さらに、解消は、パーティション414におけるオペレーティング・システムをリスタートすることを含むことがあり、これは、IPL(ブートすること)を含むことがある。IPLは、計算負荷の高い処理になることがある。計算リソースのこのような使用は、SLAで契約できるレベルのパフォーマンスをユーザが受け取らないので、ユーザとのSLAに影響を及ぼすことがある。
【0081】
追加または代替として、1つまたは複数の例では、1つのDPSからもう1つのDPSにワークロードを移すことが必須になることがある。例えば、米国政府は、銀行業界および他の機密を扱う業界が、2つ以上のDPS間で処理の定期的な移転を実施して、コンプライアンスを示すことを要求するという規制を行っている。ワークロードのこのような移転は、DPSがIPLを実施する原因となる。
【0082】
このような故障状態の解消およびIPLは、DPSの動作を遅くするという技術的問題の原因となる。さらに、この技術的問題は、ユーザによる通常のワークロード以外の動作のために、計算リソースを使用することを含むことがある。それどころか、計算リソースは、ユーザには見えない内部データ処理動作のために使用されることがある。
【0083】
したがって、1つまたは複数の実施形態は、プロセッサから、またはクラスタ内の1つもしくは複数のプロセッサから処理能力を奪う異常イベントを検出することによって、このような技術的問題に対処し、これらの条件下で、追加のCPUまたは他のリソースを提供することができる。1つまたは複数の実施形態によれば、1つのハイパーバイザ(またはパーティション)におけるIPL/ブートをDPSが検出すると、DPSは、1つまたは複数のハイパーバイザと連動して、ブート・システムまたはパーティションによって使用されるプロセッサの処理能力を増加させることができる。増加は、リソースのこのような増加に対して、ユーザへの対応する請求または会計を行わずに実施することができる。DPSは、IPL/ブートを検出することができるが、ハイパーバイザも、1つの実施形態では、ハンドリングのために、DPSにIPLをレポートすることができ、または、リクエスト210を介して、追加のリソースについてのリクエストをレポートすることができる。同様に、パーティション内のOSまたはアプリケーションが、類似のリクエストを行うことができる。
【0084】
能力増加の持続期間は、所定のウォール・クロック(すなわち、世界)時間、所定の数のプロセッサ・サイクル、または所定のイベントであってもよい。持続期間は、これらまたは他の判断基準のいずれかを考慮する所定のルールのセットによって同様に影響を受けることがある。この文脈で使用される用語「所定の」は、異常イベントの発生の前に、いずれかのエンティティによって定義されることを意味する。
【0085】
ブート/IPL/回復を現在行っていない他のパーティション(仮想マシン)のために安定したパフォーマンスを維持しつつ、パーティション(仮想マシン)のブート/IPL/回復をサポートするために、改善されたパフォーマンスをターゲットにすることができる。1つまたは複数の実施形態は、ベア・メタル・マシンに、また、レベル1およびレベル2のハイパーバイザを含む様々なレベルのハイパーバイザに、適用することができる。
【0086】
「ベア・メタル」マシンは、典型的には、単一のオペレーティング・システムまたはハイパーバイザをホストし、ベア・メタル上で動くオペレーティング・システムのブート/IPL/回復時間をブーストするための能力を含むことができる。第1レベルのハイパーバイザは、1台のベア・メタル・マシン上で動き、単一のオペレーティング・システムまたはハイパーバイザをそれぞれがホストできる多くのマシンをシミュレートする。第1レベルのハイパーバイザは、ベア・メタル・マシンと連動して、第1レベルのハイパーバイザの下で動くオペレーティング・システムのうちの1つまたは複数のブート/IPL/回復時間をブーストするための能力を提供することができる。IBM z14(登録商標)上のLPARは、第1レベルのハイパーバイザの例である。第2レベルのハイパーバイザは、第1レベルのハイパーバイザによってホストされるハイパーバイザである。第2レベルのハイパーバイザも、単一のオペレーティング・システムまたはハイパーバイザをそれぞれ動かすことができるマシンをシミュレートすることができる。第2レベルのハイパーバイザは、第1レベルのハイパーバイザと、また、ベア・メタル・マシンと連動して、第2レベルのハイパーバイザの下で動くオペレーティング・システムのうちの1つまたは複数のブート/IPL/回復時間をブーストするための能力を提供することができる。IBM z14(登録商標)上のLPARの下で動くzVM(登録商標)は、第2レベルのハイパーバイザの例である。IBM z14(登録商標)上のLPARの下で動いているzVM(登録商標)の下で動くzVM(登録商標)は、第3レベルのハイパーバイザの例である。ハイパーバイザの下のハイパーバイザのチェーンは、無限に続けることができる。これらのハイパーバイザのそれぞれは、ハイパーバイザがホストするオペレーティング・システムのためのブート/IPL/回復時間をブーストすることができる。パフォーマンス・ブーストを許可および分離するためのメカニズムは、ハイパーバイザの各レベルでわずかに異なることがあるが、基本的な概念および価値命題は同じままである。
【0087】
増加したパフォーマンスは、DPS202において、少なくとも2つの方式で使用することができる。第1に、計算リソースの増加は、ブート/IPL/回復プロセスを短くすることができる。第2に、計算リソースの増加は、ブート/IPL/回復プロセスの完了後に、ワークロードのバックログを完了させるために使用できる追加の処理能力をもたらすことができる。計算リソースの増加は、DPS202のパフォーマンス能力の増加を容易にすることができ、ブートが完了すると、ワークロードのバックログの完了をより速くするために使用することができる。
【0088】
1つまたは複数の例では、第2のDPS202から計算リソースをアロケートすることによって得られたパフォーマンスの増加は、第1のDPS202に十分な能力をもたらすことを容易にすることができるが、サーバ・クラスタ(すなわち、リソース管理環境200)の1つまたは複数のメンバには、異常イベントによる追加の処理コストがかかる。1つまたは複数の例では、第1のDPS202と第2のDPS202の両方が、同じサーバ・クラスタの一部である場合、第2のDPS202は、第1のDPS202(または他の任意のDPS)に追加の計算リソースを許可することができる。代替としてまたはさらに、1つまたは複数の例では、第2のDPS202は、第2のサーバ・クラスタ(リソース管理環境200)の一部であるDPS202の処理コストを相殺するために、追加の計算リソースを提供することができる。1つまたは複数の例では、第2のサーバ・クラスタからの計算リソース206を使用すると、異常イベントを完了させるために費やされる処理コストを相殺し、例えば、トレースなどの診断イベントといった、異常イベントを解消することができる。
【0089】
プロセッサ224は、異なるコスト/パフォーマンスのトレード・オフを行うことができる。例えば、IBM z14(登録商標)などのプロセッサは、26個の別個の能力レベルを提供し、したがって、プロセッサのセットが6つあるDPSは、合計156個の能力設定(26×6)を提供することができる。1つまたは複数の例では、プロセッサ224は、パーティション402の定常状態動作中に、人為的に低減させた能力レベルで動作することができる。能力レベルは、追加の計算リソースを使用するようにプロセッサ224に命令すること、プロセッサ224が動作する周波数を変えることなどによって増加させることができる。追加としてまたは代替として、能力レベルは、非アクティブ状態221の1つまたは複数のコア220をアクティブ化することによって増加させることができる。プロセッサ224は、ARM(登録商標)プロセッサ、X86アーキテクチャ・ベースのプロセッサなど、上記の例以外の任意のプロセッサのタイプであってもよいことに留意されたい。
【0090】
プロセッサ・スピードを増加させること、非アクティブコアを追加すること、または両方によって、プロセッサ・リソースを増加させるべきかどうかについての決定を、リソース・マネージャ203によって決定することができる。ほとんどのパーティション、またはパーティション内の活動、あるいはその両方が、プロセッサ・スピードの増加から恩恵を受けていると、堅牢である。それでも、全てのパーティションまたはパーティション内の活動が、追加のアクティブコアの導入による恩恵を受けることができるわけではない。したがって、リソース・マネージャ203は、リソースをブーストするときに、どのアプローチが有益になる可能性が最も高いかについて決定するのに役立てることができるデータベースを備えることができ、様々な状況下で追加することになるリソースの範囲を決定するのに役立つルールをさらに含むことができる。1つの実施形態では、パーティション、またはパーティションで動く動作、あるいはその両方が、別個のコア上でそれぞれ動くことができる複数のスレッドとともに動くことができると判定されたとき、ハイパーバイザは、第2のコアのアクティブ化が異常イベントの対処に有益であると判定することができる。
【0091】
追加として、異常イベントは、異常イベントのステージ、または異常イベントのサブイベント、あるいはその両方で構成されてもよく、これらのステージ/サブイベントに応じて、異なる量のリソースを追加することができる。所与の状況で追加すべきリソースの量は、テーブルまたはデータベースに格納することができ、利用可能な実際のハードウェアの様々な特性、異常イベントのタイプ、未使用リソースの量に依存することがある。追加すべきリソースの量は、数あるものの中でも、所定の格納された値を利用した、計算した公式の値にさらに基づくことができる。非アクティブなプロセッサをアクティブ化するという形でリソースを適用するとき、1つの実装形態では、このような追加および除去は、プロセッサ・スピードの修正とも組み合わせることができ、このような組合せでは、システム処理能力のなめらかな遷移が、別途発生することがある突然の変化とは対照的に、エンド・ユーザによって知覚されることがある。
【0092】
さらに、増加したリソースがシステムで利用されるときに、システム・パフォーマンスを評価するのに役立てるために、ロギング/追跡/検査(LTA:logging/tracking/audit)手順を利用することができる。LTA手順は、関連する持続時間のタイミング情報を含むことができる。タイミング情報は、異常イベントの持続期間および追加のリソース処理の持続期間などの、これらの持続期間の開始日および終了日、ならびに時間で構成することができる。LTA手順は、異常イベントおよび増加した処理の持続期間についての、このようなタイミング情報をキャプチャすることができる。LTA手順は、また、増加した処理の持続期間中に、または増加した処理の様々なステージで提供されたリソースの量、増加した処理の前、中、後のシステム・レスポンス時間、および他の関連データについての情報を含むことができる。関連するパーティション、および、パーティション内またはパーティション外で動く処理についての情報も含むことができる。LTAデータを見直し、分析することによって、適用すべき範囲のリソースに関する様々なパラメータの調節を可能にすることができる。
【0093】
マルチ・パーティション・システムでは、2つ以上のパーティションが異常イベントを同時に経験するか、これらのそれぞれの異常イベントの発生が時間内に重複する可能性があり得る。それぞれの第1および第2のパーティションは、これらに対処するために、追加のリソースを同時にまたは重複して適用することによって、恩恵を受けることができる。このような状況では、利用可能なリソースをどのようにアロケートするかを決定することは、上記で説明したような単一のパーティションにリソースを提供する手法(テーブル、公式計算、等)に類似の手法で決定することができる。1つの実施形態では、異常イベントのハンドリングが完了するまで、より高い優先度の異常イベントのパーティションに、全ての(または最大数/量の)利用可能なリソースを与えることができ、この後、全ての利用可能なリソースが、より低い優先度のイベントに与えられる。別の実施形態では、利用可能なリソースは、これらの間で分けることができる。別の実施形態では、発生することになる「第1の異常イベント」は、利用可能なリソースより高い優先度を得るか、場合によっては、後で発生する異常イベントが、より早く発生した異常イベントと同じか、これより低い優先度のものである場合だけ、優先度を得ることができる。
【0094】
図7は、1つまたは複数の実施形態による、特定のイベント処理中にプロセッサ・コア220の処理能力を増加させることについての実例の処理700の流れ図である。処理700は、動作710において、DPS202におけるパーティションのセット402からのパーティション414における異常イベントを監視することを含むことができる。1つまたは複数の例では、ハイパーバイザ330またはパーティション・マネージャ334は、異常イベントについて、パーティションのパフォーマンスを監視することができる。パーティション414における異常イベントは、パーティション414の出力レベルを監視することによって検出することができ、ここで、異常イベントは、パーティション414が予想レベルの出力を出す能力に悪影響を及ぼす状態である。異常イベントは、パーティション414のオペレーティング・システム430のIPLをさらに含むことができる。1つまたは複数の例では、オペレーティング・システム430は、クラウドまたはハイパースケール環境内にある。
【0095】
動作720において異常イベントが検出されるまで、(動作720:いいえ)パーティション414は、動作730において、割り振られた計算リソース206を使用して、動作し続けることができる。割り振られた計算リソース206は、パーティション414を使用するユーザ/クライアントとのSLAに基づくことができる。これは、パーティション414の「定常状態」または「通常動作」と呼ばれ、このとき、パーティションは、SLAによるデフォルトの計算リソース設定を使用して動作している。
【0096】
異常イベントが検出された場合(720:はい)、パーティション414によって使用されている計算リソース206を、動作740において識別することができる。さらに、動作750において、リソース・マネージャ203は、コア・スピードを増加させること、非アクティブコア220をアクティブ化すること、および上記で論じた他の技法を使用することなどによって、パーティション414に割り振られた計算リソース206を増加させることで、パーティション414の処理能力を増加させることができる。提供される追加の計算リソースは、第1のDPS202、第2のDPS202、または他の任意のDPS202からのものであってもよい。
【0097】
例えば、追加される追加のリソースは、非アクティブ状態221の可能性があるコア220をアクティブ状態223にすることを含むことができる、パーティション414にアロケートされるコア222の数を増加させることによって出すことができる追加の処理能力を含むことができる。代替としてまたはさらに、処理能力は、コア222あたりの処理能力を増加させることによって増加させることができる。例えば、プロセッサ224のハードウェア・エンジンを有効および無効にするために、オン/オフCoDを使用して、プロセッサ224の動作を調節することができる。代替としてまたはさらに、処理能力は、仮想化システム上の仮想マシンの優先度を変えることによって増加させることができる。
【0098】
1つまたは複数の例では、パーティション414の追加の処理能力は、入出力デバイス218を増加させること、メモリ216を増加させること、または、他のこのような計算リソース206をパーティション414にアロケートすることによって、提供することができる。代替としてまたはさらに、追加の能力は、異常イベントのパフォーマンス・インパクトを部分的または完全に相殺するために、追加の能力を出すことができる別のDPS202に、ライブ・ゲスト・リロケーション技法を使用して、パーティション414のオペレーティング・システム・イメージを移すことによって出すことができる。この場合、パーティション414が移される他のDPS202は、バックアップDPS202と呼ばれることがある。1つまたは複数の例では、バックアップDPS202のリソース・マネージャ203は、1つまたは複数の計算リソース206を、第3のDPS202からリロケートされたパーティション414にアロケートすることができる。本明細書で説明したように、パーティション414にアロケートされる計算リソースは、CoDまたは他の技法を使用するなどして、動的にさらに構成することができる。
【0099】
追加の処理能力は、リソース・マネージャ203によって提供することができる。1つまたは複数の例では、パーティション414は、異常イベントのタイプを示し、これに応じて、処理能力は、本明細書で説明されるような、1つまたは複数の追加の計算リソース206を提供することによって増加される。
【0100】
追加の処理能力が提供されると、動作760において、増加した処理能力でパーティションの処理が続く。動作770において、異常イベント処理が完了したかどうかについて判定することができる。これは、上記で論じた判断基準のいずれかに基づいて行うことができる。異常イベント処理が完了していない場合(770:いいえ)、動作760において、増加した処理能力が続く。そうでなければ(770:はい)、パーティション414の動作についての処理は完了し、動作780において、通常の処理能力に動作が復元され、動作730において、通常の定常状態でのパーティションの動作が続く。異常イベントを解消することは、異常イベントの完了後に実施される動作を含むことができる。例えば、異常イベントがIPLである場合、追加の計算リソース206は、IPLを定常状態の計算リソースと比較して、パーティション414が、短くなった時間でIPLを完了させるのを容易にすることができる。
【0101】
さらに、1つまたは複数の例では、異常イベントを解消するために、追加の計算リソースがパーティションによって使用される。異常イベントを解消することは、異常イベントの原因を判定することなどのために、1つまたは複数のフォローアップ動作を実施することを含むことができる。例えば、異常イベントが、計画外のシステム・シャットダウンにより引き起こされたIPLである場合、解消は、システム診断、トレース、および他のタイプの分析を実施して、異常イベントの原因を判定することを含むことができる。異常イベントを解消するためのこのような動作も計算負荷が高いことがあるので、リソース・マネージャ203は、追加の計算リソースがこのような診断または分析動作を完了させるのを容易にすることができる。
【0102】
処理700は、連続的に動作するように設計することができる。パーティション414の計算リソースを復元することは、パーティション414にアロケートされた追加の計算リソースのアロケートを取り消すことを含むことができる。使用することができる処理700を説明するために、パーティションの例として、パーティション414を上記で説明したが、他の例では、パーティションのセット402からの異なるパーティションが、異常イベントに遭遇することがある。
【0103】
図8は、本明細書で開示した1つまたは複数の実施形態による、特定のイベント処理中にプロセッサ・コアの処理能力を増加させるための別の方法の例の流れ図である。処理800は、動作805において、プロセッサ・ユニットのセット224を備える計算リソースの第1のセット、アクティブ状態223の第1のコア220aを備えるプロセッサ・ユニットのセット224、および当初は非アクティブ状態221にある第2のコア220bを、DPS202上でホストされるパーティション414aにアロケートすることによって始めることができる。第2のコア220bは、非アクティブ状態221の間、プロセッサ・ユニットのセット224内に予め存在するLCCを表すことができる。通常状態または通常動作モードでシステムが動いているとき、動作810において、システムは、第1のコア220aで動作するが、第2のコア220bは動作していない。動作815において、異常イベントによって作り出された処理負荷の増加に対処するために、パーティション414aの処理能力を増加すべきであることを示す、IPLなどの異常イベントの指示を、リソース・マネージャ203で判定するか、受け取ることができる。動作820において、第2のコア220bを、非アクティブ状態221からアクティブ状態223に変化させ、これにより、第1のコア220aと第2のコア220b両方を使用して、パーティション414aに処理能力を提供する。
【0104】
動作825において、第2の異常イベントによって作り出された処理負荷の増加に対処するために、第2のパーティション414bの処理能力を増加すべきであることを示す、IPLなどの第2の異常イベントの指示を、リソース・マネージャ203で判定するか、受け取ることができる。動作830において、第2のパーティション414bと関連付けられた第3のコア220cを、非アクティブ状態221からアクティブ状態223に変化させ、これにより、第2のパーティション414bに追加の処理能力を提供する。動作835において、第1のパーティション414aにおいて異常イベントが終わると、または、上記で説明した所定もしくは他の判断基準が発生したとき、第1のパーティション414aにおける第2のコア220bを、アクティブ状態223から非アクティブ状態221に変化させることができる。同様に、第2のパーティション414bにおいて異常イベントが終わると、または、上記で説明した所定もしくは他の判断基準が発生したとき、第1のパーティション414aにおける第3のコア220cを、アクティブ状態223から非アクティブ状態221に変化させることができる。
【0105】
本明細書で論じた1つまたは複数の実施形態は、したがって、異常イベントが検出され、イベントの検出に基づいて追加のリソースが提供されるシステムを提供する。異常イベントは、SLAまたは他の閾値の通りに予想レベルの出力を出すための、DPS、特に、DPSのパーティションの能力に影響を及ぼす状態である。追加のリソースの適用の持続期間は、イベントの持続期間を超えて延長することができる。例えば、IPL(ブート)中に適用される追加のリソースは、IPL(ブート)などの異常イベントの後、一定期間、利用可能であり続けてもよい。
【0106】
1つまたは複数の実施形態によれば、コンピュータ・サーバなどのDPSは、パーティションにおける異常イベントを検出し、これに応じて、このパーティションに追加の計算リソースを提供することができる。出力の所望のレベル、例えばSLAで提供された、1つまたは複数の閾値を含むことができる。
【0107】
1つまたは複数の例では、検出される異常イベントは、物理ハードウェアまたは仮想ハードウェアのいずれか上でのオペレーティング・システムのIPL(ブート)である。1つまたは複数の例では、オペレーティング・システムのIPL(ブート)は、クラウドまたはハイパースケール環境内のものある。
【0108】
1つまたは複数の例では、追加される追加のリソースは、コアごとに処理能力を増加させることによって(例えば、サブ・キャパシティ・モデルからフル・スピード・モデルへの能力の増加)、または、仮想化システム上の仮想マシンの優先度を変えることによって、あるいはその両方によって、追加のコアを介して出すことができる追加の処理能力である。追加される追加の能力は、パーティション414が使用するためにアロケートされる入出力デバイス、メモリ、または他のハードウェア電子回路機器を含むことができる。1つまたは複数の例では、追加される追加の能力は、異常イベントのパフォーマンス・インパクトを部分的にまたは完全に相殺するために、影響を受けたパーティションのオペレーティング・システム・イメージを、追加の能力を出すことができる環境に移すことによって出される。
【0109】
本明細書で開示した1つまたは複数の実施形態は、したがって、コンピュータ技術に改善をもたらす。例えば、クラウド・コンピューティング・プロバイダは、1つまたは複数の実施形態を使用して、ハイパーバイザの優先度の調整を通じて、仮想化環境内のパーティションにおける仮想マシンで見られるような実際の処理パフォーマンスを増加させることができる。仮想マシンは、様々なワークロードをハンドリングし、仮想マシンをホストするコンピュータ・サーバからだけではなく、コンピュータ・サーバのサーバ・クラスタの一部になることがある別のコンピュータ・サーバからもアロケートすることができる追加の計算リソースをリクエストすることができる。さらに、1つまたは複数の例では、特に、複数のパーティションを伴うDPSについて、第2のパーティションからの計算リソースを、計算リソースの需要が高い方のパーティションにアロケートすることができる。本明細書で説明したように、計算リソースは、コンピュータ・ユーザにとってのダウンタイムの主要な原因になることがある、ブート/IPL/回復時間などの、計画的なまたは計画外のあるいはその両方のイベントの検出に応答してアロケートされる。本明細書における1つまたは複数の実施形態は、ブート/IPL/回復時間によるこのようなダウンタイム、または他のイベントを短くし、したがって、DPSのパフォーマンスを改善する。
【0110】
他の例では、Oracle Exadata(登録商標)などのデータベース・サーバは、1つまたは複数の実施形態を使用して、データベース・アプライアンス内でトレースを実行する間、インパクトがない状態で、ワークロードが処理し続けることができる。データベース・サーバは、また、サーバ機能停止後に追加の処理能力を提供し、追加の計算リソースをアロケートして、ワークロードの機能停止を解消することによって、ワークロードの機能停止からクライアントが回復するのを助けることができる。
【0111】
図の流れ図およびブロック図は、様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の中の各ブロックは、コードのモジュール、セグメント、または一部を表すことができ、指定の論理機能を実行するための1つまたは複数の実行可能命令を含む。
【0112】
いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、または、ブロックは、時には、含まれる機能に応じて逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を実施する専用ハードウェア・ベースのシステム、または、専用ハードウェアとコンピュータ命令の組合せによって、実行できることにも留意されたい。
【0113】
本明細書における開示の実施形態は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せを含むことができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
【0114】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形デバイスであってもよい。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、RAM、ROM、EPROMまたはフラッシュ・メモリ、SRAM、CD-ROM、DVD、メモリ・スティック(登録商標)、フロッピー(登録商標)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、本質的に一過性の信号であると解釈されるべきではない。
【0115】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0116】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、ISA命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行することができ、あるいは、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、LANもしくはWANを含む任意のタイプのネットワークを通じてユーザのコンピュータに接続することができ、または、接続は、(例えば、ISPを利用して、インターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路機器、FPGA、またはPLAを含む電子回路機器が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
【0117】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら、本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行できることが理解されよう。
【0118】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを生み出すものであってよい。これらのコンピュータ可読プログラム命令は、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の手法で機能するように指示することができるものであってもよい。
【0119】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するように、コンピュータ実行処理を生み出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
【0120】
様々な実施形態の説明を例証のために提示してきたが、網羅的であること、または開示の実施形態に限定することを意図するものではない。説明した実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的用途、もしくは市場で見つかる技術に対する技術的改善を最もよく説明するように、または、本明細書で開示された実施形態を他の当業者が理解できるように、選ばれた。
図1
図2
図3
図4
図5
図6
図7
図8