(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-29
(45)【発行日】2024-09-06
(54)【発明の名称】クラウドリソース割り当てシステム、装置、及び方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20240830BHJP
【FI】
G06F9/50 150C
G06F9/50 150D
【外国語出願】
(21)【出願番号】P 2023078773
(22)【出願日】2023-05-11
【審査請求日】2023-05-11
(32)【優先日】2022-12-09
(33)【優先権主張国・地域又は機関】TW
(73)【特許権者】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
【住所又は居所原語表記】No.195,Sec.4,ChungHsingRd.,Chutung,Hsinchu,Taiwan 31040
(74)【代理人】
【識別番号】100081961
【氏名又は名称】木内 光春
(74)【代理人】
【識別番号】100112564
【氏名又は名称】大熊 考一
(74)【代理人】
【識別番号】100163500
【氏名又は名称】片桐 貞典
(74)【代理人】
【識別番号】230115598
【氏名又は名称】木内 加奈子
(72)【発明者】
【氏名】▲フアン▼ 俊傑
(72)【発明者】
【氏名】王 子嘉
(72)【発明者】
【氏名】李 建宏
(72)【発明者】
【氏名】▲ウー▼ 奕霖
(72)【発明者】
【氏名】▲ラァィ▼ 國弘
(72)【発明者】
【氏名】▲ウー▼ 藺剛
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2022/0261254(US,A1)
【文献】特表2015-530656(JP,A)
【文献】特開2008-234632(JP,A)
【文献】国際公開第2012/141573(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
複数のワーカノード及びマスターノードを含むクラウドリソース割り当てシステムであって、
前記マスターノードは、
リソースマネージャを介して、前記複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得し、
前記ノードリソース情報は、作業負荷をチェックした作業負荷モニタリングデータと、電力消費をチェックした電力消費モニタリングデータを含み、前記電力消費モニタリングデータは、電力消費の統計とエネルギー効率、ワーカノードレベル、ジョブグループレベル、ジョブスケジュールレベルを含むマルチレベルのパフォーマンスと電力消費の統計と分析情報、及び可能なパフォーマンスと電力消費の調整戦略の提案を含み、
ジョブスケジューラを介して、待機キューから取得したジョブリクエストのジョブプロファイルを解析し、前記複数のノードリソース情報及び前記ジョブプロファイルに基づいて、前記ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定するように構成される
オーケストレータ、を備え、
前記オーケストレータは、前記ノードリソース情報及び前記ジョブプロファイルに基づいて、前記ワーカノードの利用可能なリソースが前記ジョブリクエストのリソース要件を満足するかどうかを判断し、
前記ワーカノードのうちの少なくとも1つの前記利用可能なリソースが、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記直接リソース割り当てが実行されることが決定され、
いずれの前記ワーカノードの前記利用可能なリソースも、前記ジョブリクエストの前記リソース要件を満足しない場合、及び1つ又は複数の低優先度ジョブが使用するリソースをプリエンプションした後、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記間接リソース割り当てが実行されることが決定されるように構成され、
前記直接リソース割り当てを実行する決定に応答して、前記オーケストレータは、
前記ジョブスケジューラを介して、前記複数のワーカノードの中から、前記ジョブプロファイルに一致する
前記利用可能なリソースを有する第1のワーカノードを見つけ、
前記リソースマネージャを介して、前記処理対象ジョブを前記第1のワーカノードにディスパッチし、
前記ジョブスケジューラを介して、前記処理対象ジョブを実行キューに入れるように構成され、
前記間接リソース割り当てを実行する決定に応答して、前記オーケストレータは、
前記ジョブスケジューラを介して、前記複数のワーカノードの中から
前記低優先度ジョブを有する第2のワーカノードを見つけ、前記第2のワーカノードが前記低優先度ジョブの運用状態をバックアップするように前記第2のワーカノードに通知し、
前記第2のワーカノードによって前記低優先度ジョブの前記運用状態をバックアップした後、前記低優先度ジョブが使用しているリソースを解放し、
前記リソースマネージャを介した前記第2のワーカノードからリソース解放通知を受信したことに応答して、前記ジョブスケジューラを介して、前記低優先度ジョブに対応する別のジョブリクエストを前記待機キューに入れ、
前記リソースマネージャを介して、前記処理対象ジョブを前記第2のワーカノードにディスパッチし、
前記ジョブスケジューラを介して、前記処理対象ジョブを前記実行キューに入れるように構成される、
クラウドリソース割り当てシステム。
【請求項2】
前記オーケストレータによって前記直接リソース割り当てを実行する決定に応答して、前記ジョブスケジューラを介して、ジョブ目標を満足する前記第1のワーカノードが見つけられ、ここで、前記ジョブ目標は、最小電力消費コスト、最高のパフォーマンス、又は総合的な測定目標である、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項3】
前記オーケストレータによって前記間接リソース割り当ての実行に応答して、前記ジョブスケジューラを介して、前記低優先度ジョブを有する前記第2のワーカノードを見つけることと、
前記第2のワーカノードが前記低優先度ジョブによって使用されているリソースを解放した後に調整された利用可能なリソースが前記ジョブリクエストの前記リソース要件をまだ満足しないことに応答して、前記調整された利用可能なリソースが前記ジョブリクエストの前記リソース要件を満足するまで、前記ジョブスケジューラを介して、別の低優先度ジョブによって使用されているリソースを継続的に解放するように、前記第2のワーカノードに通知することと、を含む、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項4】
前記マスターノードにおいて、前記オーケストレータは、
前記複数のワーカノードの前記利用可能なリソースのいずれも前記ジョブリクエストの前記リソース要件を満足しないと判断した後、前記複数のワーカノードのいずれも前記間接リソース割り当てを実行するのに適格ではないと判断したことに応答して、前記ジョブプロファイル内の複数のアプリケーショングループメンバのそれぞれに対して、前記直接リソース割り当てを実行し、
前記直接リソース割り当ての実行には、
前記ジョブスケジューラを介して、前記複数のワーカノードの中から、前記アプリケーショングループメンバのリソース要件を満足する複数の第3のワーカノードを見つけることと、
前記リソースマネージャを介して、各前記アプリケーショングループメンバを対応する第3のワーカノードにディスパッチすることと、
前記ジョブスケジューラを介して、前記処理対象ジョブを前記実行キューに入れることと、を含む、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項5】
前記マスターノードは、
前記複数のワーカノードによってそれぞれ報告された前記複数のノードリソース情報を収集するように構成されるリソースモニターと、
をさらに含み、
前記ジョブスケジューラを介して、前記処理対象ジョブを前記実行キューに入れた後、前記オーケストレータは、
前記リソースマネージャを介して、前記処理対象ジョブが終了したことを示す通知を受信したことに応答して、前記ジョブスケジューラを介して、前記実行キューから前記処理対象ジョブを削除するように構成される、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項6】
各前記ワーカノードが、ローカルマネージャと、を備え、
前記ローカルマネージャは、
システムインスペクタを介して、システムリソースの使用量を確認し、
パフォーマンスデータインスペクタを介して、各コンテナの作業負荷によって実際に使用されるコンテナリソースの使用量を確認し、前記システムリソースの使用量及び前記コンテナリソースの使用量に基づいて、作業負荷モニタリングデータを取得し、
電力消費インスペクターを介して、電力消費モニタリングデータを取得する、
ように構成され、
各前記ワーカノードに対応するノードリソース情報は、前記作業負荷モニタリングデータ及び前記電力消費モニタリングデータを含む、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項7】
各前記ワーカノードにおいて、前記ローカルマネージャはさらに、
前記パフォーマンスデータインスペクタを介して、前記作業負荷モニタリングデータが所定作業負荷上限を超えているかどうかを判断し、前記作業負荷モニタリングデータが前記所定作業負荷上限を超えているとの判断に応答して、前記作業負荷モニタリングデータに警告ラベルをマークする、ように構成される、
請求項6に記載のクラウドリソース割り当てシステム。
【請求項8】
前記マスターノードは、さらに、
パフォーマンスデータコレクタを介して、各前記ワーカノードによって報告された前記作業負荷モニタリングデータを収集し、前記作業負荷モニタリングデータに前記警告ラベルがマークされたことに応答して、予め設定された時間に基づいて、履歴データを前記作業負荷モニタリングデータに追加するように構成されるリソースモニターと、
作業負荷アナライザを介して、前記パフォーマンスデータコレクタから前記作業負荷モニタリングデータを受信し、前記作業負荷モニタリングデータを分析することにより、各前記ワーカノードにリソース異常があるかどうかを判断するように構成される作業負荷マネージャと、を備える、
請求項7に記載のクラウドリソース割り当てシステム。
【請求項9】
前記作業負荷マネージャは、さらに、
前記作業負荷アナライザを介して、前記リソース異常がワークロード過負荷又はシステムリソース損失であると判断したことに応答して、前記リソースマネージャに通知し、前記リソースマネージャが状態移行コマンドを状態移行ハンドラに送信し、
前記状態移行ハンドラを介して、前記リソース異常が発生したワーカノードごとに、前記リソース異常が前記ワークロード過負荷であると判断した場合は、ジョブグループレベルの状態移行提案を生成し、前記リソース異常が前記システムリソース損失であると判断した場合は、ノードレベルの状態移行提案を生成するように構成される、
請求項8に記載のクラウドリソース割り当てシステム。
【請求項10】
前記マスターノードは、さらに、
電力消費コレクタを介して、各前記ワーカノードによって報告された前記電力消費モニタリングデータを収集するように構成されるリソースモニタと、
パワーマネージャと、を備え、
前記パワーマネージャは、
パワーアナライザを介して、前記電力消費コレクタから前記電力消費モニタリングデータを受信し、前記電力消費モニタリングデータを分析することによって電力消費分析結果を取得し、前記電力消費分析結果に基づいて、電力消費調整戦略を生成し、
パワープレーナを介して、前記電力消費調整戦略に基づいて、電力調整提案を生成するように構成される、
請求項6に記載のクラウドリソース割り当てシステム。
【請求項11】
前記マスターノードにおいて、
前記オーケストレータは、前記リソースマネージャを介して、前記ジョブリクエストを取得した後、前記複数のノードリソース情報に基づいて前記複数のワーカノードが完全にロードされているかどうかを判断するように構成され、
パワーマネージャを介して、前記複数のワーカノードが完全にロードされたことに応答して、スリープモード又はパワーオフモードの各前記ワーカノードに対してパワーオンコマンドを発行し、
前記リソースマネージャを介して、前記スリープモード又は前記パワーオフモードの各前記ワーカノードが動作状態に移行することに応答して、前記複数のワーカノードによってそれぞれ報告された前記複数のノードリソース情報を再取得する、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項12】
各前記ワーカノードが、ローカルマネージャを備え、
前記ローカルマネージャは
ジョブハンドラを介して、前記マスターノードからリソース管理コマンドの受信に応答して、コンテナライフタイムサイクル管理を実行することであって、前記コンテナライフタイムサイクル管理は、コンテナ作成、コンテナ削除、及び状態移行のうちの1つを含み、
パワーモジュールハンドラを介して、前記マスターノードから電力調整提案を受信することに応答して、システムパワー状態を調整することであって、前記システムパワー状態は、パワーオフモード、スリープモード、及び特定電力消費モードのうちの1つを含む、
ように構成される、
請求項1に記載のクラウドリソース割り当てシステム。
【請求項13】
オーケストレータを格納し、待機キュー及び実行キューを提供するストレージであって、前記オーケストレータがリソースマネージャ及びジョブスケジューラを備えるストレージと、
前記ストレージに結合されたプロセッサと、を備え
前記プロセッサは、
前記リソースマネージャを介して、複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得
し、前記ノードリソース情報は、作業負荷をチェックした作業負荷モニタリングデータと、電力消費をチェックした電力消費モニタリングデータを含み、前記電力消費モニタリングデータは、電力消費の統計とエネルギー効率、ワーカノードレベル、ジョブグループレベル、ジョブスケジュールレベルを含むマルチレベルのパフォーマンスと電力消費の統計と分析情報、及び可能なパフォーマンスと電力消費の調整戦略の提案を含むことと、
前記ジョブスケジューラを介して、前記待機キューから取得したジョブリクエストのジョブプロファイルを解析し、前記複数のノードリソース情報及び前記ジョブプロファイルに基づいて、前記ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定するように構成され、
前記オーケストレータは、前記ノードリソース情報及び前記ジョブプロファイルに基づいて、前記ワーカノードの利用可能なリソースが前記ジョブリクエストのリソース要件を満足するかどうかを判断し、
前記ワーカノードのうちの少なくとも1つの前記利用可能なリソースが、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記直接リソース割り当てが実行されることが決定され、
いずれの前記ワーカノードの前記利用可能なリソースも、前記ジョブリクエストの前記リソース要件を満足しない場合、及び1つ又は複数の低優先度ジョブが使用するリソースをプリエンプションした後、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記間接リソース割り当てが実行されることが決定されるように構成され、
前記直接リソース割り当てを実行する決定に応答して、前記プロセッサは、
前記ジョブスケジューラを介して、前記複数のワーカノードの中から、前記ジョブプロファイルに一致する
前記利用可能なリソースを有する第1のワーカノードを見つけ、
前記リソースマネージャを介して、前記処理対象ジョブを前記第1のワーカノードにディスパッチし、
前記ジョブスケジューラを介して、前記処理対象ジョブを前記実行キューに入れるように構成され、
前記間接リソース割り当てを実行する決定に応答して、前記プロセッサは、
前記ジョブスケジューラを介して、前記複数のワーカノードの中から
前記低優先度ジョブを有する第2のワーカノードを見つけ、前記第2のワーカノードが前記低優先度ジョブの運用状態をバックアップするように前記第2のワーカノードに通知し、
前記第2のワーカノードによって前記低優先度ジョブの前記運用状態をバックアップした後、前記低優先度ジョブが使用しているリソースを解放し、
前記リソースマネージャを介した前記第2のワーカノードからリソース解放通知の受信に応答して、前記ジョブスケジューラを介して、前記低優先度ジョブに対応する別のジョブリクエストを前記待機キューに入れ、
前記リソースマネージャを介して、前記処理対象ジョブを前記第2のワーカノードにディスパッチし、
前記ジョブスケジューラを介して、前記処理対象ジョブを前記実行キューに入れるように構成される、
クラウドリソース割り当て装置。
【請求項14】
クラウドリソース割り当て装置を介して、
複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得
し、前記ノードリソース情報は、作業負荷をチェックした作業負荷モニタリングデータと、電力消費をチェックした電力消費モニタリングデータを含み、前記電力消費モニタリングデータは、電力消費の統計とエネルギー効率、ワーカノードレベル、ジョブグループレベル、ジョブスケジュールレベルを含むマルチレベルのパフォーマンスと電力消費の統計と分析情報、及び可能なパフォーマンスと電力消費の調整戦略の提案を含むことと、
待機キューから取得したジョブリクエストのジョブプロファイルを解析し、前記複数のノードリソース情報及び前記ジョブプロファイルに基づいて、前記ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定することと、
を実行し、
前記オーケストレータは、前記ノードリソース情報及び前記ジョブプロファイルに基づいて、前記ワーカノードの利用可能なリソースが前記ジョブリクエストのリソース要件を満足するかどうかを判断し、
前記ワーカノードのうちの少なくとも1つの前記利用可能なリソースが、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記直接リソース割り当てが実行されることが決定され、
いずれの前記ワーカノードの前記利用可能なリソースも、前記ジョブリクエストの前記リソース要件を満足しない場合、及び1つ又は複数の低優先度ジョブが使用するリソースをプリエンプションした後、前記ジョブリクエストの前記リソース要件を満足する場合、前記処理対象ジョブに対して前記間接リソース割り当てが実行されることが決定されるように構成され、
前記直接リソース割り当てを実行することを決定することは、
前記複数のワーカノードの中から、前記ジョブプロファイルに一致する
前記利用可能なリソースを有する第1のワーカノードを見つけることと、
前記処理対象ジョブを前記第1のワーカノードにディスパッチすることと、
前記処理対象ジョブを実行キューに入れることと、を含み、
前記間接リソース割り当てを実行することは、
前記複数のワーカノードの中から
前記低優先度ジョブを有する第2のワーカノードを見つけ、前記第2のワーカノードが前記低優先度ジョブの運用状態をバックアップするように前記第2のワーカノードに通知し、
前記第2のワーカノードによって前記低優先度ジョブの前記運用状態をバックアップした後、前記低優先度ジョブが使用しているリソースを解放することと、
前記第2のワーカノードからリソース解放通知を受信したことに応答して、前記低優先度ジョブに対応する別のジョブリクエストを前記待機キューに入れ、
前記処理対象ジョブを前記第2のワーカノードにディスパッチすることと、
前記処理対象ジョブを前記実行キューに入れることと、を含む、
クラウドリソース割り当て方法。
【請求項15】
前記処理対象ジョブに対して前記直接リソース割り当てを実行することを決定するステップは、
ジョブ目標を満足する前記第1のワーカノードを見つけることを含み、前記ジョブ目標は、最小の電力消費コスト、最高のパフォーマンス、又は総合的な測定目標である
請求項14に記載のクラウドリソース割り当て方法。
【請求項16】
前記処理対象ジョブに対して前記間接リソース割り当てを実行すること
を決定するステップは、
前記低優先度ジョブを有する前記第2のワーカノードを見つけることと、
前記第2のワーカノードが前記低優先度ジョブによって使用されているリソースを解放した後に調整された利用可能なリソースが前記ジョブリクエストの前記リソース要件をまだ満足しないことに応答して、前記調整された利用可能なリソースが前記ジョブリクエストの前記リソース要件を満足するまで、別の低優先度ジョブによって使用されているリソースを継続的に解放するように、前記第2のワーカノードに通知することと、を含む、
請求項15に記載のクラウドリソース割り当て方法。
【請求項17】
前記クラウドリソース割り当て装置を介して、
前記複数のワーカノードの前記利用可能なリソースのいずれも前記ジョブリクエストの前記リソース要件を満足しないと判断した後、前記複数のワーカノードのいずれも前記間接リソース割り当てを実行するのに適格ではないと判断したことに応答して、前記ジョブプロファイル内の複数のアプリケーショングループメンバのそれぞれに対して、前記直接リソース割り当てを実行することと、
を実行することをさらに含み、
前記直接リソース割り当ての実行には、
前記複数のワーカノードの中から、前記アプリケーショングループメンバのリソース要件を満足する複数の第3のワーカノードを見つけることと、
各前記アプリケーショングループメンバを対応する第3のワーカノードにディスパッチすることと、
前記処理対象ジョブを前記実行キューに入れることと、を含む、
請求項15に記載のクラウドリソース割り当て方法。
【請求項18】
前記クラウドリソース割り当て装置を介して、
前記複数のワーカノードによってそれぞれ報告された前記複数のノードリソース情報を収集し、
前記処理対象ジョブを前記実行キューに入れた後、前記処理対象ジョブが終了したことを示す通知を受信したことに応答して、前記実行キューから前記処理対象ジョブを削除すること、
を実行することをさらに含む、
請求項14に記載のクラウドリソース割り当て方法。
【請求項19】
各前記ワーカノードを介して、
システムリソースの使用量を確認し、
各コンテナの作業負荷によって実際に使用されるコンテナリソースの使用量を確認し、前記システムリソースの使用量及び前記コンテナリソースの使用量に基づいて、作業負荷モニタリングデータを取得し、
電力消費モニタリングデータを取得すること、
を実行することをさらに含み、
各前記ワーカノードに対応するノードリソース情報は、前記作業負荷モニタリングデータ及び前記電力消費モニタリングデータを含む、
請求項14に記載のクラウドリソース割り当て方法。
【請求項20】
各前記ワーカノードを介して、
前記作業負荷モニタリングデータが所定作業負荷上限を超えているかどうかを判断し、前記作業負荷モニタリングデータが前記所定作業負荷上限を超えていると判断したことに応答して、前記作業負荷モニタリングデータに警告ラベルをマークすること、
を実行することをさらに含む、
請求項19に記載のクラウドリソース割り当て方法。
【請求項21】
前記クラウドリソース割り当て装置を介して、
各前記ワーカノードによって報告された前記作業負荷モニタリングデータを収集し、前記作業負荷モニタリングデータに前記警告ラベルがマークされたことに応答して、予め設定された時間に基づいて、履歴データを前記作業負荷モニタリングデータに追加し、
前記作業負荷モニタリングデータを分析することにより、各前記ワーカノードにリソース異常があるかどうかを判断すること、
を実行することをさらに含む、
請求項20に記載のクラウドリソース割り当て方法。
【請求項22】
各前記ワーカノードが前記リソース異常を有するかどうかを判断した後、さらに、
前記リソース異常がワークロード過負荷であると判断した場合は、ジョブグループレベルの状態移行提案を生成し、前記リソース異常がシステムリソース損失であると判断した場合は、ノードレベルの状態移行提案を生成することと、を含む、
請求項21に記載のクラウドリソース割り当て方法。
【請求項23】
前記クラウドリソース割り当て装置を介して、
各前記ワーカノードによって報告された前記電力消費モニタリングデータを収集し、
前記電力消費モニタリングデータを分析することによって、電力消費分析結果を取得し、前記電力消費分析結果に基づいて、電力消費調整戦略を生成し、
前記電力消費調整戦略に基づいて、電力調整提案を生成すること、
を実行することをさらに含む、
請求項19に記載のクラウドリソース割り当て方法。
【請求項24】
前記クラウドリソース割り当て装置を介して、
前記ジョブリクエストを取得した後、前記複数のノードリソース情報に基づいて、前記複数のワーカノードが完全にロードされているかどうかを判断し、
前記複数のワーカノードが完全にロードされたことに応答して、スリープモード又はパワーオフモードの各前記ワーカノードに対してパワーオンコマンドを発行し、
前記スリープモード又は前記パワーオフモードの各前記ワーカノードが動作状態に移行することに応答して、前記複数のワーカノードによってそれぞれ報告された前記複数のノードリソース情報を再取得すること、
を実行することをさらに含む、
請求項14に記載のクラウドリソース割り当て方法。
【請求項25】
各前記ワーカノードを介して、
前記クラウドリソース割り当て装置からリソース管理コマンドの受信に応答して、コンテナライフタイムサイクル管理を実行することであって、前記コンテナライフタイムサイクル管理は、コンテナ作成、コンテナ削除、及び状態移行のうちの1つを含み、
前記クラウドリソース割り当て装置から電力調整提案を受信することに応答して、システムパワー状態を調整することであって、前記システムパワー状態は、パワーオフモード、スリープモード、及び特定電力消費モードのうちの1つを含むこと、
を実行することをさらに含む、
請求項14に記載のクラウドリソース割り当て方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドリソース割り当てシステム、装置、及び方法に関する。
【背景技術】
【0002】
クラウドコンピューティングとエッジコンピューティングのグローバル市場では、さまざまな新しいテクノロジーとアプリケーションの人気により、クラウドコンピューティングとエッジコンピューティングの世界市場規模が拡大し続けている。さまざまな業界でIoTテクノロジーの人気が高まっていることで、グローバルなエッジコンピューティング市場の成長が促進されている。
【0003】
クラウドコンピューティングは、リアルタイムのアプリケーションサービスをサポートする軽量のコンテナサービスを提供する。クラウドアプリケーション(メタバース、クラウドゲーム、人工知能モニタリングなど)は、マルチサービスと即時応答の特性を備えている。現在、コンテナオーケストレーションテクノロジーにはプリエンプティブなリソース管理が装備されており、複数のサービスに優先順位が設定されて、サービス品質(Quality of Service,QoS)が保証されたコンテナプロビジョニングが提供される。コンテナは、ソフトウェアサービスの実行に必要なランタイム固有バージョンのプログラミング言語、環境構成ファイル、ライブラリなどの依存要素を含む、アプリケーション内の軽量コードパッケージである。
【0004】
コールドスタート(Cold Start)にかかる時間は、数百ミリ秒から数秒の範囲であり、コンテナと低レイテンシアプリケーションサービスの即時プロビジョニングを効果的にサポートすることができない。現在、コンテナの事前起動(Pre-Launch)を伴う設計が提案されており、これは作業負荷予測メカニズムによって補完され、低レイテンシアプリケーションのリアルタイムのプロビジョニングと操作の要件を満足することができる。ただし、この設計では、作業負荷管理が電力効率に与える影響は考慮されていない。
【0005】
クラウドコンピューティングは、QoSに敏感なさまざまなアプリケーションサービスをサポートし、優先スケジューリングメカニズムにより、優先度の高いサービスのリソース使用効率が保証される。クラウドオーケストレーションは、アプリケーションサービスの機能特性とリソース要件に応じて、「アプリケーションサービスの自動構成」と「リソースの最適化」を実行するため、リソースオーケストレーションのメカニズム(クラウドオーケストレーション)は非常に重要である。したがって、さまざまなアプリケーションもグローバルなクラウドオーケストレーション市場の成長を後押ししている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、クラウドリソースオーケストレーションの分野では、どのようにして「ジョブパフォーマンス」と「省エネ・消費削減」のバランスをとるかが、現在の課題の一つとなっている。
【発明を解決するための手段】
【0007】
本発明は、ジョブパフォーマンスとジョブパフォーマンスを考慮したクラウドリソース割り当てシステム、装置、及び方法を提供する。
【0008】
本発明のクラウドリソース割り当てシステムは、複数のワーカノード及びマスターノードを含む。マスターノードは、リソースマネージャを介して複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得し、ジョブスケジューラを介して待機キューから取得したジョブリクエストのジョブプロファイルを解析し、複数のノードリソース情報とジョブプロファイルに基づいて、ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当ての実行を決定するように構成される、オーケストレータを含む。直接リソース割り当てを実行する決定に応答して、オーケストレータは、ジョブスケジューラを介して、複数のワーカノードの中からジョブプロファイルに一致する利用可能なリソースを有する第1のワーカノードを見つけ、リソースマネージャを介して、処理対象ジョブを第1のワーカノードにディスパッチし、処理対象ジョブを、ジョブスケジューラを介して実行キューに入れるように構成される。間接リソース割り当ての実行に応答して、オーケストレータは、ジョブスケジューラを介して、複数のワーカノードの中から低優先度ジョブを有する第2のワーカノードを見つけ、第2のワーカノードが低優先度ジョブの運用状態をバックアップするように第2のワーカノードに通知し、低優先度ジョブが使用しているリソースを解放し、リソースマネージャを介した第2のワーカノードからリソース解放通知の受信に応答して、ジョブスケジューラを介して、低優先度ジョブに対応する別のジョブリクエストを待機キューに入れ、リソースマネージャを介して、処理対象ジョブを第2のワーカノードにディスパッチし、処理対象ジョブを、ジョブスケジューラを介して実行キューに入れるように構成される。
【0009】
本発明のクラウドリソース割り当て装置は、リソースマネージャ及びジョブスケジューラを含むオーケストレータを格納し、待機キュー及び実行キューを提供するストレージと、ストレージに結合されたプロセッサと、を備える。プロセッサは、リソースマネージャを介して複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得することと、ジョブスケジューラを介して待機キューから取得したジョブリクエストのジョブプロファイルを解析し、複数のノードリソース情報及びジョブプロファイルに基づいて、ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定するように構成される。
【0010】
本発明のクラウドリソース割り当て方法は、クラウドリソース割り当て装置によって以下を実行することを含む。複数のワーカノードによってそれぞれ報告された複数のノードリソース情報を取得し、待機キューから取得したジョブリクエストのジョブプロファイルを解析し、複数のノードリソース情報及びジョブプロファイルに基づいて、ジョブリクエストで要求された処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定する。
【発明の効果】
【0011】
以上により、本発明は、パフォーマンス及び電力消費の動的管理を備えたオーケストレーションアーキテクチャと、このアーキテクチャに基づくアプリケーショングループジョブプリエンプションメカニズムを提供する。複数のジョブでサポートされるアプリケーションを考慮し、アプリケーションの優先度に基づいてジョブ管理を柔軟に行い、コンテナサービスの動作パフォーマンスをサポートしながらノードコンピューティングリソースの電力使用効率を考慮し、それによって、保守及び動作コストを削減する。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態によるクラウドリソース割り当てシステムのブロック図である。
【
図2】本発明の一実施形態によるクラウドリソース割り当て方法のフローチャートである。
【
図3】本発明の一実施形態によるクラウドリソース割り当て装置のアーキテクチャの概略図である。
【
図4】本発明の一実施形態によるワーカノードのアーキテクチャの概略図である。
【
図5】本発明の一実施形態による統合モードノードのブロック図である。
【
図6】
図6は、本発明の一実施形態によるワーカノードのパフォーマンス/電力消費モニタリングの概略図である。
【
図7】本発明の一実施形態によるワーカノードのパフォーマンス/電力消費モニタリングのフローチャートである。
【
図8】本発明の一実施形態によるコンテナリソース要求及びリソースオーケストレーションの概略図である。
【
図9】本発明の一実施形態による電力消費調整の概略図である。
【
図10】本発明の一実施形態によるパフォーマンス調整の概略図である。
【
図11A】本発明の一実施形態によるジョブリクエストのジョブプロファイルの概略図である。
【
図11B】本発明の一実施形態によるジョブリクエストのジョブプロファイルの概略図である。
【
図11C】本発明の一実施形態によるジョブリクエストのジョブプロファイルの概略図である。
【
図12A】本発明の一実施形態によるジョブリクエストの分配の概略図である。
【
図12B】本発明の一実施形態によるジョブリクエストの分配の概略図である。
【
図12C】本発明の一実施形態によるジョブリクエストの分配の概略図である。
【
図12D】本発明の一実施形態によるジョブリクエストの分配の概略図である。
【
図12E】本発明の一実施形態によるジョブリクエストの分配の概略図である。
【
図13】本発明の一実施形態によるジョブ依存性及びリソースチェックの概略図である。
【発明を実施するための形態】
【0013】
図1は、本発明の一実施形態によるクラウドリソース割り当てシステムのブロック図である。
図1を参照すると、クラウドリソース割り当てシステム100は、機能別に分けて、マスターノード(クラウドリソース割り当て装置100A)とワーカノード100B-1~100B-N(まとめてワーカノード100Bと呼ぶ)の2種類のノードを含む。クラウドリソース割り当て装置100Aは、コンテナコンピューティングリソースを管理及びスケジューリングするように構成される。ワーカノード100Bは、コンテナコンピューティングリソースを提供する。
【0014】
クラウドリソース割り当てシステム100の動作アーキテクチャは、以下の通り複数の種類のモードを有していても良い。たとえば、基本モード、高可用性モード、統合モード、高可用性統合モード、分散統合モードなどがある。基本モードは、少なくとも1つのマスターノード(クラウドリソース割り当て装置100A)と少なくとも2つのワーカノード100Bを有する。高可用性モードは、少なくとも3つのマスターノード(クラウドリソース割り当て装置100A)及び少なくとも2つのワーカノード100Bを有する。統合モードには、マスターノード及びワーカノードを形成する要素を配置し、統合モードを実行する(少なくとも2つの)ノードを有する。高可用性統合モードは、統合モードを実行する少なくとも3つのノードを有する。分散統合モードは、統合モードを実行する少なくとも2つのノードを有し、機能グループを配置せず、ポイントツーポイントコミュニケーションを使用してグローバル情報を収集し、分散リソースオーケストレーションの目的を達成する。
【0015】
クラウドリソース割り当て装置100Aは、コンピューティング機能及びネットワーク機能を有する電子機器を用いて実現され、そのハードウェアアーキテクチャは、少なくともプロセッサ110及びストレージ120を含む。ワーカノード100Bも、コンピューティング機能及びネットワーキング機能を有する電子機器を用いて実現される。そのハードウェア構成はクラウドリソース割り当て装置100Aと同様である。
【0016】
プロセッサ110は、例えば、中央処理装置(Central Processing Unit,CPU)、物理演算処理装置(Physics Processing Unit,PPU)、プログラム可能なマイクロプロセッサ、組み込み制御チップ、デジタル信号プロセッサ(Digital Signal Processor,DSP)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)、又は他の同様の装置である。
【0017】
ストレージ120は、例えば、任意の種類の修復又はリムーバブルランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、ハードディスク、又は他の同様の装置、又はこれらの装置の組み合わせである。ストレージ120は、オーケストレータ120A及びリソースモニタ120Bを含む。オーケストレータ120A及びリソースモニタ120Bは、1つ又は複数のコードフラグメントによって形成される。上記のコードフラグメントは、インストール後にプロセッサ110によって実行される。他の実施形態では、オーケストレータ120A及びリソースモニタ120Bも、独立したチップ、回路、コントローラ、CPU、及び他のハードウェアによって実施される。
【0018】
オーケストレータ120Aは、ジョブリクエストを管理し、コンテナリソースをスケジュールする。リソースモニタ120Bは、ワーカノード100Bから能動的に報告されるノードリソース情報を受信する。例えば、ノードリソース情報は、作業負荷をチェックした作業負荷モニタリングデータと、電力消費をチェックした電力消費モニタリングデータを含む。
【0019】
オーケストレータ120Aは、ワーカノード100Bのリソーススケジューリング能力を制御し、それによって、アプリケーションのサービス品質の要件を満足する。サービス品質の要件は、CPUリソース、メモリリソース、ハードディスクリソースなどのジョブリソースの使用量を含む。サービス品質の要件は、例えば、重要度や期限に基づく優先度レベルのスケジューリング要件をさらに含む。リソースオーケストレーションは、優先度の高いジョブで最初に実行される。
【0020】
リソースモニタ120Bは、ワーカノード100Bのノードリソース情報を全体として収集し、全ての構成可能なコンテナコンピューティングリソースと、コンピューティングリソースを提供するためのワーカノード100Bの利用可能なリソース種類及び容量をマスターするように構成される。
【0021】
図2は、本発明の一実施形態によるクラウドリソース割り当て方法のフローチャートである。
図1及び
図2を参照すると、ステップS205において、クラウドリソース割り当て装置100Aは、リソースモニタ120Bを介してワーカノード100B-1~100B-Nからそれぞれ報告された複数のノードリソース情報を取得する。
【0022】
次に、ステップS210において、オーケストレータ120Aは、待機キューから取得したジョブリクエストのジョブプロファイルを解析し、ジョブリクエストが要求する処理対象ジョブに対して直接リソース割り当て又は間接リソース割り当てを実行するかを決定する。具体的には、ジョブプロファイルは、アプリケーショングループに基づく複数のジョブ、優先度、実行中に各ジョブ(アプリケーショングループメンバ)が必要とするリソース要件(リソース種類や需要など)、複数のアプリケーショングループメンバ(ジョブコンテナ)をサポートする起動順序及びシャットダウン順序などを含む。
【0023】
ステップS215で、オーケストレータ120Aは、ノードリソース情報及びジョブプロファイルに基づいて、ワーカノード100B-1~100B-Nの利用可能なリソースがジョブリクエストのリソース要件を満足するかどうかを判断する。ワーカノード100Bのうちの少なくとも1つの利用可能なリソースが、ジョブリクエストのリソース要件を満足する場合、処理対象ジョブに対して直接リソース割り当てが実行されることが決定される。いずれのワーカノード100Bの利用可能なリソースも、ジョブリクエストのリソース要件を満足しない場合、及び1つ又は複数の低優先度ジョブ(すなわち、低優先度の1つ又は複数の実行中のジョブ)が使用するリソースをプリエンプションした後、ジョブリクエストのリソース要件を満足する(リソースプリエンプション条件を満足する)ことができるとと評価された場合、処理対象ジョブに対して間接リソース割り当てが実行されることが決定される。
【0024】
オーケストレータ120Aは、直接リソース割り当てを実行する決定に応答して、ステップS220~S230を実行する。ステップS220では、ワーカノード100Bの中から、ジョブプロファイルに一致する利用可能なリソースを有する第1のワーカノードが見つけられる。次に、ステップS225において、処理対象ジョブが第1のワーカノードにディスパッチされる。その後、ステップS230で、処理対象ジョブを実行キューに入れる。
【0025】
オーケストレータ120Aは、間接リソース割り当てを実行する決定に応答して、ステップS235~S250を実行する。ステップS235では、ワーカノード100Bの中から低優先度ジョブを有する第2のワーカノードが見つけられ、第2のワーカノードが低優先度ジョブの運用状態をバックアップするように第2のワーカノードに通知され、第2のワーカノードが使用するリソースが解放される。次に、ステップS240において、第2のワーカノードからリソース解放通知の受信に応答して、低優先度ジョブに対応する別のジョブリクエストが待機キューに入れられる。そして、ステップS245で、処理対象ジョブを第2ワーカノードにディスパッチする。その後、ステップS250で、処理対象ジョブを実行キューに入れる。低優先度のジョブが使用するリソースを解放した後、調整された利用可能なリソースがジョブ要求のリソース要件をまだ満足しないことに応答して、調整された利用可能なリソースがジョブリクエストのリソース要件を満足するまで、別の低優先度ジョブによって使用されているリソースを継続的に解放するように、第2のワーカノードは通知される。
【0026】
図3は、本発明の一実施形態によるクラウドリソース割り当て装置のアーキテクチャの概略図である。
図3を参照すると、クラウドリソース割り当て装置100Aは、オーケストレータ120Aと、リソースモニタ120Bと、作業負荷マネージャ120Cと、パワーマネージャ120Dと、を含む。
【0027】
オーケストレータ120Aは、ジョブスケジューラ301及びリソースマネージャ303を含む。ジョブスケジューラ301は、ジョブリクエストのジョブプロファイルを解析し、解析されたジョブプロファイルに従って、直接的又は間接的(プリエンプティブ)な方法でリソース割り当て(それぞれ、直接リソース割り当て及び間接リソース割り当てという)を実行することを決定するように構成される。ジョブスケジューラ301はさらに、運用状態を管理するように構成される。また、ジョブスケジューラ301は、待機キューと実行キューをさらに提供する。待機キューは、保留中のジョブリクエスト(新しいジョブリクエスト、プリエンプションされたジョブリクエスト)に対応するように構成され、高優先度のジョブリクエストがジョブスケジューリングに優先される。実行キューは、実行中のジョブに対応するように構成される。リソースがプリエンプションされる低優先度ジョブに対して、最初に運用状態のバックアップ動作を実行される。リソースが解放された後、コンテナリソースを取得するための待機キューに入ると、未完了ジョブは前の運用状態から継続される。
【0028】
ジョブスケジューラ301が処理対象ジョブを実行キューに入れた後、リソースマネージャ303を介して、処理対象ジョブが終了したことを示す通知を受けると、ジョブスケジューラ301を介して、処理対象ジョブが実行キューから削除される。
【0029】
ジョブスケジューラ301は、異なるジョブ目標のスケジューリング結果をサポートする。ジョブ目標は、例えば、最小の電力消費コスト、最高のパフォーマンス、又は総合的な測定目標である。最小電力消費コストについては、各ワーカノード100Bのシステムの基本電力消費と、現在の負荷状態に対応する電力消費情報とを確認し、電力消費コストが最も低いワーカノード100Bが見つけられ、ジョブリクエストのリソース要件と履歴データに基づいて、ジョブリクエストを実行する各ワーカノード100Bの電力消費コストを算出する。最高のパフォーマンスについては、各ワーカノード100Bのリソースのカテゴリ、レベル、及び利用可能な容量を確認することにより、ジョブリクエストのリソース要件を満足することを前提として、最も高いリソースレベルを構成できるワーカノード100Bを選択する。総合的な測定目標については、例えば、パフォーマンスと電力消費の特定の比率を有するワーカノードが考慮される。さらに、ジョブスケジューラ301は、最小電力消費コスト、最高のパフォーマンス、及び総合的な測定目標に基づいて、対応するワーカノードリストを提供することもできる。
【0030】
リソースマネージャ303は、リソースを管理し、各ワーカノードの作業負荷モニタリングデータ及び電力消費モニタリングデータを含む、全てのワーカノード100Bから能動的に報告されるノードリソース情報を制御するように構成される。作業負荷モニタリングデータは、ワーカノードの合計負荷と利用可能なリソースを含む。電力消費のモニタリングデータは、電力消費の統計とエネルギー効率、マルチレベル(ワーカノードレベル、ジョブグループレベル、ジョブスケジュールレベル)のパフォーマンスと電力消費の統計と分析情報、及び可能なパフォーマンスと電力消費の調整戦略の提案を含む。リソースマネージャ303は、パフォーマンス及び電力消費に関する統計情報をジョブスケジューラ301に提供して、ジョブスケジューリングの意思決定を完了するために統計情報をサポートすることができる。リソースマネージャ303は、ジョブスケジューラ301のスケジューリング結果に従って実行するために、ジョブリクエストによって要求された処理対象ジョブを指定されたワーカノード100Bにディスパッチする。リソースマネージャ303はまた、アクティブパフォーマンス調整及び/又は電力消費調整を実行することができる。
【0031】
リソースモニタ120Bは、パフォーマンスデータコレクタ331及び電力消費コレクタ333を含む。パフォーマンスデータコレクタ331は、各ワーカノード100Bによって報告された作業負荷モニタリングデータを収集及び保存し、作業負荷モニタリングデータが警告ラベルでマークされたことに応答して、予め設定された時間に基づいて、履歴データを作業負荷モニタリングデータに追加するように構成される。例えば、ワーカノード100Bの作業負荷が所定作業負荷上限を超えた場合、パフォーマンスデータコレクタ331は、予め設定された時間に従ってその後の分析のために作業負荷の履歴データを追加する。
【0032】
電力消費コレクタ333は、各ワーカノード100Bから報告された電力消費モニタリングデータを収集して保存するように構成されている。ワーカノード100B上でコンテナライフサイクルイベント(例えば、作成、プリエンプション、終了)が発生した場合、プロセス識別子(PID)の変更が生成され、PID に関連する電力消費履歴データが予め設定された時間に従って後続の分析のために追加される。
【0033】
作業負荷マネージャ120Cは、作業負荷モニタリングデータに従ってパフォーマンス管理を実行するように構成され、モニタリングデータは、オーケストレータによってリソースをスケジューリングするための基礎として最終的に使用される。作業負荷マネージャ120Cは、状態移行ハンドラ311及び作業負荷アナライザ313を含む。
【0034】
状態移行ハンドラ311は、リソースマネージャ303の指示に従って、ワーカノード100B間の状態移行を処理する。
【0035】
作業負荷アナライザ313は、主に、パフォーマンスデータコレクタ331から作業負荷モニタリングデータを受信し、作業負荷モニタリングデータを分析することにより、ワーカノード100Bにリソース異常が発生しているか否かを判断する。作業負荷アナライザ313は、リソース異常がワークロード過負荷(各ワーカノード100Bの作業負荷が所定作業負荷上限を超える)又はシステムリソース損失(システムリソース損失によるシステムリソースの不足は、主に、コンピュータプログラムが終了したときに、占有されているリソースをコンピュータプログラムが正常に解放しないことに応答して発生し、その結果として、正常に解放されなかったリソースがジョブリクエストに割り当てられず、リソースの枯渇、パフォーマンスの低下、システムのクラッシュなどを招く)であると判断すると、リソースマネージャ303に通知し、リソースマネージャ303は、状態移行コマンドを状態移行ハンドラ311に送信する。
【0036】
作業負荷アナライザ313は、リソース異常が発生したワーカノード100Bに対して対応する状態移行提案を生成するように構成される。作業負荷アナライザ313は、リソースの異常がワークロード過負荷であるという判断に応答して、ジョブグループレベルの状態移行提案を生成する。作業負荷アナライザ313は、リソース異常がシステムリソース損失(例えば、メモリリーク)であるとの判断に応答して、ノードレベルの状態移行提案を生成する。
【0037】
パワーマネージャ120Dは、パワープレーナ321及びパワーアナライザ323を含む。パワープレーナ321は、(リソースマネージャ303によって示される)電力消費調整戦略に基づいて、電力調整提案(ワーカノードの電力消費調整)を生成し、ワーカノード100Bに電力調整提案を送信する。
【0038】
パワーアナライザ323は、電力消費コレクタ333から電力消費モニタリングデータを受信し、電力消費モニタリングデータを分析して電力消費分析結果を取得し、電力消費分析結果に基づいて電力消費調整戦略を生成する。一実施形態では、パワーアナライザ323は、ワーカノード上のコンテナのライフサイクル管理イベント(例えば、作成、削除、状態移行)に基づいて電力消費分析を実行し、リソースマネージャ303に適切な電力消費調整戦略を提供する。パワープレーナ321は、電力消費調整戦略に基づいて適切な電力調整提案を計画する。
【0039】
例えば、ワーカノード100B上でジョブスケジュールの電力消費がない場合、ワーカノードがスリープモードに入ることが電力調整提案で提案される。ワーカノード100Bの電力消費構成が高すぎて、現在の作業負荷よりも大幅に高い場合、ワーカノードが動的電圧及び周波数スケーリング(DVFS)を実行することが電力調整提案で提案される。例えば、「performance」(サポートされている最高の周波数でCPUがジョブを修復する)は、「powersave」(サポートされている最低の周波数でCPUがジョブを修復する)に調整される。
【0040】
さらに、実行中の全てのワーカノード100Bが完全にロードされている場合、パワープレーナ321は、ワーカノード100B-iなどのスリープモード又はパワーオフモードのワーカノードにパワーオンコマンドを発行する。そして、スリープモード又はパワーオフモードのワーカノード100B-iが動作状態に移行した後、ワーカノード100B-i及び他のワーカノード100Bからそれぞれ報告されたノードリソース情報を再度取得する。
【0041】
図4は、本発明の一実施形態によるワーカノードのアーキテクチャの概略図である。
図4を参照すると、ワーカノード100Bは、ローカルマネージャ400A及びコンテナエンジン400Bを含む。ローカルマネージャ400Aは、ワーカノード100Bの作業負荷や実行電力消費を定期的にチェックし、リソースモニタリング結果(すなわち、ノードリソース情報)をクラウドリソース割り当て装置100Aのリソースモニタ120Bに能動的に報告する。コンテナエンジン400Bは、コンテナサービスのコアであり、ワーカノード100B上でのジョブ実行に必要なコンピューティングリソースを提供する。
【0042】
ローカルマネージャ400Aは、電力消費インスペクタ401、パワーモジュールハンドラ403、ジョブハンドラ405、パフォーマンスデータインスペクタ407、及びシステムインスペクタ409を含む。
【0043】
電力消費インスペクタ401は、パワーモニタリングと専用ソフトウェアにより電力消費モニタリングデータを取得する。例えば、電力消費インスペクタ401は、インテリジェントプラットフォーム管理インターフェース(Intelligent Platform Management Interface,IPMI)又はレッドフィッシュ基準(Redfish standard)を使用するインターフェースを介してホスト電力消費情報を取得し、Scaphandreツールを介して各スケジュールの電力消費を分析し、標準性能評価法人(Standard Performance Evaluation Corporation,SPEC)によって開発されたSPECpower及びSERTツールを使用して負荷電力消費を取得し、CPUFreq又はDVFSを介してパワーガバナー(Power Governors)の構成を取得することができる。
【0044】
パワーモジュールハンドラ403は、クラウドリソース割り当て装置100Aから受信した電力調整提案(システムレベルの電力消費調整)に応答して、パワーオフモード、スリープモード、特定電力消費モードのうちの1つなどのシステムパワー状態を調整する。パワーモジュールハンドラ403は、パワープレーナ321の指示に基づいて、ワーカノード100Bのパワーモジュールを調整する。例えば、パワーモジュールは、最大のエネルギー節約及びシステム修復を達成するためにパワーオフモードに調整される。パワーモジュールはスリープモードに調整され、最大のエネルギー節約を実現し、次のシステム起動までのジョブ時間が短縮される。パワーモジュールの電圧と周波数は、負荷の最適な電圧と電力消費を実現するために調整される。
【0045】
ジョブハンドラ405は、クラウドリソース割り当て装置100Aのリソースマネージャ303からリソース管理コマンドを受信すると、コンテナライフタイムサイクル管理を実行する。コンテナライフタイムサイクル管理は、コンテナ作成、コンテナ削除、及び状態移行のいずれかを含む。ジョブハンドラ405は、リソースマネージャ303が送信するリソース管理コマンドにより、コンテナのプロビジョニング、削除、状態移行を現在実行中のプロセス識別子(PID)がどのアプリケーショングループのジョブに属するかを把握する。このようにして、電力消費インスペクタ401は、ジョブスケジュールに対してより正確な電力消費調査を実行するように支援され、パフォーマンスデータインスペクタ407は、ジョブスケジュールに対してより正確なパフォーマンス調査を実行するように支援される
【0046】
システムインスペクタ409は、top、ps、turbostat、sar、pqos、free、vmstat、iostat、netstatなどのシステムリソースモニタリングツール、又はメモリリークなどのリソースの問題をチェックする他の補助ツールを介して、システムリソースの使用量を確認する。
【0047】
パフォーマンスデータインスペクタ407は、コンテナの各作業負荷が実際に使用するコンテナリソースの使用量を確認する。例えば、Kubernetesのメトリックサーバー、cAdvisor、及びその他のリソース検査ツールを使用して、作業負荷によって実際に使用されるコンテナリソースの使用量を確認する。パフォーマンスデータインスペクタ407はさらに、システムリソースの使用量及びコンテナリソースの使用量に基づいて作業負荷モニタリングデータを取得する。
【0048】
図5は、本発明の一実施形態による統合モードノードのブロック図である。本実施形態では、統合モードノード500は、マスタノード(クラウドリソース割り当て装置100A)とワーカノード100Bの要素を組み合わせたものである。統合モードノード500は、オーケストレータ120A、リソースモニタ120B、作業負荷マネージャ120C、パワーマネージャ120D、ローカルマネージャ400A、及びコンテナエンジン400Bを含む。各要素の機能は、
図3及び
図4を参照することができ、ここでは繰り返さない。
【0049】
図6は、本発明の一実施形態によるワーカノードのパフォーマンス/電力消費モニタリングの概略図である。
図7は、本発明の一実施形態によるワーカノードのパフォーマンス/電力消費モニタリングのフローチャートである。
【0050】
図6及び
図7を参照すると、まず、パフォーマンスモニタリングの過程について説明するが、パフォーマンスモニタリングのデータの流れは、
図6のルートR601、R603、R605、R607に示す通りである。
【0051】
ワーカノード100Bでは、ステップS701において、システムインスペクタ409がシステムリソースの使用量を確認する。次に、ステップS703において、パフォーマンスデータインスペクタ407は、各コンテナの作業負荷によって実際に使用されるコンテナリソースの使用量を確認し、システムリソースの使用量及びコンテナリソースの使用量を含む作業負荷モニタリングデータをパフォーマンスデータコレクタ331に返す。
【0052】
次に、クラウドリソース割り当て装置100Aでは、ステップS705において、パフォーマンスデータコレクタ331が作業負荷モニタリングデータを保存する。さらに、ステップS707において、パフォーマンスデータコレクタ331は、作業負荷モニタリングデータが所定作業負荷上限を超えるかどうかを判断する。作業負荷上限を超える場合、ステップS709において、パフォーマンスデータコレクタ331は、予め設定された時間の履歴データを抽出して作業負荷モニタリングデータに入れ、ステップS711を実行する。
【0053】
具体的には、各ワーカノード100Bには負荷上限が設定されているが、これは、主にワーカノード100Bの作業負荷が作業負荷上限を超えて電力消費が急激に上昇する現象を回避するためである。例えば、オフライン環境における異なる作業負荷に対応する電力消費情報が最初に測定され、電力消費を大幅に増加させる作業負荷の臨界値が発見され得る。ここで、正式な動作環境(オンライン)で作業負荷上限をワーカノード100Bに設定することができる。あるいは、リソースマネージャ303は、任意の公表された又は自己設計された電力消費モデル及び計算メカニズムを介して、ワーカノード100B上の負荷の種類及び量に従って、各ワーカノード100Bの許容可能な作業負荷上限を動的に調整することができる。
【0054】
ワーカノード100Bでは、パフォーマンスデータインスペクタ407は、作業負荷モニタリングデータが所定作業負荷上限を超えているかどうかを判断し、作業負荷モニタリングデータが作業負荷上限を超えていると判断したことに応答して、作業負荷モニタリングデータに警告ラベルをマークする。これにより、クラウドリソース割り当て装置100Aのパフォーマンスデータコレクタ331は、受信した作業負荷モニタリングデータに警告ラベルが付されたことを検出したことに応答して、予め設定された時間に基づいて作業負荷モニタリングデータに履歴データを追加することができる。
【0055】
次に、ステップS711において、作業負荷アナライザ313は、作業負荷モニタリングデータを受信する。さらに、ステップS713において、作業負荷アナライザ313は、作業負荷モニタリングデータ(状態移行リマインダーデータを伴っても良い)をリソースマネージャ303に送信する。作業負荷モニタリングデータが所定作業負荷上限を超えることに応答して、作業負荷アナライザ313は、状態移行リマインダデータ(ソースワーカノード)を生成し、状態移行リマインダデータとともに作業負荷モニタリングデータをリソースマネージャ303に送信する。作業負荷モニタリングデータが所定作業負荷上限を超えない場合、作業負荷アナライザ313は、状態移行リマインダーデータを生成する必要はなく、作業負荷モニタリングデータをリソースマネージャ303に直接送信する。
【0056】
さらに、クラウドリソース割り当て装置100Aにおいて、リソースマネージャ303は、ソースワーカノード(ワーカノード100B-1であると仮定する)がシステムリソース損失と判断された場合、ノードレベルの状態移行をトリガし、ワーカノード100B-1がワークロード過負荷と判断された場合、ジョブグループレベルの状態移行をトリガし、ワーカノード100B-1の電力消費調整構成が高すぎると判断された場合、システムレベルの電力消費調整をトリガするように構成されることがさらに説明される。
【0057】
ノードレベルの状態移行の暗黙の目的は次のとおりである。修復が必要なシステムリソースの問題がワーカノードにある場合、ノードにシステム再起動コマンドを発行する前に、まず全てのジョブの状態移行を完了する必要がある。ワーカノードには十分に利用可能なリソースがあるため、作業負荷が一部のワーカノードに集中する可能性があり、ジョブを実行していないワーカノードはスリープモードに移行して省電力を実現する。
【0058】
ジョブグループレベルの状態移行の暗黙の目的は次の通りである。複数のワーカノード間で作業負荷のバランスを取り、所定作業負荷上限を超えないようにする。作業負荷を一部のワーカノードに集中させて、残りのワーカノードがノードレベルのシャットダウンや休止状態を実行する必要のないスタンバイノードになるようにする。
【0059】
システムレベルの電力消費調整の暗黙の目的は次の通りである。ワーカノードのシャットダウン、休止状態、及び電力消費構成を調整する。
【0060】
ノードレベル及びジョブグループレベルの状態移行のトリガに応答して、リソースマネージャ303は、ジョブグループ(例えば、アプリケーショングループ)を最小単位として、ジョブグループ移行前にリソース確認を実行する。例えば、高優先度のジョブグループが最初に処理される。リソースマネージャ303は、ワーカノード100B-1以外のワーカノード100Bの利用可能なリソースが、ジョブグループのリソース要件を満足するかどうかを判断する。
【0061】
他のワーカノード100Bの利用可能なリソースがジョブグループのリソース要件を満足する場合、リソースマネージャ303は、ジョブグループのリソース要件を直接満足し、かつ最高のパフォーマンス/最小の電力消費増加を有するターゲットワーカノード(ワーカノード100B-2と仮定する)を他のワーカノードから選択する。
【0062】
他のワーカノード100Bのいずれの利用可能なリソースもジョブグループのリソース要件を満足しないが、リソースプリエンプション条件を満足する場合、リソースマネージャ303は、他のワーカノード100Bで実行中の複数のジョブのうち、低優先度ものから高優先度ものへの順序に従って、単一の低優先度ジョブ又は複数の低優先度ジョブに対応する1つ又は複数のターゲットワーカノード(ワーカノード100B-3と仮定する)を選択する。
【0063】
その後、リソースマネージャ303は、ジョブスケジューラ301に、現在状態移行を行おうとしているジョブグループ情報、ソースワーカノード、プリエンプションされたリソースのジョブグループ情報、ターゲットワーカノードなどを通知する。ジョブスケジューラ301は、待機キューと実行キューの内容を更新する。その後、ソースワーカノードとターゲットワーカノード間の状態移行は、ジョブプロファイルによって定義されたジョブグループの起動順序及び/又はシャットダウン順序に従って実行される。
【0064】
次に、ソースワーカノード及びターゲットワーカノードのそれぞれのジョブハンドラ405は、リソースマネージャ303の指示に従って、それぞれのコンテナエンジン400Bを介して、対応するコンテナサービスを順次アクティブ化又は非アクティブ化する。例えば、ジョブグループの起動順序の依存関係に従って、対応するコンテナサービスがターゲットワーカノードのコンテナエンジン400Bを介して事前にアクティブ化される。ジョブグループのシャットダウン順序の依存関係に従って、ソースワーカノードのコンテナエンジン400Bによって運用状態が凍結され、転送される。ジョブグループの起動順序の依存関係に従って、ソースワーカノードとターゲットワーカノードのそれぞれのコンテナエンジン400Bを介して状態移行が行われる。ジョブグループのシャットダウン順序の依存関係に従って、ソースワーカノードのコンテナエンジン400Bを介してコンテナサービスを1つずつ停止し、コンテナサービスの占有リソースが解放される。
【0065】
ノードレベルの状態移行を実行し、システムリソースの問題を修復することを決定したことに応答して、リソースマネージャ303は、エネルギーを最大限節約するためにシャットダウンを実行するようソースワーカノードのパワーモジュールハンドラ403に通知するか、あるいは、シャットダウン後に通常の起動過程を継続して、システムリソースの問題を修復する。
【0066】
システムリソースの問題を修復するために使用されないと判断されたノードレベルの状態移行の実行に応答して、リソースマネージャ303は、ソースワーカノードのパワーモジュールハンドラ403に、スリープモードに入りシステム状態をハードディスクに格納するように通知する。これにより、エネルギーを最大限に節約でき、ソースワーカノードが後で再びオンラインになるまでの時間を大幅に短縮できる。
【0067】
クラウドリソース割り当て装置100Aでは、作業負荷アナライザ313が、受信したワーカノード100B-1の作業負荷モニタリングデータを分析し、ワーカノード100B-1の作業負荷モニタリングデータが所定作業負荷上限を超えていること(ワークロード過負荷)を検出する。このとき、作業負荷アナライザ313は、ジョブグループレベルの状態移行リマインダーデータ(状態移行要件を備えたソースワーカノード)を生成し、状態移行リマインダーデータをリソースマネージャ303に送信する。その後、リソースマネージャ303は、状態移行コマンド(ソースワーカノード、ソースワーカノード上で状態移行を実行するジョブグループ、及び最高のパフォーマンス/最小電力消費増加を伴うターゲットワーカノードを含む)を生成して、状態移行リマインダーデータ(状態移行を必要とするソースワーカノード)に従って、状態移行ハンドラー311 に送信する。
【0068】
次に、電力消費モニタリングの過程について、
図6及び
図7を参照して説明する。また、電力消費モニタリングのデータの流れは、
図6のルートR611、R613、R615に示す通りである。
【0069】
ワーカノード100Bでは、ステップS721において、電力消費インスペクタ401が電力消費モニタリングデータを取得し、電力消費コレクタ333に報告する。
【0070】
次に、クラウドリソース割り当て装置100Aでは、ステップS723において、電力消費コレクタ333が、電力消費モニタリングデータを保存する。ステップS725において、電力消費コレクタ333は、ライフサイクルイベントが発生したかを判断する。ライフサイクルイベントが発生した場合、ステップS709において、電力消費コレクタ333は、元のデータベースDBから予め設定された時間の履歴データ(電力消費に関するもの)を抽出して、電力消費モニタリングデータに入れる。その後、ステップS727を実行する。
【0071】
具体的には、ワーカノード100Bでコンテナのライフサイクルイベント(例えば、作成、プリエンプション、終了など)が発生した場合、PIDの変更が発生し、コンテナのプロビジョニング、削除、及び状態移行を実行するように構成されるジョブハンドラ405が、電力消費インスペクタ401にPID情報(アプリケーショングループのジョブ情報を含む)を通知して、PID情報を電力消費モニタリングデータに入れるように電力消費量インスペクタ401に指示する。したがって、電力消費コレクタ333は、電力消費モニタリングデータ内のPIDが変化するか否かを検出することにより、ライフサイクルイベントが発生したか否かを判断することができる。
【0072】
次に、ステップS727において、パワーアナライザ323は、電力消費モニタリングデータを受信する。さらに、ステップS729において、パワーアナライザ323は、電力消費モニタリングデータ(電力消費調整コマンドを伴っても良い)をリソースマネージャ303に送信する。ライフサイクルイベントが発生したことに応答して、パワーアナライザ323は、電力消費調整リマインダーデータを生成して、電力消費モニタリングデータを電力消費調整コマンドと共にリソースマネージャ303に送信する。ライフサイクルイベントが発生しない場合、パワーアナライザ323は、電力消費調整リマインダーデータを生成する必要はなく、電力消費モニタリングデータをリソースマネージャ303に直接送信する。
【0073】
パフォーマンス及び電力消費のモニタリングの過程で、モニタリングデータの保存に加えて、作業負荷が作業負荷上限を超えていることが判明した場合、及び/又はライフサイクルの状態が変化したことが判明した場合に限り、パフォーマンス/電力消費分析の実行がトリガーされる。
【0074】
作業負荷アナライザ313又はパワーアナライザ323が、作業負荷モニタリングデータ又は電力消費モニタリングデータの解析中に(過去に実行されたことを示す)履歴データを見つけた場合、アプリケーションによって実行されるジョブの平均パフォーマンス及び平均電力消費が取得され、要件を満足するワーカノードの中から、最高のパフォーマンス及び/又は電力消費増加が最も少ないターゲットワーカノードが選択される。したがって、直接リソース割り当てとコンテナのプロビジョニングの過程では、高パフォーマンスと省エネルギーの両方が考慮される。
【0075】
図8は、本発明の一実施形態によるコンテナリソース要求及びリソースオーケストレーションの概略図である。
図8に示される矢印を参照すると、ジョブリクエストを受信した後、ジョブスケジューラ301は、リソースマネージャ303から通知されたノードリソース情報に従ってスケジューリングを行う。その後、リソースマネージャ303は、スケジューリング結果に従って、ターゲットワーカノードであるワーカノード100Bをジョブハンドラ405に通知する。ジョブハンドラ405は、コンテナエンジン400Bを介して、処理対象ジョブのためのコンテナプロビジョニングを実行する。
【0076】
具体的には、ジョブスケジューラ301は、ジョブリクエストを受信した後、ジョブリクエストを待機キューに入れ、ジョブリクエストを解析して、ジョブプロファイルを取得し、このジョブリクエストによって要求されたアプリケーションの優先度、及びそれに含まれる1つ又は複数のジョブコンテナ(同じアプリケーショングループに属する)間の起動順序及びシャットダウン順序、アプリケーショングループ内の各ジョブコンテナに対応する処理対象ジョブとリソース要件(後述の
図11A~
図11Cに示す)を把握する。
【0077】
ジョブスケジューラ301は、リソースマネージャ303と通信して、全てのワーカノード100Bの作業負荷モニタリングデータと電力消費モニタリングデータを把握し、作業負荷モニタリングデータと電力消費モニタリングデータに基づいて、ジョブリクエストを受け入れるための各ワーカノード100Bのパフォーマンス及び電力消費コストを推定する。ワーカノード100Bの利用可能なリソースがジョブリクエストのリソース要件を満足する場合、ジョブスケジューラ301は、さらにエネルギー効率が最も高い(高パフォーマンス/低電力消費)ワーカノードをジョブリクエストを引き継ぐためのノードとして使用することができる。そして、リソースマネージャ303は、引き継ぎ対象のワーカノード100B上のジョブハンドラ405に通知し、ジョブハンドラ405は、アプリケーショングループメンバ(ジョブコンテナ)の依存関係に従って、コンテナエンジン400Bを介してコンテナプロビジョニングを行う。
【0078】
さらに、ジョブスケジューラ301は、ワーカノード100Bの利用可能なリソースのいずれもがジョブリクエストのリソース要件を満足しないという判断に応答して、低優先度ジョブをプリエンプションする可能性をさらに評価する。低優先度ジョブをプリエンプションする必要がある場合、リソースマネージャ303を介して低優先度ジョブに対応するワーカノード100Bのジョブハンドラ405にリソース管理コマンドを発行し、ジョブハンドラ405がリソース管理コマンドに基づき低優先度ジョブの運用状態をバックアップし、コンテナライフタイムサイクル管理(ここではコンテナの終了)を実行する。運用状態のバックアップ完了後、低優先度ジョブが占有していたリソースが解放される。その後、ジョブハンドラ405は、アプリケーショングループメンバ(ジョブコンテナ)の依存関係に従って、コンテナエンジン400Bを介してコンテナプロビジョニングを実行する。
【0079】
図9は、本発明の一実施形態による電力消費調整の概略図である。
図10は、本発明の一実施形態によるパフォーマンス調整の概略図である。以下の実施形態は、
図6を参照して説明される。パフォーマンス/電力消費モニタリングのデータが
図6に示される。リソースマネージャ303は、稼働中の全てのワーカノード100Bのパフォーマンス及び電力消費モニタリングデータ(作業負荷モニタリングデータ及び電力消費モニタリングデータ)とパフォーマンス及び電力消費分析提案(状態移行提案及び電力調整提案)との合流点であり、リソースエクスプローラとして、能動的にパフォーマンス及び電力消費調整の判断を下すことができる。リソースマネージャ303は、作業負荷アナライザ313及びパワーアナライザ323からの報告に従って、状態移行コマンドを状態移行ハンドラ311に送信するか、電力消費調整戦略をパワープレーナ321に送信するかを決定する。
【0080】
図9において、パワーアナライザ323が、ワーカノード100Bから報告された電力消費モニタリングデータを分析し、ジョブリクエストにより要求されたアプリケーションが完了した後、ジョブスケジュールによるワーカノード100Bの電力消費がないと判断したと仮定すると、パワーアナライザ323は、リソースマネージャ303に電力消費調整戦略を提供する。リソースマネージャ303は、電力消費調整戦略をパワープレーナ321に送信し、パワープレーナ321は、電力消費調整戦略に従ってワーカノード100Bにスリープモードへの移行を指示するコマンドを含む電力調整提案を計画する。その後、パワープレーナー321は、電力調整提案をワーカノード100Bのパワーモジュールハンドラー403に送信し、パワーモジュールハンドラー403がワーカノード100Bのシステムパワー状態をスリープモードに調整する。
【0081】
ワーカノード100Bにおいて、電力消費インスペクタ401は、コンテナ作成、コンテナの終了、及びコンテナのプリエンプションなどのライフサイクル管理イベントが実行されているかどうかを判断する。実行されている場合、電力消費インスペクタ401は、電力消費モニタリングデータ内のライフサイクル管理イベントに対応するラベルをマークする。クラウドリソース割り当て装置100Aでは、パワーアナライザ323によって検出された電力消費モニタリングデータ内のライフサイクル管理イベントに対応するラベルは、パワープレーナ321が電力調整提案を計画するための基礎として使用することができる。
【0082】
例えば、パワーアナライザ323が電力消費モニタリングデータに基づいてワーカノード100Bにジョブスケジュールに関連する電力消費がないことを検出すると、ノードレベルの電力調整提案がパワープレーナ321を介して生成される。例えば、ワーカノード100Bをシャットダウン、スリープ等させる。
【0083】
例えば、パワーアナライザ323が電力消費モニタリングデータ(履歴を含む)に基づいてワーカノード100Bの電力消費調整の構成が高すぎることを検出すると、システムレベルの電力調整提案がパワープレーナ321を介して生成され、これにより、ワーカノード100BはDVFSを介してCPU動作周波数又は他の電力消費調整を調整できる。
【0084】
図10は、ワーカノード100B-1の作業負荷が所定作業負荷上限を超えていることを示している。したがって、ワーカノード100B-1上のジョブX、ジョブY、ジョブZがワーカノード100B-2に転送される。ワーカノード100B-1の作業負荷が所定作業負荷上限を超えたことに応答して、状態移行がトリガされる。
図10において、ワーカノード100B-1及びワーカノード100B-2のアーキテクチャは、
図4に示したワーカノード100Bを参照することができ、ジョブハンドラ405-1及び405-2の機能は、前述のジョブハンドラ405の説明を参照することができ、コンテナエンジン400B-1及び400B-2の機能は、前述のコンテナエンジン400Bの説明を参照することができる。
【0085】
具体的には、リソースマネージャ303は、全てのワーカノード100Bから能動的に報告されるノードリソース情報を制御する。リソースマネージャ303は、ワーカノード100B-1の作業負荷が所定作業負荷上限を超えることを検出すると、ワーカノード100B内のジョブX、ジョブY、及びジョブZを満足する利用可能なリソースを有するワーカノード100B-2を見つけ、ジョブX、ジョブY、ジョブZをワーカノード100B-2に割り当てる。
【0086】
以下は、本発明の実施形態による例である。
【0087】
図11A~
図11Cは、本発明の一実施形態によるジョブリクエストのジョブプロファイルの概略図である。
図12A~
図12Eは、本発明の一実施形態によるジョブリクエストの分配の概略図である。
【0088】
図11Aは、優先度100のアプリケーション1「VRライブ放送(VR live broadcast)」のジョブリクエストに対応するジョブプロファイル1を示しており、ビデオストリーミング(video streaming,VS)、リアルタイムビデオエンコード/デコード(real-time video encoding/decoding,RVED)、及びライブ配信管理サービス(live broadcast management service,LBMS)を含む3つのジョブのアプリケーショングループを含む。アプリケーション1の3つのアプリケーショングループメンバ(3つのジョブコンテナ)の起動順序は、「リアルタイムビデオエンコード/デコード→ビデオストリーミング→ライブ配信管理サービス」であり、シャットダウン順序は「ライブ配信管理サービス→ビデオストリーミング→リアルタイムビデオエンコード/デコード」である。アプリケーション1が必要とする全てのリソース要件は、CPUが14、メモリが56GB、ハードディスクが212GBであり、「(CPU、メモリ、ハードディスク)=(14,56,212)」として記録される。
【0089】
例えば、「VRライブ配信」のアプリケーション1では、ビデオストリーミング、リアルタイムビデオエンコード/デコード、ライブ配信管理サービスの3つの機能が必要であり、これらは異なるコンテナサービスによってサポートされる。これらのコンテナサービスの間には、起動順序やシャットダウン順序などの依存関係が自然と存在する。
【0090】
図11Bは、優先度180のアプリケーション2「コネクテッドカー(connected car)」のジョブリクエストに対応するジョブプロファイル2を示しており、データ保存(data storage,DS)、車両データストリーミング(vehicle data streaming,VDS)、及び衝突イベント検出(collision event detection,CED)を含む3つのジョブのアプリケーショングループを含む。アプリケーション2の3つのアプリケーショングループメンバ(3つのジョブコンテナ)の起動順序は、「データ保存→車両データストリーミング→衝突イベント検出」であり、シャットダウン順序は「車両データストリーミング→衝突イベント検出→データ保存」である。アプリケーション2 が必要とする全てのリソース要件は、(CPU、メモリ、ハードディスク)=(24,80,525)である。
【0091】
図11Cは、優先度85のアプリケーションプログラム3「文書処理(document processing)」のジョブリクエストに対応するジョブプロファイル3を示しており、オブジェクト保存(object storage,OS)、自然言語処理(natural language processing,NLP)、及び契約管理(contract management,CM)を含む3つのジョブのアプリケーショングループを含む。アプリケーション3の3つのアプリケーショングループメンバ(3つのジョブコンテナ)の起動順序は「オブジェクト保存→自然言語処理→契約管理」であり、シャットダウン順序は「契約管理→自然言語処理→オブジェクト保存」である。アプリケーション3が必要とする全てのリソース要件は、(CPU、メモリ、ハードディスク)=(10,16,182)である。
【0092】
図12Aは、待機キューWQ、実行キューRQ、ワーカノードW1、ワーカノードW2の状態を示している。
図12Aに示されるように、待機キューWQは、
図11A~
図11Cに示されたアプリケーション1~3にそれぞれ対応するアプリケーションAPP_1、APP_2、APP_3を含み、優先順位は、アプリケーションAPP_2>アプリケーションAPP_1>アプリケーションAPP_3である。「APP_3/85/(10,16,182)」は、優先度85のアプリケーションAPP_3を示し、必要なリソース要件(CPU、メモリ、ハードディスク)=(10,16,182)などである。
【0093】
実行キューRQには5つの実行中アプリケーションAPP_A~APP_Eがある。アプリケーションAPP_C、APP_B、APP_Dは、ワーカノードW1で実行される。ワーカノードW1の残りリソースは(CPU、メモリ、ハードディスク)=(12,76,350)である。アプリケーションAPP_E及びAPP_Aは、ワーカノードW2で実行される。ワーカノードW2の残りリソースは(CPU、メモリ、ハードディスク)=(26,90,600)である。
【0094】
処理対象ジョブリクエストは待機キューWQで待ち、高優先度アプリケーションの要求を優先してスケジューリングする。
【0095】
図12Aに示される実施形態では、ジョブスケジューラ301は、まずスケジューリングのために、待機キューWQからアプリケーションAPP_2を取り出す。アプリケーションAPP_2のリソース要件は、ワーカノードW1及びワーカノードW2の残りのリソースと比較され、アプリケーションAPP_2のリソース要件を満足するワーカノードW1が見つけられる。
【0096】
次に、
図12Bに示されるように、ジョブスケジューラ301は、アプリケーションAPP_2をワーカノードW2に割り当て、そのジョブリクエストを待機キューWQから削除し、アプリケーションAPP_2を実行キューRQに追加する。このとき、ワーカノードW2の残りリソースは(CPU、メモリ、ハードディスク)=(2、10、75)である。
【0097】
次に、ジョブスケジューラ301は、スケジューリングのための待機キューWQからアプリケーションAPP_1を取り出す。アプリケーションAPP_1のリソース要件は、ワーカノードW1及びワーカノードW2の残りのリソースと比較され、ワーカノードW1とワーカノードW2のいずれもアプリケーションAPP_1のリソース要件を満足しないと判断される。このとき、
図12Cに示されるように、ジョブスケジューラ301は、実行キューRQ内でリソースプリエンプション条件を満足する最も低優先度のアプリケーションAPP_Dを見つけると、ワーカノードW1に、アプリケーションAPP_Dの運用状態をバックアップし、アプリケーションAPP_Dによって使用されるリソースを解放するように通知する。このとき、ワーカノードW1の残りのリソースは(CPU、メモリ、ハードディスク)=(22,136,550)であり、アプリケーションAPP_1のリソース要件を満足する。
【0098】
次に、
図12Dに示されるように、ジョブスケジューラ301は、アプリケーションAPP_1をワーカノードW1に割り当て、そのジョブリクエストを待機キューWQから削除し、アプリケーションAPP_1を実行キューRQに追加する。同時に、アプリケーションAPP_Dが待機キューWQに追加される。アプリケーションAPP_Dは、アプリケーションAPP_3の優先度85よりも低い優先度80であるため、アプリケーションAPP_3の後にソートされる。このとき、ワーカノードW1の残りリソースは(CPU、メモリ、ハードディスク)=(8、80、338)である。
【0099】
次に、ジョブスケジューラ301は、スケジューリング待機キューWQからアプリケーションAPP_3を取り出す。アプリケーションAPP_3のリソース要件は、ワーカノードW1及びワーカノードW2の残りのリソースと比較され、ワーカノードW1とワーカノードW2のいずれもアプリケーションAPP_3のリソース要件を満足しないと判断される。さらに、リソースプリエンプション条件も満足しない(すなわち、間接リソース割り当てを実行する資格がない)。このとき、ジョブスケジューラ301は、アプリケーションAPP_3に含まれる(APP_3アプリケーショングループに属する)ジョブコンテナのそれぞれに対して直接リソース割り当てを実行する。
【0100】
図12Eに示されるように、アプリケーションAPP_3は、アプリケーショングループメンバAPP_31、APP_32、及びAPP_33を含む。アプリケーショングループメンバAPP_31に示されている「APP_3_ジョブ_OS/85/(2,4,60)」は、優先度85のアプリケーションAPP_3に対応するジョブコンテナOSを示し、リソース要件は(CPU、メモリ、ハードディスク)=(2,4,60)である。アプリケーショングループメンバAPP_32とAPP_33も同様である。
【0101】
アプリケーショングループメンバAPP_31、APP_32、及びAPP_33のリソース要件をワーカノードW1及びW2の残りのリソースと比較した後、ジョブスケジューラ301は、アプリケーショングループメンバAPP_32及びAPP_33をワーカノードW1に割り当て、アプリケーショングループメンバAPP_31をワーカノードW2に割り当てる。
【0102】
その後、ジョブスケジューラ301は、アプリケーションAPP_3を待機キューWQから削除し、アプリケーショングループメンバ(ジョブコンテナ)APP_31、APP_32、APP_33を実行キューRQに追加する。
【0103】
これに基づいて、ワーカノードの利用可能なリソースが単一のアプリケーションのリソース要件を直接満足する場合、直接リソース割り当てが実行される。実行中のアプリケーションは、管理を容易にするために実行キューRQに追加される。
【0104】
ワーカノードの利用可能なリソースが、単一のアプリケーションのリソース要件を直接満足しない場合、プリエンプティブな間接リソース割り当てが実行される。また、プリエンプションされた低優先度ジョブの評価中に、低優先度ジョブの運用状態のバックアップが実行され、占有されている利用可能なリソースが解放される。プリエンプションされたアプリケーション(低優先度ジョブ)は、待機キューWQに入り、次のスケジューリングを待つ。
【0105】
ワーカノードの利用可能なリソースが単一のアプリケーションのリソース要件を直接満足せず、リソースプリエンプションが不可能な場合、全てのワーカノードの利用可能なリソースの合計量が評価され、コンテナレベルのクロスノードプロビジョニングを実行するかどうかが判断される(
図12Eに示す通り)。単一のアプリケーションでコンテナレベルのクロスノードプロビジョニングを実行した後、実行キューRQ を介してジョブ管理も実行される。
【0106】
グループベースのプリエンプションのロジックは次のとおりである。最初に、高優先度アプリケーショングループが考慮される。つまり、高優先度のアプリケーションから先にグループベースのリソース配置とプリエンプションが実行される。利用可能なリソースが十分である場合、配置が直接実行される。利用可能なリソースが不十分である場合、配置はプリエンプティブに実行される。また、実行キュー内で高優先度のアプリケーションについては、関連するアプリケーショングループのメンバー(ジョブコンテナ)が可能な限り同一のワーカノードで実行されるようにすることで、ノード間の通信コストを削減する。次に、リソース要件が考慮される。待機キュー内の低優先度アプリケーションについては、より多くのアプリケーションの操作をサポートするためにリソース要件を可能な限り満足するために、各ワーカノードに分散された利用可能なリソースがこの段階で考慮される。アプリケーションのさまざまな優先順位の構成方法は次のとおりである。プラットフォーム管理者は、最初に作業負荷の特性を分析してから、優先順位を1つずつ設定することができる。また、優先度は次の考慮事項に基づいて設定される。つまり、人命及び財産の安全のためのリアルタイムアプリケーション(最高優先度)、リアルタイムインタラクティブアプリケーション(高優先度)、非インタラクティブリアルタイムアプリケーション(中優先度)、及び、その他(低優先度)である。しかしながら、本発明はこれに限定されない。
【0107】
図13は、本発明の一実施形態によるジョブ依存性及びリソースチェックの概略図である。
図13では、ワーカノードW1上でアプリケーションAPP_1が起動され、アプリケーショングループメンバ(ジョブコンテナ)には、起動順序に従って、RVED、VS、LBMSに対応するPID、すなわちPID_RVED、PID_VS、PID_LBMSが割り当てられる。
【0108】
また、ワーカノードW1上でのジョブハンドラ405は、コンテナプロビジョニング中に、
図11Aに示されるように、アプリケーション1「VRライブ配信」のジョブリクエストのジョブプロファイル1を受信する。コンテナの依存関係に基づき、コンテナを順次プロビジョニングすることに加えて、さまざまなコンテナのジョブスケジュールを介して、スケジュールレベル、アプリケーションレベル、及びノードレベルでの「パフォーマンス及び電力消費の測定情報」とレポートを生成することもできる。
【0109】
アプリケーションのオーケストレーションの依存関係に基づくコンテナプロビジョニングのロジックは、次のとおりである。コンテナプロビジョニングは、アプリケーショングループメンバ(ジョブコンテナ)の依存関係(起動順序、シャットダウン順序など)に従って実行される。これにより、アプリケーションの実行ロジックにおいて、コンテナサービス間の機能の使い勝手が確保される。
【0110】
ワーカノード100Bのモニタリングアーキテクチャ(パフォーマンスデータインスペクタ407及び電力消費インスペクタ401)の下で、コンテナプロビジョニングサービスの時間差は、観測対象(プロセス識別子)が属するアプリケーションを効率的に識別するのに役立ち、それによって、リソースモニタリングの精度が向上する。
【0111】
アプリケーションのライフサイクル内で、アプリケーション実行のエネルギー効率が得られる。例えば、アプリケーションのエネルギー効率=平均パフォーマンス÷平均電力消費である。
【0112】
アプリケーションに(過去に実行されたことを示す)履歴データがある場合、リソース要件を満足するワーカノードの中から、平均パフォーマンスと平均電力消費の履歴記録に基づき、最高のパフォーマンス及び/又は最小の電力消費増加のターゲットワーカノードが選択される。リソースの割り当て及びアプリケーションのプロビジョニングの工程では、高パフォーマンスと省電力の両方が考慮される。
【0113】
まとめると、本発明で開示されたクラウドリソース割り当て装置は、(1)ジョブパフォーマンス及び電力消費モニタリング並びに動的調整機能、及び(2)アプリケーションリソースオーケストレーション及びグループベースのジョブプリエンプション機能を有する。したがって、高優先度のアプリケーションサービスの実行パフォーマンスが保証され、同時にコンピューティングリソースの電力使用効率が向上する。
【0114】
本発明は、動的な状態移行及び構成管理と組み合わせた動的なパフォーマンス及び電力消費のモニタリングを提案する。これにより、ノードリソース及びパワーのピーク現象が効果的に減少し、それによって、物理サーバー及び機器リソースの寿命が延び、産業用アプリケーションの可能性が提供される。本発明は、より高いモニタリング頻度を利用して、より高い負荷又は電力消費を有するワーカノードを観察及び分析することを提案する。動的なモニタリングと頻度の分析の設計は、ビジーなワーカノードの状態を効果的にチェック及び分析することで、検出エラーの応答時間を短縮し、産業用アプリケーションの可能性が提供される。
【0115】
本発明は、アプリケーショングループの優先度を考慮するスケジューリングメカニズムを有し、重要なアプリケーションサービスをすぐにプロビジョニングできるようにし、高優先度のアプリケーションサービスの実行権と実行パフォーマンスを保証する。
【産業上の利用可能性】
【0116】
本発明のクラウドリソース割り当てのためのシステム、装置、及び方法は、クラウドリソースオーケストレーションの分野で応用され得る。
【符号の説明】
【0117】
100: クラウドリソース割り当てシステム
100A: クラウドリソース割り当て装置(マスターノード)
100B,100B-1~100B-N,W1,W2: ワーカノード
110: プロセッサ
120: ストレージ
120A: オーケストレータ
120B: リソースモニター
120C: 作業負荷マネージャ
120D: パワーマネージャ
301: ジョブスケジューラ
303: リソースマネージャ
311: 状態移行ハンドラ
313: 作業負荷アナライザ
321: パワープレーナ
323: パワーアナライザ
331: パフォーマンスデータコントローラ
333: 電力消費コレクタ
400A:ローカルマネージャ
400B,400B-1,400B-2: コンテナエンジン
401: 電力消費インスペクタ
403: パワーモジュールハンドラ
405,405-1,405-2: ジョブハンドラ
407: パフォーマンスデータインスペクタ
409: システムインスペクタ
500: 統合モード ノード
APP_A~APP_E,APP_1~APP_3: アプリケーション
APP_31,APP_32,APP_33: アプリケーショングループメンバ
R601~R607,R611~R615: ルート
RQ: 実行キュー
WQ: 待機キュー
S205~S250:クラウドリソース割り当ての工程
S701~S729:ワーカノードのパフォーマンス/電力消費モニタリングの工程