(57)【要約】【課題】  仮想マシンシステムの消費電力量を仮想マシンごとに抑制できるようにする。【解決手段】  仮想バッテリ管理部１４は，仮想マシン３へ仮想バッテリ１０を提供し，仮想マシンシステム１の電力消費量を示す消費電力量ポリシー１１１，仮想マシン３への充電量を示す充電量ポリシー１１２，仮想マシン３への電力の配分率を示す電力配分テーブル１１３を設定する。スケジュール管理部１２が仮想マシン３へリソースを割り当て，仮想マシン３へのリソース割り当て量１３１をリソース割り当て量管理部１３から得て，仮想マシン３が駆動中であれば，ＣＰＵ使用時間を，消費電力量ポリシー１１１，電力配分テーブル１１３を参照して放電量に換算し，仮想バッテリ１０の残量を減少させる。停止中であれば，充電量ポリシー１１２，電力配分テーブル１１３を参照して，停止時間を充電量に換算して，仮想バッテリ１０の残量を増加させる。【選択図】  図１
2010033207.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数の仮想マシンを実行する仮想マシンシステムにおいて，
当該仮想マシンシステムの最大消費電力量を消費電力量ポリシーとして設定する消費電力量設定手段と，
仮想マシンごとの消費電力量の配分比率が設定された消費電力配分テーブルを記憶する消費電力配分情報記憶部と，
仮想マシンのオペレーティングシステムに対して，当該仮想マシンが使用する電力量が保持され，放電または充電が可能な仮想バッテリを提供し，前記仮想マシンを当該仮想バッテリの有限の電力量で動作させる仮想バッテリ管理手段と，
前記物理計算機上のリソースを，前記仮想マシンに割り当てるスケジュール管理手段と，
前記スケジュール管理手段から，前記仮想マシン各々へのリソース割り当て状態を取得し，前記仮想マシンのリソース割り当て量を管理するリソース割り当て量管理手段と，
前記仮想マシンへのリソース割り当て量が所定の放電条件を満たす場合に，前記消費電力量ポリシーおよび前記消費電力配分テーブルを参照し，前記仮想マシンの消費電力量を計算し，該当する仮想バッテリの放電量を計算する放電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記放電量を減少させる放電手段とを備える
ことを特徴とする仮想バッテリを備えた仮想マシンシステム。
【請求項２】
前記仮想バッテリに充電可能な最大電力量を充電量ポリシーとして設定する電力量設定手段と，
前記仮想マシンごとの充電量の配分比率を設定する充電比率配分テーブルを記憶する充電比率配分情報記憶部と，
前記リソース割り当て量と前記充電量ポリシーとを参照し，前記仮想マシン状態が所定の充電条件を満たす場合に，当該仮想マシンの仮想バッテリへの充電量を計算する充電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記充電量を増加させる充電手段とを備える
ことを特徴とする請求項１記載の仮想バッテリを備えた仮想マシンシステム。
【請求項３】
前記スケジュール管理手段は，前記仮想マシン各々へのリソース割り当てを行う場合に，当該仮想マシンの仮想バッテリの残量に応じて，仮想マシンへのリソース割り当て量を変更する
ことを特徴とする請求項１または請求項２に記載の仮想バッテリを備えた仮想マシンシステム。
【請求項４】
前記物理計算機のリソース使用率を監視する手段を備え，
前記放電量算出手段は，前記物理計算機のリソース使用率に基づいて前記放電条件のしきい値を変動する
ことを特徴とする請求項１ないし請求項３のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【請求項５】
前記消費電力量ポリシーまたは前記充電量ポリシーは，所定の期間内における前記物理計算機の計測された最大消費電力量に基づいて決定される
ことを特徴とする請求項２ないし請求項４のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【請求項６】
物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数の仮想マシンを実行する仮想マシンシステムの前記物理計算機を，
当該仮想マシンシステムの最大消費電力量を消費電力量ポリシーとして設定する消費電力量設定手段と，
仮想マシンごとの消費電力量の配分比率が設定された消費電力配分テーブルを記憶する消費電力配分情報記憶部と，
仮想マシンのオペレーティングシステムに対して，当該仮想マシンが使用する電力量が保持され，放電または充電が可能な仮想バッテリを提供し，前記仮想マシンを当該仮想バッテリの有限の電力量で動作させる仮想バッテリ管理手段と，
前記物理計算機上のリソースを，前記仮想マシンに割り当てるスケジュール管理手段と，
前記スケジュール管理手段から，前記仮想マシン各々へのリソース割り当て状態を取得し，前記仮想マシンのリソース割り当て量を管理するリソース割り当て量管理手段と，
前記仮想マシンへのリソース割り当て量が所定の放電条件を満たす場合に，前記消費電力量ポリシーおよび前記消費電力配分テーブルを参照し，前記仮想マシンの消費電力量を計算し，該当する仮想バッテリの放電量を計算する放電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記放電量を減少させる放電手段として機能させる
ことを特徴とする仮想バッテリを備えた仮想マシンシステム用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数のコンピュータ環境（仮想マシン）を実行する仮想マシンシステムにおいて，物理計算機の消費電力量に基づき電力を仮想マシンに供給する仮想バッテリを備えた仮想マシンシステムおよび前記システム用プログラムに関する。
【０００２】
より詳しくは，仮想マシンシステムの消費電力量の抑制と，消費電力量に基づく仮想マシンへの適切なリソース割り当てを図るための，管理仮想的に電力を放充電できる仮想マシン用の仮想バッテリ，前記仮想バッテリを備えた仮想マシンシステムおよび前記システム用プログラムに関する。
【背景技術】
【０００３】
仮想化技術は，１台の物理的なコンピュータを論理的に複数のコンピュータ（仮想マシン，ＶＭ）に分割し，複数の独立したＯＳ（ゲストＯＳ）を実行できるようにする。従来，複数台のコンピュータで実行していたＯＳを１台のコンピュータに集約・統合することによって，ＣＰＵ・ストレージなどのハードウェア資源を効率的に利用し，省電力，省スペース化を実現できる。２００５年の京都議定書の発効以降，地球温暖化問題に対する企業・自治体の環境問題への対応が注目されており，サーバ仮想化による省電力ニーズは高まってきている。
【０００４】
実行中の仮想マシンを別のサーバへと無停止で移動させるライブマイグレーション技術により，仮想マシンを業務負荷に応じて効率的に集約し，余剰サーバの電力を切断するといった省電力運用方法が知られている。各仮想マシンの負荷状態に応じて自動的にライブマイグレーションを行う管理ツールとしては，ＶＭｗａｒｅ  Ｉｎｃ．社製のＶＭｗａｒｅ  ＶｉｒｔｕａｌＣｅｎｔｅｒが知られている。
【０００５】
また，仮想マシンを実行しているサーバの電力消費量，リソース使用率を条件としてライブマイグレーションする方法も提案されている（例えば，特許文献１参照）。
【０００６】
また，サーバ上におけるリソース配分方法としては，仮想マシンの負荷状態を監視してリソース割り当てを変更する方法，ゲストＯＳの発行する消費電力制御要求に応じてゲストＯＳへのリソース割り当てを変更する方法，使用されていないシステムリソースを制御して省電力化を図る方法がある。
【特許文献１】特表２００７−５３６６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術では，仮想マシンの状態を監視して，低負荷な仮想マシンへのリソース割り当て量の変更，または未使用リソースの解放等を行っていた。
【０００８】
今日では，二酸化炭素排出量の削減目標の設定，電力負荷平準化の必要性などが検討され，消費電力量がより切実な課題となっていることから，予めサーバ単位で消費電力量の上限を設定し，その制限の範囲で各々の仮想マシンが動作するよう制御できることが望ましい。
【０００９】
しかし，従来，消費電力量を考慮して仮想マシンのリソース割り当てを管理するようなリソース制御方法はなかった。
【００１０】
本発明の目的は，仮想マシンシステムの消費電力量抑制と消費電力量に基づく適切なリソース割り当てを行うため，コンピュータの消費電力に基づいて仮想的に電力を放充電する仮想バッテリを備えた仮想マシンを提供することである。
【００１１】
また，本発明の別の目的は，仮想マシンシステムの消費電力量抑制と消費電力量に基づく適切なリソース割り当てを行うため，仮想バッテリを利用して，仮想マシンシステムでのリソース割り当て管理方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明は，仮想マシンシステムの電力消費量を定める消費電力量ポリシー，仮想マシンシステムを構成する仮想マシンごとの電力配分率，仮想マシンごとの充電量を定める充電量ポリシーを設定し，各仮想マシンへ，有限の電力量で仮想マシンを動作させる放電／充電が可能な仮想デバイスを供給する。そして，各仮想マシンへの物理計算機のリソースの割り当て量を計測し，放電条件にもとづいて，仮想マシンのリソース割り当て量を消費電力量に換算して仮想バッテリを放電する。また，仮想マシンが停止中であれば，充電条件に基づいて仮想バッテリを充電する。
【００１３】
開示するシステムは，物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数の仮想マシンを実行する仮想マシンシステムにおいて，仮想マシンシステムの最大消費電力量を消費電力量ポリシーとして設定する消費電力量設定手段と，仮想マシンごとの消費電力量の配分比率が設定された消費電力配分テーブルを記憶する消費電力配分情報記憶部と，仮想マシンのオペレーティングシステムに対して，仮想マシンが使用する電力量が保持され，放電または充電が可能な仮想バッテリを提供し，仮想バッテリの有限の電力量で動作させる仮想バッテリ管理手段と，物理計算機上のリソースを，仮想マシンに割り当てるスケジュール管理手段と，スケジュール管理手段から，仮想マシン各々へのリソース割り当て状態を取得し，仮想マシンのリソース割り当て量を管理するリソース割り当て量管理手段と，仮想マシンへのリソース割り当て量が所定の放電条件を満たす場合に，消費電力量ポリシーおよび消費電力配分テーブルを参照し，仮想マシンの消費電力量を計算し，該当する仮想バッテリの放電量を計算する放電量算出手段と，仮想マシンの仮想バッテリの残量から前記放電量を減少させる放電手段とを備える。
【００１４】
前記構成のシステムは，リソース割り当て量管理手段から取得した仮想マシンのリソース割り当て状態に基づいて，仮想マシンが動作中であれば，消費電力量ポリシーと消費電量配分テーブルとを参照して，仮想マシンのリソース割り当て量を消費電力に換算して放電量を求め，仮想バッテリの残量から放電量を減少させる。
【００１５】
これにより，仮想マシン単位で消費電力量を把握することができ，不要な仮想マシンの駆動を抑制することが可能になる。
【００１６】
さらに，開示するシステムは，仮想バッテリに充電可能な最大電力量を充電量ポリシーとして設定する電力量設定手段と，仮想マシンごとの充電量の配分比率を設定する充電比率配分テーブルを記憶する充電比率配分情報記憶部と，リソース割り当て量と充電量ポリシーとを参照し，仮想マシン状態が所定の充電条件を満たす場合に，当該仮想マシンの仮想バッテリへの充電量を計算する充電量算出手段と，仮想マシンの仮想バッテリの残量から前記充電量を増加させる充電手段とを備える。
【００１７】
前記構成の開示するシステムは，仮想マシンが停止中であれば，リソース割り当て量から停止時間を算出し，充電量ポリシーと充電比率配分テーブルとを参照して，仮想バッテリへの充電量を計算し，仮想バッテリの残量から充電量を増加させる。
【００１８】
これにより，仮想マシンの停止中に消費した電力量の充当が行われるため，仮想マシンを不要な時間に停止させ必要時のみ起動させるという運用が期待でき，全体として仮想マシンシステムの消費電力量を抑制させることができる。
【００１９】
さらに，開示するシステムにおいて，前記スケジュール管理手段は，仮想マシン各々へのリソース割り当てを行う場合に，仮想マシンの仮想バッテリの残量に応じて，仮想マシンへのリソース割り当て量を変更することができる。
【００２０】
これにより，仮想バッテリの残量に基づいて仮想マシンに対するリソース割り当てを管理することが可能となり，前記の放電／充電のポリシーと組み合わせて，仮想マシンの使用の平準化を図ることができる。
【発明の効果】
【００２１】
本発明にかかる仮想バッテリによれば，コンピュータごとに設定された最大消費電力量に基づいて換算された電力量の放電／充電によって，仮想マシン単位で消費電力量を把握し，消費可能な電力量を管理することが可能となる。
【００２２】
よって，本来バッテリ駆動ではない仮想マシンの使用リソースを，消費電力量に基づいて制限することができ，仮想マシンシステム全体の消費電力量を抑制することができる。
【００２３】
また，各仮想マシンのリソース使用量が消費電力量として可視化されるため，各仮想マシンの消費電力量を仮想マシンシステム全体の消費電力量目標や課金体系と合わせて管理することができる。
【００２４】
さらに，仮想マシン上で動作するゲストＯＳは仮想バッテリの残量を検知し，積極的な省電力動作を行うことができるため，システム運用の省電力化の促進が期待できる。
【００２５】
さらに，仮想バッテリの残量は，ＯＳを通して，仮想マシンのユーザが確認することができる。よって，未使用時にこまめに仮想マシンを終了するなど，意識的な省電力行動の促進が期待できる。
【発明を実施するための最良の形態】
【００２６】
図１に，本発明にかかる仮想マシンシステムの構成例を示す図である。
【００２７】
仮想マシンシステム１は，仮想マシンモニタ装置２によって，物理メモリと仮想的に多重化された複数の仮想メモリとを管理して複数の仮想マシン３を動作させるコンピュータシステムである。
【００２８】
図１に示す仮想マシンシステム１を実施する１台の物理計算機（以下，単にコンピュータという）において，ハードウェアリソース（Ｈ／Ｗ）４は，中央演算ユニット（ＣＰＵ），メモリ（ＭＥＭ），外部記憶装置（ＨＤＤ）等で構成される。
【００２９】
仮想マシンモニタ装置２は，１台のコンピュータを複数のコンピュータとして仮想的に利用するための処理手段であり，コンピュータのハードウェアリソース４を区分けして，複数の仮想マシン３に割り当てて利用させるように管理する。
【００３０】
仮想マシン３は，ハードウェアリソース４上で動作するコンポーネントであり，仮想マシンモニタ装置２により，仮想的にあたかも独立したコンピュータのように動作することができる。
【００３１】
仮想マシン３が使用するハードウェアリソース（ｖＨ／Ｗ）は，仮想の中央演算ユニット（ｖＣＰＵ），仮想のメモリ（ｖＭＥＭ），仮想の外部記憶装置（ｖＨＤＤ）等で構成される。仮想マシン３は，この仮想ハードウェアリソースｖＨ／Ｗ上でゲストＯＳ（ゲスト・オペレーティングシステム）を実行し，ゲストＯＳによりアプリケーション（ＡＰＰ）を実行する。
【００３２】
仮想マシン３には，それぞれ，仮想ハードウェアｖＨ／Ｗの一構成要素として，後述する仮想バッテリ管理部１４により，仮想バッテリ１０が供給される。
【００３３】
仮想バッテリ１０は，仮想マシンモニタ装置２から残量を更新または参照可能な，有限な電力量を持つ仮想デバイスである。仮想マシン３は，仮想バッテリ１０に電力がある限りにおいて駆動することができる。
【００３４】
仮想マシンモニタ装置２は，電力ポリシー設定部１１，スケジュール管理部１２，リソース割り当て量管理部１３，仮想バッテリ管理部１４を備える。
【００３５】
電力ポリシー設定部１１は，消費電力量ポリシー１１１と充電量ポリシー１１２と電力配分テーブル１１３とを設定する。
【００３６】
消費電力量ポリシー１１１は，コンピュータ単位での消費電力量に基づく，仮想マシンンシステム１の単位時間当たりの消費電力量である。消費電力量は，時刻，時間帯ごとに設定されてもよい。
【００３７】
充電量ポリシー１１２は，仮想バッテリ１０の充電量である。充電量は，時間帯ごとに変更して設定されてもよい。例えば，昼間の時間帯では充電量をより多く，夜間の時間帯では充電量をより少なく設定してもよい。
【００３８】
電力配分テーブル１１３は，仮想マシンシステム１を構成する個々の仮想マシン３に消費電力量または充電電力量をどのように分配するかを定めたデータテーブルである。電力配分テーブル１１３には，各仮想マシン３の，消費電力量の配分比率と充電電力量の配分比率とが設定される。
【００３９】
スケジュール管理部１２は，仮想マシンシステム１を実施するコンピュータのＣＰＵ等のハードウェアリソース４を仮想マシン３に時分割で割り当てる。
【００４０】
スケジュール管理部１２は，仮想マシン３へハードウェアリソース４を割与える場合に，仮想マシン３の仮想バッテリ１０の残量に応じて，ハードウェアリソース４の割り当て量を変更することができる。また，仮想バッテリ１０の残量が一定量以下またはゼロであれば，ハードウェアリソース４の割り当てを行わないようにしてもよい。
【００４１】
リソース割り当て量管理部１３は，スケジュール管理部１２が仮想マシン３にハードウェアリソース４を割り当てた時間を示すリソース割り当て量１３１を管理する。
【００４２】
リソース割り当て量１３１は，仮想マシンシステム１を実施するコンピュータの負荷状態，実行中の仮想マシン数，仮想マシン３へのリソース割り当て時間等である。
【００４３】
図２に，リソース割り当て量１３１のデータ構成例を示す。
【００４４】
リソース割り当て量１３１は，仮想マシン３ごとに，仮想マシン３を一意に識別する「仮想マシンＩＤ」，仮想マシンが起動中であるか停止中であるかを示す「状態」，リソースとしてＣＰＵが割り当てられた時間を示す「ＣＰＵ割り当て時間（秒）」，仮想マシン３が停止中である時間を示す「停止時間（秒）」で構成される。
【００４５】
仮想バッテリ管理部１４は，各仮想マシン３のゲストＯＳに対して仮想バッテリ１０を提供し，仮想バッテリ１０の放電量／充電量を計算する処理と，仮想バッテリ１０の残量を管理する処理を行う。
【００４６】
具体的には，仮想バッテリ管理部１４は，仮想マシンシステム１を実施する物理コンピュータの最大消費電力量の上限に，電力配分テーブル１１３に設定される仮想マシン３ごとの配分比率に従って設定された電力量を各仮想マシン３に分配する。分配された電力量を仮想バッテリ１０の残量として保持される。
【００４７】
さらに，仮想バッテリ管理部１４は，リソース割り当て量管理部１３から定期的に仮想マシン３へのリソース割り当て量１３１を取得し，各仮想マシン３に提供した仮想バッテリ１０の状態を管理する仮想バッテリ管理テーブル１４１を生成・管理する。
【００４８】
図３に，仮想バッテリ管理テーブル１４１のデータ構成例を示す。
【００４９】
仮想バッテリ管理テーブル１４１には，仮想マシン３ごとに，「仮想マシンＩＤ」，仮想バッテリ１０が放電中であるか充電中であるかを示す「仮想バッテリ状態」，仮想バッテリ１０の残量を示す「仮想バッテリ残量」，仮想バッテリ１０が保持できる最大電力量を示す「仮想バッテリ容量」で構成される。
【００５０】
仮想バッテリ管理部１４は，リソース割り当て量１３１が所定の放電条件または充電条件を満たす場合に，消費電力量ポリシー１１１と電力配分テーブル１１３を参照して，仮想マシン３に割り当てた仮想バッテリ１０の放電量または充電量を計算する。
【００５１】
さらに，この放電量または充電量に基づいて，仮想バッテリ管理テーブル１４１の仮想マシン３の仮想バッテリ残量を更新する。
【００５２】
仮想バッテリ管理部１４は，放電条件として，仮想マシン３の一定期間内におけるリソース割り当て量１３１の総時間量が所定のしきい値以上である場合に，放電量を計算する。
【００５３】
また，充電条件として，仮想マシン３の一定期間内におけるリソース割り当て量１３１の総時間量が所定のしきい値以下である場合に，充電量を計算する。または，仮想マシン３の停止時間の総時間量が所定のしきい値以上である場合に，充電量を計算する。
【００５４】
さらに，放電条件または充電条件のしきい値は，仮想マシンシステム１のコンピュータの最大消費電力，または，コンピュータ上で動作している仮想マシン３の総数に基づいて決定されるようにしてもよい。
【００５５】
さらに，放電条件または充電条件のしきい値は，時刻または時間ごとに異なる値に設定されてもよい。
【００５６】
さらに，放電条件または充電条件のしきい値は，仮想マシン３に割り当てられた固有の優先度に基づいて決定されるようにしてもよい。
【００５７】
さらに，仮想マシンシステム１を実施するコンピュータが複数備えられる構成の場合には，放電条件または充電条件のしきい値は，コンピュータに割り当てられた固有の消費電力量に応じて決定されるようにしてもよい。
【００５８】
図４は，仮想バッテリ管理処理の処理フロー図である。
【００５９】
仮想バッテリ管理部１４は，リソース割り当て量管理部１３から，スケジュール管理部の仮想マシン３へのリソースの割り当て量１３１を定期的に取得する（ステップＳ１）。
【００６０】
仮想マシン３各々について，該当する仮想マシン３が起動中かを判定し（ステップＳ２），仮想マシン３が起動中であれば（ステップＳ２のＹＥＳ），仮想バッテリ管理部１４は，リソース割り当て量管理部１３のＣＰＵ割り当て時間を，消費電力量ポリシー１１１および電力配分テーブル１１３に基づいて，仮想マシン３個別の消費電力量に換算する（ステップＳ３）。
【００６１】
さらに，仮想バッテリ管理テーブル１４１の該当する仮想マシンの仮想バッテリ残量がゼロであるかをチェックして（ステップＳ４），仮想バッテリ残量がゼロでなければ（ステップＳ４のＮＯ），仮想バッテリ管理テーブル１４１の仮想バッテリ１０に蓄えられている電力量（仮想バッテリ残量）から換算した消費電力量分を減少させて（ステップＳ５），処理を終了する。
【００６２】
なお，仮想バッテリ残量がゼロであれば（ステップＳ４のＹＥＳ），その仮想マシン３のハードウェアリソース４の割り当て停止をスケジュール管理部１２へ通知するようにしてもよい。
【００６３】
これにより，仮想バッテリ１０を消費した仮想マシン３へのリソース割り当て量を制御することができ，コンピュータのリソース使用量を制限して，最大消費電力量を抑えることが可能となる。
【００６４】
一方，該当する仮想マシン３が起動中でなければ（ステップＳ２のＮＯ），仮想バッテリ管理部１４は，リソース割り当て量１３１の停止時間を，充電量ポリシー１１２および電力配分テーブル１１３を参照して，仮想マシン３個別の充電量に換算する（ステップＳ７）。
【００６５】
さらに，仮想バッテリ管理テーブル１４１の仮想バッテリ容量をチェックして（ステップＳ８），仮想バッテリ容量が満充電でなければ（ステップＳ８のＮＯ），仮想バッテリ管理テーブル１４１の仮想バッテリ１０に蓄えられている電力量（仮想バッテリ残量）に換算した充電量分を仮想バッテリ容量まで増加させる（ステップＳ９）。仮想バッテリ容量が満充電であれば（ステップＳ８のＹＥＳ），処理を終了する。
【００６６】
さらに，仮想マシン３を一定時間以上停止する時間帯に応じて充電量を変動させる等の充電条件を設定しておくことによって，ユーザの仮想マシン３の利用時間の平準化を促進することができる。
【００６７】
例えば，昼間の稼働ピーク時間帯に，仮想マシン３を１時間停止していると，夜間２時間仮想マシン３を利用できる分だけ，仮想バッテリ１０の電力量が充電されるなどの条件を放電条件／充電条件を組み合わせて設定すれば，夜間に仮想マシン３を利用するユーザが増えることが予想される。
【００６８】
以下，仮想マシンシステム１における仮想バッテリ１０の管理を，さらに具体的に説明する。
【００６９】
〔第１の実施例〕
第１の実施例として，仮想マシンシステム１を実施するコンピュータの負荷状態，仮想マシン３のリソース使用時間等に従って，仮想バッテリ１０の放電量を算出する例を示す。
【００７０】
図５（Ａ）は，仮想マシンシステム１を実施するサーバ（コンピュータ）の消費電力量とサーバのリソースの使用率との関係例を示す図，図５（Ｂ）は，サーバのリソースの使用率の時間的推移例を示す図である。
【００７１】
仮想マシンシステム１のサーバのスペックが，最大消費電力＝６００Ｗ，アイドル時消費電力＝１２０Ｗであり，サーバ消費電力とサーバリソース使用率の関係が，図５（Ａ）のグラフに示すように，
サーバ消費電力［Ｗ］＝サーバリソース使用率［％］×４．８＋１２０
で表される場合を考える。
【００７２】
この時，Ｔ秒間のサーバ消費電力量は，
サーバ消費電力量［Ｗｈ］
＝（Ｔ秒間の平均リソース使用率［％］×４．８＋１２０）×Ｔ／３６００［時間］
となる。
【００７３】
このＴ秒間に，ある仮想マシン３が，ｔ秒間サーバ上のリソースを占有していたとすると，その仮想マシン３の消費電力量は，
仮想マシン３の消費電力量［Ｗｈ］＝サーバ消費電力量×ｔ／Ｔ
となる。
【００７４】
ここで，図５（Ｂ）に時系列で示されるようにサーバが稼働している場合に，サーバリソース使用率が５０％となっている期間中のある３秒間において，３台の仮想マシン３に対して，ちょうど１秒ずつ均等にリソースが割り当てられたとする。それらの仮想マシン３の消費電力量は，
仮想マシン３の消費電力量
＝（５０×４．８×１２０×３／３６００）×１／３＝０．１［Ｗｈ］
と算出される。よって，仮想バッテリ１０の残量から，放電量０．１Ｗｈ分を減少させることになる。
【００７５】
〔第２の実施例〕
第２の実施例として，仮想マシンシステム１のサーバの消費電力量を制限する場合を考える。
【００７６】
図６（Ａ）は，第２の実施例における消費電力量ポリシー１１１の例を示す図，図６（Ｂ）は，電力配分テーブル１１３の例を示す図である。
【００７７】
第２の実施例では，第１の実施例のケースと同様の状態において，図６（Ａ）に示すように，１時間当たりのサーバ消費電力量を４８０Ｗｈに制限し，図６（Ｂ）に示すように，サーバ上の仮想マシンの１０台に均等に電力量を割り当て，仮想マシン１台当たりの仮想バッテリ容量が４８Ｗｈと設定されているとする。
【００７８】
図７（Ａ）に示す第１の稼働状況例として，サーバのリソース使用率が常に１００％であって，１０台の仮想マシン３が等しく動作している場合には，各仮想マシン３の仮想バッテリ１０は４８分で残量ゼロとなる。
【００７９】
このとき，仮想マシン３の６０秒当たりの消費電力量は，
各仮想マシンの消費電力量
＝｛（１００×４．８＋１２０）×６０／３６００｝×１／１０＝１［Ｗｈ］
である。
【００８０】
また，サーバ全体の消費電力量は，
サーバ全体の消費電力量＝１Ｗｈ×１０台×４８分＝４８０Ｗｈ
となる。
【００８１】
したがって，全ての仮想マシン３が停止した４８分時点でサーバを停止すれば，消費電力量が４８０Ｗｈに抑えられる。
【００８２】
図７（Ｂ）に示す第２の稼働状況例として，サーバのリソース使用率が常に７５％で１０台の仮想マシン３が等しく動作している場合には，各仮想マシン３の仮想バッテリ１０は６０分で残量ゼロとなる。
【００８３】
このとき，仮想マシン３の６０秒当たりの消費電力量は，
各仮想マシンの消費電力量
＝｛（７５×４．８＋１２０）×６０／３６００｝×１／１０＝０．８［Ｗｈ］
となる。また，サーバ全体の消費電力量は，
サーバ全体の消費電力量＝０．８Ｗｈ×１０台×６０分＝４８０Ｗｈ
となり，１時間当たりの消費電力量が４８０Ｗｈに抑えられる。
【００８４】
〔第３の実施例〕
第３の実施例として，第１の実施例のケースで，仮想マシン停止中の仮想バッテリ１０の充電条件を設定し，消費電力量の平準化を図る場合を考える。
【００８５】
図８（Ａ），（Ｂ）は，第３の実施例において設定される消費電力量ポリシー１１１の例を示す図，図８（Ｃ）は，充電量ポリシー１１２の例を示す図，図８（Ｄ）に電力配分テーブル１１３の例を示す図である。
【００８６】
また，サーバ上の仮想マシンが８台で，各々の仮想バッテリ容量が４８Ｗｈであるとする。
【００８７】
この時，図８（Ａ）に示すように，サーバの消費電力量は，時間帯別に設定されているが，第２の実施例と同様に，１時間当たり４８０Ｗｈに抑えられる。また，充電量ポリシー１１２は，時間帯ごとに設定されている。
【００８８】
仮想バッテリ１０の充電量は，図８（Ｂ）の充電量ポリシー１１２に従えば，１つの仮想マシン３が空の仮想バッテリ１０を満充電するのにかかる時間は，
夜間：４８Ｗｈ／（６０Ｗｈ×１０％）＝８時間
昼間：４８Ｗｈ／（９６Ｗｈ×１０％）＝５時間
ピーク時：４８Ｗｈ／（１６０Ｗｈ×１０％）＝３時間
となる。
【００８９】
したがって，ピーク時に仮想マシン３が停止状態にあれば，夜間に停止する場合に比べてより短時間で充電可能となる。よって，ユーザがピーク時の仮想マシン３の使用を避けることが期待でき，消費電力量の平準化が可能となる。
【００９０】
〔第４の実施例〕
図９に，第４の実施例として，サーバルームに設置した仮想マシンシステム１を実施するサーバ（ＶＭサーバ）上で仮想マシン（ＶＭ）３を実行し，仮想マシンＶＭ３を，ネットワーク５を介してリモートデスクトッププロトコル（ＲＤＰ）などにより，シンクライアント６から利用する場合の一構成例を示す。
【００９１】
第４の実施例において，仮想マシンシステム１を実施するサーバの仮想マシンモニタ装置２は，外部の電力ポリシーサーバと通信し，消費電力量ポリシー１１１，充電量ポリシー１１２を取得し，設定する。
【００９２】
図９の構成において，各仮想マシン３には仮想バッテリ１０が設けられるため，例えば，ＶＭサーバで，ＡＣアダプタ非接続時のノートＰＣのような動作を実現することができる。本来はバッテリ駆動ではない仮想マシンシステム１で，リソースの使用を一定の消費電力量内に抑えることができる。
【００９３】
以上，本発明をその実施の形態により説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【００９４】
例えば，コンピュータ上で動作する複数の仮想マシン３が１つの仮想バッテリ１０を共用するようにしてもよい。
【００９５】
さらに，電力ポリシー設定部１１は，仮想マシンシステム１とネットワーク通信が可能な外部装置として構成されるようにしてもよい。
【００９６】
本発明の形態および実施例の特徴を列記すると以下のとおりである。
【００９７】
（付記１）  物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数のコンピュータ環境（仮想マシン）を実行する仮想マシンシステムにおいて，
当該仮想マシンシステムの最大消費電力量を消費電力量ポリシーとして設定する消費電力量設定手段と，
仮想マシンごとの消費電力量の配分比率が設定された消費電力配分テーブルを記憶する消費電力配分情報記憶部と，
仮想マシンのオペレーティングシステムに対して，当該仮想マシンが使用する電力量が保持され，放電または充電が可能な仮想バッテリを提供し，前記仮想マシンを当該仮想バッテリの有限の電力量で動作させる仮想バッテリ管理手段と，
前記物理計算機上のリソースを，前記仮想マシンに割り当てるスケジュール管理手段と，
前記スケジュール管理手段から，前記仮想マシン各々へのリソース割り当て状態を取得し，前記仮想マシンのリソース割り当て量を管理するリソース割り当て量管理手段と，
前記仮想マシンへのリソース割り当て量が所定の放電条件を満たす場合に，前記消費電力量ポリシーおよび前記消費電力配分テーブルを参照し，前記仮想マシンの消費電力量を計算し，該当する仮想バッテリの放電量を計算する放電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記放電量を減少させる放電手段とを備える
ことを特徴とする仮想バッテリを備えた仮想マシンシステム。
【００９８】
（付記２）  前記仮想バッテリに充電可能な最大電力量を充電量ポリシーとして設定する電力量設定手段と，
前記仮想マシンごとの充電量の配分比率を設定する充電比率配分テーブルを記憶する充電比率配分情報記憶部と，
前記リソース割り当て量と前記充電量ポリシーとを参照し，前記仮想マシン状態が所定の充電条件を満たす場合に，当該仮想マシンの仮想バッテリへの充電量を計算する充電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記充電量を増加させる充電手段とを備える
ことを特徴とする前記付記１記載の仮想バッテリを備えた仮想マシンシステム。
【００９９】
（付記３）  前記スケジュール管理手段は，前記仮想マシン各々へのリソース割り当てを行う場合に，当該仮想マシンの仮想バッテリの残量に応じて，仮想マシンへのリソース割り当て量を変更する
ことを特徴とする前記付記１または前記付記２に記載の仮想バッテリを備えた仮想マシンシステム。
【０１００】
（付記４）  前記物理計算機のリソース使用率を監視する手段を備え，
前記放電量算出手段は，前記物理計算機のリソース使用率に基づいて前記放電条件のしきい値を変動する
ことを特徴とする前記付記１ないし前記付記３のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０１】
（付記５）  前記消費電力量ポリシーまたは前記充電量ポリシーは，所定の期間内における前記物理計算機の計測された最大消費電力量に基づいて決定される
ことを特徴とする前記付記２ないし前記付記４のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０２】
（付記６）  前記消費電力量ポリシーまたは前記充電量ポリシーは，所定の期間内における前記物理計算機の計算された最大消費電力量のリストとして定義される
ことを特徴とする前記付記２ないし前記付記４のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０３】
（付記７）  前記放電条件として，前記仮想マシンの一定期間内におけるリソース割り当ての総時間量が所定のしきい値以上であることが定義される
ことを特徴とする前記付記１ないし前記付記６のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０４】
（付記８）  前記充電条件として，前記仮想マシンの一定期間内におけるリソース割り当ての総時間量が所定のしきい値以下であることが定義される
ことを特徴とする前記付記２ないし前記付記７のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０５】
（付記９）  前記充電条件として，前記仮想マシンにおいてオペレーティングシステムが終了し，当該仮想マシンの実行終了後経過した総時間量が所定のしきい値以上であることが定義される
ことを特徴とする前記付記２ないし前記付記７のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０６】
（付記１０）  前記放電条件のしきい値または前記充電条件のしきい値のいずれか一方または両方が，前記物理計算機の最大消費電力に基づいて決定される
ことを特徴とする前記付記７ないし前記付記９のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０７】
（付記１１）  前記放電条件のしきい値または前記充電条件のしきい値のいずれか一方または両方が，時刻または時間ごとに設定される
ことを特徴とする前記付記７ないし前記付記９のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０８】
（付記１２）  前記放電条件のしきい値または前記充電条件のしきい値のいずれか一方または両方が，前記物理計算機上で動作している仮想マシンの総数に基づいて決定される
ことを特徴とする前記付記７ないし前記付記９のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１０９】
（付記１３）  前記放電条件のしきい値または前記充電条件のしきい値のいずれか一方または両方が，前記仮想マシンに割り当てられた固有の優先度に基づいて前記仮想マシン個々に決定される
ことを特徴とする前記付記７ないし前記付記９のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１１０】
（付記１４）  前記放電条件のしきい値または前記充電条件のしきい値のいずれか一方または両方が，前記物理計算機に割り当てられた固有の電力量に応じて決定される
ことを特徴とする前記付記７ないし前記付記９のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１１１】
（付記１５）  前記物理計算機上で動作する複数の仮想マシンが前記１つの仮想バッテリを共用する
ことを特徴とする前記付記１ないし前記付記１４のいずれか一項に記載の仮想バッテリを備えた仮想マシンシステム。
【０１１２】
（付記１６）  前記消費電力量設定手段は，当該仮想マシンシステムとネットワーク通信が可能な外部装置として構成される
ことを特徴とする前記付記１に記載の仮想バッテリを備えた仮想マシンシステム。
【０１１３】
（付記１７）  前記電力量設定手段は，当該仮想マシンシステムとネットワーク通信が可能な外部装置として構成される
ことを特徴とする前記付記２に記載の仮想バッテリを備えた仮想マシンシステム。
【０１１４】
（付記１８）  物理計算機上で仮想的に複数のオペレーティングシステムを動作させて複数のコンピュータ環境（仮想マシン）を実行する仮想マシンシステムの前記物理計算機を，
当該仮想マシンシステムの最大消費電力量を消費電力量ポリシーとして設定する消費電力量設定手段と，
仮想マシンごとの消費電力量の配分比率が設定された消費電力配分テーブルを記憶する消費電力配分情報記憶部と，
仮想マシンのオペレーティングシステムに対して，当該仮想マシンが使用する電力量が保持され，放電または充電が可能な仮想バッテリを提供し，前記仮想マシンを当該仮想バッテリの有限の電力量で動作させる仮想バッテリ管理手段と，
前記物理計算機上のリソースを，前記仮想マシンに割り当てるスケジュール管理手段と，
前記スケジュール管理手段から，前記仮想マシン各々へのリソース割り当て状態を取得し，前記仮想マシンのリソース割り当て量を管理するリソース割り当て量管理手段と，
前記仮想マシンへのリソース割り当て量が所定の放電条件を満たす場合に，前記消費電力量ポリシーおよび前記消費電力配分テーブルを参照し，前記仮想マシンの消費電力量を計算し，該当する仮想バッテリの放電量を計算する放電量算出手段と，
前記仮想マシンの仮想バッテリの残量から前記放電量を減少させる放電手段として機能させる
ことを特徴とする仮想バッテリを備えた仮想マシンシステム用プログラム。
【図面の簡単な説明】
【０１１５】
【図１】仮想マシンシステムの構成例を示す図である。
【図２】リソース割り当て量のデータ構成例を示す図である。
【図３】仮想バッテリ管理テーブルのデータ構成例を示す図である。
【図４】仮想バッテリ管理処理の処理フロー図である。
【図５】第１の実施例におけるサーバ消費電力量とサーバリソース使用率との関係例およびサーバリソースの使用率の時間的推移例を示す図である。
【図６】第２の実施例における消費電力量ポリシー例および電力配分テーブル例を示す図である。
【図７】第２の実施例におけるサーバの稼働状況例を示す図である。
【図８】第３の実施例における消費電力量ポリシー例，充電量ポリシー例，電力配分テーブル例を示す図である。
【図９】第４の実施例における，仮想マシンシステムが適用されるシステムの一構成例を示す図である。
【符号の説明】
【０１１６】
１  仮想マシンシステム
２  仮想マシンモニタ装置
３  仮想マシン
４  ハードウェアリソース
１０  仮想バッテリ
１１  電力ポリシー設定部
１２  スケジュール管理部
１３  リソース割り当て量管理部
１４  仮想バッテリ管理部
１１１  消費電力量ポリシー
１１２  充電量ポリシー
１１３  電力配分テーブル
１３１  リソース割り当て量
１４１  仮想バッテリ管理テーブル
５  ネットワーク
【図１】
2010033207.tif 000003
【図２】
2010033207.tif 000004
【図３】
2010033207.tif 000005
【図４】
2010033207.tif 000006
【図５】
2010033207.tif 000007
【図６】
2010033207.tif 000008
【図７】
2010033207.tif 000009
【図８】
2010033207.tif 000010
【図９】
2010033207.tif 000011