(57)【要約】【課題】仮想マシンに適切なＭＴＵを設定できるようにする。【解決手段】コンピュータにより実行される通知方法は、（Ａ）あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ上記コンピュータ上で動作している仮想マシンを特定し、（Ｂ）特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量を通知する処理を含む。【選択図】図５
2015023329.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を含み、前記コンピュータに実行される通知方法。
【請求項２】
前記特定する処理において、
前記コンピュータ上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ前記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の前記最大伝送単位とを比較することで、前記最大伝送単位の変化を検出する
請求項１記載の通知方法。
【請求項３】
前記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される請求項１又は２記載の通知方法。
【請求項４】
前記コンピュータ上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される請求項１乃至３のいずれか１つ記載の通知方法。
【請求項５】
前記コンピュータ上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される請求項１乃至４のいずれか１つ記載の通知方法。
【請求項６】
前記コンピュータ上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ前記コンピュータ上で動作している、前記ある仮想マシン以外の仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される請求項１乃至５のいずれか１つ記載の通知方法。
【請求項７】
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を実行させるための通知プログラム。
【請求項８】
情報処理装置であって、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記情報処理装置上で動作している仮想マシンを特定する特定部と、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する通知部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンに対して通信のための設定を行うための技術に関する。
【背景技術】
【０００２】
Path MTU Discoveryは、経路上にあるリンクの最小のＭＴＵ（Maximum Transmission Unit：最大伝送単位）を検出して、ＭＴＵを自動修正するためのプロトコルである。ＭＴＵは、一回のデータ転送にて送信可能なＩＰデータグラムの最大値である。例えば、イーサネット（登録商標）型ＬＡＮ（Local Area Network）環境において、イーサネットフレームの最大サイズが１５１８バイトであり、イーサネットヘッダ（１４バイト）及びＦＣＳ（Frame Check Sequence：４バイト）を除く１５００バイトがＭＴＵとなる。
【０００３】
例えば図１に示すように、端末Ａから端末Ｂへデータを送信する場合を考える。このプロトコルによれば、ＭＴＵ＝１５００としてパケットを送信すると（ステップ（１））、ルータＣは、ルータＣとルータＤとの間のＭＴＵが１４００であるため、そのパケットを破棄して、ＩＣＭＰ（Internet Control Message Protocol）パケットでエラーを送信元の端末Ａに返信する（ステップ（２））。なお、ステップ（２）は、パケットにＤＦ（Don't Fragment）フラグメントがセットされていること（フラグメントが禁止されていること）が条件である。このＩＣＭＰによるエラー通知には、使用可能なＭＴＵ（＝１４００）が含まれており、端末Ａは、ＭＴＵ＝１４００に基づきパケットを再度送信することになる（ステップ（３））。なお、ＤＦフラグがセットされていない場合には、ルータＣでフラグメントを行うことになり、スループットが低下する。
【０００４】
一方、データセンタなどでは多数の仮想マシン（ＶＭ：Virtual Machine）が多数の物理マシン上に起動される。さらに、図２に示すように、１のデータセンタＤＣ１における物理マシンＡ上で起動された仮想マシンＶＭＡは、Ｌ３（レイヤ３）等のネットワークで接続された他のデータセンタＤＣ２における物理マシンＢ上に起動されている仮想マシンＶＭＢと通信する場合もある。この場合には、Ｌ３等のネットワーク上に、仮想的なＬ２ネットワークを構築して通信を行うことがある。この仮想的なＬ２ネットワークをＬ２トンネルと呼び、Ｌ２パケットをＬ３パケットでカプセル化することで通信を行う。なお、Ｌ２ネットワークを構築する場合には、物理マシンにおいて仮想計算機環境の基盤となるＯＳ（Operating System）であるホストＯＳにおいてそのトンネル端点が生成される。
【０００５】
このような環境で通信を行う場合には、Ｌ２ネットワークで送信されるＬ２パケットのＭＴＵは、Ｌ３ネットワークで送信されるＬ３パケットのＭＴＵに応じて決定されるべきである。しかしながら、Ｌ３ネットワークに変更が生じた場合、Ｌ３パケットのＭＴＵが変化し、さらにＬ２パケットのＭＴＵも変化する場合がある。また、仮想マシンのマイグレーションや起動又は停止などが生ずると、Ｌ２トンネルの構築や破棄なども生じて、Ｌ２パケットのＭＴＵが途中で変化する可能性がある。このような問題について考慮した従来技術は存在していない。不適切なＭＴＵでパケットを生成すれば、通信経路途中でフラグメントなどが生じてしまい、スループットが低下する可能性がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１８６８０５号公報
【特許文献２】特表２００４−５３５７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、一側面によれば、仮想マシンに適切なＭＴＵを設定できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係り且つコンピュータにより実行される通知方法は、（Ａ）あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ上記コンピュータ上で動作している仮想マシンを特定し、（Ｂ）特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量を通知する処理を含む。
【発明の効果】
【０００９】
一側面によれば、仮想マシンに適切なＭＴＵを設定できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ＩＣＭＰを説明するための図である。
【図２】図２は、仮想環境の一例を示す図である。
【図３】図３は、本実施の形態に係るシステムの概要を示す図である。
【図４】図４は、本実施の形態に係るシステムの概要を示す図である。
【図５】図５は、本実施の形態に係る物理マシンの構成例を示す図である。
【図６】図６は、本実施の形態に係る物理マシンの構成例を示す図である。
【図７】図７は、ＭＴＵ検出部の処理フローを示す図である。
【図８】図８は、管理テーブルの一例を示す図である。
【図９】図９は、テーブル更新部の処理フローを示す図である。
【図１０】図１０は、テーブル更新部の処理フローを示す図である。
【図１１】図１１は、第１テーブル更新処理の処理フローを示す図である。
【図１２】図１２は、第２テーブル更新処理の処理フローを示す図である。
【図１３Ａ】図１３Ａは、仮想マシンの起動について説明するための図である。
【図１３Ｂ】図１３Ｂは、仮想マシンの起動について説明するための図である。
【図１３Ｃ】図１３Ｃは、仮想マシンが起動された物理マシンの管理テーブルの一例を示す図である。
【図１４】図１４は、第３テーブル更新処理の処理フローを示す図である。
【図１５】図１５は、第６テーブル更新処理の処理フローを示す図である。
【図１６Ａ】図１６Ａは、トンネル方式が変更される前の管理テーブルの一例を示す図である。
【図１６Ｂ】図１６Ｂは、トンネル方式が変更された後の管理テーブルの一例を示す図である。
【図１７】図１７は、第４テーブル更新処理の処理フローを説明するための図である。
【図１８】図１８は、データセンタ内のマイグレーションについて説明するための図である。
【図１９】図１９は、図１８についての管理テーブルの一例を示す図である。
【図２０】図２０は、データセンタ内のマイグレーションについて説明するための図である。
【図２１】図２１は、図２０についての管理テーブルの一例を示す図である。
【図２２】図２２は、データセンタ内のマイグレーションについて説明するための図である。
【図２３】図２３は、データセンタ内のマイグレーションについて説明するための図である。
【図２４】図２４は、図２２についての管理テーブルの一例を示す図である。
【図２５】図２５は、図２４についての管理テーブルの一例を示す図である。
【図２６】図２６は、データセンタ内のマイグレーションについて説明するための図である。
【図２７】図２７は、図２６についての管理テーブルの一例を示す図である。
【図２８】図２８は、データセンタ内のマイグレーションについて説明するための図である。
【図２９】図２９は、図２８についての管理テーブルの一例を示す図である。
【図３０】図３０は、第５テーブル更新処理の処理フローを示す図である。
【図３１】図３１は、図２０についての管理テーブルの一例を示す図である。
【図３２】図３２は、図２２についての管理テーブルの一例を示す図である。
【図３３】図３３は、図２３についての管理テーブルの一例を示す図である。
【図３４】図３４は、図２６についての管理テーブルの一例を示す図である。
【図３５】図３５は、図２８についての管理テーブルの一例を示す図である。
【図３６】図３６は、他の実施の形態における物理サーバの構成の一例を示す図である。
【図３７】図３７は、他の実施の形態に係るＭＴＵ検出部の処理フローを示す図である。
【図３８】図３８は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図３及び図４に、本実施の形態に係るシステムの概要を示す。
【００１２】
図３の例では、データセンタＤＣ内に、複数の物理マシンが設けられており、複数の物理マシン間にはＤＣ内Ｌ２ネットワークが設けられている。このような場合には、典型的にはＬ２トンネルを構築することはない。また、これらの物理マシンには、同一ネットワークセグメントに属する１又は複数の仮想マシンが起動される。図３の例では、物理マシン１には、仮想マシンＶＭ１及びＶＭ２が起動されており、物理マシン２には、仮想マシンＶＭ３が起動されている。また、データセンタＤＣには、仮想マシンの構築及び廃棄など、トンネルの構築及び廃棄などを管理する運用管理装置１０も設けられている。
【００１３】
一方、図４に示すように、データセンタＤＣ１とデータセンタＤＣ２とは遠隔地に設けられており、例えばＬ３ネットワークで接続されている。そして、各データセンタには、１又は複数の物理マシンが設けられている。図４の例では、データセンタＤＣ１には物理マシン１が設けられており、データセンタＤＣ２には物理マシン３が設けられている。そして、これらの物理マシンには、同一のネットワークセグメントに属する１又は複数の仮想マシンが起動される。図４の例では、物理マシン１には仮想マシンＶＭ１及びＶＭ２が起動されており、物理マシン３には、仮想マシンＶＭ４が起動されている。このような場合、Ｌ２トンネルを用いるため、物理マシン１にはＬ２トンネルのトンネル端点Ｔ１が設けられ、物理マシン３にはＬ２トンネルのトンネル端点Ｔ２が設けられる。また、少なくともデータセンタＤＣ１には、仮想マシンの配備及び停止など、トンネルの構築及び廃棄などを管理する運用管理装置１０も設けられている。
【００１４】
次に、図５及び図６を用いて、本実施の形態に係る物理マシンの構成を説明する。物理マシンでは、ハイパーバイザ１００と、ホストＯＳと、１又は複数のゲストＯＳとが実行される。ハイパーバイザ１００は、物理マシン上に仮想マシンのための複数のゲストＯＳを並列に実行可能にするためのプログラムである。そして、ハイパーバイザ１００は、構成管理部１１０と、構成データ格納部１２０とを有する。構成管理部１１０は、運用管理装置１０から、仮想マシンの起動、停止又はマイグレーション、若しくはＬ２トンネルの構築又は廃棄等の指示を受け付け、指示に従って仮想マシンの起動、停止又はマイグレーション、若しくはＬ２トンネルの構築又は廃棄などを実施すべくホストＯＳ及びゲストＯＳなどを制御する。構成データ格納部１２０は、例えば、ネットワークセグメント毎に、当該ネットワークセグメントに属するゲストＯＳのアドレス（例えばＭＡＣ（Media Access Control address）アドレス。場合によってはＩＰアドレス。）や、ネットワークセグメントにおいて用いられている通信方式（トンネル種別など）及び端点のデータを格納している。
【００１５】
ホストＯＳは、ホストエージェント２００と、管理テーブル格納部２１０と、データ格納部２２０とを有する。ホストエージェント２００は、ゲストＯＳ側で用いるべきＭＴＵのデータを、所定のイベントの検出に応じてゲストＯＳにおけるゲストエージェント３００に通知するものであり、テーブル更新部２０１と、ＭＴＵ検出部２０３と、通知部２０２とを有する。ＭＴＵ検出部２０３は、管理テーブル格納部２１０に格納されている管理テーブルを参照してＭＴＵの変化を検出する処理を行う。テーブル更新部２０１は、様々な状況に応じて管理テーブルを更新する処理を行う。通知部２０２は、ゲストＯＳのゲストエージェント３００に対して、使用すべきＭＴＵの値を通知する。データ格納部２２０は、例えばトンネル種別毎にヘッダ長のデータを格納する。
【００１６】
また、ゲストＯＳは、ゲストエージェント３００と、設定データ格納部３１０とを有する。そして、ゲストエージェント３００は、設定データ格納部３１０にホストＯＳから受信したＭＴＵの値を設定するＭＴＵ設定部３０１を有する。
【００１７】
なお、ハイパーバイザ１００からの制御に応じて、ホストＯＳとゲストＯＳには仮想的なネットワークインタフェースが用意され、さらにホストＯＳにはブリッジやＬ２トンネルのためのトンネル端点などが構築される。図５では、Ｘｅｎ（Citrix社製）というハイパーバイザ１００を採用した場合の例を示しているが、ゲストＯＳの仮想ネットワークインタフェースｅｔｈ０は、ホストＯＳの仮想ネットワークインタフェースＶｉｆ１．０を介してＬ２トンネルのトンネル端点Ｔ１１に接続されている。このトンネル端点Ｔ１１は、ホストＯＳの仮想ネットワークインタフェースｅｔｈ０を介して物理的なインタフェースと接続される。なお、ここでは、トンネル端点Ｔ１１は、ソフトウエアスイッチであって、ブリッジ機能とトンネル端点としての機能を有するものとする。本実施の形態におけるМＴＵの通知については、これらの仮想ネットワークインタフェースを介して行うことができるが、さらにこのような仮想ネットワークインタフェースを介さずに、Ｘｅｎにおけるデバイスドライバの制御等に用いる機構であるxenbusを用いて通信を行っても良い。なお、他のハイパーバイザであるＨｙｐｅｒ−Ｖ（マイクロソフト社製）においてもVMBusという同様の機能を有するものが存在している。また、本実施の形態は、Ｘｅｎに限らず適用可能である。
【００１８】
例えば図６に示すようにゲストＯＳが増加したり、トンネルが増加した場合においても、ホストＯＳ側でトンネル端点を増設し、仮想的なブリッジを起動したりすることで対応可能である。図６の例では、ゲストＯＳ１は、ホストＯＳの仮想ネットワークインタフェースＶｉｆ１．０を介してトンネル端点Ｔ１１に接続して、さらにＬ２トンネルＢを介して通信を行う。また、ゲストＯＳ２は、ホストＯＳの仮想ネットワークインタフェースＶｉｆ２．０を介してトンネル端点Ｔ１２に接続して、さらにＬ２トンネルＡを介して通信を行う。一方、トンネルを使用しないで通信を行うゲストＯＳ３は、ホストＯＳの仮想ネットワークインタフェースＶｉｆ３．０を介してホストＯＳのブリッジに接続して通信を行う。
【００１９】
図５及び図６において示した仮想ネットワークインタフェース、仮想的なブリッジ、トンネル端点及びＬ２トンネルの構築や廃棄については、従来技術であり、ホストＯＳ、ゲストＯＳ及びハイパーバイザ１００が備えている基本的な機能であるので、これ以上説明しない。
【００２０】
次に、本実施の形態に係る処理の内容について、図７乃至図３５を用いて説明する。例えば、背景技術の欄で述べたようにフラグメントを禁止した通常のパケットをいずれかの仮想マシンが送信すると、経路の途中におけるルータ等が、Path MTU Discovery（pmtud）のＩＣＭＰパケットを返信してくる場合がある。
【００２１】
ＭＴＵ検出部２０３は、このようなＩＣＭＰパケットを受信すると（図７：ステップＳ１）、当該ＩＣＭＰパケットから、新たなＭＴＵの値を抽出する（ステップＳ３）。
【００２２】
そして、ＭＴＵ検出部２０３は、ＩＣＭＰパケットの基となるパケットの送信元ＭＡＣアドレスについて管理テーブル格納部２１０に格納されている管理テーブルを検索する（ステップＳ５）。
【００２３】
管理テーブルは、例えば図８に示すようなテーブルである。図８の例では、レコードのＩＤ（識別子）と、ゲストＯＳのＭＡＣアドレス（ゲストＭＡＣ）と、宛先端点のＭＡＣアドレス（宛先ＭＡＣ）と、トンネル方式と、ヘッダ長と、ＭＴＵとを登録するようになっている。図８の例では、１番目のゲストＯＳについては、トンネル方式ＧＲＥ（Generic Routing Encapsulation）で、宛先端点とＬ２トンネルを介して通信を行っており、このトンネル方式ＧＲＥで送信されるパケットのヘッダ長は「４２」である。また、このＬ２トンネルのＭＴＵ「１５００」が検出されたものとする。そうすると、このゲストＯＳにとっては１５００−４２＝１４５８がＭＴＵとなる。なお、２番目のゲストＯＳについては、Ｌ２トンネルを介した通信を行っておらず、ホストＯＳの端点（例えばブリッジ）のＭＡＣアドレスが、宛先ＭＡＣアドレスとして登録される。Ｌ２トンネルを介した通信を行っていない場合には、トンネル方式は「Ｎｏｎｅ」となる。ステップＳ５では、ゲストＭＡＣアドレスの列を、送信元ＭＡＣアドレスで検索する。
【００２４】
次に、ＭＴＵ検出部２０３は、管理テーブルにおいて該当するレコードを検出できたか判断する（ステップＳ７）。後に述べるように仮想マシン（すなわちゲストＯＳ）起動時には管理テーブルに登録する処理を行うが、登録前にステップＳ１のイベントが発生した場合などには、ステップＳ７で該当するレコードが検出されないと判断される。検出されなかった場合には、送信元ＭＡＣアドレスのゲストＯＳを管理テーブルに登録するため及び当該ゲストＯＳのＭＴＵが変更するために、処理はステップＳ１１に移行する。
【００２５】
一方、該当するレコードが検出された場合には、ＭＴＵ検出部２０３は、検出されたレコードにおけるＭＴＵはステップＳ３で取得されたＭＴＵよりも大きいか否かを判断する（ステップＳ９）。通常であれば、検出されたレコードにおけるＭＴＵに基づきパケットを送信しているので、ＩＣＭＰパケットを受信する状態では、検出されたレコードにおけるＭＴＵが、取得されたＭＴＵの方よりも大きくなる。これ以外の状態は通常は想定できないので、ここでは検出されたレコードにおけるＭＴＵが、取得されたＭＴＵ以下であれば、処理を終了する。
【００２６】
一方、ステップＳ９の条件を満たしている場合には、ＭＴＵ検出部２０３は、ＭＴＵ変化通知をテーブル更新部２０１に出力する（ステップＳ１１）。ＭＴＵ変化通知は、送信元ＭＡＣアドレス及びＭＴＵのデータを含む。そして処理は終了する。
【００２７】
このようにすれば管理テーブルを更新し、ゲストＯＳ（すなわち仮想マシン）へ通知すべき事象を適切に検出できる。
【００２８】
次に、図９乃至図３５を用いてテーブル更新部２０１及び通知部２０２の処理内容について説明する。
【００２９】
テーブル更新部２０１は、ＭＴＵ検出部２０３からＭＴＵ変化通知を受信したか判断する（図９：ステップＳ２１）。ＭＴＵ変化通知を受信したわけではない場合には、処理はステップＳ２５に移行する。一方、ＭＴＵ変化通知を受信した場合には、テーブル更新部２０１は、第１テーブル更新処理を実行する（ステップＳ２３）。第１テーブル更新処理については、後に説明する。そして処理はステップＳ２５に移行する。
【００３０】
また、テーブル更新部２０１は、仮想マシン（すなわちゲストＯＳ）の起動が、運用管理装置１０などからハイパーバイザ１００に対して指示されたか判断する（ステップＳ２５）。例えば、指示を受けたハイパーバイザ１００が、テーブル更新部２０１に通知することでこのイベントを検出する。仮想マシンの起動が指示されていない場合には、処理はステップＳ２９に移行する。一方、仮想マシンの起動が指示された場合には、テーブル更新部２０１は、第２テーブル更新処理を実行する（ステップＳ２７）。第２テーブル更新処理については、後に説明する。そして処理はステップＳ２９に移行する。
【００３１】
さらに、テーブル更新部２０１は、仮想マシン（すなわちゲストＯＳ）の停止が、運用管理装置１０などからハイパーバイザ１００に対して指示されたか判断する（ステップＳ２９）。例えば、指示を受けたハイパーバイザ１００が、テーブル更新部２０１に通知することでこのイベントを検出する。仮想マシンの停止が指示されていない場合には、処理はステップＳ３３に移行する。一方、仮想マシンの停止が指示された場合には、テーブル更新部２０１は、第３テーブル更新処理を実行する（ステップＳ３１）。第３テーブル更新処理については、後に説明する。そして処理はステップＳ３３に移行する。
【００３２】
また、テーブル更新部２０１は、自物理マシンが仮想マシン（すなわちゲストＯＳ）のマイグレーション元となっているか判断する（ステップＳ３３）。例えば、マイグレーションの指示を受けたハイパーバイザ１００が、テーブル更新部２０１に通知することで、このイベントを検出する。自物理マシンが仮想マシンのマイグレーション元となっていない場合には、処理は端子Ａを介して図１０の処理に移行する。一方、自物理マシンが仮想マシンのマイグレーション元となっている場合には、テーブル更新部２０１は、第４テーブル更新処理を実行する（ステップＳ３５）。第４テーブル更新処理については、後に説明する。そして処理は端子Ａを介して図１０の処理に移行する。
【００３３】
さらに、テーブル更新部２０１は、自物理マシンが仮想マシン（すなわちゲストＯＳ）のマイグレーション先となっているか判断する（ステップＳ３７）。例えば、マイグレーションの指示を受けたハイパーバイザ１００が、テーブル更新部２０１に通知することで、このイベントを検出する。自物理マシンが仮想マシンのマイグレーション先となっていない場合には、ステップＳ４１に移行する。一方、自物理マシンが仮想マシンのマイグレーション先となっている場合には、テーブル更新部２０１は、第５テーブル更新処理を実行する（ステップＳ３９）。第５テーブル更新処理については、後に説明する。そして処理はステップＳ４１に移行する。
【００３４】
さらに、テーブル更新部２０１は、いずれかのネットワークセグメントについてのトンネル方式の変更が指示されたか判断する（ステップＳ４１）。例えば、マイグレーションの指示を受けたハイパーバイザ１００が、テーブル更新部２０１に通知することで、このイベントを検出する。なお、これまでＬ２トンネルを使用していなかったがＬ２トンネルを使用するようになった場合や、その逆の場合もあるし、Ｌ２トンネルのトンネル方式を別の方式に切り替える場合などについても、このステップの条件を満たしていると判断する。いずれかのネットワークセグメントについてもトンネル方式の変更が指示されていない場合には、ステップＳ４５に移行する。一方、いずれかのネットワークセグメントについてのトンネル方式の変更が指示された場合には、テーブル更新部２０１は、第６テーブル更新処理を実行する（ステップＳ４３）。第６テーブル更新処理については、後に説明する。そして処理はステップＳ４５に移行する。
【００３５】
そして、テーブル更新部２０１は、処理終了が指示されたか否かを判断する（ステップＳ４５）。例えば、運用管理装置１０やハイパーバイザ１００等から処理終了が指示された場合、処理を終了する。一方、処理終了ではない場合には、処理は端子Ｂを介してステップＳ２１に戻る。
【００３６】
このように様々なイベントにおいて適切に管理テーブルを更新し、ゲストＯＳ側にＭＴＵとして適切なデータ量を通知することができるようになる。
【００３７】
次に、図１１を用いて第１テーブル更新処理について説明する。テーブル更新部２０１は、管理テーブルにおいて、ＩＣＭＰパケットを発生させたパケットの送信元に関連するレコードが存在するか判断する（図１１：ステップＳ５１）。
【００３８】
ＩＣＭＰパケットを発生させたパケットの送信元に関連するレコードが管理テーブルに存在する場合には、テーブル更新部２０１は、ＩＣＭＰパケットを発生させたパケットの送信元のレコード及び当該送信元と同一のネットワークセグメントに属する仮想マシン（すなわちゲストＯＳ）についてのレコードにおけるＭＴＵを更新する（ステップＳ５３）。そして処理はステップＳ５７に移行する。
【００３９】
例えば、テーブル更新部２０１は、ＩＣＭＰパケットを発生させたパケットの送信元のレコードにおける宛先端点のＭＡＣアドレスと同一の宛先端点のＭＡＣアドレスを含むレコードを、管理テーブルから抽出することで、同一のネットワークセグメントに属する仮想マシンのレコードを特定する。なお、ハイパーバイザ１００の構成管理部１１０に問い合わせることで、同一ネットワークセグメントに属する仮想マシンのＭＡＣアドレスを取得し、当該ＭＡＣアドレスで、管理テーブルを検索するようにしても良い。
【００４０】
一方、ＩＣＭＰパケットを発生させたパケットの送信元に関連するレコードが管理テーブルに存在しない場合には、テーブル更新部２０１は、ＩＣＭＰパケットを発生させたパケットの送信元についてのレコードを管理テーブルにおいて生成し、当該送信元のネットワークセグメントについての宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを取得して、登録する（ステップＳ５５）。
【００４１】
宛先端点のＭＡＣアドレス及びトンネル方式については、例えばハイパーバイザ１００の構成管理部１１０に送信元のＭＡＣアドレスによって問い合わせることで取得し、データ格納部２２０からトンネル方式に対応付けられたヘッダ長を取得する。なお、ステップＳ５３と同様に、本ステップでも同一ネットワークセグメントに属する仮想マシンについてのレコードについても更新するようにしても良い。
【００４２】
そして、テーブル更新部２０１は、ＭＴＵが更新又は登録されたレコードにおける仮想マシン（すなわちゲストＯＳ）用ＭＴＵを、（現在のＭＴＵ−ヘッダ長）によって算出して、通知部２０２に出力し、通知部２０２は、ＭＴＵが更新又は登録されたレコードについての仮想マシンに対して、仮想マシン用ＭＴＵを通知する（ステップＳ５７）。
【００４３】
これに対して、仮想マシン（すなわちゲストＯＳ）におけるゲストエージェント３００は、仮想マシン用ＭＴＵを受信すると、そのＭＴＵ設定部３０１は、設定データ格納部３１０に仮想マシン用ＭＴＵを格納する（ステップＳ５９）。
【００４４】
これによって、仮想マシン（すなわちゲストＯＳ）側では、変化後に通知されたＭＴＵに応じたパケットを生成するので、スループットの低下無く、データの通信を行うことができるようになる。
【００４５】
次に、仮想マシンの起動を検出した場合に実行される第２テーブル更新処理について図１２を用いて説明する。
【００４６】
テーブル更新部２０１は、仮想マシン（すなわちゲストＯＳ）の起動に応じてＬ２トンネルの構築が行われるか判断する（図１２：ステップＳ６１）。
【００４７】
例えば、図１３Ａに示すように、例えばデータセンタＤＣ１に物理マシンＡが設けられ、データセンタＤＣ２に物理マシンＢが設けられ、データセンタＤＣ１とデータセンタＤＣ２との間がＬ３ネットワークで接続されているものとする。そして、物理マシンＡには、あるネットワークセグメントについて仮想マシンＶＭ１及びＶＭ２とが起動されているが、物理マシンＢにはそのネットワークセグメントについての仮想マシンは起動されていないものとする。このような状態で、物理マシンＢに仮想マシンＶＭ３を起動すると、図１３Ｂに示すような状態となる。
【００４８】
図１３Ｂでは、データセンタＤＣ１とデータセンタＤＣ２との間には、例えばＧＲＥのＬ２トンネルが構築される。そうすると、物理マシンＡには、Ｌ２トンネルの宛先端点Ａ１が構築され、当該宛先端点Ａ１と仮想マシンＶＭ１及びＶＭ２とが接続される構成となる。一方、物理マシンＢには、Ｌ２トンネルの宛先端点Ｂ１が構築され、当該宛先端点Ｂ１と仮想マシンＶＭ３とが接続される構成となる。ステップＳ６１では、図１３Ｂの状態になるのか否かを判断する。
【００４９】
仮想マシンの起動に応じてＬ２トンネルの構築が行われる場合には、テーブル更新部２０１は、構築されるＬ２トンネルの宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを取得する（ステップＳ６３）。例えば、Ｌ２トンネルの宛先端点のＭＡＣアドレス及びトンネル方式については、ハイパーバイザ１００の構成管理部１１０から取得し、ヘッダ長についてはデータ格納部２２０からトンネル方式に対応する値を読み出す。ＭＴＵについては、ハイパーバイザ１００の構成管理部１１０などから取得できれば取得し、できなければ一度宛先端点のＭＡＣアドレス宛に大きなＭＴＵを前提としたパケットを送信してＩＣＭＰパケットを受信することで取得する。
【００５０】
そして、テーブル更新部２０１は、起動された仮想マシン（すなわちゲストＯＳ）についてのレコードを管理テーブルにおいて生成し、取得したデータを登録する（ステップＳ６５）。
【００５１】
図１３Ｂの例では、図１３Ｃに示すような管理テーブルとなる。図１３Ｃの例では、起動した仮想マシンのＭＡＣアドレスは「ＭＡＣ＿３」であり、宛先端点Ａ１のＭＡＣアドレスは「ＭＡＣ＿Ａ１」であり、トンネル方式が「ＧＲＥ」で、ヘッダ長は「４２」であり、ここではＭＴＵが「１４６０」となっている。
【００５２】
そして、テーブル更新部２０１は、ＭＴＵが更新又は登録されたレコードにおける仮想マシン（すなわちゲストＯＳ）用ＭＴＵを、（現在のＭＴＵ−ヘッダ長）によって算出して、通知部２０２に出力し、通知部２０２は、ＭＴＵが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用ＭＴＵを通知する（ステップＳ６７）。
【００５３】
これに対して、仮想マシン（すなわちゲストＯＳ）におけるゲストエージェント３００は、仮想マシン用ＭＴＵを受信すると、そのＭＴＵ設定部３０１は、設定データ格納部３１０に仮想マシン用ＭＴＵを格納する。
【００５４】
一方、トンネルの構築を伴わない仮想マシン（すなわちゲストＯＳ）の起動である場合、テーブル更新部２０１は、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作しているか否かを判断する（ステップＳ６９）。例えば、構成管理部１１０から、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンのＭＡＣアドレスを取得する。
【００５５】
ここで他の仮想マシンが自物理マシン上で動作していない場合には、テーブル更新部２０１は、起動された仮想マシンについてのレコードを生成し、初期的な宛先端点のＭＡＣアドレス、初期的なトンネル方式（典型的にはＮｏｎｅ）、初期ヘッダ長（典型的には０）及び初期ＭＴＵ（典型的には１５００）を登録する（ステップＳ７１）。そして処理はステップＳ６７に移行する。このように、孤立した形で仮想マシンが起動された場合には、ステップＳ７１の処理を実行する。
【００５６】
一方、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作している場合には、テーブル更新部２０１は、起動された仮想マシンについてのレコードを生成し、同一ネットワークセグメントに属する他の仮想マシンについての宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを登録する（ステップＳ７３）。
【００５７】
同一のネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作していれば、同じ通信方式で通信することになるので、当該他の仮想マシンについての宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵをそのまま用いる。Ｌ２トンネルが構築されていれば、そのＬ２トンネルを用い、Ｌ２トンネルが構築されていない場合には、ホストＯＳのブリッジが用いられる。そして処理はステップＳ６７に移行する。
【００５８】
このように仮想マシンの起動においても適切に管理テーブルを更新して、起動された仮想マシンに対して適切なＭＴＵを通知できる。
【００５９】
次に、仮想マシンの停止に応じて実行される第３テーブル更新処理について図１４を用いて説明する。
【００６０】
テーブル更新部２０１は、停止された仮想マシン（すなわちゲストＯＳ）のレコードを、管理テーブルにおいて削除する（図１４：ステップＳ８１）。
【００６１】
そして、テーブル更新部２０１は、仮想マシンの停止に応じてトンネル方式の変更が発生したか判断する（ステップＳ８３）。例えば、ハイパーバイザ１００の構成管理部１１０に問い合わせるか又は構成管理部１１０からＬ２トンネルの変更が通知されたか判断する。
【００６２】
例えば、図１３Ｂの状態において、仮想マシンＶＭ３を停止させる場合には、データセンタＤＣ１とデータセンタＤＣ２との間の通信は行われなくなる。よって、図１３Ａに示すような状態に戻すためＬ２トンネルも廃棄する場合もある。
【００６３】
このようにトンネル方式の変更がある場合には、テーブル更新部２０１は、トンネル方式の変更があった際に行われる第６テーブル更新処理を実行する（ステップＳ８５）。一方、トンネル方式に変更がない場合には、処理は呼出元の処理に戻る。
【００６４】
次に、トンネル方式の変更があった際に行われる第６テーブル更新処理について図１５乃至図１６Ｂを用いて説明する。
【００６５】
テーブル更新部２０１は、変更後のＬ２トンネルの宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを取得する（図１５：ステップＳ９１）。例えば、Ｌ２トンネルの宛先端点のＭＡＣアドレス及びトンネル方式については、ハイパーバイザ１００の構成管理部１１０から取得し、ヘッダ長についてはデータ格納部２２０からトンネル方式に対応する値を読み出す。ＭＴＵについては、ハイパーバイザ１００の構成管理部１１０などから取得できれば取得し、できなければ一度宛先端点のＭＡＣアドレス宛に大きなＭＴＵを前提としたパケットを送信してＩＣＭＰパケットを受信することで取得する。
【００６６】
また、テーブル更新部２０１は、変更されたトンネルに関連するネットワークセグメントに属する仮想マシン（すなわちゲストＯＳ）についてのレコードを、管理テーブルにおいて特定する（ステップＳ９３）。
【００６７】
例えば、ハイパーバイザ１００の構成管理部１１０から、変更されたトンネルに関連するネットワークセグメントに属する仮想マシンのＭＡＣアドレスを取得して、当該ＭＡＣアドレスをゲストＯＳのＭＡＣアドレスとするレコードを抽出する。
【００６８】
また、テーブル更新部２０１は、特定されたレコードにおける宛先端点のＭＡＣアドレス、Ｌ２トンネルのトンネル方式、ヘッダ長及びＭＴＵを、ステップＳ９１で取得されたデータで置換する（ステップＳ９５）。
【００６９】
そして、テーブル更新部２０１は、ＭＴＵが更新又は登録されたレコードにおける仮想マシン（すなわちゲストＯＳ）用ＭＴＵを、（現在のＭＴＵ−ヘッダ長）によって算出して、通知部２０２に出力し、通知部２０２は、ＭＴＵが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用ＭＴＵを通知する（ステップＳ９７）。
【００７０】
これに対して、仮想マシン（すなわちゲストＯＳ）におけるゲストエージェント３００は、仮想マシン用ＭＴＵを受信すると、ＭＴＵ設定部３０１は、設定データ格納部３１０に仮想マシン用ＭＴＵを格納する。
【００７１】
例えば、図１３Ａ及び図１３ＢではデータセンタＤＣ２において仮想マシンＶＭ３を起動しているので、データセンタＤＣ１では、トンネル方式の変更が発生したことになる。すなわち、図１３Ａでは同一のネットワークセグメントに属する仮想マシンＶＭ１及びＶＭ２は、ブリッジで接続されているが、図１３Ｂではそのネットワークセグメントに属する仮想マシンＶＭ３がデータセンタＤＣ２で起動されたので、Ｌ２トンネルの端点Ａ１、Ｌ２トンネル及びＬ２トンネルの端点Ｂ１により仮想マシンＶＭ１乃至ＶＭ３が通信を行うことになる。
【００７２】
図１３Ａの状態であれば、物理マシンＡでは図１６Ａに示すような管理テーブルとなる。図１６Ａの例では、宛先端点のＭＡＣアドレスは、ブリッジのＭＡＣアドレス「ＭＡＣ＿Ａ１」となっており、Ｌ２トンネルが構築されていないので、トンネル方式は「Ｎｏｎｅ」であり、ヘッダ長も「０」である。
【００７３】
そして、図１３Ｂの状態になれば、物理マシンＡでは図１６Ｂに示すような管理テーブルとなる。Ｌ２トンネルのトンネル方式は「ＧＲＥ」であり、ヘッダ長が「４２」であり、ＭＴＵは「１４６０」であるのは、図１３Ｃと同様であるが、宛先端点のＭＡＣアドレスは、データセンタＤＣ２側の端点Ｂ１のＭＡＣアドレス「ＭＡＣ＿Ｂ１」となる。
【００７４】
このようにトンネル方式の変更があった場合には、それに応じて管理テーブルも更新することで、適切なデータ量をＭＴＵとして仮想マシン（すなわちゲストＯＳ）に通知できる。
【００７５】
次に、仮想マシンのマイグレーションが行われる場合の処理である第４テーブル更新処理及び第５テーブル更新処理について説明する。
【００７６】
まず、マイグレーション元の物理マシンで実行される第４テーブル更新処理について図１７乃至図２９を用いて説明する。
【００７７】
テーブル更新部２０１は、ハイパーバイザ１００からマイグレーションのデータを取得する（図１７：ステップＳ１０１）。具体的には、マイグレーション対象の仮想マシンのＭＡＣアドレス、マイグレーション対象の仮想マシンが属するネットワークセグメントのデータ、使用される通信方式（Ｌ２トンネルのトンネル方式など）、移動先データ（移動先のデータセンタ及び移動先の物理マシンのアドレスなど）などである。
【００７８】
そして、テーブル更新部２０１は、マイグレーション先は同一データセンタ内であるか判断する（ステップＳ１０３）。マイグレーション先が同一データセンタ内であれば、テーブル更新部２０１は、マイグレーション対象の仮想マシン（すなわちゲストＯＳ）のためのレコードを、管理テーブルにおいて削除する（ステップＳ１１１）。そして呼出元の処理に戻る。
【００７９】
例えば、図１８に示すように、データセンタＤＣ１において物理マシンＡと物理マシンＣとが、データセンタ内のＬ２ネットワークで接続されている場合を考える。ここで、物理マシンＡにおいて仮想マシンＶＭ１及びＶＭ２が起動されているので、図１９に示すような管理テーブルが物理マシンＡに保持される。図１９の例では、仮想マシンＶＭ１のＭＡＣアドレス「ＭＡＣ＿１」についてのレコードと、仮想マシンＶＭ２のＭＡＣアドレス「ＭＡＣ＿２」についてのレコードとを含む。Ｌ２トンネルは構築されていないので、宛先端点のＭＡＣアドレスは、ブリッジＡ１のＭＡＣアドレス「ＭＡＣ＿Ａ１」となっており、トンネル方式「Ｎｏｎｅ」が設定されている。
【００８０】
一方、図２０に示すように、データセンタＤＣ１における物理マシンＡから物理マシンＣへの、仮想マシンＶＭ２のマイグレーションが発生すると、移動元の物理マシンＡでは、図２１に示すような管理テーブルとなる。この場合Ｌ２トンネルは構築されていないので、仮想マシンＶＭ２のためのレコードが単純に削除されることになる。
【００８１】
一方、マイグレーション先が同一のデータセンタ内ではない場合、テーブル更新部２０１は、トンネル方式に変更があるのか否かを判断する（ステップＳ１０５）。トンネル方式に変更がある場合というのは、例えば、マイグレーションによって移動元の物理マシンに同一ネットワークセグメントに属する他の仮想マシンがなくなってしまう場合である。一方、トンネル方式に変更がない場合というのは、例えば、マイグレーションによって仮想マシンが１つ無くなっても同一ネットワークセグメントに属する他の仮想マシンが存在する場合である。トンネル方式に変更がない場合には、処理はステップＳ１１１に移行する。
【００８２】
図２２に示すように、データセンタＤＣ１に設けられた物理マシンＡには、仮想マシンＶＭ１乃至ＶＭ３が動作しており、データセンタＤＣ２に設けられた物理マシンＢには、仮想マシンＶＭ１乃至ＶＭ３と同一のネットワークセグメントに属する仮想マシンＶＭ４が動作している状態で、仮想マシンＶＭ３が物理マシンＢへマイグレーションを行う場合を想定する。この場合には、既にデータセンタＤＣ１とデータセンタＤＣ２との間にはＬ２トンネルが既に構築されているので、図２３に示すように仮想マシンＶＭ３が移動した後でも、典型的にはＬ２トンネルに変更はない。
【００８３】
従って、図２２の状態において、物理マシンＡにおける管理テーブルは図２４に示すように、３つの仮想マシンＶＭ１乃至ＶＭ３のためのレコードが設けられており、それぞれトンネル方式「ＧＲＥ」のＬ２トンネルについてのデータが登録されている。その後、図２３の状態になっても、物理マシンＡにおける管理テーブルは図２５に示すように、単にマイグレーションによって居なくなった仮想マシンＶＭ３のレコードが削除されるだけである。
【００８４】
一方、トンネル方式に変更がある場合には、テーブル更新部２０１は、マイグレーション対象の仮想マシン（すなわちゲストＯＳ）のためのレコードを、管理テーブルにおいて削除する（ステップＳ１０７）。ステップＳ１１１と同様である。
【００８５】
さらに、テーブル更新部２０１は、第６テーブル更新処理を実行する（ステップＳ１０９）。この第６テーブル更新処理については、図１５で説明したとおりであり、説明を省略する。
【００８６】
例えば、図２６に示すように、データセンタＤＣ１に設けられた物理マシンＡで仮想マシンＶＭ１乃至ＶＭ３が動作しており、それらは同一のネットワークセグメントに属している。また、データセンタＤＣ２に設けられた物理マシンＢで仮想マシンＶＭ４及びＶＭ５が動作しており、それらは仮想マシンＶＭ１乃至ＶＭ３とは異なるネットワークセグメントに属している。このような状態では、物理マシンＡでは、ブリッジＡ１１で仮想マシンＶＭ１乃至ＶＭ３が接続されており、物理マシンＢでは、ブリッジＢ３で仮想マシンＶＭ４及びＶＭ５が接続されており、データセンタ間にはＬ２トンネルは設けられていない。
【００８７】
このような場合、物理マシンＡ側の管理テーブルは、図２７に示すような状態となる。このようにデータセンタ内における同一物理マシン内での通信であるから、トンネル方式は「Ｎｏｎｅ」となる。
【００８８】
その後、図２８に示すように、仮想マシンＶＭ３が、データセンタＤＣ２の物理マシンＢへ移動した場合、データセンタＤＣ１の物理マシンＡ上の仮想マシンＶＭ１及びＶＭ２と通信を行うために、Ｌ２トンネルが構築される。そして、物理マシンＡ側では、Ｌ２トンネルの端点Ａ１が構築され、物理マシンＢ側では、そのＬ２トンネルの端点Ｂ２が構築される。
【００８９】
そうすると、物理マシンＡ側の管理テーブルは、図２９に示すような状態に変化する。図２９の例では、移動してしまった仮想マシンＶＭ３のレコードは削除されており、新たに構築されたＬ２トンネルを用いるような形に、仮想マシンＶＭ１及びＶＭ２についてのレコードも更新されている。仮想マシンＶＭ１及びＶＭ２の部分については、第６テーブル更新処理によって更新される。
【００９０】
次に、マイグレーション先の物理マシンで実行される第５テーブル更新処理について図３０乃至図３５を用いて説明する。
【００９１】
テーブル更新部２０１は、ハイパーバイザ１００からマイグレーションのデータを取得する（図３０：ステップＳ１２１）。具体的には、マイグレーション対象の仮想マシンのＭＡＣアドレス、マイグレーション対象の仮想マシンが属するネットワークセグメントのデータ、使用される通信方式（Ｌ２トンネルのトンネル方式など）、移動元データ（移動元のデータセンタ及び移動元の物理マシンのアドレスなど）などである。
【００９２】
そして、テーブル更新部２０１は、マイグレーション元は同一データセンタ内であるか判断する（ステップＳ１２３）。マイグレーション元が同一データセンタ内であれば、テーブル更新部２０１は、現在の通信方式（トンネルなど）における宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを取得し、当該取得されたデータを含む、マイグレーション対象の仮想マシンのためのレコードを、管理テーブルにおいて追加する（ステップＳ１３３）。
【００９３】
本実施の形態では、データセンタ内におけるＬ２ネットワークが完備しているものとして、ここでは、初期的な通信方式「Ｎｏｎｅ」、宛先端点となるブリッジのＭＡＣアドレス「ＭＡＣ＿Ｃ１」、初期的なヘッダ長「０」及び初期的なＭＴＵ「１５００」を取得して、マイグレーション対象の仮想マシンＶＭ２のＭＡＣアドレスと共に、管理テーブルに登録する。
【００９４】
上で述べた図１８の状態から図２０の状態に遷移した場合、移動先の物理マシンＣには、管理テーブルに何も登録されていない状態から、図３１の状態に変化する。図３１では、仮想マシンＶＭ２のＭＡＣアドレス「ＭＡＣ＿２」と、上で述べたデータとを含むレコードが追加される。
【００９５】
そして、テーブル更新部２０１は、ＭＴＵが更新又は登録されたレコードにおける仮想マシン（すなわちゲストＯＳ）用ＭＴＵを、（現在のＭＴＵ−ヘッダ長）によって算出して、通知部２０２に出力し、通知部２０２は、ＭＴＵが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用ＭＴＵを通知する（ステップＳ１３１）。
【００９６】
これに対して、仮想マシン（すなわちゲストＯＳ）におけるゲストエージェント３００は、仮想マシン用ＭＴＵを受信すると、ＭＴＵ設定部３０１は、設定データ格納部３１０に仮想マシン用ＭＴＵを格納する。
【００９７】
一方、マイグレーション元が同一データセンタ内ではない場合、テーブル更新部２０１は、トンネル方式に変更があるか否かを判断する（ステップＳ１２５）。トンネル方式に変更がない場合には、処理はステップＳ１３３に移行する。
【００９８】
図２２に示すような状態から図２３に示すような状態へ遷移する場合、トンネル方式に変更はない。この場合、物理マシンＢ側の管理テーブルは、マイグレーション前には、図３２に示すような状態となる。すなわち、仮想マシンＶＭ４のＭＡＣアドレス「ＭＡＣ＿４」に対して、宛先端点のＭＡＣアドレス「ＭＡＣ＿Ａ１」、トンネル方式「ＧＲＥ」、ヘッダ長「４２」及びＭＴＵ「１４６０」が登録されるようになっている。
【００９９】
これに対して、マイグレーション後には、図３３に示すような状態になる。この場合には、既に同一ネットワークセグメントに属する仮想マシンＶＭ４が存在しているので、当該仮想マシンＶＭ４と同様のデータを含む、仮想マシンＶＭ３についてのレコードが追加される。
【０１００】
一方、トンネル方式に変更がある場合には、テーブル更新部２０１は、変更後のＬ２トンネルの宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを取得する（ステップＳ１２７）。例えば、Ｌ２トンネルの宛先端点のＭＡＣアドレス及びトンネル方式については、ハイパーバイザ１００の構成管理部１１０から取得し、ヘッダ長についてはデータ格納部２２０からトンネル方式に対応する値を読み出す。ＭＴＵについては、ハイパーバイザ１００の構成管理部１１０などから取得できれば取得し、できなければ一度宛先端点のＭＡＣアドレス宛に大きなＭＴＵを前提としたパケットを送信してＩＣＭＰパケットを受信することで取得する。
【０１０１】
そして、テーブル更新部２０１は、変更後のＬ２トンネルの宛先端点のＭＡＣアドレス、トンネル方式、ヘッダ長及びＭＴＵを含む、マイグレーション対象の仮想マシンのためのレコードを、管理テーブルにおいて追加する（ステップＳ１２９）。
【０１０２】
図２６の状態において、マイグレーション先の物理マシンＢ側の管理テーブルは、図３４に示すような状態となる。すなわち、物理マシンＢ上で動作している仮想マシンＶＭ４及びＶＭ５のレコードのみが含まれる。一方、図２８に示すような状態に遷移すると、図３５に示すような状態となる。図３５に示すように、仮想マシンＶＭ４及びＶＭ５のレコードには影響はないが、移動してきた仮想マシンＶＭ３については、新たに構築されたＬ２トンネルのデータを含むレコードが追加されている。
【０１０３】
ステップＳ１２９が完了すると、処理はステップＳ１３１に移行する。
【０１０４】
このような処理を行えば、マイグレーションが発生したとしても、適切なＭＴＵが仮想マシン側に設定される。
【０１０５】
以上のような処理を実行することで、適切なＭＴＵを、仮想マシン（すなわちゲストＯＳ）側に通知でき、さらに仮想マシンにおいて設定できる。これによって、通信経路上におけるフラグメントを開始でき、スループットの低下を防止できる。
【０１０６】
［その他の実施の形態］
上で述べた実施の形態では、図５においてゲストＯＳにおけるＭＴＵ設定部３０１が、設定データ格納部３１０に対して、適切なＭＴＵの値を設定する例を示した。しかし、ゲストＯＳ上で実行されるアプリケーションプログラムが、ネットワーク通信においてＭＴＵに最適化した形でデータを出力するようなアプリケーションプログラムである場合もある。このような場合に対処するため、図３６に示すように、ゲストエージェント３００に、通知部３０２を設け、ホストエージェント２００からＭＴＵの値を取得した場合には、通知部３０２によって、変化後のＭＴＵの値を、アプリケーションプログラムにシグナルなどによって通知しても良い。
【０１０７】
さらに、ＭＴＵ検出部２０３は、ＭＴＵの低下については上で述べた処理において検出できるが、ＭＴＵは増加する場合もある。
【０１０８】
この場合に対処するため、例えば図３７に示すような処理を別途行うようにしても良い。ＭＴＵ検出部２０３は、例えば管理テーブルにおけるレコード毎に、フラグメントを禁止した上で大きいサイズ（例えば１５００）のパケットを当該レコードにおける宛先端点のＭＡＣアドレスに対して送信する等して、現在のＭＴＵを取得する（図３７：ステップＳ１４１）。なお、パケットサイズを徐々に変えつつ複数回ｐｉｎｇを出力してＭＴＵを特定するようにしても良い。
【０１０９】
そして、ＭＴＵ検出部２０３は、管理テーブルにおけるレコード毎に、ステップＳ１４１で取得したＭＴＵと、登録されているＭＴＵとを比較して変化したか否かを判断する（ステップＳ１４３）。ここで変化しなかったレコードについては処理を終了する。一方、ＭＴＵが変化したと判断されたレコードについては、ＭＴＵ検出部２０３は、テーブル更新部２０１に対してＭＴＵ変化通知を出力する（ステップＳ１４５）。
【０１１０】
テーブル更新部２０１は、ＭＴＵ変化通知に応じて上で述べた処理を行えば、現在のＭＴＵが仮想マシンに通知され、設定されるようになる。
【０１１１】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、機能ブロック図は一例であって、プログラムモジュール構成とは異なる場合もある。
【０１１２】
また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを並列に実行するようにしても良い。
【０１１３】
さらに、構成管理部１１０及び構成データ格納部１２０については、ホストＯＳ側に設けられる場合もある。
【０１１４】
なお、上で述べた物理マシンは、コンピュータ装置であって、図３８に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのプログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのプログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１５】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１１６】
本実施の形態に係る通知方法は、（Ａ）あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ自物理マシン（すなわちコンピュータ）上で動作している仮想マシンを特定し、（Ｂ）特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量（例えば、変化後の最大伝送単位から、上記あるネットワークセグメントにおいて送信されるパケットのヘッダ長を差し引いたパケット長）を通知する処理を含む。
【０１１７】
このようにすれば、仮想マシンにおいて適切なＭＴＵに基づきパケットを送信することができるようになる。
【０１１８】
また、上で述べた特定する処理において、自物理マシン上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ上記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の最大伝送単位とを比較することで、最大伝送単位の変化を検出するようにしても良い。このようなデータ格納部を管理することで、変化の検出及び通知を効率化できる。
【０１１９】
さらに、本通知方法は、（Ｃ）上記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ自物理マシン上で動作している仮想マシンを特定し、（Ｄ）特定された仮想マシンに対して、変更後の通信方式により特定される最大伝送単位に基づくデータ量を通知する処理をさらに含むようにしても良い。例えば、Ｌ２トンネルを使わない状態から特定の方式によるＬ２トンネルを使うようになれば、最大伝送単位が変化する可能性があり、このような状況にも対処可能となる。
【０１２０】
さらに、本通知方法は、（Ｅ）自物理マシン上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された仮想マシンに対して通知する処理をさらに含むようにしても良い。仮想マシンの起動時にもその仮想マシンにとって適切なＭＴＵに基づきパケットを送信できるようになる。
【０１２１】
また、本通知方法は、（Ｆ）自物理マシン上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた仮想マシンに対して通知する処理をさらに含むようにしても良い。仮想マシンのマイグレーションが発生したとしても、当該仮想マシンに対して当該仮想マシンにとって適切なＭＴＵに基づきパケットを送信できるようになる。
【０１２２】
さらに、本通知方法は、（Ｇ）自物理マシン上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ自物理マシン上で動作している、ある仮想マシン以外の仮想マシンを特定し、（Ｈ）特定された仮想マシンに対して、変更後の通信方式により特定される最大伝送単位に基づくデータ量を通知する処理をさらに含むようにしても良い。このようにマイグレーションが発生した場合にも、適切に対処できるようになる。
【０１２３】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１２４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を含み、前記コンピュータに実行される通知方法。
【０１２６】
（付記２）
前記特定する処理において、
前記コンピュータ上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ前記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の前記最大伝送単位とを比較することで、前記最大伝送単位の変化を検出する
付記１記載の通知方法。
【０１２７】
（付記３）
前記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される付記１又は２記載の通知方法。
【０１２８】
（付記４）
前記コンピュータ上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される付記１乃至３のいずれか１つ記載の通知方法。
【０１２９】
（付記５）
前記コンピュータ上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される付記１乃至４のいずれか１つ記載の通知方法。
【０１３０】
（付記６）
前記コンピュータ上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ前記コンピュータ上で動作している、前記ある仮想マシン以外の仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される付記１乃至５のいずれか１つ記載の通知方法。
【０１３１】
（付記７）
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を実行させるための通知プログラム。
【０１３２】
（付記８）
情報処理装置であって、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記情報処理装置上で動作している仮想マシンを特定する特定部と、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する通知部と、
を有する情報処理装置。
【符号の説明】
【０１３３】
２０１  テーブル更新部
２０２  通知部
２０３  ＭＴＵ検出部
２１０  管理テーブル格納部
２２０  データ格納部
３０１  ＭＴＵ設定部
３１０  設定データ格納部
【図１】
2015023329.tif 000003
【図２】
2015023329.tif 000004
【図３】
2015023329.tif 000005
【図４】
2015023329.tif 000006
【図５】
2015023329.tif 000007
【図６】
2015023329.tif 000008
【図７】
2015023329.tif 000009
【図８】
2015023329.tif 000010
【図９】
2015023329.tif 000011
【図１０】
2015023329.tif 000012
【図１１】
2015023329.tif 000013
【図１２】
2015023329.tif 000014
【図１３Ａ】
2015023329.tif 000015
【図１３Ｂ】
2015023329.tif 000016
【図１３Ｃ】
2015023329.tif 000017
【図１４】
2015023329.tif 000018
【図１５】
2015023329.tif 000019
【図１６Ａ】
2015023329.tif 000020
【図１６Ｂ】
2015023329.tif 000021
【図１７】
2015023329.tif 000022
【図１８】
2015023329.tif 000023
【図１９】
2015023329.tif 000024
【図２０】
2015023329.tif 000025
【図２１】
2015023329.tif 000026
【図２２】
2015023329.tif 000027
【図２３】
2015023329.tif 000028
【図２４】
2015023329.tif 000029
【図２５】
2015023329.tif 000030
【図２６】
2015023329.tif 000031
【図２７】
2015023329.tif 000032
【図２８】
2015023329.tif 000033
【図２９】
2015023329.tif 000034
【図３０】
2015023329.tif 000035
【図３１】
2015023329.tif 000036
【図３２】
2015023329.tif 000037
【図３３】
2015023329.tif 000038
【図３４】
2015023329.tif 000039
【図３５】
2015023329.tif 000040
【図３６】
2015023329.tif 000041
【図３７】
2015023329.tif 000042
【図３８】
2015023329.tif 000043