[クラウドシステムの構成]
図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)で説明したように,定期的例えば1月毎に,管理サーバ装置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/Yes)。この場合,ステップ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…10nで実行される,複数の利用者に対応する仮想マシンについても同様にハードウェア資源量の増減処理を実行できる。
この場合,管理サーバ装置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のハードウェア資源量を増加する制御部とを有する
ことを特徴とする情報処理システム。
(付記2)
付記1において,
前記仮想マシン管理装置は,さらに,前記割り当てテーブルに対応して定められた各ハードウェア資源量が格納された上限資源量格納テーブルを有し,
前記仮想マシン管理装置の前記制御部は,前記仮想マシンが使用している各ハードウェア資源量の中で,前記上限資源量格納テーブルのハードウェア資源量以上のハードウェア資源量を第1のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
(付記3)
付記2において,
前記仮想マシン管理装置は,さらに,前記各ハードウェア資源量の所定単位が格納された所定単位テーブルを有し,
前記仮想マシン管理装置の前記制御部は,前記第1のハードウェア資源量を前記所定単位分増加する
ことを特徴とする情報処理システム。
(付記4)
付記3において,
前記仮想マシン管理装置は,さらに,前記各ハードウェア資源量の所定単位分の使用料金が格納された使用料金テーブルを有し,
前記仮想マシン管理装置の前記制御部は,前記使用料金テーブルに基づき,前記第1のハードウェア資源量を所定単位増加した場合における,前記仮想マシンの使用料金を計算する
ことを特徴とする情報処理システム。
(付記5)
付記1において,
前記仮想マシン管理装置の前記制御部は,前記計算した使用料金が前記指定料金を超え,前記仮想マシンが使用している各ハードウェア資源量の中で,前記割り当てテーブルの各ハードウェア資源量に対応して定められた余力ハードウェア資源量以下の第2のハードウェア資源量を検出した場合,前記第1のハードウェア資源量を増加し,前記第2のハードウェア資源量を減少した場合の仮想マシンの使用料金を計算し,前記計算した使用料金と前記指定料金とを比較し,前記計算した使用料金が前記指定料金以下の場合には,前記第1のハードウェア資源量を増加し,前記第2のハードウェア資源量を減少する
ことを特徴とする情報処理システム。
(付記6)
付記5において,
前記仮想マシン管理装置は,さらに,前記割り当てテーブルに対応して定められた各ハードウェア資源量が格納された下限資源量格納テーブルを有し,
前記仮想マシン管理装置の前記制御部は,前記仮想マシンが使用している各ハードウェア資源量の中で,前記下限資源量格納テーブルのハードウェア資源量以下のハードウェア資源量を第2のハードウェア資源量として検出する
ことを特徴とする情報処理システム。
(付記7)
付記1において,
前記各ハードウェア資源量は,CPUのクロック数,メモリのメモリ量,ハードディスクドライブのドライブ帯域,ネットワークのネットワーク帯域である
ことを特徴とする情報処理システム。
(付記8)
仮想化されたハードウェア資源上で複数の利用者が要求する複数の仮想マシンを生成する仮想マシン実行装置と,前記仮想マシン実行装置を管理する仮想マシン管理装置とを有し,
前記仮想マシン管理装置は,
前記複数の利用者毎の指定料金が格納された複数の指定料金テーブルと,
前記指定料金に対応して定められた前記複数の仮想マシンに割り当てる各ハードウェア資源量が格納された複数の割り当てテーブルと,
前記複数の仮想マシンが使用している各ハードウェア資源量を格納する複数の使用資源量テーブルと,
前記仮想マシンが情報処理を実行している過程において,前記仮想マシンが使用している各ハードウェア資源量の中で,前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し,前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し,前記計算した使用料金と前記指定料金とを比較し,前記計算した使用料金が前記指定料金以下の場合には,前記第1のハードウェア資源量を増加する制御部とを有する
ことを特徴とする情報処理システム。
(付記9)
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金が格納された指定料金テーブルと,
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量が格納された割り当てテーブルと,
前記仮想マシンが使用している各ハードウェア資源量が格納された使用資源量テーブルとを有する仮想マシン管理装置の管理プログラムは,
前記仮想マシンが情報処理を実行している過程において,前記仮想マシンが使用している各ハードウェア資源量の中で,前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し,前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し,前記計算した使用料金と前記指定料金とを比較し,前記計算した使用料金が前記指定料金以下の場合には,前記第1のハードウェア資源量を増加する処理をコンピュータに実行させる
ことを特徴とする管理プログラム。
(付記10)
仮想化されたハードウェア資源上で利用者が要求する情報処理を実行する仮想マシンの前記利用者の指定料金が格納された指定料金テーブルと,
前記指定料金に対応して定められた前記仮想マシンに割り当てる各ハードウェア資源量が格納された割り当てテーブルと,
前記仮想マシンが使用している各ハードウェア資源量が格納された使用資源量テーブルとを有する仮想マシン管理装置で実行される管理方法は,
前記仮想マシンが情報処理を実行している過程において,前記仮想マシンが使用している各ハードウェア資源量の中で,前記割り当てテーブルの各ハードウェア資源量に対応して定められたハードウェア資源量以上の第1のハードウェア資源量を検出し,前記第1のハードウェア資源量を増加した場合の仮想マシンの使用料金を計算し,前記計算した使用料金と前記指定料金とを比較し,前記計算した使用料金が前記指定料金以下の場合には,前記第1のハードウェア資源量を増加する
ことを特徴とする管理方法。