(57)【特許請求の範囲】
【請求項１】
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンを生成する仮想マシン実行装置と，前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し，
前記仮想マシン管理装置は，
前記利用者の指定料金を示す情報が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量を示す情報が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量を示す情報が格納された使用資源量テーブルと，
前記仮想マシンに割り当てる各ハードウェア資源量を変更する場合に基準となる所定単位を前記各ハードウェア資源量毎に定めた情報が格納された所定単位テーブルと，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加した場合の仮想マシンの第１使用料金を計算し，前記計算した前記第１使用料金と前記指定料金とを比較し，前記計算した前記第１使用料金が前記指定料金以下の場合には，前記ハードウェア資源量を前記所定単位増加する制御部とを有する
ことを特徴とする情報処理システム。
【請求項２】
請求項1において，
前記仮想マシン管理装置は，さらに，前記割り当てテーブルに格納された前記各ハードウェア資源量に対応して定められた各ハードウェア資源量を示す情報が格納された上限資源量格納テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記仮想マシンが使用している各ハードウェア資源量の中で，前記上限資源量格納テーブルのハードウェア資源量以上のハードウェア資源量を前記第1のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
【請求項３】
請求項1において，
前記仮想マシン管理装置の前記制御部は，前記計算した前記第１使用料金が前記指定料金を超え，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められた余力ハードウェア資源量以下の第2のハードウェア資源量を検出した場合，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加し，かつ前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第2のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第２のハードウェア資源量に対応する所定単位減少した場合の仮想マシンの第２使用料金を計算し，前記計算した前記第２使用料金と前記指定料金とを比較し，前記計算した前記第２使用料金が前記指定料金以下の場合には，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加し，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第2のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第２のハードウェア資源量に対応する所定単位減少する
ことを特徴とする情報処理システム。
【請求項４】
請求項3において，
前記仮想マシン管理装置は，さらに，前記割り当てテーブルに格納された前記各ハードウェア資源量に対応して定められた各ハードウェア資源量を示す情報が格納された下限資源量格納テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記仮想マシンが使用している各ハードウェア資源量の中で，前記下限資源量格納テーブルのハードウェア資源量以下のハードウェア資源量を前記第2のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
【請求項５】
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金を示す情報が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量を示す情報が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量を示す情報が格納された使用資源量テーブルと，
前記仮想マシンに割り当てる各ハードウェア資源量を変更する場合に基準となる所定単位を前記各ハードウェア資源量毎に定めた情報が格納された所定単位テーブルとを有する仮想マシン管理装置の管理プログラムは，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加した場合の仮想マシンの第１使用料金を計算し，前記計算した前記第１使用料金と前記指定料金とを比較し，前記計算した前記第１使用料金が前記指定料金以下の場合には，前記ハードウェア資源量を前記所定単位増加する処理をコンピュータに実行させる
ことを特徴とする管理プログラム。
【請求項６】
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金を示す情報が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量を示す情報が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量を示す情報が格納された使用資源量テーブルと，
前記仮想マシンに割り当てる各ハードウェア資源量を変更する場合に基準となる所定単位を前記各ハードウェア資源量毎に定めた情報が格納された所定単位テーブルとを有する仮想マシン管理装置で実行される管理方法は，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加した場合の仮想マシンの第１使用料金を計算し，前記計算した前記第１使用料金と前記指定料金とを比較し，前記計算した前記第１使用料金が前記指定料金以下の場合には，前記ハードウェア資源量を前記所定単位増加する
ことを特徴とする管理方法。
【請求項７】
仮想化されたハードウェア資源上で複数の利用者が要求する複数の仮想マシンを生成する仮想マシン実行装置と，前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し，
前記仮想マシン管理装置は，
前記複数の利用者毎の指定料金を示す情報が格納された複数の指定料金テーブルと，
前記指定料金に対応して定められた前記複数の仮想マシンに割り当てる各ハードウェア資源量を示す情報が格納された複数の割り当てテーブルと，
前記複数の仮想マシンが使用している各ハードウェア資源量を示す情報を格納する複数の使用資源量テーブルと，
前記複数の仮想マシンに割り当てる各ハードウェア資源量を変更する場合に基準となる所定単位を前記各ハードウェア資源量毎に定めた情報が格納された複数の所定単位テーブルと，
前記複数の仮想マシンの各々が情報処理を実行している過程において，前記複数の仮想マシンの各々が使用している各ハードウェア資源量の中で，前記複数の割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記複数の仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記複数の所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加した場合の仮想マシンの第１使用料金を計算し，前記計算した前記第１使用料金と前記指定料金とを比較し，前記計算した前記第１使用料金が前記指定料金以下の場合には，前記ハードウェア資源量を前記所定単位増加する制御部とを有する
ことを特徴とする情報処理システム。
【請求項８】
情報処理装置であって，
仮想マシンの利用者から指定料金を受け付け，前記指定料金に従い割り当て可能なハードウェア資源量を下回る第１ハードウェア資源量を前記仮想マシンに割り当て，前記第１ハードウェア資源量のうち前記仮想マシンが使用している第２ハードウェア資源量を監視する制御部と，
前記仮想マシンに割り当てた前記第１ハードウェア資源量を変更する場合に適用する単位量を定めた情報を記憶する記憶部とを有し，
前記制御部は，
監視している前記第２ハードウェア資源量が前記第１ハードウェア資源量に対応して定められる第３ハードウェア資源量以上になる場合に，前記仮想マシンに割り当てた前記第１ハードウェア資源量を前記単位量に基づいて変更した場合に前記仮想マシンの利用に適用する利用料金が前記指定料金以下であれば，前記第１ハードウェア資源量を前記単位量に基づき増加する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，情報処理システム，仮想マシン管理プログラム，仮想マシン管理方法に関する。
【背景技術】
【０００２】
ハードウェア資源やソフトウェア資源を，ネットワークを介して利用者に提供するサービスが提案されている(特許文献1，2参照)。このサービスは，クラウドサービス(IaaS:Infrastructure as a Service)とも呼ばれる。クラウドサービスは，コンピュータシステムを構築および稼動させるための基盤(仮想マシンやネットワークなどのインフラ)そのものを，例えばインターネット経由のサービスとして利用者に提供するものである。クラウドサービスとしては，例えば，Amazon EC2(商品名)や， Amazon S3(商品名)や，Nifty Cloud(商品名)などが多数提供されている。
【０００３】
クラウドサービスの提供業者(以下，提供業者と記す)は，仮想マシン(VM:Virtual Machine)を実行する仮想マシン実行装置を構築し，これらをインターネットなどのネットワークに接続する。提供業者は，ネットワークを介してこの仮想マシンをクラウドサービスの利用者に利用させて，利用料金を得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００４−５０３０１１号公報
【特許文献２】特開２０１１−０７６５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クラウドサービスの提供業者(以下，提供業者と記す)は，例えば，複数のスペックレベル1〜スペックレベル11までの異なるスペックレベル(以下，レベルと記す)の仮想マシンをクラウドサービスの利用者(以下，利用者と記す)に提供する。なお，レベル値が大きいほど高スペックでり，高スペックのクラウドサービス程，使用料金が高額である。
【０００６】
利用者は，提供業者の設定したレベル1〜レベル11の中から，所望のレベルを選択して，選択したレベルに対応するクラウドサービスを利用する(クラウドに業務を構築するとも言う)。
【０００７】
利用者が，業務内容に応じた最適なレベルを見つけるためには，まず選択したレベルで業務のレスポンスを測定し，レスポンス不足であればレベルを上げる，または，十分なレスポンスであればレベルを下げる。このようにして，利用者自らが最適なレベルを見つける必要がある。
【０００８】
しかし，業務内容は時間，曜日，日で変動する可能性がある。そのため，利用者自身が，ピーク性能の時間を特定し，ピーク性能に合わせた合わせた最適なレベルを見極めることは，極めて困難である。そこで，利用者は，予想するピーク性能に合わせてレベルを選択するしかなかった。
【０００９】
しかし，予想するピーク性能にあわせてレベルを選択すると必然的に高レベルを選択することになり，その結果，使用料金が高額になり，利用者にとり経済的負担が大きくなる。これは，現状のクラウドサービスでは仮想マシンに割り当てるCPUやメモリのスペックに基づき，各レベルに対応する使用料金が決められているからである。例えば，レベルが高くなるに従って，仮想マシンに割り当てられるCPUのクロック数，メモリ量，ネットワーク帯域が高くなり，使用料金が高額になる。
【００１０】
ここで，ユーザが，使用料金との兼ね合いから高レベルではない中レベルまたは低レベルを選択した状態を想定する。この場合，例えばディスクIO(Input Output)を大量に行う業務(情報処理)や，ネットワークIOを大量に実行する業務ではディスクIOやネットワークIOが業務のボトルネックネック(IOネック)になる可能性がある。このようなボトルネックが発生すると，業務が遅延する。その結果，利用者は，ストレスを感じる。
【００１１】
また，ディスクIOやネットワークIOをほとんど実行しない業務の場合，業務に必要なスペックより多くのスペック(ハードウェア資源，リソース)が利用者の仮想マシンに割当てられ，料金が高くなっている可能性がある。
【００１２】
以上説明したように，利用者自らが，利用者が指定した指定料金以下に収めつつ，仮想マシンに割り当てた各種ハードウェア資源量を適切に調整することは困難である。
【００１３】
一方，このクラウドサービスのハードウェア資源量には限りがある。そのため，提供業者は，複数の利用者が利用する複数の仮想マシンに割り当てるハードウェア資源量を最適に調整することが望ましい。
【００１４】
したがって，本発明の目的は，仮想マシンの使用料金を利用者が指定した指定料金以下に収めつつ，利用者の状況に応じて，仮想マシンに割り当てた各種ハードウェア資源量を適切に調整することにある。
【課題を解決するための手段】
【００１５】
情報処理システムの第1の側面は，仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンを生成する仮想マシン実行装置と，前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し，
前記仮想マシン管理装置は，
前記利用者の指定料金を示す情報が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量を示す情報が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量を示す情報が格納された使用資源量テーブルと，
前記仮想マシンに割り当てる各ハードウェア資源量を変更する場合に基準となる所定単位を前記各ハードウェア資源量毎に定めた情報が格納された所定単位テーブルと，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記仮想マシンに割り当てる各ハードウェア資源量のうち前記第1のハードウェア資源量に対応するハードウェア資源量を，前記所定単位テーブルの前記各ハードウェア資源量毎に定めた所定単位のうち前記第1のハードウェア資源量に対応する所定単位増加した場合の仮想マシンの第１使用料金を計算し，前記計算した前記第１使用料金と前記指定料金とを比較し，前記計算した前記第１使用料金が前記指定料金以下の場合には，前記ハードウェア資源量を前記所定単位増加する制御部とを有する。
【発明の効果】
【００１６】
第1の側面によれば，ボトルネックとなるハードウェア資源量を検出して，仮想マシンの使用料金を利用者が指定した指定料金以下に収まるように，ボトルネックとなるハードウェア資源量を増加する。そのため，指定料金以下に収めつつ，この仮想マシンに割り当てた各種ハードウェア資源量を適切に調整することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態のクラウドシステムのハードウェアを説明するブロック図である。
【図２】仮想マシン実行装置を説明するブロック図である。
【図３】管理サーバ装置を説明するブロック図である。
【図４】仮想マシンの生成を説明する構成図である。
【図５】仮想マシンの作成を説明するテーブルを示した図である。
【図６】ボトルネックを解消する処理を詳細に説明する構成図である。
【図７】仮想マシンに割り当てるハードウェア資源量の変更処理を説明するテーブルである。
【図８】仮想マシンに割り当てるハードウェア資源量の変更処理を説明するテーブルである。
【図９】料金計算を説明する図である。
【図１０】仮想マシンに割り当てるハードウェア資源量の変更処理を説明するテーブルである。
【図１１】現在の時刻，仮想マシンに割り当てられたハードウェア資源量などが格納されたテーブルである。
【図１２】利用者に送信する，仮想マシンに割り当てられたハードウェア資源量，仮想マシンの時間単位の使用料金を示した図である。
【図１３】図4で説明した仮想マシンの生成処理の流れについて説明するフロー図である。
【図１４】仮想マシンに割り当てるハードウェア資源量の変更処理の流れを説明するフロー図である。
【図１５】図14のフロー図における一部ステップの詳細フロー図である。
【図１６】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第1のフロー図である。
【図１７】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第2のフロー図である。
【図１８】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第3のフロー図である。
【図１９】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第4のフロー図である。
【図２０】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第5のフロー図である。
【図２１】仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第6のフロー図である。
【発明を実施するための形態】
【００１８】
[クラウドシステムの構成]
図1は，本実施の形態のクラウドシステムのハードウェアを説明するブロック図である。
【００１９】
情報処理システムであるクラウドシステム1は，仮想マシンを実行する複数の仮想マシン実行装置10〜10nと，複数の仮想マシン実行装置10〜10nを管理する管理サーバ装置20と，管理サーバ装置20とネットワーク40とのインターフェイス機能を実行するクラウドサービスポータル30とを有する。管理サーバ装置20は，例示であり，サーバ装置ではなく，例えば仮想マシンを管理する装置(仮想マシン管理装置)であればよい。
【００２０】
複数の仮想マシン実行装置10〜10nと管理サーバ装置20や，管理サーバ装置20とクラウドサービスポータル30はLAN(Local Area Network )などのネットワークを介して接続している。
【００２１】
仮想マシン実行装置10は，物理構成としてハードウェア11を有する。
【００２２】
仮想マシン121〜12nは，仮想化されたハードウェアを実行するもので，仮想化ソフトウェア13や管理サーバ装置20により起動される。
【００２３】
仮想化ソフトウェア13は，後述する図5で説明するようにハードウェア11を仮想化し，複数の仮想マシン121〜12nに対して仮想化されたハードウェア11を割り当て，仮想マシン121〜12nを動作させるための基盤ソフトウェアである。仮想化ソフトウェア13としては，例えば， VMware ESX(商品名)，Microsoft Hyper-V(商品名)，Xen(商品名)がある。
【００２４】
図1においては，複数の仮想マシン実行装置10〜10nが設けられ，管理サーバ装置20がこれらを管理している。
【００２５】
管理サーバ装置20は，仮想マシン実行装置10〜10nに接続し，仮想化ソフトウェアと連携して，複数の仮想マシン群を管理する。管理サーバ装置20としては，例えば，VMware vCenter Server(商品名)，Microsoft SCVMM(商品名)がある。管理サーバ装置20は，さらに，クラウドサービスポータル30に接続する。
【００２６】
クラウドサービスポータル30は，いわゆるウェブサーバ装置であり，ネットワーク40を介して利用者からの情報処理要求を受け付け，管理サーバ装置20に転送する。管理サーバ装置20は，この情報処理要求を利用者の仮想マシンに実行させ，処理結果を得る。管理サーバ装置20は，得た処理結果をクラウドサービスポータル30に送信する。クラウドサービスポータル30は，受信した処理結果を利用者の利用者端末システム50に送信する。
【００２７】
また，クラウドサービスポータル30は，仮想マシン121〜12nの稼働状況を監視したり，仮想マシン121〜12nの操作を行うインターフェイス(入り口)として機能する。なお，利用者が，提供業者とクラウドサービスの使用契約などを結ぶ際にも，クラウドサービスポータル30が利用される。
【００２８】
ネットワーク40は，例えば，インターネットやVPN(Virtual Private Network)などのネットワークである。
【００２９】
利用者端末システム50は，クラウドシステム1の利用者が使用する複数の端末装置から構成される。利用者端末システム50は，ネットワーク40を介して，クラウドサービスポータル30に接続する。利用者は，この利用者に割り当てられた仮想マシン(例えば,仮想マシン121)に対して各種情報処理を行わせ，その処理結果を取得する。
【００３０】
図2は，仮想マシン実行装置10のハードウェアブロック図である。なお，他の仮想マシン実行装置10nなども同様の構成を有する。
【００３１】
仮想マシン実行装置10のハードウェア11は，例えばバス(図示しない)を介して相互に接続された，複数のCPU(Central Processing Unit)ユニット101，102と，メモリ103を有する。さらに，ハードウェア11は，複数のハードディスクドライブから構成される記録装置(以下，HDD(Hard Disk Drive)と言う)104と，ネットワークインターフェイスカード(以下NIC(Network Interface Card)と言う)105とを有する。CPUユニット101は複数のコア1，2，CPUユニット102は複数のコア3，4を有する，いわゆるデュアルコアプロセッサである。以下，CPUユニットをCPUと記す。
【００３２】
ここで，ハードウェア資源量とは，これらハードウェア資源の性能(スペック)，すなわち，CPUのコア数，CPUのクロック数，メモリ量，ハードディスクドライブの帯域，物理ネットワークの帯域である。
【００３３】
仮想マシン実行装置10は，NIC105を介して，管理サーバ装置20と接続する。
【００３４】
仮想化ソフトウェア13は，例えばCPU101により実行され，仮想マシン生成部131，性能情報収集部132，性能情報通知部133を有するソフトウェアである。
【００３５】
仮想マシン生成部131は，管理サーバ装置20からの指示に応答して，所定のスペックで仮想マシンを作成する。性能情報収集部132は，管理サーバ装置20からの指示に応答して，例えば仮想マシン121の性能情報を収集する。性能情報通知部133は，性能情報収集部132が収集した仮想マシン121の性能情報を管理サーバ装置20に通知する。なお，仮想マシン生成部131，性能情報収集部132，性能情報通知部133の詳細については後述する。
【００３６】
仮想マシン生成部131，性能情報収集部132，性能情報通知部133として機能するプログラムは，HDD104に記録される。
【００３７】
仮想マシン実行装置10の起動時に，CPU101が，これらのプログラムをHDD104から読み出してメモリ103に展開することにより，これらのプログラムがソフトウェアモジュールとして機能する。
【００３８】
図3(A)は，管理サーバ装置20のハードウェアブロック図である。管理サーバ装置20は，例えばバスBを介して相互に接続された，コンピュータであるCPU(制御部)201と，メモリ202と，HDD203と，NIC204とを有する。管理サーバ装置20は，NIC204を介して，仮想マシン実行装置10，クラウドサービスポータル30と接続する。メモリ202には，後述するようにハードウェア資源量の増減処理に必要な各種テーブルT1,T2,T3(図5参照)，T11，T12(図7参照)，T21，T22(図8参照)，T31,T32,T33(図10参照)が記憶される領域が確保される。
【００３９】
図3(B)は，管理サーバ装置20が実行するソフトウェアモジュールを説明するブロック図である。
【００４０】
管理サーバ装置20が実行するソフトウェアモジュールは，管理制御部211，最小スペック仮想マシン生成指示部212，性能情報収集指示部213，性能情報取得部214，性能不足検出部215，性能余力検出部216，性能アップ制御部217，性能ダウン制御部218，料金計算部219，ログ送信部220，性能アップ可能判定部221，性能ダウン可能判定部222であり，例えばCPU201により実行される。
【００４１】
管理制御部211は，仮想マシンの管理制御を行い，最小スペック仮想マシン生成指示部212は，最小スペックの仮想マシンを生成するように仮想マシン生成部131(図2参照)に指示する。性能情報収集指示部213は，性能情報収集部132(図2参照)に仮想マシンの性能情報の収集を指示し，性能情報取得部214は，性能情報通知部133(図2参照)から性能情報を取得する。
【００４２】
性能不足検出部215は，仮想マシンが使用している各ハードウェア資源量の中でボトルネックとなるハードウェア資源量を検出し，性能余力検出部216は，この各ハードウェア資源量の中で余力があるハードウェア資源量を検出する。
【００４３】
性能アップ制御部217は，仮想マシンに割り当てるハードウェア資源量を所定単位分増加するように，仮想化ソフトウェア13に指示する。性能ダウン制御部218は，仮想マシンに割り当てるハードウェア資源量を所定単位分減少するように，仮想化ソフトウェア13に指示する。
【００４４】
料金計算部219は，仮想マシンの使用料金を計算し，ログ送信部220は，ロギングした仮想マシンの使用料金などを利用者に送信する。
【００４５】
性能アップ可能判定部221は，仮想マシンに割り当てるハードウェア資源量を増加することができるか判定し，性能ダウン可能判定部222は，仮想マシンに割り当てるハードウェア資源量を減少することができるか判定する。
【００４６】
管理制御部211，最小スペック仮想マシン生成指示部212，性能情報収集指示部213，性能情報取得部214，性能不足検出部215，性能余力検出部216，性能アップ制御部217，性能ダウン制御部218，料金計算部219，ログ送信部220，性能アップ可能判定部221，性能ダウン可能判定部222として機能するプログラムは，HDD203に記録される。
【００４７】
管理サーバ装置20の起動時に，CPU201が，これらのプログラムをHDD203から読み出してメモリ202に展開することにより，これらのプログラムがソフトウェアモジュールとして機能する。
【００４８】
[仮想マシンの生成]
図4，図5に基づき，仮想化ソフトウェア13が実行する仮想マシンの生成について説明する。
【００４９】
図4は，仮想マシンの生成を説明する構成図である。
【００５０】
図5は，仮想マシンの生成を説明するテーブルを示した図である。
【００５１】
以下，図4の説明において，適宜，図2に示した仮想マシン実行装置10のブロック図，図3に示した管理サーバ装置20のブロック図を適宜参照する。
【００５２】
図4の利用者端末システム50の(1): 利用者は，利用者端末システム50を操作し，所定のスペック料金を指定して，仮想マシンの作成指示をクラウドサービスポータル30に行う(矢印(A1))。このスペック料金は，例えば，利用者が支払う時間単位の仮想マシン使用料金で表される。利用者は，例えば，複数の異なる使用料金が表示されたメニュー画面の中から，仮想化マシンの使用料金を指定する。
【００５３】
クラウドサービスポータル30は，仮想マシンの作成指示と，指定した使用料金(以下，指定料金と記す)とを管理サーバ装置20に送信する。
【００５４】
管理サーバ装置20の管理制御部211は，クラウドサービスポータル30から送信された仮想マシンの作成指示と，指定料金を受信し，指定料金を管理サーバ装置20のメモリ202に記憶する。
【００５５】
図5(A)は，利用者の指定料金が格納された指定料金テーブルT1を示す図である。図5(A)においては，指定料金として，例えば1時間当たり40円(最大料金)が格納されている。指定料金テーブルT1は，管理サーバ装置20のメモリ202に記憶される(図3参照)。
図4の説明に戻る。
【００５６】
図4の管理サーバ装置20の(2-1):管理サーバ装置20の最小スペック仮想マシン生成指示部212は，仮想マシン実行装置10の仮想マシン生成部131に所定のスペック(最低スペック)で仮想マシンを作成するように指示する(矢印(A2-1))。ここで，所定のスペックとは，指定料金に対応して定められた所定のハードウェア資源量を意味し，例えば最小のハードウェア資源量である。このように最小のハードウェア資源量で仮想マシンを作成するのは，図6以降で説明するように，ボトルネックとなるハードウェア資源量を素早く特定し，ハードウェア資源量を適切に調整するためである。
【００５７】
図5(B)は，指定料金に対応して定められた仮想マシン121に割り当てる各ハードウェア資源量(最小のハードウェア資源量)が格納された割り当てテーブルT2を示す図である。割り当てテーブルT2は，管理サーバ装置20のメモリ202に記憶される(図3参照)。
【００５８】
図5(B)の割り当てテーブルT2には，生成対象となる仮想マシンに割り当てるCPUのコア数(core)と，CPUのクロック数(clock)と，メモリのメモリ量(memory)と，HDDのディスク帯域(diskband)と，NICのネットワーク帯域(Networkband) と，HDDのディスクIO(Input Output)頻度(DiskIO)とにおける最小のハードウェア資源量が格納されている。なお，ディスクIO頻度のIOPS(Input Output Per Second)は，HDDが1秒当たりに処理できるI/Oアクセスの数を示す。
【００５９】
この最小のハードウェア資源量は，提供業者により，予め定められているとする。
【００６０】
図4の仮想化ソフトウェア13の(2-2): 仮想化ソフトウェア13 の仮想マシン生成部131は，テーブルT2に示された最小のハードウェア資源量で仮想マシンを作成する。仮想マシン生成部131により生成された仮想マシンは，この最小のハードウェア資源量の範囲内で動作する。
【００６１】
図5(B)に示したテーブルの例では，仮想マシン生成部131は，CPUのコア数が1，クロック数が1.5GHz，メモリ量が4GB，HDDのディスク帯域が100MB/Sec，ネットワーク帯域が1Gbps，ディスクIO頻度が400/IOPSのハードウェア資源量を1つの仮想マシンに割り当て，仮想マシンを生成する。仮想マシン生成部131が，生成した仮想マシンを，仮想マシン121とする。
【００６２】
仮想マシン121は，この割り当てられたハードウェア資源量の範囲内で，仮想化ソフトウェア13からハードウェア資源量が分配され，分配されたハードウェア資源量により，各種情報処理を実行する。以下,仮想マシン121に割り当てられたハードウェア資源量を割り当てハードウェア資源量と適宜記す。
【００６３】
この場合，仮想マシン実行装置10の仮想マシン生成部131は，CPU101のコア1を仮想マシン121に割り当て，CPU101のクロック数1.5GHzを割り当てる。なお，仮想マシン121に割り当てられたクロック数1.5GHzとは，例えば，CPU101の最大クロック数が例えば3.0GHzの場合，仮想マシン121は，1秒間の間に，時分割された0.5秒分(3.0/1.5)，CPU101を占有できることを意味している。
【００６４】
さらに，仮想マシン実行装置10の仮想マシン生成部131は，メモリ103のメモリ量4.0GBを仮想マシン121に割り当て，HDD104のディスク帯域100MB/Secを仮想マシン121に割り当て，NIC105のネットワーク帯域1Gbpsを仮想マシン121に割り当てる。なお，仮想マシン121に割り当てられたメモリ量4.0GBとは，例えば，メモリ103の最大メモリ量が8GBの場合，仮想マシン121は，メモリ103の4GBのメモリ量を占有できることを意味している。
【００６５】
仮想マシン121に割り当てられたディスク帯域100MB/Secとは，例えば，HDD104の最大ディスク帯域が200MB/Secの場合，仮想マシン121は，1秒間の間に，時分割された0.5秒間(100/200)，HDD104を占有できることを意味している。仮想マシン121に割り当てられたネットワーク帯域1GBpsとは，例えば，NIC105の最大ネットワーク帯域が2GBpsの場合，仮想マシン121は，1秒間の間に，時分割された0.5秒間(1/2)，NIC105を占有できることを意味している。
【００６６】
仮想マシン121に割り当てられたHDD104のディスクドライブIO頻度400/IOPSとは，例えば，HDD104の最大ディスク帯域が800/IOPSの場合，仮想マシン121は，1秒間に400回のIOが可能なことを意味している。ハードディスクドライブの帯域，ディスクドライブIO頻度とは，ここでは，1台のハードディスクドライブを対象としている。
【００６７】
仮想化ソフトウェア13は，前記したように，仮想マシン121を管理する。具体的には，仮想化ソフトウェア13は，仮想マシン121が情報処理を実行している過程において，仮想マシン121が実際に使用するハードウェア資源量を常時調整する。そのため，仮想化ソフトウェア13は，仮想マシン121が実際に使用しているハードウェア資源量を検知することができる。以下，仮想マシン121が実際に使用しているハードウェア資源量を使用ハードウェア資源量と適宜記す。
【００６８】
図5(C)は，使用ハードウェア資源量が格納された使用資源量テーブルT3を示す図である。
【００６９】
仮想化ソフトウェア13は，例えば，図5(C)に示すように，使用ハードウェア資源量であるCPUのコア数(使用コア数)，CPUのクロック数(使用クロック数)，メモリ量(使用メモリ量)，ディスク帯域(使用ディスク帯域)，ネットワーク帯域(使用ネットワーク帯域)，ディスクIO頻度(使用ディスクIO頻度)を例えばテーブル形式で管理している。
【００７０】
前記したように，仮想マシンが情報処理を実行している過程において，ボトルネックとなるハードウェア資源が発生する。例えば，利用者の仮想マシン121が，外部のサーバ装置とNIC105(ネットワーク)を介する多量のデータ通信処理を伴う情報処理を実行する場合を想定する。この場合，予め仮想マシンに割り当てられたNIC105のネットワーク帯域だけでは，十分なデータ通信量を確保することができず，単位時間当たりのデータ通信量が低下し，情報処理が遅延する。この場合，仮想マシン121に割り当てるNIC105のネットワーク帯域量を増加(アップ)させることが好ましい。この増加により，単位時間当たりのデータ通信量が増大し，ボトルネックが解消することで，利用者の利便性が向上する。
【００７１】
仮想化マシン121に割り当てられるハードウェア資源量は，仮想化ソフトウェア13により適宜調整可能である。従って，管理サーバ装置20は,仮想マシン121が情報処理を実行している過程において，ボトルネックとなるハードウェア資源量を特定し，利用者が指定した使用料金の範囲内で,ボトルネックとなるハードウェア資源量を増加して，仮想マシン121に割り当てさせることができる。
【００７２】
以下，仮想マシン121に各種情報処理を実行させる過程において，仮想マシン121に割り当てられた各種ハードウェア資源量を適切に調整してボトルネックを解消する処理について説明する。
【００７３】
ボトルネックを解消するためには，管理サーバ装置20は，仮想化ソフトウェア13から仮想マシン121の性能情報を取得する必要がある。
【００７４】
図4の管理サーバ装置20の(3-1): 管理サーバ装置20の性能情報収集指示部213は，仮想マシン121が各種情報処理を実行している過程において，一定間隔で，仮想化ソフトウェア13の性能情報収集部132に，仮想マシン121の性能情報を収集するように指示する(矢印(A3-1))。
【００７５】
この一定間隔とは，例えば，10分間隔である。この仮想化マシン121の性能情報とは，仮想マシン121が実際に使用しているハードウェア資源量を意味する。
【００７６】
図4の仮想化ソフトウェア13の(3-2):性能情報収集部132は，図5(C)の使用資源量テーブルT3により，仮想マシン121が使用しているハードウェア資源量を収集する。なお，性能情報収集部132が，仮想マシン121が使用しているハードウェア資源量を収集できるのは，仮想化ソフトウェア13が，図5(C)で説明したように，仮想マシン121が使用するハードウェア資源量を常時調整しているからである。
【００７７】
性能情報収集部132は，性能情報通知部133に，収集したハードウェア資源量を出力する。
【００７８】
図4の仮想化ソフトウェア13の(3-3):性能情報通知部133は，仮想マシン121の性能情報(使用ハードウェア資源量)を性能情報取得部214に通知(送信)する(矢印(A3-3))。
【００７９】
具体的には，性能情報収集部132は，図5(C)の使用資源量テーブルT3を性能情報通知部133に出力する。そして，性能情報通知部133は，図5(C)の使用資源量テーブルT3を管理サーバ装置20の性能情報取得部214に送信する。
【００８０】
図4の管理サーバ装置20の(3-4): 性能情報取得部214は，送信された性能情報，すなわち，仮想マシン121が使用しているハードウェア資源量を取得(受信)する。具体的には，性能情報取得部214は，図5(C)の使用資源量テーブルT3を受信し，受信した使用資源量テーブルT3をメモリ202に記憶する(図3参照)。
【００８１】
[ボトルネックを解消する処理]
図6は，ボトルネックを解消する処理を詳細に説明する構成図である。
【００８２】
図6の管理サーバ装置20の(4-1):管理サーバ装置20は，前記した一定間隔で，仮想マシン121の性能値を評価する。仮想マシン121の性能値とは，仮想マシン121が使用している各ハードウェア資源量を意味する。具体的には，管理サーバ装置20の性能不足検出部215は，仮想マシンが使用している各ハードウェア資源量の中で，ボトルネックとなるハードウェア資源量を検出する。さらに，性能余力検出部216は，仮想マシンが使用している各ハードウェア資源量の中で，余力があるハードウェア資源量を検出する。
【００８３】
図6の管理サーバ装置20の(4-2): 性能アップ制御部217は，ボトルネックとなるハードウェア資源量があり，このハードウェア資源量を増加した場合の仮想マシン121の使用料金が指定料金以下なら，ボトルネックとなるハードウェア資源量を増加するように仮想化ソフトウェア13に指示する(矢印(A4-2))。
【００８４】
図6の仮想化ソフトウェア13の(4-3):仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなるハードウェア資源量を所定単位分増加する(矢印(A4-3))。
【００８５】
ここで，図9(A)で詳しく説明するように，ハードウェア資源量の増加が継続すると，仮想マシンの使用料金が指定料金を超過する。そこで，管理制御部211は，以下の処理を実行する。
【００８６】
図6の管理サーバ装置20の(4-4):管理制御部211は，余力のあるハードウェア資源量を所定単位分減少させ，ボトルネックとなるハードウェア資源量を所定単位分増加させた場合，仮想マシン121の使用料金が指定料金以下か判定する。そして，仮想マシン121の使用料金が指定料金以下の場合，性能ダウン制御部218は，余力のあるハードウェア資源量を所定単位分減少するように仮想化ソフトウェア13に指示する。さらに，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を所定単位分増加するように仮想化ソフトウェア13に指示する(矢印A4-4)。
【００８７】
図6の仮想化ソフトウェア13の(4-5):仮想化ソフトウェア13は，この減少指示に応答して，余力のあるハードウェア資源量を所定単位分減少する。さらに，仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなる割り当てハードウェア資源量を所定単位分増加する(矢印A4-5)。
【００８８】
図6の管理サーバ装置20の(5-1):管理サーバ装置20は，前記した一定間隔(例えば10分)毎に，仮想マシン121の性能値をロギングする。
【００８９】
図6の管理サーバ装置20の(5-2): 管理サーバ装置20は，仮想マシン121に割り当てているハードウェア資源量，仮想マシン121の時間単位の使用料金，1月分の仮想マシン121の使用料金を利用者に電子メールなどで報告する(矢印A5-2)。そのため，利用者は，仮想マシン121の利用状態を把握することができる。
【００９０】
以下，図4で説明した，仮想マシン121が情報処理を実行している過程における，仮想マシン実行装置10，管理サーバ装置20の動作説明を具体例で説明する。
【００９１】
[ボトルネックとなるハードウェア資源量の増加処理]
まず，ボトルネックとなるハードウェア資源量の増加処理を図7〜図9を用いて説明する。
【００９２】
図7(A)は，図5(B)の割り当てテーブルT2に対応して定められた各ハードウェア資源量が格納された上限資源量格納テーブルT11を示す図で，図7(B)は，各ハードウェア資源量の所定単位が格納された所定単位テーブルT12を示す図である。
【００９３】
図8(A)は，各ハードウェア資源量の所定単位分の使用料金が格納された使用料金テーブルT21を示す図で，図8(B)は，ハードウェア資源量増加後の割り当てテーブルT22を示す図である。これらのテーブルT11，T12，T21，T22は，メモリ202に記憶される。
【００９４】
図9(A)は，ハードウェア資源量を所定単位分増加させている状態を示す図で，図9(B)は，ハードウェア資源量を所定単位分増減させている状態を示す図である。
【００９５】
仮想マシン121が情報処理を実行している過程において，性能不足検出部215は，仮想マシン121が使用している各ハードウェア資源量の中で，割り当てテーブルT2の各ハードウェア資源量に対応して定められたハードウェア資源量以上のボトルネックとなるハードウェア資源量(第1のハードウェア資源量)を検出する。
【００９６】
ここで，性能不足検出部215は，仮想マシン121が使用している各ハードウェア資源量の中で，上限資源量格納テーブルT11のハードウェア資源量以上のハードウェア資源量をボトルネックとなるハードウェア資源量として検出する。
【００９７】
換言すれば，ボトルネックとなるハードウェア資源量とは，各使用ハードウェア資源量の中で，上限値以上のハードウェア資源量である。上限値とは，例えば，仮想マシン121に割り当てられた各ハードウェア資源量に対応して定められたハードウェア資源量の80%の量を意味する。
【００９８】
図7(A)のテーブルT11においては，図5(B)のテーブルに示した仮想マシン121に割り当てられた各ハードウェア資源量の80%の量を上限ハードウェア資源量として示している。ここで，CPUのコア数については，整数なので，仮想マシン121に割り当てられたコア数の80％で小数点以下を四捨五入する。
【００９９】
図7(A)においては，上限コア数1(1×0.8)で小数点以下を四捨五入)，上限クロック数1.2GHz(1.5×0.8)，上限メモリ量3.2GB(4.0×0.8)，上限ディスク帯域80MB/Sec(100×0.8)，上限ネットワーク帯域0.8Gbps(1×0.8)，上限ディスクIO頻度320/IOPS(400×0.8)が格納されている。
【０１００】
使用ハードウェア資源量が格納された図5(C)のテーブルT3と，上限ハードウェア資源量が格納された図7(A)のテーブルT11とを比較すると，ボトルネックとなるハードウェア資源量は，ネットワーク帯域(Networkband)であることが分かる。
【０１０１】
この場合，性能不足検出部215は，仮想マシン121が使用している各ハードウェア資源量の中で，上限ハードウェア資源量以上のハードウェア資源量，つまりボトルネックとなるハードウェア資源量を検出する。そして，管理制御部211は，このボトルネックとなるハードウェア資源量を所定単位(1段階)分増加する旨をメモリ202に記憶する。図7(B)にハードウェア資源量を所定単位が格納された所定単位テーブルT12を示す。
【０１０２】
前記の例では，管理制御部211は，ネットワーク帯域を所定単位分増加する旨をメモリ202に記憶した。ネットワーク帯域の所定単位は，各ハードウェア資源量の所定単位を示す図7(B)によれば，0.2Gbpsである。よって，管理制御部211は，ネットワーク帯域を1.2Gbps (1.0＋0.2)に増加(変更)する旨をメモリ202に記憶する。
【０１０３】
そして，料金計算部219は，ボトルネックとなるハードウェア資源量を変更(増加)した場合の仮想マシン121の使用料金を計算する。この計算は，図5(B)に示した仮想マシン121に割り当てられた各ハードウェア資源量が格納されたテーブルT2，所定単位増加分のハードウェア資源量，および，図8(A)のテーブルT21に格納された所定単位ハードウェア資源量の単位料金に基づき，実行される。
【０１０４】
図8(A)において，FcrはCPUコア数1コア当たりの単位コア料金を示し，FclはCPUの0.1GHz当たりの単位クロック数料金を示す。Fmは，メモリの0.1GB当たりの単位メモリ料金を示し，Fdbは，HDDの10(MB/Sec)当たりの単位ディスク帯域料金を示す。Fnbは，NICの0.1Gbps当たりの単位ネットワーク帯域料金を示し，FdiはHDDの10IOPS当たりの単位ディスクIO料金を示す。
【０１０５】
具体的には，料金計算部219は，まず，図5(B)のテーブルに格納された仮想マシン121に割り当てられた各ハードウェア資源量の料金を計算する。この料金を変更前料金Fbfrとする。
【０１０６】
すなわち，料金計算部219は，仮想マシン121に割り当てられた各ハードウェア資源量を，図8(A)のテーブルT21で示すこの各ハードウェア資源量に対応する各所定単位ハードウェア資源量で除算し，各除算値にこの各所定単位ハードウェア資源量の単位料金を乗算する。
【０１０７】
図5(B)の場合，変更前料金Fbfrは，CPUコア料金(1(1/1)×単位コア料金Fcr)＋クロック数料金(15(1.5/0.1)×単位クロック数料金Fcl)＋メモリ量料金(40(4/0.1)×単位メモリ料金Fm)＋ディスク帯域料金(10(100/10)×単位ディスク帯域料金Fdb)＋ネットワーク帯域料金(10(1/0.1)×単位ネットワーク帯域料金Fnb)＋ディスクIO頻度料金(40(400/10)×単位ディスクIO料金Fdi)である。
【０１０８】
次に，所定単位増加分のハードウェア資源量の料金を計算する。この料金を変更加算料金Faddとする。前記の例では，ネットワーク帯域を0.2Gbps増加するので，変更加算料金Faddは，2(0.2/0.1)×Fnbである。
【０１０９】
そして，変更前料金Fbfrと変更加算料金Faddとを合計する。この合計額がハードウェア資源量を所定単位分増加した場合の合計使用料金Ftlである。
【０１１０】
合計使用料金Ftlの算出式を(式1)に示す。
【０１１１】
合計使用料金Ftl=変更前料金Fbfr＋変更加算料金Fadd…(式1)
管理制御部211は，ハードウェア資源量変更後の合計使用料金Ftlと，利用者が設定した指定料金とを比較し，合計使用料金Ftlが指定料金以下か判定する。ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下の場合，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加，例えば所定単位分増加するよう仮想化ソフトウェア13に指示する。
【０１１２】
仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなるハードウェア資源量を所定単位分増加する。
【０１１３】
前記の例では，性能アップ制御部217はネットワーク帯域を1.2Gbps(1.0＋0.2)に増加するように仮想化ソフトウェア13に指示する。仮想化ソフトウェア13は，この増加指示に応答して，仮想マシン121に割り当てるネットワーク帯域を1.2Gbpsに増加する。
【０１１４】
さらに，管理制御部211は，図5(B)に示した割り当てられたハードウェア資源量が格納されたテーブルを更新する。前記の例では，管理制御部211は，ネットワーク帯域を1Gbpsから1.2Gbpsに更新する。図8（B）は，更新後の割り当てられたハードウェア資源量が格納されたテーブルを示す。このようにすることで，ボトルネックを解消することができる。その結果，利用者の利便性が向上する。
【０１１５】
前記更新後，再び，一定間隔に至るまで，待ち状態に移行する。
【０１１６】
さて，仮想マシン121が，例えば，画像データの転送処理を実行することによりデータ通信用が増大すると，ネットワークのボトルネックを解消するため，仮想マシン121に割り当てられるネットワーク帯域が，図9(A)に示すように，1.2Gbps，1.4Gbps…2.0Gbpsと増大する。その結果，仮想マシン121の合計使用料金Ftlが，合計使用料金Ftl2，Ftl4…Ftl20と徐々に増大する。すると，ネットワークの帯域を2.2bpsに増加させた場合の合計使用料金Ftl22が，利用者が設定した指定料金を超過する。そのため，管理制御部211は，割り当てハードウェア資源量を所定単位分増加した場合の料金が，利用者が設定した指定料金を超えると判定する。この場合，割り当てハードウェア資源量をこれ以上増加させることができない。
【０１１７】
以下の説明では，仮想マシン121にネットワーク帯域2.0Gbpsが割り当てられている状態であるとする。そして，管理制御部211は，ネットワーク帯域2.0Gbpsからを所定単位分(0.2 Gbps)増加する旨をメモリ202に記憶しているとする。
【０１１８】
[ハードウェア資源量の増減処理]
ここで，ボトルネックとなるハードウェア資源量の増加し，余力のあるハードウェア資源量を減少させて，仮想マシン121の使用料金を指定料金以内にする処理を処理を図9〜図10を用いて説明する。
【０１１９】
図10(A)は，ハードウェア資源量増加後の割り当てテーブルT31を示す図である。図10(B)は，図10(A)の割り当てテーブルT31に対応して定められた各ハードウェア資源量が格納された下限資源量格納テーブルT32を示す図である。図10(C)は，使用ハードウェア資源量が格納された使用資源量テーブルT33を示す図である。
【０１２０】
これらのテーブルT31，T32，T33は，メモリ202に記憶される。
【０１２１】
ここでは，ボトルネックとなるハードウェア資源量を増加した場合における仮想マシン121の合計使用料金Ftlが指定料金を超えるとする。このとき，性能余力検出部216は，仮想マシン121が使用している各ハードウェア資源量の中で，割り当てテーブルT31の各ハードウェア資源量に対応して定められた余力ハードウェア資源量以下の余力のあるハードウェア資源量(第2のハードウェア資源量)を検出する。
【０１２２】
ここで，性能余力検出部216は，仮想マシン121が使用している各ハードウェア資源量の中で，下限資源量格納テーブルT32のハードウェア資源量以下のハードウェア資源量を余力のあるハードウェア資源量として検出する。
【０１２３】
換言すれば，余力のあるハードウェア資源量とは，各使用ハードウェア資源量の中で，下限値以下のハードウェア資源量である。下限値とは，例えば，仮想マシン121に割り当てられたハードウェア資源量の40%の量を意味する。
【０１２４】
図10(A)のテーブルT31においては，現時点で仮想マシン121に割り当てられた各ハードウェア資源量が格納されている。
【０１２５】
図10(B)のテーブルT32においては，図10(A)のテーブルT31に示した仮想マシン121に割り当てられた各ハードウェア資源量の40%の量を下限ハードウェア資源量として示している。ここで，CPUのコア数については，整数なので，仮想マシン121に割り当てられたコア数の40％で小数点以下を四捨五入して1を加算する。
【０１２６】
図10(B)においては，下限コア数1(1×0.4)で小数点以下を四捨五入して1を加算)，下限クロック数0.6GHz(1.5×0.4)，下限メモリ量1.6GB(4.0×0.4)，下限ディスク帯域40MB/Sec(100×0.4)，下限ネットワーク帯域0.8Gbps(2×0.4)，下限ディスクIO頻度160/IOPS(400×0.4)が格納されている。
【０１２７】
ここで，既に，図10(C)のテーブルT33に示すように，性能情報取得部214が，仮想化ソフトウェア13から取得した仮想マシン121が使用しているハードウェア資源量を取得しているとする。
【０１２８】
使用ハードウェア資源量が格納された図10(C)のテーブルT33と，下限ハードウェア資源量が格納された図10(B)のテーブルT32とを比較すると，下限ハードウェア資源量以下の使用ハードウェア資源量は，メモリのハードウェア資源量(メモリ量)であることが分かる。
【０１２９】
この場合，性能余力検出部216は，余力があるハードウェア資源量を検出する。
【０１３０】
そして，管理制御部211は，下限ハードウェア資源量以下の使用ハードウェア資源量を有するハードウェア資源について，仮想マシン121に割り当てるハードウェア資源量を所定単位分減少する旨をメモリ202に記憶する。
【０１３１】
前記の例では，管理制御部211は，仮想マシン121に割り当てるメモリ量を所定単位分減少する旨をメモリ202に記憶する。メモリの所定単位は，図7(B)によれば，0.2GBである。
【０１３２】
よって，管理制御部211は，仮想マシン121に割り当てるメモリ量を3.8(4-0.2)GBに減少(変更)する旨をメモリ202に記憶する。
【０１３３】
料金計算部219は，ボトルネックとなるハードウェア資源量を増加した場合の料金を加味した上で，ハードウェア資源量を変更(増加および減少)した場合の料金を計算する。
【０１３４】
具体的には，料金計算部219は，使用ハードウェア資源量を増減した場合の合計使用料金Ftlを計算する。前記の例では，図9(B)に示すように，仮想マシン121に割り当てるメモリ量を4.0GBから3.8GBに減少し，ネットワーク帯域を2.0Gbpsから2.2Gbpsに増加した場合の合計使用料金Ftlを計算する。
【０１３５】
この料金計算について詳しく説明する。料金計算部219は，図10(A)のテーブルに格納された仮想マシン121に割り当てられた各ハードウェア資源量の料金，すなわち，変更前料金Fbfrを計算する。
【０１３６】
次に，料金計算部219は，所定単位減少分の割り当てハードウェア資源量の料金を計算する。この料金を変更減算料金Fdecとする。図9(B)の例では，メモリ量を0.2GB減少するので，変更減算料金Fdecは，2(0.2/0.1)×Fmである。
【０１３７】
そして，料金計算部219は，所定単位増加分の割り当てハードウェア資源量の料金(変更加算料金Fadd)を計算する。図9(B)の例では，ネットワーク帯域を0.2Gbps増加するので，変更加算料金Faddは，2(0.2/0.1×Fnb)である。
【０１３８】
料金計算部219は，変更前料金Fbfrと，変更加算料金Fadd(2(0.2/0.1)×Fnb)との合計額から，変更減算料金Fdecを減算する。
【０１３９】
この減算後の金額が仮想マシン121に割り当てるハードウェア資源量を所定単位分増加および減少した場合の合計使用料金Ftlである。合計使用料金Ftlの算出式を(式2)に示す。
【０１４０】
合計使用料金Ftl=変更前料金Fbfr＋変更加算料金Fadd−変更減算料金Fdec…(式2)
管理制御部211は，仮想マシン121に割り当るハードウェア資源量を変更した後の合計使用料金Ftlと利用者が設定した指定料金とを比較する。この合計使用料金Ftlは，ボトルネックとなるハードウェア資源量を増加し，余力のあるハードウェア資源量を減少した場合における仮想マシン121の合計使用料金である。
【０１４１】
そして，管理制御部211は，合計使用料金Ftlが，利用者が設定した指定料金以下か判定する。
【０１４２】
ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下の場合，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加，例えば所定単位分増加するよう仮想化ソフトウェア13に指示する。さらに，性能ダウン制御部218は，余力があるハードウェア資源量を減少，例えば所定単位分減少するよう仮想化ソフトウェア13に指示する。
【０１４３】
前記の例では，ボトルネックとなるハードウェア資源量は，ネットワーク帯域であり，これを0.2Gbps分増加する。そして，余力があるハードウェア資源量は，メモリ量であり，これを0.2GB分減少する。
【０１４４】
仮想化ソフトウェア13は，図6の(4-5)で説明したように，この増加指示に応答して，ボトルネックとなる割り当てハードウェア資源量を所定単位分増加する。前記の例では，仮想化ソフトウェア13は，ネットワーク帯域を2.2Gbpsに増加する。
【０１４５】
仮想化ソフトウェア13は，この減少指示に応答して，余力のある割り当てハードウェア資源量を所定単位分減少する。前記の例では，仮想化ソフトウェア13は，メモリ量を3.8GGに減少する。
【０１４６】
このように，仮想マシン121に割り当てるハードウェア資源量を調整することで，ボトルネックを解消することができる。また，仮想マシン121に割り当てるハードウェア資源量を増加し，仮想マシン121の使用料金が，利用者が設定した指定料金を超える場合には，余力のあるハードウェア資源量を減少して，仮想マシン121の使用料金を下げる。その結果，ボトルネックとなるハードウェア資源量を増加させて，ボトルネックを解消することができる。
【０１４７】
なお，管理サーバ装置20は，図6の(5-1)で説明したように，前記した一定間隔(例えば10分)毎に，例えば仮想マシン121の性能値をロギングする。
【０１４８】
図11は，現在の時刻，仮想マシン121に割り当てられたハードウェア資源量が格納されたテーブルの内容，仮想マシン121の使用料金が格納されたテーブルT41を示す図である。
【０１４９】
具体的には，管理制御部211は，図11に示した現在の時刻，仮想マシン121に割り当てられたハードウェア資源量が格納されたテーブルの内容，仮想マシン121の使用料金を格納したテーブルT41をメモリ202に記憶する。
【０１５０】
さらに，図6の(5-2)で説明したように，定期的例えば１月毎に，管理サーバ装置20のログ送信部220は，図12に示すように，仮想マシン121に割り当てているハードウェア資源量などを利用者に例えば，電子メールなどで報告する。
【０１５１】
[仮想マシンの生成処理の流れ]
図13は，図4で説明した仮想マシンの生成処理の流れについて説明するフロー図である。
【０１５２】
ステップS1:利用者は，利用者端末システム50を操作し，指定料金(所定の料金)を指定して，仮想マシンの作成指示(作成依頼)をクラウドサービスポータル30に行う。
【０１５３】
ステップS2:管理サーバ装置20の管理制御部211は，クラウドサービスポータル30から送信された仮想マシンの作成指示と，指定料金を受信し，指定料金を管理サーバ装置20のメモリ202に記憶する。
【０１５４】
ステップS3:管理サーバ装置20の最小スペック仮想マシン生成指示部212は，仮想マシン実行装置10の仮想マシン生成部131に所定のスペックで仮想マシンを作成するように指示する。
【０１５５】
ステップS4:仮想マシン生成部131は，最低のスペック(最小のハードウェア資源量)で仮想マシンを作成する。
【０１５６】
以上の処理により，図13のステップS1で説明した利用者の仮想マシン121が生成され，以後，この利用者は，利用者端末システム50を介して仮想マシン121を利用し，仮想マシン121に各種情報処理を実行させる。
【０１５７】
[ハードウェア資源量の変更処理の流れ]
図14は，仮想マシンに割り当てるハードウェア資源量の変更処理の流れを説明するフロー図である。図15は，図14のフロー図における一部ステップの詳細フロー図である。
【０１５８】
まず，図14のフロー図から説明する。
【０１５９】
ステップS11:管理サーバ装置20の性能情報収集指示部213は，仮想マシン121が各種情報処理を実行している過程において，所定時間が経過したか判定する。ここで所定時間とは，例えば10分である。
【０１６０】
所定時間が経過していない場合(ステップS11/No)，ステップS11に戻る。所定時間が経過すると(ステップS11/Yes)，ステップS12に移り，ハードウェア資源量の取得処理が実行される。
【０１６１】
ステップS12:管理サーバ装置20の性能情報取得部214は，仮想マシン121が使用しているハードウェア資源量を取得する。なお，取得処理の詳細については，図4で説明したので省略する。
【０１６２】
ステップS13: 性能不足検出部215は，仮想マシンが使用している各ハードウェア資源量の中で，ボトルネックとなるハードウェア資源量を検出する。
【０１６３】
性能不足検出部215が，仮想マシン121が使用している各ハードウェア資源量の中で，ボトルネックとなるハードウェア資源量があると判定した場合(ステップS13/Yes)，ステップS14に移る。
【０１６４】
ステップS14: 管理制御部211は，ボトルネックとなるハードウェア資源量を所定単位分増加する旨をメモリ202に記憶する。
【０１６５】
ステップS15:料金計算部219は，ハードウェア資源量を変更(増加)した場合の料金を計算し，性能アップ制御部217は，変更後のハードウェア資源量の料金が指定料金以下なら，ボトルネックとなるハードウェア資源量を増加する。ステップS15の詳細については，図15のフロー図で説明する。
【０１６６】
ステップS16:管理制御部211は，ステップS15で，仮想マシン121に割り当てるハードウェア資源量を増加したか判定する。ここでは，仮想マシン121に割り当てるハードウェア資源量を増加したとして(ステップS16/Yes)，ステップS17に移る。
【０１６７】
ステップS17:管理制御部211は，例えば，現在の時刻，仮想マシン121に割り当てられたハードウェア資源量が格納されたテーブルの内容などをメモリ202にロギングする。
【０１６８】
次いで，ステップS11に戻り，ステップS11〜S17の処理が繰り返し行われる。この処理の過程において，図9(A)で説明したように，仮想マシン121に割り当てられるハードウェア資源量が徐々に増大すると，仮想マシン121の合計使用料金Ftlが，徐々に増大する。すると，合計使用料金Ftlが，利用者が設定した指定料金を超過する。
【０１６９】
そのため，管理制御部211は，割り当てハードウェア資源量を所定単位分増加した場合の料金が，利用者が設定した指定料金を超えると判定し，割り当てハードウェア資源量を所定単位分増加しない(ステップSS16/No)。そして，ステップS18に移る。
【０１７０】
ステップS18:性能余力検出部216は，余力があるハードウェア資源量を検出する。
【０１７１】
性能余力検出部216が，余力があるハードウェア資源量があると判定した場合(ステップS18/Yes)，ステップS19に移る。
【０１７２】
ステップS19:管理制御部211は，余力があるハードウェア資源量を所定単位分減少する旨をメモリ202に記憶する。
【０１７３】
ステップS20: 料金計算部219は，ハードウェア資源量を変更(増加および減少)した場合の料金を計算する。そして，変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量を減少する。ステップS20の詳細については，図15のフロー図で説明する。
【０１７４】
図15のフロー図は，図14のステップS15，ステップS20を詳細に説明するフロー図である。具体的に説明すると，図15は，仮想マシン121に割り当てるハードウェア資源量を変更した場合の合計使用料金Ftlを計算し，合計使用料金Ftlが指定料金以下なら，仮想マシン121に割り当てるハードウェア資源量を変更する処理を説明するフロー図である。
【０１７５】
まず，ステップS15の処理について説明する。
【０１７６】
ステップS51:管理サーバ装置20の管理制御部211は，仮想マシン121に割り当てるハードウェア資源量を増加させるだけか判定する。具体的には，図14のステップS14において，ボトルネックとなるハードウェア資源量を増加する旨をメモリ202に記憶したか判定する。
【０１７７】
前記の例では，管理制御部211が，ボトルネックとなるハードウェア資源量を所定単位分増加する旨をメモリ202に記憶したので，管理制御部211は，ボトルネックとなるハードウェア資源量を増加させると判定し(ステップS51/Yes)，ステップS52に移る。
【０１７８】
ステップS52:料金計算部219は，ボトルネックとなるハードウェア資源量を所定単位分増加した場合の合計使用料金Ftlを計算する((式1)参照)。
【０１７９】
ステップS53:管理制御部211は，ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下か判定する。
【０１８０】
ここでは，指定料金以下であると判定し(ステップS53/Yes)，ステップS54に移る。
【０１８１】
ステップS54:性能アップ制御部217は，ボトルネックとなるハードウェア資源量を所定単位分増加するように仮想化ソフトウェア13に指示する。仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなるハードウェア資源量を所定単位分増加する。
【０１８２】
前記更新後，図14のステップS16に移る。さて，図14で説明したように，図14のステップS15(図15のステップS52〜ステップS54)が繰り返し行われ，割り当てハードウェア資源量の増加(図15のステップS54)が断続的に実行される。すると，割り当てハードウェア資源量の増加後の合計使用料金Ftlが指定料金を超過し(ステップS53/No)，ステップS55に移る。この場合，仮想マシン121の割り当て資源量の増加処理(図15のステップS54)は実行されない。
【０１８３】
ステップS55: 管理制御部211は，ステップS52で料金計算部219が計算した変更加算料金Faddをメモリ202に記憶する。次いで，図14のステップS16に移る。
【０１８４】
仮想マシン121の割り当て資源量の増加処理は実行されていないので，ステップS16でNoと判定され，ステップS18に移る。
【０１８５】
そして，ステップS18〜S20の処理が実行される。ステップS18では，性能余力検出部216は，余力があるハードウェア資源量を検出したとする(ステップS18/Yes)。この場合，ステップS19，ステップS20の処理が実行される。
【０１８６】
ステップS20では，まず，料金計算部219は，図15のステップS55で記憶したハードウェア資源量を増加した場合の料金を加味した上で，ハードウェア資源量を変更(増加および減少)した場合の料金を計算する。ステップS20の処理について，図20のフロー図で説明する。
【０１８７】
ステップS51:管理サーバ装置20の料金計算部219は，ハードウェア資源量を増加させるだけか判定する。前記の例では，ハードウェア資源量を減少させるので，ステップS51はNoとなり，ステップS56に移る。
【０１８８】
ステップS56:料金計算部219は，使用ハードウェア資源量を増減した場合の合計使用料金Ftlを計算する((式2)参照)。
【０１８９】
ステップS57: 管理制御部211は，仮想マシン121に割り当るハードウェア資源量を変更した後の合計使用料金Ftlが，利用者が設定した指定料金以下か判定する。
【０１９０】
ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下の場合(ステップS57/Yes)，ステップS58に移る。
【０１９１】
ステップS58:性能アップ制御部217は，ボトルネックとなるハードウェア資源量を所定単位分増加するよう仮想化ソフトウェア13に指示する。さらに，性能ダウン制御部218は，余力があるハードウェア資源量を所定単位分減少するよう仮想化ソフトウェア13に指示する。
【０１９２】
仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなる割り当てハードウェア資源量を所定単位分増加する。
【０１９３】
仮想化ソフトウェア13は，この減少指示に応答して，余力がある割り当てハードウェア資源量を所定単位分減少する。
【０１９４】
そして，図14のステップS20に戻り，次いで,ステップS17における仮想マシン121の性能値のロギング処理終了後，再び，ステップS11の処理に移る。なお，ボトルネックとなるハードウェア資源量がない場合(ステップS13/No)，減少できるハードウェア資源量がない場合(ステップS18/No)，仮想マシン121に割り当るハードウェア資源量を変更した後の合計使用料金Ftlが，利用者が設定した指定料金を超える場合(図15のステップS57/No)，ステップS17の処理に移り，再び，ステップS11の処理に移る。
【０１９５】
本実施の形態によれば，クラウドサービスの提供業者は，CPU，メモリ，HDD，NICのハードウェア資源量を細かく調整した仮想マシンの提供が可能になり，細かく調整した仮想マシンの使用料金をクラウドサービスの利用者に課金することができる。
【０１９６】
また，仮想マシンに実行させる情報処理内容に適合するように，仮想マシンに割り当てられるハードウェア資源量が自動的に最適化される。そのため，利用者自らが，情報処理の内容に合わせて手動により，ハードウェア資源量を調整する必要がなく，利用者の利便性が向上する。
【０１９７】
さらに，情報処理時間が短くなることで，クラウドサービスの利用者のストレスが減少する。
【０１９８】
また，図9(B)で説明したように，仮想マシン121のボトルネックとなるハードウェア資源量の増加が継続し，使用料金が指定料金を超過した場合であっても，余力のあるハードウェア資源量を減少させることで，使用料金を指定料金以下に納めつつ，ボトルネックとなるハードウェア資源量を増加させることができる。
【０１９９】
また，ハードウェア資源量が最適化された仮想マシンに対して課金されるので，不要なハードウェア資源量に対して課金されることがなく，利用者にとり経済的である。提供業者にとっても，仮想マシンに割り当てられるハードウェア資源量が最適化されるので，不要なハードウェア資源を用意しなくてもよい。そのため，提供業者は，仮想マシン用のハードウェア資源の増設を抑制することができ経済的である。その結果，クラウドサービスの使用料金を低価格に抑えることができ，提供業者および利用者にとってメリットになる。
【０２００】
[ハードウェア資源量を増減させる処理の詳細説明]
以下，仮想マシン121に割り当てるハードウェア資源量を増減させる処理，すなわち，図14のステップS13〜S20の処理手法についてより詳細に説明する。なお，既に，図13で説明したように，仮想マシン実行装置10において，既に，仮想マシン121が生成されているとする。また，図16〜図21は，仮想マシンに割り当てるハードウェア資源量の変更処理を詳細に説明する第1〜第6のフロー図である。
【０２０１】
ステップS101，S102は，図14のステップS11，S12同じ処理を実行するのでその説明を省略する。ステップS102の終了後，ステップS103に移る。
【０２０２】
ステップS103:管理サーバ装置20の性能不足検出部215は，仮想マシン121に割り当てられたCPU101が性能不足か判定する。
【０２０３】
すなわち，仮想マシン121が使用しているCPU101のハードウェア資源量が上限ハードウェア資源量以上(図7(A)参照)であるか判定する。ここでは，仮想マシン121が使用しているCPU101のハードウェア資源量はクロック数であるとする。仮想マシン121が使用しているCPU101のハードウェア資源量(クロック数)が上限ハードウェア資源量以上の場合(ステップS103/YES)，ステップS104に移る。
【０２０４】
ステップS104:管理サーバ装置20の性能アップ可能判定部221は，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分増加可能か判定する。仮想マシン121に割り当てられたCPU101のクロック数を所定単位分増加したクロック数が，CPU101の最大クロック数以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分増加可能と判定し(ステップS104/Yes)，ステップS105に移る。CPU101の最大クロック数とは，例えば3.0GHzである。
【０２０５】
ステップS105:管理制御部211は，仮想マシン121に割り当てるクロック数を所定単位分増加する旨をメモリ202に記憶する。
【０２０６】
ステップS104において，性能アップ可能判定部221が，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分増加不可能と判定した場合(ステップS104/No)，ステップS106に移る。
【０２０７】
ステップS106:性能アップ可能判定部221は，仮想マシン121に割り当てられたCPU101のコア数を所定単位分増加可能か判定する。
【０２０８】
仮想マシン121に割り当てられたCPU101のコア数を所定単位分増加したコア数が，CPU101の最大コア数以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたCPU101のコア数を所定単位分増加可能と判定し(ステップS106/Yes)，ステップS107に移る。CPU101の最大コア数とは，例えば2である。
【０２０９】
ステップS107:管理制御部211は，仮想マシン121に割り当てるCPU101のコア数を所定単位分増加する旨をメモリ202に記憶する。
【０２１０】
ステップS107が終了した場合，ステップS105が終了した場合，CPU101の性能不足ではない場合(ステップS103/No)，仮想マシン121に割り当てられたCPU101のコア数を所定単位分増加できない場合(ステップS106/No)，図17のステップS111に移る。図5(C)，図7(A)で示した例では，CPU101の性能不足ではないので(ステップS103/No)，図17のステップS111に移る。
【０２１１】
図17は，図16に続くフロー図であり，ステップS111から説明を始める。
【０２１２】
ステップS111:性能不足検出部215は，仮想マシン121に割り当てられたメモリ量が不足か判定する。すなわち，仮想マシン121が使用しているメモリ103のハードウェア資源量(メモリ量)が上限ハードウェア資源量以上(図7(A)参照)であるか判定する。仮想マシン121が使用しているメモリのハードウェア資源量が上限ハードウェア資源量以上の場合(ステップS111/YES)，ステップS112に移る。
【０２１３】
ステップS112:性能アップ可能判定部221は，仮想マシン121に割り当てられたメモリ量を所定単位分増加可能か判定する。仮想マシン121に割り当てられたメモリ103のメモリ量を所定単位分増加したメモリ量が，メモリ103の最大メモリ量以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたメモリ量を所定単位分増加可能と判定し(ステップS112/Yes)，ステップS113に移る。メモリ103の最大メモリ量とは，例えば8.0GBである。
【０２１４】
ステップS113:管理制御部211は，仮想マシン121に割り当てるメモリ量を所定単位分増加する旨をメモリ202に記憶する。
【０２１５】
ステップS113が終了した場合，仮想マシン121に割り当てられたメモリ量が不足でない場合(ステップS111/No)，仮想マシン121に割り当てられたメモリ量を所定単位分増加できない場合(ステップS112/No)，ステップS114に移る。図5(C)，図7(A)で示した例では，メモリ202のメモリ量は不足していないので(ステップS111/No)，ステップS114に移る。
【０２１６】
ステップS114:性能不足検出部215は，仮想マシン121に割り当てられたHDD104のディスク性能が不足か判定する。
【０２１７】
すなわち，仮想マシン121が使用しているHDD104のハードウェア資源量が上限ハードウェア資源量以上(図7(A)参照)であるか判定する。ここでは，仮想マシン121が使用しているHDD104のハードウェア資源量はディスク帯域であるとする。仮想マシン121が使用しているHDD104のディスク帯域が上限ハードウェア資源量以上の場合(ステップS114/YES)，ステップS115に移る。
【０２１８】
ステップS115:性能アップ可能判定部221は，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分増加可能か判定する。仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分増加したディスク帯域が，HDD104の最大ディスク帯域以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分増加可能と判定し(ステップS115/Yes)，ステップS116に移る。HDD104の最大ディスク帯域とは，例えば200MB/Secである。
【０２１９】
ステップS116:管理制御部211は，仮想マシン121に割り当てるHDD104のディスク帯域を所定単位分増加する旨をメモリ202に記憶する。
【０２２０】
ステップS115において，性能アップ可能判定部221が，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分増加不可能と判定した場合(ステップS115/No)，ステップS117に移る。
【０２２１】
ステップS117:性能アップ可能判定部221は，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分増加可能か判定する。
【０２２２】
仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分増加したディスクIO頻度が，HDD104の最大ディスクIO頻度以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分増加可能と判定し(ステップS117/Yes)，ステップS118 に移る。HDD104の最大ディスクIO頻度とは，例えば800IOPSである。
【０２２３】
ステップS118 :管理制御部211は，仮想マシン121に割り当てるHDD104のディスクIO頻度を所定単位分増加する旨をメモリ202に記憶する。
【０２２４】
ステップS118が終了した場合，ステップS116が終了した場合，HDD104の性能不足ではない場合(ステップS114/No)，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分増加できない場合 (ステップS117/No)，図18のステップS121に移る。図5(C)，図7(A)で示した例では，HDD104の性能不足ではないので(ステップS114/No)，図18のステップS121に移る。
【０２２５】
図18は，図17に続くフロー図であり，ステップS121から説明を始める。
【０２２６】
ステップS121：性能不足検出部215は，仮想マシン121に割り当てられたネットワーク帯域が不足か判定する。すなわち，仮想マシン121が使用しているNIC105のハードウェア資源量(ネットワーク帯域)が上限ハードウェア資源量以上(図7(A)参照)であるか判定する。仮想マシン121が使用しているNIC105のハードウェア資源量が上限ハードウェア資源量以上の場合(ステップS121/YES)，ステップS122に移る。
【０２２７】
ステップS122:性能アップ可能判定部221は，仮想マシン121に割り当てられたNIC105のネットワーク帯域を所定単位分増加可能か判定する。仮想マシン121に割り当てられたNIC105のネットワーク帯域を所定単位分増加したネットワーク帯域が，NIC105の最大ネットワーク帯域以下の場合には，性能アップ可能判定部221は，仮想マシン121に割り当てられたネットワーク帯域を所定単位分増加可能と判定し(ステップS122/Yes)，ステップS123に移る。NIC105の最大ネットワーク帯域とは，例えば2Gpsである。
【０２２８】
ステップS123:管理制御部211は，仮想マシン121に割り当てるネットワーク帯域を所定単位分増加する旨をメモリ202に記憶する。
【０２２９】
ステップS123が終了した場合，仮想マシン121に割り当てられたネットワーク帯域が不足でない場合(ステップS121/No)，仮想マシン121に割り当てられたネットワーク帯域を所定単位分増加できない場合(ステップS122/No)，ステップS124に移る。図5(C)，図7(A)で示した例では，仮想マシン121に割り当てられたネットワーク帯域が不足するので(ステップS121/Yes)，ステップ123の処理が実行され，ステップS124に移る。
【０２３０】
ステップS124:管理制御部211は，仮想マシン121に割り当てられたハードウェア資源を所定単位分増加するか判定する。すなわち，管理制御部211は，スペックアップするリソースがあるか判定する。
【０２３１】
具体的には，図16のステップS105などで，管理制御部211が，仮想マシン121に割り当てるハードウェア資源を増加する旨をメモリ202に記憶した場合である。仮想マシンに割り当てられたハードウェア資源を所定単位分増加する場合(ステップS124/Yes)，ステップS125に移る。
【０２３２】
ステップS125:料金計算部219は，ハードウェア資源量を変更(増加)した場合の料金を計算し，性能アップ制御部217は，変更後のハードウェア資源量の料金が指定料金以下なら，ボトルネックとなるハードウェア資源量を増加する。
このステップS125の処理は，図14のステップS15と同様の処理である。
【０２３３】
ステップS125を図19のフロー図に基づき説明する。
【０２３４】
図19は，仮想マシン121に割り当てるハードウェア資源量を変更した場合の合計使用料金Ftlを計算し，合計使用料金Ftlが指定料金以下なら，仮想マシン121に割り当てるハードウェア資源量を変更する処理を説明するフロー図である。
【０２３５】
ステップS201:管理サーバ装置20の性能アップ制御部217は，仮想マシン121に割り当てるハードウェア資源量を増加させるだけか判定する。
【０２３６】
前記の例では，管理制御部211が，割り当てるハードウェア資源量を所定単位分増加する旨をメモリ202に記憶したので，性能アップ制御部217は，割り当てハードウェア資源量を増加させると判定し(ステップS201/Yes)，ステップS202に移る。
【０２３７】
ステップS202:料金計算部219は，ボトルネックとなるハードウェア資源量を所定単位分増加した場合の合計使用料金Ftlを計算する。この計算処理については，図15のステップS52で説明したので省略する。
【０２３８】
ステップS203:管理制御部211は，ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下か判定する。
【０２３９】
ここでは，指定料金以下であると判定し(ステップS203/Yes)，ステップS204に移る。
【０２４０】
ステップS204: 性能アップ制御部217は，ボトルネックとなるハードウェア資源量を所定単位分増加するよう仮想化ソフトウェア13に指示する。仮想化ソフトウェア13は，この増加指示に応答して，ボトルネックとなるハードウェア資源量を所定単位分増加する。この増加処理については，図15のステップS54で説明したので省略する。このようにすることで，ボトルネックを解消することができる。その結果，利用者の利便性が向上する。
【０２４１】
そして，図18のステップS126に移る。
【０２４２】
ステップS126: 管理制御部211は，例えば，現在の時刻，仮想マシン121に割り当てられたハードウェア資源量が格納されたテーブルの内容などをメモリ202にロギングする。
【０２４３】
次いで，図16のステップS101に戻り，ステップS101〜図18のステップS126の処理が繰り返し行われる。この処理の過程において，図11で説明したように，仮想マシン121の合計使用料金Ftl22が利用者が設定した指定料金を超過する。
【０２４４】
すると，図19のステップS203において，管理制御部211は，割り当てハードウェア資源量を所定単位分増加した場合の料金が，利用者が設定した指定料金を超えると判定する(ステップS203/No)。この場合，割り当てハードウェア資源量をこれ以上増加させることができないので，ステップS205に移る。
【０２４５】
ステップS205: 管理制御部211は，ステップS202で料金計算部219が計算した変更加算料金Faddをメモリ202に記憶する。
【０２４６】
ここで，図19のフロー図の呼び出しもとである，図18のステップS125に戻り，次いで，図20のステップS131に移る。
【０２４７】
図20は，図18のステップS125に続くフロー図であり，ステップS131から説明を始める。
【０２４８】
ステップS131: 管理サーバ装置20の性能余力検出部216は，仮想マシン121に割り当てられたCPU101の性能に余力があるか判定する。
【０２４９】
すなわち，仮想マシン121が使用しているCPU101のハードウェア資源量が下限ハードウェア資源量未満(図10(C)参照)であるか判定する。ここでは，仮想マシン121が使用しているCPU101のハードウェア資源量はクロック数であるとする。仮想マシン121が使用しているCPU101のハードウェア資源量(クロック数)が下限ハードウェア資源量未満の場合(ステップS131/YES)，ステップS132に移る。
【０２５０】
ステップS132:管理サーバ装置20の性能ダウン可能判定部222は，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分減少可能か判定する。仮想マシン121に割り当てられたCPU101のクロック数を所定単位分減少したクロック数が，CPU101の最小クロック数以上の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分減少可能と判定し(ステップS132/Yes)，ステップS133に移る。CPU101の最小クロック数とは，例えばCPU101の最大クロック数の10%である。
【０２５１】
ステップS133: 料金計算部219は，CPUのクロック数を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(CPUのクロック数)を減少する。
【０２５２】
図20のステップS133の処理については，図14のステップS20で説明した処理と同様の処理を実行する。具体的には，図19のステップS201以下の処理を実行する。
【０２５３】
図19のステップS201:管理サーバ装置20の料金計算部219は，ハードウェア資源量を増加させるだけか判定する。前記の例では，ハードウェア資源量を減少させるので，ステップS201はNoとなり，ステップS206に移る。
【０２５４】
ステップS206: 料金計算部219は，使用ハードウェア資源量を増減した場合の合計使用料金Ftlを計算する。この料金計算については，図15のステップS56で説明したので省略する。
【０２５５】
ステップS207: 管理制御部211は，仮想マシン121に割り当るハードウェア資源量を変更した後の合計使用料金Ftlが，利用者が設定した指定料金以下か判定する。
【０２５６】
ハードウェア資源量変更後の合計使用料金Ftlが，利用者が設定した指定料金以下の場合 (ステップS207/Yes)，ステップS208に移る。
【０２５７】
ステップS208: 性能アップ制御部217は，ボトルネックとなるハードウェア資源量を所定単位分増加するよう仮想化ソフトウェア13に指示する。さらに，性能ダウン制御部218は，余力があるハードウェア資源量を所定単位分減少するよう仮想化ソフトウェア13に指示する。この指示の説明については，図15のステップS58で説明したので，具体的な説明を省略する。そして，図18のステップS126に移る。
【０２５８】
合計使用料金Ftlが，利用者が設定した指定料金を超えた場合(ステップS207/No)，呼び出し元の図20のステップS133に戻る。
【０２５９】
図20のステップS132において，性能ダウン可能判定部222が，仮想マシン121に割り当てられたCPU101のクロック数を所定単位分減少不可能と判定した場合(ステップS132/No)，ステップS134に移る。
【０２６０】
ステップS134:性能ダウン可能判定部222は，仮想マシン121に割り当てられたCPU101のコア数を所定単位分減少可能か判定する。
【０２６１】
仮想マシン121に割り当てられたCPU101のコア数を所定単位分減少したコア数が，CPU101の最小コア数以上の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたCPU101のコア数を所定単位分減少可能と判定し(ステップS134/Yes)，ステップS135に移る。CPU101の最小コア数とは，例えば1である。
【０２６２】
ステップS135: 料金計算部219は，CPU101のコア数を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(コア数)を減少する。
【０２６３】
図20のステップS135の処理については，図14のステップS20で説明した処理と同様の処理を実行する。具体的には，図19のステップS201以下の処理を実行する。この処理は，既に説明したので省略する。なお，図19のステップ206で算出された合計使用料金Ftlが，利用者が設定した指定料金を超えた場合(図19のステップS207/No)，呼び出し元の図20のステップS135に戻る。
【０２６４】
図20のステップS135が終了した場合，ステップS133が終了した場合，CPUの性能不足ではない場合(ステップS131/No)，仮想マシン121に割り当てられたCPU101のコア数を所定単位分減少不可能な場合(ステップS134/No)，ステップS136に移る。
【０２６５】
図10(B)，図10(C)の例では，CPU101の性能不足ではないので(ステップS131/No)，ステップS136に移る。
【０２６６】
図20のステップS136:性能余力検出部216は，仮想マシン121に割り当てられたメモリ量が余っているか判定する。すなわち，仮想マシン121が使用しているメモリ103のハードウェア資源量(メモリ量)が下限ハードウェア資源量未満(図10(C)参照)であるか判定する。仮想マシン121が使用しているメモリ103のハードウェア資源量が下限ハードウェア資源量未満の場合(ステップS136/YES)，ステップS137に移る。
【０２６７】
ステップS137:性能ダウン可能判定部222は，仮想マシン121に割り当てられたメモリ量を所定単位分減少可能か判定する。仮想マシン121に割り当てられたメモリ103のメモリ量を所定単位分減少したメモリ量が，メモリ103の最小メモリ量以上の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたメモリ量を所定単位分減少可能と判定し(ステップS137/Yes)，ステップS138に移る。メモリ103の最小メモリ量とは，例えばメモリ103の最大メモリ量の10%である。
【０２６８】
ステップS138: 料金計算部219は，メモリ量を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(メモリ量)を減少する。
【０２６９】
図20のステップS138の処理については，図14のステップS20で説明した処理である。
【０２７０】
ステップS138が終了した場合，仮想マシン121に割り当てられたメモリ量が余らない場合(ステップS136/No)，仮想マシン121に割り当てられたメモリ量を所定単位分減少不可能な場合(ステップS137/No)，図21のステップS141に移る。
【０２７１】
図10(B)，図10(C)の例では，メモリ量が余らないので(ステップS136/No)，図21のステップS141に移る。
【０２７２】
図21は，図20に続くフロー図であり，ステップS141から説明を始める。
【０２７３】
ステップS141:性能余力検出部216は，仮想マシン121に割り当てられたHDD104の性能に余力があるか判定する。
【０２７４】
すなわち，仮想マシン121が使用しているHDD104のハードウェア資源量が下限ハードウェア資源量未満(図10(C)参照)であるか判定する。ここでは，仮想マシン121が使用しているHDD104のハードウェア資源量はディスク帯域であるとする。仮想マシン121が使用しているHDD104のディスク帯域が下限ハードウェア資源量未満の場合(ステップS141/YES)，ステップS142に移る。
【０２７５】
ステップS142:性能ダウン可能判定部222は，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分減少可能か判定する。仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分減少したディスク帯域が，HDD104の最小ディスク帯域以上の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分減少可能と判定し(ステップS142/Yes)，ステップS143に移る。HDD104の最小ディスク帯域とは，例えばHDD104の最大ディスク帯域の10%である。
【０２７６】
ステップS143: 料金計算部219は，ディスク帯域を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(ディスク帯域)を減少する。
【０２７７】
図20のステップS143の処理については，図14のステップS20で説明した処理である。
【０２７８】
ステップS142において，性能ダウン可能判定部222が，仮想マシン121に割り当てられたHDD104のディスク帯域を所定単位分減少不可能と判定した場合(ステップS142/No)，ステップS144に移る。
【０２７９】
ステップS144:性能ダウン可能判定部222は，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分減少可能か判定する。
【０２８０】
仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分減少したディスクIO頻度が，HDD104の最小ディスクIO頻度以上の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分減少可能と判定し(ステップS144/Yes)，ステップS145 に移る。HDD104の最小ディスクIO頻度とは，例えばHDD104の最大ディスクIO頻度の10%である。
【０２８１】
ステップS145 :料金計算部219は，ディスクIO頻度を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(ディスクIO頻度)を減少する。ステップS145の処理については，図14のステップS20で説明した処理である。
【０２８２】
ステップS145が終了した場合，ステップS143が終了した場合，HDD104の性能に余力がない場合(ステップS141/No)，仮想マシン121に割り当てられたHDD104のディスクIO頻度を所定単位分減少不可能な場合(ステップS144/No)，ステップS146に移る。
【０２８３】
図10(B)，図10(C)の例では，HDD性能に余力がないので(ステップS136/No)，ステップS146に移る。
【０２８４】
ステップS146は，仮想マシン121に割り当てられたネットワーク帯域が余るか判定する。すなわち，仮想マシン121が使用しているNIC105のハードウェア資源量(ネットワーク帯域)が下限ハードウェア資源量未満(図10(C)参照)であるか判定する。仮想マシン121が使用しているNIC105のハードウェア資源量が下限ハードウェア資源量未満の場合(ステップS146/YES)，ステップS147に移る。
【０２８５】
ステップS147:性能ダウン可能判定部222は，仮想マシン121に割り当てられたNIC105のネットワーク帯域を所定単位分減少可能か判定する。仮想マシン121に割り当てられたNIC105のネットワーク帯域を所定単位分減少したネットワーク帯域が，NIC105の最小ネットワーク帯域の場合には，性能ダウン可能判定部222は，仮想マシン121に割り当てられたネットワーク帯域を所定単位分減少可能と判定し(ステップS147/Yes)，ステップS148に移る。NIC105の最小ネットワーク帯域とは，例えばNIC105の最大ネットワーク帯域の10%である。
【０２８６】
ステップS148: 料金計算部219は，ネットワーク帯域を減少(変更)した場合の合計使用料金を計算する。変更後のハードウェア資源量の料金が指定料金以下なら，性能アップ制御部217は，ボトルネックとなるハードウェア資源量を増加する。さらに，性能ダウン制御部218は，余力のあるハードウェア資源量(ネットワーク帯域)を減少する。図20のステップS133の処理については，図14のステップS20で説明した処理と同様の処理を実行する。具体的には，図19のステップS201以下の処理を実行する。
【０２８７】
図19のステップS201以下の処理においては，前記した例，すなわち図9(B)に示したように，ボトルネックとなるハードウェア資源量は，ネットワーク帯域であり，これを0.2Gbps分増加する。そして，余力があるハードウェア資源量は，メモリ量であり，これを0.2GB分減少する場合を想定する。この場合，料金計算部219は，仮想マシン121に割り当るハードウェア資源量を変更した後の合計使用料金Ftlを計算する。そして，管理制御部211は，合計使用料金Ftlが，利用者が設定した指定料金以下か判定する(ステップS207)。
【０２８８】
合計使用料金Ftlが，利用者が設定した指定料金以下であるとする(図19のステップS207/Yeｓ)。この場合，ステップS208に移る。
【０２８９】
ステップS208: 性能アップ制御部217は，ボトルネックとなるハードウェア資源量(ネットワーク帯域)を所定単位分(0.2Gbps)増加するよう仮想化ソフトウェア13に指示する。さらに，性能ダウン制御部218は，余力があるハードウェア資源量(メモリ量)を所定単位分(0.2GB)減少するよう仮想化ソフトウェア13に指示する。以後の処理は，前記したので，詳しい説明を省略する。そして，図18のステップS126に移る。
【０２９０】
なお，図21のステップS148が終了した場合，仮想マシン121に割り当てられたネットワーク帯域が不足でない場合(ステップS146/No)，仮想マシン121に割り当てられたネットワーク帯域を所定単位分減少不可能な場合(ステップS147/No)，図18のステップS126に移り，ステップS126の終了後，図16のステップS101に戻る。
【０２９１】
以上説明したように，本実施の形態の仮想マシンの管理サーバ装置によれば，仮想マシンの使用料金を利用者が指定した指定料金以下に収めつつ，仮想マシンに割り当てた各種ハードウェア資源量を適切に調整することができる。
【０２９２】
［他の実施の形態］
上記の実施形態では，1人の利用者に対応する1つの仮想マシン121におけるハードウェア資源量の増減処理について説明したが，複数の利用者に対応する仮想マシン121…12nについても同様にハードウェア資源量の増減処理を実行できる。同じく，複数の仮想マシン実行装置10…10ｎで実行される，複数の利用者に対応する仮想マシンについても同様にハードウェア資源量の増減処理を実行できる。
【０２９３】
この場合，管理サーバ装置20に，利用者毎の指定料金テーブルT1，割り当てテーブルT2，使用資源量テーブルT3，上限資源量テーブルT11，下限資源量テーブルT32を設ける。
【０２９４】
また，図17のステップS115において，ディスク帯域を増加できないと判定された場合には，性能不足検出部215は，他の上位性能のHDDが有るか判定してもよい。例えば，仮想マシン121が使用しているHDD104がSAS（Serial Attached SCSI）で接続されるHDDの場合であり，他のHDDがファイバーチャネル（FiberChanel）で接続されるHDDの場合には，性能不足検出部215は，他の上位性能のHDDが有ると判定する。そして，管理制御部211は，仮想マシン121に割り当てるHDDを他の上位性能のHDDに変更する旨をメモリ202に記憶する。この場合，この上位性能のHDDにあわせた使用料金が格納されたテーブルを事前に設ける。
【０２９５】
そして，図21のステップS142において，ディスクを減少できないと判定された場合，性能余力検出部216は，他の下位性能のHDDが有るか判定する。そして，他の下位性能のHDDがある場合，料金計算部219は，仮想マシン121に，他の下位性能のHDDのディスク帯域を割り当てた場合の料金を計算する。そして，管理制御部211は，他の下位性能のHDDのディスク帯域を割り当てた場合の料金(変更後のハードウェア資源量の料金)が指定料金以下なら，ボトルネックとなるハードウェア資源量を増加する。
【０２９６】
このように性能の異なるハードウェアに切り換えることで，仮想マシンに割り当てるハードウェア資源量が少ない場合には，低性能で安価なハードウェア資源を割り当て，仮想マシンに割り当てるハードウェア資源量が大きい場合には，高性能で高価なハードウェア資源を割り当てることができる。その結果，利用者の使用する仮想マシンにあわせてハードウェア資源を低性能なハードウェア資源，高性能なハードウェア資源に割り当てることができ，全体としてハードウェア資源を準備するコストを下げることができる。また，性能の異なるハードウェア資源を適宜切り替えて利用することができ，仮想マシン121に割り当てるハードウェア資源量の幅が広がる。その結果，クラウドサービスの利用者の利便性が向上する。
【０２９７】
また，HDD104のハードウェア資源量として，例えば，HDD104の記録容量を用いても良い。この場合，メモリ103のメモリ量と同様の調整処理が実行されることになる。
【０２９８】
以上の実施の形態をまとめると，次の付記のとおりである。
【０２９９】
（付記１)
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンを生成する仮想マシン実行装置と，前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し，
前記仮想マシン管理装置は，
前記利用者の指定料金が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量が格納された使用資源量テーブルと，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し，前記計算した使用料金と前記指定料金とを比較し，前記計算した使用料金が前記指定料金以下の場合には，前記第1のハードウェア資源量を増加する制御部とを有する
ことを特徴とする情報処理システム。
【０３００】
（付記２)
付記1において，
前記仮想マシン管理装置は，さらに，前記割り当てテーブルに対応して定められた各ハードウェア資源量が格納された上限資源量格納テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記仮想マシンが使用している各ハードウェア資源量の中で，前記上限資源量格納テーブルのハードウェア資源量以上のハードウェア資源量を第1のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
【０３０１】
（付記３）
付記2において，
前記仮想マシン管理装置は，さらに，前記各ハードウェア資源量の所定単位が格納された所定単位テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記第1のハードウェア資源量を前記所定単位分増加する
ことを特徴とする情報処理システム。
【０３０２】
（付記４)
付記3において，
前記仮想マシン管理装置は，さらに，前記各ハードウェア資源量の所定単位分の使用料金が格納された使用料金テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記使用料金テーブルに基づき，前記第1のハードウェア資源量を所定単位増加した場合における，前記仮想マシンの使用料金を計算する
ことを特徴とする情報処理システム。
【０３０３】
（付記５)
付記1において，
前記仮想マシン管理装置の前記制御部は，前記計算した使用料金が前記指定料金を超え，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められた余力ハードウェア資源量以下の第2のハードウェア資源量を検出した場合，前記第1のハードウェア資源量を増加し，前記第2のハードウェア資源量を減少した場合の仮想マシンの使用料金を計算し，前記計算した使用料金と前記指定料金とを比較し，前記計算した使用料金が前記指定料金以下の場合には，前記第1のハードウェア資源量を増加し，前記第2のハードウェア資源量を減少する
ことを特徴とする情報処理システム。
【０３０４】
（付記６)
付記5において，
前記仮想マシン管理装置は，さらに，前記割り当てテーブルに対応して定められた各ハードウェア資源量が格納された下限資源量格納テーブルを有し，
前記仮想マシン管理装置の前記制御部は，前記仮想マシンが使用している各ハードウェア資源量の中で，前記下限資源量格納テーブルのハードウェア資源量以下のハードウェア資源量を第2のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
【０３０５】
(付記７)
付記1において，
前記各ハードウェア資源量は，CPUのクロック数，メモリのメモリ量，ハードディスクドライブのドライブ帯域，ネットワークのネットワーク帯域である
ことを特徴とする情報処理システム。
【０３０６】
(付記８)
仮想化されたハードウェア資源上で複数の利用者が要求する複数の仮想マシンを生成する仮想マシン実行装置と，前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し，
前記仮想マシン管理装置は，
前記複数の利用者毎の指定料金が格納された複数の指定料金テーブルと，
前記指定料金に対応して定められた前記複数の仮想マシンに割り当てる各ハードウェア資源量が格納された複数の割り当てテーブルと，
前記複数の仮想マシンが使用している各ハードウェア資源量を格納する複数の使用資源量テーブルと，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し，前記計算した使用料金と前記指定料金とを比較し，前記計算した使用料金が前記指定料金以下の場合には，前記第1のハードウェア資源量を増加する制御部とを有する
ことを特徴とする情報処理システム。
【０３０７】
（付記９）
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量が格納された使用資源量テーブルとを有する仮想マシン管理装置の管理プログラムは，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し，前記計算した使用料金と前記指定料金とを比較し，前記計算した使用料金が前記指定料金以下の場合には，前記第1のハードウェア資源量を増加する処理をコンピュータに実行させる
ことを特徴とする管理プログラム。
【０３０８】
（付記１０）
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金が格納された指定料金テーブルと，
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量が格納された割り当てテーブルと，
前記仮想マシンが使用している各ハードウェア資源量が格納された使用資源量テーブルとを有する仮想マシン管理装置で実行される管理方法は，
前記仮想マシンが情報処理を実行している過程において，前記仮想マシンが使用している各ハードウェア資源量の中で，前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し，前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し，前記計算した使用料金と前記指定料金とを比較し，前記計算した使用料金が前記指定料金以下の場合には，前記第1のハードウェア資源量を増加する
ことを特徴とする管理方法。
【符号の説明】
【０３０９】
1…クラウドシステム，101…CPU，102…メモリ，103…HDD，107，108…NIC，10〜10n…仮想マシン実行装置，11…ハードウェア，121〜12n…仮想マシン，13…仮想化ソフトウェア，131…仮想マシン生成部，132…性能情報収集部，133…性能情報通知部，20…管理サーバ装置，201…CPU，202…メモリ，203…HDD，204，205…NIC，211…管理制御部,212…最小スペック仮想マシン生成指示部,213…性能情報収集指示部,214…性能情報取得部,215…性能不足検出部,216…性能余力検出部,217…性能アップ制御部,218…性能ダウン制御部,219…料金計算部,220，…ログ送信部,221…性能アップ可能判定部,222…性能ダウン可能判定部,30…クラウドサービスポータル，40…ネットワーク，50…利用者端末システム 
【図１】
0005842646.tif 000002
【図２】
0005842646.tif 000003
【図３】
0005842646.tif 000004
【図４】
0005842646.tif 000005
【図５】
0005842646.tif 000006
【図６】
0005842646.tif 000007
【図７】
0005842646.tif 000008
【図８】
0005842646.tif 000009
【図９】
0005842646.tif 000010
【図１０】
0005842646.tif 000011
【図１１】
0005842646.tif 000012
【図１２】
0005842646.tif 000013
【図１３】
0005842646.tif 000014
【図１４】
0005842646.tif 000015
【図１５】
0005842646.tif 000016
【図１６】
0005842646.tif 000017
【図１７】
0005842646.tif 000018
【図１８】
0005842646.tif 000019
【図１９】
0005842646.tif 000020
【図２０】
0005842646.tif 000021
【図２１】
0005842646.tif 000022