(57)【要約】【課題】仮想マシン単位だけでなく、仮想マシン間でのリソース量の依存関係も考慮できる仮想マシン管理システムを実現する。【解決手段】一般仮想マシンからの処理要求を実行する特殊仮想マシンのリソース使用量を取得する仮想マシンリソース使用量取得手段と、この特殊仮想マシン内のリソース使用量がどの一般仮想マシンからの処理のために消費されているか、という内訳を取得する共有リソース使用量取得手段と、特殊仮想マシンのリソース使用量と特殊仮想マシン内のリソース使用量の内訳の比率を演算することで特殊仮想マシン内での各一般仮想マシンの共有リソース使用量を計算するリソース量演算手段を備える。【選択図】図１
2008217332.tif 000002
【特許請求の範囲】
【請求項１】
処理の一部を特殊仮想マシン内の共有リソースを利用して実行する一般仮想マシンと、一般仮想マシンでの処理の一部を代理で実行する特殊仮想マシンとを備える仮想化システムにおいて、前記仮想マシンを管理する仮想マシン管理システムであって、
仮想マシン単位のリソース使用量を取得する仮想マシンリソース使用量取得手段と、
特殊仮想マシンの共有リソース使用量のうち一般仮想マシンの代理処理に費やされる共有リソース量を前記仮想マシンリソース使用量取得手段から得られる仮想マシンのリソース使用量に基づき演算する共有リソース使用量演算手段と、
を備えることを特徴とする仮想マシン管理システム。
【請求項２】
請求項１に記載の仮想マシン管理システムであって、
前記共有リソース使用量計算手段は、
一般仮想マシンから特殊仮想マシンへ要求される処理量をモニタする要求処理量取得手段と、
前記仮想マシンリソース使用量取得手段が取得する特殊仮想マシンのリソース使用量と前記要求処理量取得手段が取得する各一般仮想マシンからの処理量との比率にもとづき各一般仮想マシンからの要求処理に費やされる共有リソース量を演算するリソース量演算手段と、
を備えることを特徴とする仮想マシン管理システム。
【請求項３】
請求項２に記載の仮想マシン管理システムであって、
前記要求処理量取得手段は、特殊仮想マシン内での各仮想マシンの共有リソース使用率を取得することにより行われることを特徴とし、
前記リソース量演算手段は、仮想マシンリソース使用率測定手段から取得する特殊仮想マシンのリソース使用量と共有リソース使用率取得手段から取得する特殊仮想マシン内での各仮想マシンの共有リソース使用率とを演算して、各一般仮想マシンからの要求処理に費やされる共有リソース量を求めることにより行われることを特徴とする仮想マシン管理システム。
【請求項４】
請求項２に記載の仮想マシン管理システムであって、
前記要求処理量取得手段は、特殊仮想マシンの共有リソースを使用する仮想マシンと特殊仮想マシンとの間でのデータ転送回数を数えるデータ転送カウントにより行われることと、
前記リソース量演算手段は、前記データ転送カウントにより取得する各一般仮想マシンのデータ転送回数の比率に基づいて演算することにより行われることを特徴とする仮想マシン管理システム。
【請求項５】
請求項１に記載の仮想マシン管理システムであって、
一般仮想マシンからの処理要求に費やされる特殊仮想マシンのリソース使用量の比率を保持する共有リソース使用比率データベースを更に備え、
前記共有リソース使用量計算手段は、前記共有リソース使用比率データベース内のリソース使用比率と、前記仮想マシンリソース使用量取得手段が取得する一般仮想マシンのリソース使用量とに基づいて演算することにより行われることを特徴とする仮想マシン管理システム。
【請求項６】
請求項５に記載の仮想マシン管理システムであって、
仮想マシン上で動作するアプリケーションの種類ごとに一般仮想マシンとアプリケーションの処理のために費やされる特殊仮想マシンのリソース使用量の比率を保持する共有リソース使用比率データベースを更に備え、
前記共有リソース使用量計算手段は、
前記共有リソース使用比率データベースから前記アプリケーションのリソース使用比率を取得する手段と、
前記取得したリソース使用比率と前記仮想マシンリソース使用量取得手段が取得する対象一般仮想マシンのリソース使用量と演算する手段と、
により行われることを特徴とする仮想マシン管理システム。
【請求項７】
請求項５に記載の仮想マシン管理システムであって、
アプリケーションの処理当たりに実行される命令の回数を保持するアプリケーション特性データベースと、
前記命令を仮想マシン上で実行した際の仮想マシンのリソース使用量と特殊仮想マシンのリソース使用量を保持するシステム特性データベースと、
仮想マシン上で動作しているアプリケーションの種類を保持するアプリケーション管理データベースとを更に備え、
前記共有リソース使用量計算手段は、
管理対象とする仮想マシン上で動作しているアプリケーションをアプリケーション管理データベースから検索する手段と、
前記検索されたアプリケーションを実行する際に、実行する命令種類と回数をアプリケーション特性データベースから検索する手段と、
前記検索された命令種類を実行する際の仮想マシンのリソース使用量と特殊仮想マシン内の共有リソースの使用量をシステム特性データベースから検索する手段と、
前記検索された各命令の仮想マシンのリソース量と特殊仮想マシン内の共有リソース量に各命令の実行回数を掛けることでアプリケーション実行時の仮想マシンのリソース量と特殊仮想マシン内の共有リソース量の比率を求める手段と、
前記リソース量の比率と仮想マシンリソース使用量取得手段が取得する対象仮想マシンのリソース使用量を演算することで対象仮想マシンに関連する特殊仮想マシン内の共有リソース量を演算する手段と、
を備えることを特徴とする仮想マシン管理システム。
【請求項８】
請求項１乃至７の何れか１項に記載の仮想マシン管理システムであって、
前記共有リソース使用量計算手段で求めた、各仮想マシンが使用する特殊仮想マシン内の共有リソース量を出力する出力手段を更に備えることを特徴とする仮想マシン管理システム。
【請求項９】
請求項１乃至８の何れか１項に記載の仮想マシン管理システムであって、
複数の一般仮想マシンが構築されている際は、
各一般仮想マシンに要求されるリソース量と前記共有リソース量計算手段が計算する当該仮想マシンの処理に費やされる特殊仮想マシン内のリソース量に基づいて、各仮想マシンがリソースを使用できるように、一般仮想マシンの構成場所を計算するリソース割当計算手段を更に備えることを特徴とする仮想マシン管理システム。
【請求項１０】
請求項９に記載の仮想マシン管理システムであって、
前記リソース割当計算手段で計算されたリソース量に従い、仮想マシンのリソース量を設定する、仮想マシン設定手段を更に備えることを特徴とする仮想マシン管理システム。
【請求項１１】
請求項１０に記載の仮想マシン管理システムであって、
前記仮想マシン設定手段が、仮想マシンに必要なリソース量と、前記仮想マシンが利用する共有リソースのリソース量とが、共に移動先の物理マシンで確保できることを確認する移動先リソース量確認手段と、
前記移動先リソース量確認手段でリソース量を確認した後に異なる物理マシンに仮想マシンを移動させる手段と、
を更に備えることを特徴とする仮想マシン管理システム。
【請求項１２】
処理の一部を特殊仮想マシン内の共有リソースを利用して実行する一般仮想マシンと、一般仮想マシンでの処理の一部を代理で実行する特殊仮想マシンとを備える仮想化システムにおいて、前記仮想マシンを管理する仮想マシン管理方法であって、
仮想マシン単位のリソース使用量を取得する仮想マシンリソース使用量取得ステップと、
特殊仮想マシンの共有リソース使用量のうち一般仮想マシンの代理処理に費やされる共有リソース量を前記仮想マシンリソース使用量取得ステップから得られる仮想マシンのリソース使用量に基づき演算する共有リソース使用量演算ステップと、
を備えることを特徴とする仮想マシン管理方法。
【請求項１３】
請求項１２に記載の仮想マシン管理方法であって、
前記共有リソース使用量計算ステップは、
一般仮想マシンから特殊仮想マシンへ要求される処理量をモニタする要求処理量取得ステップと、
前記仮想マシンリソース使用量取得ステップが取得する特殊仮想マシンのリソース使用量と前記要求処理量取得ステップが取得する各一般仮想マシンからの処理量との比率にもとづき各一般仮想マシンからの要求処理に費やされる共有リソース量を演算するリソース量演算ステップと、
を備えることを特徴とする仮想マシン管理方法。
【請求項１４】
請求項１３に記載の仮想マシン管理方法であって、
前記要求処理量取得ステップは、特殊仮想マシン内での各仮想マシンの共有リソース使用率を取得することにより行われることを特徴とし、
前記リソース量演算ステップは、仮想マシンリソース使用率測定ステップから取得する特殊仮想マシンのリソース使用量と共有リソース使用率取得ステップから取得する特殊仮想マシン内での各仮想マシンの共有リソース使用率とを演算して、各一般仮想マシンからの要求処理に費やされる共有リソース量を求めることにより行われることを特徴とする仮想マシン管理方法。
【請求項１５】
請求項１３に記載の仮想マシン管理方法であって、
前記要求処理量取得ステップは、特殊仮想マシンの共有リソースを使用する仮想マシンと特殊仮想マシンとの間でのデータ転送回数を数えるデータ転送カウントにより行われることと、
前記リソース量演算ステップは、前記データ転送カウントにより取得する各一般仮想マシンのデータ転送回数の比率に基づいて演算することにより行われることを特徴とする仮想マシン管理方法。
【請求項１６】
請求項１２に記載の仮想マシン管理方法であって、
一般仮想マシンからの処理要求に費やされる特殊仮想マシンのリソース使用量の比率を保持する共有リソース使用比率データベースを利用し、
前記共有リソース使用量計算ステップは、前記共有リソース使用比率データベース内のリソース使用比率と、前記仮想マシンリソース使用量取得ステップが取得する一般仮想マシンのリソース使用量とに基づいて演算することにより行われることを特徴とする仮想マシン管理方法。
【請求項１７】
請求項１６に記載の仮想マシン管理方法であって、
仮想マシン上で動作するアプリケーションの種類ごとに一般仮想マシンとアプリケーションの処理のために費やされる特殊仮想マシンのリソース使用量の比率を保持する共有リソース使用比率データベースを利用し、
前記共有リソース使用量計算ステップは、
前記共有リソース使用比率データベースから前記アプリケーションのリソース使用比率を取得するステップと、
前記取得したリソース使用比率と前記仮想マシンリソース使用量取得ステップが取得する対象一般仮想マシンのリソース使用量と演算するステップと、
により行われることを特徴とする仮想マシン管理方法。
【請求項１８】
請求項１６に記載の仮想マシン管理方法であって、
アプリケーションの処理当たりに実行される命令の回数を保持するアプリケーション特性データベースを利用し、
前記命令を仮想マシン上で実行した際の仮想マシンのリソース使用量と特殊仮想マシンのリソース使用量を保持する方法特性データベースを利用し、
仮想マシン上で動作しているアプリケーションの種類を保持するアプリケーション管理データベースを利用し、
前記共有リソース使用量計算ステップは、
管理対象とする仮想マシン上で動作しているアプリケーションをアプリケーション管理データベースから検索するステップと、
前記検索されたアプリケーションを実行する際に、実行する命令種類と回数をアプリケーション特性データベースから検索するステップと、
前記検索された命令種類を実行する際の仮想マシンのリソース使用量と特殊仮想マシン内の共有リソースの使用量を方法特性データベースから検索するステップと、
前記検索された各命令の仮想マシンのリソース量と特殊仮想マシン内の共有リソース量に各命令の実行回数を掛けることでアプリケーション実行時の仮想マシンのリソース量と特殊仮想マシン内の共有リソース量の比率を求めるステップと、
前記リソース量の比率と仮想マシンリソース使用量取得ステップが取得する対象仮想マシンのリソース使用量を演算することで対象仮想マシンに関連する特殊仮想マシン内の共有リソース量を演算するステップと、
を備えることを特徴とする仮想マシン管理方法。
【請求項１９】
請求項１２乃至１８の何れか１項に記載の仮想マシン管理方法であって、
前記共有リソース使用量計算ステップで求めた、各仮想マシンが使用する特殊仮想マシン内の共有リソース量を出力する出力ステップを更に備えることを特徴とする仮想マシン管理方法。
【請求項２０】
請求項１２乃至１９の何れか１項に記載の仮想マシン管理方法であって、
複数の一般仮想マシンが構築されている際は、
各一般仮想マシンに要求されるリソース量と前記共有リソース量計算ステップが計算する当該仮想マシンの処理に費やされる特殊仮想マシン内のリソース量に基づいて、各仮想マシンがリソースを使用できるように、一般仮想マシンの構成場所を計算するリソース割当計算ステップを更に備えることを特徴とする仮想マシン管理方法。
【請求項２１】
請求項２０に記載の仮想マシン管理方法であって、
前記リソース割当計算ステップで計算されたリソース量に従い、仮想マシンのリソース量を設定する、仮想マシン設定ステップを更に備えることを特徴とする仮想マシン管理方法。
【請求項２２】
請求項２１に記載の仮想マシン管理方法であって、
前記仮想マシン設定ステップが、仮想マシンに必要なリソース量と、前記仮想マシンが利用する共有リソースのリソース量とが、共に移動先の物理マシンで確保できることを確認する移動先リソース量確認ステップと、
前記移動先リソース量確認ステップでリソース量を確認した後に異なる物理マシンに仮想マシンを移動させるステップと、
を更に備えることを特徴とする仮想マシン管理方法。
【請求項２３】
コンピュータを請求項１から１１の何れか１項に記載の仮想マシン管理システムとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシンの管理に関し、より詳細には複数仮想マシンで共有される共有リソースの使用量を測定できる仮想マシン管理システム、その方法及びそのプログラムに関する。
【背景技術】
【０００２】
近年、高性能化したコンピュータの余剰リソースを有効利用するために、仮想化ソフトウェアが利用されている。
【０００３】
ここで、仮想化ソフトウェアとは、コンピュータ内に仮想的にマシンを創設し、コンピュータシステム（物理マシン）のリソースであるメモリ、ＣＰＵ、そしてディスクやネットワークカード（ＮＩＣ（Network Interface Card））のようなＩ／Ｏ（input/output）資源（リソース）を各仮想マシンへ割り当てるソフトウェアのことを指す。
【０００４】
例えば、ＣＰＵ使用率の割り当ては、ＣＰＵのスケジューラを制御することで、仮想マシンがＣＰＵを利用できる時間を制御することで行う。
【０００５】
この制御により、各仮想マシンが利用可能な最大リソース量を制限したり、他の仮想マシンの負荷が大きい場合でも最低限のリソース量を保障したりすることができる。
【０００６】
なお、物理マシンとは、仮想マシンに対する用語で、ＣＰＵ、メモリ、ディスク、ネットワークカード（ＮＩＣ）などを有する一般的なコンピュータである。また以下の説明では、単に仮想マシンといった場合、一般仮想マシンと特殊仮想マシンの両方を含めた仮想マシンを指すものとする。
【０００７】
このような、仮想化ソフトウェアにより、物理マシン内に複数の仮想マシンが構成される、仮想化システムにおいて、それぞれの仮想マシンに対してリソースをどのように配分するかを決める仮想マシンの管理は、コンピュータリソースの利用効率を高める上で重要である。
【０００８】
従来の仮想マシン管理システムの例が、特許文献１に記載されている。この従来の仮想マシン管理システムの構成を図２４に示す。
【０００９】
従来の仮想マシン管理システム９２０は、性能モニタ手段９１１と、リソース管理手段９１２と、仮想マシン管理手段９１３とを備える。
【００１０】
性能モニタ手段９１１は、仮想マシン９０３上で動作しているアプリケーションの性能を測定し、各仮想マシンが使用しているリソース量を把握する。
【００１１】
リソース管理手段９１２は、各物理マシンでの空きリソース量を管理する。仮想マシン管理手段９１３は、仮想マシンへのリソース割当てを制御する。
【００１２】
性能モニタ手段９１１は、仮想マシン上のアプリケーションの性能を測定している。この測定した性能値は、仮想マシン管理手段９１３に通知され、仮想マシン管理手段９１３が、仮想マシンが要求された性能を満足しているか否か判断する。
【００１３】
性能を満足していない場合は、該性能を満足していない仮想マシンに対して割り当てるリソース量を増加させる。
【００１４】
この点、リソース増加の対象となる仮想マシンが存在するローカルな物理マシン上に十分な余剰リソースがある場合と、十分な余剰リソースが無い場合が考えられる。
【００１５】
ここで、リソース増加の対象となる仮想マシンが存在するローカルな物理マシン上に十分な余剰リソースが存在すれば、この仮想マシンに対するリソース割当を増加させる。
【００１６】
一方、ローカルな物理マシンに、十分なリソース量が存在しない場合は、ネットワーク９０４で接続された別の物理マシン上に余剰リソースがあるか確認し、余剰リソースが存在する場合には、仮想マシンをネットワーク経由で移動させる。
【００１７】
図２４を用いて説明すると、物理マシン９０１ａに十分なリソース量が存在しない場合は、仮想マシン管理手段９１３ａは、ネットワーク９０４経由で物理マシン９０１ｂに余剰リソースがあるか確認し、余剰リソースが存在する場合には、仮想マシンをネットワーク経由で９０１ａから９０１ｂに移動させることとなる。
【００１８】
また、上記従来技術のように仮想マシンごとのＣＰＵ使用率を取得する具体的方法の一例が特許文献２に記載されている。
【００１９】
特許文献２では、ＣＰＵがどのような処理をどのような順番でするかを制御するスケジューラにサービス使用量測定部が接続されている。このサービス使用時間測定部が、スケジューラから各仮想マシンに割り当てた時間を測定する。
【００２０】
このように、従来技術では、仮想マシン上のアプリケーションの性能をモニタし、その性能や状況に応じて、割り当てるリソース量を増減させることによってシステム全体のコンピュータリソースを有効に利用している。
【００２１】
また、ＣＰＵの使用時間測定は、ＣＰＵのスケジューラでの割り当て時間を取得することで実現している。
【特許文献１】特開平１１−３２７９２７号公報
【特許文献２】特開平９−８１４０１号公報
【非特許文献１】ＨＰテクニカルレポートＨＰＬ−２００５−１８７、Ｄｉｗａｋｅｒ  Ｇｕｐｔａ，  ｅｔ  ａｌ［XenMon:QoS Monitoring and Performance Profiling Tool］［平成１９年２月１９日検索］、インターネット  〈URL：http://www.hpl.hp.co.uk/techreports/2005/HPL-2005-187.html〉
【発明の開示】
【発明が解決しようとする課題】
【００２２】
仮想化システムにおいて、複数の仮想マシンからリソースを共有される共有リソース部分を有する仮想マシンが存在する。ホストＯＳや物理デバイスを扱うための特別な仮想マシンである。ここでは、Ｘｅｎという仮想化技術を用いる場合を例に説明する。
【００２３】
Ｘｅｎのアーキテクチャを図２５に示す。Ｘｅｎでは、Ｘｅｎハイパーバイザ７１１が、ディスク７５１、ＮＩＣ７５２、メモリ７５３、ＣＰＵ７５４のような物理リソースを各仮想マシンに割り当てる。
【００２４】
Ｘｅｎでは、このようにリソースを割り当てられる仮想マシンのことをドメインと呼ぶ。図２５では、ドメイン０（７０１）と、ドメイン１（７０２）、ドメイン２（７０３）が動作している。
【００２５】
ここで、ドメイン０は物理デバイスを直接制御することができる。
【００２６】
一方、ドメイン１とドメイン２はドメインＵと呼ばれ、自らは物理デバイスを直接制御することができない。つまり、物理デバイスを直接制御することができるのはドメイン０のみである。
【００２７】
ドメインＵ上のアプリケーションから要求されるＩ／Ｏ処理はドメイン０がドメインＵの代わりに実行することとなる。
【００２８】
ドメインＵが仮想デバイスにＩ／Ｏアクセスを要求すると、Ｘｅｎハイパーバイザ７１１がその要求をドメイン０に転送する。
【００２９】
ドメイン０は、物理デバイスのデバイスドライバを有する特別な仮想マシンであり、ドメインＵから要求されたＩ／Ｏアクセスを代わりに実行して、実行の結果をドメインＵへ返す。
【００３０】
このようなＸｅｎのアーキテクチャを考えると、従来技術には以下のような問題点が存在する。
【００３１】
第１の実施問題点は、従来の方法では、ドメインＵの代わりにドメイン０にＩ／Ｏアクセスを代行させ、その実行の結果を移動させた際に、同時にドメイン０のＣＰＵ使用率が増加することを考慮できないことである。
【００３２】
その理由は、仮想マシンへのリソース割当の際に、仮想マシン単位で測定したリソース使用量しか考慮していないためである。つまり、ドメインＵが依存するドメイン０のリソース使用量を取得していないためである。
【００３３】
この問題点の具体例を、図２６を参照して説明する。図２６では、２つの物理マシン９４０、９５０上に、Ｘｅｎハイパーバイザ９４４、９５４により、それぞれ仮想マシンが作成されている。
【００３４】
第１のマシン９４０上には、物理デバイスを制御する仮想マシンとしてドメイン０（９４１）、ドメインＵとしてドメイン１（９４２）、ドメイン２（９４３）が構成されている。
【００３５】
第２のマシン９５０上には、物理デバイスを制御する仮想マシンとしてドメイン０（９５１）、ドメインＵとしてドメイン１（９５２）が構成されている。
【００３６】
また、第１のマシン９４０と第２のマシン９５０は、ネットワーク９４９に接続しており、データの交換が可能である。
【００３７】
図２６に示す構成での各仮想マシンのＣＰＵ使用率の例を図２７に示す。第１のマシン９４０の各仮想マシンのＣＰＵ使用率は、ドメイン０（９４１）が２５％、ドメイン１（９４２）が２５％、ドメイン２（９４３）が２０％である。
【００３８】
また、第２のマシン９５０の各仮想マシンのＣＰＵ使用率は、ドメイン０（９５１）が１０％、ドメイン１（９５２）が３０％である。また、各マシンのＣＰＵ使用率は最大で７５％までに制限されているものとする。
【００３９】
このような状況において、第１のマシン９４０上のドメイン２（９４３）のアプリケーションの性能が低下したので、ドメイン２（９４３）のＣＰＵ使用率を１０％追加したい場合を考える。
【００４０】
ドメイン２（９４３）のＣＰＵ使用率を１０％増加させると、第１のマシン９４０のＣＰＵ使用率が８０％となり、制限の７５％を越えてしまう。
【００４１】
このため、従来技術では、ドメイン２（９４３）の現在のＣＰＵ使用率２０％に追加するＣＰＵ使用率１０％を加えた、３０％を第２のマシン９５０で確保できるか確認する。
【００４２】
図２７によると、第２のマシン上でのＣＰＵ使用率は、ドメイン０（９５１）とドメイン１（９５２）の合計で、４０％であるので、ドメイン２（９４３）のＣＰＵ使用率３０％の全てを第２のマシンへ移動できるという判断がなされる。
【００４３】
しかし、実際はドメイン２（９４３）を移動させることにより、第２のマシン９５０上ではドメイン０（９５１）のＣＰＵ使用率も増加する。
【００４４】
この点を、図２７の表で示されている数値で想定する。ドメイン２（９４３）のＣＰＵ使用率が２０％、ドメイン０（９５１）の現在のＣＰＵ使用率が１０％、ドメイン（９５２）のＣＰＵ使用率が３０％の場合を想定する。
【００４５】
この場合第２のマシン９５０の現在のＣＰＵ使用率は４０％である。
【００４６】
ここで、ドメイン２（９４３）を第２のマシン９５０に移動するとそれに伴い、ドメイン０（９５１）のＣＰＵ使用率が２０％増加するとする。
【００４７】
そうすると、第２のマシンの９５０ＣＰＵ使用率の合計は現状の４０％に、ドメイン２（９４３）のＣＰＵ使用率が２０％、ドメイン０（９５１）のＣＰＵ使用率増加量２０％、の合計８０％となる。
【００４８】
よってこれでは、第２のマシン９５０上でＣＰＵの使用制限である７５％を超過するという問題が生じる。
【００４９】
第２の問題点は、仮想化システムのアーキテクチャ及び仮想マシン上のアプリケーションの特徴により、リソースの使用量が異なるという点を考慮できなかったことである。
【００５０】
その理由は、従来の仮想化管理システムでは、仮想マシンを移動させる際に、実際は異なる物理マシンであるのにも関わらず、移動元でも、移動先でも同じ物理マシンがあるという前提でリソース使用量を想定していたからである。
【００５１】
そして、該誤った想定に基づき測定したリソース使用量を、使用できるという、判断をしてしまう。
【００５２】
そこで、本発明は仮想マシン単位だけでなく、仮想マシン間でのリソース量の依存関係についても考慮でき、更にアプリケーションの種類ごとに異なる、リソース使用量を考慮できる仮想マシン管理システム、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００５３】
本発明によれば、処理の一部を特殊仮想マシン内の共有リソースを利用して実行する一般仮想マシンと、一般仮想マシンでの処理の一部を代理で実行する特殊仮想マシンとを備える仮想化システムにおいて、前記仮想マシンを管理する仮想マシン管理システムであって、仮想マシン単位のリソース使用量を取得する仮想マシンリソース使用量取得手段と、特殊仮想マシンの共有リソース使用量のうち一般仮想マシンの代理処理に費やされる共有リソース量を前記仮想マシンリソース使用量取得手段から得られる仮想マシンのリソース使用量に基づき演算する共有リソース使用量演算手段とを備えることを特徴とする仮想マシン管理システムが提供される。
【００５４】
上記の仮想マシン管理システムにおいて、前記共有リソース使用量計算手段は、一般仮想マシンから特殊仮想マシンへ要求される処理量をモニタする要求処理量取得手段と、前記仮想マシンリソース使用量取得手段が取得する特殊仮想マシンのリソース使用量と前記要求処理量取得手段が取得する各一般仮想マシンからの処理量との比率にもとづき各一般仮想マシンからの要求処理に費やされる共有リソース量を演算するリソース量演算手段とを備えることを特徴とするようにしてもよい。
【発明の効果】
【００５５】
共有リソースも含めた仮想マシンのリソース量の割当量を決定することができる。このため、リソース設定の際に共有リソースが不足することを防ぐことができる。
【発明を実施するための最良の形態】
【００５６】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００５７】
［第１の実施形態］
図１は、本発明を実施するための第１の実施形態における仮想マシン管理システムの構成要素とその動作環境の例を記載している。
【００５８】
本発明は、物理マシン８０１内で仮想マシンモニタ（ＶＭＭ（Virtual Machine Monitor））が、仮想マシン管理システム８１０と、共有リソースを直接制御することができる特殊仮想マシン８２０と、特殊仮想マシン８２０が代理で共有リソース処理を実行する一般仮想マシン８０３ｂ、８０３ｃを備える。
【００５９】
それぞれの仮想マシンにおいて、ゲストＯＳ８２０ｂ及び８２０ｃが動作している。Ｘｅｎの例では、仮想マシン８０３ａ、ｂは、Ｉ／Ｏ（input/output）処理を直接実行できないドメインＵにあたり、特殊仮想マシン８２０は、Ｉ／Ｏ処理を実行できるドメイン０にあたる。
【００６０】
更に、特殊仮想マシン８２０では、一般仮想マシンのＩ／Ｏ処理要求を受けるための仮想デバイスドライバ８４１を有している。
【００６１】
なお、ここで物理マシンとは、仮想マシンに対する用語で、ＣＰＵ、メモリ、ディスク、ネットワークカード（ＮＩＣ）などを有する一般的なコンピュータである。また、本説明では、単に仮想マシンといった場合、一般仮想マシンと特殊仮想マシンの両方を含めた仮想マシンを指す。
【００６２】
本発明の第１の実施形態における仮想マシン管理システム８１０は、仮想マシンリソース使用量取得手段８１１（本発明の要求処理量取得手段に相当する。）と、共有リソース使用量計算手段８２１と、リソース量演算手段８３１を備える。
【００６３】
仮想マシンリソース使用量取得手段８１１は、仮想マシン単位でのリソース使用量を取得する。
【００６４】
仮想マシンリソース使用量取得手段８１１の構成を図２に示す。
【００６５】
仮想マシンリソース使用量取得手段８１１では、取得手段８１１ａがＶＭＭから仮想マシン単位でのリソース使用量を取得する。図２では測定するリソース使用量の例として、仮想マシンリソース使用量テーブル８１１ｂに示すＣＰＵ使用率を示しているが、ＣＰＵ使用率のほかにも、メモリサイズ、ディスクサイズ、ネットワーク帯域などであってもよい。
【００６６】
共有リソース使用量計算手段８２１は、共有リソース使用量取得手段８３２とリソース量演算手段８３１を備える。
【００６７】
共有リソース使用量取得手段８３２は、各一般仮想マシンからの処理要求に費やされる特殊仮想マシン内でのリソース使用率を測定する。
【００６８】
ここで、共有リソース使用量取得手段８３２の構成を図３に示す。
【００６９】
仮想マシンＩＤ取得手段８３２３は、仮想デバイスドライバ８４１から、共有リソース処理要求ごとに要求元の一般仮想マシンのＩＤを取得する。
【００７０】
一般仮想マシンのＩＤは、特殊仮想マシンと一般仮想マシン間で共有リソース処理要求を通知するためのイベントチャネルを識別して取得する。
【００７１】
また、共有リソーススケジューリング取得手段８３２４は、各共有処理要求の実行時間を特殊仮想マシンゲストＯＳ８２０ｂ内のスケジューラから取得する。
【００７２】
集計手段８３２１は、共有リソーススケジューリング取得手段８３２４が取得する処理要求ごとの処理時間や、処理に対するリクエストＩＤと仮想マシンＩＤ取得手段８３２３が取得する各要求がどの一般仮想マシンからのものであるかという情報をもとに、各一般仮想マシンが使用する特殊仮想マシン内の共有リソースの使用量を集計する。
【００７３】
図３では、特殊仮想マシン内での共有リソースの例であるＣＰＵ使用率が、ドメイン１はｒ１、ドメイン２はｒ２、ドメインｉはｒｉ、であることを示している。
【００７４】
また、リソース量演算手段８３１は、特殊仮想マシンのリソース使用量と、各一般仮想マシンからの処理要求に費やされる特殊仮想マシン内でのリソース使用率を掛けることで、各一般仮想マシンからの処理要求に費やされる特殊仮想マシン内でのリソース量を計算する。
【００７５】
具体的に、ドメインｉのリソース使用率を計算することを例として説明する。
【００７６】
共有リソース使用率取得手段８１１から取得できるドメイン０の使用率が、ｘ０（図２、７１）、ドメインｉの使用率がｘｉ（図２、７５）、共有リソース使用量取得手段８３２から取得できる特殊仮想マシン内での共有リソース使用率はｒｉ（図２、８４）である。
【００７７】
一般仮想マシン自身のリソース使用率ｙｉは、共有リソース使用率取得手段８１１が測定したそのままであるため、以下の式で求まる。
【００７８】
【数１】
2008217332.tif 000003
特殊仮想マシン内で利用するリソース使用率ｚｉは、共有リソース使用量取得手段８３２で取得した値が、特殊仮想マシンのリソース使用量に対する割合であるため、特殊仮想マシンが物理マシン全体に対してどのくらいリソースを使用しているかを考慮する必要がある。
【００７９】
このため、特殊仮想マシン内で利用するリソース使用率ｚｉは、以下の式で求まる。
【００８０】
【数２】
2008217332.tif 000004
次に、図１の構成図に加え、図６のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００８１】
まず、ステップＳ８０１で、仮想マシンリソース使用量取得手段８１１が、仮想マシンごとのリソース使用量を取得する。この仮想マシンリソース使用量取得手段８１１は一般仮想マシン２０３ａ、ｂの、いずれの特殊仮想マシンのリソース量をも取得できる。
【００８２】
次にステップＳ８０２において、共有リソース使用量取得手段８３２が、特殊仮想マシンのリソース使用率の中で、各一般仮想マシンが使用した共有リソース量を取得する。
【００８３】
さらに、ステップＳ８０３において、リソース量演算手段８３１が、仮想マシンリソース使用量取得手段８１１が取得した特殊仮想マシンのリソース量と、共有リソース使用量取得手段８３２が取得したリソース量をもとに、物理マシン全体に対する共有リソースの使用量を計算する。
【００８４】
具体的には、仮想マシンリソース使用量取得手段８１１が取得した特殊仮想マシンのリソース使用量と、共有リソース使用量取得手段８３２が取得した一般仮想マシンからの処理要求に要する共有リソースの特殊仮想マシン内での使用率を掛けることで、対象とする仮想マシンが使用する共有リソース量を求める。
【００８５】
計算で求めた一般仮想マシンごとの共有リソース使用量は、出力手段８０４で出力することができる。ここで、出力手段８０４による出力例を図５に示す。
【００８６】
図５の９４を参照すると、ドメインｉに対して、一般仮想マシンであるドメインｉ自身のＣＰＵ使用率がｙｉ、ドメインｉからの共有リソース処理要求に費やされる特殊仮想マシンのＣＰＵ使用率がｚｉであることがわかる。
【００８７】
具体的な実施例としては、計算で求めた一般仮想マシンごとの特殊仮想マシン内の共有リソースの使用量を表として画面に表示することが挙げられる。この出力画面を見ることで、システム管理者は特殊仮想マシン内の共有リソースを大量に消費している一般仮想マシンを特定することができる。
【００８８】
次に、第１の実施の形態の効果について説明する。
【００８９】
本実施の形態では、仮想マシン単位のリソース使用量に加えて、特殊仮想マシン内での各一般仮想マシンの共有リソース使用量を測定することができる。
【００９０】
この理由は、特殊仮想マシンのリソース使用量を取得する手段と、この特殊仮想マシン内のリソース使用量がどの一般仮想マシンからの処理のために消費されているかという内訳を取得する手段と、特殊仮想マシンのリソース使用量と特殊仮想マシン内のリソース使用量の内訳の比率を演算することで特殊仮想マシン内での各一般仮想マシンの共有リソース使用量を計算する手段を有するためである。
【００９１】
また、上記で説明した仮想マシンのリソース量取得と、共有リソースの使用量取得の順番は、説明のための例であり、情報取得の順番はどちらが先でも、また同時に実行しても、本発明の目的を実現することができる。
【００９２】
［第２の実施形態］
つぎに、図を用いて第２の実施形態の構成と動作を説明する。
【００９３】
図７を参照して、ＶＭＭとしてＸｅｎを、共有リソースとしてＣＰＵ使用率を対象とする場合を本発明の第２の実施形態として説明する。
【００９４】
図７を参照すると、本発明の第２の実施形態における仮想マシン管理システムが管理する仮想化システムは、ＶＭＭとしてＸｅｎを利用している。
【００９５】
Ｘｅｎハイパーバイザ１３０が、ドメイン０（１２０）、ドメインＵとしてドメイン１（１３０ａ）、ドメイン２（１０５ａ）を作成している。
【００９６】
それぞれのドメインでは、ゲストＯＳとして、ドメイン０ＯＳ１２５、ドメインＵＯＳ１２５ａ、１２５ｂが動作している。
【００９７】
ドメインＵ上では、それぞれアプリケーション１０５ａ、１０５ｂが動作している。ドメイン０仮想マシン１２０内には、ドメインＵのＩ／Ｏ処理要求を受け付けるための仮想デバイスドライバとしてバックエンドドライバ１２８を有する。
【００９８】
また、物理マシン１０１ａはネットワーク１０４に接続している。別の物理マシン１０５ａもネットワーク１０４に接続しており、物理マシン１０３ａと物理マシン１０５ａ間で通信することができる。
【００９９】
ここでは、説明のために物理マシンは２台記載したが、本発明の対象は、物理マシンの台数を限定するわけではない。物理マシンと同様に、本発明の対象は、仮想マシンの台数を限定するわけでもない。
【０１００】
本発明の第２の実施形態における仮想マシン管理システム２１１は、仮想マシンリソース使用量取得プログラム１１１（本発明の要求処理量取得手段に相当する。）と、共有リソース使用量計算プログラム１２１と、共有リソース割当機能付きリソース割り当て量計算プログラム１１３と、仮想マシン設定プログラム１１４と、共有リソース使用量取得プログラム１１６と、演算プログラム１６１と、通信プログラム１１５で構成される。
【０１０１】
それぞれの構成は第１の実施形態において説明した構成と同じであるため、ここでは、それぞれをＶＭＭとしてＸｅｎとした場合の具体例について説明する。
【０１０２】
仮想マシンリソース使用量取得プログラム１１１は、ドメイン単位でのリソース使用量を取得する。
【０１０３】
この仮想マシンリソース使用量取得プログラム１１１は、ドメイン０、ドメインＵに関わらず仮想マシンごとのリソース使用量を測定する。
【０１０４】
例えば、ＶＭＭとしてＸｅｎを利用する場合には非特許文献１に記載されているＸｅｎＭｏｎを利用することで、仮想マシンごとのＣＰＵ使用率を測定することができる。
【０１０５】
また、Ｘｅｎの“ｘｍ  ｌｉｓｔ”コマンドを利用することで、ドメインごとのメモリサイズを取得することができる。
【０１０６】
共有リソース使用量計算プログラム１２１は、共有リソース使用量取得プログラム１１６で取得されるドメイン０仮想マシン１２０内における各ドメインＵ処理に関連するＣＰＵ使用率と、仮想マシンリソース使用量取得プログラム１１１で取得されるドメイン０仮想マシン１２０のリソース使用量をもとに、物理マシン１０１ａ全体におけるリソース使用量を計算する。
【０１０７】
共有リソース割当機能付きリソース割当量計算プログラム１１３は、仮想マシンに対して使用を許可するＣＰＵ使用率を計算する。
【０１０８】
この共有リソース割当機能付きリソース割当量計算プログラム１１３は、ドメインＵへ割り当てるＣＰＵ使用率の計算の際に、対象とするドメインＵだけでなく、対象ドメインＵの使用状況に依存して使用量が変化するドメイン０へ割り当てるＣＰＵ使用率も同時に計算する。
【０１０９】
仮想マシン設定プログラム１１４は、共有リソース割当機能付きリソース割当量計算プログラム１１３で計算されたリソース量に応じて、各ドメインのリソース量を設定する。
【０１１０】
このドメインのリソース量の設定は、Ｘｅｎの標準コマンドを利用する。ＣＰＵ使用量の変更には“ｘｍ  ｓｃｈｅｄ−ｓｅｄｆ”コマンドを、メモリ量の変更には“ｘｍ  ｍｅｍ−ｓｅｔ”コマンドを利用することでドメインごとのリソース量を変更することができる。
【０１１１】
共有リソース使用量取得プログラム１１６は、ドメイン０（１２０）内における、各ドメインＵ１０３からの処理要求に費やされるＣＰＵ使用率を取得する。
【０１１２】
Ｘｅｎの場合は、ドメイン０仮想マシン１２０と各ドメインＵ仮想マシン１０３との間でＩ／Ｏ制御情報を交換するイベントチャネルをモニタし、それぞれのイベントチャネルから要求されたドメイン０内での処理に要した時間の使用率を測定する。
【０１１３】
この共有リソース使用量取得プログラム１１６で取得するＣＰＵ使用時間は、ドメイン０のＣＰＵ使用量を１と定義し、それに対しての使用率である。
【０１１４】
このため、ドメイン０のＣＰＵ使用量が異なるとドメインＵ処理に要するＣＰＵ使用量も異なってしまい、このままの値では、他物理マシンへの仮想マシン移動の際に、必要なＣＰＵ使用量を正確に通知できない。
【０１１５】
そこで、本発明では、演算プログラム１６１を利用してドメインＵ処理に要するドメイン０内のＣＰＵ使用量を計算している。
【０１１６】
通信手段１１５は、仮想マシンリソース使用量取得プログラム１１１が取得したドメインごとのリソース使用量や共有リソース割当機能付きリソース割当量計算手段１１３で計算したリソース割当量を他の物理マシンとの間で通信する。
【０１１７】
これにより、複数物理マシンにまたがるシステムであっても、該複数の物理マシンを管理することが可能となる。
【０１１８】
なお、管理対象の物理マシンが１台の場合は、この通信手段１１５は不要である。
【０１１９】
次に、図８のフローチャートを参照して第２の実施形態の全体の動作について詳細に説明する。
【０１２０】
まず、ステップＳ１０１で、仮想マシンリソース使用量取得プログラム１１１が、ドメインごとのＣＰＵ使用率を取得する。ここで、ドメイン０ＯＳ１２５、ドメイン１２５ａ、ドメイン１２５ｂのＣＰＵ使用率は、それぞれ２５％、２５％、２０％と測定されたとする。
【０１２１】
次にステップＳ１０２において、共有リソース使用量取得プログラム１１６が、各ドメインＵの処理に要したドメイン０のＣＰＵ使用時間の割合を取得する。ここで、ドメイン１とドメイン２それぞれからの処理要求のためにドメイン０のＣＰＵを使用した時間の比が１：４と測定されたとする。
【０１２２】
さらに、ステップＳ１０３において、演算プログラム１６１が、仮想マシンリソース使用量取得プログラム１１１が取得したドメイン０のＣＰＵ使用率と、共有リソース使用量取得プログラム１１６が取得したドメインＵ間の使用比率から、各ドメインＵの処理要求に関連するドメイン０のＣＰＵ使用量を計算する。
【０１２３】
具体的には、ドメイン１の処理要求に関連するドメイン０のＣＰＵ使用率は、スップＳ１０１で取得したドメイン０のＣＰＵ使用率２５％に、ステップＳ１０２で取得した１／５を掛けることで５％と求まる。
【０１２４】
同様に、ドメイン２の処理要求に関連するドメイン０のＣＰＵ使用率は、スップＳ１０１で取得したドメイン０のＣＰＵ使用率２５％に、ステップＳ１０２で取得した４／５を掛けることで２０％と求まる。
【０１２５】
ステップＳ１０４では、共有リソース割当機能付きリソース割当量計算プログラム１１３が、リソース割当の対象となるドメインＵ自身のＣＰＵ使用率と対象ドメインＵの動作状況に影響を受ける共有リソース量の双方を満足するようなリソースの配置及びリソース量を決定する。
【０１２６】
物理マシン１０１ａ上のドメイン１２５ｂを物理マシン１０１ｂへ移動させようとする場合、物理マシン１０１ｂ上にドメインＵとして２０％、ドメイン０として２０％のＣＰＵ使用率を確保できるか確認する。
【０１２７】
ステップＳ１０５では、仮想マシン設定プログラム１１４が、ステップＳ１０４で求めたＣＰＵ使用率に従い、ドメインのＣＰＵ使用率を割り当てる。
【０１２８】
次に、第２の実施の形態の効果について説明する。
【０１２９】
本実施の形態では、ドメインＵ単位のＣＰＵ使用率に加えて、対象ドメインＵの処理に要するドメイン０のＣＰＵ使用率も取得するため、ドメインＵを異なる物理マシンに移動させる際に移動先でドメイン０のＣＰＵ使用率が不足し、移動先でドメインＵ上のアプリケーションの性能が低下することを防ぐことができる。
【０１３０】
なお、上記で説明した仮想マシンのリソース量取得と、共有リソースの使用量取得の順番は、本発明の効果には影響を与えないため、情報取得の順番はどちらが先であってもよい。
【０１３１】
［第３の実施形態］
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。
【０１３２】
図９を参照すると、本発明の第３の実施の実施形態は、第２の実施形態と共有リソース使用量計算プログラム２２４の構成が異なる。第５の実施形態における有リソース使用量計算プログラム２２４は、データ転送カウントプログラム２１７と演算プログラム２２５で構成される。
【０１３３】
データ転送カウントプログラム２１７は、ドメイン０とドメインＵ間で転送されるＩ／Ｏ処理に関してデータ転送の回数を数える。
【０１３４】
ＶＭＭがＸｅｎの場合は、ＸｅｎＭｏｎを利用して、ドメイン０とドメインＵ間の共有メモリを利用したデータ転送回数をページフリップ回数として取得できるため、これを利用することで実現する。
【０１３５】
データ転送カウントプログラム２１７で取得できるデータの例を図１０に示す。図１０を参照すると、ドメイン１との転送回数は５０００回（７４１）、ドメイン２との転送回数は２００００回（７４２）、ドメインｉとの転送回数はｆｉ回（７４４）であることがわかる。
【０１３６】
図１１に示すように演算プログラム２２５は、ドメイン０のＣＰＵ使用率は、全てのドメインＵのデータ転送回数の総和（Σｆｉ）に対する対象ドメインの転送回数（ｆｉ）の割合に応じて使用されているとして計算を行う。
【０１３７】
各ドメインＵ処理に費やされるドメイン０のＣＰＵ使用率ｚｉは次式で計算される。
【０１３８】
【数３】
2008217332.tif 000005
次に、図９の構成図、図１２のフローチャートを参照して第３の実施の形態の全体の動作について詳細に説明する。
【０１３９】
図１２に示すフローチャートのステップＳ４０１、Ｓ４０４、Ｓ４０５は、第２の実施の形態のフローチャートのステップＳ１０１、Ｓ１０４、Ｓ１０５とそれぞれ同じである。
【０１４０】
このため、ここではこれらの説明は省略し、第２の実施の形態と異なるステップＳ４０２及びＳ４０３について説明する。
【０１４１】
ステップＳ４０２では、データ転送カウントプログラムがドメイン０とドメインＵ間のデータ転送回数を取得する。
【０１４２】
ＶＭＭがＸｅｎの場合は、ドメイン０とドメインＵ間の共有メモリを利用したデータ転送回数であるページフリップ回数をＸｅｎＭｏｎにより取得する。
【０１４３】
例えば、ドメインＵとしてドメイン１とドメイン２のみが存在し、ドメイン１のデータ転送回数が５０００回、ドメイン２のデータ転送回数が２００００回と測定されたとする。
【０１４４】
次に、ステップＳ４０３では、共有リソース使用量計算手段２２４が、ステップＳ４０１で取得したドメイン０のＣＰＵ使用率を、ステップＳ４０２で取得した各ドメインＵのデータ転送回数の比率に応じて決定する。
【０１４５】
ステップＳ４０２で取得したように、ドメイン１のデータ転送回数が５０００回、ドメイン２のデータ転送回数が２００００回の場合は、ドメイン０のＣＰＵ使用率の２０％をドメイン１が、８０％をドメイン２が利用しているとする。
【０１４６】
ステップＳ４０１で取得するドメイン０のＣＰＵ使用率が２５％の場合は、ドメイン１の処理に関連するドメイン０のＣＰＵ使用率は５％、ドメイン２の処理に関連するドメイン０のＣＰＵ使用率は２０％と計算される。
【０１４７】
ここで、一般的にＩ／Ｏ処理のデータサイズはその都度異なる。もっとも、上記データ転送カウント手段は回数をカウントしているだけであり、データサイズはその都度異なるという点は考慮されていない。
【０１４８】
よって、結果としては完全に正確なＣＰＵ使用率ではなく、概算を求めることになる。
【０１４９】
この精度を向上するために、データ転送カウント手段で転送回数でなく転送データサイズをモニタし、共有リソース使用量計算手段２２４が、このデータサイズの比率に基づきドメイン０のリソース量の内訳を更に計算することで、より精度を向上することができる。
【０１５０】
次に本発明の第３の実施の形態における効果を説明する。
【０１５１】
第３の実施の形態では、データ転送カウント手段を利用しているため、アプリケーションに依存しないで共有リソースの使用率の内訳を計算できるという効果がある。
【０１５２】
［第４の実施形態］
次に、本発明の第４の実施形態について図面を参照して詳細に説明する。
【０１５３】
図１３に本発明の第４の実施形態の構成要素が示されている。第４の実施形態は、第２の実施形態と比較すると、共有リソース使用量計算プログラム２２２の構成が異なる。
【０１５４】
その他の構成要素は第２の実施形態と同じなので、ここでの説明は省略する。ここでは、構成が異なる共有リソース使用量計算プログラム２２２について説明する。
【０１５５】
共有リソース使用量計算プログラム２２２の構成を図１４に示す。共有リソース使用量計算プログラム２２２は、共有リソース使用比率ＤＢ２５１と、アプリケーション管理データベース２５７と、演算プログラム２５２で構成される。
【０１５６】
共有リソース使用比率ＤＢ２５１は、アプリケーションごとにドメイン０とドメインＵのＣＰＵ使用率の比率をデータベースとして保持する。
【０１５７】
ここでは、ＣＰＵ使用率を対象としたが、メモリ使用量など他のリソース種類でも同様である。
【０１５８】
共有リソース使用比率ＤＢ２５１の例を図１６に示す。図１６では、共有リソース比率として、アプリケーションをＸｅｎのドメインＵ上で実行したときのドメインＵのＣＰＵ使用率と、このアプリケーション処理に関与するドメイン０のＣＰＵ使用率の比率を表している。
【０１５９】
例えば、アプリケーションが科学計算の場合（図１６、７０１）は、ドメインＵのＣＰＵ使用率と科学計算アプリケーションに関連するドメイン０での処理にかかるＣＰＵ使用率の比が１：０．２であることを表している。
【０１６０】
同様に、アプリケーションがデータベースの場合（図１６、７０２）は、ドメインＵのＣＰＵ使用率とデータベースアプリケーションに関連するドメイン０での処理にかかるＣＰＵ使用率の比が１：１であることを表している。
【０１６１】
アプリケーションがアプリケーションＡの場合（図１６、７０４）は、ドメインＵのＣＰＵ使用率とアプリケーションＡに関連するドメイン０での処理にかかるＣＰＵ使用率の比が１：ａａであることを表している。
【０１６２】
アプリケーション管理データベース２５７は、各仮想マシン上で動作しているアプリケーションの種類を保持している。このデータベースの情報は予め登録されているものとする。
【０１６３】
アプリケーション管理データベース２５７の例を図１７に示す。図１７では、ドメイン１上では、科学計算を実行し、ドメイン２上ではデータベースを実行し、ドメインｉ上ではアプリケーションＡを実行していることを表す。
【０１６４】
図１５に示すように、演算プログラム２５２は、アプリケーション管理データベース２５７を参照してドメインＵで動作しているアプリケーション種類を検索し、共有リソース使用比率ＤＢ２５１を参照してドメインＵ上のアプリケーション実行時のドメインＵとドメイン０のＣＰＵ使用比率を取得する。
【０１６５】
このドメインＵとドメイン０のＣＰＵ使用比率と仮想マシンリソース使用量取得プログラム１１１から得られるドメインＵのＣＰＵ使用率とを掛けることで、対象となるドメインＵの処理に関連するドメイン０のＣＰＵ使用率を計算する。
【０１６６】
例えば、ドメインｉの場合、図１７の行７１４からアプリケーションＡが実行されていることがわかる。また、図１６の行７０４からドメインＵのＣＰＵ使用率とアプリケーションＡに関連するドメイン０での処理にかかるＣＰＵ使用率の比が１：ａａであることがわかる。
【０１６７】
また、図２の行７５からドメインｉのＣＰＵ使用率はｘｉであることがわかる。これらの情報をもとに、特殊仮想マシン内でのドメインｉの処理に費やされるＣＰＵ使用率Ｚｉは、以下の式で求まる。
【０１６８】
【数４】
2008217332.tif 000006
次に、図１３及び図１８のフローチャートを参照して第４の実施形態の動作について詳細に説明する。図１８において、ステップＳ２０１、Ｓ２０３、Ｓ２０４は、それぞれ第２の実施形態のステップＳ１０１、Ｓ１０４、Ｓ１０５と同じであるため、ここでの説明は省略する。
【０１６９】
ここでは、第２の実施形態と動作が異なるステップＳ２０２について以下で説明する。
【０１７０】
ステップＳ２０２で、演算プログラム２５２が、アプリケーション管理データベース２５７を参照してドメインＵで動作しているアプリケーション種類を検索し、共有リソース使用比率ＤＢ２５１を参照してドメインＵ上のアプリケーション実行時のドメインＵとドメイン０のＣＰＵ使用比率を取得する。
【０１７１】
そして、このドメインＵとドメイン０のＣＰＵ使用比率とステップＳ２０１で取得したドメインＵのＣＰＵ使用率とを掛けることで、対象となるドメインＵの処理に関連するドメイン０のＣＰＵ使用率を計算する。
【０１７２】
例えば、第２の実施形態と同様に、ステップＳ２０１において、ドメイン０（１２０）、ドメイン１２５ａ、ドメイン１２５ｂのＣＰＵ使用率は、それぞれ２５％、２５％、２０％と測定されたとする。
【０１７３】
ステップＳ２０２で、演算プログラム２５２が、アプリケーション管理データベース２５７を参照することで、ドメイン１では科学計算、ドメイン２では、データベースがアプリケーションとして実行していることを取得する。
【０１７４】
次に、演算プログラム２５２は、共有リソース使用比率データベースを参照して、科学計算、データベースをそれぞれ実行した際の、（ドメイン０のＣＰＵ使用率／ドメインＵのＣＰＵ使用率）が０．２及び１．０であることを取得する。
【０１７５】
さらに、演算プログラム２５２は、仮想マシンリソース取得プログラム１１１からドメイン１のＣＰＵ使用率が２５％であることを取得し、ドメイン１のアプリケーションのドメイン０とドメインＵの使用比率０．２を掛けることで、ドメイン１に関するドメイン０でのＣＰＵ使用率が５％であることを計算する。
【０１７６】
ドメイン２に対しても同様に、ドメイン２のＣＰＵ使用率である２０％に、ドメイン０とドメインＵの使用比率１．０を掛けることで、メイン２に関するドメイン０でのＣＰＵ使用率が２０％であることを計算する。
【０１７７】
次に本発明の第４の実施形態における効果を説明する。
【０１７８】
本発明の第４の実施形態は、ドメイン０とドメインＵのＣＰＵ使用率の比率をデータベースとして保持し、仮想マシンリソース使用量計算プログラム２２２がドメインＵのＣＰＵ使用率とこのドメイン０とドメインＵのＣＰＵ使用率からドメインＵの処理に関連するドメイン０内のＣＰＵ使用率を計算する。
【０１７９】
よって、第２の実施形態のようにドメイン０のＯＳ又はＶＭＭを改修することなく、ドメイン０のＣＰＵ使用率を考慮した仮想マシンのリソース割当を実現することができる。
【０１８０】
［第５の実施形態］
次に、本発明の第５の実施形態について図面を参照して、詳細に説明する。
【０１８１】
本発明の第５の実施形態は、図１３に示す第４の実施形態における共有リソース使用量計算プログラムの構成が異なる。
【０１８２】
ここでは、第４の実施の形態と同じ構成要素の説明は省略し、第５の実施の形態の特徴となる共有リソース使用量計算プログラムについて図１９を参照して説明する。
【０１８３】
図１９を参照すると共有リソース使用量計算プログラム２２３は、アプリケーション特性データベース２５５と、システム特性データベース２５６と、アプリケーション管理データベース２５７と、演算プログラム２５８で構成される。
【０１８４】
アプリケーション特性データベース（ＤＢ）２５５は、アプリケーションの処理１件当たりに実行される命令回数の平均値を登録している。
【０１８５】
このデータベースの値は、あらかじめアプリケーション実行時の動作をモニタして作成しておく。
【０１８６】
アプリケーション特性データベースの例を図２１に示す。
【０１８７】
図２１の例では、アプリケーションが科学計算の場合は、科学計算処理１件当たり、四則演算４５０回、ディスクｒｅａｄ５回、ディスクｗｒｉｔｅ５回、データ送信５回、データ受信５回の命令をそれぞれ実行することを表している。
【０１８８】
また、アプリケーションがデータベースの場合では、四則演算５０回、ディスクｒｅａｄ２０回、ディスクｗｒｉｔｅ２０回、データ送信７回、データ受信８回の命令をそれぞれ実行することを表している。
【０１８９】
また、アプリケーションがアプリケーションＡの場合では、四則演算をｃ１回、ディスクｒｅａｄをｃ２回、ディスクｗｒｉｔｅをｃ３回、データ送信をｃ４回、データ受信をｃ５回、命令ｊをｃｊの命令をそれぞれ実行することを表している。
【０１９０】
アプリケーション及び命令の種類は図２１の例に限定されず、他の命令を追加することもできる。
【０１９１】
システム特性データベース（ＤＢ）２５６は、命令１回当たりに使用される仮想マシンのリソース使用量と、共有リソース機能付き仮想マシンのリソース使用量を登録している。
【０１９２】
このデータベースの値は、あらかじめシステム上での命令実行時のリソース使用量をモニタして作成しておく。
【０１９３】
システム特性データベース２５６の例を図２２に示す。図２２では、命令種類が四則演算の場合は、命令１回当たりドメインＵのＣＰＵ使用率が０．０１％、ドメイン０のＣＰＵ使用率が０．００１％であることを表している（図２２、７３１）。
【０１９４】
同様に、ディスクｒｅａｄの場合は、命令１回当たりドメインＵのＣＰＵ使用率が０．０２％、ドメイン０のＣＰＵ使用率が０．０３％であることを表している（図２２、７３２）。ディスクｗｒｉｔｅの場合は、命令１回当たりドメインＵのＣＰＵ使用率が０．０２％、ドメイン０のＣＰＵ使用率が０．０４％であることを表している（図２２、７３３）。
【０１９５】
データ送信の場合は、命令１回当たりドメインＵのＣＰＵ使用率が０．０３％、ドメイン０のＣＰＵ使用率が０．０２％であることを表している（図２２、７３４）。データ受信の場合は、命令１回当たりドメインＵのＣＰＵ使用率が０．３％、ドメイン０のＣＰＵ使用率が０．２％であることを表している（図２２、７３５）。
【０１９６】
また、命令ｊの場合は、命令１回当たりドメインＵのＣＰＵ使用率がｄｊ１、ドメイン０のＣＰＵ使用率がｄｊ２であることを表している（図２２、７３７）。
【０１９７】
なお、このドメイン０及びドメインＵのＣＰＵ使用率は、命令が扱うデータサイズによっても異なるため、平均値を記載する。
【０１９８】
また、データサイズとＣＰＵ使用率の関係式を保持することで、データサイズごとのより詳細な命令実行当たりの使用量を確認することができる。システム特性データベースに登録する命令の種類は図２２の例に限らず、他の種類を追加することもできる。
【０１９９】
アプリケーション管理データベース２５７は、各仮想マシン上で動作しているアプリケーションの種類を保持している。
【０２００】
このデータベースの情報はあらかじめ登録されているものとする。アプリケーション管理データベース２５７の例を図１７に示す。
【０２０１】
図１７では、ドメイン１上では、科学計算を実行し、ドメイン２上ではデータベースを、ドメインｉではアプリケーションＡを実行していることを表す。
【０２０２】
ここでは、各ドメインについて、アプリケーションは１つである場合を例示したが、ドメイン内に複数のアプリケーションを実行している場合は、複数のアプリケーション名を保持する。
【０２０３】
図２０に示すように演算プログラム２５８は、ドメインＵ上で動作しているアプリケーションの種類を特定し、特定されたアプリケーションの処理１件当たりに必要なドメインＵとドメイン０のそれぞれのＣＰＵ使用率を計算し、ドメインＵのＣＰＵ使用率からドメイン０で必要となるＣＰＵ使用率を計算する。
【０２０４】
ドメインｉ上のアプリケーションＡの場合を例に計算内容を以下で説明する。まず、アプリケーションＡの１処理当たりのドメインＵのＣＰＵ使用率ｐａ１及びｐａ０は以下の式で求まる。
【０２０５】
【数５】
2008217332.tif 000007
次に、アプリケーションＡのドメインＵ及びドメイン０のＣＰＵ使用率の比を求め、この比に仮想マシンリソース使用量取得プログラムで取得されたドメインｉのＣＰＵ使用率を次式のように掛けて、ドメインｉの処理に費やされるドメイン０内のＣＰＵ使用率Ｚｉを求めることができる。
【０２０６】
【数６】
2008217332.tif 000008
次に、図２３のフローチャートを参照して第５の実施形態の全体の動作について詳細に説明する。
【０２０７】
図２３のフローチャートにおいて、ステップＳ３０１、Ｓ３０６、Ｓ３０７は、第２の実施の形態のフローチャートのステップＳ１０１、Ｓ１０４、Ｓ１０５と同じである。
【０２０８】
このため、ここでは、これらのステップの説明は省略し、動作が異なるステップＳ３０２、Ｓ３０３、Ｓ３０４及びＳ３０５のみ説明する。
【０２０９】
ステップＳ３０２では、演算プログラム２５８が、アプリケーション管理テーブル２５７を参照して仮想マシン上で動作しているアプリケーションの種類を検索する。
【０２１０】
第２の実施形態と同様に、ドメイン１上では、科学計算を実行し、ドメイン２上ではデータベースを実行していることを取得する。
【０２１１】
ステップＳ３０３では、演算手段プログラム２５８が、ステップＳ３０２で検索したアプリケーションの処理１件を実行する際に実行される命令の種類と回数をアプリケーション特性ＤＢ２５５から取得する。
【０２１２】
ドメイン１に関しては、アプリケーション特性データベース２５５から科学計算に関する値を取得する。
【０２１３】
ドメイン２に関しては、アプリケーション特性データベース２５５からデータベースに関する値を取得する。
【０２１４】
ステップＳ３０４では、ステップＳ３０３で取得したアプリケーションを処理するために、適合した種類の命令を実行する際の、ドメインＵ及びドメイン０でのＣＰＵ使用率をシステム特性ＤＢ２５６から取得し、このアプリケーション実行時のドメイン０及びドメインＵのＣＰＵ使用率の比率を計算する。
【０２１５】
具体的には、以下のように各命令のＣＰＵ使用率に回数を掛けて総和をとる。
ドメインＵ上での科学計算に関するドメインＵのＣＰＵ使用率は以下の式で求まる、
【０２１６】
【数７】
2008217332.tif 000009
ドメインＵ上での科学計算に関するドメイン０のＣＰＵ使用率は以下の式で求まる、
【０２１７】
【数８】
2008217332.tif 000010
ドメインＵ上でのデータベースに関するドメインＵのＣＰＵ使用率は以下の式で求まる、
【０２１８】
【数９】
2008217332.tif 000011
ドメインＵ上でのデータベースに関するドメイン０のＣＰＵ使用率は以下の式で求まる、
【０２１９】
【数１０】
2008217332.tif 000012
以上の計算より、科学計算のドメインＵとドメイン０のＣＰＵ使用比率は０．２、データベースのドメインＵとドメイン０のＣＰＵ使用比率は１．０と算出できる。
【０２２０】
ステップＳ３０５では、ステップＳ３０４で計算したアプリケーション実行時のドメイン０及びドメインＵのＣＰＵ使用率の比率に、ステップＳ３０１で取得したアプリケーションが動作しているドメインＵのＣＰＵ使用率を掛けることによって、このアプリケーションの動作に関連するドメイン０のＣＰＵ使用率を計算することができる。
【０２２１】
本説明の例では、ドメイン１のＣＰＵ使用率２５％にステップＳ３０４で計算した比率０．２を掛けることで、ドメイン１の処理に関連するドメイン０のＣＰＵ使用率は５％と求まる。
【０２２２】
同様に、ドメイン２のＣＰＵ使用率２０％にステップＳ３０４で計算した比率１．０を掛けることで、ドメイン２の処理に関連するドメイン０のＣＰＵ使用率は２０％と求まる。
【０２２３】
次に本発明の第５の実施の形態における効果を述べる。
【０２２４】
本発明の第５の実施の形態は、第４の実施の形態で利用した共有リソース使用比率ＤＢを、アプリケーション特性ＤＢとシステム特性ＤＢの２つの情報を参照して計算により求める仕組みになっている。
【０２２５】
このため、仮想マシンを移動させる際に、移動元と移動先で物理マシンの性能が異なる場合でも、同一のアプリケーション特性ＤＢとそれぞれのシステム特性ＤＢを利用することで、移動先で必要となるリソース量を計算することができる。
【０２２６】
なお、上記各実施形態の説明では、仮想マシン管理システムはドメイン０で動作する例を示したが、ドメインＵ上及びＶＭＭ内でも動作させることもできる。
【０２２７】
ただし、本発明の仮想マシン管理システムをドメインＵ上で動作させる際には、ドメイン０上にＸｅｎコマンド実行用のエージェントプログラムを追加するなどして、ドメインＵ上からドメイン０のＸｅｎのコマンドを実行できるようにする必要がある。
【産業上の利用可能性】
【０２２８】
本発明は、Ｉ／Ｏ処理要求を直接実行できる特殊な仮想マシンと、この特殊な仮想マシンにＩ／Ｏ処理要求依頼する仮想マシンとで構成される仮想マシンシステムにおいて、これら仮想マシンへのリソース割当量を決定するための管理装置をコンピュータに実現するためのプログラムといった用途に適用可能である。
【図面の簡単な説明】
【０２２９】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明の第１の実施形態における仮想マシンリソース使用量取得手段の構成を示すブロック図である。
【図３】本発明の第１の実施形態における共有リソース使用量取得手段の構成を示すブロック図である。
【図４】本発明の第１の実施形態におけるリソース量演算手段の構成を示すブロック図である。
【図５】本発明の第１の実施形態における出力手段本発明の第１の実施形態の構成を示すブロック図である。
【図６】本発明の第１の実施形態の動作を示すフローチャートである。
【図７】本発明の第２の実施形態の構成を示すブロック図である。
【図８】本発明の第２の実施形態の動作を示すフローチャートである。
【図９】本発明の第３の実施形態の構成を示すブロック図である。
【図１０】本発明の第３の実施形態におけるデータ転送カウント手段で取得されるデータ転送回数の例を示す図である。
【図１１】本発明の第３の実施形態における演算手段の構成を示す図である。
【図１２】本発明の第３の実施形態の動作を示すフローチャートである。
【図１３】本発明の第４の実施形態の構成を示すブロック図である。
【図１４】本発明の第４の実施形態における共有リソース使用量計算プログラムを示す図である。
【図１５】本発明の第４の実施形態における演算プログラムを示す図である。
【図１６】本発明の第４の実施形態における共有リソース使用比率データベースを示す図である。
【図１７】本発明の第４の実施形態におけるアプリケーション管理データベースを示す図である。
【図１８】本発明の第４の実施形態の動作を示すフローチャートである。
【図１９】本発明の第５の実施形態における共有リソース使用量計算プログラムを示す図である。
【図２０】本発明の第５の実施形態における演算プログラムを示す図である。
【図２１】本発明の第５の実施形態におけるアプリケーション特性データベースを示す図である。
【図２２】本発明の第５の実施形態におけるシステム特性データベースを示す図である。
【図２３】本発明の第４の実施形態の動作を示すフローチャートである。
【図２４】従来の仮想マシン管理システムの構成を示すブロック図である。
【図２５】Ｘｅｎのアーキテクチャを示すブロック図である。
【図２６】従来技術の課題を説明するための仮想化システムの例を示す図である。
【図２７】従来技術の課題を説明するための仮想マシンのＣＰＵ使用率の例を示す図である。
【符号の説明】
【０２３０】
１０１、１０１ａ、１０１ｂ、８０１、９０１ａ、９０１ｂ  物理マシン
１０２、１０５ａ、１０５ｂ  アプリケーション
１０３、１０３ａ、１０３ｂ  ドメインＵ仮想マシン
１０４、９４９  ネットワーク
１１１  仮想マシンリソース使用量取得プログラム
１１３  共有リソース割り当て機能付きリソース割当量計算プログラム
１１４  仮想マシン設定プログラム
１１５  通信プログラム
１１６  共有リソース使用量取得プログラム
１２１、２２２、２２４、２２３、２２５  共有リソース使用量計算プログラム
１２０  ドメイン０仮想マシン
１２５  ドメイン０ＯＳ
１２５ａ、１２５ｂ  ドメインＵＯＳ
１２８、７４１  バックエンドドライバ
１３０、７１１、９４４、９５４  Ｘｅｎハイパーバイザ
１６１、２５２、２５８  演算プログラム
２１１、９２０ａ、９２０ｂ  仮想マシン管理システム
２１７  データ転送カウントプログラム
２５１  共有リソース使用比率データベース
２５５  アプリケーション特性データベース
２５６  システム特性データベース
２５７  アプリケーション管理データベース
７０１、８２０、９４１、９５１  ドメイン０
７０２、９４２、９５２  ドメイン１
７０３、９５３  ドメイン２
７１２  共有メモリ
７２１、７２２、７２３、８２０ａ、８２０ｂ、８２０ｃ  ゲストＯＳ
７３１、７３２  アプリケーション
７４０  物理デバイスドライバ
７４２、７４３  フロントエンドドライバ
７５１  ディスク
７５２  ＮＩＣ
７５３  メモリ
７５４  ＣＰＵ
８０３ａ、８０３ｂ  一般仮想マシン
８０４  出力手段
８０４ａ  リソース使用量テーブル
８１０  仮想マシン管理システム
８１１  仮想マシンリソース使用量取得手段
８１１ａ  取得手段
８１１ｂ  仮想マシンリソース使用量テーブル
８２１  共有リソース使用量計算手段
８３１  リソース量演算手段
８３２  共有リソース使用量取得手段
８４１  仮想デバイスドライバ
９０３ａ、９０３ｂ、９０３ｃ、９０３ｄ、９０３ｅ、９０３ｆ  仮想マシン
９１１ａ、９１１ｂ、９１１ｃ、９１１ｄ、９１１ｅ、９１１ｆ  性能モニタ手段
９１２ａ、９１２ｂ  リソース管理手段
９１３ａ、９１３ｂ  仮想マシン管理手段
９４０  第１の物理マシン
９５０  第２の物理マシン
８３２１  集計手段
８３２２  共有リソース使用量テーブル
８３２３  仮想マシンＩＤ取得手段
８３２４  共有リソーススケジューリング取得手段
【図１】
2008217332.tif 000013
【図２】
2008217332.tif 000014
【図３】
2008217332.tif 000015
【図４】
2008217332.tif 000016
【図５】
2008217332.tif 000017
【図６】
2008217332.tif 000018
【図７】
2008217332.tif 000019
【図８】
2008217332.tif 000020
【図９】
2008217332.tif 000021
【図１０】
2008217332.tif 000022
【図１１】
2008217332.tif 000023
【図１２】
2008217332.tif 000024
【図１３】
2008217332.tif 000025
【図１４】
2008217332.tif 000026
【図１５】
2008217332.tif 000027
【図１６】
2008217332.tif 000028
【図１７】
2008217332.tif 000029
【図１８】
2008217332.tif 000030
【図１９】
2008217332.tif 000031
【図２０】
2008217332.tif 000032
【図２１】
2008217332.tif 000033
【図２２】
2008217332.tif 000034
【図２３】
2008217332.tif 000035
【図２４】
2008217332.tif 000036
【図２５】
2008217332.tif 000037
【図２６】
2008217332.tif 000038
【図２７】
2008217332.tif 000039