JP2015023329A - 通知方法、装置及びプログラム - Google Patents

通知方法、装置及びプログラム Download PDF

Info

Publication number
JP2015023329A
JP2015023329A JP2013148179A JP2013148179A JP2015023329A JP 2015023329 A JP2015023329 A JP 2015023329A JP 2013148179 A JP2013148179 A JP 2013148179A JP 2013148179 A JP2013148179 A JP 2013148179A JP 2015023329 A JP2015023329 A JP 2015023329A
Authority
JP
Japan
Prior art keywords
virtual machine
mtu
network segment
tunnel
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013148179A
Other languages
English (en)
Inventor
鈴木 和宏
Kazuhiro Suzuki
和宏 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013148179A priority Critical patent/JP2015023329A/ja
Priority to US14/301,548 priority patent/US9660902B2/en
Publication of JP2015023329A publication Critical patent/JP2015023329A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】仮想マシンに適切なMTUを設定できるようにする。
【解決手段】コンピュータにより実行される通知方法は、(A)あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ上記コンピュータ上で動作している仮想マシンを特定し、(B)特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量を通知する処理を含む。
【選択図】図5

Description

本発明は、仮想マシンに対して通信のための設定を行うための技術に関する。
Path MTU Discoveryは、経路上にあるリンクの最小のMTU(Maximum Transmission Unit:最大伝送単位)を検出して、MTUを自動修正するためのプロトコルである。MTUは、一回のデータ転送にて送信可能なIPデータグラムの最大値である。例えば、イーサネット(登録商標)型LAN(Local Area Network)環境において、イーサネットフレームの最大サイズが1518バイトであり、イーサネットヘッダ(14バイト)及びFCS(Frame Check Sequence:4バイト)を除く1500バイトがMTUとなる。
例えば図1に示すように、端末Aから端末Bへデータを送信する場合を考える。このプロトコルによれば、MTU=1500としてパケットを送信すると(ステップ(1))、ルータCは、ルータCとルータDとの間のMTUが1400であるため、そのパケットを破棄して、ICMP(Internet Control Message Protocol)パケットでエラーを送信元の端末Aに返信する(ステップ(2))。なお、ステップ(2)は、パケットにDF(Don't Fragment)フラグメントがセットされていること(フラグメントが禁止されていること)が条件である。このICMPによるエラー通知には、使用可能なMTU(=1400)が含まれており、端末Aは、MTU=1400に基づきパケットを再度送信することになる(ステップ(3))。なお、DFフラグがセットされていない場合には、ルータCでフラグメントを行うことになり、スループットが低下する。
一方、データセンタなどでは多数の仮想マシン(VM:Virtual Machine)が多数の物理マシン上に起動される。さらに、図2に示すように、1のデータセンタDC1における物理マシンA上で起動された仮想マシンVMAは、L3(レイヤ3)等のネットワークで接続された他のデータセンタDC2における物理マシンB上に起動されている仮想マシンVMBと通信する場合もある。この場合には、L3等のネットワーク上に、仮想的なL2ネットワークを構築して通信を行うことがある。この仮想的なL2ネットワークをL2トンネルと呼び、L2パケットをL3パケットでカプセル化することで通信を行う。なお、L2ネットワークを構築する場合には、物理マシンにおいて仮想計算機環境の基盤となるOS(Operating System)であるホストOSにおいてそのトンネル端点が生成される。
このような環境で通信を行う場合には、L2ネットワークで送信されるL2パケットのMTUは、L3ネットワークで送信されるL3パケットのMTUに応じて決定されるべきである。しかしながら、L3ネットワークに変更が生じた場合、L3パケットのMTUが変化し、さらにL2パケットのMTUも変化する場合がある。また、仮想マシンのマイグレーションや起動又は停止などが生ずると、L2トンネルの構築や破棄なども生じて、L2パケットのMTUが途中で変化する可能性がある。このような問題について考慮した従来技術は存在していない。不適切なMTUでパケットを生成すれば、通信経路途中でフラグメントなどが生じてしまい、スループットが低下する可能性がある。
特開2011−186805号公報 特表2004−535713号公報
従って、本発明の目的は、一側面によれば、仮想マシンに適切なMTUを設定できるようにするための技術を提供することである。
本発明に係り且つコンピュータにより実行される通知方法は、(A)あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ上記コンピュータ上で動作している仮想マシンを特定し、(B)特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量を通知する処理を含む。
一側面によれば、仮想マシンに適切なMTUを設定できるようになる。
図1は、ICMPを説明するための図である。 図2は、仮想環境の一例を示す図である。 図3は、本実施の形態に係るシステムの概要を示す図である。 図4は、本実施の形態に係るシステムの概要を示す図である。 図5は、本実施の形態に係る物理マシンの構成例を示す図である。 図6は、本実施の形態に係る物理マシンの構成例を示す図である。 図7は、MTU検出部の処理フローを示す図である。 図8は、管理テーブルの一例を示す図である。 図9は、テーブル更新部の処理フローを示す図である。 図10は、テーブル更新部の処理フローを示す図である。 図11は、第1テーブル更新処理の処理フローを示す図である。 図12は、第2テーブル更新処理の処理フローを示す図である。 図13Aは、仮想マシンの起動について説明するための図である。 図13Bは、仮想マシンの起動について説明するための図である。 図13Cは、仮想マシンが起動された物理マシンの管理テーブルの一例を示す図である。 図14は、第3テーブル更新処理の処理フローを示す図である。 図15は、第6テーブル更新処理の処理フローを示す図である。 図16Aは、トンネル方式が変更される前の管理テーブルの一例を示す図である。 図16Bは、トンネル方式が変更された後の管理テーブルの一例を示す図である。 図17は、第4テーブル更新処理の処理フローを説明するための図である。 図18は、データセンタ内のマイグレーションについて説明するための図である。 図19は、図18についての管理テーブルの一例を示す図である。 図20は、データセンタ内のマイグレーションについて説明するための図である。 図21は、図20についての管理テーブルの一例を示す図である。 図22は、データセンタ内のマイグレーションについて説明するための図である。 図23は、データセンタ内のマイグレーションについて説明するための図である。 図24は、図22についての管理テーブルの一例を示す図である。 図25は、図24についての管理テーブルの一例を示す図である。 図26は、データセンタ内のマイグレーションについて説明するための図である。 図27は、図26についての管理テーブルの一例を示す図である。 図28は、データセンタ内のマイグレーションについて説明するための図である。 図29は、図28についての管理テーブルの一例を示す図である。 図30は、第5テーブル更新処理の処理フローを示す図である。 図31は、図20についての管理テーブルの一例を示す図である。 図32は、図22についての管理テーブルの一例を示す図である。 図33は、図23についての管理テーブルの一例を示す図である。 図34は、図26についての管理テーブルの一例を示す図である。 図35は、図28についての管理テーブルの一例を示す図である。 図36は、他の実施の形態における物理サーバの構成の一例を示す図である。 図37は、他の実施の形態に係るMTU検出部の処理フローを示す図である。 図38は、コンピュータの機能ブロック図である。
図3及び図4に、本実施の形態に係るシステムの概要を示す。
図3の例では、データセンタDC内に、複数の物理マシンが設けられており、複数の物理マシン間にはDC内L2ネットワークが設けられている。このような場合には、典型的にはL2トンネルを構築することはない。また、これらの物理マシンには、同一ネットワークセグメントに属する1又は複数の仮想マシンが起動される。図3の例では、物理マシン1には、仮想マシンVM1及びVM2が起動されており、物理マシン2には、仮想マシンVM3が起動されている。また、データセンタDCには、仮想マシンの構築及び廃棄など、トンネルの構築及び廃棄などを管理する運用管理装置10も設けられている。
一方、図4に示すように、データセンタDC1とデータセンタDC2とは遠隔地に設けられており、例えばL3ネットワークで接続されている。そして、各データセンタには、1又は複数の物理マシンが設けられている。図4の例では、データセンタDC1には物理マシン1が設けられており、データセンタDC2には物理マシン3が設けられている。そして、これらの物理マシンには、同一のネットワークセグメントに属する1又は複数の仮想マシンが起動される。図4の例では、物理マシン1には仮想マシンVM1及びVM2が起動されており、物理マシン3には、仮想マシンVM4が起動されている。このような場合、L2トンネルを用いるため、物理マシン1にはL2トンネルのトンネル端点T1が設けられ、物理マシン3にはL2トンネルのトンネル端点T2が設けられる。また、少なくともデータセンタDC1には、仮想マシンの配備及び停止など、トンネルの構築及び廃棄などを管理する運用管理装置10も設けられている。
次に、図5及び図6を用いて、本実施の形態に係る物理マシンの構成を説明する。物理マシンでは、ハイパーバイザ100と、ホストOSと、1又は複数のゲストOSとが実行される。ハイパーバイザ100は、物理マシン上に仮想マシンのための複数のゲストOSを並列に実行可能にするためのプログラムである。そして、ハイパーバイザ100は、構成管理部110と、構成データ格納部120とを有する。構成管理部110は、運用管理装置10から、仮想マシンの起動、停止又はマイグレーション、若しくはL2トンネルの構築又は廃棄等の指示を受け付け、指示に従って仮想マシンの起動、停止又はマイグレーション、若しくはL2トンネルの構築又は廃棄などを実施すべくホストOS及びゲストOSなどを制御する。構成データ格納部120は、例えば、ネットワークセグメント毎に、当該ネットワークセグメントに属するゲストOSのアドレス(例えばMAC(Media Access Control address)アドレス。場合によってはIPアドレス。)や、ネットワークセグメントにおいて用いられている通信方式(トンネル種別など)及び端点のデータを格納している。
ホストOSは、ホストエージェント200と、管理テーブル格納部210と、データ格納部220とを有する。ホストエージェント200は、ゲストOS側で用いるべきMTUのデータを、所定のイベントの検出に応じてゲストOSにおけるゲストエージェント300に通知するものであり、テーブル更新部201と、MTU検出部203と、通知部202とを有する。MTU検出部203は、管理テーブル格納部210に格納されている管理テーブルを参照してMTUの変化を検出する処理を行う。テーブル更新部201は、様々な状況に応じて管理テーブルを更新する処理を行う。通知部202は、ゲストOSのゲストエージェント300に対して、使用すべきMTUの値を通知する。データ格納部220は、例えばトンネル種別毎にヘッダ長のデータを格納する。
また、ゲストOSは、ゲストエージェント300と、設定データ格納部310とを有する。そして、ゲストエージェント300は、設定データ格納部310にホストOSから受信したMTUの値を設定するMTU設定部301を有する。
なお、ハイパーバイザ100からの制御に応じて、ホストOSとゲストOSには仮想的なネットワークインタフェースが用意され、さらにホストOSにはブリッジやL2トンネルのためのトンネル端点などが構築される。図5では、Xen(Citrix社製)というハイパーバイザ100を採用した場合の例を示しているが、ゲストOSの仮想ネットワークインタフェースeth0は、ホストOSの仮想ネットワークインタフェースVif1.0を介してL2トンネルのトンネル端点T11に接続されている。このトンネル端点T11は、ホストOSの仮想ネットワークインタフェースeth0を介して物理的なインタフェースと接続される。なお、ここでは、トンネル端点T11は、ソフトウエアスイッチであって、ブリッジ機能とトンネル端点としての機能を有するものとする。本実施の形態におけるМTUの通知については、これらの仮想ネットワークインタフェースを介して行うことができるが、さらにこのような仮想ネットワークインタフェースを介さずに、Xenにおけるデバイスドライバの制御等に用いる機構であるxenbusを用いて通信を行っても良い。なお、他のハイパーバイザであるHyper−V(マイクロソフト社製)においてもVMBusという同様の機能を有するものが存在している。また、本実施の形態は、Xenに限らず適用可能である。
例えば図6に示すようにゲストOSが増加したり、トンネルが増加した場合においても、ホストOS側でトンネル端点を増設し、仮想的なブリッジを起動したりすることで対応可能である。図6の例では、ゲストOS1は、ホストOSの仮想ネットワークインタフェースVif1.0を介してトンネル端点T11に接続して、さらにL2トンネルBを介して通信を行う。また、ゲストOS2は、ホストOSの仮想ネットワークインタフェースVif2.0を介してトンネル端点T12に接続して、さらにL2トンネルAを介して通信を行う。一方、トンネルを使用しないで通信を行うゲストOS3は、ホストOSの仮想ネットワークインタフェースVif3.0を介してホストOSのブリッジに接続して通信を行う。
図5及び図6において示した仮想ネットワークインタフェース、仮想的なブリッジ、トンネル端点及びL2トンネルの構築や廃棄については、従来技術であり、ホストOS、ゲストOS及びハイパーバイザ100が備えている基本的な機能であるので、これ以上説明しない。
次に、本実施の形態に係る処理の内容について、図7乃至図35を用いて説明する。例えば、背景技術の欄で述べたようにフラグメントを禁止した通常のパケットをいずれかの仮想マシンが送信すると、経路の途中におけるルータ等が、Path MTU Discovery(pmtud)のICMPパケットを返信してくる場合がある。
MTU検出部203は、このようなICMPパケットを受信すると(図7:ステップS1)、当該ICMPパケットから、新たなMTUの値を抽出する(ステップS3)。
そして、MTU検出部203は、ICMPパケットの基となるパケットの送信元MACアドレスについて管理テーブル格納部210に格納されている管理テーブルを検索する(ステップS5)。
管理テーブルは、例えば図8に示すようなテーブルである。図8の例では、レコードのID(識別子)と、ゲストOSのMACアドレス(ゲストMAC)と、宛先端点のMACアドレス(宛先MAC)と、トンネル方式と、ヘッダ長と、MTUとを登録するようになっている。図8の例では、1番目のゲストOSについては、トンネル方式GRE(Generic Routing Encapsulation)で、宛先端点とL2トンネルを介して通信を行っており、このトンネル方式GREで送信されるパケットのヘッダ長は「42」である。また、このL2トンネルのMTU「1500」が検出されたものとする。そうすると、このゲストOSにとっては1500−42=1458がMTUとなる。なお、2番目のゲストOSについては、L2トンネルを介した通信を行っておらず、ホストOSの端点(例えばブリッジ)のMACアドレスが、宛先MACアドレスとして登録される。L2トンネルを介した通信を行っていない場合には、トンネル方式は「None」となる。ステップS5では、ゲストMACアドレスの列を、送信元MACアドレスで検索する。
次に、MTU検出部203は、管理テーブルにおいて該当するレコードを検出できたか判断する(ステップS7)。後に述べるように仮想マシン(すなわちゲストOS)起動時には管理テーブルに登録する処理を行うが、登録前にステップS1のイベントが発生した場合などには、ステップS7で該当するレコードが検出されないと判断される。検出されなかった場合には、送信元MACアドレスのゲストOSを管理テーブルに登録するため及び当該ゲストOSのMTUが変更するために、処理はステップS11に移行する。
一方、該当するレコードが検出された場合には、MTU検出部203は、検出されたレコードにおけるMTUはステップS3で取得されたMTUよりも大きいか否かを判断する(ステップS9)。通常であれば、検出されたレコードにおけるMTUに基づきパケットを送信しているので、ICMPパケットを受信する状態では、検出されたレコードにおけるMTUが、取得されたMTUの方よりも大きくなる。これ以外の状態は通常は想定できないので、ここでは検出されたレコードにおけるMTUが、取得されたMTU以下であれば、処理を終了する。
一方、ステップS9の条件を満たしている場合には、MTU検出部203は、MTU変化通知をテーブル更新部201に出力する(ステップS11)。MTU変化通知は、送信元MACアドレス及びMTUのデータを含む。そして処理は終了する。
このようにすれば管理テーブルを更新し、ゲストOS(すなわち仮想マシン)へ通知すべき事象を適切に検出できる。
次に、図9乃至図35を用いてテーブル更新部201及び通知部202の処理内容について説明する。
テーブル更新部201は、MTU検出部203からMTU変化通知を受信したか判断する(図9:ステップS21)。MTU変化通知を受信したわけではない場合には、処理はステップS25に移行する。一方、MTU変化通知を受信した場合には、テーブル更新部201は、第1テーブル更新処理を実行する(ステップS23)。第1テーブル更新処理については、後に説明する。そして処理はステップS25に移行する。
また、テーブル更新部201は、仮想マシン(すなわちゲストOS)の起動が、運用管理装置10などからハイパーバイザ100に対して指示されたか判断する(ステップS25)。例えば、指示を受けたハイパーバイザ100が、テーブル更新部201に通知することでこのイベントを検出する。仮想マシンの起動が指示されていない場合には、処理はステップS29に移行する。一方、仮想マシンの起動が指示された場合には、テーブル更新部201は、第2テーブル更新処理を実行する(ステップS27)。第2テーブル更新処理については、後に説明する。そして処理はステップS29に移行する。
さらに、テーブル更新部201は、仮想マシン(すなわちゲストOS)の停止が、運用管理装置10などからハイパーバイザ100に対して指示されたか判断する(ステップS29)。例えば、指示を受けたハイパーバイザ100が、テーブル更新部201に通知することでこのイベントを検出する。仮想マシンの停止が指示されていない場合には、処理はステップS33に移行する。一方、仮想マシンの停止が指示された場合には、テーブル更新部201は、第3テーブル更新処理を実行する(ステップS31)。第3テーブル更新処理については、後に説明する。そして処理はステップS33に移行する。
また、テーブル更新部201は、自物理マシンが仮想マシン(すなわちゲストOS)のマイグレーション元となっているか判断する(ステップS33)。例えば、マイグレーションの指示を受けたハイパーバイザ100が、テーブル更新部201に通知することで、このイベントを検出する。自物理マシンが仮想マシンのマイグレーション元となっていない場合には、処理は端子Aを介して図10の処理に移行する。一方、自物理マシンが仮想マシンのマイグレーション元となっている場合には、テーブル更新部201は、第4テーブル更新処理を実行する(ステップS35)。第4テーブル更新処理については、後に説明する。そして処理は端子Aを介して図10の処理に移行する。
さらに、テーブル更新部201は、自物理マシンが仮想マシン(すなわちゲストOS)のマイグレーション先となっているか判断する(ステップS37)。例えば、マイグレーションの指示を受けたハイパーバイザ100が、テーブル更新部201に通知することで、このイベントを検出する。自物理マシンが仮想マシンのマイグレーション先となっていない場合には、ステップS41に移行する。一方、自物理マシンが仮想マシンのマイグレーション先となっている場合には、テーブル更新部201は、第5テーブル更新処理を実行する(ステップS39)。第5テーブル更新処理については、後に説明する。そして処理はステップS41に移行する。
さらに、テーブル更新部201は、いずれかのネットワークセグメントについてのトンネル方式の変更が指示されたか判断する(ステップS41)。例えば、マイグレーションの指示を受けたハイパーバイザ100が、テーブル更新部201に通知することで、このイベントを検出する。なお、これまでL2トンネルを使用していなかったがL2トンネルを使用するようになった場合や、その逆の場合もあるし、L2トンネルのトンネル方式を別の方式に切り替える場合などについても、このステップの条件を満たしていると判断する。いずれかのネットワークセグメントについてもトンネル方式の変更が指示されていない場合には、ステップS45に移行する。一方、いずれかのネットワークセグメントについてのトンネル方式の変更が指示された場合には、テーブル更新部201は、第6テーブル更新処理を実行する(ステップS43)。第6テーブル更新処理については、後に説明する。そして処理はステップS45に移行する。
そして、テーブル更新部201は、処理終了が指示されたか否かを判断する(ステップS45)。例えば、運用管理装置10やハイパーバイザ100等から処理終了が指示された場合、処理を終了する。一方、処理終了ではない場合には、処理は端子Bを介してステップS21に戻る。
このように様々なイベントにおいて適切に管理テーブルを更新し、ゲストOS側にMTUとして適切なデータ量を通知することができるようになる。
次に、図11を用いて第1テーブル更新処理について説明する。テーブル更新部201は、管理テーブルにおいて、ICMPパケットを発生させたパケットの送信元に関連するレコードが存在するか判断する(図11:ステップS51)。
ICMPパケットを発生させたパケットの送信元に関連するレコードが管理テーブルに存在する場合には、テーブル更新部201は、ICMPパケットを発生させたパケットの送信元のレコード及び当該送信元と同一のネットワークセグメントに属する仮想マシン(すなわちゲストOS)についてのレコードにおけるMTUを更新する(ステップS53)。そして処理はステップS57に移行する。
例えば、テーブル更新部201は、ICMPパケットを発生させたパケットの送信元のレコードにおける宛先端点のMACアドレスと同一の宛先端点のMACアドレスを含むレコードを、管理テーブルから抽出することで、同一のネットワークセグメントに属する仮想マシンのレコードを特定する。なお、ハイパーバイザ100の構成管理部110に問い合わせることで、同一ネットワークセグメントに属する仮想マシンのMACアドレスを取得し、当該MACアドレスで、管理テーブルを検索するようにしても良い。
一方、ICMPパケットを発生させたパケットの送信元に関連するレコードが管理テーブルに存在しない場合には、テーブル更新部201は、ICMPパケットを発生させたパケットの送信元についてのレコードを管理テーブルにおいて生成し、当該送信元のネットワークセグメントについての宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを取得して、登録する(ステップS55)。
宛先端点のMACアドレス及びトンネル方式については、例えばハイパーバイザ100の構成管理部110に送信元のMACアドレスによって問い合わせることで取得し、データ格納部220からトンネル方式に対応付けられたヘッダ長を取得する。なお、ステップS53と同様に、本ステップでも同一ネットワークセグメントに属する仮想マシンについてのレコードについても更新するようにしても良い。
そして、テーブル更新部201は、MTUが更新又は登録されたレコードにおける仮想マシン(すなわちゲストOS)用MTUを、(現在のMTU−ヘッダ長)によって算出して、通知部202に出力し、通知部202は、MTUが更新又は登録されたレコードについての仮想マシンに対して、仮想マシン用MTUを通知する(ステップS57)。
これに対して、仮想マシン(すなわちゲストOS)におけるゲストエージェント300は、仮想マシン用MTUを受信すると、そのMTU設定部301は、設定データ格納部310に仮想マシン用MTUを格納する(ステップS59)。
これによって、仮想マシン(すなわちゲストOS)側では、変化後に通知されたMTUに応じたパケットを生成するので、スループットの低下無く、データの通信を行うことができるようになる。
次に、仮想マシンの起動を検出した場合に実行される第2テーブル更新処理について図12を用いて説明する。
テーブル更新部201は、仮想マシン(すなわちゲストOS)の起動に応じてL2トンネルの構築が行われるか判断する(図12:ステップS61)。
例えば、図13Aに示すように、例えばデータセンタDC1に物理マシンAが設けられ、データセンタDC2に物理マシンBが設けられ、データセンタDC1とデータセンタDC2との間がL3ネットワークで接続されているものとする。そして、物理マシンAには、あるネットワークセグメントについて仮想マシンVM1及びVM2とが起動されているが、物理マシンBにはそのネットワークセグメントについての仮想マシンは起動されていないものとする。このような状態で、物理マシンBに仮想マシンVM3を起動すると、図13Bに示すような状態となる。
図13Bでは、データセンタDC1とデータセンタDC2との間には、例えばGREのL2トンネルが構築される。そうすると、物理マシンAには、L2トンネルの宛先端点A1が構築され、当該宛先端点A1と仮想マシンVM1及びVM2とが接続される構成となる。一方、物理マシンBには、L2トンネルの宛先端点B1が構築され、当該宛先端点B1と仮想マシンVM3とが接続される構成となる。ステップS61では、図13Bの状態になるのか否かを判断する。
仮想マシンの起動に応じてL2トンネルの構築が行われる場合には、テーブル更新部201は、構築されるL2トンネルの宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを取得する(ステップS63)。例えば、L2トンネルの宛先端点のMACアドレス及びトンネル方式については、ハイパーバイザ100の構成管理部110から取得し、ヘッダ長についてはデータ格納部220からトンネル方式に対応する値を読み出す。MTUについては、ハイパーバイザ100の構成管理部110などから取得できれば取得し、できなければ一度宛先端点のMACアドレス宛に大きなMTUを前提としたパケットを送信してICMPパケットを受信することで取得する。
そして、テーブル更新部201は、起動された仮想マシン(すなわちゲストOS)についてのレコードを管理テーブルにおいて生成し、取得したデータを登録する(ステップS65)。
図13Bの例では、図13Cに示すような管理テーブルとなる。図13Cの例では、起動した仮想マシンのMACアドレスは「MAC_3」であり、宛先端点A1のMACアドレスは「MAC_A1」であり、トンネル方式が「GRE」で、ヘッダ長は「42」であり、ここではMTUが「1460」となっている。
そして、テーブル更新部201は、MTUが更新又は登録されたレコードにおける仮想マシン(すなわちゲストOS)用MTUを、(現在のMTU−ヘッダ長)によって算出して、通知部202に出力し、通知部202は、MTUが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用MTUを通知する(ステップS67)。
これに対して、仮想マシン(すなわちゲストOS)におけるゲストエージェント300は、仮想マシン用MTUを受信すると、そのMTU設定部301は、設定データ格納部310に仮想マシン用MTUを格納する。
一方、トンネルの構築を伴わない仮想マシン(すなわちゲストOS)の起動である場合、テーブル更新部201は、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作しているか否かを判断する(ステップS69)。例えば、構成管理部110から、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンのMACアドレスを取得する。
ここで他の仮想マシンが自物理マシン上で動作していない場合には、テーブル更新部201は、起動された仮想マシンについてのレコードを生成し、初期的な宛先端点のMACアドレス、初期的なトンネル方式(典型的にはNone)、初期ヘッダ長(典型的には0)及び初期MTU(典型的には1500)を登録する(ステップS71)。そして処理はステップS67に移行する。このように、孤立した形で仮想マシンが起動された場合には、ステップS71の処理を実行する。
一方、起動された仮想マシンと同一ネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作している場合には、テーブル更新部201は、起動された仮想マシンについてのレコードを生成し、同一ネットワークセグメントに属する他の仮想マシンについての宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを登録する(ステップS73)。
同一のネットワークセグメントに属する他の仮想マシンが自物理マシン上で動作していれば、同じ通信方式で通信することになるので、当該他の仮想マシンについての宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUをそのまま用いる。L2トンネルが構築されていれば、そのL2トンネルを用い、L2トンネルが構築されていない場合には、ホストOSのブリッジが用いられる。そして処理はステップS67に移行する。
このように仮想マシンの起動においても適切に管理テーブルを更新して、起動された仮想マシンに対して適切なMTUを通知できる。
次に、仮想マシンの停止に応じて実行される第3テーブル更新処理について図14を用いて説明する。
テーブル更新部201は、停止された仮想マシン(すなわちゲストOS)のレコードを、管理テーブルにおいて削除する(図14:ステップS81)。
そして、テーブル更新部201は、仮想マシンの停止に応じてトンネル方式の変更が発生したか判断する(ステップS83)。例えば、ハイパーバイザ100の構成管理部110に問い合わせるか又は構成管理部110からL2トンネルの変更が通知されたか判断する。
例えば、図13Bの状態において、仮想マシンVM3を停止させる場合には、データセンタDC1とデータセンタDC2との間の通信は行われなくなる。よって、図13Aに示すような状態に戻すためL2トンネルも廃棄する場合もある。
このようにトンネル方式の変更がある場合には、テーブル更新部201は、トンネル方式の変更があった際に行われる第6テーブル更新処理を実行する(ステップS85)。一方、トンネル方式に変更がない場合には、処理は呼出元の処理に戻る。
次に、トンネル方式の変更があった際に行われる第6テーブル更新処理について図15乃至図16Bを用いて説明する。
テーブル更新部201は、変更後のL2トンネルの宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを取得する(図15:ステップS91)。例えば、L2トンネルの宛先端点のMACアドレス及びトンネル方式については、ハイパーバイザ100の構成管理部110から取得し、ヘッダ長についてはデータ格納部220からトンネル方式に対応する値を読み出す。MTUについては、ハイパーバイザ100の構成管理部110などから取得できれば取得し、できなければ一度宛先端点のMACアドレス宛に大きなMTUを前提としたパケットを送信してICMPパケットを受信することで取得する。
また、テーブル更新部201は、変更されたトンネルに関連するネットワークセグメントに属する仮想マシン(すなわちゲストOS)についてのレコードを、管理テーブルにおいて特定する(ステップS93)。
例えば、ハイパーバイザ100の構成管理部110から、変更されたトンネルに関連するネットワークセグメントに属する仮想マシンのMACアドレスを取得して、当該MACアドレスをゲストOSのMACアドレスとするレコードを抽出する。
また、テーブル更新部201は、特定されたレコードにおける宛先端点のMACアドレス、L2トンネルのトンネル方式、ヘッダ長及びMTUを、ステップS91で取得されたデータで置換する(ステップS95)。
そして、テーブル更新部201は、MTUが更新又は登録されたレコードにおける仮想マシン(すなわちゲストOS)用MTUを、(現在のMTU−ヘッダ長)によって算出して、通知部202に出力し、通知部202は、MTUが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用MTUを通知する(ステップS97)。
これに対して、仮想マシン(すなわちゲストOS)におけるゲストエージェント300は、仮想マシン用MTUを受信すると、MTU設定部301は、設定データ格納部310に仮想マシン用MTUを格納する。
例えば、図13A及び図13BではデータセンタDC2において仮想マシンVM3を起動しているので、データセンタDC1では、トンネル方式の変更が発生したことになる。すなわち、図13Aでは同一のネットワークセグメントに属する仮想マシンVM1及びVM2は、ブリッジで接続されているが、図13Bではそのネットワークセグメントに属する仮想マシンVM3がデータセンタDC2で起動されたので、L2トンネルの端点A1、L2トンネル及びL2トンネルの端点B1により仮想マシンVM1乃至VM3が通信を行うことになる。
図13Aの状態であれば、物理マシンAでは図16Aに示すような管理テーブルとなる。図16Aの例では、宛先端点のMACアドレスは、ブリッジのMACアドレス「MAC_A1」となっており、L2トンネルが構築されていないので、トンネル方式は「None」であり、ヘッダ長も「0」である。
そして、図13Bの状態になれば、物理マシンAでは図16Bに示すような管理テーブルとなる。L2トンネルのトンネル方式は「GRE」であり、ヘッダ長が「42」であり、MTUは「1460」であるのは、図13Cと同様であるが、宛先端点のMACアドレスは、データセンタDC2側の端点B1のMACアドレス「MAC_B1」となる。
このようにトンネル方式の変更があった場合には、それに応じて管理テーブルも更新することで、適切なデータ量をMTUとして仮想マシン(すなわちゲストOS)に通知できる。
次に、仮想マシンのマイグレーションが行われる場合の処理である第4テーブル更新処理及び第5テーブル更新処理について説明する。
まず、マイグレーション元の物理マシンで実行される第4テーブル更新処理について図17乃至図29を用いて説明する。
テーブル更新部201は、ハイパーバイザ100からマイグレーションのデータを取得する(図17:ステップS101)。具体的には、マイグレーション対象の仮想マシンのMACアドレス、マイグレーション対象の仮想マシンが属するネットワークセグメントのデータ、使用される通信方式(L2トンネルのトンネル方式など)、移動先データ(移動先のデータセンタ及び移動先の物理マシンのアドレスなど)などである。
そして、テーブル更新部201は、マイグレーション先は同一データセンタ内であるか判断する(ステップS103)。マイグレーション先が同一データセンタ内であれば、テーブル更新部201は、マイグレーション対象の仮想マシン(すなわちゲストOS)のためのレコードを、管理テーブルにおいて削除する(ステップS111)。そして呼出元の処理に戻る。
例えば、図18に示すように、データセンタDC1において物理マシンAと物理マシンCとが、データセンタ内のL2ネットワークで接続されている場合を考える。ここで、物理マシンAにおいて仮想マシンVM1及びVM2が起動されているので、図19に示すような管理テーブルが物理マシンAに保持される。図19の例では、仮想マシンVM1のMACアドレス「MAC_1」についてのレコードと、仮想マシンVM2のMACアドレス「MAC_2」についてのレコードとを含む。L2トンネルは構築されていないので、宛先端点のMACアドレスは、ブリッジA1のMACアドレス「MAC_A1」となっており、トンネル方式「None」が設定されている。
一方、図20に示すように、データセンタDC1における物理マシンAから物理マシンCへの、仮想マシンVM2のマイグレーションが発生すると、移動元の物理マシンAでは、図21に示すような管理テーブルとなる。この場合L2トンネルは構築されていないので、仮想マシンVM2のためのレコードが単純に削除されることになる。
一方、マイグレーション先が同一のデータセンタ内ではない場合、テーブル更新部201は、トンネル方式に変更があるのか否かを判断する(ステップS105)。トンネル方式に変更がある場合というのは、例えば、マイグレーションによって移動元の物理マシンに同一ネットワークセグメントに属する他の仮想マシンがなくなってしまう場合である。一方、トンネル方式に変更がない場合というのは、例えば、マイグレーションによって仮想マシンが1つ無くなっても同一ネットワークセグメントに属する他の仮想マシンが存在する場合である。トンネル方式に変更がない場合には、処理はステップS111に移行する。
図22に示すように、データセンタDC1に設けられた物理マシンAには、仮想マシンVM1乃至VM3が動作しており、データセンタDC2に設けられた物理マシンBには、仮想マシンVM1乃至VM3と同一のネットワークセグメントに属する仮想マシンVM4が動作している状態で、仮想マシンVM3が物理マシンBへマイグレーションを行う場合を想定する。この場合には、既にデータセンタDC1とデータセンタDC2との間にはL2トンネルが既に構築されているので、図23に示すように仮想マシンVM3が移動した後でも、典型的にはL2トンネルに変更はない。
従って、図22の状態において、物理マシンAにおける管理テーブルは図24に示すように、3つの仮想マシンVM1乃至VM3のためのレコードが設けられており、それぞれトンネル方式「GRE」のL2トンネルについてのデータが登録されている。その後、図23の状態になっても、物理マシンAにおける管理テーブルは図25に示すように、単にマイグレーションによって居なくなった仮想マシンVM3のレコードが削除されるだけである。
一方、トンネル方式に変更がある場合には、テーブル更新部201は、マイグレーション対象の仮想マシン(すなわちゲストOS)のためのレコードを、管理テーブルにおいて削除する(ステップS107)。ステップS111と同様である。
さらに、テーブル更新部201は、第6テーブル更新処理を実行する(ステップS109)。この第6テーブル更新処理については、図15で説明したとおりであり、説明を省略する。
例えば、図26に示すように、データセンタDC1に設けられた物理マシンAで仮想マシンVM1乃至VM3が動作しており、それらは同一のネットワークセグメントに属している。また、データセンタDC2に設けられた物理マシンBで仮想マシンVM4及びVM5が動作しており、それらは仮想マシンVM1乃至VM3とは異なるネットワークセグメントに属している。このような状態では、物理マシンAでは、ブリッジA11で仮想マシンVM1乃至VM3が接続されており、物理マシンBでは、ブリッジB3で仮想マシンVM4及びVM5が接続されており、データセンタ間にはL2トンネルは設けられていない。
このような場合、物理マシンA側の管理テーブルは、図27に示すような状態となる。このようにデータセンタ内における同一物理マシン内での通信であるから、トンネル方式は「None」となる。
その後、図28に示すように、仮想マシンVM3が、データセンタDC2の物理マシンBへ移動した場合、データセンタDC1の物理マシンA上の仮想マシンVM1及びVM2と通信を行うために、L2トンネルが構築される。そして、物理マシンA側では、L2トンネルの端点A1が構築され、物理マシンB側では、そのL2トンネルの端点B2が構築される。
そうすると、物理マシンA側の管理テーブルは、図29に示すような状態に変化する。図29の例では、移動してしまった仮想マシンVM3のレコードは削除されており、新たに構築されたL2トンネルを用いるような形に、仮想マシンVM1及びVM2についてのレコードも更新されている。仮想マシンVM1及びVM2の部分については、第6テーブル更新処理によって更新される。
次に、マイグレーション先の物理マシンで実行される第5テーブル更新処理について図30乃至図35を用いて説明する。
テーブル更新部201は、ハイパーバイザ100からマイグレーションのデータを取得する(図30:ステップS121)。具体的には、マイグレーション対象の仮想マシンのMACアドレス、マイグレーション対象の仮想マシンが属するネットワークセグメントのデータ、使用される通信方式(L2トンネルのトンネル方式など)、移動元データ(移動元のデータセンタ及び移動元の物理マシンのアドレスなど)などである。
そして、テーブル更新部201は、マイグレーション元は同一データセンタ内であるか判断する(ステップS123)。マイグレーション元が同一データセンタ内であれば、テーブル更新部201は、現在の通信方式(トンネルなど)における宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを取得し、当該取得されたデータを含む、マイグレーション対象の仮想マシンのためのレコードを、管理テーブルにおいて追加する(ステップS133)。
本実施の形態では、データセンタ内におけるL2ネットワークが完備しているものとして、ここでは、初期的な通信方式「None」、宛先端点となるブリッジのMACアドレス「MAC_C1」、初期的なヘッダ長「0」及び初期的なMTU「1500」を取得して、マイグレーション対象の仮想マシンVM2のMACアドレスと共に、管理テーブルに登録する。
上で述べた図18の状態から図20の状態に遷移した場合、移動先の物理マシンCには、管理テーブルに何も登録されていない状態から、図31の状態に変化する。図31では、仮想マシンVM2のMACアドレス「MAC_2」と、上で述べたデータとを含むレコードが追加される。
そして、テーブル更新部201は、MTUが更新又は登録されたレコードにおける仮想マシン(すなわちゲストOS)用MTUを、(現在のMTU−ヘッダ長)によって算出して、通知部202に出力し、通知部202は、MTUが更新又は登録されたレコードにおける仮想マシンに対して、仮想マシン用MTUを通知する(ステップS131)。
これに対して、仮想マシン(すなわちゲストOS)におけるゲストエージェント300は、仮想マシン用MTUを受信すると、MTU設定部301は、設定データ格納部310に仮想マシン用MTUを格納する。
一方、マイグレーション元が同一データセンタ内ではない場合、テーブル更新部201は、トンネル方式に変更があるか否かを判断する(ステップS125)。トンネル方式に変更がない場合には、処理はステップS133に移行する。
図22に示すような状態から図23に示すような状態へ遷移する場合、トンネル方式に変更はない。この場合、物理マシンB側の管理テーブルは、マイグレーション前には、図32に示すような状態となる。すなわち、仮想マシンVM4のMACアドレス「MAC_4」に対して、宛先端点のMACアドレス「MAC_A1」、トンネル方式「GRE」、ヘッダ長「42」及びMTU「1460」が登録されるようになっている。
これに対して、マイグレーション後には、図33に示すような状態になる。この場合には、既に同一ネットワークセグメントに属する仮想マシンVM4が存在しているので、当該仮想マシンVM4と同様のデータを含む、仮想マシンVM3についてのレコードが追加される。
一方、トンネル方式に変更がある場合には、テーブル更新部201は、変更後のL2トンネルの宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを取得する(ステップS127)。例えば、L2トンネルの宛先端点のMACアドレス及びトンネル方式については、ハイパーバイザ100の構成管理部110から取得し、ヘッダ長についてはデータ格納部220からトンネル方式に対応する値を読み出す。MTUについては、ハイパーバイザ100の構成管理部110などから取得できれば取得し、できなければ一度宛先端点のMACアドレス宛に大きなMTUを前提としたパケットを送信してICMPパケットを受信することで取得する。
そして、テーブル更新部201は、変更後のL2トンネルの宛先端点のMACアドレス、トンネル方式、ヘッダ長及びMTUを含む、マイグレーション対象の仮想マシンのためのレコードを、管理テーブルにおいて追加する(ステップS129)。
図26の状態において、マイグレーション先の物理マシンB側の管理テーブルは、図34に示すような状態となる。すなわち、物理マシンB上で動作している仮想マシンVM4及びVM5のレコードのみが含まれる。一方、図28に示すような状態に遷移すると、図35に示すような状態となる。図35に示すように、仮想マシンVM4及びVM5のレコードには影響はないが、移動してきた仮想マシンVM3については、新たに構築されたL2トンネルのデータを含むレコードが追加されている。
ステップS129が完了すると、処理はステップS131に移行する。
このような処理を行えば、マイグレーションが発生したとしても、適切なMTUが仮想マシン側に設定される。
以上のような処理を実行することで、適切なMTUを、仮想マシン(すなわちゲストOS)側に通知でき、さらに仮想マシンにおいて設定できる。これによって、通信経路上におけるフラグメントを開始でき、スループットの低下を防止できる。
[その他の実施の形態]
上で述べた実施の形態では、図5においてゲストOSにおけるMTU設定部301が、設定データ格納部310に対して、適切なMTUの値を設定する例を示した。しかし、ゲストOS上で実行されるアプリケーションプログラムが、ネットワーク通信においてMTUに最適化した形でデータを出力するようなアプリケーションプログラムである場合もある。このような場合に対処するため、図36に示すように、ゲストエージェント300に、通知部302を設け、ホストエージェント200からMTUの値を取得した場合には、通知部302によって、変化後のMTUの値を、アプリケーションプログラムにシグナルなどによって通知しても良い。
さらに、MTU検出部203は、MTUの低下については上で述べた処理において検出できるが、MTUは増加する場合もある。
この場合に対処するため、例えば図37に示すような処理を別途行うようにしても良い。MTU検出部203は、例えば管理テーブルにおけるレコード毎に、フラグメントを禁止した上で大きいサイズ(例えば1500)のパケットを当該レコードにおける宛先端点のMACアドレスに対して送信する等して、現在のMTUを取得する(図37:ステップS141)。なお、パケットサイズを徐々に変えつつ複数回pingを出力してMTUを特定するようにしても良い。
そして、MTU検出部203は、管理テーブルにおけるレコード毎に、ステップS141で取得したMTUと、登録されているMTUとを比較して変化したか否かを判断する(ステップS143)。ここで変化しなかったレコードについては処理を終了する。一方、MTUが変化したと判断されたレコードについては、MTU検出部203は、テーブル更新部201に対してMTU変化通知を出力する(ステップS145)。
テーブル更新部201は、MTU変化通知に応じて上で述べた処理を行えば、現在のMTUが仮想マシンに通知され、設定されるようになる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、機能ブロック図は一例であって、プログラムモジュール構成とは異なる場合もある。
また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを並列に実行するようにしても良い。
さらに、構成管理部110及び構成データ格納部120については、ホストOS側に設けられる場合もある。
なお、上で述べた物理マシンは、コンピュータ装置であって、図38に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのプログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOSなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る通知方法は、(A)あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ自物理マシン(すなわちコンピュータ)上で動作している仮想マシンを特定し、(B)特定された仮想マシンに対して、変化後の最大伝送単位に基づくデータ量(例えば、変化後の最大伝送単位から、上記あるネットワークセグメントにおいて送信されるパケットのヘッダ長を差し引いたパケット長)を通知する処理を含む。
このようにすれば、仮想マシンにおいて適切なMTUに基づきパケットを送信することができるようになる。
また、上で述べた特定する処理において、自物理マシン上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ上記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の最大伝送単位とを比較することで、最大伝送単位の変化を検出するようにしても良い。このようなデータ格納部を管理することで、変化の検出及び通知を効率化できる。
さらに、本通知方法は、(C)上記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ自物理マシン上で動作している仮想マシンを特定し、(D)特定された仮想マシンに対して、変更後の通信方式により特定される最大伝送単位に基づくデータ量を通知する処理をさらに含むようにしても良い。例えば、L2トンネルを使わない状態から特定の方式によるL2トンネルを使うようになれば、最大伝送単位が変化する可能性があり、このような状況にも対処可能となる。
さらに、本通知方法は、(E)自物理マシン上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された仮想マシンに対して通知する処理をさらに含むようにしても良い。仮想マシンの起動時にもその仮想マシンにとって適切なMTUに基づきパケットを送信できるようになる。
また、本通知方法は、(F)自物理マシン上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた仮想マシンに対して通知する処理をさらに含むようにしても良い。仮想マシンのマイグレーションが発生したとしても、当該仮想マシンに対して当該仮想マシンにとって適切なMTUに基づきパケットを送信できるようになる。
さらに、本通知方法は、(G)自物理マシン上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ自物理マシン上で動作している、ある仮想マシン以外の仮想マシンを特定し、(H)特定された仮想マシンに対して、変更後の通信方式により特定される最大伝送単位に基づくデータ量を通知する処理をさらに含むようにしても良い。このようにマイグレーションが発生した場合にも、適切に対処できるようになる。
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を含み、前記コンピュータに実行される通知方法。
(付記2)
前記特定する処理において、
前記コンピュータ上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ前記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の前記最大伝送単位とを比較することで、前記最大伝送単位の変化を検出する
付記1記載の通知方法。
(付記3)
前記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される付記1又は2記載の通知方法。
(付記4)
前記コンピュータ上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される付記1乃至3のいずれか1つ記載の通知方法。
(付記5)
前記コンピュータ上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた前記仮想マシンに対して通知する
処理をさらに含み、前記コンピュータに実行される付記1乃至4のいずれか1つ記載の通知方法。
(付記6)
前記コンピュータ上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ前記コンピュータ上で動作している、前記ある仮想マシン以外の仮想マシンを特定し、
特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
処理をさらに含み、前記コンピュータに実行される付記1乃至5のいずれか1つ記載の通知方法。
(付記7)
コンピュータに、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
処理を実行させるための通知プログラム。
(付記8)
情報処理装置であって、
あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記情報処理装置上で動作している仮想マシンを特定する特定部と、
特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する通知部と、
を有する情報処理装置。
201 テーブル更新部
202 通知部
203 MTU検出部
210 管理テーブル格納部
220 データ格納部
301 MTU設定部
310 設定データ格納部

Claims (8)

  1. コンピュータに、
    あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
    特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
    処理を含み、前記コンピュータに実行される通知方法。
  2. 前記特定する処理において、
    前記コンピュータ上で動作している仮想マシン毎に現在の最大伝送単位を格納するデータ格納部に格納されており且つ前記あるネットワークセグメントに属している仮想マシンの現在の最大伝送単位と、変化後の前記最大伝送単位とを比較することで、前記最大伝送単位の変化を検出する
    請求項1記載の通知方法。
  3. 前記あるネットワークセグメントにおける通信方式に変更が発生した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
    特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
    処理をさらに含み、前記コンピュータに実行される請求項1又は2記載の通知方法。
  4. 前記コンピュータ上に仮想マシンを起動する場合、当該仮想マシンが属するネットワークセグメントにおける通信方式により特定される最大伝送単位に基づくデータ量を、起動された前記仮想マシンに対して通知する
    処理をさらに含み、前記コンピュータに実行される請求項1乃至3のいずれか1つ記載の通知方法。
  5. 前記コンピュータ上に仮想マシンが移動してくる場合には、当該仮想マシンが属するネットワークセグメントにおいて採用される通信方式により特定される最大伝送単位に基づくデータ量を、移動してきた前記仮想マシンに対して通知する
    処理をさらに含み、前記コンピュータに実行される請求項1乃至4のいずれか1つ記載の通知方法。
  6. 前記コンピュータ上からある仮想マシンが移動することで当該ある仮想マシンが属するネットワークセグメントにおける通信方式に変更が発生した場合、当該ネットワークセグメントに属し且つ前記コンピュータ上で動作している、前記ある仮想マシン以外の仮想マシンを特定し、
    特定された前記仮想マシンに対して、変更後の前記通信方式により特定される最大伝送単位に基づくデータ量を通知する
    処理をさらに含み、前記コンピュータに実行される請求項1乃至5のいずれか1つ記載の通知方法。
  7. コンピュータに、
    あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記コンピュータ上で動作している仮想マシンを特定し、
    特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する
    処理を実行させるための通知プログラム。
  8. 情報処理装置であって、
    あるネットワークセグメントについて送信されるパケットの最大伝送単位の変化を検出した場合、当該あるネットワークセグメントに属し且つ前記情報処理装置上で動作している仮想マシンを特定する特定部と、
    特定された前記仮想マシンに対して、変化後の前記最大伝送単位に基づくデータ量を通知する通知部と、
    を有する情報処理装置。
JP2013148179A 2013-07-17 2013-07-17 通知方法、装置及びプログラム Pending JP2015023329A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013148179A JP2015023329A (ja) 2013-07-17 2013-07-17 通知方法、装置及びプログラム
US14/301,548 US9660902B2 (en) 2013-07-17 2014-06-11 Apparatus, method and computer-readable medium of providing acceptable transmission unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013148179A JP2015023329A (ja) 2013-07-17 2013-07-17 通知方法、装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2015023329A true JP2015023329A (ja) 2015-02-02

Family

ID=52343479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013148179A Pending JP2015023329A (ja) 2013-07-17 2013-07-17 通知方法、装置及びプログラム

Country Status (2)

Country Link
US (1) US9660902B2 (ja)
JP (1) JP2015023329A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016201852A1 (de) 2015-02-09 2016-08-11 Dmg Mori Co., Ltd. Werkstück-Abgabevorrichtung für eine Werkzeugmaschine

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10164892B2 (en) * 2013-12-31 2018-12-25 Red Hat Israel, Ltd. Overhead management for virtual machines
US9537797B2 (en) * 2014-06-13 2017-01-03 Vmware, Inc. MTU management in a virtualized computer system
US10015201B2 (en) * 2015-06-30 2018-07-03 At&T Intellectual Property I, L.P. Implementing application level multimedia services as a switching function
US9990222B2 (en) 2016-03-18 2018-06-05 Airwatch Llc Enforcing compliance rules against hypervisor and virtual machine using host management component
JP6718739B2 (ja) * 2016-05-19 2020-07-08 アラクサラネットワークス株式会社 通信装置および通信方法
CN110636551B (zh) * 2018-06-25 2022-05-17 上海华为技术有限公司 避免报文分片的方法和装置
US11070483B2 (en) * 2019-02-11 2021-07-20 Cisco Technology, Inc. Discovering and mitigating MTU/fragmentation issues in a computer network
US11627093B1 (en) * 2020-10-30 2023-04-11 Juniper Networks, Inc. Generic layer independent fragmentation of non-internet protocol frames
US11477270B1 (en) * 2021-07-06 2022-10-18 Vmware, Inc. Seamless hand-off of data traffic in public cloud environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522345A (ja) * 1991-07-12 1993-01-29 Hitachi Ltd 最大転送単位の最適値管理決定方式
JPH11168492A (ja) * 1997-12-03 1999-06-22 Hitachi Cable Ltd ルータの中継方法及びルータ装置
JP2005151021A (ja) * 2003-11-13 2005-06-09 Ntt Communications Kk パケット制御方法及びシステムならびにプログラム
JP2009171307A (ja) * 2008-01-17 2009-07-30 Canon Inc 中継装置および情報通知方法、プログラム
US20100306391A1 (en) * 2009-05-28 2010-12-02 Microsoft Corporation Single-interface dynamic mtu control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892753A (en) * 1996-12-02 1999-04-06 International Business Machines Corporation System and method for dynamically refining PMTU estimates in a multimedia datastream internet system
EP1402692A4 (en) 2001-06-04 2005-06-15 Nct Group Inc SYSTEM AND METHOD FOR INCREASING THE EFFECTIVE BANDWIDTH OF A COMMUNICATION NETWORK
JP4222353B2 (ja) * 2005-09-16 2009-02-12 ヤマハ株式会社 Ip通信装置およびip通信システム
JP5465046B2 (ja) 2010-03-09 2014-04-09 株式会社Kddi研究所 情報処理システムの構成方法および物理マシン
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US9118596B2 (en) * 2013-02-28 2015-08-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reducing fragmentation of packets in a networking environment
US9497106B2 (en) * 2013-04-06 2016-11-15 Citrix Systems, Inc. Systems and methods for synchronizing MSS and PMTU in Ncore and cluster systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522345A (ja) * 1991-07-12 1993-01-29 Hitachi Ltd 最大転送単位の最適値管理決定方式
JPH11168492A (ja) * 1997-12-03 1999-06-22 Hitachi Cable Ltd ルータの中継方法及びルータ装置
JP2005151021A (ja) * 2003-11-13 2005-06-09 Ntt Communications Kk パケット制御方法及びシステムならびにプログラム
JP2009171307A (ja) * 2008-01-17 2009-07-30 Canon Inc 中継装置および情報通知方法、プログラム
US20100306391A1 (en) * 2009-05-28 2010-12-02 Microsoft Corporation Single-interface dynamic mtu control

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
伊勢幸一: "SDNは使えるのか、使うべきなのか? 仮想ネットワークの落とし穴", SOFTWAREDESIGN 発刊273号, JPN6017004397, June 2013 (2013-06-01), JP, pages 第128−135頁 *
鈴木健一ほか: "OpenFlowと協調する仮想マシン環境におけるリアルタイム通信基盤の設計", マルチメディア,分散,協調とモバイル(DICOMO2013)シンポジウム論文集 情報処理学会シンポジ, JPN6017004396, 10 July 2013 (2013-07-10), JP *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016201852A1 (de) 2015-02-09 2016-08-11 Dmg Mori Co., Ltd. Werkstück-Abgabevorrichtung für eine Werkzeugmaschine

Also Published As

Publication number Publication date
US20150023146A1 (en) 2015-01-22
US9660902B2 (en) 2017-05-23

Similar Documents

Publication Publication Date Title
JP2015023329A (ja) 通知方法、装置及びプログラム
CA2895001C (en) Method and apparatus for implementing communication between virtual machines
US11941423B2 (en) Data processing method and related device
US8370530B2 (en) Method and system for controlling network traffic in a blade chassis
US10038629B2 (en) Virtual machine migration using label based underlay network forwarding
US8892706B1 (en) Private ethernet overlay networks over a shared ethernet in a virtual environment
US7941539B2 (en) Method and system for creating a virtual router in a blade chassis to maintain connectivity
US9680750B2 (en) Use of tunnels to hide network addresses
EP3422642B1 (en) Vlan tagging in a virtual environment
WO2018040530A1 (zh) 一种确定虚拟机迁移的方法和装置
US9634930B2 (en) Method of controlling virtual router, computer-readable recording medium, and control device
JP6574304B2 (ja) 仮想ネットワーク管理
JP5760647B2 (ja) 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム
US10050859B2 (en) Apparatus for processing network packet using service function chaining and method for controlling the same
JP6365306B2 (ja) クラウド環境提供システム、サービス管理装置、経路制御方法及びプログラム
CN116057909A (zh) 支持分布式网关服务体系架构的路由公告
CN107645402B (zh) 一种路由管理方法和装置
CN107682275B (zh) 报文监控方法及装置
CN112637105B (zh) 切换防火墙的方法、系统、装置及计算机可读存储介质
US20190363977A1 (en) Packet flow information invalidation in software-defined networking (sdn) environments
US11650859B2 (en) Cloud environment configuration based on task parallelization
US20210184953A1 (en) Simulation-based cross-cloud connectivity checks
US9559937B2 (en) Apparatus and method for relaying communication between nodes coupled through relay devices
JP6260310B2 (ja) ネットワークスイッチ、ネットワークシステム及びネットワークシステムの制御方法
EP3439249B1 (en) Network system, management method and device for same, and server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170421

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170523