(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180849
(43)【公開日】2023-12-21
(54)【発明の名称】資源管理プログラム、資源管理方法、および資源管理装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20231214BHJP
G06F 9/455 20180101ALI20231214BHJP
【FI】
G06F9/50 150D
G06F9/455 150
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022094488
(22)【出願日】2022-06-10
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】西島 孝通
(57)【要約】
【課題】予備処理装置にかかる消費電力を削減すること。
【解決手段】管理サーバは、予備コンテナA1b~C1bのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備コンテナA1b~C1bを分類する。例えば、管理サーバは、同じサービス用の予備コンテナ同士が同一グループとならないように、予備コンテナA1b~C1bを分類する。管理サーバは、分類したグループG1~G3内の予備コンテナ間でリソースを共有するように、グループG1~G3内の予備コンテナに重複してリソースを割り当てる。例えば、管理サーバは、グループG1内の予備コンテナA1b,B1b間で共有するように、グループG1内の予備コンテナA1b,B1bに重複してCPU1個、GPU1個を割り当てる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
処理をコンピュータに実行させることを特徴とする資源管理プログラム。
【請求項2】
前記情報は、前記複数の処理装置それぞれが前記1以上のサービスのうちのいずれのサービスの提供にかかる処理装置であるかを表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち、同じサービスの提供にかかる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする請求項1に記載の資源管理プログラム。
【請求項3】
前記情報は、前記複数の処理装置それぞれの負荷状態を表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち処理性能の余裕度合いが閾値以下となる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする請求項1に記載の資源管理プログラム。
【請求項4】
前記情報は、前記複数の処理装置それぞれに対応するサービスの需要傾向を表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち、同じ需要傾向のサービスの提供にかかる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする請求項1に記載の資源管理プログラム。
【請求項5】
前記分類する処理は、
前記予備用の予備処理装置に割り当て可能なリソース量の上限を表す上限情報と前記情報とに基づいて、前記予備用の予備処理装置に割り当てるリソース量が前記上限を超えないように、かつ、前記予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする請求項1に記載の資源管理プログラム。
【請求項6】
前記予備用の予備処理装置に割り当て可能なリソースは、未割り当ての状態では電源断となっており、
前記予備用の予備処理装置に割り当て可能なリソースのうち、前記グループ内の予備処理装置に割り当てたリソースの電源を投入する、
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の資源管理プログラム。
【請求項7】
前記複数の処理装置それぞれは、コンテナまたは仮想マシンであり、
前記予備用の予備処理装置は、予備用のコンテナまたは仮想マシンである、
ことを特徴とする請求項1~6のいずれか一つに記載の資源管理プログラム。
【請求項8】
1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
処理をコンピュータが実行することを特徴とする資源管理方法。
【請求項9】
1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
制御部を有することを特徴とする資源管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、資源管理プログラム、資源管理方法、および資源管理装置に関する。
【背景技術】
【0002】
従来、サーバに跨って様々なICT(Information and Communication Technology)リソースをプール化し、アプリケーションに応じて動的にリソースを割り当てて利用するディスアグリゲーテッドなシステムがある。このシステムでは、例えば、アプリケーションの性能が要件を満たさなくなった場合、リソースを増強して処理性能を確保することが行われる。
【0003】
先行技術としては、システムが稼働している状態において、現用系の仮想マシンの仮想CPUコアに占有の物理CPUコアを割り当て、待機系の仮想マシンの仮想CPUコアには共有の物理CPUコアを割り当てるものがある。また、VMの状態を停止状態から起動状態の間の待機状態に予め遷移させ、ユーザから処理要求を受け付けた場合、当該ユーザの固有の設定情報と、待機状態の処理部の状態に関する情報とを用いて、処理部の状態を待機状態から起動状態に遷移させる技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-144717号公報
【特許文献2】特開2018-129003号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、リソースの増強にかかる時間を短縮すべく、アプリケーションを実行する予備用のコンテナ等を事前に準備するにあたり、予備用のコンテナ等に割り当てたICTリソースの待機電力により消費電力が増大するという問題がある。
【0006】
一つの側面では、本発明は、予備処理装置にかかる消費電力を削減することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、資源管理プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、予備処理装置にかかる消費電力を削減することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる資源管理方法の一実施例を示す説明図である。
【
図2】
図2は、情報処理システム200のシステム構成例を示す説明図である。
【
図3】
図3は、管理サーバ201のハードウェア構成例を示すブロック図である。
【
図4】
図4は、稼働中のサービスの一例を示す説明図である。
【
図5】
図5は、管理サーバ201の機能的構成例を示すブロック図である。
【
図6】
図6は、管理サーバ201の動作例を示す説明図である。
【
図7】
図7は、管理サーバ201の資源管理処理手順の一例を示すフローチャートである。
【
図8】
図8は、コンテナの追加スピードの比較例を示す説明図である。
【
図9】
図9は、ICTリソース確保数の比較例を示す説明図である。
【
図11】
図11は、配備対象のサービスの一例を示す説明図である。
【
図12】
図12は、アプリ性能/リソース情報の具体例を示す説明図(その1)である。
【
図13】
図13は、サービス構成情報1300の具体例を示す説明図である。
【
図14】
図14は、リソース割当状況情報1400の記憶内容の変遷例を示す説明図である。
【
図15A】
図15Aは、コンテナ管理情報1500の記憶内容の変遷例を示す説明図(その1)である。
【
図15B】
図15Bは、コンテナ管理情報1500の記憶内容の変遷例を示す説明図(その2)である。
【
図15C】
図15Cは、コンテナ管理情報1500の記憶内容の変遷例を示す説明図(その3)である。
【
図16】
図16は、実施例1にかかるリソースの使用状態を示す説明図(その1)である。
【
図17】
図17は、実施例1にかかるリソースの使用状態を示す説明図(その2)である。
【
図18】
図18は、実施例1にかかるリソースの使用状態を示す説明図(その3)である。
【
図19】
図19は、予備コンテナの第1の分類例を示す説明図である。
【
図20】
図20は、コンテナ構成および予備コンテナ構成の一例を示す説明図である。
【
図21】
図21は、管理サーバ201の資源管理処理の具体的処理手順の一例を示すフローチャートである。
【
図22】
図22は、予備コンテナ構成決定処理の具体的処理手順の一例を示すフローチャートである。
【
図23】
図23は、第1のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
【
図24】
図24は、管理サーバ201のリソース増強処理手順の一例を示すフローチャートである。
【
図25】
図25は、サービス構成情報2500の具体例を示す説明図である。
【
図26】
図26は、コンテナ管理情報2600の記憶内容の変遷例を示す説明図である。
【
図27A】
図27Aは、予備コンテナの第2の分類例を示す説明図(その1)である。
【
図27B】
図27Bは、予備コンテナの第2の分類例を示す説明図(その2)である。
【
図28】
図28は、実施例2にかかるリソースの使用状態を示す説明図である。
【
図29】
図29は、第2のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
【
図30】
図30は、サービス構成情報3000の具体例を示す説明図である。
【
図31】
図31は、アプリ性能/リソース情報の具体例を示す説明図(その2)である。
【
図32】
図32は、コンテナ管理情報3200の記憶内容の変遷例を示す説明図である。
【
図33】
図33は、予備コンテナの第3の分類例を示す説明図である。
【
図34】
図34は、実施例3にかかるリソースの使用状態を示す説明図である。
【
図35】
図35は、第3のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
【
図36】
図36は、リソース上限情報3600の具体例を示す説明図である。
【
図37】
図37は、コンテナ管理情報3700の記憶内容の変遷例を示す説明図である。
【
図38】
図38は、予備コンテナの第4の分類例を示す説明図である。
【
図39】
図39は、実施例4にかかるリソースの使用状態を示す説明図である。
【
図40】
図40は、第4のグループ分け処理の具体的処理手順の一例を示すフローチャート(その1)である。
【
図41】
図41は、第4のグループ分け処理の具体的処理手順の一例を示すフローチャート(その2)である。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる資源管理プログラム、資源管理方法、および資源管理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる資源管理方法の一実施例を示す説明図である。
図1において、資源管理装置101は、1以上のサービスの提供にかかる複数の処理装置それぞれに対応する予備用の予備処理装置に割り当てるリソースを管理するコンピュータである。サービスは、1または複数のアプリケーションにより提供される。
【0012】
処理装置は、サービスを提供するためのアプリケーションを実行する。処理装置は、例えば、コンテナまたは仮想マシンである。コンテナは、OS(Operating System)のカーネルを内部で分割して作成される、他と隔離されたユーザ空間に相当し、OSのプロセスのひとつとして動作する。
【0013】
仮想マシンは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。処理装置は、物理サーバであってもよい。予備用の予備処理装置は、例えば、性能不足に応じてリソースの増強を行う際にサービスに追加される処理装置である。
【0014】
リソースは、例えば、CPU(Central Processing Unit)、メモリ、ストレージ、アクセラレータなどのICTリソースである。アクセラレータは、例えば、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、スマートNIC(Network Interface Card)などである。
【0015】
ここで、ディスアグリゲーテッドなシステムでは、例えば、サービスの性能が要件を満たさなくなった場合、リソースを増強して処理性能を確保することが行われる。例えば、サービスにかかるトラフィックや負荷が閾値を超えた場合、新たなコンテナや仮想マシン(VM:Virtual Machine)をサービスに追加することが行われる。
【0016】
一方、リソースを増強する際に、その都度、新たなコンテナ等を生成する場合、コンテナ等を追加する作業に時間がかかる。例えば、ディスアグリゲーテッドなシステムにコンテナを追加するには、ICTリソースの電源投入やコンテナへの接続設定(例えば、コンテナとICTリソースとの紐付け)を行うことになり、コンテナを追加する作業に時間がかかる。
【0017】
このため、リソースの増強にかかる時間を短縮すべく、サービスを提供するためのアプリケーションを実行する予備コンテナ等を事前に準備する手法が考えられる。例えば、サービス提供用のコンテナの配備時に、サービスに合わせて事前に予備コンテナ用のICTリソースを確保して、電源投入、接続設定をしておき、コンテナの追加が必要になったタイミングで事前に準備していた予備コンテナをサービスに追加することが考えられる。
【0018】
しかし、この手法では、予備コンテナ等に割り当てたICTリソースの待機電力が発生し、予備コンテナ等にかかる消費電力が増大するという問題がある。例えば、10個の予備コンテナそれぞれに1つのICTリソースを割り当てた場合、10個のICTリソースを待機させることになる。また、全ての予備コンテナが同時に使われる可能性は低く、全てのICTリソースに電源投入して待機させることは効率的ではない。
【0019】
そこで、本実施の形態では、事前に電源投入して用意しておくリソースの数を抑えて、予備コンテナ等にかかる消費電力を削減する資源管理方法について説明する。ここで、資源管理装置101の処理例について説明する。
【0020】
図1の例では、稼働中のサービスを「サービスA,B,C」とする。また、サービスAの提供にかかる処理装置を「処理装置A1a,A2a,A3a」とする。サービスBの提供にかかる処理装置を「処理装置B1a,B2a」とする。サービスCの提供にかかる処理装置を「処理装置C1a」とする。
【0021】
また、処理装置A1aで使用されるリソースを「CPU:1、GPU:1」とする。なお、「CPU:1」は、1個のCPUを示す。「GPU:1」は、1個のGPUを示す。処理装置A2aで使用されるリソースを「CPU:1」とする。処理装置A3aで使用されるリソースを「CPU:2」とする。処理装置B1aで使用されるリソースを「CPU:1、GPU:1」とする。処理装置B2aで使用されるリソースを「CPU:1」とする。処理装置C1aで使用されるリソースを「CPU:2」とする。
【0022】
また、サービスA,B,Cの提供にかかる処理装置A1a,A2a,A3a,B1a,B2a,C1aに対応する予備用の予備処理装置として、「予備処理装置A1b,A2b,A3b,B1b,B2b,C1b」をそれぞれ生成する場合を想定する。
【0023】
この場合、資源管理装置101は、特徴情報110に基づいて、予備用の予備処理装置A1b~C1bのうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、予備用の予備処理装置A1b~C1bを分類する。
【0024】
ここで、特徴情報110は、サービスA,B,Cの提供にかかる処理装置A1a~C1aそれぞれの特徴を表す情報である。特徴情報110は、例えば、処理装置A1a~C1aそれぞれが、サービスA,B,Cのうちのいずれのサービスの提供にかかる処理装置であるかを表す。
【0025】
あるサービスに人気が集中した際には、そのサービスの提供にかかる全てのコンテナ(処理装置)でリソース増強が必要となる可能性が高い。このため、資源管理装置101は、例えば、特徴情報110に基づいて、予備用の予備処理装置A1b~C1bのうち、同じサービスの提供にかかる処理装置に対応する予備処理装置同士が同一グループとならないように、予備用の予備処理装置A1b~C1bを分類してもよい。
【0026】
図1の例では、処理装置A1a,A2a,A3aは、サービスAの提供にかかる処理装置である。サービスAの提供にかかる処理装置A1a,A2a,A3aに対応する予備処理装置は、予備処理装置A1b,A2b,A3bである。また、処理装置B1a,B2aは、サービスBの提供にかかる処理装置である。サービスBの提供にかかる処理装置B1a,B2aに対応する予備処理装置は、予備処理装置B1b,B2bである。また、処理装置C1aは、サービスCの提供にかかる処理装置である。サービスCの提供にかかる処理装置C1aに対応する予備処理装置は、予備処理装置C1bである。
【0027】
このため、資源管理装置101は、特徴情報110に基づいて、サービスAの提供にかかる処理装置A1a,A2a,A3aに対応する予備処理装置A1b,A2b,A3b同士が同一グループとならないように、予備用の予備処理装置A1b~C1bを分類する。また、資源管理装置101は、特徴情報110に基づいて、サービスBの提供にかかる処理装置B1a,B2aに対応する予備処理装置B1b,B2b同士が同一グループとならないように、予備用の予備処理装置A1b~C1bを分類する。
【0028】
ここでは、予備用の予備処理装置A1b~C1bのうち、予備処理装置A1b,B1bがグループG1に分類され、予備処理装置A2b,B2bがグループG2に分類され、予備処理装置A3b,C1bがグループG3に分類された場合を想定する。
【0029】
つぎに、資源管理装置101は、分類したグループG1~G3内の予備処理装置間でリソースを共有するように、グループG1~G3内の予備処理装置に重複してリソースを割り当てる。ここで、各予備処理装置A1b~C1bには、例えば、各処理装置A1a~C1aで使用されるリソースと同量のリソースが割り当てられる。
【0030】
例えば、予備処理装置A1bには、処理装置A1aと同量のリソース「CPU:1、GPU:1」が割り当てられる。予備処理装置B1bには、処理装置B1aと同量のリソース「CPU:1、GPU:1」が割り当てられる。この際、グループG1内の予備処理装置A1b,B1bには、同じリソースを予備処理装置A1b,B1b間で共有するように、リソースが割り当てられる。グループG1では、予備処理装置A1b,B1b間で1個のCPUを共有する。また、グループG1では、予備処理装置A1b,B1b間で1個のGPUが共有される。
【0031】
また、予備処理装置A2bには、処理装置A2aと同量のリソース「CPU:1」が割り当てられる。予備処理装置B2bには、処理装置B2aと同量のリソース「CPU:1」が割り当てられる。この際、グループG2内の予備処理装置A2b,B2bには、同じリソースを予備処理装置A2b,B2b間で共有するように、リソースが割り当てられる。グループG2では、予備処理装置A2b,B2b間で1個のCPUが共有される。
【0032】
また、予備処理装置A3bには、処理装置A3aと同量のリソース「CPU:2」が割り当てられる。予備処理装置C1bには、処理装置C1aと同量のリソース「CPU:2」が割り当てられる。この際、グループG3内の予備処理装置A3b,C1bには、同じリソースを予備処理装置A3b,C1b間で共有するように、リソースが割り当てられる。グループG3では、予備処理装置A3b,C1b間で2個のCPUが共有される。
【0033】
このように、資源管理装置101によれば、同じタイミングに使用される可能性が高い予備処理装置同士が別のリソース(ICTリソース)を使うように予備処理装置をグループ化することができる。換言すれば、資源管理装置101は、同じタイミングに使用される可能性が低い予備処理装置同士を、同じリソースを共有する同じグループにまとめることができる。これにより、資源管理装置101は、現構成で性能を満たせない場合に迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくリソースの数を抑えて消費電力を削減することができる。
【0034】
図1の例では、資源管理装置101は、リソースの確保数をCPU4個、GPU1個に抑えることができる。一方、予備処理装置間でリソースを共有せず、予備処理装置ごとにリソースを確保する場合、CPUが8個、GPUが2個必要となる。このため、資源管理装置101は、予備処理装置ごとにリソースを確保する場合に比べて、CPU4個分の消費電力と、GPU1個分の消費電力を削減することができる。また、同一グループに分類された予備処理装置同士は同じタイミングで必要となる可能性が低く、追加するコンテナ間でリソースの競合が発生しにくい。このため、資源管理装置101は、現構成で性能を満たせない場合に迅速なリソース増強を行うことができる。
【0035】
(情報処理システム200のシステム構成例)
つぎに、
図1に示した資源管理装置101を含む情報処理システム200のシステム構成例について説明する。ここでは、
図1に示した資源管理装置101を、情報処理システム200内の管理サーバ201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、ディスアグリゲーテッドなシステムに適用される。
【0036】
以下の説明では、サービスの提供にかかる処理装置として「コンテナ」を例に挙げて説明する。また、予備用の予備処理装置として「予備コンテナ」を例に挙げて説明する。
【0037】
図2は、情報処理システム200のシステム構成例を示す説明図である。
図2において、情報処理システム200は、管理サーバ201と、複数の運用サーバ202と、コンテナ管理装置203と、を含む。情報処理システム200において、管理サーバ201、運用サーバ202およびコンテナ管理装置203は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0038】
ここで、管理サーバ201は、1以上のサービスの提供にかかる複数のコンテナそれぞれに対応する予備コンテナに割り当てるリソースを管理するコンピュータである。コンテナや予備コンテナは、例えば、運用サーバ202により実行される。コンテナや予備コンテナに割り当てるリソースは、例えば、運用サーバ202により提供される。
【0039】
運用サーバ202は、コンテナ(予備コンテナを含む)を実行可能なコンピュータである。また、運用サーバ202は、仮想マシン(予備仮想マシンを含む)を実行可能であってもよい。また、運用サーバ202は、ネットワーク210を介してコンテナに割り当てるリソース(ICTリソース)を提供するコンピュータであってもよい。
【0040】
コンテナ管理装置203は、コンテナ(予備コンテナを含む)を管理するコンピュータである。コンテナ管理装置203は、例えば、管理サーバ201の制御に従って、運用サーバ202上にコンテナや予備コンテナを配備する。
【0041】
なお、ここでは、管理サーバ201とコンテナ管理装置203とを別体に設けることにしたが、これに限らない。例えば、コンテナ管理装置203は、管理サーバ201により実現されてもよい。また、コンテナ管理装置203は、複数の運用サーバ202のうちのいずれかの運用サーバ202により実現されてもよい。
【0042】
(管理サーバ201のハードウェア構成例)
つぎに、管理サーバ201のハードウェア構成例について説明する。
【0043】
図3は、管理サーバ201のハードウェア構成例を示すブロック図である。
図3において、管理サーバ201は、CPU301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0044】
ここで、CPU301は、管理サーバ201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0045】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0046】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、
図2に示した運用サーバ202、コンテナ管理装置203)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0047】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0048】
なお、管理サーバ201は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有していてもよい。また、管理サーバ201は、上述した構成部のうち、例えば、可搬型記録媒体I/F306、可搬型記録媒体307を有さなくてもよい。また、
図2に示した運用サーバ202およびコンテナ管理装置203についても、管理サーバ201と同様のハードウェア構成により実現することができる。ただし、運用サーバ202は、上述した構成部のほかに、例えば、コンテナ等に割り当て可能な各種ICTリソース(GPU、FPGAなど)を有する。
【0049】
(サービスの一例)
つぎに、
図4を用いて、情報処理システム200(
図2参照)において提供されるサービスについて説明する。ここでは、コンテナ(予備コンテナを含む)に割り当て可能なリソースを「CPU、GPU」とする。また、コンテナ(予備コンテナを含む)に割り当て可能なCPUを「CPU1~CPU16」とし、コンテナ(予備コンテナを含む)に割り当て可能なGPUを「GPU1~GPU10」とする。なお、CPU#の「#」は、CPUを一意に識別する番号(識別子)である。GPU#の「#」は、GPUを一意に識別する識別子である。
【0050】
図4は、稼働中のサービスの一例を示す説明図である。
図4において、サービスA,B,Cは、稼働中のサービスの一例である。サービスAは、アプリA1、アプリA2およびアプリA3を含む3段構成のサービスである。
図4中、A1aは、アプリA1を実行するコンテナを示す。A2aは、アプリA2を実行するコンテナを示す。A3aは、アプリA3を実行するコンテナを示す。
【0051】
コンテナA1a,A2a,A3aは、サービスAの提供にかかるコンテナである。ここで、アプリA1の実行に必要なリソースは、「CPU:1、GPU:1」である。コンテナA1aには、CPU1とGPU1が割り当てられている。また、アプリA2の実行に必要なリソースは、「CPU:1」である。コンテナA2aには、CPU2が割り当てられている。また、アプリA3の実行に必要なリソースは、「CPU:2」である。コンテナA3aには、CPU3とCPU4が割り当てられている。
【0052】
サービスBは、アプリB1およびアプリB2を含む2段構成のサービスである。
図4中、B1aは、アプリB1を実行するコンテナを示す。B2aは、アプリB2を実行するコンテナを示す。コンテナB1a,B2aは、サービスBの提供にかかるコンテナである。ここで、アプリB1の実行に必要なリソースは、「CPU:1、GPU:1」である。コンテナB1aには、CPU5とGPU2が割り当てられている。また、アプリB2の実行に必要なリソースは、「CPU:1」である。コンテナB2aには、CPU6が割り当てられている。
【0053】
サービスCは、アプリC1を含む1段構成のサービスである。
図4中、C1aは、アプリC1を実行するコンテナを示す。コンテナC1aは、サービスCの提供にかかるコンテナである。ここで、アプリC1の実行に必要なリソースは、「CPU:2」である。コンテナC1aには、CPU7とCPU8が割り当てられている。
【0054】
(管理サーバ201の機能的構成例)
つぎに、管理サーバ201の機能的構成例について説明する。
【0055】
図5は、管理サーバ201の機能的構成例を示すブロック図である。
図5において、管理サーバ201は、受付部501と、第1の算出部502と、電源管理部503と、配備部504と、第2の算出部505と、負荷監視部506と、を含む。受付部501~負荷監視部506は制御部500となる機能であり、具体的には、例えば、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0056】
受付部501は、サービスに関する要求性能を受け付ける。サービスは、1または複数のアプリにより提供される1または複数段構成のサービスである。例えば、
図4に示したサービスAは、アプリA1~A3により提供される3段構成のサービスである。要求性能は、サービスを提供するにあたり要求される性能を表す。要求性能は、例えば、サービスを提供するための各段のアプリごとの要求性能によって表される。
【0057】
具体的には、例えば、受付部501は、不図示のクライアント端末から受信することにより、サービスに関する性能要求を受け付ける。クライアント端末は、サービス提供元のユーザが使用するコンピュータである。また、受付部501は、不図示の入力装置を用いたユーザの操作入力により、サービスに関する性能要求を受け付けてもよい。
【0058】
第1の算出部502は、サービスの提供にかかるコンテナ構成を算出する。ここで、コンテナ構成は、サービスの提供にかかるコンテナを表す。コンテナ構成は、例えば、サービスを提供するにあたり必要となる各段のコンテナを示す。各段のコンテナは、各段のアプリを実行する。
【0059】
具体的には、例えば、第1の算出部502は、受け付けたサービスに関する要求性能とアプリ性能/リソース情報とに基づいて、サービスの提供にかかるコンテナ構成を算出する。アプリ性能/リソース情報は、サービスを提供するためのアプリごとの性能と必要リソースを示す。必要リソースは、アプリの実行に必要なリソース量である。
【0060】
例えば、サービスを、カメラ映像を解析して顔を認識する顔認識サービスとする。この場合、サービスを提供するためのアプリは、例えば、データ(画像)の圧縮を行うアプリ、AI(Artificial Intelligence)分析を行うアプリ、可視化を行うアプリなどである。
【0061】
アプリ性能/リソース情報は、例えば、不図示のクライアント端末から取得されてもよく、また、不図示の入力装置を用いたユーザの操作入力により取得されてもよい。アプリ性能/リソース情報の具体例については、例えば、
図12を用いて後述する。算出されたコンテナ構成は、例えば、後述の
図13に示すようなサービス構成情報1300に記憶される。
【0062】
また、第1の算出部502は、サービスの提供にかかるコンテナにリソースを割り当てる。リソースは、例えば、CPU、メモリ、ストレージ、アクセラレータなどのICTリソースである。具体的には、例えば、第1の算出部502は、リソース割当状況情報を参照して、算出したコンテナ構成の各コンテナに空きリソースを割り当てる。
【0063】
ここで、リソース割当状況情報は、コンテナ(予備コンテナを含む)に割り当て可能なリソースそれぞれの割り当て状況を特定可能な情報である。コンテナに割り当てるリソース量(必要リソース)は、例えば、アプリ性能/リソース情報から特定される。例えば、
図4に示したサービスAの提供にかかるコンテナA1aの必要リソースは、「CPU:1、GPU:1」である。
【0064】
リソース割当状況情報の記憶内容については、例えば、
図14を用いて後述する。各コンテナのリソース割り当て結果は、例えば、後述の
図15Aに示すようなコンテナ管理情報1500に記憶される。
【0065】
電源管理部503は、コンテナに割り当てられたリソースの電源を投入する。コンテナ(予備コンテナを含む)に割り当て可能なリソースは、例えば、消費電力を抑えるため、未割り当ての状態では電源断(電源OFF)となっている。具体的には、例えば、電源管理部503は、コンテナに割り当てられたリソースを有する運用サーバ202に対して、リソースの電源投入指示を送信する。
【0066】
この結果、運用サーバ202において、コンテナに割り当てられたリソースの電源が投入される。電源投入指示は、例えば、運用サーバ202へのコマンドや、PCIe(Peripheral Component Interconnect Express)スイッチのAPI(Application Programming Interface)を叩くことにより行われる。
【0067】
配備部504は、サービスの提供にかかるコンテナを配備する。具体的には、例えば、配備部504は、
図2に示したコンテナ管理装置203に対して、各コンテナに割り当てられたリソースの接続設定と、各コンテナの配備(起動)とを要求する。この際、配備部504は、例えば、トラフィック分散などの設定を行ってもよい。
【0068】
コンテナ管理装置203に対する要求は、例えば、既存のコンテナ管理ソフトのAPIを叩くことにより行われる。この結果、サービスの提供にかかるコンテナが起動される。コンテナが配備されると、例えば、後述の
図15Aに示すようなコンテナ管理情報1500が更新される。
【0069】
例えば、
図4に示したサービスAの提供にかかるコンテナA1a,A2a,A3aが起動されると、サービスAの運用が開始される。また、サービスBの提供にかかるコンテナB1a,B2aが起動されると、サービスBの運用が開始される。また、サービスCの提供にかかるコンテナC1aが起動されると、サービスCの運用が開始される。
【0070】
第2の算出部505は、算出されたコンテナ構成に基づいて、サービスの提供にかかる予備コンテナ構成を算出する。ここで、予備コンテナ構成は、サービスの提供にかかるコンテナに対応する予備コンテナを表す。予備コンテナ構成は、例えば、サービスを提供するにあたり準備(生成)する各段の予備コンテナを示す。各段の予備コンテナは、各段のアプリを実行する。
【0071】
具体的には、例えば、第2の算出部505は、算出されたコンテナ構成を参照して、サービスの各段のアプリを実行するコンテナと同一性能の予備コンテナを含む予備コンテナ構成を算出する。各段の予備コンテナ数は、例えば、1台とする。ただし、各段の予備コンテナ数は、各段のコンテナ数と同数としてもよい。
【0072】
算出された予備コンテナ構成は、例えば、コンテナ管理情報1500に記憶される。
【0073】
また、第2の算出部505は、複数のコンテナそれぞれに対応する予備用の予備コンテナのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する。ここで、複数のコンテナは、1以上のサービスの提供にかかる複数のコンテナである。1以上のサービスは、例えば、
図4に示したサービスA,B,Cである。
【0074】
具体的には、例えば、第2の算出部505は、複数のコンテナそれぞれの特徴を表す特徴情報に基づいて、予備用の予備コンテナを分類する。ここで、特徴情報は、例えば、複数のコンテナそれぞれが、1以上のサービスのうちのいずれのサービスの提供にかかるコンテナであるかを表す情報である。特徴情報は、例えば、不図示のクライアント端末から取得されてもよく、また、不図示の入力装置を用いたユーザの操作入力により取得されてもよい。
【0075】
例えば、あるサービスに人気が集中した際は、そのサービスの提供にかかる全てのコンテナでリソース増強が必要となる可能性が高いといえる。このため、第2の算出部505は、サービス構成を考慮して、予備用の予備コンテナのうち同じタイミングで使用される可能性が相対的に高い予備コンテナを異なるグループに分類する。
【0076】
より詳細に説明すると、例えば、第2の算出部505は、特徴情報に基づいて、予備用の予備コンテナのうち、同じサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する(後述する実施例1に対応)。
【0077】
また、特徴情報は、例えば、複数のコンテナそれぞれの負荷状態を表す情報であってもよい。コンテナの負荷状態は、例えば、データ転送速度(Mbps)によって表される。例えば、処理性能に余裕がないコンテナは、今後すぐにリソース増強が必要となる可能性が高いといえる。このため、第2の算出部505は、コンテナの処理性能の余裕を考慮して、同じタイミングで使用される可能性が高いといえる予備コンテナを異なるグループに分類する。
【0078】
より詳細に説明すると、例えば、第2の算出部505は、特徴情報に基づいて、予備用の予備コンテナのうち、処理性能の余裕度合いが閾値以下となるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい(後述する実施例2に対応)。処理性能の余裕度合いは、例えば、アプリの性能と現在の負荷(負荷状態)との差分によって表される。現在の負荷は、例えば、性能要件や測定値から特定される。閾値は、任意に設定可能である。
【0079】
また、第2の算出部505は、特徴情報に基づいて、予備用の予備コンテナのうち、性能要件に対する処理性能の余裕度合いが相対的に低いコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい。余裕度合いが相対的に低いコンテナは、例えば、複数のコンテナのうち、余裕度合いが低いほうから所定数のコンテナである。所定数は、任意に設定可能である。
【0080】
また、特徴情報は、例えば、複数のコンテナそれぞれに対応するサービスの需要傾向を表す情報であってもよい。例えば、需要傾向が似ているサービス同士は、ピークが重なりやすく、同じタイミングでリソース増強が必要となる可能性が高いといえる。このため、第2の算出部505は、サービスの需要傾向を考慮して、同じタイミングで使用される可能性が高いといえる予備コンテナを異なるグループに分類する。
【0081】
より詳細に説明すると、例えば、第2の算出部505は、特徴情報に基づいて、予備用の予備コンテナのうち、同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい(後述する実施例3に対応)。サービスの需要傾向は、例えば、サービスの内容から判断されてもよい。
【0082】
例えば、サービスAとサービスBがオンラインゲームの場合、どちらも夜に負荷が増加する傾向にある。この場合、第2の算出部505は、例えば、サービスA用の予備コンテナとサービスB用の予備コンテナのグループを分ける。また、サービスCが企業システムで、サービスDが動画配信システムの場合、サービスCは昼間に負荷が高くなり、サービスDは夜に負荷が高くなる傾向にある。この場合、第2の算出部505は、例えば、サービスC用の予備コンテナとサービスD用の予備コンテナを同じグループにまとめてもよい。
【0083】
また、消費電力やコストの観点から、予備用の予備コンテナに割り当てるリソース量を抑えたい場合がある。この場合、第2の算出部505は、リソース上限情報と特徴情報とに基づいて、予備用の予備コンテナを分類してもよい。リソース上限情報は、予備用の予備コンテナに割り当て可能なリソース量の上限を表す情報である。リソース上限情報は、例えば、不図示のクライアント端末から取得されてもよく、また、不図示の入力装置を用いたユーザの操作入力により取得されてもよい。
【0084】
具体的には、例えば、第2の算出部505は、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい(後述する実施例4に対応)。
【0085】
より詳細に説明すると、例えば、第2の算出部505は、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち、同じサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい。
【0086】
また、第2の算出部505は、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち、処理性能の余裕度合いが閾値以下となるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい。
【0087】
また、第2の算出部505は、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち、同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類してもよい。
【0088】
また、第2の算出部505は、分類したグループ内の予備コンテナ間でリソースを共有するように、グループ内の予備コンテナに重複してリソースを割り当てる。予備コンテナに割り当てるリソース量(必要リソース)は、例えば、予備コンテナに対応するコンテナと同じである。
【0089】
具体的には、例えば、第2の算出部505は、分類したグループ内の予備コンテナに割り当てるリソース量(必要リソース)から、グループごとの必要リソース量を算出する。グループの必要リソース量は、グループ内の予備コンテナに重複してリソースを割り当てるのに必要となるリソース量である。
【0090】
そして、第2の算出部505は、算出したグループごとの必要リソース量に基づいて、グループ内の予備コンテナ間でリソースを共有するように、グループ内の予備コンテナに重複してリソースを割り当てる。この際、第2の算出部505は、例えば、リソース割当状況情報を参照して、グループ内の予備コンテナに空きリソースを割り当てる。なお、予備コンテナ間でリソースを共有する方法は、例えば、既存のいかなる技術を用いてもよい。
【0091】
電源管理部503は、予備コンテナに割り当てられたリソースの電源を投入する。具体的には、例えば、電源管理部503は、予備コンテナに割り当てられたリソースを有する運用サーバ202に対して、リソースの電源投入指示を送信する。この結果、運用サーバ202において、予備コンテナに割り当てられたリソースの電源が投入される。
【0092】
配備部504は、サービスの提供にかかるコンテナに対応する予備コンテナを配備する。具体的には、例えば、配備部504は、コンテナ管理装置203に対して、各予備コンテナに割り当てられたリソースの接続設定と、各予備コンテナの配備(起動)とを要求する。この際、配備部504は、例えば、トラフィック分散などの設定を行ってもよい。
【0093】
この結果、サービスの提供にかかるコンテナに対応する予備コンテナが起動される。予備コンテナが配備されると、例えば、コンテナ管理情報1500が更新される。
【0094】
また、電源管理部503は、コンテナ(予備コンテナを含む)に割り当て可能なリソースのうち、割り当て済みのリソース以外のリソースの電源を省電力モードに設定してもよい。省電力モードは、消費電力を抑えるために、リソースを低消費電力状態や低性能状態とするモードである。
【0095】
具体的には、例えば、電源管理部503は、割り当て済みのリソース以外のリソースを有する運用サーバ202に対して、電源モード変更指示を送信する。電源モード変更指示は、割り当て済みのリソース以外のリソースの電源モードを、省電力モードに設定するよう指示するものである。
【0096】
この結果、運用サーバ202において、割り当て済みのリソース以外のリソースが省電力モードに設定される。これにより、電源管理部503は、コンテナ(予備コンテナを含む)に割り当てたリソースの電源を投入する際に、電源断の場合に比べて通常状態に遷移するまでの時間を短縮することができる。
【0097】
負荷監視部506は、サービスの提供にかかるコンテナの負荷を監視し、リソースの増強を行うか否かを判断する。具体的には、例えば、負荷監視部506は、コンテナのトラフィック量が所定量を超えた場合に、そのコンテナについてのリソースの増強を行うと判断してもよい。所定量は、任意に設定可能である。
【0098】
第1の算出部502は、サービスの提供にかかるコンテナについてリソースの増強を行うと判断された場合、予備用の予備コンテナの中から、サービスに追加する予備コンテナを特定する。そして、第1の算出部502は、特定した予備コンテナをサービスに追加する。また、第1の算出部502は、追加した予備コンテナが同じグループ内の他の予備コンテナと共有しているリソースを占有するようにコンテナ構成を更新する。
【0099】
電源管理部503は、追加した予備コンテナと同じグループ内の他の予備コンテナのみに割り当てられたリソースの電源をOFF状態にする。具体的には、例えば、電源管理部503は、他の予備コンテナのみに割り当てられたリソースを有する運用サーバ202に対して、リソースの電源断指示を送信する。この結果、運用サーバ202において、他の予備コンテナのみに割り当てられたリソースの電源がOFF状態となる。
【0100】
なお、上述した管理サーバ201の機能部(受付部501~負荷監視部506)は、情報処理システム200内の複数のコンピュータ(例えば、管理サーバ201、コンテナ管理装置203)により実現されることにしてもよい。
【0101】
(管理サーバ201の動作例)
図6を用いて、サービスの提供にかかるコンテナに対応する予備コンテナを生成する際の管理サーバ201の動作例について説明する。ここでは、サービスとして、
図4に示したサービスA,B,Cを例に挙げて説明する。
【0102】
図6は、管理サーバ201の動作例を示す説明図である。
図6において、第2の算出部505は、各サービスA,B,Cの提供にかかるコンテナ構成に基づいて、各サービスA,B,Cの提供にかかる予備コンテナ構成を算出する。
【0103】
ここでは、第2の算出部505は、各サービスA,B,Cの提供にかかるコンテナA1a,A2a,A3a,B1a,B2a,C1a(
図4参照)それぞれに対応する予備コンテナA1b,A2b,A3b,B1b,B2b,C1bを生成する。
【0104】
つぎに、第2の算出部505は、予備コンテナA1b~C1bのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備コンテナA1b~C1bを分類する。具体的には、例えば、第2の算出部505は、同じサービス用の予備コンテナ同士が同一グループとならないように、予備コンテナA1b~C1bを分類する。
【0105】
ここでは、グループG1に予備コンテナA1b,B1bが分類され、グループG2に予備コンテナA2b,B2bが分類され、グループG3に予備コンテナA3b,C1bが分類されている。
【0106】
これにより、第2の算出部505は、リソース増強のタイミングが重なりそうな同じサービス用の予備コンテナが分かれるようにグループ化することができる。例えば、サービスA用の予備コンテナA1b、A2b、A3bが異なるグループに分類される。また、サービスA用の予備コンテナB1b,B2bが異なるグループに分類される。
【0107】
そして、第2の算出部505は、分類したグループG1~G3内の予備コンテナ間でリソースを共有するように、グループG1~G3内の予備コンテナに重複してリソースを割り当てる。各予備コンテナA1b~C1bに割り当てるリソース量(必要リソース)は、例えば、各予備コンテナA1b~C1bに対応するコンテナA1a~C1aと同じである。
【0108】
例えば、第2の算出部505は、グループG1内の予備コンテナA1b,B1b間で共有するように、グループG1内の予備コンテナA1b,B1bに重複してCPU1個、GPU1個を割り当てる。また、第2の算出部505は、グループG2内の予備コンテナA2b,B2b間で共有するように、グループG2内の予備コンテナA2b,B2bに重複してCPU1個を割り当てる。また、第2の算出部505は、グループG3内の予備コンテナA3b,C1b間で共有するように、グループG3内の予備コンテナA3b,C1bに重複してCPU2個を割り当てる。
【0109】
このように、管理サーバ201は、同じタイミングに使用される可能性が高い予備コンテナ同士が別のICTリソースを使うように予備コンテナをグループ化することができる。これにより、管理サーバ201は、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を抑えることができる。
【0110】
(管理サーバ201の資源管理処理手順)
つぎに、管理サーバ201の資源管理処理手順について説明する。管理サーバ201の資源管理処理は、例えば、1以上のサービスの提供にかかる複数のコンテナそれぞれに対応する予備用の予備コンテナを生成する際に実行される。
【0111】
図7は、管理サーバ201の資源管理処理手順の一例を示すフローチャートである。
図7において、管理サーバ201は、1以上のサービスの提供にかかるコンテナ構成に基づいて、1以上のサービスの提供にかかる予備コンテナ構成を算出する(ステップS701)。
【0112】
つぎに、管理サーバ201は、算出した予備コンテナ構成に基づいて、予備用の予備コンテナのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する(ステップS702)。予備用の予備コンテナは、1以上のサービスの提供にかかる複数のコンテナそれぞれに対応する予備コンテナである。
【0113】
そして、管理サーバ201は、分類したグループ内の予備コンテナに割り当てるリソース量(必要リソース)から、グループごとの必要リソース量を算出する(ステップS703)。つぎに、管理サーバ201は、算出したグループごとの必要リソース量に基づいて、グループ内の予備コンテナ間でリソースを共有するように、グループ内の予備コンテナに重複してリソースを割り当てる(ステップS704)。そして、管理サーバ201は、本フローチャートによる一連の処理を終了する。
【0114】
これにより、管理サーバ201は、同じタイミングに使用される可能性が高い予備コンテナ同士が別のリソースを使うように予備コンテナをグループ化することができる。
【0115】
(コンテナの追加スピード、ICTリソース確保数および消費電力の比較例)
つぎに、
図8~
図10を用いて、手法別のコンテナの追加スピード、ICTリソース確保数および消費電力の比較例について説明する。ここでは、他手法1を、リソース増強が必要となった際にコンテナ、ICTリソースを起動、接続、追加する手法とする。また、他手法2を、各コンテナに対応する予備コンテナ、ICTリソースを事前に準備しておき、リソース増強が必要となった際にコンテナを追加する手法である。本手法は、本資源管理方法に対応する。
【0116】
図8は、コンテナの追加スピードの比較例を示す説明図である。
図8において、グラフ801~803は、リソースの増強要求に応じて、サービスの提供にかかるコンテナを追加するまでの手法別の時間の長さを表す。
図8中、「電源投入」は、ICTリソースの電源投入にかかる時間を示す。「接続」は、ICTリソースの接続設定にかかる時間を示す。「起動」は、コンテナの起動にかかる時間を示す。「追加」は、コンテナの追加にかかる時間を示す。
【0117】
グラフ801~803によれば、本手法は、他手法1に比べてコンテナを追加するまでの時間が短縮されていることがわかる。
【0118】
図9は、ICTリソース確保数の比較例を示す説明図である。
図9において、グラフ901~903は、コンテナ追加前のICTリソース確保数を表す(縦:ICTリソース確保数、横:手法)。また、グラフ904~906は、コンテナ追加後のICTリソース確保数を表す(縦:ICTリソース確保数、横:手法)。
【0119】
図9中、A1は、アプリA1(
図4参照)の実行に使用されるICTリソース数を示す。A2は、アプリA2(
図4参照)の実行に使用されるICTリソース数を示す。A3は、アプリA3(
図4参照)の実行に使用されるICTリソース数を示す。B1は、アプリB1(
図4参照)の実行に使用されるICTリソース数を示す。B2は、アプリB2(
図4参照)の実行に使用されるICTリソース数を示す。C1は、アプリC1(
図4参照)の実行に使用されるICTリソース数を示す。予備は、予備コンテナに使用されるICTリソース数を示す。
【0120】
グラフ901~906によれば、本手法は、他手法2に比べてICTリソース数が、5個(25%:サービス用10個+予備用10個→サービス用10個+予備用5個)削減されていることがわかる。
【0121】
図10は、消費電力の比較例を示す説明図である。
図10において、グラフ1001~1003は、コンテナ追加前の消費電力を表す(縦:消費電力の大きさ、横:手法)。また、グラフ1004~1006は、コンテナ追加後の消費電力を表す(縦:消費電力の大きさ、横:手法)。追加後は、予備コンテナを1個、予備から稼働中にするため消費電力が増加する。
【0122】
図10中、A1は、アプリA1(
図4参照)の実行にかかる消費電力を示す。A2は、アプリA2(
図4参照)の実行にかかる消費電力を示す。A3は、アプリA3(
図4参照)の実行にかかる消費電力を示す。B1は、アプリB1(
図4参照)の実行にかかる消費電力を示す。B2は、アプリB2(
図4参照)の実行にかかる消費電力を示す。C1は、アプリC1(
図4参照)の実行にかかる消費電力を示す。予備は、予備コンテナにかかる消費電力を示す。
【0123】
グラフ1001~1006によれば、本手法は、他手法2に比べて消費電力が、1.5(追加前12%、追加後14%)削減されていることがわかる。
【0124】
以上説明したように、実施の形態にかかる管理サーバ201(資源管理装置101)によれば、特徴情報に基づいて、予備用の予備コンテナのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類することができる。特徴情報は、1以上のサービスの提供にかかる複数のコンテナそれぞれの特徴を表す情報である。予備用の予備コンテナは、複数のコンテナそれぞれに対応する予備コンテナを含む。そして、管理サーバ201によれば、分類したグループ内の予備コンテナ間でリソースを共有するように、グループ内の予備コンテナに重複してリソースを割り当てることができる。リソースは、例えば、CPU、メモリ、ストレージ、アクセラレータなどのICTリソースである。
【0125】
これにより、管理サーバ201は、同じタイミングに使用される可能性が高い予備コンテナ同士が別のリソース(ICTリソース)を使うように予備コンテナをグループ化することができる。これにより、管理サーバ201は、迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を抑えることができる。例えば、管理サーバ201は、リソースの増強が必要となった時に、追加するコンテナ間でリソースの競合が発生して、コンテナ追加に時間がかかるのを防ぐことができる。
【0126】
また、管理サーバ201によれば、複数のコンテナそれぞれが1以上のサービスのうちのいずれのサービスの提供にかかるコンテナであるかを表す特徴情報に基づいて、予備用の予備コンテナのうち、同じサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類することができる。
【0127】
これにより、管理サーバ201は、リソース増強のタイミングが重なりそうな同じサービス用の予備コンテナが分かれるようにグループ化することができる。
【0128】
また、管理サーバ201によれば、複数のコンテナそれぞれの負荷状態を表す特徴情報に基づいて、予備用の予備コンテナのうち処理性能の余裕度合いが閾値以下となるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類することができる。
【0129】
これにより、管理サーバ201は、現状のサービス構成における処理性能の余裕が少ないコンテナに対応する予備コンテナが分かれるようにグループ化することができる。
【0130】
また、管理サーバ201によれば、複数のコンテナそれぞれに対応するサービスの需要傾向を表す特徴情報に基づいて、予備用の予備コンテナのうち、同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類することができる。
【0131】
これにより、管理サーバ201は、サービスの内容や需要傾向が似ているサービス用の予備コンテナが分かれるようにグループ化することができる。
【0132】
また、管理サーバ201によれば、リソース上限情報と特徴情報とに基づいて、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち、同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類することができる。リソース上限情報は、予備用の予備コンテナに割り当て可能なリソース量の上限を表す情報である。
【0133】
これにより、管理サーバ201は、消費電力、コストなどの観点から予備用のICTリソース数を抑えつつ、同じタイミングに使用される可能性が高い予備コンテナ同士が別のリソース(ICTリソース)を使うように予備コンテナをグループ化することができる。
【0134】
また、管理サーバ201によれば、予備用の予備コンテナに割り当て可能なリソースのうち、グループ内の予備コンテナに割り当てたリソースの電源を投入することができる。予備用の予備コンテナに割り当て可能なリソースは、未割り当ての状態では電源断(電源OFF状態)である。
【0135】
これにより、管理サーバ201は、未割り当ての状態のICTリソースにかかる消費電力を抑えることができる。
【0136】
また、管理サーバ201によれば、予備用の予備コンテナに割り当て可能なリソースのうち、割り当て済みのリソース以外のリソースの電源を省電力モード(例えば、低消費電力状態、低性能状態)に設定することができる。
【0137】
これにより、管理サーバ201は、未割り当ての状態のICTリソースにかかる消費電力を抑えつつ、予備コンテナに割り当てたリソースの電源を投入する際に、電源断の場合に比べて通常状態に遷移するまでの時間を短縮することができる。
【0138】
これらのことから、実施の形態にかかる管理サーバ201によれば、ユーザからの性能要件を満たしたインフラを低消費電力で構築することが可能となる。
【0139】
(実施例1)
つぎに、管理サーバ201の実施例1について説明する。実施例1では、予備用の予備コンテナのうち、同じサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する場合について説明する。
【0140】
(配備対象のサービス)
まず、
図11を用いて、配備対象のサービスについて説明する。
【0141】
図11は、配備対象のサービスの一例を示す説明図である。
図11において、サービスA,Bは、配備対象のサービスの一例である。サービスAは、アプリA1およびアプリA2を含む2段構成のサービスである。サービスBは、アプリB1およびアプリB2を含む2段構成のサービスである。
【0142】
(アプリ性能/リソース情報の具体例)
つぎに、
図12を用いて、アプリ性能/リソース情報の具体例について説明する。
【0143】
図12は、アプリ性能/リソース情報の具体例を示す説明図(その1)である。
図12において、アプリ性能/リソース情報1200は、アプリと性能と必要リソース(CPU、GPU)との対応関係を示す。
図12中、CPUの数は、同一性能のCPUの数を示す。GPUの数は、同一性能のGPUの数を示す。
【0144】
例えば、アプリ性能/リソース情報1200は、アプリA1の性能が「80Mbps」であり、アプリA1の必要リソースが「CPU:2、GPU:0」であることを示す。
【0145】
以下、実施例1にかかる動作例について説明する。
【0146】
まず、受付部501は、各サービスA,Bに関する要求性能を受け付ける。ここでは、サービスAに関する要求性能を「40Mbps」とし、サービスBに関する要求性能を「50Mbps」とする。
【0147】
つぎに、第1の算出部502は、各サービスA,Bの提供にかかるコンテナ構成を算出する。具体的には、例えば、第1の算出部502は、サービスAに関する要求性能「40Mbps」と、
図12に示したアプリ性能/リソース情報1200とに基づいて、サービスAの提供にかかるコンテナ構成を算出する。
【0148】
ここで、サービスAの要求性能「40Mbps」に対して、サービスAの1段目のアプリA1の性能は「80Mbps」である。このため、第1の算出部502は、サービスAの1段目のコンテナ数を「1」とする。また、サービスAの要求性能「40Mbps」に対して、サービスAの2段目のアプリA2の性能は「30Mbps」である。このため、第1の算出部502は、サービスAの2段目のコンテナ数を「2」とする。
【0149】
また、第1の算出部502は、サービスBに関する要求性能「50Mbps」と、アプリ性能/リソース情報1200とに基づいて、サービスBの提供にかかるコンテナ構成を算出する。ここで、サービスBの要求性能「50Mbps」に対して、サービスBの1段目のアプリB1の性能は「100Mbps」である。このため、第1の算出部502は、サービスBの1段目のコンテナ数を「1」とする。また、サービスBの要求性能「50Mbps」に対して、サービスBの2段目のアプリB2の性能は「50Mbps」である。このため、第1の算出部502は、サービスBの2段目のコンテナ数を「1」とする。
【0150】
算出されたコンテナ構成は、例えば、
図13に示すようなサービス構成情報1300に記憶される。
【0151】
図13は、サービス構成情報1300の具体例を示す説明図である。
図13において、サービス構成情報1300は、各サービスA,Bの提供にかかるコンテナ構成を示す。サービス構成情報1300は、サービスAを提供するにあたり、1段目のアプリA1を実行する1台のコンテナA1aと、2段目のアプリA2を実行する2台のコンテナA2a,A2bとが必要であることを示す。
【0152】
また、サービス構成情報1300は、サービスBを提供するにあたり、1段目のアプリB1を実行する1台のコンテナB1aと、2段目のアプリB2を実行する1台のコンテナB2aとが必要であることを示す。なお、A1a,A2a,A2b,B1a,B2aは、管理サーバ201において付与されるコンテナ(予備コンテナを含む)を一意に識別する識別子である。
【0153】
例えば、コンテナA1aは、アプリA1を実行する1台目のコンテナを示す。コンテナA2aは、アプリA2を実行する1台目のコンテナを示す。コンテナA2bは、アプリA2を実行する2台目のコンテナを示す。
【0154】
つぎに、第1の算出部502は、各サービスA,Bの提供にかかるコンテナA1a~B2aにリソースを割り当てる。具体的には、例えば、第1の算出部502は、アプリ性能/リソース情報1200を参照して、各コンテナA1a~B2aに割り当てるリソース量(必要リソース)を特定する。
【0155】
例えば、コンテナA1aのリソース量は、アプリA1の必要リソース「CPU:2、GPU:0」に対応する。また、コンテナB1aのリソース量は、アプリB1の必要リソース「CPU:2、GPU:1」に対応する。
【0156】
そして、第1の算出部502は、
図14に示すようなリソース割当状況情報1400を参照して、各コンテナA1a~B2aに、特定したリソース量の空きリソースを割り当てる。ここで、リソース割当状況情報1400の記憶内容について説明する。ここでは、コンテナ(予備コンテナを含む)に割り当て可能なリソースを「CPU1~CPU16、GPU1~GPU10」とする。
【0157】
図14は、リソース割当状況情報1400の記憶内容の変遷例を示す説明図である。
図14において、リソース割当状況情報1400は、コンテナ(予備コンテナを含む)に割り当て可能なリソースごとの割り当て状況を示す。種類は、リソースの種類を示す。ONは、割り当て済みの状態を示す。OFFは、未割り当ての状態を示す。
【0158】
(14-1)に示すリソース割当状況情報1400は、CPU1~CPU16、GPU1~GPU10が未割り当ての状態であることを示す。第1の算出部502は、例えば、リソース割当状況情報1400を参照して、各コンテナA1a~B2aに、番号が若い順から未割り当てのリソースを割り当てる。
【0159】
例えば、第1の算出部502は、コンテナA1aにCPU1,CPU2を割り当てる。第1の算出部502は、コンテナA2aにCPU3およびGPU1を割り当てる。第1の算出部502は、コンテナA2bにCPU4およびGPU2を割り当てる。第1の算出部502は、コンテナB1aにCPU5,CPU6およびGPU3を割り当てる。第1の算出部502は、コンテナB2aにCPU7およびGPU4を割り当てる。
【0160】
この結果、(14-2)に示すリソース割当状況情報1400のように、CPU1~CPU7がONとなり、GPU1~GPU4がONとなる。つぎに、電源管理部503は、各コンテナA1a~B2aに割り当てられたリソースの電源を投入する。そして、配備部504は、各サービスA,Bの提供にかかるコンテナA1a~B2aを配備する。
【0161】
各コンテナA1a~B2aの稼働状態は、例えば、
図15A~
図15Cに示すようなコンテナ管理情報1500により管理される。
【0162】
図15A~
図15Cは、コンテナ管理情報1500の記憶内容の変遷例を示す説明図である。
図15A~
図15Cにおいて、コンテナ管理情報1500は、サービスA,Bの提供にかかる各コンテナのリソース割り当て結果および稼働状態を示す。
図15A~
図15C中、コンテナIDは、コンテナの識別子である。CPU番号は、コンテナに割り当てられたCPUの識別子である。GPU番号は、コンテナに割り当てられたGPUの識別子である。状態は、コンテナの稼働状態を示す。
【0163】
図15Aの(15-1)に示すコンテナ管理情報1500では、各コンテナA1a~B2aのリソース割り当て結果および稼働状態が示されている。状態「稼働」は、コンテナが稼働中であることを示す。
【0164】
ここで、
図16~
図18を用いて、サービスA,Bの提供にかかるコンテナ(予備コンテナを含む)に割り当てられたリソースの使用状態について説明する。
【0165】
図16~
図18は、実施例1にかかるリソースの使用状態を示す説明図である。
図16~
図18において、運用サーバ202内のCPU1~CPU16およびGPU1~GPU10は、コンテナ(予備コンテナを含む)に割り当て可能なリソースを表す。なお、
図16~
図18中、運用サーバ202は、1台以上の運用サーバ202を表す。また、CPU1~CPU16は、同一性能のCPUである。GPU1~GPU10は、同一性能のGPUである。
【0166】
図16に示す例では、コンテナA1a~B2aに割り当てられたリソースの使用状態が「電源ON(使用中)」となっている。使用状態「電源ON(使用中)」は、電源が投入されて、サービスに使用されている状態を示す。また、コンテナA1a~B2aに割り当てられたリソース以外のリソースの使用状態は、「電源OFF」となっている。使用状態「電源OFF」は、電源が投入されていない状態を示す。
【0167】
コンテナA1a~B2aの配備が完了すると、サービスA,Bを提供可能となる。
【0168】
つぎに、第2の算出部505は、
図13に示したサービス構成情報1300に基づいて、サービスA,Bの提供にかかる予備コンテナ構成を算出する。具体的には、例えば、第2の算出部505は、サービスAの各段のアプリA1,A2を実行するコンテナA1a,A2aと同一性能の予備コンテナA1b,A2cを生成すると決定する。
【0169】
また、第2の算出部505は、サービスBの各段のアプリB1,B2を実行するコンテナB1a,B2aと同一性能の予備コンテナB1b,B2bを生成すると決定する。予備コンテナ構成は、例えば、コンテナ管理情報1500に記憶される。
図15Aの(15-2)に示すコンテナ管理情報1500では、予備コンテナA1b,A2c,B1b,B2bが追加されている。
【0170】
つぎに、第2の算出部505は、サービス構成情報1300に基づいて、予備コンテナA1b,A2c,B1b,B2bのうち、同じサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2bを分類する。
【0171】
ここで、
図19を用いて、予備コンテナA1b,A2c,B1b,B2bの分類例について説明する。
【0172】
図19は、予備コンテナの第1の分類例を示す説明図である。
図19において、予備コンテナA1b,A2c,B1b,B2bは、サービスA,Bの提供にかかる予備用のコンテナである。第2の算出部505は、例えば、同じサービスの予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2bそれぞれを順番にグループ分けする。
【0173】
まず、第2の算出部505は、予備コンテナA1bをグループG1に分類する。つぎに、第2の算出部505は、予備コンテナA2cを、同じサービスAの予備コンテナA1bとは異なるグループG2に分類する。つぎに、第2の算出部505は、予備コンテナB1bをグループG1に分類する。そして、第2の算出部505は、予備コンテナB2bを、同じサービスBの予備コンテナB1bとは異なるグループG2に分類する。
【0174】
これにより、第2の算出部505は、同じサービスの予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2bをグループ分けすることができる。
【0175】
つぎに、第2の算出部505は、分類したグループG1,G2内の予備コンテナ間でリソースを共有するように、グループG1,G2内の予備コンテナに重複してリソースを割り当てる。具体的には、例えば、まず、第2の算出部505は、グループG1,G2内の予備コンテナに割り当てるリソース量(必要リソース)から、グループG1,G2ごとの必要リソース量を算出する。
【0176】
ここで、グループG1内の予備コンテナA1bの必要リソースは「CPU:2」である。グループG1内の予備コンテナB1bの必要リソースは「CPU:2、GPU:1」である。このため、グループG1内の予備コンテナ間でリソースを共有する場合、グループG1の必要リソース量は「CPU:2、GPU:1」となる(例えば、
図19参照)。
【0177】
また、グループG2内の予備コンテナA2cの必要リソースは「CPU:1、GPU:1」である。グループG2内の予備コンテナB2bの必要リソースは「CPU:1、GPU:1」である。このため、グループG2内の予備コンテナ間でリソースを共有する場合、グループG2の必要リソース量は「CPU:1、GPU:1」となる(例えば、
図19参照)。
【0178】
つぎに、第2の算出部505は、グループG1,G2ごとの必要リソース量に基づいて、グループG1,G2に割り当てるリソースを決定する。具体的には、例えば、第2の算出部505は、
図14の(14-2)に示したリソース割当状況情報1400を参照して、グループG1,G2に、必要リソース量分の空きリソースを割り当てる。
【0179】
ここでは、グループG1に、CPU8,CPU9およびGPU5が割り当てられる。また、グループG2に、CPU10およびGPU6が割り当てられる。この結果、(14-3)に示すリソース割当状況情報1400のように、CPU8~CPU10がONとなり、GPU5,GPU6がONとなる。
【0180】
そして、第2の算出部505は、グループG1,G2内の予備コンテナ間でリソースを共有するように、グループG1,G2内の予備コンテナに重複してリソースを割り当てる。例えば、第2の算出部505は、各グループG1,G2に割り当てたリソースを、各グループG1,G2内の予備コンテナに重複して割り当てる。この際、第2の算出部505は、各グループG1,G2に割り当てられたリソースの方が、予備コンテナに必要なリソースよりも多い場合は、必要な分だけリソースを選択する。
【0181】
ここでは、グループG1内の予備コンテナA1bに、CPU8,CPU9が割り当てられる(例えば、
図19参照)。グループG1内の予備コンテナB1bに、CPU8,CPU9およびGPU5が割り当てられる(例えば、
図19参照)。CPU8,CPU9は、予備コンテナA1b,B1bに重複して割り当てられている。
【0182】
また、グループG2内の予備コンテナA2cに、CPU10およびGPU6が割り当てられる(例えば、
図19参照)。グループG2内の予備コンテナB2bに、CPU10およびGPU6が割り当てられる(例えば、
図19参照)。CPU10およびGPU6は、予備コンテナA2c,B2bに重複して割り当てられている。
【0183】
この結果、
図15Bの(15-3)に示すように、コンテナ管理情報1500に、予備コンテナA1b,A2c,B1b,B2bそれぞれに割り当てられたリソースのCPU番号およびGPU番号が追加される。
【0184】
つぎに、電源管理部503は、各予備コンテナA1b,A2c,B1b,B2bに割り当てられたリソースの電源を投入する。そして、配備部504は、各サービスA,Bの提供にかかる予備コンテナA1b,A2c,B1b,B2bを配備する。この結果、
図15Bの(15-4)に示すように、コンテナ管理情報1500内の各予備コンテナA1b,A2c,B1b,B2bの状態に「予備」が設定される。状態「予備」は、予備コンテナとして待機中であることを示す。
【0185】
また、
図17に示すように、リソースの使用状態については、予備コンテナA1b,A2c,B1b,B2bに割り当てられたリソースの使用状態が「電源ON(未使用)」となる。使用状態「電源ON(未使用)」は、電源が投入されているものの、サービスには使用されていない状態を示す。なお、使用状態「電源ON(未使用)」のリソースは、待機状態のため、電源OFFと比べると電力を使用するものの、電源ON(使用中)と比べると消費電力が少ない。
【0186】
ここで、トラフィック量の増加等に起因して、サービスAの1段目のコンテナA1aの性能が足りなくなって、リソース増強が必要となった場合を想定する。
【0187】
図20は、コンテナ構成および予備コンテナ構成の一例を示す説明図である。
図20において、サービスAの提供にかかるコンテナA1a,A2a,A2bと、サービスBの提供にかかるコンテナB1a,B2aが示されている。また、グループG1に分類された予備コンテナA1b,B1bと、グループG2に分類された予備コンテナA2c,B2bが示されている。
【0188】
ここでは、サービスAの1段目のコンテナA1aの性能が足りなくなっている。この場合、第1の算出部502は、予備コンテナA1b,A2c,B1b,B2bの中から、サービスAに追加する予備コンテナを特定する。ここでは、リソース増強が必要となったコンテナA1aに対応する予備コンテナA1bが特定される。
【0189】
そして、第1の算出部502は、特定した予備コンテナA1bをサービスAに追加する。また、第1の算出部502は、追加した予備コンテナA1bが同じグループG1内の他の予備コンテナB1bと共有しているリソースを占有するようにコンテナ構成を更新する。
【0190】
より具体的には、例えば、第1の算出部502は、配備部504により、コンテナ管理装置203に対して、予備コンテナA1bで占有するCPU8,CPU9の接続設定と、グループG1内の他の予備コンテナB1bの削除を要求する。この際、配備部504は、例えば、トラフィック分散の変更などの設定を行ってもよい。
【0191】
また、電源管理部503は、グループG1内の他の予備コンテナB1bのみに割り当てられたリソースの電源をOFF状態にする。具体的には、例えば、電源管理部503は、他の予備コンテナB1bのみに割り当てられたGPU5を有する運用サーバ202に対して、GPU5の電源断指示を送信する。
【0192】
この結果、運用サーバ202において、他の予備コンテナB1bのみに割り当てられたGPU5の電源がOFF状態となり、リソース割当状況情報1400内のGPU5がOFFとなる。また、
図18に示すように、リソースの使用状態については、予備コンテナA1bに割り当てられたリソース(CPU8,CPU9)の使用状態が「電源ON(使用)」となり、GPU5の使用状態が「電源OFF」となる。また、
図15Cの(15-5)に示すように、コンテナ管理情報1500内の予備コンテナA1bの状態に「稼働」が設定される。また、予備コンテナB1bのCPU番号およびGPU番号に「-(null)」が設定され、状態に「削除」が設定される。
【0193】
これにより、管理サーバ201は、予備コンテナA1bを用いたサービスAへのリソース増強が完了する。
図20の例では、サービスAの1段目にグループG1内の予備コンテナA1bが追加され、リソース増強が行われている。この後、管理サーバ201は、例えば、予備コンテナA1bとリソースを共有していた予備コンテナB1bの再準備や、サービスAの一段目用の予備コンテナA1cの準備を行ってもよい。
【0194】
(管理サーバ201の資源管理処理手順)
つぎに、実施例1にかかる管理サーバ201の資源管理処理の具体的な処理手順について説明する。
【0195】
図21は、管理サーバ201の資源管理処理の具体的処理手順の一例を示すフローチャートである。
図21のフローチャートにおいて、まず、管理サーバ201は、各サービスの要求性能を受け付ける(ステップS2101)。つぎに、管理サーバ201は、受け付けた要求性能に基づいて、各サービスのサービス構成を決定する(ステップS2102)。サービス構成は、例えば、サービスの要求性能を満たす各段のコンテナ数を示す。
【0196】
そして、管理サーバ201は、決定したサービス構成に基づいて、各サービスの提供にかかるコンテナ構成を算出し、各サービスの提供にかかるコンテナにリソースを割り当てる(ステップS2103)。つぎに、管理サーバ201は、各コンテナに割り当てたリソースの電源を投入する(ステップS2104)。
【0197】
そして、管理サーバ201は、リソースの接続設定を含むコンテナの配備を行う(ステップS2105)。つぎに、管理サーバ201は、各サービスにコンテナを追加する(ステップS2106)。この際、管理サーバ201は、例えば、トラフィック分散の変更などの設定を行う。
【0198】
そして、管理サーバ201は、予備コンテナ構成決定処理を実行する(ステップS2107)。予備コンテナ構成決定処理の具体的な処理手順については、
図22を用いて後述する。つぎに、管理サーバ201は、各予備コンテナに割り当てたリソースの電源を投入する(ステップS2108)。
【0199】
そして、管理サーバ201は、リソースの接続設定を含む予備コンテナの配備を行って(ステップS2109)、本フローチャートによる一連の処理を終了する。これにより、管理サーバ201は、各サービスの要求性能に応じて、各サービスの提供にかかるコンテナを追加するとともに、予備コンテナを配備することができる。
【0200】
つぎに、
図22を用いて、ステップS2107の予備コンテナ構成決定処理の具体的な処理手順について説明する。
【0201】
図22は、予備コンテナ構成決定処理の具体的処理手順の一例を示すフローチャートである。
図22のフローチャートにおいて、まず、管理サーバ201は、各サービスのサービス構成に基づいて、各サービスの提供にかかる予備コンテナ構成を算出する(ステップS2201)。
【0202】
つぎに、管理サーバ201は、算出した予備コンテナ構成に基づいて、第1のグループ分け処理を実行する(ステップS2202)。第1のグループ分け処理の具体的な処理手順については、
図23を用いて後述する。そして、管理サーバ201は、各グループ内の予備コンテナの必要リソースから、各グループの必要リソース量を算出する(ステップS2203)。
【0203】
つぎに、管理サーバ201は、算出した各グループの必要リソース量に基づいて、各グループに必要リソース量分の空きリソースを割り当てる(ステップS2204)。そして、管理サーバ201は、各グループ内の予備コンテナ間でリソースを共有するように、各グループ内の予備コンテナに重複してリソースを割り当てて(ステップS2205)、予備コンテナ構成決定処理を呼び出したステップに戻る。
【0204】
つぎに、
図23を用いて、ステップS2202の第1のグループ分け処理の具体的な処理手順について説明する。
【0205】
図23は、第1のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
図23のフローチャートにおいて、まず、管理サーバ201は、予備用の予備コンテナのうち選択されていない未選択の予備コンテナを選択する(ステップS2301)。つぎに、管理サーバ201は、サービス構成情報に基づいて、選択した予備コンテナのサービスを特定する(ステップS2302)。
【0206】
そして、管理サーバ201は、未確認のグループがあるか否かを判断する(ステップS2303)。ここで、未確認のグループがない場合(ステップS2303:No)、管理サーバ201は、新しいグループに、選択した予備コンテナを追加して(ステップS2304)、ステップS2309に移行する。
【0207】
一方、未確認のグループがある場合(ステップS2303:Yes)、管理サーバ201は、未確認のグループを選択する(ステップS2305)。つぎに、管理サーバ201は、グループ内の予備コンテナのサービスを特定する(ステップS2306)。そして、管理サーバ201は、特定したサービスがステップS2302において特定したサービスと同じか否かを判断する(ステップS2307)。
【0208】
ここで、サービスが同じ場合(ステップS2307:Yes)、管理サーバ201は、ステップS2303に戻る。一方、サービスが異なる場合(ステップS2307:No)、管理サーバ201は、選択したグループに、選択した予備コンテナを追加する(ステップS2308)。
【0209】
そして、管理サーバ201は、予備用の予備コンテナのうち選択されていない未選択の予備コンテナがあるか否かを判断する(ステップS2309)。ここで、未選択の予備コンテナがある場合(ステップS2309:Yes)、管理サーバ201は、ステップS2301に戻る。一方、未選択の予備コンテナがない場合(ステップS2309:No)、管理サーバ201は、第1のグループ分け処理を呼び出したステップに戻る。
【0210】
これにより、管理サーバ201は、同じサービスの予備コンテナ同士が同一グループとならないように、予備コンテナをグループ分けすることができる。
【0211】
(管理サーバ201のリソース増強処理手順)
つぎに、管理サーバ201のリソース増強処理手順について説明する。
【0212】
図24は、管理サーバ201のリソース増強処理手順の一例を示すフローチャートである。
図24のフローチャートにおいて、まず、管理サーバ201は、サービスの提供にかかるコンテナの負荷を監視し、リソースの増強を行うか否かを判断する(ステップS2401)。
【0213】
ここで、管理サーバ201は、リソースの増強を行うと判断するまで待つ(ステップS2401:No)。そして、管理サーバ201は、リソースの増強を行うと判断した場合(ステップS2401:Yes)、予備用の予備コンテナの中から、サービスに追加する予備コンテナを特定する(ステップS2402)。
【0214】
つぎに、管理サーバ201は、特定した予備コンテナをサービスに追加する(ステップS2403)。この際、管理サーバ201は、例えば、トラフィック分散の変更などの設定を行う。そして、管理サーバ201は、追加した予備コンテナと同一グループの他の予備コンテナを特定する(ステップS2404)。
【0215】
つぎに、管理サーバ201は、特定した他の予備コンテナを削除する(ステップS2405)。そして、管理サーバ201は、追加した予備コンテナが同じグループ内の他の予備コンテナと共有しているリソースを占有するようにコンテナ構成を更新する(ステップS2406)。
【0216】
つぎに、管理サーバ201は、他の予備コンテナのみに割り当てられた不要リソースの電源をOFF状態にする(ステップS2407)。そして、管理サーバ201は、まだリソース増強が必要であるか否かを判断する(ステップS2408)。ここで、リソース増強が必要な場合(ステップS2408:Yes)、管理サーバ201は、ステップS2402に戻る。
【0217】
一方、リソース増強が必要ではない場合(ステップS2408:No)、管理サーバ201は、本フローチャートによる一連の処理を終了する。これにより、管理サーバ201は、トラフィック量の増加等に起因して性能不足が発生した際に、予備コンテナを用いてサービスへのリソース増強を行うことができる。
【0218】
以上説明したように、実施例1にかかる管理サーバ201によれば、リソース増強のタイミングが重なりそうな同じサービス用の予備コンテナが分かれるようにグループ化することができる。これにより、管理サーバ201は、迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を削減することができる。
【0219】
(実施例2)
つぎに、管理サーバ201の実施例2について説明する。実施例2では、予備用の予備コンテナのうち、処理性能の余裕度合いが閾値以下となるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する場合について説明する。
【0220】
以下、実施例2にかかる動作例について説明する。ただし、配備対象のサービスは、実施例1と同じとする(
図11参照)。また、実施例2にかかるサービス配備とリソース増強については、実施例1と同様のため、図示および説明を省略する。ここでは、実施例2にかかる予備コンテナを準備する際の動作例について説明する。
【0221】
まず、負荷監視部506は、サービスA,Bの提供にかかるコンテナの負荷を監視し、
図25に示すようなサービス構成情報2500に現在の負荷を記録する。
【0222】
図25は、サービス構成情報2500の具体例を示す説明図である。
図25において、サービス構成情報2500は、各サービスA,Bの提供にかかるコンテナ構成と、現在の負荷とを示す。現在の負荷は、サービスA,Bの提供にかかる各段のコンテナの負荷を表す。
【0223】
第2の算出部505は、
図25に示したサービス構成情報2500に基づいて、サービスA,Bの提供にかかる予備コンテナ構成を算出する。具体的には、例えば、第2の算出部505は、サービスAの各段のアプリA1,A2を実行するコンテナA1a,A2aと同一性能の予備コンテナA1b,A2cを生成すると決定する。
【0224】
また、第2の算出部505は、サービスBの各段のアプリB1,B2を実行するコンテナB1a,B2aと同一性能の予備コンテナB1b,B2bを生成すると決定する。予備コンテナ構成は、例えば、
図26に示すようなコンテナ管理情報2600に記憶される。
【0225】
図26は、コンテナ管理情報2600の記憶内容の変遷例を示す説明図である。
図26において、コンテナ管理情報2600は、サービスA,Bの提供にかかる各コンテナのリソース割り当て結果および稼働状態を示す。(26-1)に示すコンテナ管理情報2600では、予備コンテナA1b,A2c,B1b,B2bが追加されている。
【0226】
つぎに、第2の算出部505は、サービス構成情報2500に基づいて、予備コンテナA1b,A2c,B1b,B2bのうち、処理性能の余裕度合いが閾値以下となるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2bを分類する。
【0227】
ここで、
図27Aおよび
図27Bを用いて、予備コンテナA1b,A2c,B1b,B2bの分類例について説明する。
【0228】
図27Aおよび
図27Bは、予備コンテナの第2の分類例を示す説明図である。
図27Aにおいて、コンテナA1a,A2a,A2b,B1a,B2aは、サービスA,Bの提供にかかる予備用のコンテナである。また、予備コンテナA1b,A2c,B1b,B2bは、サービスA,Bの提供にかかる予備用のコンテナである。
【0229】
まず、第2の算出部505は、例えば、サービスA,Bの各段について、コンテナA1a,A2a,A2b,B1a,B2aの処理性能の余裕度合いを算出する。そして、第2の算出部505は、算出した余裕度合いが少ない順に、予備コンテナA1b,A2c,B1b,B2bを並び替える。
【0230】
サービスAの1段目は、コンテナA1aの処理性能「80Mbps」に対して現在の負荷が「40Mbps」である。このため、1段目のコンテナA1aの処理性能の余裕度合いは、「40Mbps」となる。また、サービスAの2段目は、コンテナA2a,A2bの処理性能「60Mbps(=30Mbps×2)」に対して現在の負荷が「40Mbps」である。このため、2段目のコンテナA2a,A2bの処理性能の余裕度合いは、「20Mbps」となる。
【0231】
サービスBの1段目は、コンテナB1aの処理性能「100Mbps」に対して現在の負荷が「50Mbps」である。このため、1段目のコンテナB1aの処理性能の余裕度合いは、「50Mbps」となる。また、サービスBの2段目は、コンテナB2aの処理性能「50Mbps」に対して現在の負荷が「50Mbps」である。このため、2段目のコンテナB2aの処理性能の余裕度合いは、「0Mbps」となる。
【0232】
この場合、各予備コンテナA1b,A2c,B1b,B2bに対応する段の処理性能の余裕度合いが少ない順に並び替えると、予備コンテナB2b,A2c,A1b,B1bとなる。第2の算出部505は、並び替えた予備コンテナB2b,A2c,A1b,B1bを、処理性能の余裕度合いが閾値以下の予備コンテナ同士が同一グループにならないように順番にグループ分けする。
【0233】
ここでは、閾値を「30Mbps」とする。この場合、処理性能の余裕度合いが閾値以下となる予備コンテナは、予備コンテナB2b,A2cである。
【0234】
まず、第2の算出部505は、予備コンテナB2bをグループG1に分類する。つぎに、第2の算出部505は、予備コンテナA2cを、予備コンテナB2bとは異なるグループG2に分類する。つぎに、第2の算出部505は、予備コンテナA1bをグループG1に分類する。そして、第2の算出部505は、予備コンテナB1bをグループG2に分類する。
【0235】
これにより、第2の算出部505は、処理性能の余裕度合いが閾値以下となる予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2bをグループ分けすることができる。
【0236】
つぎに、第2の算出部505は、分類したグループG1,G2内の予備コンテナ間でリソースを共有するように、グループG1,G2内の予備コンテナに重複してリソースを割り当てる。具体的には、例えば、まず、第2の算出部505は、グループG1,G2内の予備コンテナに割り当てるリソース量(必要リソース)から、グループG1,G2ごとの必要リソース量を算出する。
【0237】
ここで、グループG1内の予備コンテナB2bの必要リソースは「CPU:1、GPU:1」である。グループG1内の予備コンテナA1bの必要リソースは「CPU:2」である。このため、グループG1内の予備コンテナ間でリソースを共有する場合、グループG1の必要リソース量は「CPU:2、GPU:1」となる(
図27B参照)。
【0238】
また、グループG2内の予備コンテナA2cの必要リソースは「CPU:1、GPU:1」である。グループG2内の予備コンテナB1bの必要リソースは「CPU:2、GPU:1」である。このため、グループG2内の予備コンテナ間でリソースを共有する場合、グループG2の必要リソース量は「CPU:2、GPU:1」となる(
図27B参照)。
【0239】
つぎに、第2の算出部505は、グループG1,G2ごとの必要リソース量に基づいて、グループG1,G2に割り当てるリソースを決定する。具体的には、例えば、第2の算出部505は、グループG1,G2に、必要リソース量分の空きリソースを割り当てる。ここでは、グループG1に、CPU8,CPU9およびGPU5が割り当てられる。また、グループG2に、CPU10、CPU11およびGPU6が割り当てられる。
【0240】
そして、第2の算出部505は、グループG1,G2内の予備コンテナ間でリソースを共有するように、グループG1,G2内の予備コンテナに重複してリソースを割り当てる。
【0241】
ここでは、グループG1内の予備コンテナB2bに、CPU8およびGPU5が割り当てられる(
図27B参照)。グループG1内の予備コンテナA1bに、CPU8,CPU9が割り当てられる(
図27B参照)。CPU8は、予備コンテナA1b,B2bに重複して割り当てられている。
【0242】
また、グループG2内の予備コンテナA2cに、CPU10およびGPU6が割り当てられる(
図27B参照)。グループG2内の予備コンテナB1bに、CPU10、CPU11およびGPU6が割り当てられる(
図27B参照)。CPU10およびGPU6は、予備コンテナA2c,B1bに重複して割り当てられている。
【0243】
この結果、
図26の(26-2)に示すように、コンテナ管理情報2600に、予備コンテナA1b,A2c,B1b,B2bそれぞれに割り当てられたリソースのCPU番号およびGPU番号が追加される。
【0244】
つぎに、電源管理部503は、各予備コンテナA1b,A2c,B1b,B2bに割り当てられたリソースの電源を投入する。そして、配備部504は、各サービスA,Bの提供にかかる予備コンテナA1b,A2c,B1b,B2bを配備する。この結果、
図26の(26-3)に示すように、コンテナ管理情報2600内の各予備コンテナA1b,A2c,B1b,B2bの状態に「予備」が設定される。
【0245】
ここで、
図28を用いて、サービスA,Bの提供にかかるコンテナ(予備コンテナを含む)に割り当てられたリソースの使用状態について説明する。
【0246】
図28は、実施例2にかかるリソースの使用状態を示す説明図である。
図28において、運用サーバ202内のCPU1~CPU16およびGPU1~GPU10は、コンテナ(予備コンテナを含む)に割り当て可能なリソースを表す。なお、
図28中、運用サーバ202は、1台以上の運用サーバ202を表す。
【0247】
図28に示す例では、コンテナA1a~B2aに割り当てられたリソースの使用状態が「電源ON(使用中)」となっている。また、予備コンテナA1b~B2bに割り当てられたリソースの使用状態が「電源ON(未使用)」となっている。また、コンテナA1a~B2aおよび予備コンテナA1b~B2bに割り当てられたリソース以外のリソースの使用状態は、「電源OFF」となっている。
【0248】
(管理サーバ201の資源管理処理手順)
つぎに、実施例2にかかる管理サーバ201の資源管理処理の具体的な処理手順について説明する。ただし、
図22に示したステップS2202の第1のグループ分け処理以外は、実施例1にかかる管理サーバ201の資源管理処理の具体的な処理手順と同様である。このため、ここではステップS2202の第1のグループ分け処理の代わりに実行される第2のグループ分け処理の具体的な処理手順についてのみ説明する。
【0249】
図29は、第2のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
図29のフローチャートにおいて、まず、管理サーバ201は、サービスの各段の処理性能の余裕度合いを算出する(ステップS2901)。つぎに、管理サーバ201は、予備用の予備コンテナを各予備コンテナの追加先段の処理性能の余裕度合いが低い順にソートする(ステップS2902)。
【0250】
つぎに、管理サーバ201は、グループがあるか否かを判断する(ステップS2903)。ここで、グループがない場合(ステップS2903:No)、管理サーバ201は、先頭の予備コンテナを選択し、新しいグループに予備コンテナを追加して(ステップS2904)、ステップS2909に移行する。
【0251】
また、ステップS2903において、グループがある場合(ステップS2903:Yes)、管理サーバ201は、ソート後の予備コンテナのうち選択されていない未選択の予備コンテナを順に選択する(ステップS2905)。つぎに、管理サーバ201は、選択した予備コンテナの処理性能の余裕度合いが閾値以下であるか否かを判断する(ステップS2906)。
【0252】
ここで、処理性能の余裕度合いが閾値以下の場合(ステップS2906:Yes)、管理サーバ201は、ステップS2904に移行する。一方、処理性能の余裕度合いが閾値より大きい場合(ステップS2906:No)、管理サーバ201は、既存のグループを選択する(ステップS2907)。
【0253】
そして、管理サーバ201は、選択したグループに、選択した予備コンテナを追加する(ステップS2908)。つぎに、管理サーバ201は、ソート後の予備コンテナのうち選択されていない未選択の予備コンテナがあるか否かを判断する(ステップS2909)。ここで、未選択の予備コンテナがある場合(ステップS2909:Yes)、ステップS2905に戻る。一方、未選択の予備コンテナがない場合(ステップS2909:No)、管理サーバ201は、第2のグループ分け処理を呼び出したステップに戻る。
【0254】
これにより、管理サーバ201は、処理性能の余裕度合いが閾値以下となる段(コンテナ)に対応する予備コンテナ同士が同一グループとならないように、予備コンテナをグループ分けすることができる。
【0255】
以上説明したように、実施例2にかかる管理サーバ201によれば、現状のサービス構成における処理性能の余裕が少ない段用の予備コンテナが分かれるようにグループ化することができる。これにより、管理サーバ201は、迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を削減することができる。
【0256】
(実施例3)
つぎに、管理サーバ201の実施例3について説明する。実施例3では、予備用の予備コンテナのうち、同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する場合について説明する。
【0257】
以下、実施例3にかかる動作例について説明する。ただし、実施例3にかかるサービス配備とリソース増強については、実施例1と同様のため、図示および説明を省略する。ここでは、実施例3にかかる予備コンテナを準備する際の動作例について説明する。
【0258】
実施例3では、配備対象のサービスを「サービスA,B,C」とする。ここで、
図30を用いて、サービスA,B,Cの提供にかかるコンテナ構成を示すサービス構成情報について説明する。
【0259】
図30は、サービス構成情報3000の具体例を示す説明図である。
図30において、サービス構成情報3000は、各サービスA,Bの提供にかかるコンテナ構成と需要傾向とを示す。サービス構成情報3000は、サービスAを提供するにあたり、1段目のアプリA1を実行する1台のコンテナA1aと、2段目のアプリA2を実行する2台のコンテナA2a,A2bとが必要であることを示す。サービス構成情報3000は、サービスAの需要傾向が「夜型」であることを示す。
【0260】
また、サービス構成情報3000は、サービスBを提供するにあたり、1段目のアプリB1を実行する1台のコンテナB1aと、2段目のアプリB2を実行する1台のコンテナB2aとが必要であることを示す。サービス構成情報3000は、サービスBの需要傾向が「昼型」であることを示す。
【0261】
また、サービス構成情報3000は、サービスCを提供するにあたり、1段目のアプリC1を実行する1台のコンテナC1aと、2段目のアプリC2を実行する1台のコンテナC2aとが必要であることを示す。サービス構成情報3000は、サービスCの需要傾向が「夜型」であることを示す。
【0262】
つぎに、
図31を用いて、アプリ性能/リソース情報の具体例について説明する。
【0263】
図31は、アプリ性能/リソース情報の具体例を示す説明図(その2)である。
図31において、アプリ性能/リソース情報3100は、アプリと性能と必要リソース(CPU、GPU)との対応関係を示す。例えば、アプリ性能/リソース情報3100は、アプリC1の性能が「100Mbps」であり、アプリC1の必要リソースが「CPU:1、GPU:0」であることを示す。
【0264】
以下、実施例3にかかる動作例について説明する。
【0265】
第2の算出部505は、
図30に示したサービス構成情報3000に基づいて、サービスA,B,Cの提供にかかる予備コンテナ構成を算出する。具体的には、例えば、第2の算出部505は、サービスAの各段のアプリA1,A2を実行するコンテナA1a,A2aと同一性能の予備コンテナA1b,A2cを生成すると決定する。なお、ここでは各段のアプリについて、1台の予備コンテナを確保する場合を想定する。
【0266】
また、第2の算出部505は、サービスBの各段のアプリB1,B2を実行するコンテナB1a,B2aと同一性能の予備コンテナB1b,B2bを生成すると決定する。また、第2の算出部505は、サービスCの各段のアプリC1,C2を実行するコンテナC1a,C2aと同一性能の予備コンテナC1b,C2bを生成すると決定する。予備コンテナ構成は、例えば、
図32に示すようなコンテナ管理情報3200に記憶される。
【0267】
図32は、コンテナ管理情報3200の記憶内容の変遷例を示す説明図である。
図32において、コンテナ管理情報3200は、サービスA,B,Cの提供にかかる各コンテナのリソース割り当て結果および稼働状態を示す。(32-1)に示すコンテナ管理情報2600では、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bが追加されている。
【0268】
つぎに、第2の算出部505は、サービス構成情報3000に基づいて、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bのうち、同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bを分類する。
【0269】
ここで、
図33を用いて、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bの分類例について説明する。
【0270】
図33は、予備コンテナの第3の分類例を示す説明図である。
図33において、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bは、サービスA,B,Cの提供にかかる予備用のコンテナである。
【0271】
まず、第2の算出部505は、サービス構成情報3000に基づいて、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bを、需要傾向が同じサービス用の予備コンテナ同士が同じグループにならないように、順番にグループ化する。
【0272】
例えば、第2の算出部505は、予備コンテナA1bをグループG1に割り当てる。つぎに、予備コンテナA2cは、需要傾向が予備コンテナA1bと同じである。このため、第2の算出部505は、予備コンテナA2cを予備コンテナA1bとは異なるグループG2に割り当てる。
【0273】
つぎに、予備コンテナB1bは、需要傾向が予備コンテナA1bと異なる。このため、第2の算出部505は、予備コンテナB1bを予備コンテナA1bと同じグループG1に割り当てる。つぎに、予備コンテナB2bは、需要傾向が予備コンテナB1bと同じである。このため、第2の算出部505は、予備コンテナB2bを予備コンテナB1bとは異なるグループG2に割り当てる。
【0274】
つぎに、予備コンテナC1bは、需要傾向が予備コンテナA1b,A2cと同じである。このため、第2の算出部505は、予備コンテナC1bを予備コンテナA1b,A2cとは異なるグループG3に割り当てる。つぎに、予備コンテナC2bは、需要傾向が予備コンテナA1b,A2c,C1bと同じである。このため、第2の算出部505は、予備コンテナC2bを予備コンテナA1b,A2c,C1bとは異なるグループG4に割り当てる。
【0275】
これにより、第2の算出部505は、同じ需要傾向のサービス用の予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bをグループ分けすることができる。
【0276】
つぎに、第2の算出部505は、分類したグループG1~G4内の予備コンテナ間でリソースを共有するように、グループG1~G4内の予備コンテナに重複してリソースを割り当てる。具体的には、例えば、まず、第2の算出部505は、グループG1~G4内の予備コンテナに割り当てるリソース量(必要リソース)から、各グループG1~G4の必要リソース量を算出する。
【0277】
ここで、グループG1内の予備コンテナA1bの必要リソースは「CPU:2」である。グループG1内の予備コンテナB1bの必要リソースは「CPU:2、GPU:1」である。このため、グループG1内の予備コンテナ間でリソースを共有する場合、グループG1の必要リソース量は「CPU:2、GPU:1」となる(
図33参照)。
【0278】
また、グループG2内の予備コンテナA2cの必要リソースは「CPU:1、GPU:1」である。グループG2内の予備コンテナB2bの必要リソースは「CPU:1、GPU:1」である。このため、グループG2内の予備コンテナ間でリソースを共有する場合、グループG2の必要リソース量は「CPU:1、GPU:1」となる(
図33参照)。
【0279】
また、グループG3内の予備コンテナC1bの必要リソースは「CPU:1」である。このため、グループG3の必要リソース量は「CPU:1」となる(
図33参照)。また、グループG4内の予備コンテナC2bの必要リソースは「CPU:1、GPU:1」である。このため、グループG4の必要リソース量は「CPU:1、GPU:1」となる(
図33参照)。
【0280】
つぎに、第2の算出部505は、各グループG1~G4の必要リソース量に基づいて、各グループG1~G4に割り当てるリソースを決定する。具体的には、例えば、第2の算出部505は、グループG1~G4に、必要リソース量分の空きリソースを割り当てる。ここでは、グループG1に、CPU10,CPU11およびGPU6が割り当てられる。また、グループG2に、CPU12およびGPU7が割り当てられる。また、グループG3に、CPU13が割り当てられる。また、グループG4に、CPU14およびGPU8が割り当てられる。
【0281】
そして、第2の算出部505は、各グループG1~G4内の予備コンテナ間でリソースを共有するように、各グループG1~G4内の予備コンテナに重複してリソースを割り当てる。
【0282】
ここでは、グループG1内の予備コンテナA1bに、CPU10,CPU11が割り当てられる(
図33参照)。グループG1内の予備コンテナB1bに、CPU10、CPU11およびGPU6が割り当てられる(
図33参照)。CPU10およびCPU11は、予備コンテナA1b,B1bに重複して割り当てられている。
【0283】
また、グループG2内の予備コンテナA2cに、CPU12およびGPU7が割り当てられる(
図33参照)。グループG2内の予備コンテナB2bに、CPU12およびGPU7が割り当てられる(
図33参照)。CPU12およびGPU7は、予備コンテナA2c,B2bに重複して割り当てられている。
【0284】
また、グループG3内の予備コンテナC1bに、CPU13が割り当てられる(
図33参照)。また、グループG4内の予備コンテナC2bに、CPU14およびGPU8が割り当てられる(
図33参照)。
【0285】
この結果、
図32の(32-2)に示すように、コンテナ管理情報3200に、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bそれぞれに割り当てられたリソースのCPU番号およびGPU番号が追加される。
【0286】
つぎに、電源管理部503は、各予備コンテナA1b,A2c,B1b,B2b,C1b,C2bに割り当てられたリソースの電源を投入する。そして、配備部504は、各サービスA,B,Cの提供にかかる予備コンテナA1b,A2c,B1b,B2b,C1b,C2bを配備する。この結果、
図32の(32-3)に示すように、コンテナ管理情報3200内の各予備コンテナA1b,A2c,B1b,B2b,C1b,C2bの状態に「予備」が設定される。
【0287】
ここで、
図34を用いて、サービスA,B,Cの提供にかかるコンテナ(予備コンテナを含む)に割り当てられたリソースの使用状態について説明する。
【0288】
図34は、実施例3にかかるリソースの使用状態を示す説明図である。
図34において、運用サーバ202内のCPU1~CPU16およびGPU1~GPU10は、コンテナ(予備コンテナを含む)に割り当て可能なリソースを表す。なお、
図34中、運用サーバ202は、1台以上の運用サーバ202を表す。
【0289】
図34に示す例では、コンテナA1a~C2aに割り当てられたリソースの使用状態が「電源ON(使用中)」となっている。また、予備コンテナA1b~C2bに割り当てられたリソースの使用状態が「電源ON(未使用)」となっている。また、コンテナA1a~C2aおよび予備コンテナA1b~C2bに割り当てられたリソース以外のリソースの使用状態は、「電源OFF」となっている。
【0290】
(管理サーバ201の資源管理処理手順)
つぎに、実施例3にかかる管理サーバ201の資源管理処理の具体的な処理手順について説明する。ただし、
図22に示したステップS2202の第1のグループ分け処理以外は、実施例1にかかる管理サーバ201の資源管理処理の具体的な処理手順と同様である。このため、ここではステップS2202の第1のグループ分け処理の代わりに実行される第3のグループ分け処理の具体的な処理手順についてのみ説明する。
【0291】
図35は、第3のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
図35のフローチャートにおいて、まず、管理サーバ201は、予備用の予備コンテナのうち選択されていない未選択の予備コンテナを選択する(ステップS3501)。つぎに、管理サーバ201は、サービス構成情報に基づいて、選択した予備コンテナの需要傾向を特定する(ステップS3502)。
【0292】
そして、管理サーバ201は、未確認のグループがあるか否かを判断する(ステップS3503)。ここで、未確認のグループがない場合(ステップS3503:No)、管理サーバ201は、新しいグループに、選択した予備コンテナを追加して(ステップS3504)、ステップS3509に移行する。
【0293】
一方、未確認のグループがある場合(ステップS3503:Yes)、管理サーバ201は、未確認のグループを選択する(ステップS3505)。つぎに、管理サーバ201は、グループ内の予備コンテナのサービスの需要傾向を特定する(ステップS3506)。そして、管理サーバ201は、特定したサービスが、ステップS3502において特定した需要傾向と同じか否かを判断する(ステップS3507)。
【0294】
ここで、需要傾向が同じ場合(ステップS3507:Yes)、管理サーバ201は、ステップS3503に戻る。一方、需要傾向が異なる場合(ステップS3507:No)、管理サーバ201は、選択したグループに、選択した予備コンテナを追加する(ステップS3508)。
【0295】
そして、管理サーバ201は、予備用の予備コンテナのうち選択されていない未選択の予備コンテナがあるか否かを判断する(ステップS3509)。ここで、未選択の予備コンテナがある場合(ステップS3509:Yes)、管理サーバ201は、ステップS3501に戻る。一方、未選択の予備コンテナがない場合(ステップS3509:No)、管理サーバ201は、第3のグループ分け処理を呼び出したステップに戻る。
【0296】
これにより、管理サーバ201は、同じ需要傾向のサービスの予備コンテナ同士が同一グループとならないように、予備コンテナをグループ分けすることができる。
【0297】
以上説明したように、実施例3にかかる管理サーバ201によれば、サービスの内容や需要傾向が似ているサービスの予備コンテナが分かれるようにグループ化することができる。これにより、管理サーバ201は、迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を削減することができる。
【0298】
(実施例4)
つぎに、管理サーバ201の実施例4について説明する。実施例4では、予備用の予備コンテナのうち、予備用の予備コンテナに割り当てるリソース量が上限を超えないように、かつ、予備用の予備コンテナのうち同じタイミングで使用される予備コンテナ同士が同一グループとならないように、予備用の予備コンテナを分類する場合について説明する。
【0299】
以下、実施例4にかかる動作例について説明する。ただし、配備対象のサービスの提供にかかるコンテナ構成は、実施例3と同じとする(
図30参照)。また、実施例4にかかるサービス配備とリソース増強については、実施例1と同様のため、図示および説明を省略する。ここでは、実施例4にかかる予備コンテナを準備する際の動作例について説明する。
【0300】
まず、
図36を用いて、リソース上限情報について説明する。
【0301】
図36は、リソース上限情報3600の具体例を示す説明図である。
図36において、リソース上限情報3600は、予備用の予備コンテナに割り当て可能なリソース量の上限を表す情報である。ここでは、予備用の予備コンテナに割り当て可能なCPUの上限が4個、GPUの上限が3個となっている。
【0302】
以下、実施例4にかかる動作例について説明する。
【0303】
第2の算出部505は、
図30に示したサービス構成情報3000に基づいて、サービスA,B,Cの提供にかかる予備コンテナ構成を算出する。具体的には、例えば、第2の算出部505は、サービスAの各段のアプリA1,A2を実行するコンテナA1a,A2aと同一性能の予備コンテナA1b,A2cを生成すると決定する。
【0304】
また、第2の算出部505は、サービスBの各段のアプリB1,B2を実行するコンテナB1a,B2aと同一性能の予備コンテナB1b,B2bを生成すると決定する。また、第2の算出部505は、サービスCの各段のアプリC1,C2を実行するコンテナC1a,C2aと同一性能の予備コンテナC1b,C2bを生成すると決定する。予備コンテナ構成は、例えば、
図37に示すようなコンテナ管理情報3700に記憶される。
【0305】
図37は、コンテナ管理情報3700の記憶内容の変遷例を示す説明図である。
図37において、コンテナ管理情報3700は、サービスA,B,Cの提供にかかる各コンテナのリソース割り当て結果および稼働状態を示す。(37-1)に示すコンテナ管理情報3700では、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bが追加されている。
【0306】
つぎに、第2の算出部505は、リソース上限情報3600およびサービス構成情報3000に基づいて、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bを分類する。具体的には、例えば、第2の算出部505は、予備コンテナA1b~C2bに割り当てるリソース量が上限を超えないように、かつ、予備コンテナA1b~C2bのうち同じ需要傾向のサービスの提供にかかるコンテナに対応する予備コンテナ同士が同一グループとならないように、予備コンテナA1b~C2bを分類する。
【0307】
ここで、
図38を用いて、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bの分類例について説明する。
【0308】
図38は、予備コンテナの第4の分類例を示す説明図である。
図38において、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bは、サービスA,B,Cの提供にかかる予備用のコンテナである。
【0309】
まず、第2の算出部505は、
図31に示したアプリ性能/リソース情報3100に基づいて、予備コンテナA1b~C2bを、リソース量を多く必要とする順にソートする。例えば、必要とするリソース量をリソースの個数によって表すとする。この場合、予備コンテナB1bは、合計3個のリソースが必要となる。また、予備コンテナA1b,A2c,B2b,C2bは、合計2個のリソースが必要となる。また、予備コンテナC1bは、合計1個のリソースが必要となる。
【0310】
つぎに、第2の算出部505は、
図30に示したサービス構成情報3000に基づいて、ソート後の予備コンテナB1b,A1b,A2c,B2b,C2b,C1bを、リソース量が上限を超えない範囲で、需要傾向が同じサービス用の予備コンテナ同士が同じグループにならないように、順番にグループ化する。
【0311】
例えば、第2の算出部505は、予備コンテナB1bをグループG1に割り当てる。この時点での合計リソース量は「CPU:2、GPU:1」となる。つぎに、予備コンテナA1bは、需要傾向が予備コンテナB1bと異なる。また、予備コンテナA1bに、予備コンテナB1bと重複してリソースを割り当てても合計リソース量は変わらない。このため、第2の算出部505は、予備コンテナA1bを予備コンテナB1bと同じグループG1に割り当てる。この時点での合計リソース量は「CPU:2、GPU:1」となる。
【0312】
つぎに、予備コンテナA2cは、需要傾向が予備コンテナA1bと同じである。また、予備コンテナA2cに重複なしでリソースを割り当てても合計リソース量は上限を超えない。このため、第2の算出部505は、予備コンテナA2cを予備コンテナA1bとは異なるグループG2に割り当てる。この時点での合計リソース量は「CPU:3、GPU:2」となる。
【0313】
つぎに、予備コンテナB2bは、需要傾向が予備コンテナB1bと同じである。また、予備コンテナB2bに、グループG2内の予備コンテナA2cと重複してリソースを割り当てても合計リソース量は変わらない。このため、第2の算出部505は、予備コンテナB2bを予備コンテナB1bと異なるグループG2に割り当てる。
【0314】
つぎに、予備コンテナC2bは、需要傾向が予備コンテナA1b,A2cと同じである。また、予備コンテナC2bに重複なしでリソースを割り当てても合計リソース量は上限を超えない。このため、第2の算出部505は、予備コンテナC2bを予備コンテナA1b,A2cとは異なるグループG3に割り当てる。この時点での合計リソース量は「CPU:4、GPU:3」となる。
【0315】
つぎに、予備コンテナC1bは、需要傾向が予備コンテナA1b,A2c,C2bと同じである。一方、予備コンテナC1bに重複なしでリソースを割り当てると、合計リソース量が上限を超える。このため、第2の算出部505は、予備コンテナC1bを、グループG1に割り当てる。ここでは、予備コンテナC1bの需要傾向が、グループG1内の予備コンテナA1bと同じだが、必要リソース量が上限を超えるため、新しいグループを作成しない。
【0316】
なお、第2の算出部505は、予備コンテナC1bを、グループG2に割り当ててもよい。また、第2の算出部505は、予備コンテナC1bを、既存のグループG1,G2のいずれに割り当てるのかを、例えば、グループG1,G2内の最大コンテナ数が大きくならないように決定してもよい。
【0317】
これにより、第2の算出部505は、リソース量が上限を超えない範囲で、同じ需要傾向のサービス用の予備コンテナ同士が同一グループとならないように、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bをグループ分けすることができる。
【0318】
つぎに、第2の算出部505は、分類したグループG1~G3内の予備コンテナ間でリソースを共有するように、グループG1~G3内の予備コンテナに重複してリソースを割り当てる。具体的には、例えば、まず、第2の算出部505は、グループG1~G3内の予備コンテナに割り当てるリソース量(必要リソース)から、各グループG1~G3の必要リソース量を算出する。
【0319】
ここで、グループG1内の予備コンテナB1bの必要リソースは「CPU:2、GPU:1」である。グループG1内の予備コンテナA1bの必要リソースは「CPU:2」である。グループG1内の予備コンテナC1bの必要リソースは「CPU:1」である。このため、グループG1内の予備コンテナ間でリソースを共有する場合、グループG1の必要リソース量は「CPU:2、GPU:1」となる(
図38参照)。
【0320】
また、グループG2内の予備コンテナA2cの必要リソースは「CPU:1、GPU:1」である。グループG2内の予備コンテナB2bの必要リソースは「CPU:1、GPU:1」である。このため、グループG2内の予備コンテナ間でリソースを共有する場合、グループG2の必要リソース量は「CPU:1、GPU:1」となる(
図38参照)。
【0321】
また、グループG3内の予備コンテナC2bの必要リソースは「CPU:1、GPU:1」である。このため、グループG3の必要リソース量は「CPU:1、GPU:1」となる(
図38参照)。
【0322】
つぎに、第2の算出部505は、各グループG1~G3の必要リソース量に基づいて、各グループG1~G3に割り当てるリソースを決定する。具体的には、例えば、第2の算出部505は、グループG1~G3に、必要リソース量分の空きリソースを割り当てる。ここでは、グループG1に、CPU10,CPU11およびGPU6が割り当てられる。また、グループG2に、CPU12およびGPU7が割り当てられる。また、グループG3に、CPU13およびGPU8が割り当てられる。
【0323】
そして、第2の算出部505は、各グループG1~G3内の予備コンテナ間でリソースを共有するように、各グループG1~G3内の予備コンテナに重複してリソースを割り当てる。
【0324】
ここでは、グループG1内の予備コンテナB1bに、CPU10、CPU11およびGPU6が割り当てられる(
図38参照)。グループG1内の予備コンテナA1bに、CPU10,CPU11が割り当てられる(
図38参照)。グループG1内の予備コンテナC1bに、CPU10が割り当てられる(
図38参照)。CPU10は、予備コンテナA1b,B1b,C1bに重複して割り当てられている。CPU11は、予備コンテナA1b,B1bに重複して割り当てられている。
【0325】
また、グループG2内の予備コンテナA2cに、CPU12およびGPU7が割り当てられる(
図38参照)。グループG2内の予備コンテナB2bに、CPU12およびGPU7が割り当てられる(
図38参照)。CPU12およびGPU7は、予備コンテナA2c,B2bに重複して割り当てられている。
【0326】
また、グループG3内の予備コンテナC2bに、CPU13およびGPU8が割り当てられる(
図38参照)。
【0327】
この結果、
図37の(37-2)に示すように、コンテナ管理情報3700に、予備コンテナA1b,A2c,B1b,B2b,C1b,C2bそれぞれに割り当てられたリソースのCPU番号およびGPU番号が追加される。
【0328】
つぎに、電源管理部503は、各予備コンテナA1b,A2c,B1b,B2b,C1b,C2bに割り当てられたリソースの電源を投入する。そして、配備部504は、各サービスA,B,Cの提供にかかる予備コンテナA1b,A2c,B1b,B2b,C1b,C2bを配備する。この結果、
図37の(37-3)に示すように、コンテナ管理情報3700内の各予備コンテナA1b,A2c,B1b,B2b,C1b,C2bの状態に「予備」が設定される。
【0329】
ここで、
図39を用いて、サービスA,B,Cの提供にかかるコンテナ(予備コンテナを含む)に割り当てられたリソースの使用状態について説明する。
【0330】
図39は、実施例4にかかるリソースの使用状態を示す説明図である。
図39において、運用サーバ202内のCPU1~CPU16およびGPU1~GPU10は、コンテナ(予備コンテナを含む)に割り当て可能なリソースを表す。なお、
図39中、運用サーバ202は、1台以上の運用サーバ202を表す。
【0331】
図39に示す例では、コンテナA1a~C2aに割り当てられたリソースの使用状態が「電源ON(使用中)」となっている。また、予備コンテナA1b~C2bに割り当てられたリソースの使用状態が「電源ON(未使用)」となっている。また、コンテナA1a~C2aおよび予備コンテナA1b~C2bに割り当てられたリソース以外のリソースの使用状態は、「電源OFF」となっている。
【0332】
(管理サーバ201の資源管理処理手順)
つぎに、実施例4にかかる管理サーバ201の資源管理処理の具体的な処理手順について説明する。ただし、
図22に示したステップS2202の第1のグループ分け処理以外は、実施例1にかかる管理サーバ201の資源管理処理の具体的な処理手順と同様である。このため、ここではステップS2202の第1のグループ分け処理の代わりに実行される第4のグループ分け処理の具体的な処理手順についてのみ説明する。
【0333】
図40および
図41は、第4のグループ分け処理の具体的処理手順の一例を示すフローチャートである。
図40のフローチャートにおいて、まず、管理サーバ201は、予備用の予備コンテナを必要リソースが多い順にソートする(ステップS4001)。つぎに、管理サーバ201は、ソート後の予備コンテナのうち未選択の予備コンテナを順に選択する(ステップS4002)。
【0334】
そして、管理サーバ201は、サービス構成情報に基づいて、選択した予備コンテナのサービスの需要傾向を特定する(ステップS4003)。つぎに、管理サーバ201は、未確認のグループがあるか否かを判断する(ステップS4004)。ここで、未確認のグループがある場合(ステップS4004:Yes)、管理サーバ201は、未確認のグループを選択する(ステップS4005)。
【0335】
つぎに、管理サーバ201は、グループ内の予備コンテナのサービスの需要傾向を特定する(ステップS4006)。そして、管理サーバ201は、特定したサービスが、ステップS4003において特定した需要傾向と同じか否かを判断する(ステップS4007)。
【0336】
ここで、需要傾向が同じ場合(ステップS4007:Yes)、管理サーバ201は、ステップS4004に戻る。一方、需要傾向が異なる場合(ステップS4007:No)、管理サーバ201は、選択したグループに、選択した予備コンテナを追加した際のリソース量の増加分を特定する(ステップS4008)。
【0337】
そして、管理サーバ201は、現在の合計リソース量に算出したリソース量の増加分を加算することにより、合計リソース量を算出する(ステップS4009)。つぎに、管理サーバ201は、リソース上限情報を参照して、算出した合計リソース量が上限を超えていないか否かを判断する(ステップS4010)。
【0338】
ここで、上限を超えている場合(ステップS4010:No)、管理サーバ201は、ステップS4004に戻る。一方、上限を超えていない場合(ステップS4010:Yes)、管理サーバ201は、選択したグループに、選択した予備コンテナを追加する(ステップS4011)。
【0339】
そして、管理サーバ201は、ソート後の予備コンテナのうち選択されていない未選択の予備コンテナがあるか否かを判断する(ステップS4012)。ここで、未選択の予備コンテナがある場合(ステップS4012:Yes)、ステップS4002に戻る。一方、未選択の予備コンテナがない場合(ステップS4012:No)、管理サーバ201は、第4のグループ分け処理を呼び出したステップに戻る。
【0340】
また、ステップS4004において、未確認のグループがない場合(ステップS4004:No)、管理サーバ201は、
図41に示すステップS4101に移行する。
【0341】
図41のフローチャートにおいて、まず、管理サーバ201は、新しいグループに、選択した予備コンテナを追加した際のリソース量の増加分を特定する(ステップS4101)。そして、管理サーバ201は、現在の合計リソース量に算出したリソース量の増加分を加算することにより、合計リソース量を算出する(ステップS4102)。
【0342】
つぎに、管理サーバ201は、リソース上限情報を参照して、算出した合計リソース量が上限を超えていないか否かを判断する(ステップS4103)。ここで、上限を超えていない場合(ステップS4103:Yes)、管理サーバ201は、新しいグループに、選択した予備コンテナを追加して(ステップS4104)、
図40に示したステップS4012に戻る。
【0343】
一方、上限を超えている場合(ステップS4103:No)、管理サーバ201は、選択した予備コンテナを追加した際のリソース量の増加分を全グループ分算出する(ステップS4105)。そして、管理サーバ201は、各ケースでの合計リソース量を算出する(ステップS4106)。
【0344】
つぎに、管理サーバ201は、算出した各ケースでの合計リソース量に基づいて、上限を超えていないケースがあるか否かを判断する(ステップS4107)。ここで、上限を超えていないケースがある場合(ステップS4107:Yes)、管理サーバ201は、上限を超えていないケースのいずれかのグループを選択する(ステップS4108)。
【0345】
そして、管理サーバ201は、選択したグループに、選択した予備コンテナを追加して(ステップS4109)、
図40に示したステップS4012に戻る。また、ステップS4107において、上限を超えていないケースがない場合(ステップS4107:No)、管理サーバ201は、リソース上限により予備コンテナの生成エラーを出力して(ステップS4110)、第4のグループ分け処理を呼び出したステップに戻る。生成エラーの出力先は、例えば、サービス提供元のユーザが使用するクライアント端末である。
【0346】
これにより、管理サーバ201は、リソース量が上限を超えない範囲で、同じ需要傾向のサービスの予備コンテナ同士が同一グループとならないように、予備コンテナをグループ分けすることができる。
【0347】
以上説明したように、実施例4にかかる管理サーバ201によれば、予備コンテナに割り当てるリソース量が上限を超えないように、かつ、サービスの内容や需要傾向が似ているサービスの予備コンテナが分かれるようにグループ化することができる。これにより、管理サーバ201は、迅速なリソース増強を可能にするとともに、事前に電源投入して用意しておくICTリソースの数を削減して消費電力を削減することができる。上述した実施例1~4は、矛盾のない範囲で組み合わせてもよい。
【0348】
なお、本実施の形態で説明した資源管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本資源管理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本資源管理プログラムは、インターネット等のネットワークを介して配布してもよい。
【0349】
また、本実施の形態で説明した資源管理装置101(管理サーバ201)は、例えば、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0350】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0351】
(付記1)1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
処理をコンピュータに実行させることを特徴とする資源管理プログラム。
【0352】
(付記2)前記情報は、前記複数の処理装置それぞれが前記1以上のサービスのうちのいずれのサービスの提供にかかる処理装置であるかを表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち、同じサービスの提供にかかる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする付記1に記載の資源管理プログラム。
【0353】
(付記3)前記情報は、前記複数の処理装置それぞれの負荷状態を表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち処理性能の余裕度合いが閾値以下となる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする付記1または2に記載の資源管理プログラム。
【0354】
(付記4)前記情報は、前記複数の処理装置それぞれに対応するサービスの需要傾向を表す情報であり、
前記分類する処理は、
前記情報に基づいて、前記予備用の予備処理装置のうち、同じ需要傾向のサービスの提供にかかる処理装置に対応する予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする付記1~3のいずれか一つに記載の資源管理プログラム。
【0355】
(付記5)前記分類する処理は、
前記予備用の予備処理装置に割り当て可能なリソース量の上限を表す上限情報と前記情報とに基づいて、前記予備用の予備処理装置に割り当てるリソース量が前記上限を超えないように、かつ、前記予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類する、ことを特徴とする付記1~4のいずれか一つに記載の資源管理プログラム。
【0356】
(付記6)前記予備用の予備処理装置に割り当て可能なリソースは、未割り当ての状態では電源断となっており、
前記予備用の予備処理装置に割り当て可能なリソースのうち、前記グループ内の予備処理装置に割り当てたリソースの電源を投入する、
処理を前記コンピュータに実行させることを特徴とする付記1~5のいずれか一つに記載の資源管理プログラム。
【0357】
(付記7)前記予備用の予備処理装置に割り当て可能なリソースのうち、割り当て済みのリソース以外のリソースの電源を省電力モードに設定する、
処理を前記コンピュータに実行させることを特徴とする付記6に記載の資源管理プログラム。
【0358】
(付記8)前記複数の処理装置それぞれは、コンテナまたは仮想マシンであり、
前記予備用の予備処理装置は、予備用のコンテナまたは仮想マシンである、
ことを特徴とする付記1~7のいずれか一つに記載の資源管理プログラム。
【0359】
(付記9)前記リソースは、CPU、メモリ、ストレージ、アクセラレータのうちの少なくともいずれかを含む、ことを特徴とする付記1~8のいずれか一つに記載の資源管理プログラム。
【0360】
(付記10)1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
処理をコンピュータが実行することを特徴とする資源管理方法。
【0361】
(付記11)1以上のサービスの提供にかかる複数の処理装置それぞれの特徴を表す情報に基づいて、前記複数の処理装置それぞれに対応する予備用の予備処理装置のうち、同じタイミングで使用される予備処理装置同士が同一グループとならないように、前記予備用の予備処理装置を分類し、
分類したグループ内の予備処理装置間でリソースを共有するように、前記グループ内の予備処理装置に重複してリソースを割り当てる、
制御部を有することを特徴とする資源管理装置。
【符号の説明】
【0362】
101 資源管理装置
110 特徴情報
200 情報処理システム
201 管理サーバ
202 運用サーバ
203 コンテナ管理装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
500 制御部
501 受付部
502 第1の算出部
503 電源管理部
504 配備部
505 第2の算出部
506 負荷監視部
1200,3100 アプリ性能/リソース情報
1300,2500,3000 サービス構成情報
1400 リソース割当状況情報
1500,2600,3200,3700 コンテナ管理情報
3600 リソース上限情報