(57)【特許請求の範囲】
【請求項１】
マルチキャストアドレスに対応付けて、各物理マシンが属するマルチキャストグループを含むマルチキャストパケットの送信先情報を記憶する送信先記憶部と、
第１の物理マシン上で動作する仮想マシンを第２の物理マシン上に移動させる移動処理が行われる場合に、前記送信先記憶部に記憶されている送信先情報に基づいて、受信したマルチキャストパケットの送信先が前記第１の物理マシンであるか否かを判定する判定部と、
前記判定部によって前記第１の物理マシンが前記マルチキャストパケットの送信先であると判定された場合に、該第１の物理マシンが属する第１のマルチキャストグループに前記第２の物理マシンを追加する追加部と、
前記第１の物理マシンおよび前記第２の物理マシンが前記第１のマルチキャストグループに属する限り、前記移動処理による移動元の前記仮想マシンが動作する前記第１の物理マシンならびに移動先の前記仮想マシンが動作する前記第２の物理マシンの両方へ前記第１の物理マシンを送信先とするマルチキャストパケットを送信する送信部と
を備えたことを特徴とする中継装置。
【請求項２】
管理サーバと中継装置とを有する仮想マシンシステムであって、
前記管理サーバが、
第１の物理マシン上で動作する仮想マシンを第２の物理マシン上に移動させる移動処理が実行されるか否かを監視する監視部と、
前記監視部によって前記移動処理が実行されることが検知された場合に、前記中継装置に対して、前記第１の物理マシンに関する情報と前記第２の物理マシンに関する情報とを通知する通知部とを備え、
前記中継装置が、
マルチキャストアドレスに対応付けて、各物理マシンが属するマルチキャストグループを含むマルチキャストパケットの送信先情報を記憶する送信先記憶部と、
前記通知部から通知を受け付けた場合に、前記送信先記憶部に記憶されている送信先情報に基づいて、受信したマルチキャストパケットの送信先が前記第１の物理マシンであるか否かを判定する判定部と、
前記判定部によって前記第１の物理マシンがマルチキャストパケットの送信先であると判定された場合に、該第１の物理マシンが属する第１のマルチキャストグループに前記第２の物理マシンを追加する追加部と、
前記第１の物理マシンおよび前記第２の物理マシンが前記第１のマルチキャストグループに属する限り、前記移動処理による移動元の前記仮想マシンが動作する前記第１の物理マシンならびに移動先の前記仮想マシンが動作する前記第２の物理マシンの両方へ前記第１の物理マシンを送信先とするマルチキャストパケットを送信する送信部と
を備えたことを特徴とする仮想マシンシステム。
【請求項３】
前記通知部は、前記監視部によって前記移動処理が行われることが検知された場合に、前記中継装置に対して、前記第１の物理マシンに関する情報と、前記第２の物理マシンに関する情報と、前記仮想マシンが属する仮想ネットワークを識別する仮想ネットワーク番号とを通知し、
前記送信先記憶部は、マルチキャストアドレスと、送信先情報と、マルチキャストパケットの宛先である第１の物理マシンが属する仮想ネットワークの仮想ネットワーク番号とを対応付けて記憶し、
前記判定部は、前記通知部から受け付けた第１の物理マシンと仮想ネットワーク番号との組合せに対応するマルチキャストアドレスが前記送信先記憶部に記憶されているか否かを判定し、
前記追加部は、前記判定部によって前記第１の物理マシンと仮想ネットワーク番号との組合せに対応するマルチキャストアドレスが前記送信先記憶部に記憶されていると判定された場合に、該マルチキャストアドレスに対応する前記送信先記憶部の送信先情報に、前記第２の物理マシンに関する情報を追加することを特徴とする請求項２に記載の仮想マシンシステム。
【請求項４】
仮想マシンが動作する第１の物理マシンを第２の物理マシンへ移動させる移動処理が行われる場合に、マルチキャストアドレスに対応付けて各物理マシンが属するマルチキャストグループを含むマルチキャストパケットの送信先情報を記憶する送信先記憶部に記憶されている送信先情報に基づいて、前記第１の物理マシンがマルチキャストパケットの送信先であるか否かを判定する判定ステップと、
前記判定ステップによって前記第１の物理マシンがマルチキャストパケットの送信先であると判定された場合に、該第１の物理マシンが属する第１のマルチキャストグループに前記第２の物理マシンを追加する追加ステップと、
前記第１の物理マシンおよび前記第２の物理マシンが前記第１のマルチキャストグループに属する限り、前記移動処理による移動元の前記仮想マシンが動作する前記第１の物理マシンならびに移動先の前記仮想マシンが動作する前記第２の物理マシンの両方へ前記第１の物理マシンを送信先とするマルチキャストパケットを送信する送信ステップと
を含んだことを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、仮想マシンシステム及び中継方法に関する。
【背景技術】
【０００２】
従来、物理マシン（Physical  Machine）上に仮想マシン（Virtual  Machine：以下、「ＶＭ」と表記する場合がある）を動作させる仮想マシンシステムが利用されている。このような仮想マシンシステムでは、ＶＭが提供しているサービスをほとんど停止させずに別の物理マシンに移動させるＶＭ動的移動（以下、「ライブマイグレーション」と言う）という技術が用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１７３０２号公報
【非特許文献】
【０００４】
【非特許文献１】”Using IP Multicast with VMware ESX 3.5”、［online］、［平成２１年１１月２５日検索］、インターネット＜URL:http://www.vmware.com/files/pdf/technology/esx35_ip_multicast.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の仮想マシンシステムには、ＩＧＭＰ（Internet  Group  Management  Protocol）が適用されていると、ライブマイグレーション実行後に物理マシンがマルチキャストパケットを一定時間受信できない場合があるという問題があった。
【０００６】
かかる問題について、図１０を用いて説明する。図１０に示した例では、物理スイッチ９１に、ルータ９２と、物理マシンであるサーバ９３Ａ及び９３Ｂとが接続されている。サーバ９３Ａは、仮想マシンであるＶＭ９４Ａを動作させている。図１０に示した仮想マシンシステムは、ＩＧＭＰが適用されているものとする。すなわち、ルータ９２は、定期的に、ＩＧＭＰクエリメッセージを、物理スイッチ９１を介してサーバ９３Ａ及び９３Ｂへ送信する。かかるＩＧＭＰクエリメッセージに応答して、サーバ９３Ａ及び９３Ｂは、ＩＧＭＰホストメンバシップレポートメッセージ（Host  Membership  Report  Message）を送信する。物理スイッチ９１は、ＩＧＭＰホストメンバシップレポートメッセージが、配信要求を示すＪＯＩＮメッセージである場合には、ＪＯＩＮメッセージを送信したサーバ９３Ａや９３Ｂに対して、マルチキャストパケットを送信する。
【０００７】
ここで、図１０に示した仮想マシンシステムにおいて、サーバ９３Ａは、ＪＯＩＮメッセージを送信するが、サーバ９３Ｂは、ＪＯＩＮメッセージを送信しないものとする。すなわち、サーバ９３Ａは、マルチキャストパケットを受信するが、サーバ９３Ｂは、マルチキャストパケットを受信しないものとする。このような状態において、ＶＭ９４Ａが動作する物理マシンをサーバ９３Ａからサーバ９３Ｂへ移動させるライブマイグレーションが行われるものとする。かかる場合に、ライブマイグレーションが完了した後に、ＶＭ９４Ａは、一定時間マルチキャストパケットを受信することができない。これは、ＶＭ９４Ａの移動先であるサーバ９３Ｂが、ルータ９２からＩＧＭＰクエリメッセージを受信し、かかるＩＧＭＰクエリメッセージに応答して、ＪＯＩＮメッセージを送信するまでの間は、マルチキャストパケットを受信できないからである。
【０００８】
ルータ９２によってＩＧＭＰクエリメッセージが送信される間隔は、一般に６０秒や１２５秒などである。したがって、上記例の場合には、ＶＭ９４Ａは、ライブマイグレーション完了後に、例えば、６０秒間又は１２５秒間もマルチキャストパケットを受信することができなくなる。
【０００９】
なお、最近では、ライブマイグレーション完了後にマルチキャストパケットを受信することができるようにするために、物理スイッチに内蔵する仮想スイッチが擬似的なＩＧＭＰクエリメッセージを送信する技術も提案されている。しかし、かかる技術は、仮想スイッチをバイパスするシステムに適用することができない。例えば、ダイレクトＩ／Ｏ（Input／Output）によってライブマイグレーションを実行するようなシステムに適用することができない。また、かかる技術は、物理マシンが有するＮＩＣ（Network  Interface  Card）の中に仮想スイッチが内蔵される場合にも適用することが困難である。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、マルチキャストパケットの送受信が途絶えることを防止することができる中継装置、仮想マシンシステム及び中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する中継装置は、一つの態様において、マルチキャストアドレスに対応付けて、マルチキャストパケットの送信先情報を記憶する送信先記憶部と、第１の物理マシン上で動作する仮想マシンを第２の物理マシン上に移動させる移動処理が行われる場合に、前記送信先記憶部に記憶されている送信先情報に基づいて、受信したマルチキャストパケットの送信先が前記第１の物理マシンであるか否かを判定する判定部と、前記判定部によって前記第１の物理マシンが前記マルチキャストパケットの送信先であると判定された場合に、該第１の物理マシンを送信先とするマルチキャストアドレスに対応する前記送信先記憶部の送信先情報に、前記第２の物理マシンに関する情報を追加する追加部とを備える。
【発明の効果】
【００１２】
本願の開示する中継装置の一つの態様によれば、マルチキャストパケットの送受信が途絶えることを防止することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る中継装置が含まれる仮想マシンシステムの構成例を示すブロック図である。
【図２】図２は、実施例２に係る仮想マシンシステムにおいて実行されるライブマイグレーションの例を示す図である。
【図３】図３は、実施例２に係る仮想マシンシステムにおいて実行されるライブマイグレーションの例を示す図である。
【図４】図４は、実施例２に係る仮想マシンシステムの構成例を示すブロック図である。
【図５】図５は、実施例２における物理スイッチの構成例を示すブロック図である。
【図６】図６は、ＶＬＡＮ（Virtual  Local  Area  Network）テーブルの一例を示す図である。
【図７】図７は、ＭＡＣ（Media  Access  Control）アドレステーブルの一例を示す図である。
【図８】図８は、実施例２における管理サーバによる処理手順を示すフローチャートである。
【図９】図９は、実施例２における物理スイッチによる処理手順を示すフローチャートである。
【図１０】図１０は、従来技術を説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する中継装置、仮想マシンシステム及び中継方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示する中継装置、仮想マシンシステム及び中継方法が限定されるものではない。
【実施例１】
【００１５】
まず、図１を用いて、実施例１に係る中継装置の構成について説明する。図１は、実施例１に係る中継装置が含まれる仮想マシンシステムの構成例を示すブロック図である。図１に示した仮想マシンシステムＳＹ１は、中継装置１と、物理マシン５Ａ及び５Ｂとを有する。物理マシン５Ａは、仮想マシン６を動作させている。
【００１６】
なお、図１に示した仮想マシンシステムＳＹ１は、ＩＧＭＰが適用されているものとする。また、仮想マシンシステムＳＹ１では、仮想マシン６が動作する物理マシンを物理マシン５Ａから物理マシン５Ｂへ移動させるライブマイグレーションが行われるものとする。
【００１７】
図１に示すように、中継装置１は、送信先記憶部２と、判定部３と、追加部４とを有する。送信先記憶部２は、マルチキャストアドレスに対応付けて、マルチキャストパケットの送信先情報を記憶する。例えば、送信先記憶部２は、ＭＡＣアドレステーブルであり、送信先情報として、物理マシン５Ａや物理マシン５Ｂと接続されている中継装置１のポートを識別するポート番号等を記憶する。
【００１８】
判定部３は、仮想マシン６が動作する物理マシンを他の物理マシンへ移動させる移動処理が行われる場合に、送信先記憶部２に記憶されている送信先情報に基づいて、仮想マシン６の移動元物理マシンがマルチキャストパケットの送信先であるか否かを判定する。
【００１９】
追加部４は、判定部３によって移動元物理マシンがマルチキャストパケットの送信先であると判定された場合に、かかる移動元物理マシンを送信先とするマルチキャストグループに仮想マシン６の移動先物理マシンに関する情報を追加する。具体的には、追加部４は、移動元物理マシンを送信先とするマルチキャストアドレスに対応付けて送信先記憶部２に記憶されている送信先情報に、移動先物理マシンに関する情報を追加する。
【００２０】
図１に示した例では、仮想マシン６が動作している物理マシンを物理マシン５Ａから物理マシン５Ｂへ移動させるライブマイグレーションが行われる。したがって、判定部３は、仮想マシン６の移動元物理マシンである物理マシン５Ａがマルチキャストパケットの送信先であるか否かを判定する。そして、追加部４は、物理マシン５Ａがマルチキャストパケットの送信先である場合に、物理マシン５Ａを送信先とするマルチキャストアドレスに対応付けて送信先記憶部２に記憶されている送信先情報に、物理マシン５Ｂに関する情報を追加する。
【００２１】
上述してきたように、実施例１に係る中継装置１は、ライブマイグレーションが行われる場合に、移動元物理マシンが属するマルチキャストグループに、移動先物理マシンを追加する。これにより、実施例１に係る中継装置１は、ライブマイグレーションが完了した直後であっても、移動先物理マシンへマルチキャストパケットを送信することができる。すなわち、実施例１に係る中継装置１を用いると、ライブマイグレーションを実行する場合であっても、移動先物理マシンに対するマルチキャストパケットの送受信が途絶えることを防止することができる。
【実施例２】
【００２２】
次に、上記実施例１において説明した中継装置について、具体例を用いて説明する。実施例２では、中継装置として物理スイッチを用いる場合を例に挙げて説明する。また、実施例２では、仮想マシンが所定の仮想ネットワーク（以下、「ＶＬＡＮ」と言う）に属する場合を例に挙げて説明する。
【００２３】
［実施例２において実行されるライブマイグレーション］
まず、図２及び図３を用いて、実施例２に係る仮想マシンシステムにおいて実行されるライブマイグレーションの例について説明する。図２及び図３は、実施例２に係る仮想マシンシステムにおいて実行されるライブマイグレーションの例を示す図である。なお、図２には、ライブマイグレーションが実行される前の仮想マシンシステムの状態を示し、図３には、ライブマイグレーションが実行された後の仮想マシンシステムの状態を示す。
【００２４】
図２に示すように、実施例２に係る仮想マシンシステムＳＹ２は、物理スイッチ１００と、サーバ２００Ａ及び２００Ｂとを有する。物理スイッチ１００は、ポートＰ１１を介してサーバ２００Ａと接続され、ポートＰ１２を介してサーバ２００Ｂと接続されている。また、物理スイッチ１００は、ポートＰ２１を介して、図示しない装置（例えば、ルータ等）と接続されているものとする。
【００２５】
サーバ２００Ａ及び２００Ｂは、物理マシンであり、各種サービスを提供する。図２に示した例では、サーバ２００Ａは、ＶＭ２３１Ａ及び２３２Ａを動作させている。また、サーバ２００Ｂは、ＶＭ２３１Ｂ及び２３２Ｂを動作させている。ここで、図２に示した例では、ＶＭ２３１Ａ及び２３２Ａは、ＶＬＡＮ「Ｖ１」に属しており、ＶＭ２３１Ｂ及び２３２Ｂは、ＶＬＡＮ「Ｖ２」に属しているものとする。
【００２６】
このような状態において、物理スイッチ１００は、例えば、マルチキャストアドレスが「ＭＡ１１」であるマルチキャストパケットを受け付けた場合に、かかるマルチキャストパケットをポートＰ１１を介してサーバ２００Ａへ送信するものとする。また、物理スイッチ１００は、例えば、マルチキャストアドレスが「ＭＡ１２」であるマルチキャストパケットを受け付けた場合に、かかるマルチキャストパケットをポートＰ１２を介してサーバ２００Ｂへ送信するものとする。
【００２７】
かかる場合に、図２に示した状態から図３に示した状態へライブマイグレーションが実行されると、ＶＭ２３２ＡやＶＭ２３１Ｂは、ライブマイグレーション実行後にマルチキャストパケットを一定時間受信できないおそれがある。
【００２８】
具体的には、図３に示すように、サーバ２００Ａ上で動作していたＶＭ２３２Ａは、サーバ２００Ｂへ移動している。このため、ＶＭ２３２Ａは、サーバ２００ＢがＩＧＭＰクエリメッセージを受信してから、ＪＯＩＮメッセージを送信するまでの間は、マルチキャストアドレスが「ＭＡ１１」であるマルチキャストパケットを受信できない。また、サーバ２００Ｂ上で動作していたＶＭ２３１Ｂは、サーバ２００Ａへ移動している。このため、ＶＭ２３１Ｂは、サーバ２００ＡがＩＧＭＰクエリメッセージを受信してから、ＪＯＩＮメッセージを送信するまでの間は、マルチキャストアドレスが「ＭＡ１２」であるマルチキャストパケットを受信できない。
【００２９】
そこで、実施例２に係る物理スイッチ１００は、ＶＭ２３２Ａがサーバ２００Ａからサーバ２００Ｂへ移動するライブマイグレーションが開始される時点で、マルチキャストアドレスが「ＭＡ１１」であるマルチキャストグループにサーバ２００Ｂを追加する。これにより、物理スイッチ１００は、ライブマイグレーションが完了した時点で、マルチキャストアドレスが「ＭＡ１１」であるマルチキャストパケットをＶＭ２３２Ａへ送信することができる。言い換えれば、ＶＭ２３２Ａは、ライブマイグレーション実行後であってもマルチキャストパケットを一定時間受信できなくなることがない。
【００３０】
また、実施例２に係る物理スイッチ１００は、ＶＭ２３１Ｂがサーバ２００Ｂからサーバ２００Ａへ移動するライブマイグレーションが開始される時点で、マルチキャストアドレスが「ＭＡ１２」であるマルチキャストグループにサーバ２００Ａを追加する。これにより、物理スイッチ１００は、ライブマイグレーションが完了した時点で、マルチキャストアドレスが「ＭＡ１２」であるマルチキャストパケットをＶＭ２３１Ｂへ送信することができる。言い換えれば、ＶＭ２３１Ｂは、ライブマイグレーション実行後であってもマルチキャストパケットを一定時間受信できなくなることがない。
【００３１】
［実施例２に係る仮想マシンシステムの構成］
次に、図４を用いて、実施例２に係る仮想マシンシステムＳＹ２の構成について説明する。図４は、実施例２に係る仮想マシンシステムＳＹ２の構成例を示すブロック図である。図４に示すように、実施例２に係る仮想マシンシステムＳＹ２は、物理スイッチ１００と、サーバ２００Ａ及び２００Ｂと、管理サーバ３００とを有する。
【００３２】
なお、図４では、仮想マシンシステムＳＹ２が１個の物理スイッチ１００を有する例を示したが、仮想マシンシステムＳＹ２が有する物理スイッチの数は１個に限られない。また、図４では、仮想マシンシステムＳＹ２が２個のサーバ２００Ａ及び２００Ｂを有する例を示したが、仮想マシンシステムＳＹ２が有するサーバの数は２個に限られない。例えば、仮想マシンシステムＳＹ２は、２個以上の物理スイッチを有してもよいし、３個以上のサーバを有してもよい。
【００３３】
物理スイッチ１００は、装置間で送受される各種データを中継する。例えば、物理スイッチ１００は、サーバ２００Ａとサーバ２００Ｂとの間で送受される各種データを中継したり、サーバ２００Ａ又は２００Ｂと、図示しないルータ等との間で送受される各種データを中継したりする。なお、物理スイッチ１００の構成については、図５を用いて後述する。
【００３４】
サーバ２００Ａは、ＮＩＣ２１０Ａと、ＶＭ管理部２２０Ａとを有し、ＶＭ２３１Ａ及び２３２Ａを動作させている。また、サーバ２００Ｂは、ＮＩＣ２１０Ｂと、ＶＭ管理部２２０Ｂとを有し、ＶＭ２３１Ｂ及び２３２Ｂを動作させている。
【００３５】
ＮＩＣ２１０Ａ及び２１０Ｂは、外部装置との間で各種データを送受するインタフェースである。例えば、ＮＩＣ２１０Ａ及び２１０Ｂは、物理スイッチ１００との間で各種データを送受する。
【００３６】
ＶＭ管理部２２０Ａ及び２２０Ｂは、ＶＭを管理する。例えば、ＶＭ管理部２２０Ａは、ＶＭ２３１Ａ及び２３２Ａの起動や停止等を管理する。また、例えば、ＶＭ管理部２２０Ａは、ＶＭ２３１Ａ及び２３２Ａを動作させる物理マシンを他のサーバ（例えば、サーバ２００Ｂ）へ移動させるライブマイグレーションを制御したりする。
【００３７】
管理サーバ３００は、仮想マシンシステムＳＹ２において動作するＶＭを管理する仮想マシンシステム管理装置である。かかる管理サーバ３００は、図４に示すように、マイグレーション制御部３１０を有する。なお、図４では図示することを省略したが、管理サーバ３００は、各種情報を入力するための入力部や、各種情報を表示するための表示部等を有してもよい。
【００３８】
マイグレーション制御部３１０は、ライブマイグレーションの実行を制御する。具体的には、マイグレーション制御部３１０は、監視部３１１と、通知部３１２とを有する。
【００３９】
監視部３１１は、ライブマイグレーションに関する各種処理を行う。具体的には、監視部３１１は、ＶＭが動作するサーバを他のサーバへ移動させるライブマイグレーションが実行される否かを監視する監視処理を行う。例えば、監視部３１１は、管理者等からライブマイグレーションを行う旨の操作が行われた場合に、ライブマイグレーションが実行されることを検知する。そして、監視部３１１は、ライブマイグレーションが実行されることを検知した場合に、移動対象のＶＭや、移動元サーバ及び移動先サーバ等に関する情報を取得する。そして、監視部３１１は、移動元サーバのＶＭ管理部２２０Ａ又は２２０Ｂに対して、ライブマイグレーションを実行するように指示する。このように、監視部３１１は、ライブマイグレーションが実行されるか否かを監視する監視部として動作する。
【００４０】
通知部３１２は、監視部３１１によってライブマイグレーションが実行されることが検知された場合に、移動元サーバ及び移動先サーバと、移動対象のＶＭが属するＶＬＡＮに関する情報とを含むコマンドを物理スイッチ１００へ通知する。なお、以下では、通知部３１２によって物理スイッチ１００へ通知されるコマンドを「ＩＧＭＰコマンド」と表記する場合がある。かかるＩＧＭＰコマンドは、例えば、以下に示す形式によって表される。
【００４１】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  ＜ｆｒｏｍ  ｐｏｒｔ＞  ＜ｔｏ  ｐｏｒｔ＞  ［ｖｉｄ］  ・・・  （１）
【００４２】
上記（１）のＩＧＭＰコマンドのうち、＜ｆｒｏｍ  ｐｏｒｔ＞には、ＶＭの移動元サーバが接続されている物理スイッチ１００のポートを示すポート番号が設定される。また、＜ｔｏ  ｐｏｒｔ＞には、ＶＭの移動先サーバが接続されている物理スイッチ１００のポートを示すポート番号が設定される。また、［ｖｉｄ］には、移動対象のＶＭが属するＶＬＡＮを識別するＶＬＡＮ番号が設定される。なお、［ｖｉｄ］は任意の設定情報であり、ＶＬＡＮ番号が設定されなくてもよい。
【００４３】
例えば、図２に示した例において、ＶＭ２３２Ａが動作しているサーバ２００Ａは、物理スイッチ１００のポートＰ１１と接続されている。また、サーバ２００Ｂは、物理スイッチ１００のポートＰ１２と接続されている。そして、図３に示した例のように、ＶＬＡＮ番号が「Ｖ１」であるＶＬＡＮに属するＶＭ２３２Ａは、サーバ２００Ａからサーバ２００Ｂへ移動する。このような場合には、通知部３１２は、以下の（２）に示すＩＧＭＰコマンドを物理スイッチ１００へ通知する。
【００４４】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  Ｐ１１  Ｐ１２  Ｖ１  ・・・  （２）
【００４５】
上記（２）のＩＧＭＰコマンドを受信した物理スイッチ１００は、ＶＬＡＮ番号「Ｖ１」であるＶＬＡＮに属するＶＭが、ポートＰ１１に接続されているサーバ２００Ａから、ポートＰ１２に接続されているサーバ２００Ｂへ移動する情報を取得できる。なお、以下では、各ポートに付した符号が、かかるポートのポート番号であるものとする。例えば、ポートＰ１１のポート番号は「Ｐ１１」であり、ポートＰ１２のポート番号は「Ｐ１２」であるものとする。
【００４６】
なお、ＩＧＭＰコマンドの＜ｆｒｏｍ  ｐｏｒｔ＞、＜ｔｏ  ｐｏｒｔ＞、［ｖｉｄ］の各項目には、複数の情報が設定されてもよい。具体的には、各項目について、所定の記号や文字等で区切られた複数の情報が設定されてもよい。以下の（３）に示すＩＧＭＰコマンドは、＜ｆｒｏｍ  ｐｏｒｔ＞、＜ｔｏ  ｐｏｒｔ＞、［ｖｉｄ］に複数の情報が設定される例である。
【００４７】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  Ｐｆ１，Ｐｆ２  Ｐｔ１，Ｐｔ２  Ｖｚ１，Ｖｚ２  ・・・  （３）
【００４８】
上記（３）に示した例では、各項目のＮ番目に設定されている情報が互いに対応する。具体的には、＜ｆｒｏｍ  ｐｏｒｔ＞＝「Ｐｆ１」と、＜ｔｏ  ｐｏｒｔ＞＝「Ｐｔ１」と、［ｖｉｄ］＝「Ｖｚ１」とが対応し、＜ｆｒｏｍ  ｐｏｒｔ＞＝「Ｐｆ２」と、＜ｔｏ  ｐｏｒｔ＞＝「Ｐｔ２」と、［ｖｉｄ］＝「Ｖｚ２」とが対応する。すなわち、上記（３）のＩＧＭＰコマンドは、ＶＬＡＮ番号「Ｖｚ１」であるＶＬＡＮに属するＶＭが、ポートＰｆ１に接続されているサーバから、ポートＰｔ１に接続されているサーバへ移動することを示している。さらに、上記（３）のＩＧＭＰコマンドは、ＶＬＡＮ番号「Ｖｚ２」であるＶＬＡＮに属するＶＭが、ポートＰｆ２に接続されているサーバから、ポートＰｔ２に接続されているサーバへ移動することを示している。なお、上記（３）では、区切り文字が「，」である例を示したが、区切り文字は、例えば、「：」や「＋」や「−」や「／」等の他の記号や文字であってもよい。
【００４９】
なお、図４に示した例では、通知部３１２は、物理スイッチ１００が有するポートとサーバとの接続関係を示す情報を保持しているものとする。例えば、通知部３１２は、物理スイッチ１００のポートＰ１１にサーバ２００Ａが接続されており、ポートＰ１２にサーバ２００Ｂが接続されていることを示す情報を保持する。このように、通知部３１２は、中継装置に対して、ＶＭの移動元サーバと移動先サーバとを通知する通知部として動作する。
【００５０】
上述したＶＭ管理部２２０Ａ及び２２０Ｂや、監視部３１１、通知部３１２は、例えば、電子回路である。電子回路の例としては、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路、又は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等である。
【００５１】
［実施例２における物理スイッチの構成］
次に、図５を用いて、実施例２における物理スイッチ１００の構成について説明する。図５は、実施例２における物理スイッチ１００の構成例を示すブロック図である。図５に示すように、物理スイッチ１００は、ポートモジュール群１０及び２０と、ストリームメモリ３０と、記憶部４０と、制御部５０とを有する。
【００５２】
ポートモジュール群１０は、ポートモジュール１１〜１ｎを有する。また、ポートモジュール群２０は、ポートモジュール２１〜２ｎを有する。ポートモジュール１１〜１ｎ及び２１〜２ｎは、物理スイッチ１００の外部からパケットを入力された場合に、かかるパケットをストリームメモリ３０に格納する。このとき、ポートモジュール１１〜１ｎ及び２１〜２ｎは、ストリームメモリ３０に格納したパケットのヘッダ情報を制御部５０へ出力する。なお、ここで言う「ヘッダ情報」とは、例えば、パケットに含まれるＤＡ（Destination  Address）や、ＳＡ（Source  Address）、ＶＬＡＮ番号等を示す。
【００５３】
また、ポートモジュール１１〜１ｎ及び２１〜２ｎは、ストリームメモリ３０に格納されているパケットを読み出して、読み出したパケットを外部へ送信する。具体的には、ポートモジュール１１〜１ｎ及び２１〜２ｎは、後述する制御部５０による指示に従って、ストリームメモリ３０から読み出すパケット等を決定する。
【００５４】
なお、ポートモジュール１１〜１ｎ及び２１〜２ｎは、ポート毎に設けられる。図５に示した例では、ポートモジュール１１は、ポートＰ１１を介してデータを送受し、ポートモジュール１２は、ポートＰ１２を介してデータを送受するものとする。また、ポートモジュール２１は、ポートＰ２１を介してデータを送受するものとする。
【００５５】
ストリームメモリ３０は、各種情報を記憶する記憶デバイスであり、ポートモジュール１１〜１ｎ及び２１〜２ｎによって書き込まれるパケットを記憶する。また、ストリームメモリ３０は、ポートモジュール１１〜１ｎ及び２１〜２ｎからパケットを読み出される。なお、ストリームメモリ３０は、所定のサイズの論理ブロック毎に分割された記憶領域を有しており、論理ブロック単位にデータを記憶する。
【００５６】
記憶部４０は、各種情報を記憶する記憶デバイスであり、ＶＬＡＮテーブル４１と、ＭＡＣアドレステーブル４２とを有する。ＶＬＡＮテーブル４１は、ＶＬＡＮの構成情報を記憶する。図６に、ＶＬＡＮテーブル４１の一例を示す。図６に示すように、ＶＬＡＮテーブル４１は、「ＶＬＡＮ番号」、「メンバポート番号」といった項目を有する。
【００５７】
「ＶＬＡＮ番号」は、ＶＬＡＮを識別するための番号を示す。「メンバポート番号」は、ＶＬＡＮ番号が示すＶＬＡＮ上で流通するパケットを送受信するポートのポート番号を示す。
【００５８】
例えば、図６に示したＶＬＡＮテーブル４１は、ＶＬＡＮ番号が「Ｖ１」であるＶＬＡＮに、ポートＰ１１とポートＰ２１に接続されている装置が属することを示している。また、例えば、図６に示したＶＬＡＮテーブル４１は、ＶＬＡＮ番号が「Ｖ２」であるＶＬＡＮに、ポートＰ１２とポートＰ２１に接続されている装置が属することを示している。
【００５９】
ＭＡＣアドレステーブル４２は、パケットの宛先に対応付けて、かかるパケットを受信する装置が属するＶＬＡＮのＶＬＡＮ番号や、パケットの出力先ポートを記憶する。図７に、ＭＡＣアドレステーブル４２の一例を示す。図７に示すように、ＭＡＣアドレステーブル４２は、「ＭＡＣアドレス」、「ＶＬＡＮ番号」、「ポート番号」といった項目を有する。
【００６０】
「ＭＡＣアドレス」は、パケットの宛先を示す情報であり、例えば、パケットヘッダのＤＡに設定される情報である。「ＶＬＡＮ番号」は、パケットの宛先となる装置が属するＶＬＡＮのＶＬＡＮ番号を示す。「ポート番号」は、ＭＡＣアドレスが示す装置が接続されているポートのポート番号を示す。なお、図７に示したＭＡＣアドレスのうち、「０１：００：５ｅ」から始まるＭＡＣアドレスは、マルチキャストアドレスを示す。なお、ＭＡＣアドレステーブル４２は、図１に示した送信先記憶部２に対応する。
【００６１】
例えば、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「００：０１：０２：０３：０４：０５」宛のパケットを受信する装置が、ＶＬＡＮ番号「Ｖ１」であるＶＬＡＮに属することを示している。また、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「００：０１：０２：０３：０４：０５」がＤＡに設定されているパケットがポートＰ１１に出力されることを示している。
【００６２】
また、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」宛のパケットを受信する装置が、ＶＬＡＮ番号「Ｖ１」であるＶＬＡＮに属することを示している。また、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」がＤＡに設定されているパケットがポートＰ１１及びＰ１４に出力されることを示している。
【００６３】
また、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙ」宛のパケットを受信する装置が、ＶＬＡＮ番号「Ｖ２」であるＶＬＡＮに属することを示している。また、図７に示したＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙ」がＤＡに設定されているパケットが、ポートＰ１２及びＰ１４に出力されることを示している。
【００６４】
制御部５０は、物理スイッチ１００を全体制御し、方路決定部５１と、マルチキャスト制御部５２とを有する。方路決定部５１は、ＶＬＡＮテーブル４１及びＭＡＣアドレステーブル４２に記憶されている情報に基づいて、物理スイッチ１００の外部から受信したパケットの送信先を決定する。
【００６５】
具体的には、方路決定部５１は、ポートモジュール群１０又は２０からヘッダ情報を入力された場合に、かかるヘッダ情報に設定されているＤＡに対応するポート番号を、ＭＡＣアドレステーブル４２から取得する。ここで取得されたポート番号が示すポートは、かかるヘッダ情報を有するパケットの出力先ポートに該当する。続いて、方路決定部５１は、ＶＬＡＮテーブル４１に記憶されている情報に基づいて、ＭＡＣアドレステーブル４２から取得したポート番号と、パケットを受信したポートのポート番号とが同一のＶＬＡＮに属するか否かを判定する。
【００６６】
そして、方路決定部５１は、双方のポート番号が同一のＶＬＡＮに属しない場合には、かかるヘッダ情報を有するパケットを他の装置へ中継しない。一方、方路決定部５１は、双方のポート番号が同一のＶＬＡＮに属する場合には、入力されたヘッダ情報を有するパケットが格納されている論理ブロックを示す論理ブロック番号や、かかるヘッダ情報等を含む命令（以下、「中継処理命令」と言う）を生成する。そして、方路決定部５１は、生成した中継処理命令を、パケットの出力先ポートと接続されているポートモジュール１１〜１ｎ又は２１〜２ｎのいずれかへ出力する。
【００６７】
なお、上述したポートモジュール１１〜１ｎ及び２１〜２ｎは、方路決定部５１から入力される中継処理命令を格納するためのキューを複数有する。そして、ポートモジュール１１〜１ｎ及び２１〜２ｎは、方路決定部５１から入力された中継処理命令に従って、ストリームメモリ３０に格納されているパケットを、図示しないポートへ出力する。
【００６８】
マルチキャスト制御部５２は、図４に示した通知部３１２から通知されるＩＧＭＰコマンドに従って、ＭＡＣアドレステーブル４２を更新する。具体的には、マルチキャスト制御部５２は、ＩＧＭＰコマンドを受信した場合に、ＩＧＭＰコマンドに設定されている＜ｆｒｏｍ  ｐｏｒｔ＞と［ｖｉｄ］とを用いて、移行元サーバがマルチキャストパケットの宛先であるか否かを判定する。そして、マルチキャスト制御部５２は、移行元サーバがマルチキャストパケットの宛先である場合には、移行元サーバを送信先とするマルチキャストグループに、ＩＧＭＰコマンドに設定されている＜ｔｏ  ｐｏｒｔ＞を追加する。
【００６９】
例えば、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、以下の条件（Ａ）〜（Ｃ）を全て満たすＭＡＣアドレスを取得する。ただし、マルチキャスト制御部５２は、ＩＧＭＰコマンドの［ｖｉｄ］にＶＬＡＮ番号が設定されていない場合には、条件（Ｃ）を外し、条件（Ａ）及び（Ｂ）を満たすＭＡＣアドレスをＭＡＣアドレステーブル４２から取得する。
【００７０】
（Ａ）ＭＡＣアドレスの先頭が「０１：００：５ｅ」である。
（Ｂ）ポート番号に、ＩＧＭＰコマンドの＜ｆｒｏｍ  ｐｏｒｔ＞に設定されるポート番号が含まれる。
（Ｃ）ＶＬＡＮ番号と、ＩＧＭＰコマンドの［ｖｉｄ］に設定されるＶＬＡＮ番号とが一致する。
【００７１】
そして、マルチキャスト制御部５２は、ＭＡＣアドレスを取得できた場合には、取得したＭＡＣアドレスに対応するＭＡＣアドレステーブル４２の「ポート番号」に、ＩＧＭＰコマンドの＜ｔｏ  ｐｏｒｔ＞に設定されているポート番号を追加する。このとき、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から複数のＭＡＣアドレスを取得した場合には、各ＭＡＣアドレスに対応する「ポート番号」に、ＩＧＭＰコマンドの＜ｔｏ  ｐｏｒｔ＞に設定されているポート番号を追加する。一方、マルチキャスト制御部５２は、ＭＡＣアドレスを取得できなかった場合には、処理を終了する。
【００７２】
なお、マルチキャスト制御部５２は、マルチキャストグループから移動元サーバを削除しない。これは、マルチキャストグループに属する他のＶＭが移動元サーバで動作していない場合には、移動元サーバがＪＯＩＮメッセージを送信しないので、結果的に、マルチキャストグループから移動元サーバが削除されるからである。また、マルチキャストグループに属する他のＶＭが移動元サーバで動作している場合には、移動元サーバがＪＯＩＮメッセージを送信するので、かかる他のＶＭにはマルチキャストパケットが配信されるので問題ない。
【００７３】
また、上記では、条件（Ａ）〜（Ｃ）、または、条件（Ａ）及び（Ｂ）を満たすＭＡＣアドレスを取得することにより、移行元サーバがマルチキャストパケットの宛先であるか否かを判定する例を示した。しかし、マルチキャスト制御部５２は、上記例以外の処理によって、移行元サーバがマルチキャストパケットの宛先であるか否かを判定してもよい。
【００７４】
例えば、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、上記の条件（Ｂ）及び（Ｃ）を満たすＭＡＣアドレスを取得してもよい。または、マルチキャスト制御部５２は、ＩＧＭＰコマンドの［ｖｉｄ］にＶＬＡＮ番号が設定されていない場合には、条件（Ｂ）を満たすＭＡＣアドレスをＭＡＣアドレステーブル４２から取得してもよい。かかる場合には、ＭＡＣアドレステーブル４２は、取得したＭＡＣアドレスの先頭が「０１：００：５ｅ」であるか否かを判定する。そして、マルチキャスト制御部５２は、ＭＡＣアドレスの先頭が「０１：００：５ｅ」である場合には、移行元サーバがマルチキャストパケットの宛先であると判定する。一方、マルチキャスト制御部５２は、ＭＡＣアドレスの先頭が「０１：００：５ｅ」でない場合には、移行元サーバがマルチキャストパケットの宛先でないと判定する。
【００７５】
また、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスとＶＬＡＮ番号とポート番号との組合せを取得した後に、取得した組合せの中に上記の条件（Ａ）〜（Ｃ）を全て満たすＭＡＣアドレスが存在するか否かを判定してもよい。または、マルチキャスト制御部５２は、ＩＧＭＰコマンドの［ｖｉｄ］にＶＬＡＮ番号が設定されていない場合には、取得した組合せの中に上記の条件（Ａ）及び（Ｂ）を満たすＭＡＣアドレスが存在するか否かを判定してもよい。
【００７６】
続いて、通知部３１２から受信するＩＧＭＰコマンドの具体例を挙げて、マルチキャスト制御部５２による処理の一例を説明する。なお、以下の説明では、ＭＡＣアドレステーブル４２は図７に示した状態であるものとする。まず、マルチキャスト制御部５２が、以下の（４）に示すＩＧＭＰコマンドを受信したものとする。
【００７７】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  Ｐ１１  Ｐ１２  ・・・  （４）
【００７８】
上記（４）のＩＧＭＰコマンドは、ＶＭが、ポートＰ１１に接続されているサーバ２００Ａから、ポートＰ１２に接続されているサーバ２００Ｂへ移動することを示している。マルチキャスト制御部５２は、上記（４）のＩＧＭＰコマンドを受信した場合に、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、かつ、ポート番号に「Ｐ１１」が含まれるＭＡＣアドレスを取得する。
【００７９】
図７に示した例では、ＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」とポート番号「Ｐ１１、Ｐ１４」とを対応付けて記憶する。したがって、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」を取得する。そして、マルチキャスト制御部５２は、移動先のサーバ２００Ｂと接続されているポートＰ１２を、移動元のサーバ２００Ａが属するマルチキャストグループに追加する。具体的には、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２のＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」に対応するポート番号を、「Ｐ１１、Ｐ１４」から「Ｐ１１、Ｐ１４、Ｐ１２」へ更新する。これにより、サーバ２００Ａ上で動作するＶＭがサーバ２００Ｂへ移動した直後であっても、サーバ２００Ｂは、宛先が「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」であるマルチキャストパケットを受信することができる。
【００８０】
続いて、マルチキャスト制御部５２が、以下の（５）に示すＩＧＭＰコマンドを受信したものとする。
【００８１】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  Ｐ１１  Ｐ１２  Ｖ１  ・・・  （５）
【００８２】
上記（５）のＩＧＭＰコマンドは、上記（４）のＩＧＭＰコマンドと比較して、［ｖｉｄ］にＶＬＡＮ番号「Ｖ１」が設定されている点が異なる。マルチキャスト制御部５２は、上記（５）のＩＧＭＰコマンドを受信した場合、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１１」が含まれ、ＶＬＡＮ番号が「Ｖ１」であるＭＡＣアドレスを取得する。
【００８３】
図７に示した例では、ＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」とＶＬＡＮ番号「Ｖ１」とポート番号「Ｐ１１、Ｐ１４」とを対応付けて記憶する。したがって、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」を取得する。そして、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２のＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」に対応するポート番号を、「Ｐ１１、Ｐ１４」から「Ｐ１１、Ｐ１４、Ｐ１２」へ更新する。
【００８４】
続いて、マルチキャスト制御部５２が、以下の（６）に示すＩＧＭＰコマンドを受信したものとする。
【００８５】
ｉｇｍｐｓｎｏｏｐｉｎｇ  ｍｉｇｒａｔｅ  Ｐ１１，Ｐ１２  Ｐ１５，Ｐ１５  Ｖ１，Ｖ２  ・・・  （６）
【００８６】
上記（６）のＩＧＭＰコマンドは、＜ｆｒｏｍ  ｐｏｒｔ＞に「Ｐ１１，Ｐ１２」が設定されており、＜ｔｏ  ｐｏｒｔ＞に「Ｐ１５，Ｐ１５」が設定されており、［ｖｉｄ］に「Ｖ１，Ｖ２」が設定されている。マルチキャスト制御部５２は、上記（６）のＩＧＭＰコマンドを受信した場合、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１１」が含まれ、ＶＬＡＮ番号が「Ｖ１」であるＭＡＣアドレスを取得する。
【００８７】
図７に示した例では、ＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」とＶＬＡＮ番号「Ｖ１」とポート番号「Ｐ１１、Ｐ１４」とを対応付けて記憶する。したがって、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」を取得する。そして、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２のＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」に対応するポート番号を、「Ｐ１１、Ｐ１４」から「Ｐ１１、Ｐ１４、Ｐ１５」へ更新する。
【００８８】
さらに、マルチキャスト制御部５２は、上記（６）のＩＧＭＰコマンドを受信した場合、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１２」が含まれ、ＶＬＡＮ番号が「Ｖ２」であるＭＡＣアドレスを取得する。
【００８９】
図７に示した例では、ＭＡＣアドレステーブル４２は、ＭＡＣアドレス「０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙ」とＶＬＡＮ番号「Ｖ２」とポート番号「Ｐ１２、Ｐ１４」とを対応付けて記憶する。したがって、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から、ＭＡＣアドレス「０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙ」を取得する。そして、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２のＭＡＣアドレス「０１：００：５ｅ：ｙｙ：ｙｙ：ｙｙ」に対応するポート番号を、「Ｐ１２、Ｐ１４」から「Ｐ１２、Ｐ１４、Ｐ１５」へ更新する。
【００９０】
このように、マルチキャスト制御部５２は、ＩＧＭＰコマンドの各項目に複数の情報が設定されている場合には、＜ｆｒｏｍ  ｐｏｒｔ＞と＜ｔｏ  ｐｏｒｔ＞と［ｖｉｄ］との組合せ毎に、移行元サーバがマルチキャストパケットの宛先であるか否かを判定する。なお、マルチキャスト制御部５２は、上述したように、ＭＡＣアドレステーブル４２から、ＭＡＣアドレスとＶＬＡＮ番号とポート番号とを取得した後に、移行元サーバがマルチキャストパケットの宛先であるか否かを判定してもよい。このとき、マルチキャスト制御部５２は、ＩＧＭＰコマンドの各項目に複数の情報が設定されている場合には、ＭＡＣアドレステーブル４２から取得した情報を用いて、ＩＧＭＰコマンドに設定されている全ての組合せについて判定処理を行う。かかる処理について一例を挙げて説明する。ここでは、マルチキャスト制御部５２が、上記（６）のＩＧＭＰコマンドを受信したものとする。
【００９１】
かかる場合に、マルチキャスト制御部５２は、図７に例示するＭＡＣアドレステーブル４２から、ＭＡＣアドレスと、ＶＬＡＮ番号と、ポート番号とを取得する。そして、例えば、マルチキャスト制御部５２は、まず、ＭＡＣアドレステーブル４２から取得したＭＡＣアドレス「００：０１：０２：０３：０４：０５」とＶＬＡＮ番号「Ｖ１」とポート番号「Ｐ１１」との組合せについて判定処理を行う。具体的には、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１１」が含まれ、ＶＬＡＮ番号が「Ｖ１」であるか否かを判定する。ここでは、マルチキャスト制御部５２は、条件（Ａ）〜（Ｃ）を満たさないと判定する。また、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１２」が含まれ、ＶＬＡＮ番号が「Ｖ２」であるか否かを判定する。ここでは、マルチキャスト制御部５２は、条件（Ａ）〜（Ｃ）を満たさないと判定する。
【００９２】
続いて、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から取得したＭＡＣアドレス「００：０１：０２：０３：０４：０６」とＶＬＡＮ番号「Ｖ２」とポート番号「Ｐ１２」との組合せについて判定処理を行う。具体的には、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１１」が含まれ、ＶＬＡＮ番号が「Ｖ１」であるか否かを判定する。さらに、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１２」が含まれ、ＶＬＡＮ番号が「Ｖ２」であるか否かを判定する。ここでは、マルチキャスト制御部５２は、条件（Ａ）〜（Ｃ）を満たさないと判定する。
【００９３】
続いて、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から取得したＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」とＶＬＡＮ番号「Ｖ１」とポート番号「Ｐ１１、Ｐ１４」との組合せについて判定処理を行う。具体的には、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１１」が含まれ、ＶＬＡＮ番号が「Ｖ１」であるか否かを判定する。ここでは、マルチキャスト制御部５２は、条件（Ａ）〜（Ｃ）を満たすと判定し、ＭＡＣアドレス「０１：００：５ｅ：ｘｘ：ｘｘ：ｘｘ」を取得する。さらに、マルチキャスト制御部５２は、かかる組合せ内のＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号に「Ｐ１２」が含まれ、ＶＬＡＮ番号が「Ｖ２」であるか否かを判定する。ここでは、マルチキャスト制御部５２は、条件（Ａ）〜（Ｃ）を満たさないと判定する。
【００９４】
このように、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から取得したレコード毎に、ＩＧＭＰコマンドに設定されている複数の組合せが条件（Ａ）〜（Ｃ）を満たすか否かを判定する。これにより、マルチキャスト制御部５２は、ＩＧＭＰコマンドに複数の情報が設定されている場合であっても、ＭＡＣアドレステーブル４２から各種情報を何度も取得することがないので、高速に処理を行うことができる。
【００９５】
上述したマルチキャスト制御部５２は、図１に示した判定部３及び追加部４に対応する。また、図５に示したポートモジュール１１〜１ｎ及び２１〜２ｎや、制御部５０は、例えば、電子回路である。電子回路の例としては、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路、又は、ＣＰＵやＭＰＵ等である。また、図５に示したストリームメモリ３０、記憶部４０は、例えば、ＲＡＭ（Random  Access  Memory)やフラッシュメモリ等の記憶装置である。
【００９６】
［管理サーバによる処理手順］
次に、図８を用いて、実施例２における管理サーバ３００による処理の手順について説明する。図８は、実施例２における管理サーバ３００による処理手順を示すフローチャートである。
【００９７】
図８に示すように、管理サーバ３００のマイグレーション制御部３１０は、まず、ライブマイグレーションを開始するか否かを判定する（ステップＳ１０１）。例えば、マイグレーション制御部３１０は、管理者等からライブマイグレーションを行う旨の操作が行われた場合に、ライブマイグレーションを開始すると判定する。
【００９８】
そして、マイグレーション制御部３１０の監視部３１１は、ライブマイグレーションを開始する場合に（ステップＳ１０１肯定）、ライブマイグレーションに関する各種情報を取得する（ステップＳ１０２）。例えば、監視部３１１は、管理者等から入力される情報に基づいて、移動対象のＶＭや、移動元サーバ及び移動先サーバ等に関する情報を取得する。
【００９９】
そして、マイグレーション制御部３１０の通知部３１２は、監視部３１１によって取得された移動元サーバ及び移動先サーバ等に基づいて、ＩＧＭＰコマンドを物理スイッチ１００へ発行する（ステップＳ１０３）。
【０１００】
そして、マイグレーション制御部３１０は、物理スイッチ１００からＩＧＭＰコマンドの処理が完了した旨の通知を受信した場合に（ステップＳ１０４肯定）、処理を終了する。
【０１０１】
［物理スイッチによる処理手順］
次に、図９を用いて、実施例２における物理スイッチ１００による処理の手順について説明する。図９は、実施例２における物理スイッチ１００による処理手順を示すフローチャートである。
【０１０２】
図９に示すように、物理スイッチ１００のマルチキャスト制御部５２は、まず、管理サーバ３００の通知部３１２からＩＧＭＰコマンドを受信したか否かを判定する（ステップＳ２０１）。そして、マルチキャスト制御部５２は、通知部３１２からＩＧＭＰコマンドを受信した場合に（ステップＳ２０１肯定）、ＩＧＭＰコマンドの［ｖｉｄ］にＶＬＡＮ番号が設定されているか否かを判定する（ステップＳ２０２）。
【０１０３】
そして、マルチキャスト制御部５２は、ＩＧＭＰコマンドにＶＬＡＮ番号が設定されている場合には（ステップＳ２０２肯定）、ＭＡＣアドレステーブル４２から、上記の条件（Ａ）〜（Ｃ）を全て満たすＭＡＣアドレスを取得する（ステップＳ２０３）。具体的には、マルチキャスト制御部５２は、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号が＜ｆｒｏｍ  ｐｏｒｔ＞に設定されているポート番号を含み、ＶＬＡＮ番号が［ｖｉｄ］に設定されているＶＬＡＮ番号と一致するＭＡＣアドレスを取得する。
【０１０４】
一方、マルチキャスト制御部５２は、ＩＧＭＰコマンドにＶＬＡＮ番号が設定されていない場合には（ステップＳ２０２否定）、ＭＡＣアドレステーブル４２から、上記の条件（Ａ）及び（Ｂ）を全て満たすＭＡＣアドレスを取得する（ステップＳ２０４）。具体的には、マルチキャスト制御部５２は、ＭＡＣアドレスの先頭が「０１：００：５ｅ」であり、ポート番号が＜ｆｒｏｍ  ｐｏｒｔ＞に設定されているポート番号を含むＭＡＣアドレスを取得する。
【０１０５】
マルチキャスト制御部５２は、ＭＡＣアドレスを取得できた場合には（ステップＳ２０５肯定）、かかるＭＡＣアドレスに対応するＭＡＣアドレステーブル４２のポート番号に、＜ｔｏ  ｐｏｒｔ＞に設定されているポート番号を追加する（ステップＳ２０６）。このとき、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２から複数のＭＡＣアドレスを取得した場合には、各ＭＡＣアドレスに対応する「ポート番号」に、＜ｔｏ  ｐｏｒｔ＞に設定されているポート番号を追加する。そして、マルチキャスト制御部５２は、ＩＧＭＰコマンドに対する処理が完了した旨の通知を管理サーバ３００へ送信して（ステップＳ２０７）、処理を終了する。
【０１０６】
一方、マルチキャスト制御部５２は、ＭＡＣアドレステーブル４２からＭＡＣアドレスを取得できなかった場合には（ステップＳ２０５否定）、ステップＳ２０６における処理を行わない。そして、マルチキャスト制御部５２は、ＩＧＭＰコマンドに対する処理が完了した旨の通知を管理サーバ３００へ送信して（ステップＳ２０７）、処理を終了する。
【０１０７】
［実施例２の効果］
上述してきたように、実施例２に係る仮想マシンシステムＳＹ２は、ライブマイグレーションが行われる場合に、管理サーバ３００が、物理スイッチ１００へＩＧＭＰコマンドを通知する。そして、物理スイッチ１００は、かかるＩＧＭＰコマンドに従って、移動元サーバが属するマルチキャストグループに移動先サーバを追加する。これにより、実施例２に係る仮想マシンシステムＳＹ２は、ライブマイグレーションが開始した時点で、移動元サーバが属するマルチキャストグループに移動先サーバを追加することができる。すなわち、実施例２に係る仮想マシンシステムＳＹ２は、ライブマイグレーションが完了した直後であっても、移動先サーバへマルチキャストパケットを送信することができる。この結果、実施例２に係る仮想マシンシステムＳＹ２は、ライブマイグレーションが完了した直後に、移動先サーバに対するマルチキャストパケットの送受信が途絶えることを防止することができる。
【０１０８】
また、実施例２に係る仮想マシンシステムＳＹ２は、管理サーバ３００が、ＶＬＡＮ番号を含むＩＧＭＰコマンドを物理スイッチ１００へ通知する。そして、物理スイッチ１００は、ＩＧＭＰコマンドに設定されている移動元サーバとＶＬＡＮ番号とを用いて、移動元サーバが属するマルチキャストグループに移動先サーバを追加する。これにより、実施例２に係る仮想マシンシステムＳＹ２は、物理スイッチ１００が、移動元サーバとＶＬＡＮとの組合せ毎に、マルチキャストアドレスに移動先サーバを追加することができる。
【実施例３】
【０１０９】
ところで、本願の開示する中継装置等は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例３では、本願の開示する中継装置等の他の実施例について説明する。
【０１１０】
［処理タイミング］
上記実施例２では、管理サーバが、ライブマイグレーションが実行されることを検知した場合にＩＧＭＰコマンドを通知し、物理スイッチ１００がＩＧＭＰコマンドに従って、マルチキャストグループに移動先サーバを追加する例を示した。しかし、管理サーバは、ライブマイグレーションが完了した直後にＩＧＭＰコマンドを通知してもよい。かかる場合には、物理スイッチ１００は、ライブマイグレーションが完了した直後に、マルチキャストグループに移動先サーバを追加する。このように、ライブマイグレーション完了時に、追加処理を行う場合であっても、仮想マシンシステムは、移動先サーバに対するマルチキャストパケットの送受信が途絶えることを防止することができる。
【０１１１】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図５に示した物理スイッチ１００は、マルチキャスト制御部５２を、図１に示した判定部３に対応する部位と、追加部４に対応する部位とに分散して有してもよい。
【０１１２】
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、実施例２では、管理者等からライブマイグレーションを行う旨の操作を行われる例を示した。しかし、管理サーバ３００は、バッチ処理等によって所定の時刻になった場合に、予め決められているライブマイグレーションの実行を開始してもよい。
【０１１３】
また、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１１４】
ＳＹ１、ＳＹ２  仮想マシンシステム
１  中継装置
２  送信先記憶部
３  判定部
４  追加部
５Ａ、５Ｂ  物理マシン
６  仮想マシン
１０、２０  ポートモジュール群
１１〜１ｎ、２１〜２ｎ  ポートモジュール
３０  ストリームメモリ
４０  記憶部
４１  ＶＬＡＮテーブル
４２  ＭＡＣアドレステーブル
５０  制御部
５１  方路決定部
５２  マルチキャスト制御部
１００  物理スイッチ
２００Ａ、２００Ｂ  サーバ
２１０Ａ、２１０Ｂ  ＮＩＣ
２２０Ａ、２２０Ｂ  ＶＭ管理部
２３１Ａ、２３２Ａ、２３１Ｂ、２３２Ｂ  ＶＭ
３００  管理サーバ
３１０  マイグレーション制御部
３１１  監視部
３１２  通知部
【図１】
0005521620.tif 000002
【図２】
0005521620.tif 000003
【図３】
0005521620.tif 000004
【図４】
0005521620.tif 000005
【図５】
0005521620.tif 000006
【図６】
0005521620.tif 000007
【図７】
0005521620.tif 000008
【図８】
0005521620.tif 000009
【図９】
0005521620.tif 000010
【図１０】
0005521620.tif 000011