(57)【要約】【課題】  計算機資源を保有する事業者が、利用者の計算機資源割当要求に対して、利用者間で公平かつ効率的に資源を割り当てる。【解決手段】  本発明は、収集した計算機・ネットワーク資源の使用状況から、管理テーブルに、第i行の要素数ｍiが最下段から順に１からＮまで増加し、Ki=N/miを各要素の幅とするとき、最下段には、全計算機資源の最小分割単位の利用状況を数値化したコストF(x)を設定し、最下段以外にはそれぞれの下段のF(x)を足し合わせた値と、ネットワーク資源の負荷G(y)を設定する。利用者端末からの計算機資源要求ｎに対し、管理テーブルの第ｉ行の幅をＫiとしたときに、ｋi−1＜ｎ＜ｋiを満たす行ｉを選択し、行ｉの要素の内、F(x)及びG(y)の値が最も低く、閾値以下の要素を選択し、該要素の最下段のF(x)が全て閾値以下である場合に、最小の値の要素から連続するｎ個の計算機資源を利用者端末に割り当てる。【選択図】  図１
2014048871.tif 000002
【特許請求の範囲】
【請求項１】
事業者が管理する計算機資源及び該計算機資源が相互接続されたネットワーク資源を利用者に割り当てるための計算機資源割当装置であって、
前記計算機資源及び前記ネットワーク資源の使用状況を収集する利用状況情報収集手段と、
記憶手段の管理テーブルを管理すると共に、計算機資源要求に対して該管理テーブルを参照して計算機資源を割り当てる資源管理手段と、
を有し、
前記資源管理手段は、
前記記憶手段の前記管理テーブルに対して、第i行の要素数ｍiが最下段から順に１からＮまで増加し、Ki=N/miを各要素の幅とするとき、最下段には、前記利用状況情報収集手段で得られた全計算機資源の最小分割単位の利用状況を数値化したコストF(x)を設定し、該最下段以外の段にはそれぞれの下段のF(x)を足し合わせた値と、ネットワークの負荷に対して任意に定める関数を用いたネットワーク資源の負荷G(y)を設定する管理テーブル設定手段と、
利用者端末から計算機資源要求ｎを取得すると、前記管理テーブルの第ｉ行の幅をＫiとしたときに、ｋi−1＜ｎ＜ｋiを満たす行ｉを選択し、該行ｉの要素の内、F(x)及びG(y)の値が最も低く、かつ、所定の閾値以下の要素をランダムに選択し、選択した該要素の最下段のF(x)が全て閾値以下である場合に、最も値の低い要素から連続するｎ個の計算機資源を該利用者端末に割り当て、該管理テーブルの値を割り当てに応じて更新する資源割当手段と、
を有することを特徴とする計算機資源割当装置。
【請求項２】
前記管理テーブル設定手段は、
前記各計算機資源の利用状況を数値化したコストF(x)を、
前記計算機資源を利用しているユーザ数と該計算機資源の使用状況の重みにより求め、
前記ネットワーク資源の負荷G(y)を、
前記ネットワークに接続されているユーザ数とネットワーク資源の実際の利用状況の重みにより求め、前記管理テーブルに設定する手段を含む
請求項１記載の計算機資源割当装置。
【請求項３】
前記管理テーブル設定手段は、
前記管理テーブルをネットワーク毎に設け、ネットワーク毎に決定された優先度に応じて前記各計算機資源の利用状況を数値化したコストF(x)及び前記ネットワーク資源の負荷G(y)の重みを該管理テーブルに設定する手段を含む
請求項１記載の計算機資源割当装置。
【請求項４】
前記資源割当手段は、
前記閾値を、前記計算機資源または、前記ネットワーク資源の利用者数に応じて変更する手段を含む
請求項１記載の計算機資源割当装置。
【請求項５】
事業者が管理する計算機資源及び該計算機資源が相互接続されたネットワーク資源を利用者に割り当てるための計算機資源割当方法であって、
利用状況情報収集手段、管理テーブルを格納する記憶手段、資源管理手段を有する装置において、
前記利用状況情報収集手段が、前記計算機資源及び前記ネットワーク資源の使用状況を収集する利用状況情報収集ステップと、
前記資源管理手段が、前記記憶手段の管理テーブルに対して、第i行の要素数ｍiが最下段から順に１からＮまで増加し、Ki=N/miを各要素の幅とするとき、最下段には、前記利用状況情報収集手段で得られた全計算機資源の最小分割単位の利用状況を数値化したコストF(x)を設定し、該最下段以外の段にはそれぞれの下段のF(x)を足し合わせた値と、ネットワークの負荷に対して任意に定める関数を用いたネットワーク資源の負荷G(y)を設定する管理テーブル生成ステップと、
前記資源管理手段が、利用者端末から計算機資源要求ｎを取得すると、前記管理テーブルの第ｉ行の幅をＫiとしたときに、ｋi−1＜ｎ＜ｋiを満たす行ｉを選択し、該行ｉの要素の内、F(x)及びG(y)の値が最も低く、かつ、所定の閾値以下の要素をランダムに選択し、選択した該要素の最下段のF(x)が全て閾値以下である場合に、最も値の低い要素から連続するｎ個の計算機資源を該利用者端末に割り当て、該管理テーブルの値を割り当てに応じて更新する資源割り当てステップと、
を行うことを特徴とする計算機資源割当方法。
【請求項６】
前記管理テーブル生成ステップにおいて、
前記各計算機資源の利用状況を数値化したコストF(x)を、
前記計算機資源を利用しているユーザ数と該計算機資源の使用状況の重みにより求め、
前記ネットワーク資源の負荷G(y)を、
前記ネットワークに接続されているユーザ数とネットワーク資源の実際の利用状況の重みにより求める
請求項５記載の計算機資源割当方法。
【請求項７】
前記管理テーブル生成ステップにおいて、
前記管理テーブルをネットワーク毎に設け、ネットワーク毎に決定された優先度に応じて前記各計算機資源の利用状況を数値化したコストF(x)及び前記ネットワーク資源の負荷G(y)の重みを設定する
請求項５記載の計算機資源割当方法。
【請求項８】
コンピュータを、
請求項１乃至４のいずれか１項に記載の計算機資源割当装置の各手段として機能させるための計算機資源割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、事業者が計算機資源を利用者に提供するための計算機資源割当装置及び方法及びプログラムに係り、特に、事業者が利用者に提供している計算機資源を効率的に管理し、それらを利用者間で公平に割り当てるための計算機資源割当装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
今日、多くの計算機資源を保有する事業者が、これらの計算機資源を仮想的に利用者へ時間に応じて貸し付ける事業が行われている。これにより、利用者は物理的な計算機資源の購入や調達を行うことなく、簡単に所望の計算機環境を仮想的に構築し、利用規模に応じた使用が可能となる。こうした事業の利用用途は、Webサーバのバックエンドや、一時的に大規模な分析用に用いるなど様々である。
【０００３】
こうした計算機資源貸付事業においては、物理的な１つの計算機上に複数の利用者が利用する仮想的な計算機を複数構成するVirtual Machine(VM)という技術により実現される。このため、ディスクやメモリ、ＣＰＵなどの１台の計算機上の計算機資源は複数のVMにより共有されることになる。これにより、事業者は物理的には少量の機器を保有しながら、その資源の最大限の活用が可能となる。
【０００４】
しかし、１台の計算機上に複数のVMを構築する性質上、同じ計算機を利用している利用者間での計算機資源の利用に関する競合が発生し、利用者間に割り当てられる計算機資源の不公平や不当な処理速度低下が発生する場合がある。同様に、計算機を相互に接続する、リンクやスイッチ、ルータなどのネットワーク資源の共有による利用者間の競合も発生する。
【０００５】
また、事業者の持つ計算機資源は主にデータセンタと呼ばれる計算機を集約して保管する建物内にあり、データセンタ内のLAN内において計算機を相互接続したクラスタと呼ばれる計算機網が構成されている。利用者へ割り付ける計算機資源の競合が発生することと同様に、リンク、スイッチ、ルータなどのネットワーク資源の共有による利用者間の競合による、不公平や利用品質低下などが発生する。
【０００６】
この反面、事業者は、利用者に対して例えば、１つの計算機には必ず１つの利用者しかいないというように潤沢に資源を割り当ててしまうと、保有している計算機資源及びネットワーク資源を十分に使いきれないことになるため、利益が低下し、使用電力量が増加するなど運用費用も増加する。このため、利用者の計算機使用状況に応じて保有している計算機資源を割り当てるための効率的な運用方法が必要となる。
【０００７】
これに対して、計算機資源及びネットワーク資源の利用者からの要求に対して、効率的に事業者が各資源を割り当てる手法がある（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】H.Ballani, P. Costa, T. Kargiannis, and A. Rowstron. Towards Predictable Datacenter Networks, In Sigcomm 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記非特許文献１の技術では、１つの計算機において構築可能なVM数が事前に与えられており、利用者の要求するネットワーク資源を最大限に割り当てるようにするなど、特に利用者の計算機資源の要求した資源を使いきらなかった場合などには、事業者の保有する支援を最大限に活用することができず、非効率的である。また、当該文献の技術では、ネットワーク以外の資源に関する考慮はされていない。
【００１０】
本発明は、上記の点に鑑みなされたもので、計算機資源を保有する事業者が、利用者の計算機資源割当要求に対して、利用者間で公平かつ効率的に資源を割り当て、かつ、事業者による効率よい計算機資源及びネットワーク資源の管理を実現することが可能な計算機資源割当装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明（請求項１）は、事業者が管理する計算機資源及び該計算機資源が相互接続されたネットワーク資源を利用者に割り当てるための計算機資源割当装置であって、
前記計算機資源及び前記ネットワーク資源の使用状況を収集する利用状況情報収集手段と、
記憶手段の管理テーブルを管理すると共に、計算機資源要求に対して該管理テーブルを参照して計算機資源を割り当てる資源管理手段と、
を有し、
前記資源管理手段は、
前記記憶手段の前記管理テーブルに対して、第i行の要素数ｍiが最下段から順に１からＮまで増加し、Ki=N/miを各要素の幅とするとき、最下段には、前記利用状況情報収集手段で得られた全計算機資源の最小分割単位の利用状況を数値化したコストF(x)を設定し、該最下段以外の段にはそれぞれの下段のF(x)を足し合わせた値と、ネットワークの負荷に対して任意に定める関数を用いたネットワーク資源の負荷G(y)を設定する管理テーブル設定手段と、
利用者端末から計算機資源要求ｎを取得すると、前記管理テーブルの第ｉ行の幅をＫiとしたときに、ｋi−1＜ｎ＜ｋiを満たす行ｉを選択し、該行ｉの要素の内、F(x)及びG(y)の値が最も低く、かつ、所定の閾値以下の要素をランダムに選択し、選択した該要素の最下段のF(x)が全て閾値以下である場合に、最も値の低い要素から連続するｎ個の計算機資源を該利用者端末に割り当て、該管理テーブルの値を割り当てに応じて更新する資源割当手段と、を有する。
【００１２】
また、本発明（請求項２）は、前記管理テーブル設定手段において、
前記各計算機資源の利用状況を数値化したコストF(x)を、
前記計算機資源を利用しているユーザ数と該計算機資源の使用状況の重みにより求め、
前記ネットワーク資源の負荷G(y)を、
前記ネットワークに接続されているユーザ数とネットワーク資源の実際の利用状況の重みにより求め、前記管理テーブルに設定する手段を含む。
【００１３】
また、本発明（請求項３）は、前記管理テーブル設定手段において、
前記管理テーブルをネットワーク毎に設け、ネットワーク毎に決定された優先度に応じて前記各計算機資源の利用状況を数値化したコストF(x)及び前記ネットワーク資源の負荷G(y)の重みを該管理テーブルに設定する手段を含む。
【００１４】
また、本発明（請求項４）は、前記資源割当手段において、
前記閾値を、前記計算機資源または、前記ネットワーク資源の利用者数に応じて変更する手段を含む。
【発明の効果】
【００１５】
上記のように、本発明によれば、計算機資源を保有する事業者が、利用者の計算機資源割り当て要求に対して、利用者間で公平かつ効率的に資源を割り当て、かつ事業者による効率の良い計算機資源管理を実現することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の管理テーブルと事業者の保有する計算機網の例である。
【図２】本発明の計算機資源の割当法のフローチャートである。
【図３】本発明の第１の実施の形態における計算機資源管理装置の構成図である。
【図４】本発明の第１の実施の形態におけるシーケンスチャートである。
【図５】本発明の第１の実施の形態における管理テーブルの例である。
【図６】本発明の第２の実施の形態における計算機資源管理装置の構成図である。
【図７】本発明の第２の実施の形態における網ごとに管理する管理テーブルの例である。
【発明を実施するための形態】
【００１７】
以下、図面と共に本発明の実施の形態を説明する。
【００１８】
まず、本発明の概要を説明する。
【００１９】
・計算機資源を有する事業者が、計算機網に対して図１に示す管理テーブルを持つことにより、本発明の課題を実現する。
【００２０】
・事業者はN個の計算機を有し、ルータやスイッチなどの相互接続機器により図２のような計算機網を構成しているものとする。
【００２１】
・利用者は計算機を全計算機のうちのいくつか（ｎ個）の計算機資源割り当てを要求する。なお、１台に計算機には仮想的な計算機資源を複数割り当てることができる。
【００２２】
・事業者は図２に示すとおり、各計算機の利用状況をディスクIO負荷、ネットワークIO負荷、CPU利用率、メモリ利用率などを監視することにより知ることができる。この数値を以下ではｘとして表す。また、相互接続網内のスイッチやルータ、リンクなどの利用率を監視することができるとする。この数値を以下ではｙとして表す。
【００２３】
・事業者は計算機およびその相互接続網に対して、管理テーブルを保持し、現在の利用者の計算機利用状況ｘおよび相互接続機器から得られる情報ｙをもとに新しい利用者に対して所望の計算機資源を割り当てる。
【００２４】
以下では図１を用いて事業者が保持する管理テーブルの説明をする。当該管理テーブルは、後述する第１、第２の実施の形態のクラウド管理部１３０，２３０の管理テーブル１３１，２３１に対応する。当該管理テーブルの設定は、後述する第１、第２の実施の形態の資源管理部１４０，２４０によって行われる。
【００２５】
・図１の最下行の各要素は全計算機資源の最小分割単位を表しており、１台の計算機に対応する。また、各行の上段に位置する要素は、下段の要素を束ねる構成をしており、これは計算機の相互接続網により接続している機器や、同じ相互接続機器に接続している計算機器の分割を表している。なお、各行において下段を束ねる単位は任意に定めることができる。
【００２６】
・第ｉ行の要素数ｍiは最下段から順に1からNまで増えていき、Ki = N/miを各要素の幅と呼ぶ。
【００２７】
・最下行の各要素には、計算機資源の利用状況 (ディスク、CPU、メモリ負荷など) を数値化したコストF(x) を投入する。ただし、各計算機にてｘは実際に計測された利用負荷である。F(x)は、もし計算機が利用されていなければ0となり、事業者が適宜設定可能であるとする。
【００２８】
・管理テーブルの最下段以外の各行の要素には、それぞれの下段の要素のF(x) の値をすべて足し合わせたものを、その要素のF(x) として記入する。また、相互接続機器 (ルータ、スイッチ) などで収集されるネットワークの負荷(利用帯域)yに対して任意に定める関数Gを用いてG(y) として記入する。G(y) の値の決定法は事業者が適宜設定可能である。
【００２９】
以下では、図１の管理テーブルおよび図２のフローチャートを用いて利用者への計算機資源割り当て法および利用管理法を説明する。当該割り当て方法は、後述する第１、第２の実施の形態における資源管理部１４０，２４０に適用される。
【００３０】
利用者からのｎ個の計算機資源に対する計算機資源要求を取得すると、管理テーブルの第i行の幅Kiとしたときにki‐1 < n < kiを満たす行iを選択する（ステップ１）。
【００３１】
行内において、最も要素内のF(x) およびG(y) の値の低いものをランダムに1つ選択する（ステップ３）。ただし、F(x)およびG(y)が、各要素について事前に定められた閾値を超えていれば、利用者への割り当てを中止し（ステップ２）、割り当て失敗とする（ステップ５）。
【００３２】
選択された要素が包含している、最下段の要素すなわち各計算機において、F(x)の低いものから順にn個を利用者に割り当てる（ステップ６）。この際、選択した要素のいずれかのF(x)の値が事前に定められた閾値以上であれば割り当てを中止し（ステップ４）、割り当て失敗とする（ステップ５）。
【００３３】
割り当てられた計算機資源状況xおよびネットワーク利用状況yは、ある時間間隔で更新され、表内の各要素の値F(x)およびG(y)も同時に更新される。
【００３４】
以下に、装置構成を示しながら、本発明の実施の形態を説明する。
【００３５】
以下の第１の実施の形態及び第２の実施の形態では、説明の簡便化のため、事業者の持つ計算機網が木構造となる運用形態を示し、F(x)およびG(y)を適宜与えるが、本発明の適用範囲はこの限りではない。
【００３６】
［第１の実施の形態］
本実施の形態では、事業者が単一の網を持つ場合の例を説明する。
【００３７】
図３は、本発明の第1の実施の形態における計算機資源管理装置の構成を示す。
【００３８】
計算機資源管理装置１００は、ユーザインタフェース１１０、利用状況情報収集部１２０、管理テーブル１３１を有するクラウド管理部１３０、資源管理部１４０を有する。ユーザインタフェース１１０は、相互接続機器及び利用者の端末に接続されている。
【００３９】
図４は、本発明の第1の実施の形態におけるシーケンスチャートである。
【００４０】
利用状況情報収集部１２０は、ユーザインタフェース１１０を介して随時計算機相互接続網におけるネットワーク利用状況および各計算機の利用状況を収集し（ステップ１０１，１０２）、資源管理部１４０において、以下の処理を行い、クラウド管理部１３０の管理テーブル１３１に利用状況情報を格納する（ステップ１０３）。その際に、収集された情報に基づいて、
F(x) = (利用ユーザ数)×A
+ (直前に利用ユーザ数が変化した時点から現在までのCPU負荷平均)×B
と設定し、
G(y) = (接続ユーザ数)×C 
+ (直前に接続ユーザ数が変化した時点から現在までの利用帯域の最大値)
と設定する。F(x)は、利用ユーザ数と実際の計算機資源使用状況の重み付けの形であり、現在の計算機資源の使用状況を表す。F(x)の第二項のAは、直前のCPU資源の利用率を表しており、これにより、利用ユーザ数が多くても実際はCPUの使用していない場合に対応でき、逆に利用ユーザ数は少ないがCPU使用率が高い場合に対応できる。また、G(y) は、現在の接続ユーザ数とネットワーク資源の実際の利用状況の重み付けの形であり、現在のネットワーク資源の使用状況を表す。G(y)の第二項のCは、直前の利用ユーザが用いる可能性のある最大帯域を表しており、これにより、接続ユーザ数が多くても実際はネットワークを使用していない場合に対応でき、逆に利用ユーザ数は少ないが利用帯域が高い場合に対応できる。
【００４１】
利用者は事業者が所有する計算機資源管理装置１００のユーザインタフェース１１０へアクセスする（ステップ１０４）。計算機資源管理装置１００の資源管理部１４０は、クラウド管理部１３０内の管理テーブル１３１の現在の計算機資源利用状況を参照し、現在利用可能な計算機資源の状況に応じて、提供可能な計算機資源を割り当て、ユーザインタフェース１１０を介して通知する（ステップ１０５）。資源管理部１４０における資源割り当て方法については、前述の図２に示すフローチャートのステップ１〜６を行うことにより可能である。利用者は自身の端末に当該計算機資源を表示する。
【００４２】
利用者は自身の端末のユーザインタフェースに表示された利用可能な計算機資源の中から、所望の計算機資源を要求する（ステップ１０６）。計算機資源管理装置１００の資源管理部１４０は、ユーザインタフェース１１０を介して当該計算資源の要求を取得すると、当該利用者に対して計算機資源を割り当てる（ステップ１０７）。計算機資源管理装置１００の資源管理部１４０は、割り当てた計算機資源の状況を用いてクラウド管理部１３０の管理テーブル１３１を更新する（ステップ１０８）。
【００４３】
計算機資源を割り当てられた利用者は、自身のユーザインタフェースを介して計算機資源へ接続し（ステップ１０９）、利用することができる。また、計算機利用状況収集部１２０に各ユーザが利用している計算機の利用状況が提供され（ステップ１１０）、当該利用状況をユーザインタフェース１１０を介して利用者に当該利用状況情報を提供することにより、利用者はこれを監視できる。
【００４４】
利用者の計算機資源利用終了後は、利用者からユーザインタフェース１１０を介して利用終了が利用状況収集部１２０に通知され（ステップ１１１）、資源管理部１４０が利用終了となった計算機機器について、「割り当て済み」から「開放」に状態を遷移させ、管理テーブル１３１を更新する（ステップ１１２）。この例を図５に示す。図５では、利用者２の端末から利用終了が通知されると、計算機の負荷、ネットワークの利用帯域が更新される。
【００４５】
［第２の実施の形態］
第１の実施の形態では事業者の所有する計算機資源が1つの網のみである例を示したが、本実施の形態では、図６のように複数の計算機網を所有する場合について説明する。なお、計算機資源管理装置２００の構成は図３と同様である。同図では、計算機資源管理装置２００が計算機網Ａ，Ｂの２つを所有する例を示す。
【００４６】
本実施の形態では、複数の計算機網を管理するため、資源管理部２４０は、計算機資源のF(x)やネットワーク資源のG(y)に対して優先度を付与して、図７に示すようにクラウド管理部２３０の管理テーブル２３１で管理する。優先度の決定方法として、具体的には、事業者が事前にいくつかの計算機資源割当方法について提供形態を定めておくことが可能である。例えば、優先度が高い提供形態を利用する利用者は、別の優先度の低い提供形態を利用する利用者よりも、優先的に多くの計算機資源を得られるようにする。なお、優先度の決定方法については、当該例に限定されることなく、任意の決定方法を採用することが可能である。
【００４７】
なお、事業者の保有する計算機網は必ずしも物理的に隔離されている必要はなく、資源分割が行えていれば仮想的に構築することもできる。この場合、利用状況収集部はそれぞれ別々に計算機資源及びネットワーク利用状況を収集し、資源管理部２４０は網毎に別々に管理テーブル２３１を構成する。
【００４８】
また、ユーザは通常の計算機資源要求とともに、事業者が予め定めた品質レベルの要求を行う。計算機資源管理装置２００は、ユーザインタフェース１１０を介して当該要求を取得すると、資源管理部２４０により、品質レベルごとに利用者が利用すべき網が選択され、利用者は第１の実施の形態と同様に計算機資源を割り当てられ、ユーザインタフェースを介して計算機資源を利用する。
【００４９】
上記のように、管理テーブル２３１毎に固有である現在の計算機資源の使用状況F(x) および現在のネットワーク資源の使用状G(y)の値、利用者がアクセス時に割り当て失敗となる管理テーブル２３１に設けられる閾値を適宜変更することで、本形態の利用者の品質要求の差別化が実現できる。例えば、第１の実施の形態のF(x)、G(x) における各重みを優先度の高い要求を待つ網については高くしておくことで、同じ閾値の計算機資源に対して割り当てられる利用者が減少するため、利用品質が向上する。同様に、閾値を下げることで、同じ計算機資源に割り当てられる利用者数が減少し、利用品質が向上する。
【００５０】
なお、図３、図６に示す計算機資源管理装置の各構成要素の動作をプログラムとして構築し、計算機資源管理装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００５１】
本発明は上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用可能である。
【符号の説明】
【００５２】
１００，２００  計算機資源管理装置
１１０，２１０  ユーザインタフェース
１２０，２２０  利用状況情報収集部
１３０，２３０  クラウド管理部
１３１，２３１  管理テーブル
１４０，２４０  資源管理部
【図１】
2014048871.tif 000003
【図２】
2014048871.tif 000004
【図３】
2014048871.tif 000005
【図４】
2014048871.tif 000006
【図５】
2014048871.tif 000007
【図６】
2014048871.tif 000008
【図７】
2014048871.tif 000009