(57)【特許請求の範囲】
【請求項１】
仮想マシンで実行するソフトウェアを特定し、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得し、
取得した計算式及びサーバコンピュータの情報に基づいて、前記仮想マシンを割り当てた場合に、各サーバコンピュータにおいて新たに必要となるライセンス消費数を算出し、
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する制御を行う
処理をコンピュータに実行させる割り当てプログラム。
【請求項２】
前記サーバコンピュータの情報は負荷情報を含み、
前記ライセンス消費数が最小であるサーバコンピュータが複数の場合、前記負荷情報に基づいて、負荷が最も少ないサーバコンピュータを選択し、
選択したサーバコンピュータに、前記仮想マシンを割り当てる
処理をコンピュータに実行させる請求項１に記載の割り当てプログラム。
【請求項３】
仮想マシンで実行するソフトウェアを特定する特定部、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得する取得部、
取得した計算式及びサーバコンピュータの情報に基づいて、前記仮想マシンを割り当てた場合に、各サーバコンピュータにおいて新たに必要となるライセンス消費数を算出する算出部、並びに
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する割当部
を備える割り当て装置。
【請求項４】
仮想マシンが割り当てられ、割り当てられた仮想マシンを動作させる複数のサーバコンピュータ、並びに
仮想マシンで実行するソフトウェアを特定する特定部、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な前記複数のサーバコンピュータの情報を取得する取得部、
取得した計算式及びサーバコンピュータの情報に基づいて、前記仮想マシンを割り当てた場合に、各サーバコンピュータにおいて新たに必要となるライセンス消費数を算出する算出部、並びに
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する割当部を有する割り当て装置を備える
割り当てシステム。
【請求項５】
サーバコンピュータに仮想マシンを割り当てるコンピュータが、
仮想マシンで実行するソフトウェアを特定し、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得し、
取得した計算式及びサーバコンピュータの情報に基づいて、前記仮想マシンを割り当てた場合に、各サーバコンピュータにおいて新たに必要となるライセンス消費数を算出し、
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する
割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンを動作させるコンピュータの割り当てに関する。
【背景技術】
【０００２】
近年、多数のサーバコンピュータやネットワーク機器を含むリソースプールを構築し、ユーザからのリクエストに応じ、リソースプールから確保したリソースを用いて、サービスを提供するクラウドコンピューティングが行われている。クラウドコンピューティングでは、サーバコンピュータ上で仮想マシンを動作させ、仮想マシンを用いてサービスを提供することが多く行われている。
【０００３】
一方、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のダブルコア化やクワッドコア化などにより、サーバコンピュータの処理パワーはハードウェア構成により、大きな差が生じるようになっている。そのため、ソフトウェアのライセンスは、従来の物理コンピュータ１台毎や物理ＣＰＵ１個毎に必要とするのではなく、ＣＰＵコアの数単位、ＣＰＵソケット単位、仮想マシン単位で必要とするように、多様化が進んでいる。ライセンスの多様化により、ライセンスの管理が困難になってきている。また、クラウドコンピューティングでは、サーバコンピュータの負荷状況に応じて、動作中の仮想マシンが動作するサーバコンピュータを変更すること（ライブマイグレーション）が行われている。この場合、ライブマイグレーション前後のサーバコンピュータの構成が同一とは限らないため、ソフトウェアライセンスの消費数が変化することがある。このようなことから、仮想マシンの動作状況に応じたライセンスの消費数を算出するシステムが提案されている。（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−３３０９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ライセンスの消費数を調べるのに留まり、消費数の最適化は考慮していない。
【０００６】
１つの側面では、本発明は、仮想マシンをサーバコンピュータに割り当てる場合に、ライセンスの消費数の増加の抑制を図ることを目的とする。
【課題を解決するための手段】
【０００７】
プログラムの一観点によれば、仮想マシンで実行するソフトウェアを特定し、特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得し、取得した計算式及びサーバコンピュータの情報に基づいて、前記仮想マシンを割り当てた場合に、各サーバコンピュータにおいて新たに必要となるライセンス消費数を算出し、前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する制御を行う処理をコンピュータに実行させる。
【発明の効果】
【０００８】
仮想マシンをライセンスの消費数の増加の抑制を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システムの構成の一例を示すブロック図である。
【図２】クラウド管理サーバのハードウェア構成の一例を示すブロック図である。
【図３】リソース管理サーバのハードウェア構成の一例を示すブロック図である。
【図４】構成情報管理ＤＢのレコードレイアウトの一例を示す説明図である。
【図５】ライセンスＤＢのレコードレイアウトの一例を示す説明図である。
【図６】マシン情報ＤＢのレコードレイアウトの一例を示す説明図である。
【図７】サーバの割り当て処理の手順の一例を示すフローチャートである。
【図８】ライセンス最適化判定処理の手順の一例を示すフローチャートである。
【図９】割り当て処理の具体例を示すための説明図である。
【図１０】実施の形態２におけるライセンスＤＢのレコードレイアウトの一例を示す説明図である。
【図１１】サーバの割り当て処理の手順の一例を示すフローチャートである。
【図１２】サーバの割り当て処理の手順の一例を示すフローチャートである。
【図１３】サーバの割り当て処理の手順の一例を示すフローチャートである。
【図１４】クラウド管理サーバの機能構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本明細書に開示する割り当て装置を、図面を参照しつつ、詳細に説明する。
【００１１】
（実施の形態１）
図１は、情報処理システム（割り当てシステム）の構成の一例を示すブロック図である。情報処理システムは、クラウド管理サーバ１（割り当て装置、コンピュータ）、リソース管理サーバ２、リソースプール３、ユーザ端末４、クラウド管理サーバ１に接続された構成情報管理ＤＢ５１及びライセンスＤＢ５２、並びに、リソース管理サーバ２に接続されたマシン情報ＤＢ６１を含む。
【００１２】
リソース管理サーバ２は、情報処理システムに含まれるリソースプール３の管理を行う。リソースプール３は複数のサーバ、ディスク装置から構成され、ユーザに対して、サービスを提供する。ユーザ端末４はユーザ側の端末である。
【００１３】
ユーザはユーザ端末４から、リソース（サーバコンピュータ、ディスク）の要求をクラウド管理サーバ１に対して行う。クラウド管理サーバ１は、要求に応じた仮想マシンを動作させる最適なサーバをリソースプール３から選択する。クラウド管理サーバ１は選択したサーバの情報、ユーザ端末４から要求された内容を、リソース管理サーバ２に送信する。リソース管理サーバ２は、クラウド管理サーバ１が選択したサーバで仮想マシンを起動する。また、リソース管理サーバ２は、ユーザからの要求に応じたディスクをリソースプール３より確保し、仮想マシンに割り当てる。リソース管理サーバ２は、クラウド管理サーバ１を介して、仮想マシン及びディスクの情報をユーザ端末４に送信する。
【００１４】
図２はクラウド管理サーバ１のハードウェア構成の一例を示すブロック図である。クラウド管理サーバ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３、通信部１４、Ｉ／Ｆ部１５、読取り部１６を含む。各構成はバスで接続されている。
【００１５】
ＣＰＵ１１はＲＯＭ１３に記憶された割り当てプログラムに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）、フラッシュメモリである。ＲＡＭ１２はＣＰＵ１１によるプログラムの実行時に発生するデータを一時的に記憶する。
【００１６】
通信部１４はネットワークＮを介して、他のコンピュータ、主としてリソース管理サーバ２、ユーザ端末４と通信を行う。Ｉ／Ｆ部１５は、構成情報管理ＤＢ（ＤａｔａＢａｓｅ）５１及びライセンスＤＢ５２とデータのやり取りを行う。
【００１７】
読取り部１６はＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）−ＲＯＭを含む可搬型記憶媒体１ａを読み取る。ＣＰＵ１１は読取り部１６を介して、割り当てプログラムを可搬型記憶媒体１ａより読み取り、ＲＡＭ１２に記憶し実行しても良い。また、ＣＰＵ１１がネットワークＮを介して他のコンピュータから割り当てプログラムをダウンロードし、ＲＡＭ１２に記憶しても良い。さらにまた、半導体メモリ１ｂから、ＣＰＵ１１が割り当てプログラムを読み込んでも良い。
【００１８】
図３はリソース管理サーバ２のハードウェア構成の一例を示すブロック図である。リソース管理サーバ２は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、通信部２４、Ｉ／Ｆ部２５、読取り部２６を含む。各構成はバスで接続されている。
【００１９】
ＣＰＵ２１はＲＯＭ２３に記憶された制御プログラムに従いハードウェア各部を制御する。ＲＡＭ２２は例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリである。ＲＡＭ２２はＣＰＵ２１によるプログラムの実行時に発生するデータを一時的に記憶する。
【００２０】
通信部２４はネットワークＮを介して、他の機器、主としてクラウド管理サーバ１、リソースプール３に含まれるサーバ、ディスク装置と通信を行う。Ｉ／Ｆ部２５は、マシン情報ＤＢ６１とデータのやり取りを行う。
【００２１】
読取り部２６はＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭを含む可搬型記憶媒体２ａを読み取る。ＣＰＵ１１は読取り部２６を介して、制御プログラムを可搬型記憶媒体２ａより読み取り、ＲＡＭ２２に記憶し実行しても良い。また、ＣＰＵ２１がネットワークＮを介して他のコンピュータから制御プログラムをダウンロードし、ＲＡＭ２２に記憶しても良い。さらにまた、半導体メモリ２ｂから、ＣＰＵ２１が制御プログラムを読み込んでも良い。
【００２２】
次に、各種データベースについて説明する。図４は構成情報管理ＤＢ５１のレコードレイアウトの一例を示す説明図である。構成情報管理ＤＢ５１は、リソースプール３に含まれるサーバの構成情報を記憶するデータベースである。構成情報管理ＤＢ５１は、ＩＤ欄、物理ＣＰＵ数欄、物理ＣＰＵコア数欄、メモリ容量欄、搭載ディスク容量欄を含む。ＩＤ欄はサーバの識別子となるＩＤを記憶する。物理ＣＰＵ数欄はサーバが搭載されている物理ＣＰＵの数を記憶する。物理ＣＰＵコア数欄は、サーバが搭載する物理ＣＰＵが有するコア数の合計数を記憶する。メモリ容量欄は、サーバに搭載されているメモリ容量の総量を記憶する。搭載ディスク容量欄はサーバに搭載されているディスクの総容量を記憶する。
【００２３】
図５はライセンスＤＢ５２のレコードレイアウトの一例を示す説明図である。ライセンスＤＢ５２は、ＩＤ欄、種類欄、製品名欄、計算式欄、許容ＶＭ数欄、ライセンス数欄を含む。ライセンス数欄はさらに、保有欄、消費欄、空き欄を含む。ＩＤ欄はライセンスの識別子であるＩＤを記憶する。種類欄はライセンスされているソフトウェアの種類を記憶する。種類は例えば、ＯＳ、ミドルウェア、アプリケーションである。製品名欄はソフトウェアの名称を記憶する。製品名にはエディションを含めてもよい。エディションの例としては、スタンダードエディション（ＳＥ）、エンタープライズエディション（ＥＥ）である。計算式欄は消費ライセンスを求めるための計算式を記憶する。許容ＶＭ数欄は、ライセンス付与された物理サーバで稼働が許される仮想マシン（ＶＭ＝Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅ）の数を記憶する。ライセンス数欄はライセンスの数について記憶する。保有欄はライセンスに与えられているライセンス数の総計値を記憶する。消費欄は割り当てがされていて使われているライセンスの数を記憶する。空き欄は割り当てがされずに新たに割り当てが可能なライセンスの数を記憶する。消費欄の値と空き欄の値を合計すると保有欄の値となる。
【００２４】
図６はマシン情報ＤＢ６１のレコードレイアウトの一例を示す説明図である。マシン情報ＤＢ６１は論理マシン（物理マシン及び仮想マシン）の構成情報及び稼働状況を記憶している。マシンＤＢ６１は、ＩＤ欄、物理ＩＤ欄、種別欄、状態欄、ＣＰＵ欄、ＣＰＵ使用率欄、メモリ欄、ネットワーク欄、ディスク欄を含む。ＩＤ欄は論理マシンの識別子であるＩＤを記憶する。物理ＩＤ欄は論理マシンが動作する物理マシンのＩＤを記憶する。種別欄は論理マシンの種別を記憶する。種別は例えば、物理マシンを示す「物理」、仮想マシンを示す「仮想」である。状態欄は論理マシンの状態を記憶する。状態は例えば、「稼働中」、「定義」である。「稼働中」はクラウド管理サーバ１からの起動要求に応答して、論理マシンが動作していることを示す。「定義」はクラウド管理サーバ１から論理マシンに対するリソースの割り当て要求があり、マシン情報ＤＢ６１に登録したものの、該当する論理マシンが実行されていないこと示す。クラウド管理サーバ１から論理マシンの起動要求がない又はクラウド管理サーバ１から論理マシンの停止要求があったのが、実行されていない理由である。ＣＰＵ欄はクラウド管理サーバ１から要求された論理マシンのＣＰＵスペックを記憶する。ＣＰＵ使用率欄は、論理マシンのＣＰＵの使用率を記憶する。メモリ欄はクラウド管理サーバ１から要求された論理マシンのメモリスペックを記憶する。ネットワーク欄はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）番号とＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）−ＩＤとの対応付けが記憶される。ディスク欄はＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）番号とディスク識別子との対応関係が記憶される。
【００２５】
次に、クラウド管理サーバ１による仮想マシンのサーバへの割り当てについて説明する。クラウド管理サーバ１には動作モードを設けてあり、動作モードにより異なるアルゴリズムで仮想マシンを割り当てるサーバを選択する。動作モードとして、例えば、リソース配備最適化優先モード（以下、「リソース優先モード」という）、ライセンス数最適化優先モード（以下、「ライセンス優先モード」という）を設ける。リソース優先モードでは、リソース配備（仮想ＣＰＵ、仮想メモリ）の最適化を優先して、仮想マシンを割り当てるサーバを選択する。ライセンス優先モードでは、ライセンス数（物理ＣＰＵ数、仮想ＣＰＵコア数など）が最小となるように、仮想マシンを割り当てるサーバを選択する。
【００２６】
図７はサーバの割り当て処理の手順の一例を示すフローチャートである。図８はライセンス最適化判定処理の手順の一例を示すフローチャートである。ここでは、仮想マシンがライブマイグレーションにより、他の物理マシンへ移動する場合を例とする。また、仮想マシンで動作するソフトウェアにおいて、ライセンス管理が必要とするものは、１つのミドルウェアであるとする。
【００２７】
まず、クラウド管理サーバ１のＣＰＵ１１は、動作モードがライセンス優先モードであるか否かを判定する（ステップＳ１）。ＣＰＵ１１は、動作モードがライセンス優先モードである場合（ステップＳ１でＹＥＳ）、処理対象のミドルウェアが、物理ＣＰＵに依存するミドルウェアであるか否かを判定する（ステップＳ２）。ＣＰＵ１１は、物理ＣＰＵに依存するミドルウェアである場合（ステップＳ２でＹＥＳ）、ライセンス計算式をライセンスＤＢ５２から取得する（ステップＳ３）。ＣＰＵ１１は、仮想マシンの割り当て候補となる複数の物理サーバの構成情報を、構成管理情報ＤＢより取得する（ステップＳ４）。ＣＰＵ１１は、候補となる複数の物理サーバより処理対象となる物理サーバを選択し、取得したライセンス計算式及び選択した物理サーバの構成情報より、当該物理サーバに仮想マシンを割り当てた場合に必要となるミドルウェアのライセンス数を算出する（ステップＳ５）。ＣＰＵ１１は、選択した物理サーバの負荷状況をマシン情報ＤＢ６１から取得する（ステップＳ６）。ＣＰＵ１１は、ライセンス最適化判定を行う（ステップＳ７）。
【００２８】
図８に移り、ＣＰＵ１１はライセンス数の算出が１回目であるか否かを判定する（ステップＳ２１）。１回目であるか否かの判定は、例えば次のように行う。ＲＡＭ１２にフラグ領域を設け、処理開始時に１回目を示すフラグを立て、ステップＳ２１の判定後にフラグをクリアすれば良い。ＣＰＵ１１は１回目でないと判定した場合（ステップＳ２１でＮＯ）、ステップＳ５で算出したライセンス数が、一時記憶領域に記憶してある最適ライセンス数の暫定値より小さいかを判定する（ステップＳ２２）。ＣＰＵ１１はライセンス数が暫定値より小さいと判定した場合（ステップＳ２２でＹＥＳ）、処理対象として選択した物理サーバのＩＤ、算出したライセンス数、物理サーバの負荷を一時記憶領域に記憶する（ステップＳ２３）。ＣＰＵ１１は処理を呼び出し元に戻す。なお、一時記憶域はＲＡＭ１２に確保すれば良い。また、ＲＡＭ１２以外の構成管理情報ＤＢ５１、ライセンスＤＢ５２に一時領域を確保してもよい。さらにまた、当該一時領域に選択した物理サーバのＩＤ等が記憶されているか否かで、ステップＳ２１の１回目であるか否かの判定を行っても良い。１回目の場合は、物理サーバのＩＤ等が記憶されていないからである。
【００２９】
ＣＰＵ１１は、算出したライセンス数が、一次記憶領域に記憶してある最適ライセンス数の暫定値より等しいか又は大きい場合（ステップＳ２２でＮＯ）、ＣＰＵ１１は算出したライセンス数が暫定値と等しいかを判定する（ステップＳ２４）。ＣＰＵ１１は算出したライセンス数が暫定値と等しいと判定した場合（ステップＳ２４でＹＥＳ）、選択した物理サーバの負荷が、一時記憶域に記憶してある負荷の記憶値より小さいか否かを判定する（ステップＳ２５）。選択した物理サーバの負荷が記憶値よりも小さい場合（ステップＳ２５でＹＥＳ）、処理対象として選択した物理サーバのＩＤ、算出したライセンス数、物理サーバの負荷を一時記憶領域に記憶する（ステップＳ２３）。ＣＰＵ１１は処理を呼び出し元に戻す。ＣＰＵ１１は算出したライセンス数が暫定値と異なると判定した場合（ステップＳ２４でＮＯ）、処理を呼び出し元に戻す。ＣＰＵ１１は選択した物理サーバの負荷が記憶値よりも小さくない場合（ステップＳ２５でＮＯ）、処理を呼び出し元に戻す。
【００３０】
ＣＰＵ１１は１回目であると判定した場合（ステップＳ２１でＹＥＳ）、処理対象として選択した物理サーバのＩＤ、算出したライセンス数、物理サーバの負荷を一時記憶領域に記憶する（ステップＳ２３）。ＣＰＵ１１は処理を呼び出し元に戻す。
【００３１】
図７に戻り、ＣＰＵ１１は割り当て候補の全物理サーバについて処理したかを判定する（ステップＳ８）。ＣＰＵ１１は全物理サーバについて処理していないと判定した場合（ステップＳ８でＮＯ）、処理をステップＳ５に戻し、処理していない物理サーバについての処理を行う。ＣＰＵ１１は全物理サーバについて処理したと判定した場合（ステップＳ８でＹＥＳ）、処理をステップＳ９に進める。この場合、ＣＰＵ１１は、一時記憶域に記憶したサーバＩＤに対応した物理サーバに仮想マシンを移すことが最適であると判定したことになる。ＣＰＵ１１は、一時記憶域に記憶しているライセンス数を消費するものとして、ライセンスを確保し、ライセンスＤＢ５２を更新する（ステップＳ９）。なお、ステップＳ９で、未使用のライセンス数が必要ライセンス数よりも少ない場合は、ライセンス不足エラーとして、処理を中止し管理者に対して警告を出力してもよい。または、エラーとするが暫定的に仮想マシンの動作を許可し、ライセンスの追加購入を管理者に促すようにしても良い。
【００３２】
ＣＰＵ１１は、リソース管理サーバ２にライブマイグレーションを実行させ、仮想マシンは他の物理サーバへ移る（ステップＳ１０）。ＣＰＵ１１はライブマイグレーション実行後の仮想マシンで稼働中のミドルウェアの情報を取得する（ステップＳ１１）。ＣＰＵ１１は取得したミドルウェアの情報を元に、消費ライセンス数を求め、ステップＳ９で確保したライセンス数と差がある場合は、その差分をライセンスＤＢ５２に反映する（ステップＳ１２）。ＣＰＵ１１は処理を終了する。なお、ステップＳ１１で行う稼働中ミドルウェアの情報取得は、従来技術による情報収集ツールを用いて行えば良い。
【００３３】
ＣＰＵ１１は、動作モードがライセンス優先モードではない場合、すなわち、リソース優先モードである場合（ステップＳ１でＮＯ）、従来のライブマイグレーションを実行させる（ステップＳ１３）。また、ライセンス優先モードであっても、ライセンスが物理ＣＰＵ依存でない場合（ステップＳ２でＮＯ）も、従来のライブマイグレーションを実行させる。従来のライブマイグレーションとは、例えば、仮想マシンの移動先候補となるサーバの物理ＣＰＵの負荷を元に、移動先サーバを決定し、仮想マシンを移動することである。ＣＰＵ１１はライブマイグレーション実行後の仮想マシンで稼働中のミドルウェアの情報を取得する（ステップＳ１４）。ＣＰＵ１１は取得したミドルウェアの情報を元に、ライセンスＤＢ５２に記憶されている消費ライセンス数を更新する（ステップＳ１５）。ＣＰＵ１１は処理を終了する。なお、ライセンスが物理ＣＰＵ依存でない場合には、仮想マシンがどのようなスペックのサーバに割り当てられても、消費ライセンスは変わらないため、従来のライブマイグレーションを実行させる。
【００３４】
次に、本実施の形態１における割り当て処理の内容を、具体例を用いて説明する。図９は、割り当て処理の具体例を示すための説明図である。ここでは、物理サーバＡで動作している仮想マシン（ＶＭ）を、物理サーバＢ、Ｃ又はＤのいずれかにライブマイグレーションするものとする。物理サーバＢの物理ＣＰＵ数は２、割り当て処理実行時のＣＰＵ使用率は４０％とする。物理サーバＣの物理ＣＰＵ数は４、割り当て処理実行時のＣＰＵ使用率は４０％とする。物理サーバＤの物理ＣＰＵ数は２、割り当て処理実行時のＣＰＵ使用率は２０％とする。
【００３５】
また、クラウド管理サーバ１の動作モードは、ライセンス優先モード、仮想マシンで動作しているミドルウェアのライセンスは、物理ＣＰＵに依存しているものとする。ミドルウェアのライセンス計算式は、物理ＣＰＵ数×２であるとする。
【００３６】
クラウド管理サーバ１のＣＰＵ１１は、割り当て処理を開始する。ライセンス優先モードであるから、ＣＰＵ１１は、図７のステップＳ１の判定をＹＥＳとし、ステップＳ２の処理を行う。物理サーバＡで稼働する処理対象の仮想マシンでは、ライセンスの消費数が物理ＣＰＵ数依存のミドルウェアが動作中であるので、ＣＰＵ１１はステップＳ２の判定をＹＥＳとし、ステップＳ３の処理を行う。ＣＰＵ１１はライセンス計算式として、物理ＣＰＵ数×２を取得する（ステップＳ３）。ＣＰＵ１１はサーバ構成情報を取得する（ステップＳ６）。物理サーバＢ、Ｃ、Ｄの物理ＣＰＵ数として、それぞれ２、４、２を得る。ＣＰＵ１１は取得したライセンス計算式と物理ＣＰＵ数を用いて、サーバでの必要ライセンス数を計算する（ステップＳ５）。処理順は物理サーバＢ、Ｃ、Ｄの順であるとする。
【００３７】
まず、ＣＰＵ１１は物理サーバＢについてのライセンス数を４（＝２×２）と算出する。ＣＰＵ１１は物理サーバＢのＣＰＵ使用率をマシン情報ＤＢ６１より取得する（ステップＳ６）。上述のように物理サーバＢのＣＰＵ使用率は、４０％である。ＣＰＵ１１はライセンス最適化判定を行う（ステップＳ７）。物理サーバＢについての処理は１回目の処理であるので、ＣＰＵ１１は、図８のステップＳ２１の判定をＹＥＳとし、ステップＳ２３の処理を行う。ＣＰＵ１１は一時領域に、物理サーバＢのＩＤ、ライセンス数＝４、サーバ負荷＝４０％を記憶する（ステップＳ２３）。ＣＰＵ１１は、図７のステップＳ８の処理を行う。処理していないサーバとして、物理サーバＣ、物理サーバＤがあるので、ＣＰＵ１１はステップＳ８の判定をＮＯとし、処理をステップＳ５に戻す。
【００３８】
ＣＰＵ１１は物理サーバＣについての処理を行う。物理サーバＣでの必要ライセンス数は８である（ステップＳ５）。ＣＰＵ利用率は４０％である（ステップＳ６）。２回目の処理であるので、ＣＰＵ１１はステップＳ２１の判定をＮＯとし、ステップＳ２２の処理を行う。ここで、ライセンス数は８、暫定値は一時領域に記憶してある４であるから、ＣＰＵ１１は、ステップＳ２２の判定をＮＯとする。続いて、ＣＰＵ１１は、ステップＳ２４の判定もＮＯとし、処理をステップＳ８に戻す。処理していないサーバとして、物理サーバＤがあるので、ＣＰＵ１１はステップＳ８の判定をＮＯとし、処理をステップＳ５に戻す。
【００３９】
ＣＰＵ１１は物理サーバＤについての処理を行う。物理サーバＤでの必要ライセンス数は４である（ステップＳ５）。ＣＰＵ利用率は２０％である（ステップＳ６）。３回目の処理であるので、ＣＰＵ１１はステップＳ２１の判定をＮＯとし、ステップＳ２２の処理を行う。ライセンス数４、暫定値は４であるので、ＣＰＵ１１はステップＳ２２の判定をＮＯとし、ステップＳ２４の処理を行う。ＣＰＵ１１はステップＳ２４の判定をＹＥＳとして、ステップＳ２５の処理を行う。サーバ負荷は２０％、一時領域に記憶されている値は物理サーバＢの値４０％であるので、ＣＰＵ１１はステップＳ２５の判定をＹＥＳとし、ステップＳ２３の処理を行う。ここで、ＣＰＵ１１は物理サーバＤのＩＤ、ライセンス数：４、サーバ負荷：２０％を記憶する。ＣＰＵ１１は処理をステップＳ８に戻す。処理していないサーバはなくなったので、ＣＰＵ１１はステップＳ８の判定をＹＥＳとし、ステップＳ９の処理を行う。ＣＰＵ１１はミドルウェアのライセンス４を確保する（ステップＳ９）。ＣＰＵ１１はリソース管理サーバ２にライブマイグレーションを実行させる。すなわち、処理対象となっている物理サーバＡの仮想マシンを物理サーバＤにマイグレーションさせる（ステップＳ１２）。ＣＰＵ１１は、ステップＳ１１、ステップＳ１２を実行して処理を終了する。
【００４０】
上述の例では、ライブマイグレーションを例として説明したが、新規に物理サーバを払い出す場合、すなわち、ユーザからのリクエストに従い、新たに仮想マシンを物理サーバで稼働させる場合も、同様である。
【００４１】
上述のように、実施の形態１おいては、仮想マシンを物理サーバに割り当てる場合、必要ライセンス数が最も少なくなる物理サーバを選択して割り当てるので、ライセンスを効率的に使用することが可能となる。また、割り当て先の物理サーバで仮想マシンを稼働させた場合に必要となるライセンスを確保してから、仮想マシンを起動するので、ライセンスが足りない場合には、割り当てを中止し、ライセンス違反を未然に防ぐ事が可能となる。
【００４２】
（実施の形態２）
実施の形態２では、稼働中の物理サーバのライセンス使用状況も考慮して、割り当て処理を行う。実施の形態２のハードウェア構成は、実施の形態１と同様である。以下の説明では、実施の形態１と異なる部分を主として説明する。
【００４３】
図１０は実施の形態２におけるライセンスＤＢ５２のレコードレイアウトの一例を示す説明図である。実施の形態１のライセンスＤＢ５２と比べると、ＩＤ欄が追加されている。ＩＤ欄は、ライセンスを使用しているサーバのＩＤを記憶する。
【００４４】
図１１はサーバの割り当て処理の手順の一例を示すフローチャートである。実施の形態２における割り当て処理は、実施の形態１における割り当て処理（図７、８参照）と共通な部分があるため、図１１は処理の一部分を記載している。図７との関係は次のようになっている。図７のステップＳ２がＹＥＳの場合、図１１のステップＳ３１以降が実行される。ステップＳ３２がＮＯの場合、図７のステップＳ３へ進む。ステップＳ４１でＹＥＳの場合、図７のステップＳ９へ進み、ＮＯの場合、ステップＳ３へ進む。以下の説明においては、図１１に示している処理を主に説明する。
【００４５】
クラウド管理サーバ１のＣＰＵ１１は、処理対象ミドルウェアが物理ＣＰＵ依存のライセンスの場合（図７のステップＳ２でＹＥＳ）、ライセンスＤＢ５２より許容ＶＭ数を取得する（ステップＳ３１）。ＣＰＵ１１は、許容ＶＭ数が２以上であるか否かを判定する（ステップＳ３２）。許容ＶＭ数が２以上であれば、処理対象ミドルウェアを利用している仮想マシンが稼働している物理サーバに、処理対象となる仮想マシンを移動できる可能性があるからである。その場合、すでに物理サーバの物理ＣＰＵに応じてライセンスは確保されているから、新たなライセンスは必要とならず、ライセンスの節約になるからである。ＣＰＵ１１は、許容ＶＭ数が２未満であるの場合（ステップＳ３２でＮＯ）、処理を図７のステップＳ３へ移す。ＣＰＵ１１は、許容ＶＭ数が２以上であると判定した場合（ステップＳ３２でＹＥＳ）、ミドルウェアを使用しているサーバをライセンスＤＢ５２から取得する（ステップＳ３３）。
【００４６】
ＣＰＵ１１は、使用サーバで稼働している仮想マシンの数（稼働ＶＭ数）を取得する（ステップＳ３４）。ＣＰＵ１１は稼働ＶＭ数が許容ＶＭ数を下回っているかを判定する（ステップＳ３５）。ＣＰＵ１１は、稼働ＶＭ数が許容ＶＭ数を下回っている場合（ステップＳ３５でＹＥＳ）、使用サーバの負荷状況を取得する（ステップＳ３６）。ＣＰＵ１１は、すでに仮想マシンを割り当てる候補の使用サーバ（割り当て候補サーバ）についての情報が一時領域に記憶されているか否かを判定する（ステップＳ３７）。一時領域はＲＡＭ１２、ライセンスＤＢ５２等に予め確保してある。ＣＰＵ１１は、割り当て候補サーバの情報が記憶されていると判定した場合（ステップＳ３７でＹＥＳ）、記憶されている負荷状況（記憶値）より、ステップＳ３６で取得した負荷状況を示す値が下回っているか否かを判定する（ステップＳ３８）。ＣＰＵ１１は下回っていると判定した場合（ステップＳ３８でＹＥＳ）、使用サーバのＩＤ、すなわち物理サーバのＩＤと負荷状況を一時領域に記憶する（ステップＳ３９）。
【００４７】
ＣＰＵ１１は、負荷状況が記憶値以上である判定した場合（ステップＳ３８でＮＯ）、処理をステップＳ４０に進める。ＣＰＵ１１は、割り当て候補サーバの情報が記憶されていないと判定した場合（ステップＳ３７でＮＯ）、ＣＰＵ１１は処理をステップＳ３９に進める。ステップＳ３７でＮＯとなるのは、未だに割り当て候補サーバが見つかっていない場合である。ＣＰＵ１１は、稼働ＶＭ数が許容ＶＭ数以上の場合（ステップＳ３５でＮＯ）、処理をステップＳ４０に進める。
【００４８】
ＣＰＵ１１は、ステップＳ３３にて取得した使用サーバの全てについて処理したか否かを判定する（ステップＳ４０）。ＣＰＵ１１は、全サーバについての処理が完了していない判定した場合（ステップＳ４０でＮＯ）、処理をステップＳ３４に戻す。ＣＰＵ１１は、全てのサーバについて処理していると判定した場合（ステップＳ４０でＹＥＳ）、一時領域に割り当て候補サーバの情報が記憶されているか否かを判定する（ステップ４１）。ＣＰＵ１１は、割り当て候補サーバの情報が記憶されている場合（ステップＳ４１でＹＥＳ）、処理を図７のステップＳ９に進める。この場合、すでにミドルウェアのライセンスを使用している物理サーバに、仮想マシンを動作させることが可能となる。対象としているミドルウェアのライセンスは物理ＣＰＵに依存するライセンスであるので、新たなライセンスを必要せずに、仮想マシンを動作させることが可能となる。
【００４９】
ＣＰＵ１１は、割り当て候補サーバの情報が記憶されていないと判定した場合（ステップＳ４１でＮＯ）、処理を図７のステップＳ３へ進める。ステップＳ４１でＮＯとなるのは、いずれの物理サーバにおいても、動作している仮想マシンの数が許容ＶＭ数を以上であり、新たな仮想マシンの割り当てが許されない場合である。また、ＣＰＵ１１は、許容ＶＭ数が２未満である場合（ステップＳ３２でＮＯ）、処理をステップＳ３に進める。許容ＶＭ数が２未満である場合は、すでにミドルウェアのライセンスを使用している物理サーバには新たな仮想マシンを割り当てることができない場合である。このような場合には、実施の形態１と同様なアルゴリズムにて、仮想マシンを割り当てる物理サーバを決定する。
【００５０】
実施の形態２では、仮想マシンをマイグレーションする場合に、仮想マシンが使用するミドルウェアのライセンスが物理ＣＰＵに依存するときは、すでにミドルウェアが動作している物理サーバを割り当てるようにする。それにより、新たなライセンスを消費することなく、仮想マシンを動作させることが可能となり、ライセンスを効率的に利用することになる。
【００５１】
（実施の形態３）
実施の形態３では、仮想マシンでライセンスを必要とするミドルウェアが複数動作する場合におけるサーバの割り当て処理を行う。実施の形態３では複数のライセンスを扱う点が、実施の形態１との相違である。以下の説明においては、相違する点を主として説明する。
【００５２】
図１２及び図１３はサーバの割り当て処理の手順の一例を示すフローチャートである。図１２では図７に示した処理と共通なものがあるが、新たな符号を付与している。ミドルウェア管理サーバ１のＣＰＵ１１は、動作モードがライセンス優先モードであるか否かを判定する（ステップＳ５１）。ＣＰＵ１１は、動作モードがライセンス優先モードでない場合（ステップＳ５１でＮＯ）、従来のライブマイグレーションを実行する（ステップＳ７１）。ＣＰＵ１１は、ライセンスの実行後、稼働中ミドルウェアの情報を取得する（ステップＳ７２）。ＣＰＵ１１は取得した情報を元に、ライセンスＤＢ５２のライセンス数を更新し（ステップＳ７３）、処理を終了する。ステップＳ７１以降の処理は、実施の形態１のステップＳ１３以降と同様である。
【００５３】
ＣＰＵ１１は、動作モードがライセンス優先モードである場合（ステップＳ５１でＹＥＳ）、仮想マシンで動作するミドルウェアの中に、ライセンスが物理ＣＰＵに依存するものがあるか否かを判定する（ステップＳ５２）。ＣＰＵ１１は、物理ＣＰＵに依存するものがないと判定した場合（ステップＳ５２でＮＯ）、処理をステップＳ７１に進める。ステップＳ７１以降の処理は上述した通りである。
【００５４】
ＣＰＵ１１は、物理ＣＰＵに依存するものがあると判定した場合（ステップＳ５２でＹＥＳ）、仮想マシンを動作させる候補となる複数の物理サーバから処理対象となる物理サーバを選択する（ステップＳ５３）。ＣＰＵ１１は仮想マシンで動作させる複数のミドルウェアより処理対象とするミドルウェアを選択する（ステップＳ５４）。ＣＰＵ１１は処理対象のミドルウェアのライセンス計算式をライセンスＤＢ５２から取得する（ステップＳ５５）。ＣＰＵ１１は処理対象としている物理サーバの構成情報を構成情報管理ＤＢ５１から取得する（ステップＳ５６）。ＣＰＵ１１は取得したライセンス計算式と物理サーバの構成情報から、処理対象の物理サーバで処理対象のミドルウェアを動作させる場合に必要とするライセンス数を算出する（ステップＳ５７）。算出した値はＲＡＭ１２等に設けた一時領域に記憶しておく。ＣＰＵ１１は動作させる全てのミドルウェアについて処理したかを判定する（ステップＳ５８）。ＣＰＵ１１は、全てのミドルウェアについて処理していないと判定した場合（ステップＳ５８でＮＯ）、処理をステップＳ５４に戻し、未処理のミドルウェアについての処理を行う。
【００５５】
ＣＰＵ１１は、全てのミドルウェアについて処理したと判定した場合（ステップＳ５８でＹＥＳ）、各ミドルウェアが必要とするライセンス数を合算する（ステップＳ５９）。ＣＰＵ１１は、処理対象の物理サーバの負荷状況をマシン情報ＤＢ６１から取得する（ステップＳ６０）。ＣＰＵ１１は、物理サーバのＩＤ、必要ライセンス数の合計、サーバの負荷状況をＲＡＭ１２等に確保した一時領域に記憶する（ステップＳ６１）。
【００５６】
ＣＰＵ１１は、仮想マシンの割り当て候補とである全ての物理サーバについて処理したか否かを判定する（ステップＳ６２）。ＣＰＵ１１は、全ての物理サーバについて処理していないと判定した場合（ステップＳ６２でＮＯ）、処理をステップＳ５３に戻し、未処理の物理サーバについての処理を行う。ＣＰＵ１１は、全ての物理サーバについて処理したと判定した場合（ステップＳ６２でＹＥＳ）、一時領域に記憶されている各物理サーバの必要ライセンス数の合計値の中で最小値をとる物理サーバを選択する（ステップＳ６３）。ＣＰＵ１１は、選択した物理サーバが複数であるか否か判定する（ステップＳ６４）。ＣＰＵ１１は、選択した物理サーバが複数であると判定した場合（ステップＳ６４でＹＥＳ）、選択された物理サーバの負荷状況を一時領域から読み出し、負荷が最小の物理サーバを選択し（ステップＳ６５）、処理をステップＳ６７へ進める。
【００５７】
ＣＰＵ１１は、選択した物理サーバが複数でないと判定した場合（ステップＳ６４でＮＯ）、選択した物理サーバで必要とするライセンスを確保する（ステップＳ６７）。ＣＰＵ１１は、仮想マシンのライブマイグレーションを実行させる（ステップＳ６８）。ＣＰＵ１１は、ライブマイグレーション実行後に、仮想マシンで稼働中のミドルウェアの情報を取得する（ステップＳ６９）。ＣＰＵ１１は仮想マシンで消費しているミドルウェアのライセンス数を取得した情報から求め、確保したライセンス数と差分がある場合、その差分を反映させる（ステップＳ７０）。ＣＰＵ１１は処理を終了する。
【００５８】
実施の形態３では、仮想マシンでライセンスを必要とするミドルウェアが動作する場合に、必要なライセンス数が最小となる物理サーバに仮想マシンを割り当てることが可能となる。それにより、ライセンスの効率的な利用が可能となる。
【００５９】
なお、ステップＳ５９で各ミドルウェアが必要とするライセンス数を単純合算したものを物理サーバが必要とするライセンス数としたが、それに限らない。各ミドルウェアに重み付けを行い、重みと必要するライセンス数とを掛けた値を合算したものを、物理サーバが必要とするライセンス数としても良い。ミドルウェアによって、ライセンス料が大きく異なる場合は、重み付けをすることにより、ライセンス数ではなく、ライセンス料がより少なくなるような物理サーバを選択することが可能となる。各ミドルウェアの重みは、ライセンスＤＢ５２に予め記憶すれば良い。
【００６０】
また、物理サーバの負荷状況は、必要ライセンス数が同じとなる割り当て候補サーバが複数の場合にのみ考慮している。それに限らず、負荷状況を必要ライセンス数の合算を行う際の重みとしても良い。
【００６１】
一方、図１３のステップ６７でライセンスを確保する際、あるミドルウェアの未使用ライセンス数が必要ライセンス数に満たない場合は、ライセンス不足エラーとして、処理を中止し管理者に対して警告を出力してもよい。または、エラーとするが暫定的に仮想マシンの動作を許可し、ライセンスの追加購入を管理者に促すようにしても良い。
【００６２】
図１４はクラウド管理サーバ１の機能構成の一例を示すブロック図である。図１４は実施の形態１から３に係るクラウド管理サーバ１の機能構成を示している。クラウド管理サーバ１は、特定部１１ａ、取得部１１ｂ、算出部１１ｃ、割当部１１ｄ、選択部１１ｅを含む。ＣＰＵ１１が制御プログラムを実行することにより、クラウド管理サーバ１は以下のように動作する。
【００６３】
特定部１１ａは仮想マシンで実行するソフトウェアを特定する。取得部１１ｂは、特定したソフトウェアのライセンス消費数を算出する計算式、及び仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得する。算出部１１ｃは取得した計算式及びサーバコンピュータの情報に基づいて、各サーバコンピュータのライセンス消費数を算出する。割当部１１ｄは算出したライセンス消費数が最小であるサーバコンピュータに、前記仮想マシンを割り当てる。選択部１１ｅは、ライセンス消費数が最小であるサーバコンピュータが複数の場合、負荷情報に基づいて、負荷が最も少ないサーバコンピュータを選択する。
【００６４】
上述のライセンスＤＢ５２へのライセンスの登録は、管理者が手入力で行う他に、インターネットなどのネットワークを介してインポートしても良い。また、ＣＤ−ＲＯＭなどの媒体からインポートしても良い。
【００６５】
ライセンスＤＢ５２には、情報処理システムの管理者が登録したライセンスだけではなく、仮想マシンが動作開始後に、ユーザが任意にインストールしたミドルウェアのライセンスも登録し、管理するようにしても良い。
【００６６】
ミドルウェア毎に必要ライセンス数を算出する処理を定期的に実行し、算出した必要ライセンス数とライセンスＤＢ５２とを参照し、動作しているミドルウェア毎にライセンスが不足していないかを確認してもよい。そして、ライセンスが不足している場合には、管理者にその旨の警告を行うようにしても良い。
【００６７】
また、管理するライセンスはミドルウェアのライセンスとしたが、それに限らない。アプリケーションソフトウェア、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のライセンスも管理対象としても良い。
【００６８】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００６９】
以上の実施の形態１乃至３を含む実施形態に関し、さらに以下の付記を開示する。
【００７０】
（付記１）
仮想マシンで実行するソフトウェアを特定し、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得し、
取得した計算式及びサーバコンピュータの情報に基づいて、各サーバコンピュータのライセンス消費数を算出し、
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する制御を行う
処理をコンピュータに実行させる割り当てプログラム。
【００７１】
（付記２）
前記サーバコンピュータの情報は負荷情報を含み、
前記ライセンス消費数が最小であるサーバコンピュータが複数の場合、前記負荷情報に基づいて、負荷が最も少ないサーバコンピュータを選択し、
選択したサーバコンピュータに、前記仮想マシンを割り当てる
処理をコンピュータに実行させる付記１に記載の割り当てプログラム。
【００７２】
（付記３）
前記サーバコンピュータの情報には物理構成情報を含み、
前記ライセンス消費数を算出する計算式には、物理構成情報に係る変数が含まれており、
前記物理構成情報に基いて、前記ライセンス消費数を算出する
処理をコンピュータに実行させる付記１又は２に記載の割り当てプログラム。
【００７３】
（付記４）
前記特定したソフトウェアのライセンスが物理ＣＰＵに対応付られる場合には、前記特定したソフトウェアがすでに動作する他の仮想マシンが割り当てられたサーバコンピュータの物理ＣＰＵに、前記仮想マシンを割り当てる
処理をコンピュータに実行させる付記１又は２に記載の割り当てプログラム。
【００７４】
（付記５）
前記算出したライセンス消費数を仮の消費数として出力し、
前記仮想マシンを割り当てた後に、該仮想マシンで動作するソフトウェアの情報を取得し、
取得したソフトウェアの情報からライセンス消費数を再度算出し、
再度算出したライセンス消費数と前記仮の消費数とが一致しない場合には、再度算出したライセンス消費数を、前記仮想マシンが消費するライセンス数として出力する
処理をコンピュータに実行させる付記１から４のいずれか１つに記載の割り当てプログラム。
【００７５】
（付記６）
仮想マシンで実行するソフトウェアを特定する特定部、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得する取得部、
取得した計算式及びサーバコンピュータの情報に基づいて、各サーバコンピュータのライセンス消費数を算出する算出部、並びに
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する割当部
を備える割り当て装置。
【００７６】
（付記７）
仮想マシンが割り当てられ、割り当てられた仮想マシンを動作させる複数のサーバコンピュータ、並びに
仮想マシンで実行するソフトウェアを特定する特定部、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な前記複数のサーバコンピュータの情報を取得する取得部、
取得した計算式及びサーバコンピュータの情報に基づいて、各サーバコンピュータのライセンス消費数を算出する算出部、並びに
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する割当部を有する割り当て装置を備える
割り当てシステム。
【００７７】
（付記８）
サーバコンピュータに仮想マシンを割り当てるコンピュータが、
仮想マシンで実行するソフトウェアを特定し、
特定したソフトウェアのライセンス消費数を算出する計算式、及び前記仮想マシンを割り当てることが可能な複数のサーバコンピュータの情報を取得し、
取得した計算式及びサーバコンピュータの情報に基づいて、各サーバコンピュータのライセンス消費数を算出し、
前記複数のサーバコンピュータの内のサーバコンピュータであって、前記複数のサーバコンピュータの内の他のサーバコンピュータよりも算出したライセンス消費数が少ないサーバコンピュータを優先して前記仮想マシンの割り当て先に決定する
割り当て方法。
【符号の説明】
【００７８】
１  クラウド管理サーバ（割り当て装置、コンピュータ）
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  通信部
１５  Ｉ／Ｆ部
１６  読取り部
２  リソース管理サーバ
３  リソースプール
４  ユーザ端末
５１  構成情報管理ＤＢ
５２  ライセンスＤＢ
６１  マシン情報ＤＢ
【図１】
0006365027.tif 000002
【図２】
0006365027.tif 000003
【図３】
0006365027.tif 000004
【図４】
0006365027.tif 000005
【図５】
0006365027.tif 000006
【図６】
0006365027.tif 000007
【図７】
0006365027.tif 000008
【図８】
0006365027.tif 000009
【図９】
0006365027.tif 000010
【図１０】
0006365027.tif 000011
【図１１】
0006365027.tif 000012
【図１２】
0006365027.tif 000013
【図１３】
0006365027.tif 000014
【図１４】
0006365027.tif 000015