(57)【要約】      （修正有）【課題】ブレードサーバーのように複数のブレード上で複数のアプリケーションの実行を実現するシステムにおいて、ブレード全体のリソース（ＣＰＵ、メモリ）をより効率よく使用するように、アプリケーションが実行されるＬＰＡＲのリソースを自動で割当てる。【解決手段】各ＬＰＡＲで処理されるアプリケーション１０３で要求される処理を実行するのに要求されるリソースのリソース比に応じて、最も近いリソース比をもつブレードに各アプリケーション１０３を順に割り当てることにより、ブレード全体のリソースをより効率よく利用できるようにアプリケーション１０３を配置できるようＬＰＡＲを作成する。【選択図】図１
2012108684.tif 000002
【特許請求の範囲】
【請求項１】
複数のブレードそれぞれの論理区画に対するリソース割当てを制御するブレード論理区画リソース割当システムであって、
前記複数のブレードそれぞれで動作させる複数のアプリケーションそれぞれについて当該アプリケーションの要求するＣＰＵの能力を表す指標値であるＣＰＵ値およびメモリの容量を表す指標値であるメモリ値、もしくは前記ＣＰＵ値と前記メモリ値の比である要求リソース比とを記憶する手段と、
前記複数のブレードの持つＣＰＵの能力を表す指標値であるブレードＣＰＵ値およびブレードの持つメモリの容量を表す指標値であるブレードメモリ値、もしくは前記ブレードＣＰＵ値と前記ブレードメモリ値の比である提供リソース比を記憶する手段と、
前記複数のアプリケーションから前記リソース割当て対象となるアプリケーションを特定する手段と、
前記提供リソース比を記憶する手段に記憶された内容に基づいて特定される前記ブレードそれぞれの提供リソース比のうち、特定された前記アプリケーションの要求リソース比に最も近い前記提供リソース比を持つ前記ブレードを選択する手段と、
前記複数のアプリケーションのうち、前記特定されたアプリケーション以降に割当て対象となるアプリケーションについて、前記複数のブレードのうち前記選択されたブレード以外のブレードの提供リソース比が最も近いブレードを繰り返し選択して、ブレードとアプリケーションを対応付ける手段と、
前記選択されたブレードに対して当該ブレードに対応付けられたアプリケーションの要求する前記ＣＰＵ値と前記メモリ値に基づくリソース値で、当該ブレードに論理区画を作成する手段と、
を有するブレード論理区画リソース割当システム。
【請求項２】
請求項１に記載のブレード論理区画リソース割当システムであって、
さらに、前記アプリケーションを論理的に分割する分割数を示す粒度を記憶する手段と、
前記アプリケーションの前記ＣＰＵ値と前記メモリ値を、それぞれ前記粒度の数で割って、その割られたＣＰＵ値とメモリ値を分割アプリケーションの要求する分割ＣＰＵ値、分割メモリ値として算出する手段とを有し、
前記ブレードを選択する手段は、前記分割アプリケーションを前記アプリケーションとして、前記分割ＣＰＵ値、前記分割メモリ値を、前記ＣＰＵ値、前記メモリ値として、前記アプリケーションと前記ブレードの組み合わせを選択し、
前記論理区画のリソースを割当てる手段は、前記ブレードに配置された前記分割アプリケーションのうち、同一の種類のアプリケーションの前記分割ＣＰＵ値および前記分割メモリ値を足し合わせたものに基づいて、各論理区画のリソースを割当てる
ブレード論理区画リソース割当システム。
【請求項３】
請求項１または請求項２のいずれかに記載のブレード論理区画リソース割当システムであって、
さらに、
前記それぞれのブレードのリソース使用状況を記憶する手段と、
前記ブレードを選択する手段は、前記割当てブレードの前記リソース使用状況からブレードに残されたリソースに前記アプリケーションが配置不可能な場合は、次に前記要求リソース比と前記提供リソース比が最も近いブレードを検索して前記アプリケーションと前記ブレードの組み合わせを選択する手段と、
前記配置されたアプリケーションの前記ＣＰＵ値と前記メモリ値で前記割当てブレードのリソース使用状況をそれぞれ更新する手段と、
を有するブレード論理区画リソース割当システム。
【請求項４】
請求項３に記載のブレード論理区画リソース割当システムであって、
さらに、前記分割アプリケーションの内まだブレードに配置されていない前記分割アプリケーションの数である未配置数を記憶する手段とを有し、
前記ブレードを選択する手段は、前記未配置数のそれぞれが０になるまで、前記未配置数が大きい前記アプリケーションから優先して前記アプリケーションと前記ブレードの組み合わせを選択する前記処理を繰り返し、
前記リソースの使用状況更新手段は、前記アプリケーションを前記ブレードに配置できた場合に、対象の前記分割アプリケーションの前記未配置数を１減じて更新する
ブレード論理区画リソース割当システム。
【請求項５】
複数のブレードそれぞれの論理区画に対するリソース割当てを制御するブレード論理区画リソース割当方法であって、
前記複数のブレードそれぞれで動作させる複数のアプリケーションそれぞれについて当該アプリケーションの要求するＣＰＵの能力を表す指標値であるＣＰＵ値およびメモリの容量を表す指標値であるメモリ値、もしくは前記ＣＰＵ値と前記メモリ値の比である要求リソース比とを記憶し、
前記複数のブレードの持つＣＰＵの能力を表す指標値であるブレードＣＰＵ値およびブレードの持つメモリの容量を表す指標値であるブレードメモリ値、もしくは前記ブレードＣＰＵ値と前記ブレードメモリ値の比である提供リソース比を記憶し、
前記複数のアプリケーションから前記リソース割当て対象となるアプリケーションを特定し、
前記提供リソース比を記憶する手段に記憶された内容に基づいて特定される前記ブレードそれぞれの提供リソース比のうち、特定された前記アプリケーションの要求リソース比に最も近い前記提供リソース比を持つ前記ブレードを選択し、
前記複数のアプリケーションのうち、前記特定されたアプリケーション以降に割当て対象となるアプリケーションについて、前記複数のブレードのうち前記選択されたブレード以外のブレードの提供リソース比が最も近いブレードを繰り返し選択して、ブレードとアプリケーションを対応付け、
前記選択されたブレードに対して当該ブレードに対応付けられたアプリケーションの要求する前記ＣＰＵ値と前記メモリ値に基づくリソース値で、当該ブレードに論理区画を作成する
ことを特徴とするブレード論理区画リソース割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各ブレードのリソース(CPU、メモリ)を各LPAR(論理区画)に割当てる技術に関する。
【背景技術】
【０００２】
コンピュータ仮想化技術のひとつとして、PPAR（物理区画）のようにひとつのコンピュータを複数のコンピュータであるように仮想化する場合に、コンピュータリソースを物理分割して利用するものがある。またPPAR以外にLPARのようにコンピュータリソースを論理分割するものが知られている。このLPARにより例えばCPUのコア毎、メモリの容量単位のように、PPARのようなハードウェアの予め決められた物理的な構成（ビルディングブロック）にとらわれることなく、柔軟にコンピュータのリソースをLPARとして割り当てることができる。
【０００３】
また、ブレードサーバのように、複数のブレード（ハードウェア）を使用してジョブ・アプリケーション等を各ブレードに割当てて処理をさせる技術についても知られている。このような処理を実現する為、各ブレードではブレードのコンピュータリソースを分割して、LPARを持ち、そのそれぞれのLPAR上でアプリケーション・ジョブを処理させて実行させている。これにより複数のアプリケーション・ジョブ等を各ブレードで並列に処理できる。
【０００４】
特許文献１では、LPAR上で動作するOSの負荷に応じて、LPARに割り当てるリソースを自動的に決定することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１５７１７７
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来から、仮想マシンやLPARのリソースの割合を自動で決定するものはあった。しかしながら、従来の技術では、例えばブレードサーバーのように複数のブレードで複数のアプリケーションの実行を実現するシステムにおいて、ブレード全体のリソース（CPU、メモリ）をより効率よく使用するように、アプリケーションが実行されるLPARのリソースを自動で割当てることはできなかった。
【０００７】
そこで、本発明では、ブレード間でのリソース量の割当について考慮して、LPAR毎に異なる要求リソースを効率よくブレードに配置することを目的とする。
【課題を解決するための手段】
【０００８】
これを実現する為の仕組みは、各LPARで処理されるアプリケーションで要求される処理を実行するのに要求されるリソースのリソース比と、ブレードのリソース比を比較し、この結果を用いて各LPARへのリソースのブレードに対する割当てを実行する。このことにより、ブレード全体のリソースを効率よく利用できるようにアプリケーションを配置できるようブレードのリソースをLPARに割当てることができる。このLPARへのリソースの割当ての処理は、初期設定としてアプリケーションの割当て、LPARにリソースの割当てをしたり、アプリケーションが追加された場合、ブレードが追加された場合に実行することが含まれる。
【０００９】
また、各アプリケーションで要求されるリソースの能力を表す値を任意に決めた値(粒度)の数に分割し、分割されたリソース毎にブレードにアプリケーションを配置して、このように各アプリケーションに分割したリソース値のうちの一つを担当させ負荷分散させることも本発明の一態様である。粒度を上げていくことで、より細かいリソース値の単位で、各ブレードにアプリケーションを配置することができる。
【００１０】
上記手順は、ブレードのCPU割当率かメモリ割当率が任意に決めた値(閾値)を超えるか、もしくはアプリケーションの要求リソースがブレードに割り振られるまで繰り返す。
【発明の効果】
【００１１】
本発明によれば、自動で各LPARへのリソース割当率を算出し、ブレード全体のリソースをより効率的に使用するようにLPARへのリソース割当を行うことが出来る効果がある。
【図面の簡単な説明】
【００１２】
【図１】全体の構成を示すブロック図である。
【図２】リソース割当率算出の処理を説明するフローチャートである。
【図３】リソース割当率を算出においてアプリケーションXを選択するフローチャートである。
【図４】アプリケーションXに適したブレードYを選択するフローチャートである。
【図５】ブレードYにアプリケーションXの一部を割当るフローチャートである。
【図６】各ブレードのCPU、メモリリソースを表したテーブルである。
【図７】各アプリケーションの要求リソースを表したテーブルである。
【図８】各ブレードのリソース利用状況を格納したテーブルである。
【図９】仮想マシンへのリソース割当部を行うコンポーネントである。
【図１０】アプリケーションの割当が完了した場合の各ブレードのリソース利用状況を格納したテーブルである。
【発明を実施するための形態】
【００１３】
次に、本発明を実施するための形態（以下、実施形態）について、図面を参照して詳細に説明する。
【００１４】
図１は、本実施形態のシステム構成要素とその動作環境の例を示す図である。
【００１５】
本実施形態は、管理サーバ107と複数の物理マシン101と、それらをつなげるネットワーク106により構成される。各物理マシン101には仮想化機構105が存在し、複数の仮想マシン102が一つの物理マシン101上で動作する。
【００１６】
管理サーバ107は、仮想マシン102へのリソース割当部201により各仮想マシン102へのリソースの割当率を算出し、割当の変更を行う。
【００１７】
それぞれの仮想マシン102において、ゲストOS104とアプリケーション１〜４(103)が動作する。
【００１８】
図９は、仮想マシンへのリソース割当て部201を示す図である。
【００１９】
仮想マシンへのリソース割当部201は、内部にブレード(物理マシン)の物理リソースを格納しているブレードのリソーステーブル301とアプリケーションの要求リソースや各アプリケーションの割当の優先度を格納するアプリケーションの要求リソーステーブル302、ブレードのリソース割当状況を格納するブレードのリソース利用状況テーブル303を保有している。また、仮想マシンへのリソース割当部201はリソース比によるリソース割当案生成プログラム202とリソース割当プログラム203にてリソースの割当を行う。
【００２０】
図６は、ブレードのリソースを記憶するテーブルで、各ブレードのCPUの能力を表す基準値とメモリの能力を表す基準値と、CPU401とメモリ402の比を表す提供リソース比403を記憶している。本テーブルに提供リソース比を記憶させるものとしてもよい。また、提供リソース比403をその都度算出するものとしてもよい。
【００２１】
図７は、アプリケーションの要求するリソースを記憶するテーブルで、各アプリケーションが要求するCPUの能力を表す要求値、メモリの能力を表す要求値、CPU404とメモリ405の比である要求リソース比406、後述する優先度、粒度、未割当の値を記憶する。尚、本テーブルには要求リソース比を記憶させるものとしてもよい。また、要求リソース比406をその都度算出するものとしてもよい。
【００２２】
リソース比によるリソース割当案生成プログラム202の動作の概要について、図2のフローを用いて示す。このフローの詳細については図３〜図５を用いて後述する。
【００２３】
まず、管理サーバ107はステップS21でアプリケーションの要求リソーステーブル302より優先度順にアプリケーションXを選択し、ステップS22でアプリケーションXのリソース要求に適したブレードYをブレードのリソーステーブル301より選択し、ステップS23でブレードYにアプリケーションXの一部を割当てる。ステップS23が終わるとステップS21へ戻り、以降終了条件が満たされるまで繰り返す。終了条件については、以降に記述する。終了条件を満たせばS22はS23に行くことなく処理を終了する。
【００２４】
ステップS21の詳細について、図3の処理フローを用いて説明する。まず、ステップS31でアプリケーションの要求リソーステーブル302より未割当409がより大きいアプリケーションで、且つ優先度407が最も高いアプリケーションXを選択する。未割当409が大きいものから処理することで、ひとつのアプリケーションが連続して処理されてしまい、アプリケーションの配分が特定のブレードに偏ることを少なくなるようにする。例えば、アプリケーションAへの要求リソース CPU１,メモリ２,リソース比１/２ 優先度１でアプリケーションBへの要求リソース CPU１,メモリ２,リソース比１/２ 優先度２、粒度２の場合で、ブレード１提供リソース CPU１,メモリ２,リソース比１/２、ブレード２提供リソース CPU２,メモリ２,リソース比１の場合に、より未割当てが大きいアプリケーションから順にではなく、アプリケーションＡから順に処理されると、ブレード１にアプリケーションAのみ割当、ブレード２にアプリケーションBのみ割当となるが、より未割当てが大きいアプリケーションから順に処理することにより、ブレード１にアプリケーションA,アプリケーションBを1/2ずつ割当し、ブレード２にアプリケーションA,アプリケーションBを1/2ずつ割当ことになり、アプリケーションが偏って配置されることを防ぐことができる。
【００２５】
図７の例では、未割当409が大きいアプリケーション３、４のうち、優先度407の高いアプリケーション４が該当する。
【００２６】
未割当409は粒度408の値の数ある分割されたアプリケーションj（j=1〜n）のうち、ブレードに未割当なものの数である。リソース比によるリソース割当案生成プログラム202では、各アプリケーションで要求される処理を一つのアプリケーションでは実行せずに、各アプリケーションに要求されるリソースを粒度408で複数に分割し、分割した要求されるリソースを、粒度408の数あるアプリケーションで分散処理するよう配置案を生成する。これにより、一つのアプリケーションを複数ブレードで配置することができ、より決め細かくブレードのリソースを有効的に利用することができる。
【００２７】
ここで各ブレードに配置された各アプリケーションは、リソース割当プログラム203で論理的に結合される。
【００２８】
粒度408は、アプリケーションの要求するリソースを分割する値であり、分割した要求リソースに基づいて、ブレードに配置される各アプリケーションの数である。この値は任意に設定可能である。
【００２９】
優先度407は、どのアプリケーションを優先的にブレードに割当るかを表す値で、値が大きい程優先度が低く、値が小さい程優先度が高い。また、優先度407は利用者が任意に設定することができる。
【００３０】
次に、ステップS32でアプリケーションXの未割当409が0でないか図7のアプリケーションの要求するリソースを記憶するテーブルの未割当409から判断をする。もし0である場合は、それぞれのアプリケーションに要求されるリソースが既に各ブレードで割当られているため、リソース比によるリソース割当案生成プログラム202は終了となる。アプリケーションXの未割当409が0でない場合は、まだ未割当なアプリケーションが存在するため、ステップS22へと進む。
【００３１】
アプリケーション３の例では、図７のアプリケーション３の未割当409が3であるため、ステップS22へと進む。
【００３２】
ステップS22の詳細について図4の処理フローを用いて説明する。まずステップS41では、アプリケーションの要求リソーステーブル302のアプリケーションXの要求リソース比406とブレードのリソーステーブル301の提供リソース比を比較していき、のうち最も近い値を持つ、ブレードのリソーステーブル301の提供リソース比403より検索し、該当するブレードＹを選択する（ｋ番目（ｋ＝１，２，３，…）のブレード)。このアプリケーションXの要求リソース比をその都度計算させることとしてもよい。
【００３３】
ただし、ステップS42もしくはステップS45からステップS41へフローが移った場合は、既に選択されているブレードYの次にリソース比が近いブレード(k+1番目のブレード)を新たにブレードYとして選択する。
【００３４】
アプリケーション３の例では、要求リソース比406が0.60であるため、ステップS21からフローが移った場合、ブレードYは提供リソース比403が0.5であるブレード3が該当する。この要求リソース比はアプリケーションの要求リソーステーブル302から値を読み込んでも良いし、CPU404、メモリ405から計算させることとしてもよい。
【００３５】
要求リソース比406はアプリケーションjの要求するCPUリソースとメモリリソースの割合である。CPUリソースはCPU404でメモリリソースはメモリ405で表現されている。要求リソース比406はCPU406をメモリ405で割り算することで求める。
【００３６】
アプリケーション３の例では、3/5=0.60が要求リソース比406の値となる。CPU404では、コア数1のCPUを1と表しており、コア数が1増える毎にCPU404の値も1増加する。例えば、コア数4のCPUリソースを要求する場合、CPU404の値は4となる。
【００３７】
メモリ405では、1GBのメモリを1と表しており、要求するメモリリソースが1GB増える毎にメモリ402の値も1増加する。例えば、8GBのメモリリソースを要求する場合、メモリ405の値は8となる。
【００３８】
提供リソース比403はブレードiに搭載するCPUリソースとメモリリソースの割合を求めたものである。CPUリソースはCPU401でメモリリソースはメモリ402で表現されている。提供リソース比403はCPU401をメモリ402で割算することで求める。
【００３９】
ブレード3の例では4/8=0.5が提供リソース比403の値となる。
【００４０】
CPU401では、コア数1のCPUを1と表しており、コア数が1増える毎にCPU401の値も1増加する。例えば、コア数4のCPUリソースを搭載する場合、CPU401の値は4となる。
【００４１】
メモリ402では、1GBのメモリを1と表しており、要求するメモリリソースが1GB増える毎にメモリ402の値も1増加する。例えば、8GBのメモリリソースを搭載する場合、メモリ402の値は8となる。
【００４２】
ただし、リソース比によるリソース割当案生成プログラム202で実際に使用する値は、ブレードのリソーステーブル301のCPU401をメモリ402で割った値である提供リソース比403と、アプリケーションの要求リソーステーブル302のCPU404をメモリ405で割った値である要求リソース比406であるため、CPU401とCPU404、また、メモリ402とメモリ405が同一の基準で値が設定されているのであれば、CPU401、メモリ402、CPU404、メモリ402は任意に設定できる。例えば、CPUの1コアを１、メモリ1GBを1のように基準を決めた場合、CPUの1コアを１０、メモリ1GBを１０のように基準値を決めたとしても、要求リソース比と提供リソース比は同じ値になり、どちらのように値を設定してもかまわない。CPUはコア数だけでなくクロック周波数やアーキテクチャによっても性能が異なるが、それらを考慮した能力を表す値を設定することができる。また、メモリもGBだけでなく、MB単位やKB単位の任意の単位で評価することができる。
【００４３】
次に、ステップS43において、ブレードのリソース利用状況テーブル303よりブレードYのCPU割当率416とメモリ割当率417が閾値418を超えていないことを確認する。どちらか一方でも越えている場合は、ブレードのリソース使用量が許容量を超えているため、ステップS42へ進む。超えていない場合はS44へ進む。
【００４４】
ブレード3では、CPU割当率416が25％とメモリ割当率417が21％で閾値418が70％であり、CPU割当率416とメモリ割当率417が閾値418を超えていないため、ステップS44へと進む。
【００４５】
CPU割当率416は、ブレードXのCPUリソースのうちすでにアプリケーションに割当られているCPUリソースの割合で、ブレードのリソーステーブル301のCPU401からブレードのリソース利用状況テーブル303の未使用CPU414を引いた値を、ブレードのリソーステーブル301のCPU401で割った値である。
【００４６】
メモリ割当率417は、ブレードXのメモリリソースのうちすでにアプリケーションに割当られているメモリリソースの割合で、ブレードのリソーステーブル301のメモリ402からブレードのリソース利用状況テーブル303の未使用メモリ415を引いた値を、ブレードのリソーステーブル301のメモリ402で割った値である。
【００４７】
閾値418はブレードiのリソースをどの程度アプリケーションに割当可能かを示す値で、利用者が任意に設定することができる。設定しない場合は100％が設定される。
【００４８】
ブレード3の例では、70％が設定されており、CPU割当率416かメモリ割当率417が70％を超えるとアプリケーションの割当を中止する。
【００４９】
次に、ステップS44では、ブレードYの余剰リソースをブレードのリソース利用状況テーブル303の未使用CPU414と未使用メモリ415から、アプリケーションXで要求されるリソースに対して割当られるだけの余剰リソースがあるかを確認する。ここでいうアプリケーションXで要求されるリソースとは、アプリケーションの要求リソーステーブル302のCPU404とメモリ405をそれぞれ粒度408で割ったものである。ブレードYに余剰リソースがあればステップS23へ、余剰リソースがなければステップS45へと進む。
【００５０】
アプリケーション３とブレード3の例では、ブレード3の余剰リソースが未使用CPU414と未使用メモリ415より3と6.34であり、アプリケーション３で要求されるリソース(分割した要求リソース)はCPU404とメモリ405を粒度408で割ったものであるから、それぞれ3/3=1、5/3=1.66であり、ブレード3の余剰リソースにアプリケーション３で要求されるリソースが割当可能なことが確認できる。従ってステップS23へ進む。
【００５１】
次に、ステップS45では、閾値を超えていない各ブレードにアプリケーションXの一部を配置する余剰リソースがないかを確認する。つまり、アプリケーションXで要求されるリソース(分割した要求リソース)を配置するだけの余剰リソースを持つブレードが存在するかを確認する。このとき、CPU割当率416かメモリ割当率417がすでに閾値418を超えているブレードは余剰リソースを持たないとする。もし存在しない場合は、アプリケーションの中のどれかひとつのリソースをブレード全体で提供できないため、リソース比によるリソース割当案生成プログラム202は終了となる。存在する場合は、ステップS41へと進む。
【００５２】
また、ステップS42において、ブレードのリソース利用状況テーブル303の各ブレードのCPU割当率416とメモリ割当率417がそれぞれの閾値418を超えていないか確認する。超えている場合は追加で割当可能なブレードがないため、リソース比によるリソース割当案生成プログラム202は終了となる。超えていない場合は、ステップS41へと進む。
【００５３】
ステップS23の詳細について図5の処理フローを用いて説明する。ステップS23では、ステップS22で選択したブレードYにステップS21で選択したアプリケーションXを割当てる。
【００５４】
まず、ステップS51では、アプリケーションの要求リソーステーブル302から、アプリケーションXに該当する未割当409の値を1減らす。その後、ブレードYにアプリケーションXのうちの一つを割当たことを示すために、ブレードのリソース利用状況テーブル303の配置済みのうちXに該当するAPj419の値を1増やす。
【００５５】
アプリケーション３とブレード3の例では、アプリケーションの要求リソーステーブル302のアプリケーション３の未割当409の値３→２へ変更する。その後、ブレードのリソース利用状況テーブル303のブレード3のAP3412の値０→１へ変更する。
【００５６】
APj419は、そのブレードにいくつのアプリケーションXが割当られているかを表す値である。例えばAP1410はアプリケーション１のうちの一つがブレード4に割当られていることを表している。
【００５７】
次に、ステップS52では、ブレードのリソース利用状況テーブル303の未使用CPU414の値から、実際に割当られたアプリケーションXの要求CPUを引く。アプリケーションXの要求CPUの値は具体的には、アプリケーションの要求リソーステーブル302のアプリケーションXに該当するCPU404を粒度408で割った値である。
【００５８】
アプリケーション３とブレード3の例では、ブレードのリソース利用状況テーブル303のブレード3の未使用CPU414の値3から、アプリケーションの要求リソーステーブル302のアプリケーション３に該当するCPU404の値3を粒度408の値3で割った値である1を引き、ブレード3の未使用CPU414の値は2となる。
【００５９】
さらに、ステップS53では、ブレードのリソース利用状況テーブル303の未使用メモリ415の値から、実際に割当られたアプリケーションXの要求メモリを引く。アプリケーションXの要求メモリの値は具体的には、アプリケーションの要求リソーステーブル302のアプリケーションXに該当するメモリ405を粒度408で割った値である。
・アプリケーション３とブレード3の例では、ブレードのリソース利用状況テーブル303のブレード3の未使用メモリ415の値6.34から、アプリケーションの要求リソーステーブル302のアプリケーション３に該当するメモリ405の値5を粒度408で割った値3で割った値1.66を引き、ブレード3の未使用メモリ415の値は4.68となる。
【００６０】
最後に、ステップS54では、下記数式により、ブレードのリソース利用状況テーブル303のCPU割当率416とメモリ割当率417を算出し値を変更する。
（数１）CPU割当て率＝（ブレードのリソーステーブル301のCPU401  −
ブレードのリソース利用状況テーブル303の未使用CPU414）
/ブレードのリソーステーブル301のCPU401
（数２）メモリ割当率＝（ブレードのリソーステーブル301のメモリ402  −
ブレードのリソース利用状況テーブル303の未使用メモリ415）
/ブレードのリソーステーブル301のメモリ402
その後、ステップS21へと進む。ステップS21〜ステップS23のループは全てのアプリケーションの要求リソースがブレードに割当られるか(ステップS32のNOの場合)、すべてのブレードの未使用リソースが閾値418を超える(ステップS42のYes)か、追加でアプリケーションを割当る余剰リソースがなくなる(ステップS45のYes)まで繰り返される。
【００６１】
次に、リソース割当プログラム203について説明する。リソース割当プログラム203はリソース比によるリソース割当案生成プログラム202で、粒度408の数だけあるアプリケーションを再度結合し、実際に各アプリケーションにリソースを割当るプログラムである。
【００６２】
リソース割当プログラム203では、リソース比によるリソース割当案生成プログラム202の結果出力されたアプリケーションの要求リソーステーブル302とブレードのリソース利用状況テーブル303を参照し、CPU404、メモリ405、粒度g、APj419の値から各ブレードでのアプリケーションXを実行するLPARへのリソース割当を行う。これにより各ブレードで動作するアプリケーション毎にLPARを割り当てることが可能となる。
【００６３】
まず、ブレードのリソース利用状況テーブル303より任意のブレードiを選択し、ブレードi上でアプリケーションjを実行するLPARに割当るリソース量を算出する。このとき、i、jは順番を表す数字であり、i番目のブレード、j番目のアプリケーションを表す。各々のブレード、アプリケーションがのそれぞれの組合せで選択されるのであれば、i、jの順序に制限はない。
【００６４】
APj419の値APijがAPij=0である場合、そのブレードにアプリケーションjは配置されない。APij>0である場合、そのブレードにアプリケーションjの一部がAPij個配置されているため、下記数式によりブレードi上でアプリケーションjを実行するLPARへのCPUリソース割当量Cijとメモリリソース割当量Mijを決定する。
(数３)
Cij ＝ (aj_1 / g)*Apij
Mij ＝ (aj_2 / g)*APij
数３において、aj_1はCPU404の値を、aj_2はメモリ405の値を、gは粒度408の値をそれぞれ表している。また、gはCij、Mijの算出において同一の値である。
【００６５】
図10の場合のブレード3の例では、AP2421の値が2でAP3422の値が1であるため、ブレード3上のLPARに割当られるリソースは以下のよう計算される。
【００６６】
C32 ＝ (3 / 3)*2 ＝ 2
M32 ＝ (5 / 3)*2 ＝ 3.34
C33 ＝ (3 / 3)*1 ＝ 1
M33 ＝ (5 / 3)*1 ＝ 1.67
つまり、ブレード3にはアプリケーション２を実行するLPARにCPUを2コア、メモリを3.34GB、アプリケーション３を実行するLPARに1コア、メモリを1.67GB割当る。
【００６７】
以降、数３によるCij、Mijの算出を、すべてのブレードとアプリケーションの組合わせで行う。
【００６８】
その後、従来技術である物理マシン101間の仮想サーバ102の移動技術を用いて仮想マシンを再配置し、仮想化機構105により各仮想マシン102へのリソース再割当行うことで、リソースを効率よく使用するアプリケーション103の配置が可能となる。
【符号の説明】
【００６９】
１０１  物理マシン
１０２  仮想マシン
１０３  アプリケーション
１０４  ゲストOS
１０５  仮想化機構
１０６  ネットワーク
１０７  管理サーバ
２０１  仮想マシンへのリソース割当部
２０２  リソース比によるリソース割当案生成プログラム
２０３  リソース割当プログラム
３０１  ブレードのリソーステーブル
３０２  アプリケーションの要求リソーステーブル
３０３  ブレードのリソース利用状況テーブル
４０１  ブレードのCPUリソース
４０２  ブレードのメモリリソース
４０３  ブレードの提供リソース比
４０４  アプリケーションの要求CPU
４０５  アプリケーションの要求メモリ
４０６  アプリケーションの要求リソース比
４０７  リソース割当の優先度
４０８  各アプリケーションに要求されるリソースを分割する粒度
４０９  未割当なアプリケーションの数
４１０  ブレードに配置済みのアプリケーション１の数
４１１  ブレードに配置済みのアプリケーション２の数
４１２  ブレードに配置済みのアプリケーション３の数
４１３  ブレードに配置済みのアプリケーション４の数
４１４  ブレードの未使用のCPUリソース
４１５  ブレードの未使用のメモリリソース
４１６  ブレードの未使用のCPUリソースの割合
４１７  ブレードの未使用のメモリリソースの割合
４１８  ブレードのリソースのうち割当可能な割当率の限界値
４１９  ブレードに配置済みのアプリケーションjの数
４２０  ブレードに配置済みのアプリケーション１の数
４２１  ブレードに配置済みのアプリケーション２の数
４２２  ブレードに配置済みのアプリケーション３の数
４２３  ブレードに配置済みのアプリケーション４の数
【図１】
2012108684.tif 000003
【図２】
2012108684.tif 000004
【図３】
2012108684.tif 000005
【図４】
2012108684.tif 000006
【図５】
2012108684.tif 000007
【図６】
2012108684.tif 000008
【図７】
2012108684.tif 000009
【図８】
2012108684.tif 000010
【図９】
2012108684.tif 000011
【図１０】
2012108684.tif 000012