(57)【要約】【課題】複数の物理マシンを用いて複数の仮想マシンが動作している仮想マシンシステムにおいて、いずれかの物理マシンにリソース不足が発生した場合に、適切にリソース不足を解消することを目的とする。【解決手段】仮想マシン管理装置５は、リソース不足が発生した場合、リソース残量が所定量以上ある物理マシンを特定物理マシンとして特定する。また、仮想マシン管理装置５は、リソース不足が発生した物理マシンで動作する仮想マシンのリソース使用量に基づき、その物理マシンで動作する仮想マシンから、特定物理マシンで動作させた場合にリソースの競合が発生する可能性が低い仮想マシンを特定仮想マシンとして特定する。そして、仮想マシン管理装置５は、特定仮想マシンを稼働させる物理マシンを、特定物理マシンに移動する。【選択図】図１
2012208541.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理マシンにおいて複数の仮想マシンが動作する仮想マシンシステムを管理する仮想マシン管理装置であり、
各物理マシンについて、使用されていないリソースの量であるリソース残量を計測する残量計測部と、
各仮想マシンについて、その仮想マシンが使用しているリソースの量であるリソース使用量を計測する使用量計測部と、
いずれかの物理マシンでリソース不足が発生した場合、前記残量計測部が計測したリソース残量が所定量以上ある物理マシンを特定物理マシンとして特定する物理マシン特定部と、
前記使用量計測部が計測したリソース使用量であって、前記リソース不足が発生した物理マシンである不足マシンで動作する仮想マシンのリソース使用量に基づき、前記不足マシンで動作する仮想マシンから、前記物理マシン特定部が特定した特定物理マシンで動作させた場合にリソースの競合が発生する可能性が低い仮想マシンを特定仮想マシンとして特定する仮想マシン特定部と、
前記仮想マシン特定部が特定した特定仮想マシンを、前記不足マシンで動作させるのを止め、前記特定物理マシンで動作させる仮想マシン移動部と
を備えることを特徴とする仮想マシン管理装置。
【請求項２】
前記仮想マシン特定部は、前記不足マシンで動作する仮想マシンのうち、前記不足マシンで動作する仮想マシン間で共有して使用しているメモリの量である共有量が少ない仮想マシンを、前記特定仮想マシンとして特定する
ことを特徴とする請求項１に記載の仮想マシン管理装置。
【請求項３】
前記仮想マシン管理装置は、さらに、
前記複数の仮想マシンを、提供する機能毎にグループ分けしたグループ情報を記憶したグループ情報記憶部
を備え、
前記仮想マシン特定部は、前記グループ情報記憶部が記憶したグループ情報を参照して、前記不足マシンで動作する仮想マシンのうち、前記共有量が少ない仮想マシンであって、前記特定物理マシンで同一のグループに属する仮想マシンが動作している仮想マシンを、前記特定仮想マシンとして特定する
ことを特徴とする請求項２に記載の仮想マシン管理装置。
【請求項４】
前記仮想マシン特定部は、前記不足マシンで動作する仮想マシンのうち、ＣＰＵ使用率と、その仮想マシンに割り当てられたＣＰＵ数との積である使用ＣＰＵ周波数が小さい仮想マシンを、前記特定仮想マシンとして特定する
ことを特徴とする請求項１に記載の仮想マシン管理装置。
【請求項５】
前記仮想マシン管理装置は、さらに、
仮想マシンに割り当てられるＣＰＵ数に応じた係数を記憶した係数記憶部
を備え、
前記仮想マシン特定部は、前記不足マシンで動作する仮想マシンのうち、前記係数記憶部が記憶した係数であって、その仮想マシンに割り当てられたＣＰＵ数に対する係数を、前記使用ＣＰＵ周波数に掛けた値が小さい仮想マシンを、前記特定仮想マシンとして特定する
ことを特徴とする請求項４に記載の仮想マシン管理装置。
【請求項６】
前記残量計測部は、複数の種類のリソースの各リソースについてのリソース残量を計測し、
前記使用量計測部は、前記各リソースについてのリソース使用量を計測し、
前記物理マシン特定部は、前記複数の種類のリソースのうち、いずれかのリソースのリソース残量が閾値以下になるリソース不足が発生した場合、そのリソースのリソース残量が所定量以上ある物理マシンを、前記特定物理マシンとして特定し、
前記仮想マシン特定部は、前記不足マシンで動作する仮想マシンのうち、前記各リソースのリソース使用量について、リソース毎に重み付けして所定の計算をして得られる値の和が小さい仮想マシンを、前記特定仮想マシンとして特定する
ことを特徴とする請求項１に記載の仮想マシン管理装置。
【請求項７】
複数の物理マシンにおいて複数の仮想マシンが動作する仮想マシンシステムを管理する仮想マシン管理方法であり、
処理装置が、各物理マシンについて、使用されていないリソースの量であるリソース残量を計測する残量計測工程と、
処理装置が、各仮想マシンについて、その仮想マシンが使用しているリソースの量であるリソース使用量を計測する使用量計測工程と、
処理装置が、いずれかの物理マシンでリソース不足が発生した場合、前記残量計測工程で計測したリソース残量が所定量以上ある物理マシンを特定物理マシンとして特定する物理マシン特定工程と、
処理装置が、前記使用量計測工程で計測したリソース使用量であって、前記リソース不足が発生した物理マシンである不足マシンで動作する仮想マシンのリソース使用量に基づき、前記不足マシンで動作する仮想マシンから、前記物理マシン特定工程で特定した特定物理マシンで動作させた場合にリソースの競合が発生する可能性が低い仮想マシンを特定仮想マシンとして特定する仮想マシン特定工程と、
処理装置が、前記仮想マシン特定工程で特定した特定仮想マシンを、前記不足マシンで動作させるのを止め、前記特定物理マシンで動作させる仮想マシン移動工程と
を備えることを特徴とする仮想マシン管理方法。
【請求項８】
複数の物理マシンにおいて複数の仮想マシンが動作する仮想マシンシステムを管理する仮想マシン管理プログラムであり、
各物理マシンについて、使用されていないリソースの量であるリソース残量を計測する残量計測処理と、
各仮想マシンについて、その仮想マシンが使用しているリソースの量であるリソース使用量を計測する使用量計測処理と、
いずれかの物理マシンでリソース不足が発生した場合、前記残量計測処理で計測したリソース残量が所定量以上ある物理マシンを特定物理マシンとして特定する物理マシン特定処理と、
前記使用量計測処理で計測したリソース使用量であって、前記リソース不足が発生した物理マシンである不足マシンで動作する仮想マシンのリソース使用量に基づき、前記不足マシンで動作する仮想マシンから、前記物理マシン特定処理で特定した特定物理マシンで動作させた場合にリソースの競合が発生する可能性が低い仮想マシンを特定仮想マシンとして特定する仮想マシン特定処理と、
前記仮想マシン特定処理で特定した特定仮想マシンを、前記不足マシンで動作させるのを止め、前記特定物理マシンで動作させる仮想マシン移動処理と
をコンピュータに実行させることを特徴とする仮想マシン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の物理マシン（サーバ）において複数の仮想マシンが動作する仮想マシンシステムのリソース管理技術に関する。
【背景技術】
【０００２】
仮想化技術の普及に伴い、各サーバ機能やデスクトップ機能をそれぞれ仮想マシンとすることで、１台の物理マシン上に複数の仮想マシンを配備することが可能となっている。
例えば、データセンタ事業者は、従来は、顧客毎に物理マシンを用意し、サービス提供していた。しかし、上述した仮想化技術の普及により、データセンタ事業者は、複数の顧客に対して共用の１台の物理マシンを用意し、その物理マシン上に各顧客用の仮想マシンを用意して、サービス提供することが可能となっている。
【０００３】
仮想マシンでサービスを提供する場合には、集約度を高め、１台の物理マシン上に可能な限り多くの仮想マシンを稼動させることにより、低コストでのサービスの提供が可能となる。
一方で、集約度を高め過ぎると、仮想マシン間でリソースの競合が発生してしまう。この場合、ある仮想マシンが処理を実施していることで別の仮想マシンの処理が待たされるという状況が頻発し、結果として応答性能の劣化等が発生し、顧客満足度を低下させることになってしまう。
【０００４】
特許文献１には、予め契約等で定められたＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）に基づき、各アプリケーションに割り当てるリソースを制御する方法についての記載がある。
これにより、特許文献１では、集約度を高め低コストでサービスを提供したいという要求と、顧客満足度は低下させたくないという要求との相反する２つの要求を満足させようとしている。
【０００５】
特許文献２には、複数の仮想マシンが使用しているメモリ領域のうち共通する情報を記憶する部分を１つにまとめてしまい、必要な物理メモリ量を削減する方法についての記載がある。
これにより、特許文献２では、例えば、１台の物理マシンにおいて４ＧＢのメモリが必要な仮想マシンが２台稼動している場合、実際に使用するメモリ量を８ＧＢより少なくして、各仮想マシンに４ＧＢのメモリを提供しようとしている。この方法は、仮想マシン間で共通してメモリに記憶する情報が多いほど有効であり、少ないメモリ量で多くの仮想マシンを動作させることが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２９３２８３号公報
【特許文献２】特開２０１０−２１１２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された方法では、ＳＬＡのみでリソースの割り当てを判定しているため、アプリケーション間でＳＬＡに差がなければ有効に機能しない。したがって、前記相反する２つの要求を満足させることはできない。
この発明は、複数の物理マシンを用いて複数の仮想マシンが動作している仮想マシンシステムにおいて、いずれかの物理マシンにリソース不足が発生した場合に、適切にリソース不足を解消することを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る仮想マシン管理装置は、
複数の物理マシンにおいて複数の仮想マシンが動作する仮想マシンシステムを管理する仮想マシン管理装置であり、
各物理マシンについて、使用されていないリソースの量であるリソース残量を計測する残量計測部と、
各仮想マシンについて、その仮想マシンが使用しているリソースの量であるリソース使用量を計測する使用量計測部と、
いずれかの物理マシンでリソース不足が発生した場合、前記残量計測部が計測したリソース残量が所定量以上ある物理マシンを特定物理マシンとして特定する物理マシン特定部と、
前記使用量計測部が計測したリソース使用量であって、前記リソース不足が発生した物理マシンである不足マシンで動作する仮想マシンのリソース使用量に基づき、前記不足マシンで動作する仮想マシンから、前記物理マシン特定部が特定した特定物理マシンで動作させた場合にリソースの競合が発生する可能性が低い仮想マシンを特定仮想マシンとして特定する仮想マシン特定部と、
前記仮想マシン特定部が特定した特定仮想マシンを、前記不足マシンで動作させるのを止め、前記特定物理マシンで動作させる仮想マシン移動部と
を備えることを特徴とする。
【発明の効果】
【０００９】
この発明に係る仮想マシン管理装置では、リソース不足が発生した物理マシンにおいて動作する仮想マシンのうち、特定物理マシンへ移動させてもリソースの競合が発生する可能性の低い仮想マシンを特定して、特定物理マシンへ移動させる。そのため、仮想マシンを移動させることによる移動先の物理マシンへの影響を抑えつつ、リソース不足が発生した物理マシンのリソース不足を解消することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る仮想マシンシステム１００の構成図。
【図２】実施の形態１に係るグループ管理テーブル１６に格納されたグループ情報の例を示す図。
【図３】実施の形態１に係るリソース監視部１２の動作を示すフローチャート。
【図４】実施の形態１に係る移動対象選定部１３の動作を示すフローチャート。
【図５】移動対象選定部１３が各物理マシン１の空きリソース情報をまとめた例を示す図。
【図６】仮想マシン３のメモリの利用状況を概念的に示した図。
【図７】実施の形態２に係る仮想マシンシステム１００の構成図。
【図８】実施の形態２に係る係数記憶部１７に格納された情報の例を示す図。
【図９】実施の形態２に係る移動対象選定部１３の動作を示すフローチャート。
【図１０】実施の形態３に係る係数記憶部１７に格納された情報の例を示す図。
【図１１】実施の形態３に係る移動対象選定部１３の動作を示すフローチャート。
【図１２】リソースの共有に関する値と、評価値とを示す図。
【図１３】仮想マシン管理装置５のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、図に基づき発明の実施の形態について説明する。
なお、以下の説明において、処理装置は後述するＣＰＵ９１１等であり、記憶装置は後述するＲＯＭ９１３、ＲＡＭ９１４、磁気ディスク装置９２０等である。つまり、処理装置や記憶装置はハードウェアである。
【００１２】
実施の形態１．
実施の形態１では、仮想マシン３間で共有しているメモリ量を利用して、移動させる仮想マシン３を特定する方法について説明する。
【００１３】
図１は、実施の形態１に係る仮想マシンシステム１００の構成図である。
仮想マシンシステム１００は、複数の物理マシン１（物理マシン１ａ，１ｂ，．．．）を備える。各物理マシン１では、仮想マシン３を動作させる環境を提供する仮想化ソフトウェア２（仮想化ソフトウェア２ａ，２ｂ，．．．）が動作している。そして、各仮想化ソフトウェア２では、サーバ機能やデスクトップ機能を提供する複数の仮想マシン３が動作している。
【００１４】
また、仮想マシンシステム１００は、各物理マシン１と通信回線４を介して接続された仮想マシン管理装置５を備える。さらに、仮想マシンシステム１００は、各物理マシン１と通信回線６を介して接続されたストレージ７を備える。
通信回線４は、例えばイントラネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークである。ここでは１本のネットワークで記載しているが、管理用のネットワークや業務用のネットワークなどで複数用意することも可能である。仮想マシン管理装置５は、物理マシン１で動作する仮想マシン３を管理する装置である。通信回線６は、例えばＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）、ＬＡＮ等のストレージ７にアクセスするためのストレージネットワークである。ストレージ７は、仮想マシン３のディスクイメージを格納する記憶装置である。
【００１５】
仮想マシン管理装置５は、グループ管理部１１、リソース監視部１２（使用量計測部）、移動対象選定部１３、仮想マシン移動部１４、リソース使用情報記憶部１５、グループ管理テーブル１６（グループ情報記憶部）を備える。
【００１６】
グループ管理部１１は、グループ管理部１１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウェア、アプリケーション等の共通の構成要素を持つ仮想マシン３が同じグループになるように、仮想マシン３を処理装置によりグループ分けする。そして、グループ管理部１１は、各グループを示すグループ情報をグループ管理テーブル１６に格納する。
【００１７】
リソース監視部１２は、各物理マシン１や各仮想マシン３の構成情報やリソース使用情報を定期的に収集し、リソース使用情報記憶部１５に格納する。また、リソース監視部１２は、予め設定された閾値や、収集したリソース使用情報に基づき、物理マシン１でリソース不足が発生していないか処理装置によりチェックする。
【００１８】
移動対象選定部１３は、ある物理マシン１（不足マシン）にリソース不足が発生した場合に、不足マシンで動作するどの仮想マシン３を、不足マシン以外のどの物理マシン１へ移動させるかを処理装置により決定する。
移動対象選定部１３は、各物理マシン１について、使用されていないリソースの量である空きリソース（リソース残量）を計測する残量計測部１３１と、移動先の物理マシン１を移動先物理マシン（特定物理マシン）として特定する物理マシン特定部１３２と、移動させる仮想マシン３を移動対象仮想マシン（特定仮想マシン）として特定する仮想マシン特定部１３３とを備える。
【００１９】
仮想マシン移動部１４は、仮想マシン特定部１３３が特定した移動対象仮想マシンを物理マシン特定部１３２が特定した移動先物理マシンへ処理装置により移動させることにより、不足マシンのリソース不足を解消する。
つまり、仮想マシン移動部１４は、不足マシンで特定仮想マシンを動作させるのを止め、特定物理マシンで特定仮想マシンを動作させる。これにより、不足マシンで動作する仮想マシン３を減らして、不足マシンのリソース不足を解消する。
【００２０】
リソース使用情報記憶部１５は、リソース監視部１２が収集した各物理マシン１や各仮想マシン３のリソース使用情報が格納される記憶装置である。
【００２１】
グループ管理テーブル１６は、グループ管理部１１が設定したグループ情報が格納される記憶装置である。
【００２２】
図２は、実施の形態１に係るグループ管理テーブル１６に格納されたグループ情報の例を示す図である。
グループ管理テーブル１６には、グループ名１６−１、仮想マシン名１６−２、稼働物理マシン名１６−３の情報が格納される。グループ名１６−１は、グループの識別情報である。ここでは、サービス事業者が複数の企業に対して仮想マシン３のリソースを提供している形態を示しており、Ａ社デスクトップやＡ社Ｗｅｂサーバ等のグループ名を付与している。仮想マシン名１６−２は、グループ名１６−１が示すグループに属する仮想マシン３の識別情報である。稼動物理マシン名１６−３は、仮想マシン名１６−２が示す仮想マシン３が稼動している物理マシン１の識別情報である。
【００２３】
図３は、実施の形態１に係るリソース監視部１２の動作を示すフローチャートである。
（ＳＴ１０１）
リソース監視部１２は、各物理マシン１で使用されているリソースの情報や、各仮想マシン３が使用しているリソースの情報等の各物理マシン１や各仮想マシン３のリソース使用に関する情報であるリソース使用情報の収集を定期的に行う。
なお、収集される情報は、ＣＰＵ使用率、ＣＰＵ数、ＣＰＵ動作周波数、ＣＰＵ処理待ち時間、メモリ割当量、メモリ使用量、メモリ共有利用量、スワップ発生状況、ネットワーク使用量、ストレージネットワーク使用量等である。収集する情報は、リソース不足の発生を判定できる情報であれば、前記に限ったものではない。
【００２４】
（ＳＴ１０２）
リソース監視部１２は、ＳＴ１０１で収集した情報を、リソース使用情報記憶部１５に格納する。
【００２５】
（ＳＴ１０３）
リソース監視部１２は、ＳＴ１０２で格納されたリソース使用に関する情報に基づき、いずれかの物理マシン１で何らかのリソースに不足が発生しているか否かを判定する。
なお、リソース不足が発生しているか否かは、例えば物理マシン１のＣＰＵ使用率が予め設定された閾値を超えているか否か、ＣＰＵ処理待ち時間が所定の時間以上となっているか否か、スワップの発生頻度が閾値以上であるか否か等の方法で判定する。
リソース監視部１２は、リソース不足が発生していると判定した場合（ＳＴ１０３でＹＥＳ）、処理をＳＴ１０４へ進める。一方、リソース監視部１２は、リソース不足が発生していないと判定した場合（ＳＴ１０３でＮＯ）、処理をＳＴ１０１へ進める。
【００２６】
（ＳＴ１０４）
リソース監視部１２は、リソース不足が発生していると判定すると、リソース不足を解消するため、移動対象選定部１３へ不足したリソースの種別（メモリやＣＰＵ等）を通知する。
【００２７】
図４は、実施の形態１に係る移動対象選定部１３の動作を示すフローチャートである。
（ＳＴ２０１）
残量計測部１３１は、ＳＴ１０４でリソース監視部１２から通知を受け付けると、リソース使用情報記憶部１５に蓄積されているリソース使用情報を読み込む。そして、移動対象選定部１３は、各物理マシン１のＣＰＵ、メモリ、ネットワーク、ストレージネットワークの各空きリソースを計算する。
例えば、ＣＰＵの空き容量は、「（１−ＣＰＵ使用率（％）／１００）×物理コアの周波数×コア数」等の計算によって導出する。ＣＰＵ使用率が７０％で、物理コアの周波数が２ＧＨｚ、コア数が８の場合は、０．３×２０００×８＝４８００ＭＨｚとなる。なお、ＣＰＵ使用率として利用する値は、過去からの平均、移動平均、ピーク値、パーセンタイル値、最新値などからシステムにおいて最適なものを利用すればよく、特に限定はない。
図５は、残量計測部１３１が各物理マシン１の空きリソース情報をまとめた例を示す図である。
【００２８】
（ＳＴ２０２）
物理マシン特定部１３２は、リソース監視部１２が通知してきたリソース種別の空きリソースが最も大きい物理マシン１を移動先物理マシンとして導出する。
例えば、図５の空きリソースを導出した結果で、不足したリソースがメモリだった場合、メモリ空きリソースが最も大きいＳｒｖ０２が移動先物理マシンとして導出される。不足リソースがＣＰＵだった場合、ＣＰＵ空きリソースが最も大きいＳｒｖ０３が移動先物理マシンとして導出される。
【００２９】
（ＳＴ２０３）
仮想マシン特定部１３３は、リソース不足が発生している物理マシン１上で稼動しているすべての仮想マシン３のメモリ共有の状況をリソース使用情報記憶部１５から取得し、メモリ共有の度合いが低い（共有しているメモリ領域の小さい）ものから順に並べる。そして、先頭の（共有しているメモリ領域が最も小さい）仮想マシン３を選択する。
図６は、仮想マシン３のメモリの利用状況を概念的に示した図である。例えば、図６の場合、仮想マシンＡ、仮想マシンＢ共に２ＧＢのメモリが割り当てられていて、それぞれ実際に使用しているメモリ量が１．２ＧＢである。使用しているメモリ量１．２ＧＢのうち、仮想マシンＡは４００ＭＢ分が他の仮想マシン３と同じメモリ領域を使用しているのに対し、仮想マシンＢは、２５０ＭＢ分が他の仮想マシン３と同じメモリ領域を使用している。従って、メモリ共有の度合いが低いものから順に並べると仮想マシンＢ、仮想マシンＡの順番になる。他に仮想マシン３が動作しており、共有しているメモリ領域は仮想マシンＡ，Ｂ以外の他の仮想マシン３とも共有していると仮定すると、仮想マシンＡを別の物理マシン１に移動させると、８００ＭＢの空き容量ができることになる。一方、仮想マシンＢを別の物理マシン１に移動させると、９５０ＭＢの空き容量ができることになる。つまり、仮想マシンＢを移動させた方が、多くの空き容量ができる。
【００３０】
（ＳＴ２０４）
仮想マシン特定部１３３は、グループ管理テーブル１６を参照して、ＳＴ２０３で選択した仮想マシン３と同じグループに属する仮想マシン３が、ＳＴ２０２で導出した移動先物理マシンで稼動しているか否かを判定する。
このような判定を行うのは、移動先物理マシンで同一のグループに属している仮想マシン３が稼働している場合、ＳＴ２０４で選択した仮想マシン３を移動先物理マシンへ移動させると、多くのメモリを共有できると認められるためである。
仮想マシン特定部１３３は、同一グループに属する仮想マシン３が稼動している場合（ＳＴ２０４でＹＥＳ）、ＳＴ２０５へ処理を進める。一方、移動対象選定部１３は、同一グループに属する仮想マシン３が稼動していない場合（ＳＴ２０４でＮＯ）、ＳＴ２０６へ処理を進める。
【００３１】
（ＳＴ２０５）
仮想マシン特定部１３３は、選択した仮想マシン３を移動対象仮想マシンとして導出する。
【００３２】
（ＳＴ２０６）
仮想マシン特定部１３３は、ＳＴ２０３で並べた仮想マシン３に、まだ選択されていない仮想マシン３があるか否かを判定する。
移動対象選定部１３は、選択されていない仮想マシン３がある場合（ＳＴ２０６でＹＥＳ）、選択されていない仮想マシン３のうち、先頭の（共有しているメモリ領域が最も小さい）仮想マシン３を選択して、処理をＳＴ２０４へ戻す。一方、移動対象選定部１３は、選択されていない仮想マシン３がない場合（ＳＴ２０６でＮＯ）、処理をＳＴ２０７へ進める。
【００３３】
（ＳＴ２０７）
仮想マシン特定部１３３は、最も共有しているメモリ領域が最も小さい仮想マシン３、つまり初めにＳＴ２０３で選択した仮想マシン３を移動対象仮想マシンとして導出する。
【００３４】
（ＳＴ２０８）
移動対象選定部１３は、移動対象仮想マシンの導出が完了すると、仮想マシン移動部１４に通知する。
なお、通知を受けた仮想マシン移動部１４は、ＳＴ２０５又はＳＴ２０７で導出された移動対象仮想マシンを、ＳＴ２０２で導出された移動先物理マシンに移動させることでリソース不足の解消を行う。また、仮想マシン移動部１４にて仮想マシン３を別の物理マシン１に移動した場合は、グループ管理部１１が稼動物理マシン名１６−３の内容を更新する。
【００３５】
もし、１つの仮想マシン３を移動させてもリソース不足が解消しない場合には、再びＳＴ１０４で移動対象選定部１３へ通知され、他の仮想マシン３の移動がされる。つまり、繰り返し仮想マシン３の移動がされることにより、リソース不足が解消される。
【００３６】
以上のように、実施の形態１に係る仮想マシン管理装置５は、リソース不足が発生した場合、複数の仮想マシン３間で共有しているメモリ量に基づき、移動させる仮想マシン３を選択する。また、実施の形態１に係る仮想マシン管理装置５は、特に、移動先でのメモリ共有が実施できる可能性が高い仮想マシン３を選択する。
これにより、リソース不足が発生している物理マシン１のリソース不足を解消できるとともに、移動先の物理マシン１で移動してきた仮想マシン３が専有するメモリ量を抑えることができる。そのため、仮想マシン３を移動させることに伴い、移動先の物理マシン１でリソース不足が発生するリスクを抑えることができる。その結果、リソース不足発生に伴う顧客への影響を抑えることが可能となる。
また、リソースの共有利用を前提とした仮想マシン３の配置が可能となるため、１台の物理マシン１で稼動させることができる仮想マシン３の台数を増やすことが可能となる。そのため、必要な物理マシン１の台数を削減することができ、仮想マシン３を提供する事業者のコスト削減を実現することが可能となる。
【００３７】
なお、上記説明では、図６に示すように、仮想マシンＡと仮想マシンＢとは、使用しているメモリ量が同じであるとした。しかし、仮想マシン特定部１３３は、使用しているメモリ量が異なる場合であっても、使用しているメモリ量に関わらず、共有しているメモリ領域の大きさで、どの仮想マシン３を移動させるかを判定する。これは、各仮想サーバが使用しているメモリ量は時々刻々と変わってしまうため、不足が生じた時点において使用しているメモリ量で判定すると、実態と合わない可能性があるためである。共有しているメモリ領域の大きさも、時々刻々と変化する可能性もあるが、共有しているメモリ領域はＯＳ等によって使用されている部分であり、変化率は小さいものと考えられる。そこで、移動対象選定部１３は、使用しているメモリ量に関わらず、共有しているメモリ領域の大きさで、どの仮想マシン３を移動させるかを判定する。
【００３８】
実施の形態２．
実施の形態２では、仮想マシン３で使用しているＣＰＵの使用動作周波数を利用して、移動させる仮想マシン３を特定する方法について説明する。
【００３９】
図７は、実施の形態２に係る仮想マシンシステム１００の構成図である。
実施の形態２に係る仮想マシンシステム１００は、各仮想マシン３に割り当てられているＣＰＵ数に応じて、周波数の値を変換するための変換係数が格納された記憶装置である係数記憶部１７が追加されている点が図１に示す仮想マシンシステム１００と異なる。
【００４０】
図８は、実施の形態２に係る係数記憶部１７に格納された情報の例を示す図である。
係数記憶部１７には、割当ＣＰＵ数１７−１、係数１７−２の情報が格納される。割当ＣＰＵ数１７−１は、各仮想マシン３に割り当てられているＣＰＵ数である。係数１７−２は、割り当てられているＣＰＵ数に応じ、総使用周波数に掛ける係数である。
図８に示すように、割り当てられているＣＰＵ数が多いほど、総使用周波数に掛ける係数は大きくなる。
【００４１】
図９は、実施の形態２に係る移動対象選定部１３の動作を示すフローチャートである。
ＳＴ３０１からＳＴ３０２までは、図４に示すＳＴ２０１からＳＴ２０２までと同じである。
【００４２】
（ＳＴ３０３）
仮想マシン特定部１３３は、リソース不足が発生している物理マシン１上で稼動しているすべての仮想マシン３のＣＰＵの総使用周波数をリソース使用情報記憶部１５から取得し、係数記憶部１７の係数を掛け合わせる。そして、移動対象選定部１３は、計算された値が最も低いものを移動対象仮想マシンとして導出する。割り当てられているＣＰＵ数が多いほど、総使用周波数に掛ける係数は大きいため、ほぼ同じ動作周波数の仮想マシン３であっても割り当てられているコア数の少ない仮想マシン３が移動対象仮想マシンとして導出される。
例えば、「ＣＰＵ使用率（％）／１００×物理コアの周波数×割当ＣＰＵ数×係数」などの計算によって値を導出する。ＣＰＵ使用率が７０％で、物理コアの周波数が２ＧＨｚ、割当ＣＰＵ数が２の場合は、０．７×２０００×２×１．２＝３３６０となる。
【００４３】
ＳＴ３０４は、図４に示すＳＴ２０８と同じである。
【００４４】
以上のように、実施の形態２に係る仮想マシン管理装置５は、リソース不足が発生した場合に、利用している周波数のみでなく、割り当てられているＣＰＵ数を考慮して、移動させる仮想マシン３を選択する。
これにより、ほぼ同じ動作周波数の仮想マシン３であっても割り当てられているコア数の少ない仮想マシン３が移動対象として導出されることになる。そのため、移動先の物理マシン１で移動した仮想マシン３が動作する際に専有するコア数が少なくなり、元々動作していた仮想マシン３の動作への影響を抑えることができる。その結果、リソース不足発生に伴う顧客への影響を抑えることが可能となる。
【００４５】
実施の形態３．
実施の形態１では、共有しているメモリ量を利用して、移動させる仮想マシン３を特定した。また、実施の形態２では、ＣＰＵの使用動作周波数を利用して、移動させる仮想マシン３を特定した。
実施の形態３では、仮想マシン３の各リソースの使用状況を総合的に利用して、移動させる仮想マシン３を特定する方法について説明する。
【００４６】
実施の形態３に係る仮想マシンシステム１００は、図７に示すと同じ構成である。但し、係数記憶部１７に格納される情報が異なる。
【００４７】
図１０は、実施の形態３に係る係数記憶部１７に格納された情報の例を示す図である。
係数記憶部１７には、共有度判定要素１７−３、係数１７−４の情報が格納される。共有度判定要素１７−３は、各リソースの識別情報である。係数１７−４は、各リソースの重み付けを指定する係数である。
【００４８】
図１１は、実施の形態３に係る移動対象選定部１３の動作を示すフローチャートである。図１２は、リソースの共有に関する値と、評価値とを示す図である。なお、図１２では、上の表がリソースの共有に関する値を示し、下の表が評価値を示す。
ＳＴ４０１からＳＴ４０２までは、図４に示すＳＴ２０１からＳＴ２０２までと同じである。
【００４９】
（ＳＴ４０３）
移動対象選定部１３は、リソース不足が発生している物理マシン１上の仮想マシン３のリソース使用情報を抽出し、標準化を行う。
標準化は、例えば「（値−平均値）／標準偏差」の式で計算する。図１２の上の表のメモリ共有量については、各仮想マシン３の値が４２７、６３９、４３６、３３０、５２６となっていることから、平均値は４７１．６、標準偏差は１０４．２となる。この時、ＶＭ０１の標準化した値は、「（４２７−４７１．６）／１０４．２＝−０．４３」と計算できる。これらを全ての仮想マシン３の全てのパラメータについて計算する。但し、移動先の物理マシン１上に同一のグループに属する仮想マシン３があるか否かは、ある場合を−１、ない場合を０とした状態で標準化が実施されているものとみなし、そのままの値を使用する。
【００５０】
（ＳＴ４０４）
移動対象選定部１３は、標準化された値に、係数記憶部１７に格納されている係数を掛けた値を評価値とする。そして、移動対象選定部１３は、評価値の和が最も小さい仮想マシン３を移動対象仮想マシンとして導出する。
例えば、図１２に示した仮想マシン３ＶＭ０１〜ＶＭ０５がリソース不足となっている物理マシン１上で動作している仮想マシン３であるとし、図１２の上の表に示すように、それぞれのリソースに該当する値が得られているとする。すると、図１２の下の表に示す値が、これらの値を標準化し、係数をかけた評価値となる。そして、右の和の欄に示した値が最も小さいＶＭ０４が移動対象の仮想マシン３として導出される。
【００５１】
ＳＴ４０５は、図４に示すＳＴ２０８と同じである。
【００５２】
以上のように、実施の形態３に係る仮想マシン管理装置５は、リソース不足が発生した場合に、すべての共有リソースに関する情報を総合的に用いて移動対象の仮想マシン３の選定を行う。
これにより、仮想マシン３を移動させることによる移動先の物理マシン１への影響を抑えることができる。その結果、リソース不足発生に伴う顧客への影響を抑えることが可能となる。
【００５３】
なお、以上の実施の形態では、移動対象の仮想マシン３を選択する際に、共有しているメモリ量を利用することや、ＣＰＵの使用動作周波数を利用することや、仮想マシン３の各リソースの使用状況を総合的に利用することを説明した。
これ以外にも、例えば、各仮想マシン３の通信回線４の使用量の状況を監視し、通信回線４の使用量の低い仮想マシン３を移動対象の仮想マシン３として選択するようにしてもよい。
また、例えば、ストレージネットワークである通信回線６の使用量の状況を監視し、通信回線６の使用量の低い仮想マシン３を移動対象の仮想マシン３として選択するようにしてもよい。
つまり、仮想マシン３を移動させた場合に、移動先の物理マシン１でリソースの競合が発生する可能性の低い仮想マシン３を移動対象仮想マシンとして選択できる方法であれば、他の方法であってもよい。
【００５４】
図１３は、仮想マシン管理装置５のハードウェア構成の一例を示す図である。
図１３に示すように、仮想マシン管理装置５は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９１５（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、通信ボード９１６、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００５５】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００５６】
プログラム群９２３には、上記の説明において「グループ管理部１１」、「リソース監視部１２」、「移動対象選定部１３」、「仮想マシン移動部１４」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「リソース使用情報記憶部１５」、「グループ管理テーブル１６」、「係数記憶部１７」等に記憶される情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００５７】
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００５８】
１  物理マシン、２  仮想化ソフトウェア、３  仮想マシン、４  通信回線、５  仮想マシン管理装置、６  通信回線、７  ストレージ、１１  グループ管理部、１２  リソース監視部、１３  移動対象選定部、１３１  残量計測部、１３２  物理マシン特定部、１３３  仮想マシン特定部、１４  仮想マシン移動部、１５  リソース使用情報記憶部、１６  グループ管理テーブル、１７  係数記憶部。
【図１】
2012208541.tif 000003
【図２】
2012208541.tif 000004
【図３】
2012208541.tif 000005
【図４】
2012208541.tif 000006
【図５】
2012208541.tif 000007
【図６】
2012208541.tif 000008
【図７】
2012208541.tif 000009
【図８】
2012208541.tif 000010
【図９】
2012208541.tif 000011
【図１０】
2012208541.tif 000012
【図１１】
2012208541.tif 000013
【図１２】
2012208541.tif 000014
【図１３】
2012208541.tif 000015