(57)【要約】【課題】システム内の一部のノードの障害が、システム上で実行する複数の仮想マシンにどの程度影響を与えるのかを評価すること。【解決手段】情報処理装置１００は、システム１０１上で実行する複数の仮想マシンに含まれる各々の仮想マシンｖ０〜ｖ２の実行に用いるコアとメモリとの組合せｃｍ０〜ｃｍ２同士を対応付けた組合せパターン１０２を取得する。次に、情報処理装置１００は、組合せパターン１０２に基づいて、システム１０１の各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数のノード間における可用性評価値を算出する。【選択図】図１
2015158811.tif 000002
【特許請求の範囲】
【請求項１】
各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する制御部、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
さらに、前記対応情報に含まれる各々の組合せにより特定される、前記各々の仮想マシンの実行に用いるコアからメモリへのアクセス性能に基づいて、前記システム上で実行する前記複数の仮想マシンの処理性能を示す値を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記複数の仮想マシンの個数に基づいて、算出した前記偏り度合いを示す値を正規化することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、
前記複数のノードが有するコアからメモリへのアクセス性能の最大値および最小値に基づいて、算出した前記処理性能を示す値を正規化することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記制御部は、
前記複数の仮想マシンの個数に基づいて、算出した前記偏り度合いを示す値を正規化し、
正規化した前記偏り度合いを示す値および正規化した前記処理性能を示す値のいずれか一方の値に重み付けした値と他方の値を足し合わせた値を算出することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御部は、
前記各々の仮想マシンの実行に要するコアの個数とメモリの個数とに基づいて、前記システム上で実行する前記各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報を作成することを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
前記制御部は、
前記対応情報に、算出した前記偏り度合いを示す値を対応付けて出力することを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
コンピュータが、
各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報を取得し、
取得した対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する、
処理を実行することを特徴とする情報処理方法。
【請求項９】
コンピュータに、
各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、各々のノードがコアとメモリとを有し、メモリをノード間で共用する複数のノードを含むシステムを構築する、いわゆるＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）と呼ばれるシステムの構築技術がある。また、ＮＵＭＡを適用したシステム上で、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）を実行する技術がある。
【０００３】
関連する先行技術として、たとえば、ＶＭに割り当てられたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にとってリモートメモリとなるＶＭを停止し、停止させたＶＭに割り当てられていたリモートメモリに記憶されている情報を、ローカルメモリに移動させ、障害拡大を防止するものがある。また、物理リソースを管理するＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）が、指定されたＣＰＵ数分について、ＶＭ割当後のＣＰＵ同士が近距離となる組合せを優先して選択する技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２３８２７８号公報
【特許文献２】特開２０１２−１４６１０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、ＮＵＭＡを適用したシステム上で複数の仮想マシンを実行する場合に、システム内の一部のノードに障害が発生すると、システム上の複数の仮想マシンにどの程度影響を与えるのかを評価することが難しい。
【０００６】
１つの側面では、本発明は、システム内の一部のノードの障害が、システム上で実行する複数の仮想マシンにどの程度影響を与えるのかを評価することができる情報処理装置、情報処理方法、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、各々のノードがコアとメモリとを有し、メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報に基づいて、各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数のノード間における偏り度合いを示す値を算出する情報処理装置、情報処理方法、および情報処理プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、システム内の一部のノードの障害が、システム上で実行する複数の仮想マシンにどの程度影響を与えるのかを評価することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる情報処理装置の動作例を示す説明図である。
【図２】図２は、サーバシステムの接続例を示す説明図である。
【図３】図３は、サーバのハードウェア構成例を示すブロック図である。
【図４】図４は、管理端末のハードウェア構成例を示すブロック図である。
【図５】図５は、ノードのハードウェア構成例を示すブロック図である。
【図６】図６は、サーバの機能構成例を示すブロック図である。
【図７】図７は、仮想サーバ構成情報の一例を示す説明図である。
【図８】図８は、重み付け情報の一例を示す説明図である。
【図９】図９は、ＳＲＡＴの一部を示す説明図である。
【図１０】図１０は、ＳＬＩＴの一部を示す説明図である。
【図１１】図１１は、複数の組合せパターンの作成例を示す説明図である。
【図１２】図１２は、可用性評価値の算出例を示す説明図（その１）である。
【図１３】図１３は、可用性評価値の算出例を示す説明図（その２）である。
【図１４】図１４は、処理性能評価値の算出例を示す説明図（その１）である。
【図１５】図１５は、処理性能評価値の算出例を示す説明図（その２）である。
【図１６】図１６は、仮想サーバ構成の入力の一例を示す説明図である。
【図１７】図１７は、重み付けの入力の一例を示す説明図である。
【図１８】図１８は、仮想サーバ割当処理手順の一例を示すフローチャートである。
【図１９】図１９は、組合せパターン作成処理手順の一例を示すフローチャートである。
【図２０】図２０は、コアパターン作成処理手順の一例を示すフローチャートである。
【図２１】図２１は、メモリパターン作成処理手順の一例を示すフローチャートである。
【図２２】図２２は、組合せパターンにおける割当評価値算出処理手順の一例を示すフローチャートである。
【図２３】図２３は、処理性能評価値算出処理手順の一例を示すフローチャート（その１）である。
【図２４】図２４は、処理性能評価値算出処理手順の一例を示すフローチャート（その２）である。
【図２５】図２５は、可用性評価値算出処理手順の一例を示すフローチャート（その１）である。
【図２６】図２６は、可用性評価値算出処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示の情報処理装置、情報処理方法、および情報処理プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、実施の形態にかかる情報処理装置の動作例を示す説明図である。情報処理装置１００は、システム１０１上で実行する複数の仮想マシンに対して、システム１０１内のノードの障害が複数の仮想マシンに与える影響の度合いを示す値を算出して、影響度の度合いの評価を支援するコンピュータである。システム１０１は、複数のノードを含むシステムである。図１の例としては、複数のノードとして、ノード＃０〜＃３は、コアとメモリとを有する。また、ノード＃０〜＃３は、自ノードが有するメモリの少なくとも一部をノード間で共用する。
【００１２】
図１の例では、システム１０１は、複数の仮想マシンとして、仮想マシンｖ０〜ｖ２を実行するシステムである。図１では、仮想マシンｖ０〜ｖ２を、点線で表現したコンピュータとして表現する。ここで、仮想マシンは、システム１０１のハードウェア資源を用いて仮想的に作成されたコンピューターシステムである。仮想マシンｖ０〜ｖ２は、仮想的に作成したコンピューターシステムであればどのようなものでもよく、たとえば、他のコンピュータにサービスやデータを提供するサーバでもよいし、サーバによるサービスやデータの提供を受けるコンピュータでもよい。システム１０１が利用される状況としては、たとえば、業務アプリケーションを運用していた複数の物理サーバを、複数の仮想マシンを実行するシステム１０１に集約する、という状況である。複数の物理サーバの代わりにシステム１０１が実行する複数の仮想マシンにより業務アプリケーションを運用することにより、サーバの運用コストを削減したり、消費電力を削減したりすることができる。
【００１３】
複数の物理サーバを集約する際には、多数のアプリケーションを同時に実行することになるため、システム１０１内には、多数のコアやメモリが要求される。ここで、複数のコアと複数のメモリとを含むシステムの構築方法としては、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  ＭｕｌｔｉＰｒｏｃｅｓｓｉｎｇ）とＮＵＭＡとがある。
【００１４】
ＳＭＰは、全てのコアと全てのメモリとが一つのバスやスイッチに接続するシステムを構築する方法である。したがって、ＳＭＰを適用したシステムは、コアの数が増大すると、コアからメモリへのアクセスが一つのバスやスイッチに集中することになるため、ＳＭＰを適用したシステムではコアの数を増やすことが難しい。
【００１５】
一方、ＮＵＭＡは、コアとメモリとを有するノードを互いに接続した複数のノードを含むシステムを構築する方法である。ＮＵＭＡを適用したシステムは、バスやスイッチにアクセスするコアやメモリの数を減らすことにより、コアやメモリを増やすことが容易である。以上の理由から、システム１０１には、ＮＵＭＡが適用されることが多い。ここで、ＮＵＭＡは、全てのメモリが単一のメモリ空間に配置され、全てのコアが全てのメモリにアクセス可能であることが求められる。しかし、全てのメモリの少なくとも一部をノード間で共用していれば複数のノードに跨った仮想マシンを実行することが可能であるから、システム１０１は、全てのメモリの少なくとも一部をノード間で共用すればよい。
【００１６】
ＮＵＭＡでは、あるノードが有するコアからあるノードが有するメモリへのアクセスは高速であるが、あるノードが有するコアから他のノードが有するメモリへのアクセスはバスやスイッチを介する分低速となる。ここで、ＮＵＭＡにおいて、コアから見て同一ノードのメモリを「ローカルメモリ」と呼称し、また、他ノードのメモリを「リモートメモリ」と呼称する。ＮＵＭＡを適用したシステム１０１は、可能な限りローカルメモリにアクセスするようにすることが好ましい。
【００１７】
したがって、システム１０１が仮想マシンを実行する際には、可能な限り同一ノード内で仮想マシンを実行することが好ましい。同一ノード内で実行する仮想マシンは、他ノードに跨って実行する仮想マシンに比べて、アクセス性能が高くなる。そして、アクセス性能が高くなると仮想マシンの処理自体も向上することになるため、同一ノード内で実行する仮想マシンは、他ノードに跨って実行する仮想マシンに比べて仮想マシンの処理性能が向上することになる。
【００１８】
ＮＵＭＡを適用したシステムにおいて、仮想マシンの処理性能を向上する方法として、たとえば、仮想マシンを実行する際のコア同士が近距離となる組合せを優先して選択し、選択したコアから近距離にあるメモリを優先して選択するものがある。
【００１９】
また、ＮＵＭＡを適用したシステムにおいて、同一ノード内で仮想マシンを実行することにより、障害拡大を防止することができる。具体的には、２つのノードに跨って実行する仮想マシンは、２つのノードのいずれか一方でも障害が発生すると実行を停止するのに対し、同一ノード内で実行する仮想マシンは、１つのノードに障害が発生すると実行を停止することになる。このように、仮想マシンの割り当て方に応じて、障害に対する影響の程度が変わることになる。障害に対する影響の程度を、本実施の形態では、「可用性」と呼称する。前述の例であれば、同一ノード内で実行する仮想マシンの可用性は、２つのノードに跨って実行する仮想マシンの可用性より高くなる。
【００２０】
しかしながら、前述した仮想マシンの可用性は、１つの仮想マシンに対する可用性であり、システム１０１内の一部のノードに故障が発生した際に、複数の仮想マシンにどの程度影響を与えるかという、複数の仮想マシンの可用性を評価することが難しい。また、システム１０１のハードウェア資源から、複数の仮想マシンが用いるハードウェア資源を決める組合せの個数は、ノードが有するコアの個数やメモリの個数が増大するほど膨大な数となる。システム１０１の利用者が、膨大な個数の組合せのうちから、独自のノウハウを用いて複数の仮想マシンの可用性が最適な組合せを探すことは難しい。
【００２１】
そこで、本実施の形態にかかる情報処理装置１００は、システム１０１内の各々のノードにあるコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数から、ノード単位の仮想マシンの個数のノード間における偏り度合いを示す値を算出する。以下、偏り度合いを示す値を、「可用性評価値」と呼称する。可用性評価値は、ノード単位の仮想マシンの個数のノード間におけるばらつき度合いを示す値でもよい。以下に示す可用性評価値は、偏り度合いを示す値であり、数値が大きいほど偏り度合いが高いことを示す値であるとする。可用性評価値を算出することにより、情報処理装置１００は、システム１０１内部の一部のノードの障害がシステム１０１上で実行する複数の仮想マシンに与える影響の程度を、可用性評価値を用いて評価することができる。
【００２２】
ここで、情報処理装置１００とシステム１０１との関係について、情報処理装置１００とシステム１０１とは、直接接続されてもよい。また、情報処理装置１００とシステム１０１とは接続されてなく、情報処理装置１００が、システム１０１が実行する複数の仮想マシンの実行に用いるコアとメモリとを特定する情報を有してもよい。また、情報処理装置１００が行う可用性評価値を算出する処理を、システム１０１のいずれかのノードのコアが実行してもよい。図１では、情報処理装置１００とシステム１０１とが、直接接続する場合を示す。
【００２３】
ここで、情報処理装置１００が可用性評価値を算出するタイミングは、システム１０１が複数の仮想マシンの実行を開始する前であり、仮想マシンを割り当てる前のタイミングである。また、情報処理装置１００が可用性評価値を算出するタイミングの他の例として、システム１０１が複数の仮想マシンの実行を既に開始しており、実行中の複数の仮想マシンの可用性評価値を算出してもよい。図１の例において、情報処理装置１００が可用性評価値を算出するタイミングは、システム１０１が複数の仮想マシンの実行を開始する前であるとする。
【００２４】
情報処理装置１００は、システム１０１上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せを対応付けた対応情報を取得する。以下、対応情報を、「組合せパターン」と呼称する。図１の例では、情報処理装置１００は、仮想マシンｖ０〜ｖ２の実行に用いるコアとメモリとの組合せを対応付けた組合せパターン１０２を取得する。組合せパターン１０２は、組合せの集合となる。
【００２５】
ここで、組合せパターン１０２の取得方法として、情報処理装置１００とシステム１０１とが直接接続しており、システム１０１が組合せパターン１０２を記憶しているとする。このとき、情報処理装置１００は、システム１０１が記憶する組合せパターン１０２を取得してもよい。また、情報処理装置１００の利用者によって仮想マシンｖ０〜ｖ２の実行に用いるコアとメモリとが指定された場合、情報処理装置１００は、指定された情報を用いて組合せパターン１０２を取得してもよい。また、情報処理装置１００の利用者によって仮想マシンｖ０〜ｖ２の実行に要するコアの個数とメモリの個数とが指定された場合に、情報処理装置１００は、指定された情報から組合せパターン１０２を作成することにより、組合せパターン１０２を取得してもよい。図１の例では、システム１０１が組合せパターン１０２を記憶しているとする。
【００２６】
図１の例における組合せパターン１０２は、下記組合せｃｍ０〜ｃｍ２同士を対応付けた集合である。組合せｃｍ０は、仮想マシンｖ０の実行に用いるコアとして、ノード＃０が有するコアと、仮想マシンｖ０の実行に用いるメモリとして、ノード＃３が有するメモリとを組み合わせた情報である。組合せｃｍ１は、仮想マシンｖ１の実行に用いるコアとして、ノード＃１が有するコアと、仮想マシンｖ１の実行に用いるメモリとして、ノード＃１が有するメモリとを組み合わせた情報である。組合せｃｍ２は、仮想マシンｖ２の実行に用いるコアとして、ノード＃１が有するコアと、仮想マシンｖ２の実行に用いるメモリとして、ノード＃１が有するメモリとを組み合わせた情報である。
【００２７】
次に、情報処理装置１００は、組合せパターン１０２に基づいて、システム１０１の各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数のノード間における可用性評価値を算出する。可用性評価値が小さい場合には、複数の仮想マシンが各ノードに分散して配置されることになるため、一部のノードとして、ある１つのノードに障害が発生しても、複数の仮想マシンのうち、実行が停止する仮想マシンの数が少ないため、可用性が高くなる。一方、可用性評価値が大きい場合には、複数の仮想マシンがあるノードに偏って配置されることになるため、あるノードに障害が発生すると、仮想マシンの実行が停止する数が多くなるため、可用性が低くなる。可用性評価値として、情報処理装置１００は、ノード単位の仮想マシンの個数のうちの最大値を可用性評価値としてもよいし、ノード単位の仮想マシンの個数の分散値や、標準偏差を可用性評価値としてもよい。
【００２８】
続けて、各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の特定方法について説明する。具体的には、情報処理装置１００は、組合せパターン１０２に基づいて、各々のノードが有するコアまたはメモリを用いて実行される仮想マシンの個数をノードごとに計数する。具体的な計数方法の一例として、情報処理装置１００は、ノードごとに、ノードが有するコアまたはメモリを用いる仮想マシンがいくつあるかを、組合せパターン１０２の各組合せから特定される仮想マシンを用いて計数する。また、計数方法の他の例として、情報処理装置１００は、ノード分の配列変数を用意しておく。そして、情報処理装置１００は、組合せパターン１０２の各組合せから特定される仮想マシンが用いるコアまたはメモリを有するノードを特定し、特定したノードに対応する変数の値をインクリメントする。
【００２９】
図１の例では、情報処理装置１００は、ノード＃０、＃３の仮想マシンの個数が１［個］であり、ノード＃１の仮想マシンの個数が２［個］であり、ノード＃２の仮想マシンの個数が０［個］であると計数する。また、情報処理装置１００は、ノードに対応する仮想マシンの個数を計数し、計数した結果がある閾値を超えた場合、複数の仮想マシンが、あるノードに偏って配置されるとみなし、以降の計数を中止して、可用性評価値を、閾値を超えた値としてもよい。
【００３０】
続けて、図１の例について、情報処理装置１００は、各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数に基づいて複数の仮想マシンの可用性評価値を算出する。図１の例では、可用性評価値として最大値を採用するものとする。ノード＃０〜＃３の仮想マシンの個数の最大値は２であるから、情報処理装置１００は、可用性評価値を２として算出する。可用性評価値を算出した後、システム１０１は、組合せパターン１０２に従って複数の仮想マシンを割り当てていき、複数の仮想マシンの実行を開始する。
【００３１】
可用性評価値の第１の利用方法として、たとえば、情報処理装置１００は、可用性評価値が１を超えたと判断して、複数のノード＃０〜＃３のうちのいずれかのノードに仮想マシンが偏って実行される旨を出力してもよい。また、可用性評価値の第２の利用方法として、前提として、情報処理装置１００の利用者が、仮想マシンの実行に用いるコアの個数とメモリとの個数が、１つのノードが有するコアの個数とメモリの個数とより共に少ないことを把握しているものとする。このとき、ノードが４台で仮想マシンが３台であれば、いずれかのノードに仮想マシンが偏って実行されていなければ、可用性評価値は１となるはずである。情報処理装置１００の利用者は、可用性評価値が２であることを閲覧することにより、いずれかのノードに仮想マシンが偏って実行されており、１つのノードが故障した際に、最大２台の仮想サーバに影響があることを把握することができる。次に、システム１０１をＮＵＭＡシステムに適用した例について、図２を用いて説明する。
【００３２】
図２は、サーバシステムの接続例を示す説明図である。サーバシステム２００は、サーバ２０１と、管理端末２０２とを含むシステムである。サーバ２０１は、図１に示す情報処理装置１００に相当する。
【００３３】
サーバ２０１は、ＮＵＭＡシステム２０３を有する装置である。ＮＵＭＡシステム２０３は、図１に示すシステム１０１に相当する。サーバ２０１のハードウェア構成は、図３で後述する。ＮＵＭＡシステム２０３は、ノード＃０〜＃３を有する。ノード＃０〜＃３のハードウェア構成は、図５で後述する。ノード＃０は、ノード＃１とノード＃３と直接接続する。また、ノード＃１は、ノード＃０とノード＃２と直接接続する。また、ノード＃２は、ノード＃１とノード＃３と直接接続する。また、ノード＃３は、ノード＃０とノード＃２と直接接続する。ノード＃０〜＃３が有するコアとメモリとについては、図５で後述する。ノード＃０〜＃３は、仮想マシンとして、他のコンピュータにサービスやデータを提供するサーバの仮想マシンである仮想サーバを実行する。以下の説明では、ＮＵＭＡシステム２０３上で実行される複数の仮想マシンが、全て仮想サーバであるとして、説明を行う。
【００３４】
管理端末２０２は、サーバシステム２００の管理者が操作する装置である。管理端末２０２のハードウェア構成は、図４で後述する。また、サーバシステム２００は、管理端末２０２を有さなくてもよい。管理端末２０２がない場合、サーバシステム２００の管理者が、直接サーバ２０１を操作してもよい。
【００３５】
図３は、サーバのハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＮＵＭＡシステム２０３と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０２と、を含む。また、サーバ２０１は、ディスクドライブ３０３およびディスク３０４と、通信インターフェース３０５と、を含む。また、ＮＵＭＡシステム２０３と、ＲＯＭ３０１〜ディスクドライブ３０３と、通信インターフェース３０５とは、バス３０６によってそれぞれ接続される。
【００３６】
ＮＵＭＡシステム２０３は、サーバ２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０１は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０２は、ＮＵＭＡシステム２０３のワークエリアとして使用される揮発性メモリである。
【００３７】
ディスクドライブ３０３は、ＮＵＭＡシステム２０３の制御に従ってディスク３０４に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０３には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０４は、ディスクドライブ３０３の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ３０３が磁気ディスクドライブである場合、ディスク３０４には、磁気ディスクを採用することができる。また、ディスクドライブ３０３がソリッドステートドライブである場合、ディスク３０４には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３８】
通信インターフェース３０５は、ネットワークとなるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどと、内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的には、通信インターフェース３０５は、ネットワークを介して管理端末２０２に接続される。通信インターフェース３０５には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００３９】
また、サーバシステム２００の運用者が、直接サーバ２０１を操作する場合、サーバ２０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００４０】
図４は、管理端末のハードウェア構成例を示すブロック図である。管理端末２０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、を含む。また、管理端末２０２は、ディスクドライブ４０４と、ディスク４０５と、通信インターフェース４０６と、を含む。また、管理端末２０２は、ディスプレイ４０７と、キーボード４０８と、マウス４０９とを含む。また、ＣＰＵ４０１〜ディスクドライブ４０４と、通信インターフェース４０６〜マウス４０９とは、バス４１０によってそれぞれ接続される。
【００４１】
ＣＰＵ４０１は、管理端末２０２の全体の制御を司る演算処理装置である。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される揮発性メモリである。
【００４２】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ４０４には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ４０４が磁気ディスクドライブである場合、ディスク４０５には、磁気ディスクを採用することができる。また、ディスクドライブ４０４が光ディスクドライブである場合、ディスク４０５には、光ディスクを採用することができる。また、ディスクドライブ４０４がソリッドステートドライブである場合、ディスク４０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００４３】
通信インターフェース４０６は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的には、通信インターフェース４０６は、ネットワークを介してサーバ２０１に接続される。通信インターフェース４０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００４４】
ディスプレイ４０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ４０７には、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４５】
キーボード４０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード４０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス４０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００４６】
図５は、ノードのハードウェア構成例を示すブロック図である。図５の例では、複数のノード＃０〜＃３のうち、ノード＃０を例として、ノード＃０のハードウェア構成を示す。ノード＃０以外のノード＃１〜＃３も、ノード＃０と同様のハードウェア構成となる。
【００４７】
ノード＃０は、ソケットｓ０と、メモリｍ００〜ｍ０８とを含む。ソケットｓ０は、コアｃ００〜ｃ０７を含む。コアｃ００〜ｃ０７は、ノード＃０の全体の制御を司る演算処理装置である。メモリｍ００〜ｍ０８は、コアｃ００〜ｃ０７が行う処理の一時データを格納する記憶装置である。
【００４８】
ここで、ノード＃０〜＃３が有するコアとメモリとに付与した符号については、アルファベット１文字と、二桁の数値とにより形成するものとする。そして、説明の簡略化のため、符号の二桁の数値のうちの１桁目の数値が、メモリやコアが属するノードの符号を示すものとする。たとえば、コアｃ１０は、ノード＃１に含まれる０番目のコアである。また、たとえば、メモリｍ３８は、ノード＃３に含まれる８番目のメモリである。本実施の形態において、コアｃ００〜ｃ３７の性能は、全て同一である。同様に、メモリｍ００〜ｍ３８は、全て同一の記憶量を有する。
【００４９】
（サーバ２０１の機能）
次に、サーバ２０１の機能について説明する。図６は、サーバの機能構成例を示すブロック図である。サーバ２０１は、制御部６０１と、記憶部６０２とを含む。制御部６０１は、作成部６１１と、取得部６１２と、算出部６１３と、出力部６１４と、仮想サーバ構築部６１５とを有する。制御部６０１は、記憶装置に記憶されたプログラムをノード＃０〜＃３のいずれかのコアが実行することにより、制御部６０１の機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３０１、ＲＡＭ３０２、ディスク３０４などである。また、各部の処理結果は、ノード＃０〜＃３のいずれかのコアが有するレジスタや、ノード＃０〜＃３のメモリ等に記憶される。
【００５０】
また、サーバ２０１は、仮想サーバ構成情報６２１と、重み付け情報６２２と、ＳＲＡＴ（Ｓｙｓｔｅｍ  Ｒｅｓｏｕｒｃｅ  Ａｆｆｉｎｉｔｙ  Ｔａｂｌｅ）６２３と、ＳＬＩＴ（Ｓｙｓｔｅｍ  Ｌｏｃａｌｉｔｙ  ｄｉｓｔａｎｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ）６２４とにアクセス可能である。仮想サーバ構成情報６２１〜ＳＬＩＴ６２４は、ディスク３０４といった記憶装置に格納される。仮想サーバ構成情報６２１の記憶内容の一例は、図７で後述する。重み付け情報６２２の記憶内容の一例は、図８で後述する。ＳＲＡＴ６２３については、図９で後述する。ＳＬＩＴ６２４については、図１０で後述する。
【００５１】
作成部６１１は、各々の仮想サーバの実行に要するコアの個数とメモリの個数とを記憶する仮想サーバ構成情報６２１を参照して、システム上で実行する各々の仮想サーバの実行に用いるコアとメモリとの組合せを対応付けた組合せパターン１０２を作成する。具体的な組合せパターン１０２の作成例は、図１１で後述する。
【００５２】
取得部６１２は、ＮＵＭＡシステム２０３上で実行する複数の仮想サーバの各々の仮想サーバの実行に用いるコアとメモリとの組合せを対応付けた組合せパターン１０２を取得する。また、取得部６１２は、作成部６１１が作成した組合せパターン１０２を取得してもよい。組合せパターン１０２の取得例については、図１に記述した。
【００５３】
算出部６１３は、取得部６１２が取得した組合せパターン１０２において、各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想サーバの個数に基づいて、ＮＵＭＡシステム２０３上で実行する複数の仮想サーバの可用性評価値を算出する。また、算出部６１３は、複数の仮想サーバの個数に基づいて、算出した可用性評価値を正規化してもよい。具体的な可用性評価値の算出例と正規化の算出例は、図１２、図１３で後述する。
【００５４】
さらに、算出部６１３は、取得部６１２が取得した組合せパターン１０２において、各々の仮想サーバの実行に用いるコアからメモリへのアクセス性能に基づいて、ＮＵＭＡシステム２０３上で実行する複数の仮想サーバの処理性能を示す値を算出してもよい。以下、処理性能を示す値を、単に、「処理性能評価値」と呼称する。各々の仮想サーバの実行に用いるコアからメモリへのアクセス性能の特定方法は、ＳＲＡＴ６２３、ＳＬＩＴ６２４を参照することにより特定できる。また、算出部６１３は、複数のノードが有するコアからメモリへのアクセス性能の最大値および最小値に基づいて、算出した処理性能評価値を正規化してもよい。具体的な処理性能評価値の算出例と正規化の算出例は、図１４、図１５で後述する。
【００５５】
また、算出部６１３は、正規化した可用性評価値および正規化した処理性能評価値のいずれか一方の値に重み付けした値と他方の値を足し合わせた値を算出してもよい。足し合わせた値を、以下、「割当評価値」と呼称する。重み付けする係数は、重み付け情報６２２から特定できる。割当評価値の算出例は、図１７で後述する。
【００５６】
出力部６１４は、取得部６１２が取得した組合せパターン１０２に、算出部６１３が算出した可用性評価値を対応付けて出力する。また、出力部６１４は、取得部６１２が取得した組合せパターン１０２に、算出部６１３が算出した処理性能評価値を対応付けて出力してもよい。また、出力部６１４は、取得部６１２が取得した組合せパターン１０２に、算出部６１３が算出した割当評価値を対応付けて出力してもよい。
【００５７】
仮想サーバ構築部６１５は、算出部６１３が算出した割当評価値に基づいて選択した組合せパターン１０２に従って複数の仮想サーバを構築する。たとえば、仮想サーバ構築部６１５は、割当評価値が最大となる組合せパターン１０２に従って複数の仮想サーバを構築する。仮想サーバ構築部６１５は、コンピュータを仮想化し、複数の異なるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を並列に実行できるようにするソフトウェアであるＶＭＭに相当する。仮想サーバ構築部６１５は、ハードウェア上で直接動作し、サーバ２０１上で実行するＯＳを全て仮想マシンとするソフトウェアである。また、仮想サーバ構築部６１５は、あるＯＳ上で動作するアプリケーションソフトウェアであり、アプリケーションソフトウェア上で様々な仮想マシンを動作させるソフトウェアでもよい。
【００５８】
次に、図７〜図１０を用いて、仮想サーバ構成情報６２１〜ＳＬＩＴ６２４について説明する。
【００５９】
図７は、仮想サーバ構成情報の一例を示す説明図である。仮想サーバ構成情報６２１は、各仮想サーバの実行に要するコアとメモリとの個数を記憶する情報である。図７に示す仮想サーバ構成情報６２１は、レコード７０１−１〜４を有する。仮想サーバ構成情報６２１は、仮想サーバＩＤと、要求コア数と、要求メモリ数と、という３つのフィールドを含む。仮想サーバＩＤフィールドには、仮想サーバを特定する情報が格納される。要求コア数フィールドには、仮想サーバの動作に要求されるコアの個数が格納される。要求メモリ数フィールドには、仮想サーバの動作に要求されるメモリの個数が格納される。
【００６０】
ここで、メモリの単位は、ノード＃０〜＃３が有する一つのＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）である。また、ノード＃０〜＃３がインタリーブやメモリミラーリングを行う場合、メモリの単位は、連続するメモリアドレスを形成する最小のＤＩＭＭ本数から形成されるＤＩＭＭグループである。たとえば、２つのＤＩＭＭによりメモリミラーリングを形成する場合のＤＩＭＭグループは、２つのＤＩＭＭを有する。このとき、メモリの単位は、２つのＤＩＭＭになる。
【００６１】
たとえば、レコード７０１−１は、仮想サーバｖ０が実行するために、コアを３［個］要求し、メモリを１［個］要求することを示す。
【００６２】
図８は、重み付け情報の一例を示す説明図である。重み付け情報６２２は、可用性評価値または処理性能評価値のうちのいずれか一方の重み付け係数を有する情報である。また、重み付け情報６２２は、可用性評価値と処理性能評価値との両方の重み付け係数を有してもよい。図８に示す重み付け情報６２２は、レコード８０１−１を有する。重み付け情報６２２は、処理性能の重み付け係数と、可用性の重み付け係数と、という２つのフィールドを含む。処理性能の重み付け係数フィールドには、処理性能評価値に掛ける重み付け係数が格納される。可用性の重み付け係数フィールドには、可用性評価値に掛ける重み付け係数が格納される。
【００６３】
たとえば、レコード８０１−１は、処理性能の重み付け係数が６０［％］であり、可用性の重み付け係数が４０［％］であることを示す。
【００６４】
次に、処理性能評価値を求めるために用いる、ＳＲＡＴ６２３と、ＳＬＩＴ６２４とについて、図９と図１０とを用いて説明する。ここで、ＳＲＡＴ６２３とＳＬＩＴ６２４とは、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）により規定されるテーブルフォーマットである。
【００６５】
図９は、ＳＲＡＴの一部を示す説明図である。ＳＲＡＴ６２３は、ＮＵＭＡシステム２０３に含まれるコアに関する情報とメモリに関する情報とを規定するテーブルである。ＳＲＡＴ６２３で規定される全てのフィールドについては、下記参考文献１に記載される。
（参考文献１：Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ、［平成２５年１２月１３日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ａｃｐｉ．ｉｎｆｏ／ＤＯＷＮＬＯＡＤＳ／ＡＣＰＩｓｐｅｃ５０．ｐｄｆ＞：ｐ１８７−１９１）
【００６６】
コアに関する情報は、参考文献１に記載された、Ｐｒｏｃｅｓｓｏｒ  Ｌｏｃａｌ  ＡＰＩＣ（Ａｄｖａｎｃｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）／ＳＡＰＩＣ（Ｓｔｒｅａｍｌｉｎｅｄ  Ａｄｖａｎｃｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）  Ａｆｆｉｎｉｔｙ  Ｓｔｒｕｃｔｕｒｅで定義される情報である。以下、Ｐｒｏｃｅｓｓｏｒ  Ｌｏｃａｌ  ＡＰＩＣ／ＳＡＰＩＣ  Ａｆｆｉｎｉｔｙ  Ｓｔｒｕｃｔｕｒｅに従った情報を、「ＡＣＰＩ規格のコア情報」と定義する。また、メモリに関する情報は、参考文献１に記載された、Ｍｅｍｏｒｙ  Ａｆｆｉｎｉｔｙ  Ｓｔｒｕｃｔｕｒｅで定義される情報である。以下、Ｍｅｍｏｒｙ  Ａｆｆｉｎｉｔｙ  Ｓｔｒｕｃｔｕｒｅに従った情報を、「ＡＣＰＩ規格のメモリ情報」と定義する。ここで、説明の簡略化のため、ＡＣＰＩ規格のコア情報を基にした本実施の形態で用いるフィールドを有する情報を、コア情報９０１として規定する。同様に、ＡＣＰＩ規格のメモリ情報を基にした本実施の形態で用いるフィールドを有する情報を、メモリ情報９０２として規定する。
【００６７】
ＳＲＡＴ６２３の各レコードの一つが、コア情報９０１か、メモリ情報９０２かのいずれかとなる。図９に示すレコードのうち、レコード９０１−１〜７がコア情報９０１であり、レコード９０２−１〜７がメモリ情報９０２である。
【００６８】
コア情報９０１は、Ｔｙｐｅと、Ｐｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎと、コアＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と、という３つのフィールドを含む。コア情報９０１のＴｙｐｅフィールドには、対象のレコードがコア情報９０１かメモリ情報９０２かのいずれなのかを示す識別子が格納される。“０”識別子は、対象のレコードがコア情報９０１であることを示す。“１”識別子は、対象のレコードがメモリ情報９０２であることを示す。
【００６９】
コア情報９０１のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドには、対象のレコードが示すコアが属するノードを特定する情報が格納される。ここで、コア情報９０１のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドは、ＡＣＰＩ規格のコア情報のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎの０〜７ビットのデータを示すフィールドと８〜３１ビットのデータを示すフィールドとを合わせたフィールドに相当する。また、説明を簡略化するため、コア情報９０１のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドには、コアが属するノードの符号が格納されるものとする。
【００７０】
コアＩＤフィールドには、対象のレコードが示すコアを識別する情報が格納される。ここで、コアＩＤフィールドは、ＡＣＰＩ規格のコア情報のＰｒｏｃｅｓｓｏｒ  Ｌｏｃａｌ  ＡＰＩＣのＡＰＩＣ  ＩＤフィールドと、Ｌｏｃａｌ  ＳＡＰＩＣ  ＥＩＤフィールドとを合わせたフィールドに相当する。ここで、説明を簡略化するため、コアＩＤフィールドには、コアの符号が格納されるものとする。
【００７１】
たとえば、レコード９０１−１は、コアｃ００が、ノード＃０に含まれることを示す。また、レコード９０１−７は、コアｃ３７が、ノード＃３に含まれることを示す。
【００７２】
メモリ情報９０２は、Ｔｙｐｅと、Ｐｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎと、メモリＩＤという３つのフィールドを含む。メモリ情報９０２のＴｙｐｅフィールドの定義は、コア情報９０１のＴｙｐｅフィールドと同一であるため、説明を省略する。
【００７３】
メモリ情報９０２のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドには、対象のレコードが示すメモリが属するノードを特定する情報が格納される。ここで、メモリ情報９０２のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドは、ＡＣＰＩ規格のメモリ情報のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドに相当する。また、説明を簡略化するため、メモリ情報９０２のＰｒｏｘｉｍｉｔｙ  Ｄｏｍａｉｎフィールドには、メモリが属するノードの符号が格納されるものとする。
【００７４】
メモリＩＤフィールドには、対象レコードが示すＮＵＭＡシステム２０３内のメモリを識別する情報が格納される。ここで、メモリＩＤフィールドの情報は、ＡＣＰＩ規格のメモリ情報のＢａｓｅ  Ａｄｄｒｅｓｓ  Ｌｏｗフィールドの情報とＢａｓｅ  Ａｄｄｒｅｓｓ  Ｈｉｇｈフィールドの情報とを合わせた情報から特定される。具体的には、Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｌｏｗフィールドの情報とＢａｓｅ  Ａｄｄｒｅｓｓ  Ｈｉｇｈフィールドの情報とを合わせた情報であるベースアドレスは、ＮＵＭＡシステム２０３内の各メモリで固有であり、メモリを識別することができる。また、説明を簡略化するため、メモリＩＤフィールドには、ＮＵＭＡシステム２０３内のメモリの符号が格納されるものとする。
【００７５】
たとえば、レコード９０２−１は、メモリｍ００が、ノード＃０に含まれることを示す。また、レコード９０２−７は、メモリｍ３８が、ノード＃３に含まれることを示す。
【００７６】
図１０は、ＳＬＩＴの一部を示す説明図である。ＳＬＩＴ６２４は、ノード間の距離を記憶するテーブルである。ここで、本実施の形態における距離とは、同一ノード内でのコアからメモリへのアクセス時間を１とした場合の相対的なアクセス時間のことである。ＳＬＩＴ６２４で規定される全てのフィールドについては、参考文献１に記載される。図１０に示すＳＬＩＴ６２４は、本実施の形態で用いるフィールドについて示す。図１０に示すＳＬＩＴ６２４は、Ｎｕｍｂｅｒ  ｏｆ  ｓｙｓｔｅｍ  ｌｏｃａｌｉｔｉｅｓフィールドと、Ｅｎｔｒｙフィールドとを有する。図１０に示すＳＬＩＴ６２４は、レコード１００１−１、２を含む。
【００７７】
Ｎｕｍｂｅｒ  ｏｆ  ｓｙｓｔｅｍ  ｌｏｃａｌｉｔｉｅｓフィールドは、ＮＵＭＡシステム２０３に含まれるノードの個数が格納される。Ｅｎｔｒｙフィールドは、ノード間のそれぞれの距離を格納する。Ｅｎｔｒｙフィールドは、Ｎｕｍｂｅｒ  ｏｆ  ｓｙｓｔｅｍ  ｌｏｃａｌｉｔｉｅｓに格納される値の自乗分存在する。また、ＳＬＩＴ６２４では、自ノード内の距離を１０として、あるノードと他のノードとの距離は、１０をベースとした距離の相対値として示すものである。
【００７８】
たとえば、レコード１００１−１は、ＮＵＭＡシステム２０３に含まれるノードの個数が４［個］であることを示す。また、レコード１００１−２は、ノード＃０とノード＃０との距離が１０であることを示す。
【００７９】
本実施の形態では、処理性能評価値を計算し易くするため、ＳＬＩＴ６２４のＥｎｔｒｙフィールドの値から１０減じた値を用いて計算する。ＳＬＩＴ６２４のＥｎｔｒｙフィールドの値から１０減じた値を格納するテーブルを、距離テーブル１００２とする。サーバ２０１は、処理性能評価値を算出する前に、ＳＬＩＴ６２４から距離テーブル１００２を作成してＲＡＭ３０２やディスク３０４等の記憶領域に格納しておき、距離テーブル１００２を参照して処理性能評価値を算出してもよい。または、サーバ２０１は、処理性能評価値を算出するときにノード間の距離を参照する都度、ＳＬＩＴ６２４のＥｎｔｒｙフィールドの値から１０減じ、減じた値を用いて処理性能評価値を算出してもよい。本実施の形態では、処理性能評価値を算出する前に、ＳＬＩＴ６２４から距離テーブル１００２を作成するものとする。
【００８０】
たとえば、距離テーブル１００２は、レコード１００２−１〜１７を有する。たとえば、レコード１００２−２は、処理性能評価値を算出する際のノード＃０とノード＃０との距離が０であることを示す。また、レコード１００２−３は、処理性能評価値を算出する際に、ノード＃０とノード＃１との距離が２であることを示す。また、レコード１００２−４は、処理性能評価値を算出する際に、ノード＃０とノード＃２との距離が５であることを示す。
【００８１】
次に、複数の組合せパターンを作成する例と、各組合せパターンの可用性評価値と、処理性能評価値とを算出する例とを、図１１〜図１５を用いて説明する。
【００８２】
図１１は、複数の組合せパターンの作成例を示す説明図である。図１１では、仮想サーバ構成情報６２１を用いて、複数の組合せパターンを作成する例を示す。サーバ２０１は、コアの組合せパターンの全てと、メモリの組合せパターンの全てとを作成し、コアの組合せパターンの全てとメモリの組合せパターンの全てとから、組合せパターンを作成する。
【００８３】
以下、コアの組合せパターンを、単に、「コアパターン」と呼称する。また、メモリの組合せパターンを、単に、「メモリパターン」と呼称する。さらに、仮想サーバｖｘのｙ番目のコアを、「コアｖｘ＿ｃｙ」と呼称し、図１１内では、単に「ｖｘ＿ｃｙ」と表示する。また、仮想サーバｖｘのｚ番目のメモリを「メモリｖｘ＿ｍｚ」と呼称し、図１１内では、単に、「ｖｘ＿ｍｚ」と表示する。ここで、ｘは０から３までの整数である。ｙは、０から７までの整数である。ｚは、０から８までの整数である。
【００８４】
ここで、コアパターンは、ＮＵＭＡシステム２０３内の全てのコアから仮想サーバが実行に用いるコアを選択する順列となる。同様に、メモリパターンは、ＮＵＭＡシステム２０３内の全てのメモリから仮想サーバが実行に用いるメモリを選択する順列となる。
【００８５】
図１１に示す表１１０１では、コアパターンの一覧を示す。ＮＵＭＡシステム２０３上で実行される仮想サーバｖ０〜ｖ３のコアパターンは、ＮＵＭＡシステム２０３内の全てのコアから仮想サーバｖ０〜ｖ３が実行に用いるコアの個数分を取り出す順列となる。ＮＵＭＡシステム２０３内の全てのコアの個数が、８×４＝３２［個］であり、仮想サーバｖ０〜ｖ３が実行に用いるコアの個数が、３＋１＋３＋１＝８［個］であるから、サーバ２０１は、32Ｐ8［個］の順列を作成する。作成した結果が表１１０１となる。図１１に示す表１１０１は、例として、レコード１１０１−１〜４を示す。
【００８６】
たとえば、レコード１１０１−１は、コアパターンｃｐ１が、仮想サーバｖ０〜ｖ３の実行に用いるコアがそれぞれ、コアｃ００〜ｃ０２と、コアｃ０３と、コアｃ０４〜ｃ０６と、コアｃ０７とであることを示す。
【００８７】
ここで、１つの仮想サーバの実行に用いるコアの個数が２以上である場合、作成したコアパターンのうち、順序が異なるだけで仮想サーバが同じコアを実行に用いるコアパターンが含まれる。たとえば、レコード１１０１−１と、レコード１１０１−３とにおいて、仮想サーバｖ０以外の仮想サーバが実行に用いるコアは同一である。そして、レコード１１０１−１が示す仮想サーバｖ０の実行に用いるコアが、コアｃ００、ｃ０１、ｃ０２であり、レコード１１０１−３が示す仮想サーバｖ０の実行に用いるコアが、コアｃ０１、ｃ００、ｃ０２である。以上より、レコード１１０１−１とレコード１１０１−３とは、順序が異なるだけで仮想サーバが同じコアを実行に用いるコアパターンを示す。したがって、レコード１１０１−３は冗長なコアパターンを示すため、サーバ２０１は、レコード１１０１−３を削除する。冗長するレコードを削除した結果が、表１１０２となる。
【００８８】
図１１に示す表１１０３は、メモリパターンの一覧を示す。ＮＵＭＡシステム２０３上で実行される仮想サーバｖ０〜ｖ３のメモリパターンは、ＮＵＭＡシステム２０３内の全てのメモリから仮想サーバｖ０〜ｖ３の実行に用いるメモリの個数分を取り出す順列となる。メモリパターンの作成方法は、コアパターンと同一であるため、説明を省略する。サーバ２０１は、メモリパターンについても、冗長するレコードを削除する。冗長するレコードを削除した結果が、表１１０４となる。
【００８９】
冗長なレコードを削除したコアパターンとメモリパターンとを作成した後、サーバ２０１は、コアパターンとメモリパターンとの直積により、組合せパターンを得る。ここで、直積は、２つの集合から取り出せる全ての組合せを得る演算である。たとえば、要素数がｍ［個］である集合Ａ（ａ１，ａ２，…，ａｍ）と、要素数がｎ［個］である集合Ｂ（ｂ１，ｂ２，…，ｂｎ）とがあるとする。このとき、集合Ａと集合Ｂとの直積は、（ａ１ｂ１，ａ１ｂ２，…，ａ１ｂｎ，ａ２ｂ１，ａ２ｂ２，…，ａ２ｂｎ，…，ａｍｂ１，ａｍｂ２，…，ａｍｂｎ）となる。また、集合Ａと集合Ｂとの直積の要素の個数は、ｍ×ｎ［個］となる。
【００９０】
図１１に示す表１１０５は、サーバ２０１が、表１１０２と表１１０４とを直積した結果を示す。図１１に示す表１１０５は、レコード１１０５−１〜６を有する。たとえば、レコード１１０５−１は、組合せパターンｐ１について示しており、レコード１１０１−１とレコード１１０３−１との組合せである。また、たとえば、レコード１１０５−２は、組合せパターンｐ２について示しており、レコード１１０１−１とレコード１１０３−２との組合せである。
【００９１】
また、表１１０５の１レコードが、組合せパターンに相当する。たとえば、レコード１１０５−１は、仮想サーバｖ０〜ｖ３の実行に用いるコアとメモリとの組合せを対応付けた情報である。具体的には、レコード１１０５−１は、（コアｃ００〜ｃ０２，メモリｍ００）と、（コアｃ０３，メモリｍ０１）と、（コアｃ０４〜ｃ０６、メモリｍ０２）と、（コアｃ０７，メモリｍ０３〜ｍ０５）とを対応付けた情報である。
【００９２】
次に、図１１で示したレコード１１０５−５、６が示す組合せパターンｐｘ、ｐｙの可用性評価値の算出例と可用性評価値の正規化の例とについて図１２と図１３を用いて説明する。また、組合せパターンｐｘ、ｐｙの処理性能評価値の算出例と処理性能評価値の正規化の例とについて図１４と図１５を用いて説明する。
【００９３】
図１２は、可用性評価値の算出例を示す説明図（その１）である。また、図１３は、可用性評価値の算出例を示す説明図（その２）である。図１２では、可用性評価値の算出例として、組合せパターンｐｘの可用性評価値を算出する。また、図１３では、組合せパターンｐｙの可用性評価値を算出する。
【００９４】
可用性評価値を算出するため、まず、サーバ２０１は、各ノードの仮想サーバの個数を計数する。次に、サーバ２０１は、下記（１）式を用いて仮想サーバの個数の最大値を算出する。
【００９５】
仮想サーバの個数の最大値＝Ｍａｘ（ノード＃０の仮想サーバの個数，…，ノード＃（Ｎ−１）の仮想サーバの個数）  …（１）
【００９６】
仮想サーバの個数の最大値が、可用性評価値の一例となる。仮想サーバの個数の最大値以外の可用性評価値として、たとえば、サーバ２０１は、各ノードの仮想サーバの個数の分散値や標準偏差を可用性評価値としてもよい。また、Ｍａｘ（）は、引数の中で最大値を出力する関数である。また、Ｎは、ノードの総数とする。
【００９７】
続けて、サーバ２０１は、可用性評価値の正規化関数ｆａ（）を用いて、正規化した可用性評価値を算出する。関数ｆａ（）は、たとえば、下記（２）式となる。
【００９８】
ｆａ（可用性評価値）＝１−（可用性評価値−１）／（組合せパターンの仮想サーバの個数−１）  …（２）
【００９９】
関数ｆａ（）は、可用性評価値が取り得る値を［０，１］の範囲に写像する関数である。可用性評価値が取り得る最小値は、１であり、可用性評価値が取り得る最大値は、組合せパターンの仮想サーバの個数である。すなわち、関数ｆａ（）は、単調減少であり、かつ、可用性評価値が取り得る最小値となる１のときに１となり、最大値となる組合せパターンの仮想サーバの個数であるときに０となる関数であればどのような関数でもよい。（２）式は、係数ａ、ｂを用いて表したｆａ（可用性評価値）＝ａ×可用性評価値＋ｂに対して、（可用性評価値，ｆａ（可用性評価値））＝（１，１）、（組合せパターンの仮想サーバの個数，０）を代入してａ、ｂを得た際の式と実質一致する。関数ｆａ（）の他の例として、サーバ２０１は、係数ａを用いて表したｆａ（可用性評価値）＝ａ×（可用性評価値−１）＾２＋１に対し、（可用性評価値，ｆａ（可用性評価値））＝（組合せパターンの仮想サーバの個数，０）を代入して係数ａを得てもよい。
【０１００】
また、可用性評価値が取り得る最大値は、可用性評価値の算出方法に依存する。可用性評価値が、各ノードの仮想サーバの個数の最大値であれば、可用性評価値が取り得る最大値は、組合せパターンの仮想サーバの個数に一致する。また、たとえば、可用性評価値が、各ノードの仮想サーバの個数の分散値であれば、可用性評価値が取り得る最大値は、０．２５×（組合せパターンの仮想サーバの個数）＾２となる。
【０１０１】
ここで、図１２が示す組合せパターンｐｘを用いて、正規化した可用性評価値を算出する例を示す。図１２の（Ａ）は、組合せパターンｐｘにおける複数のノード＃０〜＃３で実行される際の仮想サーバｖ０〜ｖ３の割り当ての状態を示す。また、図１２の（Ｂ）は、組合せパターンｐｘにおける、各ノードにおける仮想サーバの個数を示す。たとえば、ノード＃０にはノード＃０が有するコアｃ００、ｃ０１と、メモリｍ００とを実行に用いる仮想サーバｖ０があるので、ノード＃０における仮想サーバの個数は１となる。コアｃ００、ｃ０１と、メモリｍ００とがノード＃０に属するということは、それぞれ、コアＩＤ、メモリＩＤを基にコア情報９０１と、メモリ情報９０２とを検索して発見したレコード９０１−１、レコード９０１−２、レコード９０２−１により特定できる。
【０１０２】
サーバ２０１は、（１）式を用いて、仮想サーバの個数の最大値を算出する。
【０１０３】
仮想サーバの個数の最大値＝Ｍａｘ（１，１，２，３）＝３
【０１０４】
次に、サーバ２０１は、仮想サーバの個数の最大値を可用性評価値とし、（２）式を用いて可用性評価値を正規化する。
【０１０５】
ｆａ（３）＝１−（３−１）／（４−１）＝０．３３
【０１０６】
同様に、図１３が示す組合せパターンｐｙを用いて、正規化した可用性評価値を算出する例を示す。図１３の（Ａ）は、組合せパターンｐｙにおける複数のノード＃０〜＃３で実行される際の仮想サーバｖ０〜ｖ３の割り当ての状態を示す。また、図１３の（Ｂ）は、組合せパターンｐｙにおける、仮想サーバの個数を示す。
【０１０７】
サーバ２０１は、（１）式を用いて、仮想サーバの個数の最大値を算出する。
【０１０８】
仮想サーバの個数の最大値＝Ｍａｘ（１，２，２，２）＝２
【０１０９】
次に、サーバ２０１は、仮想サーバの個数の最大値を可用性評価値とし、（２）式を用いて可用性評価値を正規化する。
【０１１０】
ｆａ（２）＝１−（２−１）／（４−１）＝０．６７
【０１１１】
図１４は、処理性能評価値の算出例を示す説明図（その１）である。また、図１５は、処理性能評価値の算出例を示す説明図（その２）である。図１４では、処理性能評価値の算出例として組合せパターンｐｘの処理性能評価値を算出し、正規化する例を示す。また、図１５では、組合せパターンｐｙの処理性能評価値を算出し、正規化する例を示す。
【０１１２】
処理性能評価値を算出するため、まず、サーバ２０１は、組合せパターンの距離の合計を、下記（３）式により算出する。
【０１１３】
組合せパターンの距離の合計＝（組合せパターン内の仮想サーバｖ０のコアとメモリとの間の距離の合計）＋（組合せパターン内の仮想サーバｖ１のコアとメモリとの間の距離の合計）＋…＋（組合せパターン内の仮想サーバｖ（Ｍ−１）のコアとメモリとの間の距離の合計）  …（３）
【０１１４】
ただし、Ｍは、仮想サーバの総数とする。また、仮想サーバのコアとメモリとの間の距離について、サーバ２０１は、距離テーブル１００２を参照して、コアが属するノードと、メモリが属するノードとの距離を、仮想サーバのコアとメモリとの間の距離として特定する。次に、サーバ２０１は、距離の平均値を、下記（４）式により算出する。
【０１１５】
距離の平均値＝組合せパターンの距離の合計／組合せパターンに含まれる仮想サーバのコアとメモリとの組合せの個数  …（４）
【０１１６】
距離の平均値が、処理性能評価値の一例となる。距離の平均値以外の処理性能評価値として、たとえば、サーバ２０１は、組合せパターン内のコアとメモリとの間の距離が最大のものを、処理性能評価値として算出してもよい。
【０１１７】
サーバ２０１は、処理性能評価値の正規化関数ｆｐ（）を用いて、正規化した処理性能評価値を算出する。関数ｆｐ（）は、たとえば、下記（５）式となる。
【０１１８】
ｆｐ（処理性能評価値）＝１−処理性能評価値／距離テーブル１００２内の距離の最大値  …（５）
【０１１９】
関数ｆｐ（）は、処理性能評価値が取り得る値を［０，１］の範囲に写像する関数である。処理性能評価値が取り得る最小値は、あるノードのコアから同一ノードのメモリまでのアクセス性能であり、距離テーブル１００２を参照すると、０である。処理性能評価値が取り得る最大値は、距離テーブル１００２内の距離の最大値である。すなわち、関数ｆｐ（）は、単調減少であり、かつ、処理性能評価値が取り得る最小値となる０のときに１となり、最大値となる処理性能評価値／距離テーブル１００２内の距離の最大値であるときに０となる関数であればどのような関数でもよい。（５）式は、係数ａ、ｂを用いて表したｆｐ（処理性能評価値）＝ａ×処理性能評価値＋ｂに対して、（処理性能評価値，ｆｐ（処理性能評価値））＝（０，１）、（距離テーブル１００２内の距離の最大値，０）を代入してａ、ｂを得た際の式と実質一致する。関数ｆｐ（）の他の例として、サーバ２０１は、係数ａを用いて表したｆｐ（処理性能評価値）＝ａ×処理性能評価値＾２＋１に対し、（処理性能評価値，ｆｐ（処理性能評価値））＝（距離テーブル１００２内の距離の最大値，０）を代入して係数ａを得てもよい。
【０１２０】
ここで、図１４が示す組合せパターンｐｘを用いて、正規化した処理性能評価値を算出する例を示す。図１４の（Ａ）は、組合せパターンｐｘにおける複数のノード＃０〜＃３で実行される際の仮想サーバｖ０〜ｖ３の割り当ての状態を示す。また、図１４の（Ｂ）は、組合せパターンｐｘにおける、仮想サーバｖ０〜ｖ３のコアとメモリとの距離の一覧を示す。仮想サーバｖ０〜ｖ３のコアとメモリとの距離の特定については、ＳＲＡＴ６２３と、距離テーブル１００２とを参照することにより特定できる。たとえば、仮想サーバｖ０のコアｃ００とメモリｍ００との距離について、サーバ２０１は、まず、コアｃ００に対応するレコード９０１−１と、メモリｍ００に対応するレコード９０２−１とを特定する。そして、サーバ２０１は、Ｅｎｔｒｙ［０］［０］の距離が格納されたレコード１００２−２を参照して、コアｃ００とメモリｍ００との距離“０”を得る。
【０１２１】
サーバ２０１は、（３）式を用いて、組合せパターンｐｘの距離の合計を算出する。
【０１２２】
組合せパターンの距離の合計＝（０＋０＋２）＋（０）＋（０＋０＋２）＋（０＋０＋２）＝６
【０１２３】
次に、サーバ２０１は、（４）式を用いて、距離の平均値を算出する。
【０１２４】
距離の平均値＝６／１０＝０．６
【０１２５】
続けて、サーバ２０１は、距離の平均値を処理性能評価値とし、（５）式を用いて、処理性能評価値を正規化する。また、距離テーブル１００２の最大値は、５となる。
【０１２６】
ｆｐ（０．６）＝１−０．６／５＝０．８８
【０１２７】
同様に、図１５の（Ａ）は、組合せパターンｐｙにおける複数のノード＃０〜＃３で実行される際の仮想サーバｖ０〜ｖ３の割り当ての状態を示す。また、図１５の（Ｂ）は、組合せパターンｐｙにおける、仮想サーバｖ０〜ｖ３のコアとメモリとの距離の一覧を示す。ここで、組合せパターンｐｙの距離の合計が、組合せパターンｐｘの距離の合計と一致するため、組合せパターンｐｙにおける正規化した処理性能評価値は、組合せパターンｐｘにおける正規化した処理性能評価値と同一の値となるため、計算を省略する。
【０１２８】
図１６は、仮想サーバ構成の入力の一例を示す説明図である。図１６では、管理端末２０２が、仮想サーバ構成の入力画面を表示した例を示す。管理端末２０２は、管理者の操作により、仮想サーバごとに、仮想サーバのコア数とメモリ容量とを受け付ける。受け付けた仮想サーバのコア数とメモリ容量とは、ＮＵＭＡシステム２０３の利用者からの要求に従って管理者が入力した値となる。
【０１２９】
Ａｐｐｌｙボタン１６０１が押下された場合、管理端末２０２は、入力された仮想サーバごとの要求コア数と要求メモリサイズとから仮想サーバ構成情報６２１を生成し、生成した仮想サーバ構成情報６２１をディスク４０５等に格納する。また、管理端末２０２は、生成した仮想サーバ構成情報６２１をサーバ２０１の記憶領域に格納してもよい。入力された要求メモリサイズについて、ＮＵＭＡシステム２０３がインタリーブやメモリミラーリングを行わない場合、管理端末２０２は、ＤＩＭＭ１つあたりの容量からＤＩＭＭ何個分かを算出し、ＤＩＭＭの個数に変換し、仮想サーバ構成情報６２１を生成する。一方、ＮＵＭＡシステム２０３がインタリーブやメモリミラーリングを行う場合、管理端末２０２は、入力されたメモリサイズが、ＤＩＭＭグループ何個分かを算出し、ＤＩＭＭグループの個数に変換し、仮想サーバ構成情報６２１を生成する。
【０１３０】
図１７は、重み付けの入力の一例を示す説明図である。図１７では、管理端末２０２が、重み付けの入力画面を表示した例を示す。管理端末２０２は、管理者の操作により、処理性能の重み付け係数と可用性の重み付け係数とを受け付ける。たとえば、管理者が処理性能を重視した結果、管理端末２０２は、処理性能の重み付け係数を１００［％］とし、可用性の重み付け係数を０［％］とする入力を受け付ける。一方、管理者が処理性能と可用性とを同等に重視した結果、管理端末２０２は、処理性能の重み付け係数を５０［％］とし、可用性の重み付け係数を５０［％］とする入力を受け付ける。
【０１３１】
Ａｐｐｌｙボタン１７０１が押下された場合、管理端末２０２は、入力された処理性能の重み付け係数と可用性の重み付け係数とから重み付け情報６２２を生成し、生成した重み付け情報６２２をディスク４０５等に格納する。また、管理端末２０２は、重み付け情報６２２をサーバ２０１に格納してもよい。
【０１３２】
重み付けの計算の一例として、サーバ２０１は、下記（６）式を用いて、割当評価値を算出する。
【０１３３】
割当評価値＝処理性能の重み付け係数×処理性能評価値＋可用性の重み付け係数×可用性評価値  …（６）
【０１３４】
図１６、図１７で示した画面例は、サーバシステム２００に管理端末２０２が含まれる場合の例である。サーバシステム２００に管理端末２０２が含まれない場合、サーバ２０１の起動時に、サーバ２０１は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムにより仮想サーバ構成情報６２１と、重み付け情報６２２とを生成する画面を表示する。サーバ２０１は、サーバシステム２００の運用者による操作により、仮想サーバ構成情報６２１と、重み付け情報６２２とを生成する。
【０１３５】
次に、図１８〜図２６を用いて、サーバ２０１が実行するフローチャートについて説明する。
【０１３６】
図１８は、仮想サーバ割当処理手順の一例を示すフローチャートである。仮想サーバ割当処理は、ＮＵＭＡシステム２０３に仮想サーバを割り当てる処理である。
【０１３７】
サーバ２０１は、仮想サーバ構成情報６２１を取得する（ステップＳ１８０１）。次に、サーバ２０１は、重み付け情報６２２を取得する（ステップＳ１８０２）。ステップＳ１８０１とステップＳ１８０２の処理について、サーバ２０１は、ＩＰＭＩ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）を用いて、管理端末２０２の記憶領域から仮想サーバ構成情報６２１や重み付け情報６２２を取得する。続けて、サーバ２０１は、組合せパターン作成処理を実行する（ステップＳ１８０３）。組合せパターン作成処理の詳細は、図１９で後述する。
【０１３８】
次に、サーバ２０１は、作成した組合せパターンの集合のうち、先頭の組合せパターンを取得する（ステップＳ１８０４）。続けて、サーバ２０１は、取得した組合せパターンにおける割当評価値算出処理を実行する（ステップＳ１８０５）。組合せパターンにおける割当評価値算出処理は、図２２で後述する。
【０１３９】
次に、サーバ２０１は、算出した割当評価値が、現時点で最大か否かを判断する（ステップＳ１８０６）。算出した割当評価値が現時点で最大か否かの判断方法として、サーバ２０１は、後述するステップＳ１８０８の処理により保存された割当評価値と比較して、算出した割当評価値の方が大きければ、算出した割当評価値が現時点で最大と判断する。また、保存された割当評価値がない場合、サーバ２０１は、算出した割当評価値が現時点で最大と判断する。
【０１４０】
現時点で最大である場合（ステップＳ１８０６：Ｙｅｓ）、サーバ２０１は、取得した組合せパターンを保存する（ステップＳ１８０７）。次に、サーバ２０１は、取得した組合せパターンの割当評価値を保存する（ステップＳ１８０８）。
【０１４１】
ステップＳ１８０８の処理終了後、または、現時点で最大でない場合（ステップＳ１８０６：Ｎｏ）、サーバ２０１は、全ての組合せパターンの割当評価値を算出したか否かを判断する（ステップＳ１８０９）。まだ算出していない組合せパターンの割当評価値がある場合（ステップＳ１８０９：Ｎｏ）、サーバ２０１は、作成した組合せパターンの集合のうち、次の組合せパターンを取得する（ステップＳ１８１０）。ステップＳ１８１０の処理終了後、サーバ２０１は、ステップＳ１８０５の処理に移行する。
【０１４２】
全ての組合せパターンの割当評価値を算出した場合（ステップＳ１８０９：Ｙｅｓ）、サーバ２０１は、保存した組合せパターンに従って、仮想サーバを割り当てる（ステップＳ１８１１）。仮想サーバを割り当てた後、サーバ２０１は、仮想サーバ機能を実行する。
【０１４３】
ステップＳ１８１１の処理終了後、サーバ２０１は、仮想サーバ割当処理を終了する。仮想サーバ割当処理を実行することにより、サーバ２０１は、処理性能と可用性という２つの評価項目のうち、サーバシステム２００の運用者が最適だと考慮する組合せパターンに従った仮想サーバを割り当てることができる。
【０１４４】
また、ステップＳ１８０６の処理について、サーバ２０１は、算出した割当評価値が現時点で最大か否かを判断したが、可用性評価値や処理性能評価値が現時点で最大か否かを判断してもよい。また、ステップＳ１８１１の処理では、算出した割当評価値が最大の組合せパターンに従って複数の仮想サーバを割り当てるが、サーバ２０１は、ステップＳ１８１１の処理の前に、次に示す処理を実行してもよい。ステップＳ１８１１の処理の前に行う処理として、サーバ２０１は、作成した組合せパターンのうちの、算出した割当評価値の大きい順からいくつかの組合せパターンに、割当評価値を対応付けて管理端末２０２に出力する。そして、管理端末２０２は、いくつかの組合せパターンに、割当評価値を対応付けて出力した一覧を表示する。続けて、管理端末２０２は、サーバシステム２００の運用者によって指定された組合せパターンをサーバ２０１に送信する。指定された組合せパターンを受け付けたサーバ２０１は、受け付けた組合せパターンに従って複数の仮想サーバを割り当てる。
【０１４５】
図１９は、組合せパターン作成処理手順の一例を示すフローチャートである。組合せパターン作成処理は、組合せパターンを作成する処理である。サーバ２０１は、コアパターン作成処理を実行する（ステップＳ１９０１）。コアパターン作成処理の詳細は、図２０で後述する。次に、サーバ２０１は、メモリパターン作成処理を実行する（ステップＳ１９０２）。メモリパターン作成処理は、図２１で後述する。続けて、サーバ２０１は、コアパターンの集合と、メモリパターンの集合との直積により、組合せパターンの集合を作成する（ステップＳ１９０３）。ステップＳ１９０３の処理終了後、サーバ２０１は、組合せパターン作成処理を終了する。組合せパターン作成処理を実行することにより、サーバ２０１は、組合せパターンを作成することができる。
【０１４６】
図２０は、コアパターン作成処理手順の一例を示すフローチャートである。コアパターン作成処理は、コアパターンを作成する処理である。サーバ２０１は、割当コア数を、仮想サーバ構成情報６２１のコア数の合計に設定する（ステップＳ２００１）。次に、サーバ２０１は、ＮＵＭＡシステム２０３内の全コアから、割当コア数を取り出すコアパターンを作成する（ステップＳ２００２）。続けて、サーバ２０１は、作成したコアパターンの集合のうち、先頭のコアパターンを選択する（ステップＳ２００３）。
【０１４７】
次に、サーバ２０１は、削除フラグにｆａｌｓｅを代入する（ステップＳ２００４）。削除フラグは、選択したコアパターンが、冗長なため削除するか否かを示すフラグである。削除フラグは、値がｔｒｕｅであれば、選択したコアパターンが冗長であり削除することを示す。続けて、サーバ２０１は、選択したコアパターン内の、先頭の仮想サーバの割当コアを取得する（ステップＳ２００５）。次に、サーバ２０１は、選択した仮想サーバの割り当てコアのコアＩＤが昇順か否かを判断する（ステップＳ２００６）。選択した仮想サーバの割り当てコアのコアＩＤが昇順でない場合（ステップＳ２００６：Ｎｏ）、サーバ２０１は、削除フラグにｔｒｕｅを代入する（ステップＳ２００７）。
【０１４８】
ステップＳ２００７の処理終了後、または、選択した仮想サーバの割り当てコアのコアＩＤが昇順である場合（ステップＳ２００６：Ｙｅｓ）、サーバ２０１は、選択したコアパターン内で、全ての仮想サーバの割当コアを選択したか否かを判断する（ステップＳ２００８）。まだ選択していない仮想サーバの割当コアがある場合（ステップＳ２００８：Ｎｏ）、サーバ２０１は、選択したコアパターン内の、次の仮想サーバの割当コアを選択する（ステップＳ２００９）。ステップＳ２００９の処理終了後、サーバ２０１は、ステップＳ２００６の処理に移行する。
【０１４９】
全ての仮想サーバの割当コアを選択した場合（ステップＳ２００８：Ｙｅｓ）、サーバ２０１は、削除フラグがｔｒｕｅか否かを判断する（ステップＳ２０１０）。削除フラグがｔｒｕｅである場合（ステップＳ２０１０：Ｙｅｓ）、サーバ２０１は、選択したコアパターンを削除する（ステップＳ２０１１）。
【０１５０】
ステップＳ２０１１の処理終了後、または、削除フラグがｆａｌｓｅである場合（ステップＳ２０１０：Ｎｏ）、サーバ２０１は、全ての作成したコアパターンを選択したか否かを判断する（ステップＳ２０１２）。まだ選択していない作成したコアパターンがある場合（ステップＳ２０１２：Ｎｏ）、サーバ２０１は、作成したコアパターンの集合のうち、次のコアパターンを選択する（ステップＳ２０１３）。ステップＳ２０１３の処理終了後、サーバ２０１は、ステップＳ２００４の処理に移行する。
【０１５１】
全ての作成したコアパターンを選択した場合（ステップＳ２０１２：Ｙｅｓ）、サーバ２０１は、コアパターン作成処理を終了する。コアパターン作成処理を実行することにより、サーバ２０１は、冗長のないコアパターンを作成することができる。
【０１５２】
図２１は、メモリパターン作成処理手順の一例を示すフローチャートである。メモリパターン作成処理は、メモリパターンを作成する処理である。ここで、ステップＳ２１０１〜ステップＳ２１１３の処理は、図２０に示したステップＳ２００１〜ステップＳ２０１３の各処理について、「コア」を「メモリ」に置き換えただけであるから、説明を省略する。メモリパターン作成処理を実行することにより、サーバ２０１は、冗長のないメモリパターンを作成することができる。
【０１５３】
図２２は、組合せパターンにおける割当評価値算出処理手順の一例を示すフローチャートである。組合せパターンにおける割当評価値算出処理は、組合せパターンにおける割当評価値を算出する処理である。
【０１５４】
サーバ２０１は、処理性能評価値算出処理を実行する（ステップＳ２２０１）。処理性能評価値算出処理は、図２３と図２４とで後述する。次に、サーバ２０１は、可用性評価値算出処理を実行する（ステップＳ２２０２）。可用性評価値算出処理は、図２５と図２６とで後述する。続けて、サーバ２０１は、重み付け情報６２２を参照して、処理性能の重み付け係数×処理性能評価値＋可用性の重み付け係数×可用性評価値を割当評価値として計算する（ステップＳ２２０３）。ステップＳ２２０３の処理終了後、サーバ２０１は、組合せパターンにおける割当評価値算出処理を終了する。組合せパターンにおける割当評価値算出処理を実行することにより、サーバ２０１は、組合せパターンにおける割当評価値を算出することができる。
【０１５５】
図２３は、処理性能評価値算出処理手順の一例を示すフローチャート（その１）である。また、図２４は、処理性能評価値算出処理手順の一例を示すフローチャート（その２）である。処理性能評価値算出処理は、処理性能評価値を算出して、正規化する処理である。
【０１５６】
サーバ２０１は、合計値に０を代入する（ステップＳ２３０１）。次に、サーバ２０１は、個数に０を代入する（ステップＳ２３０２）。ここで、合計値と個数とは、処理性能評価値算出処理で用いる変数である。続けて、サーバ２０１は、ｉに０を代入する（ステップＳ２３０３）。ｉは、処理性能評価値算出処理で用いる変数であり、仮想サーバのインデックスを示す変数である。
【０１５７】
次に、サーバ２０１は、仮想サーバＭ個のうち、ｉ番目の仮想サーバを選択する（ステップＳ２３０４）。続けて、サーバ２０１は、ｊに０を代入する（ステップＳ２３０５）。次に、サーバ２０１は、ｋに０を代入する（ステップＳ２３０６）。ここで、ｊとｋは、それぞれ、処理性能評価値算出処理で用いる変数であり、仮想サーバ内のコアのインデックスを示す変数と、仮想サーバ内のメモリのインデックスを示す変数とである。
【０１５８】
続けて、サーバ２０１は、ＳＲＡＴ６２３、距離テーブル１００２を参照して、ｉ番目の仮想サーバにあるｊ番目のコアと、ｋ番目のメモリとの距離を取得する（ステップＳ２３０７）。次に、サーバ２０１は、合計値＋取得した距離を合計値に代入する（ステップＳ２３０８）。続けて、サーバ２０１は、個数＋１を個数に代入する（ステップＳ２３０９）。次に、（ｉ番目の仮想サーバにあるメモリの個数−１）がｋより大きいか否かを判断する（ステップＳ２３１０）。
【０１５９】
（ｉ番目の仮想サーバにあるメモリの個数−１）がｋより大きい場合（ステップＳ２３１０：Ｙｅｓ）、サーバ２０１は、ｋをインクリメントする（ステップＳ２３１１）。ステップＳ２３１１の処理終了後、サーバ２０１は、ステップＳ２３０７の処理に移行する。（ｉ番目の仮想サーバにあるメモリの個数−１）がｋ以下である場合（ステップＳ２３１０：Ｎｏ）、サーバ２０１は、（ｉ番目の仮想サーバにあるコアの個数−１）がｊより大きいか否かを判断する（ステップＳ２３１２）。（ｉ番目の仮想サーバにあるコアの個数−１）がｊより大きい場合（ステップＳ２３１２：Ｙｅｓ）、サーバ２０１は、ｊをインクリメントする（ステップＳ２３１３）。ステップＳ２３１３の処理終了後、サーバ２０１は、ステップＳ２３０６の処理に移行する。（ｉ番目の仮想サーバにあるコアの個数−１）がｊ以下である場合（ステップＳ２３１２：Ｎｏ）、サーバ２０１は、図２４に示すステップＳ２４０１の処理に移行する。
【０１６０】
ステップＳ２３１２：Ｎｏとなった場合、サーバ２０１は、（Ｍ−１）がｉより大きいか否かを判断する（ステップＳ２４０１）。（Ｍ−１）がｉより大きい場合（ステップＳ２４０１：Ｙｅｓ）、サーバ２０１は、ｉをインクリメントする（ステップＳ２４０２）。ステップＳ２４０２の処理終了後、サーバ２０１は、ステップＳ２３０４の処理に移行する。
【０１６１】
（Ｍ−１）がｉ以下である場合（ステップＳ２４０１：Ｎｏ）、サーバ２０１は、合計値／個数を距離の平均値として算出する（ステップＳ２４０３）。次に、サーバ２０１は、ｆｐ（距離の平均値）を正規化した処理性能評価値として算出する（ステップＳ２４０４）。ステップＳ２４０４の処理終了後、サーバ２０１は、処理性能評価値算出処理を終了する。処理性能評価値算出処理を実行することにより、サーバ２０１は、処理性能評価値を算出して、正規化することができる。
【０１６２】
図２５は、可用性評価値算出処理手順の一例を示すフローチャート（その１）である。また、図２６は、可用性評価値算出処理手順の一例を示すフローチャート（その２）である。可用性評価値算出処理は、可用性評価値を算出して、正規化する処理である。
【０１６３】
サーバ２０１は、各ノードにおける仮想サーバの数［０，…，Ｎ−１］に０を代入する（ステップＳ２５０１）。ここで、各ノードにおける仮想サーバの数［０，…，Ｎ−１］は、Ｎ［個］の配列である。また、ステップＳ２５０１の処理では、サーバ２０１は、各ノードにおける仮想サーバの数［０，…，Ｎ−１］の各要素に、０を代入する。
【０１６４】
次に、サーバ２０１は、ｉに０を代入する（ステップＳ２５０２）。ｉは、可用性評価値算出処理で用いる変数であり、仮想サーバのインデックスを示す変数である。続けて、サーバ２０１は、仮想サーバＭ個のうち、ｉ番目の仮想サーバを選択する（ステップＳ２５０３）。次に、サーバ２０１は、仮想サーバ存在フラグ［０，…，Ｎ−１］に０を代入する（ステップＳ２５０４）。仮想サーバ存在フラグ［０，…，Ｎ−１］は、各ノードにおいて、ｉ番目の仮想サーバが存在するか否かを示すフラグの配列である。フラグの値は、０であればｉ番目の仮想サーバが存在しないことを示し、１であればｉ番目の仮想サーバが存在することを示す。
【０１６５】
続けて、サーバ２０１は、ｊに０を代入する（ステップＳ２５０５）。ここで、ｊは、可用性評価値算出処理で用いる変数であり、仮想サーバ内のコアのインデックスを示す変数である。次に、サーバ２０１は、ＳＲＡＴ６２３を参照して、ｉ番目の仮想サーバのｊ番目のコアが所属するノードの番号を取得する（ステップＳ２５０６）。続けて、サーバ２０１は、仮想サーバ存在フラグ［取得した番号］に１を代入する（ステップＳ２５０７）。次に、サーバ２０１は、（ｉ番目の仮想サーバにあるコアの個数−１）がｊより大きいか否かを判断する（ステップＳ２５０８）。（ｉ番目の仮想サーバにあるコアの個数−１）がｊより大きい場合（ステップＳ２５０８：Ｙｅｓ）、サーバ２０１は、ｊをインクリメントする（ステップＳ２５０９）。ステップＳ２５０９の処理終了後、サーバ２０１は、ステップＳ２５０６の処理に移行する。
【０１６６】
（ｉ番目の仮想サーバにあるコアの個数−１）がｊ以下である場合（ステップＳ２５０８：Ｎｏ）、サーバ２０１は、図２６に示すステップＳ２６０１の処理に移行する。
【０１６７】
ステップＳ２５０８：Ｎｏであった場合、サーバ２０１は、ｋに０を代入する（ステップＳ２６０１）。ここで、ｋは、可用性評価値算出処理で用いる変数であり、仮想サーバ内のメモリのインデックスを示す変数である。次に、サーバ２０１は、ＳＲＡＴ６２３を参照して、ｉ番目の仮想サーバのｋ番目のメモリが所属するノードの番号を取得する（ステップＳ２６０２）。続けて、サーバ２０１は、仮想サーバ存在フラグ［取得した番号］に１を代入する（ステップＳ２６０３）。次に、サーバ２０１は、（ｉ番目の仮想サーバにあるメモリの個数−１）がｋより大きいか否かを判断する（ステップＳ２６０４）。（ｉ番目の仮想サーバにあるメモリの個数−１）がｋより大きい場合（ステップＳ２６０４：Ｙｅｓ）、サーバ２０１は、ｋをインクリメントする（ステップＳ２６０５）。ステップＳ２６０５の処理終了後、サーバ２０１は、ステップＳ２６０２の処理に移行する。
【０１６８】
（ｉ番目の仮想サーバにあるメモリの個数−１）がｋ以下である場合（ステップＳ２６０４：Ｎｏ）、サーバ２０１は、各ノードにおける仮想サーバの数［０，…，Ｎ−１］に、各ノードにおける仮想サーバの数［０，…，Ｎ−１］＋仮想サーバ存在フラグ［０，…，Ｎ−１］を代入する（ステップＳ２６０６）。ステップＳ２６０６の処理は、配列同士の加算であり、たとえば、サーバ２０１は、０番目の要素として、各ノードにおける仮想サーバの数［０］に、各ノードにおける仮想サーバの数［０］＋仮想サーバ存在フラグ［０］を代入する。サーバ２０１は、１番目の要素〜Ｎ−１番目の要素についても同様な処理を行う。
【０１６９】
次に、サーバ２０１は、（Ｍ−１）がｉより大きいか否かを判断する（ステップＳ２６０７）。（Ｍ−１）がｉより大きい場合（ステップＳ２６０７：Ｙｅｓ）、サーバ２０１は、ｉをインクリメントする（ステップＳ２６０８）。ステップＳ２６０８の処理終了後、サーバ２０１は、ステップＳ２５０３の処理に移行する。
【０１７０】
（Ｍ−１）がｉ以下である場合（ステップＳ２６０７：Ｎｏ）、サーバ２０１は、仮想サーバの最大数＝Ｍａｘ（各ノードにおける仮想サーバの数［０，…，Ｎ−１］）を計算する（ステップＳ２６０９）。次に、サーバ２０１は、ｆａ（仮想サーバの最大数）を正規化した可用性評価値として算出する（ステップＳ２６１０）。ステップＳ２６１０の処理終了後、サーバ２０１は、可用性評価値算出処理を終了する。可用性評価値算出処理を実行することにより、サーバ２０１は、可用性評価値を算出して、正規化することができる。
【０１７１】
以上説明したように、サーバ２０１によれば、ＮＵＭＡシステム２０３内の各々のノードにあるコアまたはメモリを用いて実行されるノード単位の仮想サーバの個数から、ＮＵＭＡシステム２０３上の複数の仮想サーバの可用性評価値を算出する。これにより、サーバ２０１は、複数のノードのうちの一部のノードの障害が複数の仮想サーバに与える影響の程度を評価することができる。また、サーバ２０１は、可用性評価値が最大となった組合せパターンに従って仮想サーバを割り当てることにより、一部のノードの障害が複数の仮想サーバに与える影響が最も小さくなる複数の仮想サーバの割り当てを行うことができる。
【０１７２】
また、可用性評価値は、復旧にかかるであろうコストであると解釈することもできる。具体的には、サーバシステム２００は、ＮＵＭＡシステム２０３上で実行する業務アプリケーションに関する情報を定期的にバックアップしているとする。そして、可用性評価値が、複数の仮想サーバの個数のうちの最大値であるとする。このとき、可用性評価値は、１つのノードに障害が発生した際、バックアップしたデータを用いて、仮想サーバを復旧することになる仮想サーバの個数の最大値となる。したがって、可用性評価値が小さいほど、復旧にかかるであろうコストが小さくなることを示す。
【０１７３】
また、サーバ２０１によれば、各々の仮想サーバの実行に用いるコアからメモリへのアクセス性能に基づいて、複数の仮想サーバの処理性能評価値を算出してもよい。これにより、サーバ２０１は、ある組合せパターンにおける複数の仮想サーバの処理性能評価値を用いて、処理性能が最適な組合せパターンを選択することができる。また、サーバ２０１は、処理性能評価値が最大となった組合せパターンに従って仮想サーバを割り当てることにより、複数の仮想サーバの合計の処理性能が最大となる複数の仮想サーバの割り当てを行うことができる。また、サーバ２０１は、ある組合せパターンにおける複数の仮想サーバの処理性能評価値をサーバシステム２００の運用者に閲覧させることにより、ある組合せパターンが処理性能に対して最適なパターンであるか否かの判断基準を提供することができる。
【０１７４】
また、サーバ２０１によれば、複数の仮想サーバの個数に基づいて、可用性評価値を正規化してもよい。正規化した可用性評価値は、複数の仮想サーバの個数に依存しない値となる。したがって、サーバシステム２００の運用者が、ある組合せパターンにおける複数の仮想サーバの可用性評価値を閲覧した際に、正規化していない可用性評価値と比較して判断がし易くなる。
【０１７５】
また、サーバ２０１によれば、各々の仮想サーバの実行に用いるコアからメモリへのアクセス性能の最大値に基づいて、処理性能評価値を正規化してもよい。正規化した処理性能評価値は、ノード間の距離の長短に依存しない値となる。したがって、サーバシステム２００の運用者が、ある組合せパターンにおける複数の仮想サーバの処理性能評価値を閲覧した際に、正規化していない処理性能評価値と比較して判断がし易くなる。また、サーバ２０１は、正規化した可用性評価値と、正規化した処理性能評価値とを合わせて出力してもよい。これにより、サーバシステム２００の運用者が、正規化した可用性評価値と正規化した処理性能評価値とを閲覧した際に、ある組合せパターンが、可用性と処理性能とのうちのどちらが重視されたパターンであるのかを容易に判断することができる。
【０１７６】
また、サーバ２０１によれば、正規化した可用性評価値と正規化した処理性能評価値とのいずれか一方に重み付けして累積した割当評価値を算出してもよい。これにより、サーバ２０１は、複数の仮想サーバにおける可用性と処理性能とを同時に考慮した割当評価値を算出することができる。そして、割当評価値が最大となる組合せパターンに従って複数のノードに仮想サーバを割り当てることにより、サーバ２０１は、サーバシステム２００の運用者が最適と考える仮想サーバ構成をとることができる。
【０１７７】
また、サーバ２０１によれば、仮想サーバ構成情報６２１を参照して、組合せパターンを作成してもよい。これにより、サーバ２０１は、複数のノードが有するコアとメモリとから、取り得る全ての組合せパターンについて、可用性評価値、処理性能評価値、割当評価値を算出することができる。
【０１７８】
また、サーバ２０１によれば、組合せパターンに、可用性評価値を対応付けて出力してもよい。同様に、サーバ２０１は、組合せパターンに、処理性能評価値を対応付けて出力してもよいし、組合せパターンに、割当評価値を対応付けて出力してもよい。可用性評価値を例とすると、サーバ２０１は、サーバ２０１が作成した組合せパターンについての可用性評価値をサーバシステム２００の運用者に閲覧させて、運用者が想定していない組合せパターンに対する可用性評価値を提示することができる。
【０１７９】
また、サーバ２０１によれば、作成した組合せパターンは膨大な個数となるため、作成した組合せパターンのうち、可用性評価値、処理性能評価値、割当評価値のいずれかが上位となった組合せパターンを絞り込んで出力してもよい。これにより、サーバ２０１は、膨大な個数となる組合せパターンのうち、可用性、処理性能が高い組合せパターンをサーバシステム２００の運用者に提供することができる。
【０１８０】
また、サーバ２０１によれば、複数の組合せパターンの各々の組合せパターンに対応付けた可用性評価値、処理性能評価値、割当評価値を一覧として出力してもよい。割当評価値が最大となる組合せパターンは、可用性評価値と処理性能評価値とが共に高い値ではなく、可用性評価値と処理性能評価値とのいずれか一方のみが高い値となる可能性もある。この場合、サーバシステム２００の運用者は、一覧を閲覧して、割当評価値が最大ではあるが、可用性評価値と処理性能評価値とのいずれか一方が高い組合せパターンより、可用性評価値と処理性能評価値とがある程度高い組合せパターンを選択することができる。
【０１８１】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８３】
（付記１）各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する制御部、
を有することを特徴とする情報処理装置。
【０１８４】
（付記２）前記制御部は、
さらに、前記対応情報に含まれる各々の組合せにより特定される、前記各々の仮想マシンの実行に用いるコアからメモリへのアクセス性能に基づいて、前記システム上で実行する前記複数の仮想マシンの処理性能を示す値を算出することを特徴とする付記１に記載の情報処理装置。
【０１８５】
（付記３）前記制御部は、
前記複数の仮想マシンの個数に基づいて、算出した前記偏り度合いを示す値を正規化することを特徴とする付記２に記載の情報処理装置。
【０１８６】
（付記４）前記制御部は、
前記複数のノードが有するコアからメモリへのアクセス性能の最大値および最小値に基づいて、算出した前記処理性能を示す値を正規化することを特徴とする付記２または３に記載の情報処理装置。
【０１８７】
（付記５）前記制御部は、
前記複数の仮想マシンの個数に基づいて、算出した前記偏り度合いを示す値を正規化し、
正規化した前記偏り度合いを示す値および正規化した前記処理性能を示す値のいずれか一方の値に重み付けした値と他方の値を足し合わせた値を算出することを特徴とする付記４に記載の情報処理装置。
【０１８８】
（付記６）前記制御部は、
前記各々の仮想マシンの実行に要するコアの個数とメモリの個数とに基づいて、前記システム上で実行する前記各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報を作成することを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【０１８９】
（付記７）前記制御部は、
前記対応情報に、算出した前記偏り度合いを示す値を対応付けて出力することを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【０１９０】
（付記８）前記制御部は、
前記対応情報に、算出した前記処理性能を示す値を対応付けて出力することを特徴とする付記２〜５のいずれか一つに記載の情報処理装置。
【０１９１】
（付記９）前記制御部は、
前記対応情報に、算出した前記足し合わせた値を対応付けて出力することを特徴とする付記５に記載の情報処理装置。
【０１９２】
（付記１０）コンピュータが、
各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報を取得し、
取得した対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する、
処理を実行することを特徴とする情報処理方法。
【０１９３】
（付記１１）コンピュータに、
各々のノードがコアとメモリとを有し、前記メモリの少なくとも一部をノード間で共用する複数のノードを含むシステム上で実行する複数の仮想マシンに含まれる各々の仮想マシンの実行に用いるコアとメモリとの組合せ同士を対応付けた対応情報に基づいて、前記各々のノードが有するコアまたはメモリを用いて実行されるノード単位の仮想マシンの個数の前記ノード間における偏り度合いを示す値を算出する、
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１９４】
１００  情報処理装置
１０１  システム
２０１  サーバ
２０３  ＮＵＭＡシステム
６０１  制御部
６０２  記憶部
６１１  作成部
６１２  取得部
６１３  算出部
６１４  出力部
６１５  仮想サーバ構築部
６２１  仮想サーバ構成情報
６２２  重み付け情報
【図１】
2015158811.tif 000003
【図２】
2015158811.tif 000004
【図３】
2015158811.tif 000005
【図４】
2015158811.tif 000006
【図５】
2015158811.tif 000007
【図６】
2015158811.tif 000008
【図７】
2015158811.tif 000009
【図８】
2015158811.tif 000010
【図９】
2015158811.tif 000011
【図１０】
2015158811.tif 000012
【図１１】
2015158811.tif 000013
【図１２】
2015158811.tif 000014
【図１３】
2015158811.tif 000015
【図１４】
2015158811.tif 000016
【図１５】
2015158811.tif 000017
【図１６】
2015158811.tif 000018
【図１７】
2015158811.tif 000019
【図１８】
2015158811.tif 000020
【図１９】
2015158811.tif 000021
【図２０】
2015158811.tif 000022
【図２１】
2015158811.tif 000023
【図２２】
2015158811.tif 000024
【図２３】
2015158811.tif 000025
【図２４】
2015158811.tif 000026
【図２５】
2015158811.tif 000027
【図２６】
2015158811.tif 000028