(57)【特許請求の範囲】
【請求項１】
拠点間で仮想マシンのマイグレーションを実行する管理装置であって、
前記拠点それぞれに設置され、前記仮想マシンがユーザ端末とデータ通信を行う際に経由するルータにアクセスし、前記拠点それぞれのルータから、当該拠点のルータが中継する各仮想マシンへの通信セッション数を取得するセッション取得部と、
前記拠点の組み合わせごとに、前記組み合わせの拠点間の距離を示した拠点間距離情報を記憶する記憶部と、
前記拠点ごとの前記仮想マシンへの通信セッション数に、前記拠点間距離情報に示される当該拠点から他の拠点それぞれまでの距離に応じた重み付けを行うことで、前記拠点ごとに、当該拠点に当該仮想マシンが設置された場合の通信コストを計算するコスト計算部と、
前記仮想マシンのマイグレーション先として、前記計算された通信コストが最小となる拠点を当該仮想マシンのマイグレーション先として選択するマイグレーション決定部と、
前記選択した拠点へ、当該仮想マシンをマイグレーションさせるマイグレーション実行部とを備えることを特徴とする管理装置。 
【請求項２】
前記記憶部は、さらに、
前記拠点それぞれから前記ユーザ端末が設置されるユーザ拠点それぞれまでの距離を示した情報を記憶し、
前記コスト計算部は、前記拠点ごとの前記仮想マシンへの通信セッション数に、当該拠点から前記ユーザ拠点それぞれまでの距離に応じた重み付けを行うことで、前記拠点ごとに、当該拠点に当該仮想マシンが設置された場合の通信コストを計算することを特徴とする請求項１に記載の管理装置。 
【請求項３】
前記拠点間の距離、または、前記拠点から前記ユーザ拠点までの距離は、前記拠点に設置されるルータ間のホップ数であることを特徴とする請求項２に記載の管理装置。 
【請求項４】
前記マイグレーションが実行された仮想マシンに対し、当該仮想マシンが外部装置とデータ通信を行う際に経由するルータのアドレスとして、前記マイグレーション先の拠点のルータのアドレスを設定するアドレス設定部をさらに備えることを特徴とする請求項１ないし請求項３のいずれか１項に記載の管理装置。 
【請求項５】
拠点間で仮想マシンのマイグレーションを実行する管理装置と、前記拠点に設置され、前記仮想マシンが外部装置とデータ通信を行う際に経由するルータとを有する通信システムであって、
前記管理装置は、
前記拠点それぞれに設置され、前記仮想マシンがユーザ端末とデータ通信を行う際に経由するルータにアクセスし、前記拠点それぞれのルータから、当該拠点のルータが中継する各仮想マシンへの通信セッション数を取得するセッション取得部と、
前記拠点の組み合わせごとに、前記組み合わせの拠点間の距離を示した拠点間距離情報を記憶する記憶部と、
前記拠点ごとの前記仮想マシンへの通信セッション数に、前記拠点間距離情報に示される当該拠点から他の拠点それぞれまでの距離に応じた重み付けを行うことで、前記拠点ごとに、当該拠点に当該仮想マシンが設置された場合の通信コストを計算するコスト計算部と、
前記仮想マシンのマイグレーション先として、前記計算された通信コストが最小となる拠点を当該仮想マシンのマイグレーション先として選択するマイグレーション決定部と、
前記選択した拠点へ、当該仮想マシンをマイグレーションさせるマイグレーション実行部とを備え、
前記ルータは、
当該ルータが中継する仮想マシンへの通信セッション数を示したセッション情報を保持することを特徴とする通信システム。 
【請求項６】
拠点間で仮想マシンのマイグレーションを実行する管理装置が、
前記拠点それぞれに設置され、前記仮想マシンがユーザ端末とデータ通信を行う際に経由するルータにアクセスし、前記拠点それぞれのルータから、当該拠点のルータが中継する各仮想マシンへの通信セッション数を取得するステップと、
前記拠点の組み合わせごとに、前記組み合わせの拠点間の距離を示した拠点間距離情報を参照して、前記拠点ごとの前記仮想マシンへの通信セッション数に、前記拠点間距離情報に示される当該拠点から他の拠点それぞれまでの距離に応じた重み付けを行うことで、前記拠点ごとに、当該拠点に当該仮想マシンが設置された場合の通信コストを計算するステップと、
前記仮想マシンのマイグレーション先として、前記計算された通信コストが最小となる拠点を当該仮想マシンのマイグレーション先として選択するステップと、
前記選択した拠点へ、当該仮想マシンをマイグレーションさせるステップとを実行することを特徴とする管理方法。 
【請求項７】
拠点間で仮想マシンのマイグレーションを実行する管理装置に、
前記拠点それぞれに設置され、前記仮想マシンがユーザ端末とデータ通信を行う際に経由するルータにアクセスし、前記拠点それぞれのルータから、当該拠点のルータが中継する各仮想マシンへの通信セッション数を取得するステップと、
前記拠点の組み合わせごとに、前記組み合わせの拠点間の距離を示した拠点間距離情報を参照して、前記拠点ごとの前記仮想マシンへの通信セッション数に、前記拠点間距離情報に示される当該拠点から他の拠点それぞれまでの距離に応じた重み付けを行うことで、前記拠点ごとに、当該拠点に当該仮想マシンが設置された場合の通信コストを計算するステップと、
前記仮想マシンのマイグレーション先として、前記計算された通信コストが最小となる拠点を当該仮想マシンのマイグレーション先として選択するステップと、
前記選択した拠点へ、当該仮想マシンをマイグレーションさせるステップとを実行させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、通信システム、管理方法、および、管理プログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングが普及し、データセンタに設置される物理サーバのリソースを用いて仮想環境を構築して、ユーザに各種サービスを提供することが行われている。また、仮想スイッチを用いて、異なるデータセンタ間を跨ったＬ２ネットワーク構築も行われている。
【０００３】
例えば、部門サーバ、経理サーバ、出退勤管理サーバ、ファイルサーバなどを仮想マシン（以下、ＶＭ（Virtual  Machine）と記載する場合がある）によって実現する企業（Ｚ）を例にして説明する。企業（Ｚ）では、拠点（札幌）のデータセンタ（Ｘ）で仮想マシン（Ａ）と仮想マシン（Ｂ）とを動作させ、拠点（福岡）のデータセンタ（Ｙ）で仮想マシン（Ｃ）と仮想マシン（Ｄ）とを動作させる。そして、Open  vSwitchなどによる仮想スイッチを用いて、データセンタ（Ｘ）とデータセンタ（Ｙ）とを仮想Ｌ２ネットワークで接続する。
【０００４】
このようにして、企業（Ｚ）では、異なるデータセンタで動作して各サービスを提供する仮想マシン間の通信を実現することで、各拠点にいる社員に対して、拠点に依存することなく、各種サービスの提供を行う。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】石井久治、上野和風、田上啓介、飯田浩二、藤田智成、森田和孝著、「オープンソースlaaS  クラウド基盤OpenStack」、ＮＴＴ技術ジャーナルVol.23、No.8、2011.
【非特許文献２】北爪秀雄、小山高明、田島佳武、岸寿春、井上朋子著、「クラウドサービスを支えるネットワーク仮想化技術」、ＮＴＴ技術ジャーナルVol.23、No.10、2011.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、各拠点の仮想マシンは、複数のユーザ端末に利用されることもある。このような場合において、拠点（福岡）のデータセンタ（Ｙ）の仮想マシン（Ｃ）を利用する拠点（福岡）のユーザ端末数よりも、拠点（札幌）のユーザ端末数の方が多かったとき、遠回りの経路でアクセスしなければならないユーザ端末の数が多くなる。つまり、通信遅延の大きなユーザ端末が多くなり、ネットワーク全体としてのサービスの品質が低下するおそれがある。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、ネットワーク全体で見た場合のユーザ端末の通信遅延の合計を低減することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、本発明は、拠点間で仮想マシンのマイグレーションを実行する管理装置であって、前記拠点それぞれに設置され、前記仮想マシンがユーザ端末とデータ通信を行う際に経由するルータにアクセスし、前記拠点それぞれのルータから、当該拠点のルータが中継する各仮想マシンへの通信セッション数を取得するセッション取得部と、前記取得した各拠点のルータが中継する仮想マシンへの通信セッション数を参照して、前記仮想マシンのマイグレーション先として、当該仮想マシンへの通信セッション数が最も多い拠点を選択するマイグレーション決定部と、前記選択した拠点へ、当該仮想マシンをマイグレーションさせるマイグレーション実行部とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ネットワーク全体で見た場合のユーザ端末の通信遅延の合計を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、各実施形態に係る通信システムの全体構成例を示す図である。
【図２】図２は、図１の通信システムにおけるマイグレーションの例を示す図である。
【図３】図３は、仮想マシン（ＶＭ）を動作させる物理サーバの階層構造を示す図である。
【図４】図４は、第１の実施形態のクラウドコントローラの機能構成を示す機能ブロック図である。
【図５】図５は、ＶＭ管理テーブルの例を示す図である。
【図６】図６は、ルータ管理テーブルの例を示す図である。
【図７】図７は、セッション情報のうち、拠点（福岡）のルータから取得されたセッション情報の例を示す図である。
【図８】図８は、セッション情報のうち、拠点（札幌）のルータから取得されたセッション情報の例を示す図である。
【図９】図９は、第１の実施形態のクラウドコントローラの処理手順を示すフローチャートである。
【図１０】図１０は、第２の実施形態のクラウドコントローラを含む通信システムの構成例を示す図である。
【図１１】図１１は、第２の実施形態のクラウドコントローラの機能構成を示す機能ブロック図である。
【図１２】図１２は、拠点間距離情報の例を示す図である。
【図１３】図１３は、第２の実施形態のクラウドコントローラの処理手順を示すフローチャートである。
【図１４】図１４は、ユーザ拠点−データセンタ間距離情報の例を示す図である。
【図１５】図１５は、管理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
次に、図面を参照しながら、本発明の実施形態を第１の実施形態および第２の実施形態に分けて説明する。第１の実施形態は、通信システムが２つの拠点から構成され、クラウドコントローラが、仮想マシン（ＶＭ）を、２つの拠点のうち当該ＶＭへの通信セッション数が多い方の拠点に設置することを特徴とする。
【００１２】
（第１の実施形態）
（全体構成）
図１に示すように、第１の実施形態の通信システムは、例えば企業の拠点間をネットワークで接続するシステムであり、それぞれデータセンタを有する拠点（福岡）１と拠点（札幌）１１とクラウドコントローラ（管理装置）３０とがインターネットなどのネットワーク２０で接続される。このネットワーク２０は、インターネットの他、ＶＰＮ（Virtual  Private  Network）、広域イーサネット、モデムや専用線を用いることができる。
【００１３】
クラウドコントローラ３０は、拠点間でのＶＭのマイグレーションの実行や、このマイグレーション実行に伴うＶＭの設定変更を行う。また、クラウドコントローラ３０は、各拠点のルータにアクセスし、ルータが中継する各ＶＭへの通信セッション数を計測し、この計測された通信セッション数に基づき、各ＶＭをマイグレーションさせるか否かを判断する。
【００１４】
ユーザ端末１０は、拠点（福岡）１のデータセンタ２または拠点（札幌）１１のデータセンタ１２などで動作するＶＭにアクセスして、各種サービスを利用する端末装置であり、例えばノートパソコンやスマートフォンなどである。
【００１５】
なお、ユーザ端末１０は当該ユーザ端末１０が設置される場所から最も近いデータセンタのルータ経由でＶＭへアクセスするものとする。例えば、ユーザ端末１０Ａは、拠点（福岡）１のデータセンタ２のルータ４を経由して各ＶＭにアクセスする。すなわち、ユーザ端末１０は、各ＶＭにアクセスする際の経路として、当該ユーザ端末１０から位置的に近い拠点のデータセンタのルータを経由するように、ユーザ拠点内のルータに経路設定される、もしくは、ユーザ端末１０のルーティングテーブルに、当該ルータ経由で各ＶＭにアクセスするように経路設定されるものとする。なお、ユーザ端末１０の位置の把握には、例えば、ＧＰＳ（Global  Positioning  System）などのGeolocation技術を用いることが考えられる。
【００１６】
また、ユーザ端末１０がアクセス先のＶＭのＩＰアドレスを取得する方法としては、クラウドコントローラ３０や、このクラウドコントローラ３０と連携したサーバや、ＤＮＳ（Domain  Name  System）サーバから取得する方法が考えられる。
【００１７】
（拠点（福岡））
拠点（福岡）１は、データセンタ２を有する。データセンタ２は、１台以上の物理サーバが設置され、物理サーバの物理リソースを用いて情報処理装置であるＶＭを動作させるデータセンタである。なお、物理リソースとしては、通信インタフェース、プロセッサ、メモリ、ハードディスクなどである。具体的には、データセンタ２は、ルータ４、ＯＶＳ（Open  vSwitch）５、ＶＭ（Ａ）、ＶＭ（Ｂ）を有する。
【００１８】
ルータ４は、企業内ネットワークにおいて、拠点（福岡）１のデータセンタ２と拠点（札幌）１１のデータセンタ１２とを同じネットワークセグメント２２で分割するルータである。すなわち、ルータ４は、ユーザ端末１０と各データセンタの各ＶＭとのデータ通信を中継する。なお、このルータ４は、仮想マシンで実現されてもよく、物理装置で実現されてもよい。
【００１９】
ＯＶＳ５は、各データセンタの各ルータと各ＶＭとを中継するスイッチであり、データセンタ１２のＯＶＳ１５と協働して、データセンタ間を仮想Ｌ２ネットワーク２１で接続する仮想スイッチである。例えば、ＯＶＳ５は、ルータ４、ＶＭ（Ａ）、ＶＭ（Ｂ）、データセンタ１２のＯＶＳ１５のそれぞれと接続される。
【００２０】
ＶＭ（Ａ）、ＶＭ（Ｂ）は、例えばＷｅｂサーバやＤＢサーバなどを実行する仮想マシンである。これらのＶＭは、ＯＶＳ５を介して、ユーザ端末１０との通信を実行する。
【００２１】
（拠点（札幌））
拠点（札幌）１１は、データセンタ１２を有する。データセンタ１２は、１台以上の物理サーバが設置され、物理サーバの物理リソースを用いて仮想マシンを動作させるデータセンタである。具体的には、データセンタ１２は、ルータ１４、ＯＶＳ１５、ＶＭ（Ｃ）、ＶＭ（Ｄ）を有する。
【００２２】
ルータ１４は、企業内ネットワークにおいて、拠点（福岡）１のデータセンタ２と拠点（札幌）１１のデータセンタ１２とを同じネットワークセグメント２２で分割するルータである。すなわち、ルータ１４は、外部装置と各データセンタの各ＶＭとのデータ通信を中継する。なお、このルータ１４も、仮想マシンで実現されてもよく、物理装置で実現されてもよい。
【００２３】
ＯＶＳ１５は、各データセンタの各ルータと各ＶＭとを中継するスイッチであり、データセンタ２のＯＶＳ５と協働して、データセンタ間を仮想Ｌ２ネットワーク２１で接続する仮想スイッチである。例えば、ＯＶＳ１５は、ルータ１４、ＶＭ（Ｃ）、ＶＭ（Ｄ）、データセンタ２のＯＶＳ５のそれぞれと接続される。
【００２４】
ＶＭ（Ｃ）、ＶＭ（Ｄ）は、例えばＷｅｂサーバやＤＢサーバなどを実行する仮想マシンである。これらのＶＭは、ＯＶＳ１５を介して、データセンタ外の外部装置（ユーザ端末１０など）と通信を実行する。
【００２５】
このようなシステムにおいて、各ユーザ端末１０は、自身のユーザ端末１０が設置される場所から最も近いルータ経由でＶＭへの通信を実行する。例えば、拠点（福岡）１のユーザ端末１０Ａは、拠点（福岡）１のルータ４経由でＶＭ（Ｂ）への通信を実行する（符号１０１に示す下り通信参照）。また、拠点（札幌）１１のユーザ端末１０Ｂ，１０Ｃはルータ１４経由でＶＭ（Ｂ）への通信を実行する（符号１０２に示す下り通信参照）。一方、ＶＭ側から外部装置（例えば、ユーザ端末１０）への通信を実行する際には、当該ＶＭの設置される拠点のデータセンタのルータ経由で通信を実行する。例えば、ＶＭ（Ｂ）は、ルータ４経由で、ユーザ端末１０Ａ，１０Ｂ，１０Ｃへの通信を実行する（符号１０３および符号１０４に示す上り通信参照）。
【００２６】
（概要）
上記した通信システムの構成におけるクラウドコントローラ３０の動作概要を説明する。まず、クラウドコントローラ３０は、各拠点のルータにアクセスし、ユーザ端末１０から各ＶＭへの通信セッション数を計測する。例えば、クラウドコントローラ３０は、拠点（福岡）１のルータ４にアクセスし、ＶＭ（Ｂ）への通信セッション数「１」を取得する。また、クラウドコントローラ３０は、拠点（札幌）１１のルータ１４にアクセスし、ＶＭ（Ｂ）への通信セッション数「２」を取得する。
【００２７】
ここでクラウドコントローラ３０は、各拠点の各ＶＭの通信セッション数を取得すると、ＶＭごとに、当該ＶＭへの拠点ごとの通信セッション数をカウントし、どちらの拠点の通信セッション数が多いかを判断する。
【００２８】
例えば、クラウドコントローラ３０は、ＶＭ（Ｂ）への通信セッションのうち、拠点（福岡）１のルータ４を経由する通信セッション数は「１」であり、拠点（札幌）１１のルータ１４を経由する通信セッション数は「２」なので、拠点（札幌）１１の方が通信セッション数が多いと判断する。
【００２９】
そして、クラウドコントローラ３０は当該ＶＭの設置される拠点の通信セッション数よりも、他の拠点の通信セッション数の方が多いとき、当該ＶＭを他方の拠点にマイグレーションさせる。図２は、図１の通信システムにおけるマイグレーションの例を示す図である。例えば、クラウドコントローラ３０は、図２に示すように、ＶＭ（Ｂ）を、ＶＭ（Ｂ）への通信セッション数が多い方の拠点である拠点（札幌）１１のデータセンタ１２へマイグレーションさせる。これにより、ＶＭ（Ｂ）への下り方向の通信は符号２０１および符号２０２に示す経路に変更される。
【００３０】
このようにすることで、通信システムにおいて、ＶＭへの下り通信で遠回りの経路をとる通信セッション数を低減することができる。つまり、通信システムにおいて、通信遅延が大きいユーザ端末１０の数を低減することができる。例えば、図１に示した例でいうと、ＶＭ（Ｂ）への下り通信において、遠回りの経路をとる通信セッションは符号１０２に示す２本であるが、図２に示すように、ＶＭ（Ｂ）を拠点（札幌）１１のデータセンタ１２へマイグレーションさせることで、遠回りの経路をとる通信セッションを符号２０１に示す１本に減らすことができる。
【００３１】
（階層構造）
図３は、ＶＭを動作させる物理サーバの階層構造を示す図である。なお、ここでは、一例として１台の物理サーバでＶＭを動作させる例を説明するが、これに限定されるものではなく、複数台の物理サーバを用いて動作させることができる。
【００３２】
データセンタ２では、物理サーバ６が動作し、データセンタ１２では、物理サーバ１６が動作する。各物理サーバは、一般的なサーバ装置であり、ハードウェア、プロセッサ、メモリなどを有する。
【００３３】
データセンタ２の物理サーバ６は、ハードウェア６ａ上でハイパーバイザなどの仮想化ソフトウェア６ｂを動作させて、仮想環境を提供する。仮想化ソフトウェア６ｂは、仮想スイッチ６ｃを動作させる。
【００３４】
同様に、データセンタ１２の物理サーバ１６は、ハードウェア１６ａ上でハイパーバイザなどの仮想化ソフトウェア１６ｂを動作させて、仮想環境を提供する。仮想化ソフトウェア１６ｂは、仮想スイッチ１６ｃを動作させる。
【００３５】
ここで、仮想スイッチ６ｃと仮想スイッチ１６ｃは、例えばOpen  vSwitch、Open  Flow、KVMなどを用いて実現され、仮想Ｌ２ネットワーク２１を構築する。すなわち、異なるデータセンタ間を仮想ネットワークで通信可能に接続する。
【００３６】
そして、各物理サーバの各仮想化ソフトウェアは、仮想Ｌ２ネットワーク２１を利用可能な状態で仮想マシンを動作させる。具体的には、仮想化ソフトウェア６ｂは、物理サーバ６の物理リソースを用いてＶＭ（Ａ）とＶＭ（Ｂ）とを動作させ、仮想スイッチ６ｃを経由して、各ＶＭを仮想Ｌ２ネットワーク２１に接続する。同様に、仮想化ソフトウェア１６ｂは、物理サーバ１６の物理リソースを用いてＶＭ（Ｃ）とＶＭ（Ｄ）とを動作させ、仮想スイッチ１６ｃを経由して、各ＶＭを仮想Ｌ２ネットワーク２１に接続する。
【００３７】
（構成）
次に、クラウドコントローラ３０の構成について説明する。図４は、第１の実施形態のクラウドコントローラの機能構成を示す機能ブロック図である。図４に示すように、クラウドコントローラ３０は、通信制御部３１、記憶部３２、制御部３３を有する。
【００３８】
通信制御部３１は、他の装置の通信を制御する処理部である。例えば、通信制御部３１は、クラウドコントローラ３０やＶＭとの間で行われる通信を制御する。
【００３９】
記憶部３２は、メモリやハードディスクなどの記憶装置であり、ＶＭ管理テーブル３２ａ、ルータ管理テーブル３２ｂを保持する。また、記憶部３２は、セッション情報３２ｃを記憶する領域を備える。
【００４０】
ＶＭ管理テーブル３２ａは、ＶＭの識別情報ごとに、当該ＶＭのＩＰアドレスと、当該ＶＭが設置される拠点とを対応付けて示した情報である。図５は、ＶＭ管理テーブルの例を示す図である。例えば、図５に示すＶＭ管理テーブル３２ａにおいて、ＶＭ（Ａ）のＩＰアドレスは「xxx.yyy.zzz.2」であり、このＶＭ（Ａ）が設置される拠点は「福岡」であることを示す。
【００４１】
ルータ管理テーブル３２ｂは、ルータの識別情報ごとに、当該ルータのＩＰアドレスと、当該ルータが設置される拠点とを対応付けて示した情報である。図６は、ルータ管理テーブルの例を示す図である。例えば、図６に示すルータ管理テーブル３２ｂにおいて、ルータ４のＩＰアドレスは「xxx.yyy.zzz.8」であり、このルータ４が設置される拠点は「福岡」であることを示す。
【００４２】
このＶＭ管理テーブル３２ａおよびルータ管理テーブル３２ｂは、制御部３３が各ルータから各ＶＭの通信セッション数を取得する際に参照される。
【００４３】
セッション情報３２ｃは、各ルータから取得される各ＶＭへの通信セッション数を示した情報である。図７は、セッション情報のうち、拠点（福岡）のルータから取得されたセッション情報の例を示す図である。また、図８は、セッション情報のうち、拠点（札幌）のルータから取得されたセッション情報の例を示す図である。このセッション情報は、例えば、図７、図８に示すように、ＶＭの識別情報ごとに、当該ＶＭのＩＰアドレスと、当該ＶＭへの通信セッション数とが示される。例えば、図７に示すセッション情報は、ＶＭ（Ｂ）への通信セッション数は「１」であり、他のＶＭへの通信セッションは「０」であることを示す。また、図８に示すセッション情報は、ＶＭ（Ｂ）への通信セッション数は「２」であり、他のＶＭへの通信セッションは「０」であることを示す。
【００４４】
制御部３３は、プロセッサなどの電子回路であり、セッション取得部３３ａ、カウント部３３ｂ、マイグレーション決定部３３ｃ、マイグレーション実行部３３ｄ、アドレス設定部３３ｅ、管理テーブル更新部３３ｆを備える。
【００４５】
セッション取得部３３ａは、各拠点のルータ（拠点内のＶＭがユーザ端末１０などの外部装置とデータ通信を行う際に経由するデフォルトゲートウェイとなるルータ）にアクセスし、当該ルータが中継する各ＶＭへの通信セッション数を取得する。例えば、セッション取得部３３ａは、ルータ管理テーブル３２ｂに示される各ルータにアクセスし、ＶＭ管理テーブル３２ａに示される各ＶＭのＩＰアドレスをキーとして、当該ＶＭの通信セッション数を取得する。
【００４６】
カウント部３３ｂは、各ルータから取得した各ＶＭへの通信セッション数を参照して、ＶＭごとに、当該ＶＭへの拠点ごとの通信セッション数をカウントする。例えば、セッション取得部３３ａがルータ４およびルータ１４から取得したＶＭ（Ｂ）の通信セッション数（図７および図８）を参照して、ＶＭ（Ｂ）の拠点（福岡）１の通信セッション数「１」、拠点（札幌）１１の通信セッション数「２」をカウントする。
【００４７】
マイグレーション決定部３３ｃは、ＶＭをマイグレーションさせるか否かの決定、および、ＶＭをマイグレーションさせる場合のマイグレーション先の選択（決定）を行う。まず、マイグレーション決定部３３ｃは、カウント部３３ｂによるカウント結果を用いて、現在、当該ＶＭが設置される拠点が、当該ＶＭへの通信セッション数が多い方の拠点であるか否かを判断する。例えば、前記した例でいうと、ＶＭ（Ｂ）への通信セッション数の多い方の拠点（通信セッション数「２」の拠点）は拠点（札幌）１１である。しかし、ＶＭ管理テーブル３２ａにも示されるとおり、ＶＭ（Ｂ）が現在設置される拠点は、拠点（福岡）１であるので、マイグレーション決定部３３ｃは、ＶＭ（Ｂ）を拠点（札幌）１１へマイグレーションさせると決定する。
【００４８】
なお、マイグレーション決定部３３ｃは、現在、当該ＶＭが設置される拠点が、２つの拠点のうち、当該ＶＭへの通信セッション数が多い方の拠点であればマイグレーションは実行しないと判断する。
【００４９】
マイグレーション実行部３３ｄは、マイグレーション決定部３３ｃにより決定されたマイグレーション先の拠点へＶＭをマイグレーションさせる。例えば、マイグレーション実行部３３ｄは、ＶＭ（Ｂ）を拠点（札幌）１１へマイグレーションさせる。また、マイグレーション実行部３３ｄは、ＶＭのマイグレーション実行後、ＶＭ管理テーブル３２ａにおける当該ＶＭの拠点をマイグレーション先の拠点に変更する。
【００５０】
アドレス設定部３３ｅは、マイグレーション実行部３３ｄによってＶＭのマイグレーションが実行された後に、当該ＶＭが外部装置へデータ通信を行う際に経由するルータ（デフォルトゲートウェイ）のアドレスとして、マイグレーション先の拠点のルータのアドレスを設定する。
【００５１】
例えば、拠点（福岡）１のルータ４のＩＰアドレスが「xxx.yyy.zzz.8」であり、拠点（札幌）１１のルータ１４のＩＰアドレスが「xxx.yyy.zzz.9」であった場合において、ＶＭ（Ｂ）が拠点（福岡）１から拠点（札幌）１１へマイグレーションされたとき、ＶＭ（Ｂ）のデフォルトゲートウェイのアドレスを「xxx.yyy.zzz.9」に変更する。このようにすることで、ＶＭのマイグレーション実行後、ＶＭはマイグレーション先の拠点のルータをデフォルトゲートウェイとして利用する。これにより、ＶＭからユーザ端末１０へのデータ通信において、通信遅延を低減することができる。
【００５２】
管理テーブル更新部３３ｆは、ＶＭのマイグレーションが実行されたとき、ＶＭ管理テーブル３２ａにおける、当該ＶＭの設置される拠点をマイグレーション先の拠点に変更する。
【００５３】
（処理手順）
次に、図９を用いて、クラウドコントローラ３０の処理手順を説明する。図９は、第１の実施形態のクラウドコントローラの処理手順を示すフローチャートである。なお、以下の処理は、例えば、事前に設定した時間間隔、事前に設定した時刻、または、ＶＭのマイグレーションから、所定時間経過したことをトリガとして実行される。
【００５４】
まず、クラウドコントローラ３０のセッション取得部３３ａは、各拠点のルータにアクセスし、各ＶＭへの通信セッション数を取得する（Ｓ１）。例えば、セッション取得部３３ａは、拠点（福岡）１のルータ４および拠点（札幌）１１のルータ１４それぞれからＶＭ（Ａ）〜ＶＭ（Ｄ）への通信セッション数を取得し、記憶部３２のセッション情報３２ｃに格納する。そして、カウント部３３ｂは、取得した通信セッション数を参照して、ＶＭそれぞれについて拠点ごとの当該ＶＭへの通信セッション数をカウントする（Ｓ２）。例えば、カウント部３３ｂは、カウントの結果として、ＶＭ（Ａ）への通信セッション数は、拠点（福岡）１も拠点（札幌）１１も「０」であり、ＶＭ（Ｂ）への通信セッション数は、拠点（福岡）１は「１」であり、拠点（札幌）１１は「２」であるという情報を得る。
【００５５】
そして、マイグレーション決定部３３ｃは、Ｓ２でカウントした結果を用いて、ＶＭごとに、当該ＶＭの設置される拠点が、２つの拠点のうち、当該ＶＭへの通信セッション数が多い方の拠点か否かを判断する（Ｓ３）。ここで、マイグレーション決定部３３ｃは、ＶＭの設置される拠点が当該ＶＭへの通信セッション数が多い方の拠点ではないと判断したとき（Ｓ３でＮｏ）、当該ＶＭを通信セッション数が最も多い拠点へマイグレーションさせると決定し、マイグレーション実行部３３ｄは当該拠点へのマイグレーションを実行する（Ｓ４）。例えば、前記した例でいうと、ＶＭ（Ｂ）への通信セッション数は、拠点（福岡）１は「１」であり、拠点（札幌）１１は「２」なので、マイグレーション決定部３３ｃは、ＶＭ（Ｂ）を拠点（札幌）１１へマイグレーションさせると決定する。そして、マイグレーション実行部３３ｄは、ＶＭ（Ｂ）の拠点（札幌）１１へのマイグレーションを実行する。
【００５６】
一方、当該ＶＭの設置される拠点が、当該ＶＭへの通信セッション数が多い方の拠点であると判断されたとき（Ｓ３でＹｅｓ）、マイグレーションは実行せず、処理を終了する。
【００５７】
そして、Ｓ４の後、アドレス設定部３３ｅは、マイグレーションが実行されたＶＭにおけるデフォルトゲートウェイのアドレスを、マイグレーション先の拠点のルータのアドレスに変更する（Ｓ５）。例えば、ＶＭ（Ｂ）の拠点（札幌）１１へのマイグレーションが実行されたとき、アドレス設定部３３ｅは、ルータ管理テーブル３２ｂを参照して、ＶＭ（Ｂ）のデフォルトゲートウェイのアドレスを、拠点（札幌）１１のルータ１４のアドレスに変更する。また、管理テーブル更新部３３ｆは、ＶＭのマイグレーションが実行されたとき、ＶＭ管理テーブル３２ａにおける、当該ＶＭの設置される拠点をマイグレーション先の拠点に変更する。例えば、管理テーブル更新部３３ｆは、ＶＭ管理テーブル３２ａにおける、ＶＭ（Ｂ）の設置される拠点を拠点（福岡）１から拠点（札幌）１１に変更する。
【００５８】
（第１の実施形態の効果）
このように、クラウドコントローラ３０は、当該ＶＭへの通信セッション数が多い方の拠点へＶＭをマイグレーションさせる。これにより、ＶＭとのデータ通信における通信遅延の大きいユーザ端末１０の数を低減することができる。例えば、前記した拠点（福岡）１のＶＭ（Ｂ）に対し、拠点（福岡）１のユーザ端末１０からのアクセスが多かったが、その後、拠点（札幌）１１のユーザ端末１０からのアクセスの方が多くなった場合に、このＶＭ（Ｂ）を拠点（札幌）１１にマイグレーションさせる。よって、通信システム全体としての通信遅延を低減できる。
【００５９】
なお、第１の実施形態において、通信システムは２つの拠点で構成される場合を例に説明したが、３つ以上の拠点で構成されていてもよい。この場合、クラウドコントローラ３０は、ＶＭのマイグレーション先として、当該ＶＭへの通信セッション数が最大の拠点を選択する。
【００６０】
（第２の実施形態）
第２の実施形態のクラウドコントローラ３０ａは、拠点間の距離と、各拠点におけるユーザ端末１０からＶＭへの通信セッション数（つまり当該ＶＭへのデータ通信を行うユーザ端末１０の数）とに基づき、拠点ごとに当該拠点にＶＭが設置された場合の通信コストを計算し、通信コストが最小となる拠点にＶＭを設置することを特徴とする。
【００６１】
図１０を用いてクラウドコントローラ３０ａの動作概要を説明する。図１０は、第２の実施形態のクラウドコントローラを含む通信システムの構成例を示す図である。なお、前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。
【００６２】
ここでは、システムが拠点Ｘ（福岡）１、拠点Ｙ（大阪）４１、拠点Ｚ（東京）５１の３つの拠点からなる場合を例に説明する。また、拠点Ｘ（福岡）１の付近のユーザ拠点Ａ（福岡）には、ユーザ端末１０Ａ，１０Ｄ，１０Ｅが設置され、拠点Ｙ（大阪）４１の付近のユーザ拠点Ｂ（大阪）には、ユーザ端末１０Ｆが設置され、拠点Ｚ（東京）５１の付近のユーザ拠点Ｃ（東京）にはユーザ端末１０Ｇ，１０Ｈが設置されるものとする。これらのユーザ端末１０は、当該ユーザ端末１０が設置されるユーザ拠点のルータ（図示省略）経由でネットワーク２０へ接続する。また、各拠点内のＯＶＳの図示は省略している。
【００６３】
拠点Ｘ（福岡）１は、データセンタ２を備え、拠点Ｙ（札幌）４１はデータセンタ４２を備え、拠点Ｚ（東京）５１は、データセンタ５２を備える。データセンタ２，４２，５２とネットワーク２０とを接続するルータはそれぞれルータ４，４４，５４である。また、各拠点間の距離は、図１２に示す距離であるものとする。例えば、図１２におけるＤＸＹは、拠点Ｘ（福岡）１と拠点Ｙ（大阪）４１との距離を示し、()内は距離の値（例えば、単位はｋｍ）を示す。
【００６４】
クラウドコントローラ３０ａは、拠点ごとに、各ＶＭへの通信コストを計算する。ここでの各ＶＭへの通信コストは、拠点ごとの当該ＶＭへの通信セッション数に、当該拠点から他の拠点への距離に応じた重み付けを行うことで計算される。例えば、拠点Ｘ（福岡）１、拠点Ｙ（大阪）４１、拠点Ｚ（東京）５１それぞれのＶＭへの通信セッション数ＳＸ，ＳＹ，ＳＺが、ＳＸ＝３、ＳＹ＝１，ＳＺ＝２であるとき、各拠点にＶＭを設置した場合の通信コストは、以下の式（１）に示す値となる。この中で最も通信コストが小さいのは、ＶＭを拠点Ｙ（大阪）４１に設置した場合である。よって、もしＶＭが拠点Ｙ（大阪）４１に設置されていなければ、クラウドコントローラ３０ａは、ＶＭを拠点Ｙ（大阪）４１へマイグレーションさせる。
【００６５】
拠点Ｘ（福岡）＝ＳＸ×ＤＸＸ＋ＳＹ×ＤＸＹ＋ＳＺ×ＤＸＺ＝２２５７
拠点Ｙ（大阪）＝ＳＸ×ＤＹＸ＋ＳＸ×ＤＹＸ＋ＳＺ×ＤＹＺ＝１９５５  …式（１）
拠点Ｚ（東京）＝ＳＸ×ＤＺＹ＋ＳＸ×ＤＺＸ＋ＳＹ×ＤＺＹ＝３０６４
【００６６】
なお、式（１）に示す各通信コストの値は、ユーザ拠点とデータセンタの設置される拠点とが同じ地域で、かつ近くに有る場合、すなわちＤＸＸ、ＤＹＹ、ＤＺＺが、ＤＸＹ、ＤＸＺ、ＤＹＸのオーダーに比べて非常に小さい場合、ＤＸＸ＝ＤＹＹ＝ＤＺＺ＝０と見なして計算した結果である。
【００６７】
（構成）
このようなクラウドコントローラ３０ａの構成について説明する。図１１は、第２の実施形態のクラウドコントローラの機能構成を示す機能ブロック図である。図１１に示すように、クラウドコントローラ３０ａの制御部３３は、コスト計算部３３ｇをさらに備える。また、記憶部３２は、各拠点間の距離を示した拠点間距離情報３２ｄをさらに備える。
【００６８】
コスト計算部３３ｇは、拠点ごとに、当該拠点に当該ＶＭが設置された場合の通信コストを計算する。通信コストは、前記したとおり、コスト計算部３３ｇが、カウント部３３ｂでカウントされた拠点ごとのＶＭへの通信セッション数に、拠点間距離情報３２ｄ（図１２参照）に示される当該拠点から他の拠点への距離に応じた重み付けを行うことで計算される。例えば、前記した式（１）に示すような、他の拠点（当該ＶＭが設置される拠点以外の拠点）から自拠点（当該ＶＭが設置される拠点）への通信セッション数と距離との積の和により計算される。
【００６９】
また、マイグレーション決定部３３ｃは、コスト計算部３３ｇにより計算された通信コストのうち、通信コストが最小となる拠点を、当該ＶＭを設置する拠点とする。つまり、現在ＶＭが設置される拠点が、通信コストが最小となる拠点とは異なるときには、マイグレーション決定部３３ｃは、当該拠点を当該ＶＭのマイグレーション先として選択する。
【００７０】
また、拠点間距離情報３２ｄは、各拠点間の距離を示した情報であり、例えば、各拠点のデータセンタ間の距離が用いられる。図１２は、拠点間距離情報の例を示す図である。この拠点間距離情報３２ｄは、図１２に示すように、拠点の組み合わせごとに、当該拠点間の距離を示した情報である。なお、この拠点間距離情報３２ｄにおける拠点間の距離は、各拠点に設置されるルータ間のホップ数を用いてもよい。この距離のパラメータは、クラウドコントローラ３０ａの管理者等が任意の値を設定するものとする。また、距離のパラメータに、ホップ数を用いる場合、クラウドコントローラ３０ａが、データセンタのルータからユーザ拠点のルータまでのホップ数を取得して、拠点間距離情報３２ｄに格納してもよい。
【００７１】
（処理手順）
次に、図１４を用いて、クラウドコントローラ３０ａの処理手順を説明する。図１４は、第２の実施形態のクラウドコントローラの処理手順を示すフローチャートである。なお、以下の処理も、第１の実施形態と同様に、事前に設定した時間間隔、事前に設定した時刻、または、ＶＭのマイグレーションから、所定時間経過したことなどをトリガとして実行される。
【００７２】
Ｓ１１およびＳ１２は、図９のＳ１およびＳ２と同様であるので説明を省略し、Ｓ１３から説明する。Ｓ１２の後、コスト計算部３３ｇは、拠点ごとに、当該拠点にＶＭを設置した場合の通信コストを計算する（Ｓ１３：拠点ごとの通信コスト計算）。具体的には、コスト計算部３３ｇは、カウント部３３ｂでカウントされた拠点ごとのＶＭへの通信セッション数に、拠点間距離情報３２ｄ（図１２参照）に示される当該拠点から他の拠点への距離に応じた重み付けを行うことで、拠点ごとのＶＭへの通信コストを計算する。
【００７３】
そして、マイグレーション決定部３３ｃは、Ｓ１３で計算した拠点ごとの通信コストの値に基づき、ＶＭが設置される拠点は、通信コストが最小の拠点か否かを判断する（Ｓ１４）。ここで、マイグレーション決定部３３ｃが、ＶＭの設置される拠点は、通信コストが最小の拠点ではないと判断したとき（Ｓ１４でＮｏ）、当該ＶＭを通信コストが最小の拠点へマイグレーションさせると決定し、マイグレーション実行部３３ｄは当該拠点へのマイグレーションを実行する（Ｓ１５）。その後、Ｓ１６の処理は、図９のＳ５と同様なので説明を省略する。
【００７４】
例えば、前記した例でいうと、ＶＭの通信コストが最小になる拠点は、拠点Ｙ（大阪）４１であるが、当該ＶＭが設置される拠点は拠点Ｘ（福岡）１であるので、当該ＶＭの拠点（大阪）４１へのマイグレーションを実行する。
【００７５】
一方、マイグレーション決定部３３ｃが、当該ＶＭの設置される拠点は、通信コストが最小の拠点であると判断されたとき（Ｓ１４でＹｅｓ）、マイグレーションは実行せず、処理を終了する。
【００７６】
（第２の実施形態の効果）
このようにクラウドコントローラ３０ａは、各拠点のユーザ端末１０からＶＭへの通信セッション数に加え、当該ＶＭへの通信距離の長さを考慮し、通信遅延を低減するような拠点にＶＭを設置するようにする。これにより、システム内の拠点が３箇所以上あるような場合でも、通信システム全体としての遅延時間を低減できる。
【００７７】
（システム構成など）
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７８】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７９】
（その他の実施形態）
また、前記した第２の実施形態において、通信システムのユーザ拠点とデータセンタの設置される拠点とが同じ地域にあっても距離が離れていて、その距離が無視できない場合、通信コストの計算に、各ユーザ拠点から各データセンタまでの距離をパラメータとして用いることも可能である。この場合、クラウドコントローラ３０ａのコスト計算部３３ｇは、前記した拠点間の距離に代えて、各ユーザ拠点から各データセンタまでの距離を示す情報（ユーザ拠点−データセンタ間距離情報）を用いる。このユーザ拠点−データセンタ間距離情報は、記憶部３２に格納される。
【００８０】
図１４は、ユーザ拠点−データセンタ間距離情報の例を示す図である。ユーザ拠点−データセンタ間距離情報は、例えば、図１４に示すように、データセンタの設置される拠点（データセンタ拠点）とユーザ拠点との組み合わせごとに、当該組み合わせにおけるデータセンタ拠点とユーザ拠点との間の距離を示した情報である。
【００８１】
例えば、図１４において、データセンタ拠点Ｘ（福岡）とユーザ拠点Ａ（福岡）との距離ＤＸＡは、３５（ｋｍ）であり、データセンタ拠点Ｘ（福岡）とユーザ拠点Ｂ（大阪）との距離ＤＸＢは、５０６（ｋｍ）であり、データセンタ拠点Ｘ（福岡）とユーザ拠点Ｃ（東京）との距離ＤＸＣは、９１３（ｋｍ）であることを示す。
【００８２】
ここで、コスト計算部３３ｇが、図１４に例示したユーザ拠点−データセンタ間距離情報を用いて、拠点Ｘ（福岡）１、拠点Ｙ（大阪）４１、拠点Ｚ（東京）５１それぞれのＶＭへの通信セッション数がＳＸ，ＳＹ，ＳＺが、ＳＸ＝３、ＳＹ＝１，ＳＺ＝２であるとき、各拠点にＶＭを設置した場合の通信コストは、以下の式（２）に示す値となる。
【００８３】
拠点Ｘ（福岡）＝ＳＸ×ＤＸＡ＋ＳＹ×ＤＸＢ＋ＳＺ×ＤＸＣ＝２４３７
拠点Ｙ（大阪）＝ＳＸ×ＤＹＡ＋ＳＹ×ＤＹＢ＋ＳＺ×ＤＹＣ＝２５２７  …式（２）
拠点Ｚ（東京）＝ＳＸ×ＤＺＡ＋ＳＹ×ＤＺＢ＋ＳＺ×ＤＺＣ＝３２３７
【００８４】
この中で最も通信コストが小さいのは、ＶＭを拠点Ｘ（福岡）１に設置した場合である。よって、もしＶＭが拠点（福岡）１に設置されていなければ、クラウドコントローラ３０ａは、ＶＭを拠点（福岡）１へマイグレーションさせる。
【００８５】
このようにクラウドコントローラ３０ａは、通信システムにおけるユーザ拠点とデータセンタの設置される拠点との距離を考慮して通信コストを計算する。よって、クラウドコントローラ３０ａは、通信システム全体としての遅延時間を低減するため、ＶＭをどの拠点（データセンタ）へマイグレーションすべきかを正確に判断することができる。
【００８６】
なお、第２の実施形態において、通信システムの拠点数が３つである場合の適用例を説明したが、拠点数は２つでもよいし、４つ以上であってもよい。
【００８７】
また、第１の実施形態および第２の実施形態において、クラウドコントローラ３０，３０ａは、ＶＭのマイグレーション実行後、当該ＶＭのデフォルトゲートウェイのアドレスをマイグレーション先のルータのアドレスに変更することとしたが、これに限定されない。
【００８８】
例えば、通信システムの各拠点のルータが、ユーザ端末１０向け、および、データセンタ向けにＮＡＴ（Network  Address  Translation）機能を持ち、ＶＭがユーザ端末１０からのパケットを返信する際には、当該パケットを中継した各拠点のルータへ返信する。そして、ＶＭからの返信パケットを受信したルータはＮＡＴを行い、当該パケットの送信元のユーザ端末１０へ返信パケットを送信する。このようにすることでもマイグレーション後のＶＭは、マイグレーション先の拠点のルータ経由でユーザ端末１０へパケットを送信することができる。
【００８９】
（プログラム）
また、上記実施形態に係るクラウドコントローラが実行する処理をコンピュータが実行可能な言語で記述した管理プログラムを作成することもできる。この場合、コンピュータが管理プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる管理プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された管理プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
【００９０】
図１５は、管理プログラムを実行するコンピュータを示す図である。図１５に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００９１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）などのブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００９２】
ここで、図１５に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００９３】
また、管理プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した制御部３３の実行する各ステップが記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【００９４】
また、管理プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００９５】
なお、管理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００などを介してＣＰＵ１０２０によって読み出されてもよい。あるいは、管理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）などのネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００９６】
また、例えば、一般的なクラウドコントローラに上記実施形態と同様の機能を実行させる場合には、クラウドコントローラが実行可能なプログラムに上記手順を記述し、クラウドコントローラに実行させることで、上記実施形態と同様の機能を実行させることもできる。つまり、クラウドコントローラのプロセッサが、上記手順が記述されたプログラムをメモリに展開して実行することで、同様の処理を実行することができる。また、Ｌ３スイッチなどに実行させる場合には、上記実施形態と同様の機能を実行させる回路を搭載したＬＳＩを、Ｌ３スイッチに搭載させることで、同様の処理を実行することができる。
【符号の説明】
【００９７】
１、１１、４１、５１  拠点
２、１２、４２、５２  データセンタ
４、１４、４４、５４  ルータ
５、１５  ＯＶＳ
１０（１０Ａ〜１０Ｈ）  ユーザ端末
２０    ネットワーク
２１    仮想Ｌ２ネットワーク
２２    ネットワークセグメント
３０、３０ａ  クラウドコントローラ
３１    通信制御部
３２    記憶部
３２ａ  ＶＭ管理テーブル
３２ｂ  ルータ管理テーブル
３２ｃ  セッション情報
３２ｄ  拠点間距離情報
３３    制御部
３３ａ  セッション取得部
３３ｂ  カウント部
３３ｃ  マイグレーション決定部
３３ｄ  マイグレーション実行部
３３ｅ  アドレス設定部
３３ｆ  管理テーブル更新部
３３ｇ  コスト計算部
【図１】
0006039517.tif 000002
【図２】
0006039517.tif 000003
【図３】
0006039517.tif 000004
【図４】
0006039517.tif 000005
【図５】
0006039517.tif 000006
【図６】
0006039517.tif 000007
【図７】
0006039517.tif 000008
【図８】
0006039517.tif 000009
【図９】
0006039517.tif 000010
【図１０】
0006039517.tif 000011
【図１１】
0006039517.tif 000012
【図１２】
0006039517.tif 000013
【図１３】
0006039517.tif 000014
【図１４】
0006039517.tif 000015
【図１５】
0006039517.tif 000016