(57)【要約】【課題】応答速度を向上させるとともに最適なリソースの利用率を達成することができる仮想マシンの負荷管理システム及びその方法を提供する。【解決手段】仮想マシンの負荷管理方法は、マスタ仮想マシンサーバに接続された各スレーブ仮想マシンサーバのリソース利用率を一定時間ごとに収集し、且つ各スレーブ仮想マシンサーバの識別子に基づいてデータ表に記憶するステップと、各スレーブ仮想マシンサーバのリソース使用率をリアルタイムに監視し、スレーブ仮想マシンサーバのリソース使用率が一定時間に設定された閾値以上である場合、スレーブ仮想マシンサーバに対して標識を添付するステップと、リソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索してターゲットサーバと設定するステップと、仮想マシンの中から転送しようとする仮想マシンを検索してターゲットサーバに転送するステップと、を備える。【選択図】図２
2014049129.tif 000002
【特許請求の範囲】
【請求項１】
マスタ仮想マシンサーバに応用されている仮想マシンの負荷管理方法であって、
前記マスタ仮想マシンサーバに接続された各スレーブ仮想マシンサーバのリソース利用率を一定時間ごとに収集し、且つ前記各スレーブ仮想マシンサーバの識別子に基づいて収集されたリソース利用率を対応するデータ表に記憶する記憶ステップと、
前記各スレーブ仮想マシンサーバのリソース使用率をリアルタイムに監視し、あるスレーブ仮想マシンサーバのリソース使用率が一定時間に設定された閾値以上である場合、前記あるスレーブ仮想マシンサーバに対して標識を添付する監視ステップと、
分散並列計算方法によって複数のスレーブ仮想マシンサーバの中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索し、且つ検索したスレーブ仮想マシンサーバをターゲットサーバと設定する計算ステップと、
標識付きスレーブ仮想マシンサーバによって管理された仮想マシンの中から転送しようとする仮想マシンを検索し、且つ検索した仮想マシンをターゲットサーバに転送する配置ステップと、
を備えることを特徴とする仮想マシンの負荷管理方法。
【請求項２】
前記リソース利用率は、ＣＰＵ利用率、内部メモリー利用率を含み、前記データ表は、前記スレーブ仮想マシンサーバの識別子、前記スレーブ仮想マシンサーバのＣＰＵ利用率、前記内部メモリー利用率及び収集された各リソース利用率をデータ表に記憶する記憶時間を含むことを特徴とする請求項１に記載の仮想マシンの負荷管理方法。
【請求項３】
マスタ仮想マシンサーバは、インターネットによって1つのデータベーススキーマに接続され、前記データベーススキーマには、一台又は複数台のデータベースサーバがインストールされ、前記データベースサーバの数量が一台である場合、前記スレーブ仮想マシンサーバのリソース利用率を記憶したデータ表は、前記データベースサーバに記憶され、前記データベースサーバの数量が複数台である場合、前記スレーブ仮想マシンサーバのリソース利用率を記憶したデータ表を記憶するための前記データベースサーバを予め設定するか又は任意に指定することを特徴とする請求項１又は２に記載の仮想マシンの負荷管理方法。
【請求項４】
前記計算ステップは、
前記各スレーブ仮想マシンサーバに対応する前記データ表を時間に基づいて異なるスプリットに分けるサブステップと、
前記各スプリットに対してグループ分けを行って並列加算し、同一グループデータを再加算してグループ分けした際の合計を得て、次いで、全てのグループ分けした際の合計を加算して総数を得るサブステップと、
スプリットの数で上記総数を割って、前記スレーブ仮想マシンサーバのリソース平均利用率を得るサブステップと、
前記スレーブ仮想マシンサーバから前記リソース利用率が設定値に最も近いスレーブ仮想マシンサーバを検索し、前記リソース利用率が設定値に最も近いスレーブ仮想マシンサーバをターゲットサーバと設定するサブステップと、
を備えることを特徴とする請求項１から３のいずれか一項に記載の仮想マシンの負荷管理方法。
【請求項５】
転送しようとする仮想マシンは、前記リソース利用率が最も低い仮想マシンであることを特徴とする請求項１から４のいずれか一項に記載の仮想マシンの負荷管理方法。
【請求項６】
マスタ仮想マシンサーバに応用されている仮想マシンの負荷管理システムであって、
前記マスタ仮想マシンサーバに接続された各スレーブ仮想マシンサーバのリソース利用率を一定時間ごとに収集し、且つ前記各スレーブ仮想マシンサーバの識別子に基づいて収集されたリソース利用率を対応するデータ表に記憶する記憶モジュールと、
前記各スレーブ仮想マシンサーバのリソース使用率をリアルタイムに監視し、あるスレーブ仮想マシンサーバのリソース使用率が一定時間に設定された閾値以上である場合、前記あるスレーブ仮想マシンサーバに対して標識を添付する監視モジュールと、
分散並列計算方法によって複数のスレーブ仮想マシンサーバの中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索し、且つ検索したスレーブ仮想マシンサーバをターゲットサーバに設定する計算モジュールと、
標識付きスレーブ仮想マシンサーバによって管理された仮想マシンの中から転送しようとする仮想マシンを検索し、且つ検索した仮想マシンをターゲットサーバに転送する配置モジュールと、
を備えることを特徴とする仮想マシンの負荷管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリー管理方法に関するものであり、特に仮想マシンの負荷管理システム及びその方法に関するものである。
【背景技術】
【０００２】
サーバに仮想マシンを設置することにより、1つのコンピュータ上で一台又は複数台のサーバをエミュレートすることができる。現有の仮想化技術は、柔軟なリソース配分及び急速な展開機能が備わっているとともに、ハードウェアリソースの使用率が向上されている。従って、如何に各仮想マシンが十分な計算リソースを獲得でき、物理マシンのリソースを効果的に各仮想マシンに配分するかが、現在の主要課題である。
【０００３】
既存の技術において、元のノードと隣接するノードとの間に負荷率を比較することによって、応答速度を向上させることができる。例えば、相隣するノードの負荷が元のノードの負荷より低い場合、実行中のプログラムを隣接するノードに転送する。しかし、相隣するノードの負荷と元のノードの負荷を比較するのみであるため、遠距離のアイドルノードが使用されない場合がある。従って、この方法は、応答速度を向上させることはできるが、最適なリソースの利用率を達成できない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以上の問題点に鑑みて、本発明は、応答速度を向上させるとともに最適なリソースの利用率を達成することができる仮想マシンの負荷管理システム及びその方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係る仮想マシンの負荷管理方法は、マスタ仮想マシンサーバに応用されている。前記マスタ仮想マシンサーバに接続された各スレーブ仮想マシンサーバのリソース利用率を一定時間ごとに収集し、且つ前記各スレーブ仮想マシンサーバの識別子に基づいて収集されたリソース利用率を対応するデータ表に記憶するステップと、前記各スレーブ仮想マシンサーバのリソース使用率をリアルタイムに監視し、あるスレーブ仮想マシンサーバのリソース使用率が一定時間に設定された閾値以上である場合、前記あるスレーブ仮想マシンサーバに対して標識を添付するステップと、分散並列計算方法によって複数のスレーブ仮想マシンサーバの中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索し、且つ検索したスレーブ仮想マシンサーバをターゲットサーバと設定するステップと、標識付きスレーブ仮想マシンサーバによって管理された仮想マシンの中から転送しようとする仮想マシンを検索し、且つ検索した仮想マシンをターゲットサーバに転送するステップと、を備える。
【０００６】
また、本発明に係る仮想マシンの負荷管理システムは、マスタ仮想マシンサーバに応用されている。前記マスタ仮想マシンサーバに接続された各スレーブ仮想マシンサーバのリソース利用率を一定時間ごとに収集し、且つ前記各スレーブ仮想マシンサーバの識別子に基づいて収集されたリソース利用率を対応するデータ表に記憶する記憶モジュールと、前記各スレーブ仮想マシンサーバのリソース使用率をリアルタイムに監視し、あるスレーブ仮想マシンサーバのリソース使用率が一定時間に設定された閾値以上である場合、前記あるスレーブ仮想マシンサーバに対して標識を添付する監視モジュールと、分散並列計算方法によって複数のスレーブ仮想マシンサーバの中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索し、且つ検索したスレーブ仮想マシンサーバをターゲットサーバと設定する計算モジュールと、標識付きスレーブ仮想マシンサーバによって管理された仮想マシンの中から転送しようとする仮想マシンを検索し、且つ検索した仮想マシンをターゲットサーバに転送する配置モジュールと、を備える。
【発明の効果】
【０００７】
従来の技術に比べて、本発明の仮想マシンの負荷管理システム及びその方法は、物理マシンのリソースを効果的に各仮想マシンに配分することによって、最適なリソースの利用率を達成するとともに、ターゲットサーバを検索する時間を短縮して、応答速度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る仮想マシンの負荷管理システムの応用環境を示す図である。
【図２】図１に示す仮想マシンの負荷管理システムのブロック図である。
【図３】本発明の実施形態に係る仮想マシンの負荷管理方法のフローチャートである。
【図４】本発明の実施形態において各スレーブ仮想マシンサーバの平均利用率を計算する具体的な方法を示す図である。
【図５】本発明の実施形態に係る複数のスレーブ仮想マシンサーバの中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバを検索する具体的な方法を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態について説明する。
【００１０】
図１は、本発明の実施形態に係る仮想マシンの負荷管理システムの応用環境を示す図である。仮想マシンの負荷管理システム１０は、マスタ仮想マシンサーバ１に応用される。マスタ仮想マシンサーバ１は、インターネット２によって複数のスレーブ仮想マシンサーバ３（図１において二台のみ示す）に接続される。複数のスレーブ仮想マシンサーバ３は、それぞれ内部にインストールされたマスタ仮想監視プログラム３０によって、1つ又は複数の仮想マシン３２を監視するか又は管理する。マスタ仮想マシンサーバ１は、インターネットによって1つのデータベーススキーマ４に接続される。このデータベーススキーマ４には、一台又は複数台のデータベースサーバ４０（図１において二台のみ示す）がインストールされている。
【００１１】
本実施形態において、データベーススキーマ４は、計算及び記憶機能が備わっているデータベーススキーマであり、例えば、非リレーショナルデータベーススキーマである。
【００１２】
図２は、図１に示す仮想マシンの負荷管理システム１０のブロック図である。本実施形態において、マスタ仮想マシンサーバ１は、仮想マシンの負荷管理システム１０を備える以外にも、記憶装置１２及びプロセッサ１４をさらに備える。
【００１３】
その中で、仮想マシンの負荷管理システム１０は、ソフトプログラム又はコードとして記憶装置１２にインストールされ、且つプロセッサ１４によって実行される。仮想マシンの負荷管理システム１０は、記憶モジュール１００と、監視モジュール１０２と、計算モジュール１０４と、配置モジュール１０６と、を備える。
【００１４】
記憶モジュール１００は、マスタ仮想マシンサーバ１に接続された各スレーブ仮想マシンサーバ３のリソース利用率を一定時間ごとに収集し、且つ各スレーブ仮想マシンサーバ３の識別子（ＩＤ）に基づいて収集されたリソース利用率を対応するデータ表に記憶する。
【００１５】
本実施形態において、リソース利用率は、ＣＰＵ利用率、内部メモリー利用率（以下、ＭＥＭ利用率とする）を含む。データ表は、スレーブ仮想マシンサーバ３のＩＤ、スレーブ仮想マシンサーバ３のＣＰＵ利用率、ＭＥＭ利用率及び収集された各リソース利用率をデータ表に記憶する記憶時間を含む。
【００１６】
その中で、各スレーブ仮想マシンサーバ３に対応するデータ表は、データベーススキーマ４の中のデータベースサーバ４０に記憶されている。
【００１７】
具体的には、データベースサーバ４０の数量が一台である場合、スレーブ仮想マシンサーバ３のリソース利用率を記憶したデータ表は、データベースサーバ４０に記憶されている。データベースサーバ４０の数量が複数台である場合、スレーブ仮想マシンサーバ３のリソース利用率を記憶したデータ表を記憶するためのデータベースサーバ４０を予め設定する。
【００１８】
本実施形態において、各スレーブ仮想マシンサーバ３は、一台のデータベースサーバ４０に対応する。即ち、データベースサーバ４０の数量は、スレーブ仮想マシンサーバ３の数量以上であることができる。例えば、マスタ仮想マシンサーバ１は、インターネット２によって複数のスレーブ仮想マシンサーバ３に接続され、スレーブ仮想マシンサーバＡ、Ｂ・・・ｎにおいて、スレーブ仮想マシンサーバＡに対応するデータ表は１番目のデータベースサーバ４０に記憶され、スレーブ仮想マシンサーバｎに対応するデータ表は２番目のデータベースサーバ４０に記憶され・・・スレーブ仮想マシンサーバＢに対応するデータ表はｎ番目のデータベースサーバ４０に記憶される。
【００１９】
他の実施形態において、データベースサーバ４０の数量は、スレーブ仮想マシンサーバ３の数量より少なくても良い。即ち、各スレーブ仮想マシンサーバ３のリソース利用率を記憶しているデータ表は、あるデータベースサーバ４０に任意に指定して記憶することができる。
【００２０】
監視モジュール１０２は、各スレーブ仮想マシンサーバ３のリソース使用率をリアルタイムに監視するために用いられる。スレーブ仮想マシンサーバ３のリソース使用率が一定時間で設定された閾値以上である場合、スレーブ仮想マシンサーバ３に対して標識を添付し、且つ負荷管理モードを起動する。負荷管理モードは、計算モジュール１０４及び配置モジュール１０６によって実行される。
【００２１】
なお、スレーブ仮想マシンサーバ３を標示する目的は、スレーブ仮想マシンサーバ３を負荷管理の処理対象とすることである。
【００２２】
例えば、閾値は、（８０％ＣＰＵ，７０％ＭＥＭ）＞＝１  Ｈｏｕｒという条件式（１）に設定することができる。この条件式（１）は、あるスレーブ仮想マシンサーバ３のＣＰＵ利用率が８０％以上であり、ＭＥＭ利用率が７０％以上であり、且つ１時間維持した場合、スレーブ仮想マシンサーバ３が負荷管理モードを起動する条件を満たすことを示す。また、閾値は、（８０％ＣＰＵ）＞＝ｔｉｍｅのような単一のリソースの条件式（２）に設定することができる。この条件式（２）は、あるスレーブ仮想マシンサーバ３のＣＰＵ利用率が８０％以上であり、且つ１時間維持した場合、スレーブ仮想マシンサーバ３が負荷管理モードを起動する条件を満たすことを示す。
【００２３】
計算モジュール１０４は、分散並列計算方法によって複数のスレーブ仮想マシンサーバ３の中からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバ３を検索し、且つ検索したスレーブ仮想マシンサーバ３をターゲットサーバに設定する。具体的には、図３〜図５で詳しく説明する。
【００２４】
配置モジュール１０６は、標識付きスレーブ仮想マシンサーバ３によって管理された仮想マシン３２の中から転送しようとする仮想マシン３２を検索し、且つ検索した仮想マシン３２をターゲットサーバに転送する。本実施形態において、転送しようとする仮想マシン３２は、標識付きスレーブ仮想マシンサーバ３の中のリソース利用率が最も低い仮想マシン３２である。
【００２５】
図３は、本発明の実施形態に係る仮想マシンの負荷管理方法のフローチャートである。
【００２６】
ステップＳ１００：記憶モジュール１００は、マスタ仮想マシンサーバ１に接続された各スレーブ仮想マシンサーバ３のリソース利用率を一定時間ごとに収集する。本実施形態において、リソース利用率は、ＣＰＵ利用率、ＭＥＭ利用率を含む。
【００２７】
ステップＳ１０２：各スレーブ仮想マシンサーバ３の識別子（ＩＤ）に基づいて収集されたリソース利用率をデータベースサーバ４０の対応するデータ表に記憶する。データ表は、スレーブ仮想マシンサーバ３のＩＤ（図４に示したようなスレーブ仮想マシンサーバＡ）、スレーブ仮想マシンサーバ３のＣＰＵ利用率（図４に示したような“ＣＰＵ％１”、“ＣＰＵ％２”等）、ＭＥＭ利用率（図４に示したような“ＭＥＭ％１”、“ＭＥＭ％２”等）及び収集された各リソース利用率をデータ表に記憶する記憶時間（図４に示したようなＴｉｍｅ１”、“Ｔｉｍｅ２”等）を含む。
【００２８】
その中で、マスタ仮想マシンサーバ１に接続されたデータベーススキーマ４の中に一台のデータベースサーバ４０がある場合、スレーブ仮想マシンサーバ３のリソース利用率を記憶したデータ表は、データベースサーバ４０に記憶されている。データベースサーバ４０の数量が複数台である場合、スレーブ仮想マシンサーバ３のリソース利用率を記憶したデータ表を記憶するためのデータベースサーバ４０を予め設定するか又は任意に指定する。
【００２９】
ステップＳ１０４：監視モジュール１０２は、各スレーブ仮想マシンサーバ３のリソース使用率をリアルタイムに監視する。
【００３０】
ステップＳ１０６において、スレーブ仮想マシンサーバ３のリソース使用率が一定時間に設定された閾値以上であるかどうかを判断する。
【００３１】
あるスレーブ仮想マシンサーバ３のリソース利用率が一定時間に設定された閾値以上である場合、ステップＳ１０８を実行する一方、リソース利用率が一定時間に設定された閾値以上であるスレーブ仮想マシンサーバ３がなかった場合、プロセスはここで終了する。
【００３２】
ステップＳ１０８：監視モジュール１０２は、スレーブ仮想マシンサーバ３を標示する。なお、スレーブ仮想マシンサーバ３を標示する目的は、スレーブ仮想マシンサーバ３を負荷管理の処理対象とする。
【００３３】
ステップＳ１１０：計算モジュール１０４は、分散並列計算方法によって複数のスレーブ仮想マシンサーバ３の中からリソース利用率が設定値を満たしているスレーブ仮想マシンサーバ３を検索し、且つ検索したスレーブ仮想マシンサーバ３をターゲットサーバに設定する。
【００３４】
本実施形態において、分散並列計算方法は、以下の２つのステップを含む。各スレーブ仮想マシンサーバ３の平均リソース利用率を計算するステップ（図３を参照）及び全てのスレーブ仮想マシンサーバ３からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバ３を検索するステップ（図５を参照）を備える。
【００３５】
具体的には、平均リソース利用率を計算するステップは、以下のサブステップを備える。各スレーブ仮想マシンサーバ３に対応するデータ表を時間に基づいて異なるスプリット（Ｓｐｌｉｔ）に分ける。例えば、図４に示すように“Ｓｐｌｉｔ１”、“Ｓｐｌｉｔ２”、・・・、“Ｓｐｌｉｔｎ”である。各スプリットに対してグループ分けを行って並列加算し、同一グループデータを再加算してグループ分けした際の合計を得る。次いで、全てのグループ分けした際の合計を加算して総数を得る。スプリットの数で上記総数を割って、スレーブ仮想マシンサーバ３のリソース平均利用率を得る。例えば、図４のＣＰＵ％ａｖｇＡ”、“ＭＥＭ％ａｖｇＡ”である。なお、図４において一台のスレーブ仮想マシンサーバ３の平均リソース利用率を計算する具体的な方法のみ示している。
【００３６】
全てのスレーブ仮想マシンサーバ３からリソース利用率が設定値を満たしたスレーブ仮想マシンサーバ３を検索するステップは、以下のサブステップを備える。図５に示したように、全てのスレーブ仮想マシンサーバ３を二台ごとに比較し、リソース利用率が高いスレーブ仮想マシンサーバ３を検索する。次いで、リソース利用率が高いスレーブ仮想マシンサーバ３からリソース利用率が最も高いスレーブ仮想マシンサーバ３を検索する。リソース利用率が最も高いスレーブ仮想マシンサーバ３をターゲットサーバと設定する。
【００３７】
ステップＳ１１２：配置モジュール１０６は、標識付きスレーブ仮想マシンサーバ３によって管理された仮想マシン３２の中からリソース利用率が最も低い仮想マシン３２を検索し、且つ仮想マシン３２をターゲットサーバに転送する。
【００３８】
以上、本発明を実施形態に基づいて具体的に説明したが、本発明は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において、種々の変更が可能であることは勿論であって、本発明の保護範囲は、添付の特許請求の範囲によって決まる。
【符号の説明】
【００３９】
１      マスタ仮想マシンサーバ
２      インターネット
３      スレーブ仮想マシンサーバ
４      データベーススキーマ
１０    仮想マシンの負荷管理システム
１２    記憶装置
１４    プロセッサ
３０    マスタ仮想監視プログラム
３２    仮想マシン
４０    データベースサーバ
１００  記憶モジュール
１０２  監視モジュール
１０４  計算モジュール
１０６  配置モジュール
【図１】
2014049129.tif 000003
【図２】
2014049129.tif 000004
【図３】
2014049129.tif 000005
【図４】
2014049129.tif 000006
【図５】
2014049129.tif 000007