(57)【要約】  第１算出部（１３０）は、複数の物理マシンの１つが他の物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、物理マシンの組み合わせごとに算出する。取得部（１２１）は、新たに稼働させる仮想マシンが、複数の物理マシンのいずれかで既に稼働している仮想マシンのうち、いずれと通信を行うことが許可されているかを表す通信許可情報を取得する。第２算出部（１４０）は、ネットワーク距離と、通信許可情報とに基づいて、複数の物理マシンの１つが新たな仮想マシンを稼働させた場合に、通信が許可された仮想マシンと新たな仮想マシンが通信を行うことによるネットワークシステムの負荷の大きさを表すネットワークコストを、複数の物理マシンごとに算出する。決定部（１２２）は、算出されたネットワークコストを用いて、新たな仮想マシンを複数の物理マシンのうち、いずれの物理マシンで稼働させるかを決定する。
2014045413.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するシステム管理装置であって、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する第１算出部と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報を取得する取得部と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する第２算出部と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する決定部と、を備えるシステム管理装置。
【請求項２】
前記第２算出部は、前記ネットワークコストを算出する対象の前記物理マシンと前記第１マシンが通信を行うことを許可されている前記第２マシンが稼働している前記物理マシンとの間の前記ネットワーク距離を合算して、前記ネットワークコストを算出する、請求項１に記載のシステム管理装置。
【請求項３】
前記取得部は、通信に使用するポート番号が指定された前記通信許可情報を取得し、
前記第２算出部は、前記ネットワークコストを算出する対象の前記物理マシンと前記第１マシンが通信を行うことを許可されている前記第２マシンが稼働している前記物理マシンとの間の前記ネットワーク距離に、前記通信許可情報で指定されたポート番号に応じた重みを乗算した値を合算して、前記ネットワークコストを算出する、請求項１に記載のシステム管理装置。
【請求項４】
前記第１算出部は、前記物理マシンの１つが他の前記物理マシンと通信を行うことで発生する遅延時間を用いて、前記ネットワーク距離を算出する、請求項１に記載のシステム管理装置。
【請求項５】
前記第１算出部は、前記物理マシンの１つが他の前記物理マシンと通信を行う際に利用するネットワーク経路上のネットワーク機器の帯域使用量を用いて、前記ネットワーク距離を算出する、請求項１に記載のシステム管理装置。
【請求項６】
前記取得部は、前記第１マシンに対して適用されるファイアウォールのルールから、前記通信許可情報を取得する、請求項１に記載のシステム管理装置。
【請求項７】
仮想マシンを稼働させる複数の物理マシンと、システム管理装置と、がネットワークを介して通信可能に接続されたネットワークシステムであって、
前記システム管理装置は、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する第１算出部と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報を取得する取得部と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する第２算出部と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する決定部と、を備えるネットワークシステム。
【請求項８】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するシステム管理装置において実行されるシステム管理方法であって、
前記システム管理装置の第１算出部が、複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出するステップと、
前記システム管理装置の取得部が、新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報を取得するステップと、
前記システム管理装置の第２算出部が、前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出するステップと、
前記システム管理装置の決定部が、複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定するステップと、を含むシステム管理方法。
【請求項９】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するコンピュータに、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する機能と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報を取得する機能と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する機能と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する機能と、を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、システム管理装置、ネットワークシステム、システム管理方法およびプログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティングは、データセンタに用意されたＩＴリソースを、利用者がサービスとして利用する技術である。クラウドコンピューティングは、ＩＴリソースの提供形態に応じて、ＳａａＳ（Software  as  a  Service）、ＰａａＳ（Platform  as  a  Service）、ＩａａＳ（Infrastructure  as  a  Service）に分類される。ＳａａＳは、アプリケーションソフトウェアをサービスとして提供するものであり、ＰａａＳは、アプリケーションソフトウェアの開発環境や実行環境をサービスとして提供するものである。また、ＩａａＳは、データセンタのネットワークシステムに接続されている物理マシン上で、利用者の要求に応じて仮想マシンを稼働させ、その仮想マシンのリソースをサービスとして提供するものである。【０００３】
クラウドコンピューティングの技術により、ＩＴリソースの利用者にとって、初期投資の低減が見込めることや、利用するＩＴリソースを必要量に応じて容易に増減できるといった利点が得られる。その反面、クラウドコンピューティングの技術は、複数の利用者がデータセンタのＩＴリソースを共用するため、性能などの非機能要件への対応が弱いことが指摘されている。ＩａａＳにおいては、利用者の要求に応じて新たに仮想マシンを稼働させる際に、データセンタのネットワークシステムに接続されている複数の物理マシンのうち、どの物理マシンで仮想マシンを稼働させることがシステム全体として効率がよいかを考慮することが、非機能要件への対応の観点で重要となる。すなわち、新たな仮想マシンを稼働させる物理マシンの選択によって、特定の箇所にネットワークの負荷が集中してしまったり、互いに通信を必要とする仮想マシンが遅延の大きなネットワーク経路を介して通信を行うような配置となってしまったりすることで、ネットワークシステム全体で必要とされる性能が満たせなくなる等の問題が生じる虞がある。このため、仮想マシンの配置がシステム全体として効率的な配置となるように、新たな仮想マシンを稼働させるのに最適な物理マシンを決定する技術の提供が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１１５６５３号公報
【特許文献２】特開２０１１−１８０８８９号公報
【特許文献３】特開２００７−２７２２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、新たな仮想マシンを稼働させるのに最適な物理マシンを決定することができるシステム管理装置、ネットワークシステム、システム管理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のシステム管理装置は、仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理する。このシステム管理装置は、第１算出部と、取得部と、第２算出部と、決定部と、を備える。第１算出部は、複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する。取得部は、新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報を取得する。第２算出部は、前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する。決定部は、複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態のネットワークシステムの構成図である。
【図２】図２は、システム管理装置の機能的な構成を示すブロック図である。
【図３】図３は、通信許可情報の一例を示す図である。
【図４】図４は、負荷情報の一例を示す図である。
【図５】図５は、ネットワーク距離の一例を示す図である。
【図６】図６は、第１算出部の処理手順を示すフローチャートである。
【図７】図７は、ネットワークコストの一例を示す図である。
【図８】図８は、第２算出部の処理手順を示すフローチャートである。
【図９】図９は、負荷情報の他の例を示す図である。
【図１０】図１０は、ネットワーク距離の他の例を示す図である。
【図１１】図１１は、ネットワークコストの他の例を示す図である。
【図１２】図１２は、通信許可情報の他の例を示す図である。
【図１３】図１３は、ポートごとの重みの一例を示す図である。
【図１４】図１４は、ネットワークコストの他の例を示す図である。
【図１５】図１５は、システム管理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施形態のシステム管理装置、ネットワークシステム、システム管理方法およびプログラムを、図面を参照して説明する。
【０００９】
（第１の実施形態）
図１は、本実施形態に係るネットワークシステムの構成図である。このネットワークシステムは、ネットワークを介して通信可能に接続された複数の物理マシンを備える。図１の例では、物理マシン１、物理マシン２、物理マシン３および物理マシン４の４つの物理マシンがネットワークを介して通信可能に接続されている。
【００１０】
物理マシン１はＬＡＮ（Local  Area  Network）５１に接続され、物理マシン２はＬＡＮ５２に接続されている。ＬＡＮ５１とＬＡＮ５２は、ＷＡＮ（Wide  Area  Network）５０を介して接続されている。物理マシン３および物理マシン４は、ＬＡＮ５３に接続されている。ＬＡＮ５１とＬＡＮ５３は、ルータ１５を介して接続されている。ＬＡＮ５３には、物理マシン３と物理マシン４のほか、ネットワークシステムの全体を管理するシステム管理装置１００が接続されている。なお、図１に示すネットワークシステムの構成はあくまで一例であり、物理マシンの数や接続形態は任意に選択することができる。
【００１１】
物理マシン１〜４は、それぞれ仮想マシン（以下、ＶＭという。）を稼働させるためのリソースを提供する。図１の例では、ＶＭ１０とＶＭ１１とＶＭ１２の３つのＶＭが、物理マシン１で稼働している。ＶＭ１０〜１２は、仮想スイッチ１１を介してネットワークに接続された形態となる。また、物理マシン２では、ＶＭ２０とＶＭ２１とＶＭ２２の３つのＶＭが稼働している。ＶＭ２０〜２２は、仮想スイッチ１２を介してネットワークに接続された形態となる。また、物理マシン３では、ＶＭ３０とＶＭ３１とＶＭ３２の３つのＶＭが稼働している。ＶＭ３０〜３２は、仮想スイッチ１３を介してネットワークに接続された形態となる。また、物理マシン４では、ＶＭ４０とＶＭ４１とＶＭ４２の３つのＶＭが稼働している。ＶＭ４０〜４２は、仮想スイッチ１４を介してネットワークに接続された形態となる。
【００１２】
図２は、システム管理装置１００の機能的な構成を示すブロック図である。システム管理装置１００は、図２に示すように、通信部１１０、管理部１２０、第１算出部１３０および第２算出部１４０を備える。
【００１３】
通信部１１０は、ネットワーク上の物理マシン１〜４、物理マシン１〜４で稼働されるＶＭ１０〜１２，２０〜２２，３０〜３２，４０〜４２、およびネットワーク機器（図１の例では、ルータ１５やＬＡＮ５１〜５３上のネットワークスイッチ等）と通信を行う。
【００１４】
管理部１２０は、ネットワークシステムを維持、運営する上で必要な各種の管理を行うものであり、主として、ＶＭ管理、構成情報管理および稼働情報取得を行う。ＶＭ管理とは、ＶＭの立ち上げ、変更、消去等を行う機能である。構成情報管理とは、ネットワークシステムの現在の構成、すなわち、現在どの物理マシンでどのＶＭが稼働しているかを表す構成情報を管理する機能である。稼働情報取得とは、現在の各物理マシンのＣＰＵ（Central  Processing  Unit）やストレージ等のリソース使用率を表す稼働情報を、各物理マシンから取得する機能である。
【００１５】
また、管理部１２０は、本実施形態において特徴的な機能として、取得部１２１と決定部１２２を有する。
【００１６】
取得部１２１は、ネットワークシステムで新たに稼働させるＶＭ（以下、新ＶＭという。）が、ネットワーク上の物理マシン１〜４で既に稼働されているＶＭ１０〜１２，２０〜２２，３０〜３２，４０〜４２のうち、いずれのＶＭと通信を行うことが許可されているかを表す通信許可情報を取得する。なお、通信許可情報の具体例は後述する。
【００１７】
決定部１２２は、第２算出部１４０によって物理マシン１〜４ごとに算出された後述のネットワークコストを用いて、ネットワーク上の物理マシン１〜４のうち、いずれの物理マシンで新ＶＭを稼働させるかを決定する。
【００１８】
第１算出部１３０は、ネットワーク上の物理マシン１〜４のそれぞれが他の物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、物理マシン１〜４のうちの２つの物理マシンの組み合わせごとに算出する。
【００１９】
例えば、第１算出部１３０は、任意のタイミングで、ネットワーク上の物理マシン１〜４やネットワーク機器の通信に関わる負荷の状態を表す負荷情報を取得してこれを保持する。そして、第１算出部１３０は、第２算出部１４０からネットワーク距離の取得要求を受け取ると、保持している負荷情報から、２つの物理マシンの組み合わせごとに例えば一定期間内の負荷の平均または最大値等を算出し、算出した値を２つの物理マシン間のネットワーク距離とする。そして、第１算出部１３０は、第２算出部１４０からの取得要求に対する応答として、算出したネットワーク距離を第２算出部１４０に返す。なお、負荷情報およびネットワーク距離の具体例は後述する。
【００２０】
第２算出部１４０は、第１算出部１３０によって２つの物理マシンの組み合わせごとに算出されたネットワーク距離と、管理部１２０の取得部１２１が取得した通信許可情報とに基づいて、ネットワーク上の物理マシン１〜４のいずれかが新ＶＭを新たに稼働させた場合に、既に稼働しているＶＭ１０〜１２，２０〜２２，３０〜３２，４０〜４２のうち、通信が許可されたＶＭと新ＶＭが通信を行うことによるネットワークシステムの負荷の大きさを表すネットワークコストを、物理マシン１〜４ごとに算出する。
【００２１】
例えば、第２算出部１４０は、管理部１２０からネットワークコストの取得要求を受け取ると、管理部１２０から通信許可情報と構成情報を取得するとともに、第１算出部１３０に対してネットワーク距離の取得要求を出し、この取得要求に対する応答として、第１算出部１３０から２つの物理マシンの組み合わせごとに算出されたネットワーク距離を受け取る。そして、第２算出部１４０は、物理マシン１〜４のうち、ネットワークコストを算出する対象となる物理マシンを選択するとともに、通信許可情報と構成情報とに基づいて、新ＶＭが通信を行うことを許可されているＶＭが稼働している物理マシン、つまり通信相手となり得る全ての物理マシンを特定する。そして、第２算出部１４０は、ネットワークコストを算出する対象として選択した物理マシンと、通信相手となり得る物理マシンとして特定された全ての物理マシンとの間のネットワーク距離を合算することで、選択した物理マシンに関するネットワークコストを算出する。
【００２２】
第２算出部１４０は、ネットワークコストを算出する対象となる物理マシンを切り替えながら上記の処理を繰り返し、物理マシン１〜４のそれぞれについてネットワークコストを算出する。そして、第２算出部１４０は、管理部１２０からの取得要求に対する応答として、算出したネットワークコストを管理部１２０に返す。第２算出部１４０が算出したネットワークコストは、管理部１２０の決定部１２２が新ＶＭを稼働させる物理マシンを決定する際の１つの指標として用いられる。なお、ネットワークコストの具体例は後述する。
【００２３】
次に、図１に示すネットワークシステムにおいて、物理マシン１〜４のいずれかで新ＶＭ＿Ａを新たに稼働させる場合と、物理マシン１〜４のいずれかで新ＶＭ＿Ｂを新たに稼働させる場合との２つの事例を例示しながら、本実施形態のシステム管理装置１００の動作について詳しく説明する。
【００２４】
図３は、管理部１２０の取得部１２１が取得する通信許可情報の一例を示す図である。通信許可情報は、上述したように、新ＶＭが、既に稼働されているＶＭ１０〜１２，２０〜２２，３０〜３２，４０〜４２のうちのどのＶＭと通信を行うことが許可されているかを表す情報である。このような通信許可情報は、例えば、新ＶＭに対して適用されるファイアウォールのルールから取得することができる。ファイアウォールのルールは、例えば、新ＶＭを稼働させる際にユーザが指定する、あるいは、システム管理装置１００が複数のテンプレートをメニューとして用意し、そのメニューの中からユーザが適用したいテンプレートを選択することにより作成される。新ＶＭに適用されるファイアウォールのルールには、新ＶＭの通信相手を制限する情報が含まれており、その情報を抽出することによって、新ＶＭの通信許可情報を得ることができる。なお、取得部１２１は、ファイアウォールとは別の情報としてユーザ等が作成した情報を、通信許可情報として取得するようにしてもよい。
【００２５】
図３（ａ）は、新ＶＭ＿Ａに対して適用されるファイアウォールのルールから取得した通信許可情報を表形式で表したものである。図３（ａ）の表では、○が付されたカラムに対応するＶＭが、新ＶＭ＿Ａが通信を行うことを許可されたＶＭであることを示し、○が付されていないカラムに対応するＶＭが、新ＶＭ＿Ａが通信を行うことを許可されていないＶＭであることを示している。つまり、図３（ａ）に示す通信許可情報は、新ＶＭ＿Ａが、ＶＭ１０、ＶＭ２１、ＶＭ２２、ＶＭ４１およびＶＭ４２と通信を行うことが許可されていることを表している。
【００２６】
図３（ｂ）は、新ＶＭ＿Ｂに対して適用されるファイアウォールのルールから取得した通信許可情報を表形式で表したものである。図３（ｂ）の表では、○が付されたカラムに対応するＶＭが、新ＶＭ＿Ｂが通信を行うことを許可されたＶＭであることを示し、○が付されていないカラムに対応するＶＭが、新ＶＭ＿Ｂが通信を行うことを許可されていないＶＭであることを示している。つまり、図３（ｂ）に示す通信許可情報は、新ＶＭ＿Ｂが、ＶＭ１１およびＶＭ３２と通信を行うことが許可されていることを表している。
【００２７】
なお、ＩａａＳにおけるファイアウォールのルールの設定の仕方として「セキュリティグループ」のような技術もあるが、「セキュリティグループ」のような技術を用いてファイアウォールのルールを設定した場合でも、ルールを分解すれば個々のＶＭとの間で通信を許可するか否かが示されるので、図３（ａ）および図３（ｂ）に示したような表形式で表される通信許可情報を得ることができる。
【００２８】
図４は、第１算出部１３０が保持する負荷情報の一例を示す図である。第１算出部１３０は、上述したように、ネットワーク上の２つの物理マシン間のネットワーク距離を算出するために、ネットワーク上の物理マシン１〜４やネットワーク機器の通信に関わる負荷の状態を表す負荷情報を取得して、これを保持する。ここで、ネットワーク距離の算出に用いる負荷情報としては、例えば、２つの物理マシン間でパケットが往復するのに要する時間、つまり、２つの物理マシン間で通信を行う際に発生するアクションから応答までの遅延時間を用いることができる。
【００２９】
具体的には、第１算出部１３０は、ある物理マシンがｐｉｎｇを打ち、他の物理マシンから応答が返ってくるまでの時間を他の全ての物理マシンごとに計測する処理を、ネットワーク上の全ての物理マシン１〜４に対して実行させる。そして、第１算出部１３０は、上記の計測結果を全ての物理マシン１〜４から収集し、負荷情報として保持する。
【００３０】
図４は、第１算出部１３０が物理マシン１から取得する負荷情報の一例であり、物理マシン１からｐｉｎｇを打ち、物理マシン２〜４のそれぞれから応答が返ってくるまでの時間（ｍｓ）を計測した結果を表形式で表している。図４では、４回の計測を行った例を示しているが、計測回数は必ずしも４回である必要はない。また、この計測は、新ＶＭを稼働させることが要求される前に、例えば一定間隔で定期的に実行させるようにしてもよいし、新ＶＭを稼働させる要求があってから実行させるようにしてもよい。
【００３１】
第１算出部１３０は、図４に示すような負荷情報をネットワーク上の全ての物理マシン１〜４からそれぞれ取得して保持する。そして、第１算出部１３０は、第２算出部１４０からネットワーク距離の取得要求を受け取ると、保持している負荷情報を用いて、ネットワーク上の２つの物理マシン間のネットワーク距離を、２つの物理マシンの組み合わせごとに算出する。
【００３２】
負荷情報からネットワーク距離を算出する方法としては、様々な方法が考えられる。例えば、負荷情報として保持する値（図４の例ではｐｉｎｇの応答時間（遅延時間））の最大値を２つの物理マシン間のネットワーク距離とする方法がある。この場合、図４に例示した負荷情報を用いると、物理マシン１と物理マシン２との間のネットワーク距離は２４、物理マシン１と物理マシン３との間のネットワーク距離は４、物理マシン１と物理マシン４との間のネットワーク距離は３となる。また、負荷情報として保持する値の平均値を２つの物理マシン間のネットワーク距離としてもよい。この場合、図４に例示した負荷情報を用いると、物理マシン１と物理マシン２との間のネットワーク距離は２１、物理マシン１と物理マシン３との間のネットワーク距離は２．７５、物理マシン１と物理マシン４との間のネットワーク距離は２．５となる。他にも、例えば、負荷情報として保持する値の最小値を２つの物理マシン間のネットワーク距離とする方法や、負荷情報として保持する値に重みを付けて新しいデータほど重視する方法等が考えられる。
【００３３】
第１算出部１３０は、上述した方法によって２つの物理マシンの組み合わせごとにネットワーク距離を算出する。図５は、第１算出部１３０が算出したネットワーク距離の一例を示す図である。図５の例は、負荷情報として図４に示した遅延時間を用い、その最大値をネットワーク距離として算出した例であり、物理マシン１〜４のうちの２つの物理マシンの組み合わせごとのネットワーク距離を表形式で表したものである。第１算出部１３０は、第２算出部１４０からの取得要求に応じて、図５に示すような２つの物理マシンの組み合わせごとのネットワーク距離を算出する。そして、第１算出部１３０は、第２算出部１４０からの取得要求に対する応答として、算出したネットワーク距離を第２算出部１４０に返す。
【００３４】
図６は、第１算出部１３０の処理手順を示すフローチャートである。第１算出部１３０は、まず、任意のタイミングでネットワーク上の各物理マシン１〜４から負荷情報を取得し、取得した負荷情報を保持する（ステップＳ１０１）。そして、第１算出部１３０は、第２算出部１４０からネットワーク距離の取得要求を受け取ると（ステップＳ１０２）、ステップＳ１０１で取得した負荷情報を用いて、物理マシン１〜４のうちの２つの物理マシンの組み合わせごとにネットワーク距離を算出する（ステップＳ１０３）。そして、第１算出部１３０は、ステップＳ１０２で受け取った取得要求に対する応答として、ステップＳ１０３で算出したネットワーク距離を第２算出部１４０に返す（ステップＳ１０４）。
【００３５】
第２算出部１４０は、上述したように、管理部１２０から取得した通信許可情報および構成情報と、第１算出部１３０から取得したネットワーク距離とに基づいて、新ＶＭを稼働させた場合のネットワークコストを、ネットワーク上の物理マシン１〜４ごとに算出する。
【００３６】
まず、第２算出部１４０が、図３（ａ）に示した通信許可情報と、図５に示したネットワーク距離とを用いて、新ＶＭ＿Ａを稼働させた場合のネットワークコストを算出する方法について説明する。図３（ａ）に示した通信許可情報から、新ＶＭ＿Ａは、ＶＭ１０が稼働している物理マシン１と、ＶＭ２１およびＶＭ２２が稼働している物理マシン２と、ＶＭ４１およびＶＭ４２が稼働している物理マシン４との間で通信する可能性があることが分かる。
【００３７】
ここで、新ＶＭ＿Ａを物理マシン１で稼働させる場合を考えると、新ＶＭ＿ＡがＶＭ１０と通信する際は、物理マシン１と他の物理マシンとの間での通信は行われず、新ＶＭ＿ＡがＶＭ２１またはＶＭ２２と通信する際は、物理マシン１と物理マシン２との間で通信が行われ、新ＶＭ＿ＡがＶＭ４１またはＶＭ４２と通信する際は、物理マシン１と物理マシン４との間で通信が行われることになる。したがって、新ＶＭ＿Ａを物理マシン１で稼働させた場合のネットワークコストは、物理マシン１と物理マシン２との間のネットワーク距離と、物理マシン１と物理マシン４との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン１と物理マシン２との間のネットワーク距離は２４、物理マシン１と物理マシン４との間のネットワーク距離は３であるので、新ＶＭ＿Ａを物理マシン１で稼働させた場合のネットワークコストは２７となる。
【００３８】
また、新ＶＭ＿Ａを物理マシン２で稼働させる場合は、新ＶＭ＿ＡがＶＭ１０と通信する際に、物理マシン２と物理マシン１との間で通信が行われ、新ＶＭ＿ＡがＶＭ２１またはＶＭ２２と通信する際は、物理マシン２と他の物理マシンとの間での通信は行われず、新ＶＭ＿ＡがＶＭ４１またはＶＭ４２と通信する際は、物理マシン２と物理マシン４との間で通信が行われることになる。したがって、新ＶＭ＿Ａを物理マシン２で稼働させた場合のネットワークコストは、物理マシン２と物理マシン１との間のネットワーク距離と、物理マシン２と物理マシン４との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン２と物理マシン１との間のネットワーク距離は２４、物理マシン２と物理マシン４との間のネットワーク距離は３２であるので、新ＶＭ＿Ａを物理マシン２で稼働させた場合のネットワークコストは５６となる。
【００３９】
また、新ＶＭ＿Ａを物理マシン３で稼働させる場合は、新ＶＭ＿ＡがＶＭ１０と通信する際に、物理マシン３と物理マシン１との間で通信が行われ、新ＶＭ＿ＡがＶＭ２１またはＶＭ２２と通信する際は、物理マシン３と物理マシン２との間で通信が行われ、新ＶＭ＿ＡがＶＭ４１またはＶＭ４２と通信する際は、物理マシン３と物理マシン４との間で通信が行われることになる。したがって、新ＶＭ＿Ａを物理マシン３で稼働させた場合のネットワークコストは、物理マシン３と物理マシン１との間のネットワーク距離と、物理マシン３と物理マシン２との間のネットワーク距離と、物理マシン３と物理マシン４との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン３と物理マシン１との間のネットワーク距離は４、物理マシン３と物理マシン２との間のネットワーク距離は３２、物理マシン３と物理マシン４との間のネットワーク距離は１であるので、新ＶＭ＿Ａを物理マシン３で稼働させた場合のネットワークコストは３７となる。
【００４０】
また、新ＶＭ＿Ａを物理マシン４で稼働させる場合は、新ＶＭ＿ＡがＶＭ１０と通信する際に、物理マシン４と物理マシン１との間で通信が行われ、新ＶＭ＿ＡがＶＭ２１またはＶＭ２２と通信する際は、物理マシン４と物理マシン２との間で通信が行われ、新ＶＭ＿ＡがＶＭ４１またはＶＭ４２と通信する際は、物理マシン４と他の物理マシンとの間での通信は行われない。したがって、新ＶＭ＿Ａを物理マシン４で稼働させた場合のネットワークコストは、物理マシン４と物理マシン１との間のネットワーク距離と、物理マシン４と物理マシン２との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン４と物理マシン１との間のネットワーク距離は３、物理マシン４と物理マシン２との間のネットワーク距離は３２であるので、新ＶＭ＿Ａを物理マシン４で稼働させた場合のネットワークコストは３５となる。
【００４１】
次に、第２算出部１４０が、図３（ｂ）に示した通信許可情報と、図５に示したネットワーク距離とを用いて、新ＶＭ＿Ｂを稼働させた場合のネットワークコストを算出する方法について説明する。図３（ｂ）に示した通信許可情報から、新ＶＭ＿Ｂは、ＶＭ１１が稼働している物理マシン１と、ＶＭ３２が稼働している物理マシン３との間で通信する可能性があることが分かる。
【００４２】
ここで、新ＶＭ＿Ｂを物理マシン１で稼働させる場合を考えると、新ＶＭ＿ＢがＶＭ１１と通信する際は、物理マシン１と他の物理マシンとの間での通信は行われず、新ＶＭ＿ＢがＶＭ３２と通信する際は、物理マシン１と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｂを物理マシン１で稼働させた場合のネットワークコストは、物理マシン１と物理マシン３との間のネットワーク距離である。図５に示した例では、物理マシン１と物理マシン３との間のネットワーク距離は４であるので、新ＶＭ＿Ｂを物理マシン１で稼働させた場合のネットワークコストは４となる。
【００４３】
また、新ＶＭ＿Ｂを物理マシン２で稼働させる場合は、新ＶＭ＿ＢがＶＭ１１と通信する際に、物理マシン２と物理マシン１との間で通信が行われ、新ＶＭ＿ＢがＶＭ３２と通信する際は、物理マシン２と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｂを物理マシン２で稼働させた場合のネットワークコストは、物理マシン２と物理マシン１との間のネットワーク距離と、物理マシン２と物理マシン３との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン２と物理マシン１との間のネットワーク距離は２４、物理マシン２と物理マシン３との間のネットワーク距離は３２であるので、新ＶＭ＿Ｂを物理マシン２で稼働させた場合のネットワークコストは５６となる。
【００４４】
また、新ＶＭ＿Ｂを物理マシン３で稼働させる場合は、新ＶＭ＿ＢがＶＭ１１と通信する際に、物理マシン３と物理マシン１との間で通信が行われ、新ＶＭ＿ＢがＶＭ３２と通信する際は、物理マシン３と他の物理マシンとの間での通信は行われない。したがって、新ＶＭ＿Ｂを物理マシン３で稼働させた場合のネットワークコストは、物理マシン３と物理マシン１との間のネットワーク距離である。図５に示した例では、物理マシン３と物理マシン１との間のネットワーク距離は４であるので、新ＶＭ＿Ｂを物理マシン３で稼働させた場合のネットワークコストは４となる。
【００４５】
また、新ＶＭ＿Ｂを物理マシン４で稼働させる場合は、新ＶＭ＿ＢがＶＭ１１と通信する際に物理マシン４と物理マシン１との間で通信が行われ、新ＶＭ＿ＢがＶＭ３２と通信する際は、物理マシン４と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｂを物理マシン４で稼働させた場合のネットワークコストは、物理マシン４と物理マシン１との間のネットワーク距離と、物理マシン４と物理マシン３との間のネットワーク距離とを合算して算出することができる。図５に示した例では、物理マシン４と物理マシン１との間のネットワーク距離は３、物理マシン４と物理マシン３との間のネットワーク距離は１であるので、新ＶＭ＿Ｂを物理マシン４で稼働させた場合のネットワークコストは４となる。
【００４６】
図７は、第２算出部１４０が算出したネットワークコストの一例を示す図であり、図７（ａ）は、新ＶＭ＿Ａを稼働させた場合のネットワークコスト、図７（ｂ）は、新ＶＭ＿Ｂを稼働させた場合のネットワークコストをそれぞれ表形式で表している。
【００４７】
第２算出部１４０は、管理部１２０からのネットワークコストの取得要求に応じて、図７（ａ）や図７（ｂ）に示すような物理マシン１〜４ごとのネットワークコストを算出し、管理部１２０からの取得要求に対する応答として、算出した物理マシン１〜４ごとのネットワークコストを管理部１２０に返す。
【００４８】
第２算出部１４０から管理部１２０に送られたネットワークコストは、管理部１２０の決定部１２２が新ＶＭを物理マシン１〜４のうちのいずれの物理マシンで稼働させるかを決定する際の１つの指標として用いられる。例えば、決定部１２２は、第２算出部１４０から物理マシン１〜４ごとのネットワークコストを取得すると、この物理マシン１〜４ごとのネットワークコストと、各物理マシン１〜４のリソース使用率等を用いて、新ＶＭを稼働させる物理マシンの適性度を表すトータルコストを求め、トータルコストが最も低い物理マシンを、新ＶＭを稼働させる物理マシンとして決定する。
【００４９】
図８は、第２算出部１４０の処理手順を示すフローチャートである。第２算出部１４０は、管理部１２０からネットワークコストの取得要求を受け取ると（ステップＳ２０１）、管理部１２０から、通信許可情報と構成情報とを取得する（ステップＳ２０２）。次に、第２算出部１４０は、第１算出部１３０に対して、ネットワーク距離の取得要求を出す（ステップＳ２０３）。そして、第２算出部１４０は、ステップＳ２０３の取得要求に対する応答として第１算出部１３０から送られたネットワーク距離を取得すると（ステップＳ２０４）、ステップＳ２０２で取得した通信許可情報および構成情報と、ステップＳ２０４で取得したネットワーク距離とに基づいて、物理マシン１〜４ごとのネットワークコストを算出する（ステップＳ２０５）。そして、第２算出部１４０は、ステップＳ２０１で受け取った取得要求に対する応答として、ステップＳ２０５で算出したネットワークコストを管理部１２０に返す（ステップＳ２０６）。
【００５０】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係るシステム管理装置１００は、ネットワーク上の物理マシン１〜４のうちの２つの物理マシンの組み合わせごとにネットワーク距離を算出し、このネットワーク距離と通信許可情報とを用いて、物理マシン１〜４ごとのネットワークコストを算出し、このネットワークコストを１つの指標として用いて、物理マシン１〜４のうち、新ＶＭを稼働させる物理マシンを決定するようにしている。したがって、本実施形態に係るシステム管理装置１００によれば、ネットワーク上の各物理マシン１〜４の現在の状態だけでなく、新ＶＭを稼働させた際にどのような通信を行うかを想定して新ＶＭを稼働させるのに最適な物理マシンを決定することができ、システム全体としてより効率的な配置で新ＶＭを稼働させることができる。
【００５１】
従来の技術としては、例えば、全ての物理マシンの現在の稼動情報から最適なＶＭの配置を想定し、再配置を行うものがある。しかし、この従来技術では、実際にＶＭを物理マシンのいずれかで稼動させてからでないと稼動情報を収集することができず、ＶＭを稼働させる前に最適配置の想定をすることができない。そのため、最適な配置が想定できたとしても、稼動しているＶＭを物理マシン間で移動させるライブマイグレーションと呼ばれる非常にコストの高い作業を行う必要がある。これに対して、本実施形態では、新ＶＭを稼働させるのに最適な物理マシンを、新ＶＭを稼働させる前に決定することができるので、ライブマイグレーションのようなコストの高い作業を行うことなく、システム全体としてより効率的なＶＭの配置を実現することができる。
【００５２】
また、他の従来技術としては、ネットワーク上の全ての物理マシンの稼働情報に基づいて、新ＶＭを稼働させる物理マシンを決定するものがある。この従来技術によれば、リソースに余裕がある物理マシンで新ＶＭを稼動させることができ、物理マシンの使用リソースの平滑化をはかることが可能である。しかし、この従来技術では、新ＶＭが稼働した後に通信を行うことについては考慮せずに、新ＶＭを稼働させる物理マシンを決定するため、ネットワーク経路的に通信する相手と非常に遠い位置に新ＶＭが配置されてしまい、システム全体として無駄なネットワークトラフィックを発生させてしまうことがあった。これに対して、本実施形態では、新ＶＭが稼働した後の通信を考慮して最適な物理マシンを決定するため、システム全体としてより効率的な配置で新ＶＭを稼働させることができる。
【００５３】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、第１算出部１３０がネットワーク距離を算出するために取得する負荷情報が、第１の実施形態と異なるものである。すなわち、第１の実施形態の第１算出部１３０は、２つの物理マシン間で通信を行う際に発生する遅延時間を負荷情報として取得したが、第２の実施形態の第１算出部１３０は、２つの物理マシン間で通信を行う際に利用するネットワーク経路上のネットワーク機器の帯域使用量を負荷情報として取得する。その他の構成は、第１の実施形態と共通である。
【００５４】
以下、第１の実施形態と共通の構成については説明を省略し、第１の実施形態との相違点についてのみ説明する。なお、以下では、第２の実施形態の第１算出部１３０を、第１の実施形態と区別するために第１算出部１３０Ａと表記する。
【００５５】
第１算出部１３０Ａは、ネットワーク上の２つの物理マシンの組み合わせごとに、２つの物理マシン間のネットワーク経路を特定する。そして、第１算出部１３０Ａは、任意のタイミングで、各ネットワーク経路上にあるネットワーク機器（図１の例では、ルータ１５やＬＡＮ５１〜５３上のネットワークスイッチ等）から現在の帯域使用量をそれぞれ取得し、負荷情報として保持する。
【００５６】
図９は、第１算出部１３０Ａが保持する負荷情報の一例を示す図である。図９の例では、物理マシン１が接続されているＬＡＮ５１上のネットワークスイッチをネットワーク機器Ｎ１、ＬＡＮ５１とＬＡＮ５３との間のルータ１５をネットワーク機器Ｎ２、物理マシン３および物理マシン４が接続されているＬＡＮ５３上のネットワークスイッチをネットワーク機器Ｎ３、物理マシン２が接続されているＬＡＮ５２上のネットワークスイッチをネットワーク機器Ｎ４と表記し、各ネットワーク機器Ｎ１〜Ｎ４から取得した帯域使用量を表形式で表している。図９では、各ネットワーク機器Ｎ１〜Ｎ４の帯域使用量を異なるタイミングで４回取得した場合の例を示しているが、帯域使用量を取得する回数は必ずしも４回である必要はない。また、帯域使用量の取得は連続して行うようにしてもよいし、新ＶＭを稼働させることが要求される前に一定間隔で定期的に行う、あるいは、新ＶＭを稼働させる要求があってから行うようにしてもよい。
【００５７】
第１算出部１３０Ａは、図９に示すような負荷情報をネットワーク上の各ネットワーク機器Ｎ１〜Ｎ４からそれぞれ取得して保持する。そして、第１算出部１３０Ａは、第２算出部１４０からネットワーク距離の取得要求を受け取ると、保持している負荷情報を用いて、ネットワーク上の２つの物理マシン間のネットワーク距離を、２つの物理マシンの組み合わせごとに算出する。
【００５８】
例えば、第１算出部１３０Ａは、負荷情報として保持するネットワーク機器の帯域使用量の最大値を用い、ネットワーク機器の最大帯域から帯域使用量の最大値を減算して、帯域残量を求める。なお、ネットワーク機器の最大帯域は、例えば、ネットワーク機器をシステムに組み込む前に事前に計測して保持しておけばよい。そして、第１算出部１３０Ａは、２つの物理マシン間のネットワーク経路上にある全てのネットワーク機器について帯域残量を求めたら、全てのネットワーク機器の帯域残量の逆数の和を、２つの物理マシン間のネットワーク距離として算出する。例えば、物理マシン１と物理マシン３との間のネットワーク経路上にあるネットワーク機器は、ネットワーク機器Ｎ１とネットワーク機器Ｎ２とネットワーク機器Ｎ３である。図９に例示した負荷情報を用いた場合、ネットワーク機器Ｎ１の帯域残量は２０、ネットワーク機器Ｎ２の帯域残量は７０、ネットワーク機器Ｎ３の帯域残量は９３であるので、物理マシン１と物理マシン３との間のネットワーク距離は、１／２０＋１／７０＋１／９３≒０．０７５となる。
【００５９】
第１算出部１３０Ａは、上述した方法によって２つの物理マシンの組み合わせごとにネットワーク距離を算出する。図１０は、第１算出部１３０Ａが算出したネットワーク距離の一例を示す図である。図１０の例は、負荷情報として図９に示したネットワーク機器Ｎ１〜Ｎ４の帯域使用量を用いた例であり、物理マシン１〜４のうちの２つの物理マシンの組み合わせごとのネットワーク距離を表形式で表したものである。第１算出部１３０Ａは、第２算出部１４０からの取得要求に応じて、図１０に示すような２つの物理マシンの組み合わせごとのネットワーク距離を算出し、第２算出部１４０に返す。
【００６０】
図１１は、第２算出部１４０が、図３に示した通信許可情報と図１０に示したネットワーク距離とに基づいて算出したネットワークコストの一例を示す図であり、図１１（ａ）は、新ＶＭ＿Ａを稼働させた場合のネットワークコスト、図１１（ｂ）は、新ＶＭ＿Ｂを稼働させた場合のネットワークコストをそれぞれ表形式で表している。
【００６１】
上述したように、２つの物理マシン間のネットワーク経路上にある全てのネットワーク機器の帯域残量の逆数の和を、２つの物理マシン間のネットワーク距離とすることにより、帯域をほとんど使い尽くしているネットワーク機器が一つでもある場合は、ネットワーク距離の値が非常に大きくなる。そのため、そのようなネットワーク機器を通るネットワーク経路を使用する物理マシンで新ＶＭを稼働させる場合のネットワークコストが非常に大きくなる。その結果、システム全体としてネットワークリソースをより有効活用できるように、新ＶＭを稼働させる物理マシンが決定されることになる。
【００６２】
なお、以上の例では、第１算出部１４０が、２つの物理マシン間のネットワーク経路上の全てのネットワーク機器の帯域残量の逆数の和を、２つの物理マシン間のネットワーク距離として算出したが、他の方法でネットワーク距離を算出するようにしてもよい。例えば、２つの物理マシン間のネットワーク経路上の全てのネットワーク機器の帯域使用量の和を、２つの物理マシン間のネットワーク距離として算出する、あるいは、２つの物理マシン間のネットワーク経路上の全てのネットワーク機器の帯域使用量の最大値を、２つの物理マシン間のネットワーク距離とすることもできる。
【００６３】
以上のように、本実施形態によれば、２つの物理マシン間のネットワーク経路上にあるネットワーク機器の帯域使用量を用いて、２つの物理マシン間のネットワーク距離を算出するようにしているので、第１の実施形態の効果に加えて、さらに、ネットワークリソースの稼働状態も反映させて新ＶＭを稼働させるのに最適な物理マシンを決定することができ、システム全体としてより効率的な配置で新ＶＭを稼働させることができる。
【００６４】
なお、２つの物理ホスト間のネットワーク距離を算出するために用いる負荷情報や、その負荷情報を用いてネットワーク距離を算出する方法は、第１の実施形態と第２の実施形態で開示した２つの例に限られるものではなく、他にも様々な形態やそれらの組み合わせを用いることができる。
【００６５】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態は、取得部１２１が取得する通信許可情報と、この通信許可情報を用いて第２算出部１４０がネットワークコストを算出する方法が、第１の実施形値と異なるものである。すなわち、第１の実施形態の取得部１２１は、新ＶＭに適用されるファイアウォールのルールから、新ＶＭが通信を行うことを許可されたＶＭを表す通信許可情報を取得したが、第３の実施形態の取得部１２１は、新ＶＭに適用されるファイアウォールのルールから、さらに通信に使用するポート番号が指定された通信許可情報を取得する。また、第１の実施形態の第２算出部１４０は、ネットワークコストを算出する対象の物理マシンと、通信許可情報で通信が許可されたＶＭが稼働している全ての物理マシンとの間のネットワーク距離を合算してネットワークコストを算出したが、第３の実施形態の第２算出部１４０は、ネットワークコストを算出する対象の物理マシンと、通信許可情報で通信が許可されたＶＭが稼働している全ての物理マシンとの間のネットワーク距離に、通信許可情報で指定されたポート番号に応じた重みを乗算した値を合算してネットワークコストを算出する。その他の構成は、第１の実施形態と共通である。
【００６６】
以下、第１の実施形態と共通の構成については説明を省略し、第１の実施形態との相違点についてのみ説明する。なお、以下では、第３の実施形態の取得部１２１を、第１の実施形態と区別するために取得部１２１Ａと表記し、第３の実施形態の第２算出部１４０を、第１の実施形態と区別するために第２算出部１４０Ａと表記する。
【００６７】
図１２は、取得部１２１Ａが取得する通信許可情報の一例を示す図であり、新ＶＭ＿Ｃに対して適用されるファイアウォールのルールから取得した通信許可情報を表形式で表したものである。図１２の表では、数値が記載されたカラムに対応するＶＭが、新ＶＭ＿Ａが通信を行うことを許可されたＶＭであることを示し、記載された数値が、このＶＭと通信を行う際に使用するポートとして指定されたポート番号を示している。つまり、図１２に示す通信許可情報は、新ＶＭ＿Ｃが、ＶＭ１１およびＶＭ３２と通信を行うことが許可されており、ＶＭ１１と通信を行う場合はポート番号８０のポートを使用し、ＶＭ３２と通信を行う場合はポート番号２２のポートを使用することを表している。
【００６８】
図１３は、ポートごとの重みの一例を示す図である。第２算出部１４０Ａは、図１３に示すようなポートごとの重みが記述された情報を保持しており、ネットワークコストを算出する際に利用する。すなわち、第２算出部１４０Ａは、２つの物理サーバ間のネットワーク距離に対して通信に使用するポートの番号に対応する重みを乗算し、その値を合算してネットワークコストを算出する。
【００６９】
ポートごとの重みは、各ポートで一般的に使用されるプロトコルで一般的にどのくらい大きなデータが使用されるかという測定値を元に決定される。図１３の例では、ポート番号８０のポートは主にＨＴＴＰ（Hyper  Text  Transfer  Protocol）で使われ、データ量が非常に大きいことが多いため、重みの値が大きくなっている。また、ポート番号５３のポートはＤＮＳ（Domain  Name  System）であり、大きなデータが流れることは少ないため、重みの値は小さくなっている。これらの重みは、例えば、実際にシステムを運用して統計的に計算すればよい。また、これらの重みを人が経験的に設定するようにしてもよい。人が経験的に設定する場合は、どのくらいの応答速度が要求されるかという観点も含めて重みを設定してもよい。例えば、高速な応答を必要とするポートほど重みの値を大きくすることが考えられる。
【００７０】
ここで、第２算出部１４０Ａが、図１２に示した通信許可情報と、図１３に示したポートごとの重みの情報と、図５に示したネットワーク距離とを用いて、新ＶＭ＿Ｃを稼働させた場合のネットワークコストを算出する方法について説明する。図１２に示した通信許可情報から、新ＶＭ＿Ｃは、ＶＭ１１が稼働している物理マシン１と、ＶＭ３２が稼働している物理マシン３との間で通信する可能性があることが分かる。また、新ＶＭ＿Ｃが物理マシン１と通信する場合はポート番号８０のポートが使用され、新ＶＭ＿Ｃが物理マシン３と通信する場合はポート番号２２のポートが使用されることが分かる。
【００７１】
ここで、新ＶＭ＿Ｃを物理マシン１で稼働させる場合を考えると、新ＶＭ＿ＣがＶＭ１１と通信する際は、物理マシン１と他の物理マシンとの間での通信は行われず、新ＶＭ＿ＣがＶＭ３２と通信する際は、物理マシン１と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｃを物理マシン１で稼働させた場合のネットワークコストは、物理マシン１と物理マシン３との間のネットワーク距離にポート番号２２に対応する重みを乗算した値である。図５に示した例では、物理マシン１と物理マシン３との間のネットワーク距離は４であり、図１３に示した例では、ポート番号２２に対応する重みの値は０．３であるので、新ＶＭ＿Ｃを物理マシン１で稼働させた場合のネットワークコストは１．２となる。
【００７２】
また、新ＶＭ＿Ｃを物理マシン２で稼働させる場合を考えると、新ＶＭ＿ＣがＶＭ１１と通信する際は、物理マシン２と物理マシン１との間で通信が行われ、新ＶＭ＿ＣがＶＭ３２と通信する際は、物理マシン２と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｃを物理マシン２で稼働させた場合のネットワークコストは、物理マシン２と物理マシン１との間のネットワーク距離にポート番号８０に対応する重みを乗算した値と、物理マシン２と物理マシン３との間のネットワーク距離にポート番号２２に対応する重みを乗算した値とを合算して算出することができる。図５に示した例では、物理マシン２と物理マシン１との間のネットワーク距離は２４、物理マシン２と物理マシン３との間のネットワーク距離は３２であり、図１３に示した例では、ポート番号８０に対応する重みの値は０．８、ポート番号２２に対応する重みの値は０．３であるので、新ＶＭ＿Ｃを物理マシン２で稼働させた場合のネットワークコストは２８．８となる。
【００７３】
また、新ＶＭ＿Ｃを物理マシン３で稼働させる場合を考えると、新ＶＭ＿ＣがＶＭ１１と通信する際は、物理マシン３と物理マシン１との間で通信が行われ、新ＶＭ＿ＣがＶＭ３２と通信する際は、物理マシン３と他の物理マシンとの間での通信は行われないことになる。したがって、新ＶＭ＿Ｃを物理マシン３で稼働させた場合のネットワークコストは、物理マシン３と物理マシン１との間のネットワーク距離にポート番号８０に対応する重みを乗算した値である。図５に示した例では、物理マシン３と物理マシン１との間のネットワーク距離は４であり、図１３に示した例では、ポート番号８０に対応する重みの値は０．８であるので、新ＶＭ＿Ｃを物理マシン３で稼働させた場合のネットワークコストは３．２となる。
【００７４】
また、新ＶＭ＿Ｃを物理マシン４で稼働させる場合を考えると、新ＶＭ＿ＣがＶＭ１１と通信する際は、物理マシン４と物理マシン１との間で通信が行われ、新ＶＭ＿ＣがＶＭ３２と通信する際は、物理マシン４と物理マシン３との間で通信が行われることになる。したがって、新ＶＭ＿Ｃを物理マシン４で稼働させた場合のネットワークコストは、物理マシン４と物理マシン１との間のネットワーク距離にポート番号８０に対応する重みを乗算した値と、物理マシン４と物理マシン３との間のネットワーク距離にポート番号２２に対応する重みを乗算した値とを合算して算出することができる。図５に示した例では、物理マシン４と物理マシン１との間のネットワーク距離は３、物理マシン４と物理マシン３との間のネットワーク距離は１であり、図１３に示した例では、ポート番号８０に対応する重みの値は０．８、ポート番号２２に対応する重みの値は０．３であるので、新ＶＭ＿Ｃを物理マシン４で稼働させた場合のネットワークコストは２．７となる。
【００７５】
図１４は、第２算出部１４０Ａが算出したネットワークコストの一例を示す図であり、新ＶＭ＿Ｃを稼働させた場合のネットワークコストを表形式で表している。第２算出部１４０Ａは、管理部１２０からのネットワークコストの取得要求に応じて、図１４に示すような物理マシン１〜４ごとのネットワークコストを算出し、管理部１２０からの取得要求に対する応答として、算出した物理マシン１〜４ごとのネットワークコストを管理部１２０に返す。
【００７６】
以上のように、本実施形態によれば、新ＶＭが通信を行う際に使用するポート番号に応じた重みをネットワーク距離に乗算してネットワークコストを算出するようにしているので、第１の実施形態の効果に加えて、さらに、通信のデータ量や必要とする応答速度などを加味して新ＶＭを稼働させるのに最適な物理マシンを決定することができ、システム全体としてより効率的な配置で新ＶＭを稼働させることができる。
【００７７】
なお、ネットワーク距離に対して重み付けする方法としては、通信に使用するポート番号に応じた重み付けに限らず、例えば、上述したセキュリティグループの情報等、新ＶＭに適用されるファイアウォールのルールに含まれる他の情報を用いて重み付けを行うようにしてもよい。
【００７８】
以上、第１乃至第３の実施形態を説明したが、これらの実施形態に係るシステム管理装置１００の各機能は、例えば、システム管理装置１００において所定のプログラムを実行することにより実現することができる。この場合、システム装置１００は、例えば図１５に示すように、ＣＰＵ（Central  Processing  Unit）１０１などの制御装置、ＲＯＭ（Read  Only  Memory）１０２やＲＡＭ（Random  Access  Memory）１０３などの記憶装置、ネットワークに接続して通信を行う通信Ｉ／Ｆ１０４、各部を接続するバス１０５などを備えた、通常のコンピュータを利用したハードウェア構成となる。
【００７９】
実施形態に係るシステム管理装置１００で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【００８０】
また、実施形態に係るシステム管理装置１００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態に係るシステム管理装置１００で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００８１】
また、実施形態に係るシステム管理装置１００で実行されるプログラムを、ＲＯＭ１０２等に予め組み込んで提供するように構成してもよい。
【００８２】
実施形態に係るシステム管理装置１００で実行されるプログラムは、システム管理装置１００の各機能を実現する処理部（通信部１１０、管理部１２０（取得部１２１、決定部１２２）、第１算出部１３０、第２算出部１４０）を含むモジュール構成となっており、実際のハードウェアとしては、例えば、ＣＰＵ１０１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部が主記憶装置上にロードされ、上述した各処理部が主記憶装置上に生成されるようになっている。なお、実施形態に係るシステム管理装置１００は、上述した各処理部の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアを用いて実現することも可能である。
【００８３】
なお、実施形態に係るシステム管理装置１００は、上述した各処理部を１つの装置で実現する必要はなく、上述した各処理部を複数の装置に分散させて実現する構成であってもよい。
【００８４】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2014045413.tif 000003
【図２】
2014045413.tif 000004
【図３】
2014045413.tif 000005
【図４】
2014045413.tif 000006
【図５】
2014045413.tif 000007
【図６】
2014045413.tif 000008
【図７】
2014045413.tif 000009
【図８】
2014045413.tif 000010
【図９】
2014045413.tif 000011
【図１０】
2014045413.tif 000012
【図１１】
2014045413.tif 000013
【図１２】
2014045413.tif 000014
【図１３】
2014045413.tif 000015
【図１４】
2014045413.tif 000016
【図１５】
2014045413.tif 000017
【手続補正書】
【提出日】平成25年8月2日(2013.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するシステム管理装置であって、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する第１算出部と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報であって、前記第１マシンを稼働させる際にユーザが指定する前記通信許可情報を取得する取得部と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する第２算出部と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する決定部と、を備えるシステム管理装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
前記第１算出部は、前記物理マシンの１つが他の前記物理マシンと通信を行う際に利用するネットワーク経路上のネットワーク機器から該ネットワーク機器の帯域使用量を取得し、取得した前記帯域使用量を用いて、前記ネットワーク距離を算出する、請求項１に記載のシステム管理装置。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
前記取得部は、前記第１マシンを稼働させる際にユーザが指定する、前記第１マシンに対して適用されるファイアウォールのルールから、前記第１マシンの通信相手を制限する情報を抽出することにより、前記通信許可情報を取得する、請求項１に記載のシステム管理装置。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
仮想マシンを稼働させる複数の物理マシンと、システム管理装置と、がネットワークを介して通信可能に接続されたネットワークシステムであって、
前記システム管理装置は、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する第１算出部と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報であって、前記第１マシンを稼働させる際にユーザが指定する前記通信許可情報を取得する取得部と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する第２算出部と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する決定部と、を備えるネットワークシステム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するシステム管理装置において実行されるシステム管理方法であって、
前記システム管理装置の第１算出部が、複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出するステップと、
前記システム管理装置の取得部が、新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報であって、前記第１マシンを稼働させる際にユーザが指定する前記通信許可情報を取得するステップと、
前記システム管理装置の第２算出部が、前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出するステップと、
前記システム管理装置の決定部が、複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定するステップと、を含むシステム管理方法。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理するコンピュータに、
複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する機能と、
新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報であって、前記第１マシンを稼働させる際にユーザが指定する前記通信許可情報を取得する機能と、
前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する機能と、
複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する機能と、を実現させるためのプログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
実施形態のシステム管理装置は、仮想マシンを稼働させる複数の物理マシンがネットワークを介して通信可能に接続されたネットワークシステムを管理する。このシステム管理装置は、第１算出部と、取得部と、第２算出部と、決定部と、を備える。第１算出部は、複数の前記物理マシンの１つが他の前記物理マシンと通信を行う際の負荷の大きさを表すネットワーク距離を、前記物理マシンの組み合わせごとに算出する。取得部は、新たに稼働させる仮想マシンである第１マシンが、複数の前記物理マシンのいずれかで既に稼働している仮想マシンである第２マシンのうち、いずれの前記第２マシンと通信を行うことが許可されているかを表す通信許可情報であって、前記第１マシンを稼働させる際にユーザが指定する前記通信許可情報を取得する。第２算出部は、前記物理マシンの組み合わせごとに算出された前記ネットワーク距離と、前記通信許可情報とに基づいて、複数の前記物理マシンの１つが前記第１マシンを稼働させた場合に、通信が許可された前記第２マシンと前記第１マシンが通信を行うことによる前記ネットワークシステムの負荷の大きさを表すネットワークコストを、複数の前記物理マシンごとに算出する。決定部は、複数の前記物理マシンごとに算出された前記ネットワークコストを用いて、前記第１マシンを複数の前記物理マシンのうち、いずれの前記物理マシンで稼働させるかを決定する。
【国際調査報告】
2014045413.tif 000018
2014045413.tif 000019