(57)【要約】【課題】通信経路を最適化し得る計算機システムを提供する。【解決手段】複数の仮想マシンと物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシンを通る通信情報と、複数の仮想マシンの使用状況を示す仮想マシン情報と、複数の仮想マシンが配置される物理ホストを示す配置情報と、物理ホストにおける物理リソースの使用状況を示す物理リソース情報と、複数の仮想マシンと物理マシンとにおける通信の経路を示す経路情報と、を記憶する記憶部と、仮想マシン情報と配置情報と物理リソース情報とに基づいて経路制御仮想マシンを配置可能な物理ホストを選定し、通信情報と配置情報と経路情報とに基づいて、選定した物理ホストに経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する配置処理部と、を設けるようにした。【選択図】図１
2019208192.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークを用いて通信可能な複数の仮想マシンと、前記仮想ネットワークの環境とは異なる環境にある前記複数の仮想マシンと通信可能な物理マシンとを備える計算機システムであって、
前記複数の仮想マシンと前記物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシンを通る通信情報と、前記複数の仮想マシンの使用状況を示す仮想マシン情報と、前記複数の仮想マシンが配置される物理ホストを示す配置情報と、前記物理ホストにおける物理リソースの使用状況を示す物理リソース情報と、前記複数の仮想マシンと前記物理マシンとにおける通信の経路を示す経路情報と、を記憶する記憶部と、
前記仮想マシン情報と前記配置情報と前記物理リソース情報とに基づいて前記経路制御仮想マシンを配置可能な物理ホストを選定し、前記通信情報と前記配置情報と前記経路情報とに基づいて、選定した物理ホストに前記経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する配置処理部と、
を備えることを特徴とする計算機システム。
【請求項２】
前記通信情報には、前記複数の仮想マシンと前記物理マシンとの通信に係るデータ量を示すパケット数の情報が含まれ、
前記経路情報には、前記物理ホスト間および前記物理ホストと前記物理マシン間における経路選択の機能を有する機器の数を示すホップ数の情報が含まれ、
前記配置処理部は、前記パケット数と前記ホップ数とに基づいて仮想マシンごとに通信コストを算出する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記配置処理部は、合計の通信コストが最も低くなる物理ホストを前記経路制御仮想マシンの配置先として決定し、前記経路制御仮想マシンが動作するハイパーバイザと、決定された配置先のハイパーバイザとに、前記経路制御仮想マシンの移動を指示する、
ことを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記記憶部には、レイヤー２のネットワークごとに、割り振ることができるＩＰアドレスの範囲を示す情報と、使用しているＩＰアドレスを示す情報とを含むＩＰアドレス設定情報が記憶され、
前記配置処理部は、配置元と配置先とで異なるレイヤー２のネットワークが用いられる場合、前記ＩＰアドレス設定情報に基づいて前記経路制御仮想マシンにＩＰアドレスを割り当て、使用しているＩＰアドレスを示す情報を更新する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記配置処理部は、算出した全ての通信コストが閾値を超えると判定した場合、新規の経路制御仮想マシンを追加すると決定し、前記通信情報に基づいて前記経路制御仮想マシンと前記新規の経路制御仮想マシンとで負荷が平準化するように通信を仮定し、前記仮想マシン情報と前記配置情報と前記物理リソース情報とに基づいて前記新規の経路制御仮想マシンを配置可能な物理ホストを選定し、前記通信情報と前記配置情報と前記経路情報とに基づいて、選定した物理ホストに前記新規の経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する、
ことを特徴とする請求項１に記載の計算機システム。
【請求項６】
仮想ネットワークを用いて通信可能な複数の仮想マシンと前記仮想ネットワークの環境とは異なる環境にある前記複数の仮想マシンと通信可能な物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシンを通る通信情報と、前記複数の仮想マシンの使用状況を示す仮想マシン情報と、前記複数の仮想マシンが配置される物理ホストを示す配置情報と、前記物理ホストにおける物理リソースの使用状況を示す物理リソース情報と、前記複数の仮想マシンと前記物理マシンとにおける通信の経路を示す経路情報と、を記憶する記憶部と、
前記仮想マシン情報と前記配置情報と前記物理リソース情報とに基づいて前記経路制御仮想マシンを配置可能な物理ホストを選定し、前記通信情報と前記配置情報と前記経路情報とに基づいて、選定した物理ホストに前記経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する配置処理部と、
を備えることを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムおよび計算機に関し、例えば仮想ネットワークを用いて通信可能な複数の仮想マシンと仮想ネットワークの環境とは異なる環境にある物理マシンとにおける通信の経路制御に適用して好適なものである。
【背景技術】
【０００２】
近年、クラウドコンピューティングの発達に伴い、ＳＤＮ（Software Defined Networking）などを用いたネットワーク仮想化が普及している（特許文献１参照）。
【０００３】
例えば、データセンタ内のシステムには、仮想にできないアプリケーション、ネットワーク等が存在し、仮想ネットワーク（例えば、ＶＸＬＡＮ：Virtual eXtensible Local Area Network）と物理ネットワーク（例えば、ＶＬＡＮ：Virtual Local Area Network）間での通信が必要なケースがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２１１０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想ネットワークと物理ネットワーク間を通信する場合、仮想ネットワークと物理ネットワークとを接続する仮想アプライアンス（例えば、ルーティング機能を提供する仮想マシン）を経由する必要があり、管理者が基盤上に仮想アプライアンスを手動で配置する。
【０００６】
しかしながら、クラウド基盤のように業務系の仮想マシンが随時移動したり、通信状況が動的に変化したりする場合、仮想アプライアンスが固定の位置では全体の配置状況によって通信経路が冗長となる問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、通信経路を最適化し得る計算機システムおよび計算機を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明においては、仮想ネットワークを用いて通信可能な複数の仮想マシンと、前記仮想ネットワークの環境とは異なる環境にある前記複数の仮想マシンと通信可能な物理マシンとを備える計算機システムであって、前記複数の仮想マシンと前記物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシンを通る通信情報と、前記複数の仮想マシンの使用状況を示す仮想マシン情報と、前記複数の仮想マシンが配置される物理ホストを示す配置情報と、前記物理ホストにおける物理リソースの使用状況を示す物理リソース情報と、前記複数の仮想マシンと前記物理マシンとにおける通信の経路を示す経路情報と、を記憶する記憶部と、前記仮想マシン情報と前記配置情報と前記物理リソース情報とに基づいて前記経路制御仮想マシンを配置可能な物理ホストを選定し、前記通信情報と前記配置情報と前記経路情報とに基づいて、選定した物理ホストに前記経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する配置処理部と、を設けるようにした。
【０００９】
また本発明においては、計算機であって、仮想ネットワークを用いて通信可能な複数の仮想マシンと前記仮想ネットワークの環境とは異なる環境にある前記複数の仮想マシンと通信可能な物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシンを通る通信情報と、前記複数の仮想マシンの使用状況を示す仮想マシン情報と、前記複数の仮想マシンが配置される物理ホストを示す配置情報と、前記物理ホストにおける物理リソースの使用状況を示す物理リソース情報と、前記複数の仮想マシンと前記物理マシンとにおける通信の経路を示す経路情報と、を記憶する記憶部と、前記仮想マシン情報と前記配置情報と前記物理リソース情報とに基づいて前記経路制御仮想マシンを配置可能な物理ホストを選定し、前記通信情報と前記配置情報と前記経路情報とに基づいて、選定した物理ホストに前記経路制御仮想マシンを配置すると仮定した場合の通信コストを算出する配置処理部と、を設けるようにした。
【００１０】
上記構成によれば、経路制御仮想マシンを配置可能な物理ホストに経路制御仮想マシンを配置すると仮定した場合の通信コストを算出することができるので、例えば、通信コストが最も低い物理ホストに経路制御仮想マシンを配置できるようになる。
【発明の効果】
【００１１】
本発明によれば、通信性能を向上することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態による計算機システムに係る構成の一例を示す図である。
【図２】第１の実施の形態による管理サーバのハードウェアに係る構成の一例を示す図である。
【図３】第１の実施の形態による管理サーバのソフトウェアに係る構成の一例を示す図である。
【図４】第１の実施の形態による通信情報の一例を示す図である。
【図５】第１の実施の形態による仮想マシン情報・配置情報の一例を示す図である。
【図６】第１の実施の形態による物理リソース情報の一例を示す図である。
【図７】第１の実施の形態による経路情報の一例を示す図である。
【図８】第１の実施の形態によるＩＰアドレス設定情報の一例を示す図である。
【図９】第１の実施の形態による配置最適化処理に係るフローチャートの一例を示す図である。
【図１０】第１の実施の形態による配置実行処理に係るフローチャートの一例を示す図である。
【図１１】第１の実施の形態による追加実行処理に係るフローチャートの一例を示す図である。
【図１２】第１の実施の形態による合計の通信コストの一例を示す図である。
【図１３】第１の実施の形態による計算機システムに係る構成の一例を示す図である。
【図１４】第１の実施の形態による通信情報の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
図１において、１は全体として第１の実施の形態による計算機システムを示す。計算機システム１は、複数の物理ホスト（本例では、物理ホストＡ１１０、物理ホストＢ１２０、物理ホストＣ１３０）と、Ｌ３スイッチ（本例では、Ｌ３スイッチＡ２１０、Ｌ３スイッチＢ２２０、Ｌ３スイッチＣ２３０、Ｌ３スイッチＤ２４０）を介して物理ホストと通信可能に接続される物理マシン（本例では、物理マシンＡ３１０、物理マシンＢ３２０）と、物理ホストと物理マシン間に係る通信を管理する管理サーバ４００とを備える。
【００１５】
物理ホストは、計算機（コンピュータ）であり、図示は省略するＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）等のメモリと、ＨＢＡ（Host Bus Adapter）、ＮＩＣ（Network Interface Card）等の通信装置とを含んで構成される。
【００１６】
物理ホストには、仮想マシン（ＶＭ：Virtual Machine）を実現するための制御プログラム（ハイパーバイザ）が設けられている。なお、ハイパーバイザの種類（ハードウェアの上で直接稼働するハイパーバイザ型、ホストＯＳの上で稼働するホストＯＳ型など）については、特に限定されるものではないが、以下では、ハイパーバイザ型を例に挙げて説明する。
【００１７】
例えば、物理ホストＡ１１０では、ハイパーバイザＡ１１１上でＶＭａ１１２（仮想マシン）が動作する。ハイパーバイザＡ１１１は、例えば、ＶＭａ１１２の制御を行い、ＶＭａ１１２の使用状況（後述の仮想ＣＰＵ数、仮想メモリサイズなど）、ＶＭａ１１２に割当てたハードウェアリソース（物理リソース）の使用状況（ＣＰＵ使用率、メモリ使用率など）等を管理する。ハイパーバイザＡ１１１は、管理している情報を管理サーバ４００に送信する。
【００１８】
物理ホストＢ１２０では、ハイパーバイザＢ１２１上でルーティング機能を提供するＶＭｒ１２２（仮想マシンと物理マシンとにおける通信の経路制御を行う仮想マシンである経路制御仮想マシン）が動作する。ハイパーバイザＢ１２１は、例えば、ＶＭｒ１２２の制御を行い、ＶＭｒ１２２の使用状況（後述の仮想ＣＰＵ数、仮想メモリサイズなど）、ＶＭｒ１２２に割当てたハードウェアリソースの使用状況（ＣＰＵ使用率、メモリ使用率など）等を管理する。ハイパーバイザＢ１２１は、管理している情報を管理サーバ４００に送信する。
【００１９】
ＶＭｒ１２２は、仮想ネットワーク５０１と物理ネットワークとの接続に係るＩＰアドレス（Internet Protocol address）の変換などを行う。また、ＶＭｒ１２２は、仮想ネットワーク５０１と物理ネットワークとにおける通信情報を取得し、管理サーバ４００に送信する（通信状況確認部１２３の一例）。
【００２０】
物理ホストＣ１３０では、ハイパーバイザＣ１３１上でＶＭｂ１３２（仮想マシン）が動作する。ハイパーバイザＣ１３１は、例えば、ＶＭｂ１３２の制御を行い、ＶＭｂ１３２の使用状況（後述の仮想ＣＰＵ数、仮想メモリサイズなど）、ＶＭｂ１３２に割当てたハードウェアリソースの使用状況（ＣＰＵ使用率、メモリ使用率など）等を管理する。ハイパーバイザＣ１３１は、管理している情報を管理サーバ４００に送信する。
【００２１】
各物理ホスト上の仮想マシンは、仮想ネットワーク５０１を用いて通信可能である。仮想ネットワーク５０１は、レイヤー３（Ｌ３）のネットワーク上に論理的なレイヤー２（Ｌ２）のネットワークを構築できるプロトコルであるＶＸＬＡＮ（Virtual Extensible Local Area Network）により実現される。ＶＸＬＡＮでは、物理ネットワークを管理するための各種テーブル（例えば、ＭＡＣアドレステーブル）を物理スイッチ（Ｌ２スイッチ）から切り離し、ハイパーバイザで管理することにより、物理ネットワークと同等のサービスを、物理ネットワークに依存しない形で展開することができる。
【００２２】
より具体的には、各物理ホストのハイパーバイザは、ＩＰアドレスを有し、当該ＩＰアドレス間でＶＸＬＡＮのオーバレイ通信を行う。例えば、ＶＭａ１１２がＶＭｂ１３２と通信を行う場合、ハイパーバイザＡ１１１は、事前に取得したＭＡＣアドレステーブルを参照し、ＶＭａ１１２で生成されたオリジナルフレームをＶＸＬＡＮでカプセル化（ＶＸＬＡＮヘッダを付加）したパケットとすることで、パケットがＬ３スイッチＡ２１０、Ｌ３スイッチＢ２２０、およびＬ３スイッチＣ２３０をトンネリングし、ハイパーバイザＣ１３１に到達する。ハイパーバイザＣ１３１では、受信したパケットからＶＸＬＡＮヘッダを取り除き、ＶＭｂ１３２にオリジナルのフレームを転送する。
【００２３】
また、各物理ホスト上の仮想マシンは、仮想ネットワーク５０１とは異なる物理的な環境にある物理マシンと通信可能である。ここで、ＶＭｒ１２２は、ルーティングテーブルを有し、ルーティングテーブルに従って経路制御を行う。例えば、ＶＭａ１１２が物理マシンＡ３１０と通信を行う場合、ハイパーバイザＡ１１１は、まず、物理マシンＡ３１０が異なるサブネットにいることを認識する。次に、ハイパーバイザＡ１１１は、ＭＡＣアドレステーブルを参照し、デフォルトゲートウェイであるＶＭｒ１２２にパケットを転送する。ＶＭｒ１２２は、ハイパーバイザＢ１２１によりパケットからＶＸＬＡＮヘッダが取り除かれたオリジナルのフレームを、ルーティングテーブルを参照して物理マシンＡ３１０に転送する。
【００２４】
ここで、ルーティングテーブルのルーティング情報については、スタティックルーティングにより管理されてもよいし、ダイナミックルーティングにより管理されてもよい。以下では、ダイナミックルーティングを例に挙げて説明する。例えば、ＶＭｒ１２２は、Ｌ３スイッチとのＯＳＰＦ（Open Shortest Path First）、ＢＧＰ（Border Gateway Protocol）などのルーティングプロトコルを介してルーティング情報を交換する。かかるダイナミックルーティングでは、ルーティングプロトコルに従って、Ｌ３スイッチとＶＭｒ１２２とが互いに自分の持っているルーティング情報を相互に交換し、また、Ｌ３スイッチ同士が互いに自分の持っているルーティング情報を相互に交換し、ルーティング情報が自動的に生成されて更新される。
【００２５】
物理マシンは、計算機（コンピュータ）であり、図示は省略するＣＰＵ、ＲＡＭ等のメモリ、ＨＢＡ、ＮＩＣ等の通信装置を含んで構成される。物理マシンは、物理ホストと通信を行い、各種の情報の記憶、処理などを行う。物理マシンは、例えば、仮想化できないアプリケーションを有する。
【００２６】
管理サーバ４００は、例えば、ＶＭｒ１２２を通る通信情報に基づいて、通信経路が最適となるＶＭｒ１２２の配置に係る情報を算出する。また、例えば、管理サーバ４００は、算出した情報に基づいてＶＭｒ１２２を配置する。また、例えば、管理サーバ４００は、ＶＭｒ１２２を通る通信情報に基づいて、ルーティング機能を提供する仮想マシンを追加する。
【００２７】
管理サーバ４００は、情報取得部４１０、データベース４２０（ＤＢ）、および配置処理部４３０を備える。なお、情報取得部４１０、データベース４２０（ＤＢ）、および配置処理部４３０の詳細については、図３などを用いて後述する。
【００２８】
図２は、管理サーバ４００のハードウェアに係る構成の一例を示す図である。
【００２９】
管理サーバ４００は、例えば計算機（コンピュータ）であり、制御装置４０１、記憶装置４０２、通信装置４０３を含んで構成される。制御装置４０１は、例えばＣＰＵであり、各種の情報を処理する。記憶装置４０２は、ＲＡＭ、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）等の記憶部であり、各種の情報を記憶する。通信装置４０３は、ＨＢＡ、ＮＩＣなどであり、物理ホストとの通信を制御する。
【００３０】
管理サーバ４００の機能（後述の情報取得部４１０、配置処理部４３０等）は、例えば、ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに読み出して実行すること（ソフトウェア）により実現されてもよいし、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、管理サーバ４００の機能の一部は、管理サーバ４００と通信可能な他のコンピュータにより実現されてもよい。
【００３１】
付言するならば、管理サーバ４００は、仮想ネットワーク５０１を介して物理ホストと通信を行ってもよいし、物理マシンと同様に、仮想ネットワーク５０１とは異なる物理的な環境にあってもよい。
【００３２】
図３は、管理サーバ４００のソフトウェアに係る構成の一例を示す図である。
【００３３】
管理サーバ４００は、情報取得部４１０、データベース４２０、配置処理部４３０を有する。
【００３４】
情報取得部４１０は、通信状況確認部１２３からＶＭｒ１２２の通信情報（通信状況）を取得し、データベース４２０に通信情報４２１として格納する。情報取得部４１０は、各ハイパーバイザから仮想マシン情報、配置情報、物理リソース情報、経路情報を取得し、データベース４２０に仮想マシン情報・配置情報４２２、物理リソース情報４２３、経路情報４２４として格納する。
【００３５】
データベース４２０は、通信情報４２１、仮想マシン情報・配置情報４２２、物理リソース情報４２３、および経路情報４２４に加えて、ＩＰアドレス設定情報４２５を格納する。なお、データベース４２０に格納される各情報の詳細については、図４〜８を用いて後述する。
【００３６】
配置処理部４３０は、例えば、仮想マシン情報・配置情報４２２（複数の仮想マシンの使用状況を示す仮想マシン情報と、複数の仮想マシンが配置される物理ホストを示す配置情報）と、物理ホストにおける物理リソースの使用状況を示す物理リソース情報４２３とに基づいて、ＶＭｒ１２２を配置可能な物理ホストを選定する。また、例えば、配置処理部４３０は、ＶＭｒ１２２を通る通信情報４２１と仮想マシン情報・配置情報４２２の配置情報と経路情報４２４とに基づいて、選定した物理ホストにＶＭｒ１２２を配置すると仮定した場合の通信コストを算出する。かかる通信コストによれば、例えば、通信コストが低い物理ホストにＶＭｒ１２２を手動で配置できるようになるので、不要な通信が排除され、通信性能を向上できる。
【００３７】
また、例えば、配置処理部４３０は、合計の通信コストが最も低くなる物理ホストをＶＭｒ１２２の配置先として決定し、ＶＭｒ１２２が動作するハイパーバイザＢ１２１と、決定された配置先のハイパーバイザとに、ＶＭｒ１２２の移動を指示する。例えば、通信コストが低い物理ホストにＶＭｒ１２２を自動で配置できるようになるので、不要な通信が排除され、通信性能を向上できる。
【００３８】
なお、配置処理部４３０の処理については、図９〜図１１を用いて後述する。
【００３９】
（計算機システム１における主な情報）
図４は、通信情報４２１の一例を示す図である。
【００４０】
通信情報４２１には、ＶＭｒ１２２を通る仮想マシンおよび物理マシン間（マシン間）に係る通信と、当該マシン間で一定期間（例えば、１０分間）に通信されたデータのデータ量を示すパケット数との情報が対応付けられて格納される。例えば、通信情報４２１については、ＶＭｒ１２２の配置の見直しのタイミング（例えば、１０分間隔）で最新の情報に更新される。
【００４１】
図５は、仮想マシン情報・配置情報４２２の一例を示す図である。
【００４２】
仮想マシン情報・配置情報４２２には、仮想マシンを識別可能な仮想マシン名と、仮想マシンに割り当てられた仮想ＣＰＵの数を示す仮想ＣＰＵ数と、仮想マシンに割り当てられたメモリの容量を示す仮想メモリサイズと、仮想マシンがＣＰＵの処理時間を占有している割合を示すＣＰＵ使用率と、仮想マシンが稼動している物理ホストを識別可能な稼働先ホスト名との情報が対応付けられて格納されている。
【００４３】
図６は、物理リソース情報４２３の一例を示す図である。
【００４４】
物理リソース情報４２３には、物理ホストを識別可能な物理ホスト名と、物理ホストで実行中のプログラムがＣＰＵの処理時間を占有している割合を示すＣＰＵ使用率と、物理ホストで実行中のプログラムがメモリの容量を占有している割合を示すメモリ使用率との情報が対応付けられて格納される。
【００４５】
図７は、経路情報４２４の一例を示す図である。
【００４６】
経路情報４２４には、物理ホスト間および物理ホストと物理マシン間（装置間）に係る通信と、装置間において経路選択の機能を有する機器（本例では、Ｌ３スイッチ）の数を示すホップ数との情報が対応付けられて格納される。例えば、ホップ数については、物理ホストからのトレースルートにより取得可能である。なお、例えば、伝送時間、伝送効率などが転送回数よりも実際の物理的な距離に大きな影響を受ける場合、ホップ数に加えてまたは代えて、実際の距離を用いてもよい。
【００４７】
図８は、ＩＰアドレス設定情報４２５の一例を示す図である。
【００４８】
ＩＰアドレス設定情報４２５は、物理ホストを識別可能な物理ホスト名と、ルーティング機能を提供する仮想マシンに設定可能なＩＰアドレスの範囲を示すＩＰアドレス範囲と、使用中のＩＰアドレスを示す使用中ＩＰアドレスとの情報が対応付けられて格納される。ＩＰアドレス範囲は、Ｌ２のネットワーク（Ｌ３スイッチ）に対応して設けられる。
【００４９】
（計算機システム１における主な処理）
図９は、配置最適化処理に係るフローチャートの一例を示す図である。配置最適化処理は、定期的に（例えば、１０分間隔で）実行される。
【００５０】
ルーティング機能を提供する仮想マシンが動作するハイパーバイザは、当該仮想マシンを通る通信情報（ＩＰアドレスごとのパケット数）を取得する（ステップＳ１０）。なお、パケットの取得については、適宜に行われ、ＩＰアドレスごとのパケット数については、一定期間のパケット数の合計として取得される。
【００５１】
仮想マシンは、物理ホスト情報（仮想マシン情報、配置情報、物理リソース情報、および経路情報）を管理サーバ４００に送信し、ルーティング機能を提供する仮想マシンは、更に通信情報を管理サーバ４００に送信する（ステップＳ２０）。
【００５２】
管理サーバ４００の情報取得部４１０は、仮想マシンから送信された物理ホスト情報、およびルーティング機能を提供する仮想マシンから送信された通信情報をデータベース４２０に格納する（ステップＳ３０）。
【００５３】
情報取得部４１０で物理ホスト情報等が受信されてデータベース４２０に格納されると、配置処理部４３０は、ルーティング機能を提供する仮想マシンごとに、ステップＳ４０〜ステップＳ７０の処理を行う。
【００５４】
配置処理部４３０は、ルーティング機能を提供する仮想マシン（本例では、ＶＭｒ１２２）を配置するために十分な物理リソースがある配置先に対し、各配置先の通信コストを算出し、配置先を決定する（ステップＳ４０）。
【００５５】
より具体的には、配置処理部４３０は、まず、仮想マシン情報・配置情報４２２および物理リソース情報４２３に基づいて、ＶＭｒ１２２のデプロイに十分なキャパシティ（仮想ＣＰＵの数、メモリの容量など）がリソースプールにあることを確認した物理ホストを配置先の候補として選定する。なお、この際、配置処理部４３０は、ＶＭｒ１２２が稼働している物理ホストＢ１２０については、物理リソース情報４２３にかかわりなく、配置先の候補と選定してもよい。
【００５６】
次に、配置処理部４３０は、通信情報４２１と、仮想マシン情報・配置情報４２２と、経路情報４２４とに基づいて、配置先の候補として選定した各物理ホストについて、通信コストを算出する。以下では、配置先の候補として、物理ホストＡ１１０、物理ホストＢ１２０、および物理ホストＣ１３０が選定された場合を例に挙げて、通信コストの算出方法について説明する。
【００５７】
（物理ホストＡ１１０にＶＭｒ１２２を配置すると仮定した場合の通信コスト）
ＶＭａ１１２と物理マシンＡ３１０とのホップ数は、「５」（同一の物理ホストのホップ数「０」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＡ１１０と物理マシンＡ３１０とにおけるホップ数「４」）である。ＶＭａ１１２と物理マシンＡ３１０とのパケット数は、「３０」である。よって、ＶＭａ１１２の通信コストは、「１５０」（ホップ数「５」×パケット数「３０」）となる。
【００５８】
ＶＭｂ１３２と物理マシンＢ３２０とのホップ数は、「８」（物理ホストＡ１１０と物理ホストＣ１３０とにおけるホップ数「３」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＡ１１０と物理マシンＢ３２０とにおけるホップ数「４」）である。ＶＭｂ１３２と物理マシンＢ３２０とのパケット数は、「１００」である。よって、ＶＭｂ１３２の通信コストは、「８００」（ホップ数「８」×パケット数「１００」）となる。
【００５９】
したがって、物理ホストＡ１１０にＶＭｒ１２２を配置すると仮定した場合の合計の通信コストは、「９５０」（ＶＭａ１１２の通信コスト「１５０」＋ＶＭｂ１３２の通信コスト「８００」）となる。
【００６０】
（物理ホストＢ１２０にＶＭｒ１２２を配置すると仮定した場合の通信コスト）
ＶＭａ１１２と物理マシンＡ３１０とのホップ数は、「６」（物理ホストＡ１１０と物理ホストＢ１２０とにおけるホップ数「２」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＢ１２０と物理マシンＡ３１０とにおけるホップ数「３」）である。ＶＭａ１１２と物理マシンＡ３１０とのパケット数は、「３０」である。よって、ＶＭａ１１２の通信コストは、「１８０」（ホップ数「６」×パケット数「３０」）となる。
【００６１】
ＶＭｂ１３２と物理マシンＢ３２０とのホップ数は、「６」（物理ホストＢ１２０と物理ホストＣ１３０とにおけるホップ数「２」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＢ１２０と物理マシンＢ３２０とにおけるホップ数「３」）である。ＶＭｂ１３２と物理マシンＢ３２０とのパケット数は、「１００」である。よって、ＶＭｂ１３２の通信コストは、「６００」（ホップ数「６」×パケット数「１００」）となる。
【００６２】
したがって、物理ホストＡ１１０にＶＭｒ１２２を配置すると仮定した場合の合計の通信コストは、「７８０」（ＶＭａ１１２の通信コスト「１８０」＋ＶＭｂ１３２の通信コスト「６００」）となる。
【００６３】
（物理ホストＣ１３０にＶＭｒ１２２を配置すると仮定した場合の通信コスト）
ＶＭａ１１２と物理マシンＡ３１０とのホップ数は、「６」（物理ホストＡ１１０と物理ホストＣ１３０とにおけるホップ数「３」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＣ１３０と物理マシンＡ３１０とにおけるホップ数「２」）である。ＶＭａ１１２と物理マシンＡ３１０とのパケット数は、「３０」である。よって、ＶＭａ１１２の通信コストは、「１８０」（ホップ数「６」×パケット数「３０」）となる。
【００６４】
ＶＭｂ１３２と物理マシンＢ３２０とのホップ数は、「３」（同一の物理ホストのホップ数「０」＋ＶＭｒ１２２のホップ数「１」＋物理ホストＣ１３０と物理マシンＢ３２０とにおけるホップ数「２」）である。ＶＭｂ１３２と物理マシンＢ３２０とのパケット数は、「１００」である。よって、ＶＭｂ１３２の通信コストは、「３００」（ホップ数「３」×パケット数「１００」）となる。
【００６５】
したがって、物理ホストＣ１３０にＶＭｒ１２２を配置すると仮定した場合の合計の通信コストは、「４８０」（ＶＭａ１１２の通信コスト「１８０」＋ＶＭｂ１３２の通信コスト「３００」）となる。
【００６６】
次に、配置処理部４３０は、合計の通信コストが最も低い物理ホストを配置先として決定する。上述の例では、図１２の（Ａ）に示すように、物理ホストＡ１１０の合計の通信コストが「９５０」、物理ホストＢ１２０の合計の通信コストが「７８０」、物理ホストＣ１３０の合計の通信コストが「４８０」となるので、最も合計の通信コストが低い物理ホストＣ１３０を配置先として決定する。
【００６７】
配置処理部４３０は、決定した配置先の通信コストが閾値を超えているか否かを判定する（ステップＳ５０）。配置処理部４３０は、決定した配置先の通信コストが閾値を超えていると判定した場合、ステップＳ７０に処理を移し、配置処理部４３０は、決定した配置先の通信コストが閾値を超えていないと判定した場合、ステップＳ６０に処理を移す。
【００６８】
例えば、図１２の（Ｂ）に示すように、各物理ホストの合計の通信コストが算出されたとき、閾値が「５００」である場合、どこに配置しても閾値以上の通信コストがかかることとなる。このような場合、配置処理部４３０は、ＶＭｒ１２２の配置を変更することなく、ルーティング機能を提供する仮想マシンを新たに追加すると判定し、ステップＳ７０に処理を移す。
【００６９】
ステップＳ６０では、配置処理部４３０は、配置実行処理を行う。なお、詳細については、図１０を用いて後述するが、配置実行処理では、ＶＭｒ１２２の配置（本例では、再配置）が行われる。
【００７０】
ステップＳ７０では、配置処理部４３０は、追加実行処理を行う。なお、詳細については、図１１を用いて後述するが、追加実行処理では、ルーティング機能を提供する仮想マシンの追加が行われる。
【００７１】
付言するならば、ルーティング機能を提供する仮想マシンが複数ある場合は、各仮想マシンについて、ステップＳ４０〜ステップＳ７０の処理が繰り返される。
【００７２】
上述した処理によれば、配置処理部４３０は、パケット数とホップ数とに基づいて仮想マシンごとに通信コストを算出するので、通信状況および通信経路に応じた配置先を決定できるようになる。
【００７３】
図１０は、配置実行処理に係るフローチャートの一例を示す図である。
【００７４】
配置処理部４３０は、配置元のハイパーバイザと配置先のハイパーバイザとにルーティング機能を提供する仮想マシンの移動を指示する（ステップＳ６１）。
【００７５】
配置先の物理ホストでは、ハイパーバイザ上に新しい仮想マシンが作成され、ルーティング機能を提供する仮想マシンのメモリ情報が配置先のハイパーバイザ上の新しい仮想マシンにコピーされる（ステップＳ６２）。例えば、配置先として物理ホストＣ１３０が決定された場合、配置先のハイパーバイザＣ１３１は、ＶＭｒ１２２と同じイメージを持つ仮想マシンを作成する。配置元のハイパーバイザＢ１２１は、ＶＭｒ１２２のメモリ情報（ＶＭｒ１２２に割り当てられたメモリのスナップショット）を物理ホストＣ１３０に送信する。
【００７６】
配置元のハイパーバイザ上の仮想マシンと、配置先のハイパーバイザ上の仮想マシンとで差分が無くなった後、配置先のハイパーバイザ上の仮想マシンに処理の切り替えが行われる（ステップＳ６３）。例えば、ハイパーバイザＢ１２１は、自身で稼働しているＶＭｒ１２２の活動を停止させ、ハイパーバイザＣ１３１は、自身の上のＶＭｒ１２２の活動を開始する。
【００７７】
配置先の物理ホストは、ＲＡＲＰ（Reverse Address Resolution Protocol）により、ハイパーバイザのＭＡＣアドレステーブルを更新する（ステップＳ６４）。例えば、配置先として物理ホストＣ１３０が決定された場合、仮想ネットワーク５０１内にＲＡＲＰパケットをブロードキャストすることにより、ハイパーバイザＡ１１１，１２１，１３１のＭＡＣアドレステーブルが更新される。
【００７８】
なお、ステップＳ６１〜ステップＳ６４の処理については、上述の内容に限られるものではなく、既存のマイグレーション技術を適宜に採用することができる。
【００７９】
配置処理部４３０は、例えば、ＩＰアドレス設定情報４２５に基づいて、配置元の物理ホストと配置先の物理ホストとで接続されるＬ２のネットワークが異なるか否か（Ｌ３スイッチを跨ぐ移動であるか否か）を判定する（ステップＳ６５）。配置処理部４３０は、異なると判定した場合、ステップＳ６６に処理を移し、同じであると判定した場合、ステップＳ６８に処理を移す。
【００８０】
例えば、図１３に示すように、物理ホストＢ１２０から物理ホストＣ１３０にＶＭｒ１２２を移動（配置）する場合、Ｌ２のネットワークが異なるため、ＩＰアドレスの変更を行う必要があり、ステップＳ６６に処理が移る。また、例えば、物理ホストＣ１３０にルーティング機能を提供する仮想マシンがあり、ハイパーバイザＣ１３１と同じＬ３スイッチＣ２３０に接続される物理ホストＤ１４０（ハイパーバイザＤ１４１上でＶＭｃ１４２が動作する。）に移動（配置）する場合は、Ｌ２のネットワークが同じであるので、ＩＰアドレスの変更を行う必要がなく、ステップＳ６８に処理が移る。
【００８１】
配置処理部４３０は、ルーティング機能を提供する仮想マシンに対し、ＩＰアドレスを変更するスクリプトを実行する（ステップＳ６６）。なお、この際、配置処理部４３０は、ＩＰアドレス設定情報４２５の使用中ＩＰアドレスを更新する。
【００８２】
ルーティング機能を提供する仮想マシンと各Ｌ３スイッチ間でダイナミックルーティングにより、ルーティング情報が更新される（ステップＳ６７）。
【００８３】
ステップＳ６８では、配置処理部４３０は、各物理ホストに対し、物理ホスト情報を取得するスクリプトを実行してデータベース４２０を更新し、配置実行処理を終了する。
【００８４】
上述の処理によれば、配置元と配置先とで異なるＬ２のネットワークが用いられる場合、配置処理部４３０は、ＩＰアドレス設定情報４２５に基づいてＶＭｒ１２２にＩＰアドレスを割り当て、使用しているＩＰアドレスを示す情報を更新するので、セグメント（Ｌ２のネットワーク）を超えている場合であっても、移動後も通信ができるようになる。例えば、業務に影響を出さずに、ルーティング機能を提供する仮想マシンの再配置ができるようになる。
【００８５】
図１１は、追加実行処理に係るフローチャートの一例を示す図である。
【００８６】
配置処理部４３０は、システム全体として、ルーティング機能を提供する仮想マシンを追加するための十分な物理リソースがあるか否かを判定する（ステップＳ７１）。例えば、仮想マシン情報・配置情報４２２および物理リソース情報４２３に基づいて、ルーティング機能を提供する仮想マシンを追加するための十分な物理リソースを有する物理ホストがあるか否かを判定する。配置処理部４３０は、十分な物理リソースがある（配置可能な物理ホストがある）と判定した場合、ステップＳ７２に処理を移し、十分な物理リソースがない（配置可能な物理ホストがない）と判定した場合、追加実行処理を終了する。
【００８７】
ステップＳ７２では、配置処理部４３０は、ルーティング機能を提供する既存の仮想マシンを通る通信（通信情報４２１）から、新しく追加するルーティング機能を提供する新規の仮想マシンに割り振られる通信を仮定する。
【００８８】
例えば、図１４に示す通信情報であった場合、既存の仮想マシン（本例では、ＶＭｒ１２２）と、新規の仮想マシンとで、パケット数が平準化するように振り分けを仮定する。
【００８９】
配置処理部４３０は、新しく追加するルーティング機能を提供する新規の仮想マシンを配置するために十分な物理リソースがある配置先に対し、仮定した通信から各配置先の通信コストを算出し、配置先を決定する（ステップＳ７３）。なお、配置先の決定方法については、ステップＳ４０と同じであるので、その説明を省略する。
【００９０】
配置処理部４３０は、決定した配置先に、ルーティング機能を提供する新規の仮想マシンを作成する（ステップＳ７４）。この際、配置先の物理ホストは、ＲＡＲＰにより、当該物理ホストが属する仮想ネットワーク内のハイパーバイザのＭＡＣアドレステーブルを更新する。また、配置処理部４３０は、ＩＰアドレス設定情報４２５に基づいて、ルーティング機能を提供する新規の仮想マシンにＩＰアドレスを新規に割り当て、ＩＰアドレス設定情報４２５を更新する。
【００９１】
配置処理部４３０は、各物理ホストに対し、物理ホスト情報を取得するスクリプトを実行してデータベース４２０を更新し（ステップＳ７５）、追加実行処理を終了する。
【００９２】
上述した処理では、配置処理部４３０は、算出した全ての通信コストが閾値を超えると判定した場合、ルーティング機能を提供する新規の仮想マシンを追加すると決定し、通信情報４２１に基づいてＶＭｒ１２２と新規の仮想マシンとで負荷が平準化するように通信を仮定する。また、配置処理部４３０は、仮想マシン情報・配置情報４２２と物理リソース情報４２３とに基づいて新規の仮想マシンを配置可能な物理ホストを選定する。また、配置処理部４３０は、通信情報４２１と仮想マシン情報・配置情報４２２に含まれる配置情報と経路情報４２４とに基づいて、選定した物理ホストに新規の仮想マシンを配置すると仮定した場合の通信コストを算出する。かかる処理によれば、通信状況および通信経路に応じた最適な配置先を決定できるようになる。
【００９３】
上述した構成によれば、通信性能を向上することができる。
【００９４】
（２）他の実施の形態
なお上述の実施の形態においては、本発明を計算機システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の計算機システム、計算機などに広く適用することができる。
【００９５】
また上述の実施の形態においては、１つのハイパーバイザには、１つの仮想マシンが設けられる場合について述べたが、本発明はこれに限らず、１つのハイパーバイザには、複数の仮想マシンが設けられていてもよい。
【００９６】
また上述の実施の形態においては、管理サーバ４００が通信情報および物理ホスト情報を受信する場合について述べたが、本発明はこれに限らず、管理サーバ４００が通信情報および物理ホスト情報を取得するようにしてもよい。
【００９７】
また上述の実施の形態においては、配置最適化処理が定期的に行われる場合について述べたが、本発明はこれに限らず、予め指定された配置の見直しのタイミング（指定の時間帯、指定の曜日、その他のタイミング）に行われるようにしてもよい。
【００９８】
また上述の実施の形態においては、ＶＭｒ１２２のホップ数を「１」として通信コストを算出する場合について述べたが、本発明はこれに限らず、ＶＭｒ１２２のホップ数を「０」として通信コストを算出してもよいし、ＶＭｒ１２２のホップ数を「２」として通信コストを算出してもよいし、ＶＭｒ１２２のホップ数をその他の値として通信コストを算出してもよい。
【００９９】
また上述の実施の形態においては、配置先を決定し、決定した配置先の通信コストが閾値を超えているかを判定する場合について述べたが、本発明はこれに限らず、算出された各通信コストが閾値を超えているか否かを判定し、超えていない通信コストがある場合、最も低い通信コストの物理ホストを配置先として決定するようにしてもよいし、閾値より低い通信コストの物理ホストをユーザが選択し、選択された物理ホストを配置先として決定するようにしてもよい。
【０１００】
また上述の実施の形態においては、仮想ネットワークについては、仮想ネットワーク５０１が設けられる場合について述べたが、本発明はこれに限らず、仮想ネットワーク５０１とは異なる他の仮想ネットワークが設けられていてもよい。この場合、仮想ネットワーク間は、仮想ルータ（ＶＭｒ１２２であってもよいし、ＶＭｒ１２２とは異なるルーティング機能を提供する仮想マシンであってもよいし、ハイパーバイザに設けられるルーティング機能を提供する分散ルータであってもよい。）を介して通信が行われる。
【０１０１】
また上述の実施の形態においては、ＶＭｒ１２２を通る通信情報を例に挙げて説明したが、本発明はこれに限らず、例えば、ルーティング機能を提供する仮想マシンを初めて追加する場合、分散ルータを通る通信情報を用いてもよい。
【０１０２】
また上述の実施の形態においては、ＶＭａ１１２、ＶＭｒ１２２、ＶＭｂ１３２については、同じポートグループ（仮想ポートのグループ）が設定されていてもよい。この際、１つのポートグループにルーティング機能を提供する既存の仮想マシンを１つのみ設定可能な制約条件があってもよい。
【０１０３】
制約条件がある場合、配置処理部４３０は、制約条件を満たす物理ホスト（例えば、ＶＭｒ１２２が属するポートグループを特定し、当該ポートグループの物理ホスト）の中から、ＶＭｒ１２２を配置するために十分な物理リソースがある配置先を選定する。
【０１０４】
また、制約条件がある場合、配置処理部４３０は、当該制約条件を満たし、かつ、既存の仮想マシンと、新規の仮想マシンとで、パケット数が平準化するように振り分けを仮定する。この際、配置処理部４３０は、制約条件を満たす物理ホスト（新規の仮想マシンが属するポートグループを特定し、当該ポートグループの物理ホスト）の中から、新規の仮想マシンを配置するために十分な物理リソースがある配置先を選定する。
【０１０５】
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１０６】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【符号の説明】
【０１０７】
１……計算機システム、１１０……物理ホストＡ、１１１……ハイパーバイザＡ、１１２……ＶＭａ、１２０……物理ホストＢ、１２１……ハイパーバイザＢ、１２２……ＶＭｒ、１２３……通信状況確認部、１３０……物理ホストＣ、１３１……ハイパーバイザＣ、１３２……ＶＭｂ、２１０……Ｌ３スイッチＡ、２２０……Ｌ３スイッチＢ、２３０……Ｌ３スイッチＣ、２４０……Ｌ３スイッチＤ、３１０……物理マシンＡ、３２０……物理マシンＢ、４００……管理サーバ、４１０……情報取得部、４２０……データベース、４３０……配置処理部。
【図１】
2019208192.tif 000003
【図２】
2019208192.tif 000004
【図３】
2019208192.tif 000005
【図４】
2019208192.tif 000006
【図５】
2019208192.tif 000007
【図６】
2019208192.tif 000008
【図７】
2019208192.tif 000009
【図８】
2019208192.tif 000010
【図９】
2019208192.tif 000011
【図１０】
2019208192.tif 000012
【図１１】
2019208192.tif 000013
【図１２】
2019208192.tif 000014
【図１３】
2019208192.tif 000015
【図１４】
2019208192.tif 000016