(57)【要約】【課題】仮想マシンの消費電力を算出する。【解決手段】本発明のサーバシステムは、物理リソースの各動作ステートに対応する処理当たりの消費電力を示すステートマッピングテーブルと、物理リソースの動作ステートの変化を検知する動作ステートデータ検知部を含み、変化を検知した動作ステートに対応する処理当たりの消費電力を、ステートマッピングテーブルから得て、通知する消費電力/処理通知処理部と、消費電力/処理通知処理部からの通知に応答して、物理リソース当たりの消費電力を格納する消費電力/処理テーブルを更新する消費電力計算処理部と、物理リソースの処理数をカウントする物理リソース処理数カウント部を含み、仮想マシンに関して、物理リソースの消費電力/処理を消費電力/処理テーブルから取得し、仮想マシンが実行した物理リソースに対する処理数を物理リソース処理数カウント部から取得し、取得した消費電力/処理と前記処理数との積を、仮想マシンの消費電力として出力する仮想マシン消費電力計算処理部を有する。【選択図】図１
2010277509.tif 000002
【特許請求の範囲】
【請求項１】
物理リソースの各動作ステートに対応する処理当たりの消費電力を示すステートマッピングテーブルと、前記物理リソースの動作ステートの変化を検知する動作ステートデータ検知部を含み、前記変化を検知した動作ステートに対応する処理当たりの消費電力を、前記ステートマッピングテーブルから得て、通知する消費電力/処理通知処理部と、前記消費電力/処理通知処理部からの通知に応答して、前記物理リソース当たりの消費電力を格納する消費電力/処理テーブルを更新する消費電力計算処理部と、前記物理リソースの処理数をカウントする物理リソース処理数カウンタを含み、仮想マシンに関して、前記物理リソースの消費電力/処理を前記消費電力/処理テーブルから取得し、前記仮想マシンが実行した前記物理リソースに対する処理数を前記物理リソース処理数カウンタから取得し、取得した前記消費電力/処理と前記処理数との積を、前記仮想マシンの消費電力として出力する仮想マシン消費電力計算処理部を有することを特徴とするサーバシステム。
【請求項２】
請求項１記載のサーバシステムにおいて、前記仮想マシンを制御するハイパーバイザが、前記物理リソース処理数カウンタを含む前記仮想マシン消費電力計算処理部と、前記消費電力/処理通知処理部と、前記物理リソースの前記ステートマッピングテーブルと、前記消費電力/処理テーブルとを有することを特徴とするサーバシステム。
【請求項３】
請求項２記載のサーバシステムにおいて、前記ステートマッピングテーブルは、ＣＰＵ、メモリ、ＨＤＤ、ＮＩＣなどの前記物理リソースの各動作ステートとその動作ステートに対応する処理あたりの消費電力を格納し、前記消費電力/処理通知処理部は、前記動作ステートに変化のあった前記物理リソースの現在の動作ステートと、前記物理リソースの前記ステートマッピングテーブルから、前記動作ステートに変化があった前記物理リソースの現在の処理当たりの消費電力を取得することを特徴とするサーバシステム。
【請求項４】
請求項１記載の前記物理リソース処理数カウンタは、前記サーバシステムのＣＰＵの実行済み命令数、メモリとＨＤＤとのＲｅａｄ/Ｗｒｉｔｅ ＩＯ数、ＮＩＣのＩｎ/Ｏｕｔ Ｂｙｔｅ数をカウントすることを特徴とするサーバシステム。
【請求項５】
物理リソースの各動作ステートに対応する処理当たりの消費電力を示すステートマッピングテーブルと、前記物理リソース当たりの消費電力を格納する消費電力/処理テーブルとを有するサーバシステム上で動作する仮想マシンの消費電力の計算方法であって、
消費電力/処理通知処理部は、前記物理リソースの動作ステートの変化を検知し、前記変化を検知した動作ステートに対応する処理当たりの消費電力を、前記ステートマッピングテーブルから得、得た前記消費電力を通知し、
前記消費電力計算処理部は、前記消費電力/処理通知処理部からの前記消費電力の通知に応答して、前記消費電力/処理テーブルを更新し、
仮想マシン消費電力計算処理部は、前記物理リソースの処理数をカウントし、前記仮想マシンに関して、前記物理リソースの消費電力/処理を前記消費電力/処理テーブルから取得し、取得した前記消費電力/処理とカウントした前記処理数との積を、前記仮想マシンの消費電力として出力することを特徴とする仮想マシンの消費電力の計算方法。
【請求項６】
請求項５記載の仮想マシンの消費電力の計算方法において、前記仮想マシンを制御するハイパーバイザが、前記仮想マシン消費電力計算処理部と、前記消費電力/処理通知処理部と、前記物理リソースの前記ステートマッピングテーブルと、前記消費電力/処理テーブルとを有することを特徴とする仮想マシンの消費電力の計算方法。
【請求項７】
請求項６記載の仮想マシンの消費電力の計算方法において、前記ステートマッピングテーブルは、ＣＰＵ、メモリ、ＨＤＤ、ＮＩＣなどの前記物理リソースの各動作ステートとその動作ステートに対応する処理あたりの消費電力を格納し、前記消費電力/処理通知処理部は、前記動作ステートに変化のあった前記物理リソースの現在の動作ステートと、前記物理リソースの前記ステートマッピングテーブルから、前記動作ステートに変化があった前記物理リソースの現在の処理当たりの消費電力を取得することを特徴とする仮想マシンの消費電力の計算方法。
【請求項８】
請求項５記載の仮想マシンの消費電力の計算方法において、前記物理リソースの処理数のカウントは、前記サーバシステムのＣＰＵの実行済み命令数、メモリとＨＤＤとのＲｅａｄ/Ｗｒｉｔｅ ＩＯ数、ＮＩＣのＩｎ/Ｏｕｔ Ｂｙｔｅ数をカウントすることを特徴とする仮想マシンの消費電力の計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理サーバ上で仮想マシンが動作する環境において、仮想マシンの消費電力を計算するサーバシステム及びその消費電力方法に関するものである。
【背景技術】
【０００２】
物理サーバの運用に実際に要する消費電力に対して従量課金することで、課金基準の正当性が高いサーバレンタルサービスを提供できる。これまで、物理サーバの消費電力に応じて従量課金する方法は存在した（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開 ２００８-３７１２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、物理サーバ上で仮想マシンが動作する環境において、個々の仮想マシンの消費電力を算出する方法は存在しないため、仮想マシンごとの消費電力に応じて従量課金することはできなかった。
【０００５】
本発明の目的は、物理サーバ上で仮想マシンが動作する環境において、個々の仮想マシンの消費電力の計算方法を提供し、仮想マシンごとの消費電力に応じて従量課金する手段を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のサーバシステムは、物理リソースの各動作ステートに対応する処理当たりの消費電力を示すステートマッピングテーブルと、物理リソースの動作ステートの変化を検知する動作ステートデータ検知部を含み、変化を検知した動作ステートに対応する処理当たりの消費電力を、ステートマッピングテーブルから得て、通知する消費電力/処理通知処理部と、消費電力/処理通知処理部からの通知に応答して、物理リソース当たりの消費電力を格納する消費電力/処理テーブルを更新する消費電力計算処理部と、物理リソースの処理数をカウントする物理リソース処理数カウント部を含み、仮想マシンに関して、物理リソースの消費電力/処理を消費電力/処理テーブルから取得し、仮想マシンが実行した物理リソースに対する処理数を物理リソース処理数カウント部から取得し、取得した消費電力/処理と前記処理数との積を、仮想マシンの消費電力として出力する仮想マシン消費電力計算処理部を有する。
【０００７】
例えばＣＰＵの場合、ハイパフォーマンスや省電力、アイドルなどの各動作ステートに対して１命令の実行にかかる消費電力を予め定義し、動作ステートの変化を検知した場合、現在の動作ステートの１命令にかかる消費電力を取得する。取得した１命令あたりの消費電力と、その動作ステート中に仮想マシン１が実行した命令数との積を求めることでＣＰＵの消費電力を計算する。同様の処理を各物理リソースで行い、仮想マシンの消費電力として出力する。
【発明の効果】
【０００８】
本発明によれば、物理サーバ上で仮想マシンが動作する環境において、個々の仮想マシンの消費電力を計算できるため、仮想マシンごとの消費電力に応じて従量課金する方法を提供できる。
【図面の簡単な説明】
【０００９】
【図１】サーバシステムの構成を示した図である。
【図２】仮想マシン消費電力テーブルの一例である。
【図３】消費電力/処理テーブルの一例である。
【図４】物理リソースの消費電力/処理データの一例である。
【図５】物理リソースの動作ステートデータの一例である。
【図６】ＣＰＵマッピングステートテーブルの一例である。
【図７】メモリマッピングステートテーブルの一例である。
【図８】ＨＤＤステートマッピングテーブルの一例である。
【図９】ＮＩＣステートマッピングテーブルの一例である。
【図１０】ハイパーバイザの起動時の処理フローチャートである。
【図１１】仮想マシンの起動時の処理フローチャートである。
【図１２】物理リソースの消費電力/処理通知処理のフローチャートである。
【図１３】消費電力計算処理のフローチャートである。
【図１４】仮想マシンの消費電力計算処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面に基づいて詳細に説明する。図１は、本実施形態のサーバシステムの構成を示す。本実施形態では、物理ＣＰＵ１０１と、物理メモリ１０２と、物理ＨＤＤ１０３と、ＮＩＣ１０４を搭載した物理サーバ１００に、ハイパーバイザ１０５と、複数の仮想マシン（仮想マシン１と仮想マシン２）１０６が動作する仮想環境について説明する。ハイパーバイザ１０５は、物理サーバ１００に仮想環境を作り、その仮想環境上で仮想マシン１０６の動作を制御する。ただし、本実施形態は、仮想マシン１０６の動作制御をホストＯＳが行うホスト型の仮想環境でも実施できる。
【００１１】
ハイパーバイザ１０５は、ＣＰＵステートマッピングテーブル１１１と、メモリステートマッピングテーブル１１２と、ＨＤＤステートマッピングテーブル１１３と、ＮＩＣステートマッピングテーブル１１４と、消費電力/処理テーブル１１７を有し、物理リソースの動作ステート検知処理部１１５を含む物理リソースの消費電力/処理通知処理部と、仮想マシン１及び仮想マシン２の各々に対応する消費電力計算処理部１１６を含む消費電力計算処理部１０８を有する。また、消費電力計算処理部１１６は、それぞれ物理リソース処理数カウンタ１２０を有する。
【００１２】
ハイパーバイザ１０５を起動すると、物理リソースの動作ステート検知部１１５において、各物理リソースの動作ステートの変化を物理リソースの動作ステートデータ１１８として検知し、ＣＰＵステートマッピングテーブル１１１、メモリステートマッピングテーブル１１２、ＨＤＤステートマッピングテーブル１１３、ＮＩＣステートマッピングテーブル１１４から変化のあった物理リソースの消費電力/処理データ１０９を取得し、消費電力計算処理部１０８に通知する。
【００１３】
消費電力計算処理部１０８は、通知された物理リソースの消費電力/処理データ１０９を用いて消費電力/処理テーブル１１７を更新し、消費電力/処理テーブル１１７を最新の状態に保つ。
【００１４】
仮想マシンに対応する仮想マシン消費電力計算処理部１１６は、物理リソース処理数カウンタ１２０から取得した仮想マシンが実行した各物理リソースの処理数（処理回数）と、消費電力/処理テーブル１１７の各物理リソースの消費電力/処理との積を求め、仮想マシンの消費電力テーブル１１０として出力する。図1では、仮想マシン消費電力計算処理部１１６は、仮想マシンの消費電力テーブル１１０を仮想マシン１０６に通知するように示しているが、図示していない管理サーバや物理サーバ１００に接続する表示装置に出力しても良い。
【００１５】
図２は、仮想マシンに対応する仮想マシン消費電力計算処理部１１６が仮想マシン１０６に通知する仮想マシン消費電力テーブル１１０の一例を示す。仮想マシン消費電力テーブル１１０は、物理リソース１３０と消費電力(Ｗ)１３１で構成され、物理リソース１３０には、物理リソースとしてのＣＰＵ、メモリ、ＨＤＤ、ＮＩＣ、消費電力(Ｗ)１３１には、各物理リソースの消費電力(Ｗ)のエリアが設けられ、消費電力計算処理部１１６で計算された結果が格納される。仮想マシン１０６は、通知された仮想マシン消費電力テーブル１１０より、仮想マシン１０６の消費電力を知る。図２の消費電力(Ｗ)１３１の各数値例は、仮想マシン１を想定したものである。
【００１６】
図３は、仮想マシンに対応する仮想マシン消費電力計算処理部１１６が各物理リソースの消費電力を計算する際に参照する、消費電力/処理テーブル１１７の一例を示す。現在の消費電力/処理テーブル１１７は、物理リソース１３２と消費電力/処理(Ｗ)１３３で構成され、物理リソース１３２には、物理リソースとしてのＣＰＵ、メモリ、ＨＤＤ、ＮＩＣ、消費電力/処理１３３には、各物理リソースの消費電力/処理(Ｗ)のエリアが設けられ、物理リソースの消費電力/処理通知処理部１０７から通知された動作ステートが変化した物理リソースの消費電力/処理データ１０９によって更新することで、最新の状態に保たれる。
【００１７】
図４は、物理リソースの消費電力/処理通知処理部１０７が消費電力計算処理部１０８に通知する動作ステートが変化した物理リソースの消費電力/処理データ１０９の一例を示す。消費電力/処理データ１０９は、ヘッダー部１３４とデータ部１３５で構成され、ヘッダー部１３４には、動作ステートが変化した物理リソースとしてＣＰＵ、メモリ、ＨＤＤ、ＮＩＣのいずれか、またデータ部１３５には、ヘッダー部１３４の物理リソースに対応する消費電力/処理(Ｗ)が格納される。
【００１８】
図５は、物理リソースの動作ステート検知処理部１１５が検知する物理リソースの動作ステートデータ１１８の一例を示す。物理リソースの動作ステートデータ１１８は、ヘッダー部１３６とデータ部１３７で構成され、ヘッダー部１３６には、動作ステートが変化した物理リソースとしてＣＰＵ、メモリ、ＨＤＤ、ＮＩＣのいずれか、データ部１３７にはヘッダー部１３６の物理リソースに対応する動作ステートＳ１/Ｓ２/Ｓ３/・・・/Ｉｄｌｅが格納される。
【００１９】
図６は、ＣＰＵの動作ステートが変化した場合に、物理リソースの消費電力/処理通知処理部１０７が変化したＣＰＵの動作ステートに対応する消費電力/処理を取得する際に参照するＣＰＵステートマッピングテーブル１１１の一例を示す。ＣＰＵステートマッピングテーブル１１１は、ＣＰＵ動作ステート１４０と消費電力/実行済み命令(Ｗ)１４１で構成され、ＣＰＵ動作ステート１４０にはＣＰＵの動作ステートＳ１/Ｓ２/Ｓ３/・・・/Ｉｄｌｅ、消費電力/実行済み命令(Ｗ)１４１には、ＣＰＵ動作ステート１４０の各動作ステートに対応する消費電力/実行済み命令(Ｗ)が格納される。ＣＰＵステートマッピングテーブル１１１は、物理サーバ１００に搭載している物理ＣＰＵ１０１の仕様に基づいて予め定義しておく。
【００２０】
図７は、メモリの動作ステートが変化した場合に、物理リソースの消費電力/処理通知処理部１０７が変化したメモリの動作ステートに対応する消費電力/処理を取得する際に参照するメモリステートマッピングテーブル１１２の一例を示す。メモリステートマッピングテーブル１１２は、メモリ動作ステート１４２と消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)１４３で構成され、メモリ動作ステート１４２にはメモリの動作ステートＳ１/Ｓ２/Ｓ３/・・・/Ｉｄｌｅ、消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)１４３には、メモリ動作ステート１４２の各動作ステートに対応する消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)が格納される。メモリステートマッピングテーブル１１２は、物理サーバ１００に搭載している物理メモリ１０２の仕様に基づいて予め定義しておく。
【００２１】
図８は、ＨＤＤの動作ステートが変化した場合に、物理リソースの消費電力/処理通知処理部１０７が変化したＨＤＤの動作ステートに対応する消費電力/処理を取得する際に参照するＨＤＤステートマッピングテーブル１１３の一例を示す。ＨＤＤステートマッピングテーブル１１３は、ＨＤＤ動作ステート１４４と消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)１４５で構成され、ＨＤＤ動作ステート１４４にはＨＤＤの動作ステートＳ１/Ｓ２/Ｓ３/・・・/Ｉｄｌｅ、消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)１４５には、ＨＤＤ動作ステート１４４の各動作ステートに対応する消費電力/Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ(Ｗ)が格納される。ＨＤＤステートマッピングテーブル１１３は、物理サーバ１００に搭載している物理ＨＤＤ１０３の仕様に基づいて予め定義しておく。
【００２２】
図９は、ＮＩＣの動作ステートが変化した場合に、物理リソースの消費電力/処理通知処理部１０７が変化したＮＩＣの動作ステートに対応する消費電力/処理を取得する際に参照するＮＩＣステートマッピングテーブル１１４の一例を示す。ＮＩＣステートマッピングテーブル１１４は、ＮＩＣ動作ステート１４６と消費電力/Ｉｎ,Ｏｕｔ Ｂｙｔｅ(Ｗ)１４７で構成され、ＮＩＣ動作ステート１４６にはＮＩＣの動作ステートＳ１/Ｓ２/Ｓ３/・・・/Ｉｄｌｅ、消費電力/Ｉｎ,Ｏｕｔ Ｂｙｔｅ(Ｗ)１４７には、ＮＩＣ動作ステート１４６の各動作ステートに対応する消費電力/Ｉｎ,Ｏｕｔ Ｂｙｔｅ(Ｗ)が格納される。ＮＩＣステートマッピングテーブル１１４は、物理サーバ１００に搭載している物理ＮＩＣ１０４の仕様に基づいて予め定義しておく。
【００２３】
図１０は、ハイパーバイザ１０５の起動時の処理フローチャートである。ハイパーバイザ１０５は起動時に、物理リソースの消費電力/処理通知処理１０７を起動し(Ｓ１０)、消費電力計算処理１０８を起動する(Ｓ１１)。
【００２４】
図１１は、仮想マシン１０６の起動時の処理フローチャートである。仮想マシン１０６は、ハイパーバイザ１０５によって起動される。仮想マシン１０６は、起動時に消費電力計算処理１１６を起動する（Ｓ２０）。この仮想マシン１０６の処理は、各仮想マシンに関して同様に実行する。
【００２５】
図１２は、物理リソースの消費電力/処理通知処理１０７のフローチャートである。物理リソースの動作ステート検知処理部１１５の実行により、物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの動作ステートの変化を物理リソースの動作ステートデータ１１８として検知したか否かを判定する(Ｓ３０)。物理リソースの動作ステート検知処理部１１５は、物理リソースの動作ステートデータ１１８を監視することにより、その変化を検知する。例えば、ＣＰＵの動作ステートがＩｄｌｅからＳ２に変化した場合は、変化のあった物理リソースの動作ステートデータ１１８のヘッダー部１３６はＣＰＵ、データ部１３７は、Ｓ２となる。
【００２６】
動作ステートの変化を検知したとき、物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの各動作ステートと、ＣＰＵステートマッピングテーブル１１１、メモリステートマッピングテーブル１１２、ＨＤＤステートマッピングテーブル１１３、ＮＩＣステートマッピングテーブル１１４より、物理リソースの消費電力/処理データ１０９を作成する（Ｓ３１）。例えば、ＣＰＵの動作ステートがＩｄｌｅからＳ２に変化した場合は、ＣＰＵステートマッピングテーブル１１１のＣＰＵステート１４０のＳ２に対応する消費電力/実行済み命令(Ｗ)１４１の０.３３ｐＷを取得し、物理リソースの消費電力/処理データ１０９のヘッダー部１３４にＣＰＵ、データ部１３５に０.３３ｐＷを格納する。作成した物理リソースの消費電力/処理データ１０９を消費電力計算処理１０８に通知する(Ｓ３３)。
【００２７】
図１３は、消費電力計算処理１０８のフローチャートである。ハイパーバイザ１０５から起動されると、消費電力/処理データテーブル１１７を作成する(Ｓ４０)。消費電力/処理データテーブル１１７に、物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの動作ステートに対応する消費電力/処理を格納する。例えば、ＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの動作ステートがすべてＳ１の場合、ＣＰＵ、メモリ、ＨＤＤ、ＮＩＣのステートマッピングテーブル１１１、１１２、１１３、１１４を参照して、消費電力/処理データテーブル１１７の物理リソース１３２のＣＰＵ、メモリ、ＨＤＤ、ＮＩＣのそれぞれに対応する消費電力/処理１３３に、０.４２ｐＷ、２７５ｍＷ/３００ｍＷ(Ｒｅａｄ/Ｗｒｉｔｅ)、２．１Ｗ、０．３０ｎＷを格納する。
【００２８】
物理リソースの消費電力/処理データ通知処理部１０７から、物理リソースの消費電力/処理データ１０９が通知されたかどうかを確認する（Ｓ４１）。通知がない場合、Ｓ４１に戻る。
【００２９】
通知があった場合、通知された物理リソースの消費電力/処理データ１０９を用いて、消費電力/処理テーブル１１７を更新する（Ｓ４２）。例えば、ヘッダー部１３４がＣＰＵ、データ部１３５が０．３３ｐＷの物理リソースの消費電力/処理データ１０９が通知された場合、消費電力/処理データテーブル１１７の物理リソース１３２のＣＰＵに対応する消費電力/処理１３３を０．４２ｐＷから０．３３ｐＷに更新する。消費電力/処理データテーブル１１７の更新を仮想マシンの消費電力計算処理１１６に通知する（Ｓ４３）。
【００３０】
図１４は、仮想マシンの消費電力計算処理１１６のフローチャートである。仮想マシンの消費電力計算処理１１６は、ＣＰＵ 実行済み命令数のカウントを開始し(Ｓ５０)、メモリ Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ数のカウントを開始し(Ｓ５１)、ＨＤＤ Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ数のカウントを開始し(Ｓ５２)、ＮＩＣ Ｉｎ,Ｏｕｔ Ｂｙｔｅ数のカウントを開始する(Ｓ５３)。
【００３１】
消費電力/処理テーブル１１７から物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの消費電力/処理を取得する(Ｓ５４)。例えば、消費電力/処理データテーブル１１７の物理リソース１３２のＣＰＵに対応する消費電力/処理１３３は０.４２ｐＷ、メモリに対応する値は、２７５ｍＷ/３００ｍＷ(Ｒｅａｄ/Ｗｒｉｔｅ)、ＨＤＤに対応する値は、２．１Ｗ、ＮＩＣに対応する値は０．３０ｎＷである。
【００３２】
消費電力計算処理間隔時間が経過するまで、または消費電力/処理データテーブル１１７の更新が通知されるまでＷａｉｔする(Ｓ５５)。
【００３３】
Ｓ５０〜Ｓ５３でカウントを開始した各物理リソースのら、仮想マシンが実行した処理数を取得する(Ｓ５６)。例えば、物理リソース処理数カウンタ１２０による、ＣＰＵ 実行済み命令数が１２００ｋＭＩ(Ｍｉｌｌｉｏｎ Ｉｎｓｔｒｕｃｔｉｏｎｓ)、メモリ Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ数がＲｅａｄ ＝ １５, Ｗｒｉｔｅ ＝ １４、ＨＤＤ Ｒｅａｄ,Ｗｒｉｔｅ ＩＯ数がＲｅａｄ ＝ ８, Ｗｒｉｔｅ ＝ ６、ＮＩＣ ,Ｏｕｔ Ｂｙｔｅ数がＩｎ ＝ １ＧＢ, Ｏｕｔ ＝ ２ＧＢである。
【００３４】
Ｓ５４で取得した物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの消費電力/処理と、Ｓ５６で取得した物理リソースＣＰＵ、メモリ、ＨＤＤ、ＮＩＣの処理数との積から仮想マシン消費電力テーブル１１０を作成する（Ｓ５７）。例えば、Ｓ５４とＳ５６で示した数値例の場合、仮想マシン消費電力テーブル１１０の物理リソース１３０のＣＰＵに対応する消費電力(Ｗ)１３１は０.４２ｐＷ  ×  １２００ｋＭＩ = ５０.４Ｗ、メモリに対応する消費電力(Ｗ)１３１は２７５ｍＷ  ×  １５ ＋ ３００ｍＷ  ×  １４ = ８.３Ｗ、ＨＤＤに対応する消費電力(Ｗ)１３１は２．１Ｗ  ×  (８ ＋ ６) = ２９.４Ｗ、ＮＩＣに対応する消費電力(Ｗ)１３１は０．３ｎＷ  ×  (１ＧＢ ＋ ２ＧＢ) = ０.６Ｗになる。
【００３５】
作成した仮想マシン消費電力テーブル１１０を仮想マシン(１０６)に通知する（Ｓ５８）。
【００３６】
消費電力/処理データテーブル１１７が更新されたかどうかを確認する(Ｓ５９)。消費電力/処理データテーブル１１７が更新された場合、Ｓ５４に戻り、消費電力/処理データテーブル１１７の値を取得する。更新されていない場合、(Ｓ５５)に戻りＷａｉｔする。
【００３７】
本実施形態によれば、物理サーバ上で仮想マシンが動作する環境において、個々の仮想マシンの消費電力を計算できるため、仮想マシンごとの消費電力に応じて従量課金する方法を提供できる。
【符号の説明】
【００３８】
１００：物理サーバ、１０１：物理ＣＰＵ、１０２：物理メモリ、１０３：物理ＨＤＤ、１０４：物理ＮＩＣ、１０５：ハイパーバイザ、１０６：仮想マシン、１０７：物理リソースの消費電力/処理通知処理部、１０８：消費電力計算処理部、１０９：物理リソースの消費電力/処理データ、１１０：仮想マシン消費電力テーブル、１１１：ＣＰＵステートマッピングテーブル、１１２：メモリステートマッピングテーブル、１１３：ＨＤＤステートマッピングテーブル、１１４：ＮＩＣステートマッピングテーブル、１１５：物理リソースの動作ステート検知部、１１６：仮想マシン消費電力計算処理部、１１７：消費電力/処理テーブル、１１８：物理リソースの動作ステートデータ。
【図１】
2010277509.tif 000003
【図２】
2010277509.tif 000004
【図３】
2010277509.tif 000005
【図４】
2010277509.tif 000006
【図５】
2010277509.tif 000007
【図６】
2010277509.tif 000008
【図７】
2010277509.tif 000009
【図８】
2010277509.tif 000010
【図９】
2010277509.tif 000011
【図１０】
2010277509.tif 000012
【図１１】
2010277509.tif 000013
【図１２】
2010277509.tif 000014
【図１３】
2010277509.tif 000015
【図１４】
2010277509.tif 000016