(57)【要約】      （修正有）【課題】冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが移動する場合において、通信障害の発生を抑制する。【解決手段】情報処理システムは、中継装置と、中継装置に接続される第１サーバ及び第２サーバとを有する。そして、上記第２サーバは、冗長構成を実現する複数のＶＭのうち現用ＶＭが第１サーバから第２サーバに移動してきたことを検出する第１処理部と、現用ＶＭの移動が検出された場合、複数のＶＭが属するグループのアドレスを中継装置に送信する第２処理部とを有する。そして、上記中継装置は、アドレスとポートの識別子とを対応付けて格納するＦＤＢと、ＦＤＢにおける、受信したグループのアドレスに対応付けて格納されているポートの識別子を、第１サーバが接続されているポートの識別子から第２サーバが接続されているポートの識別子に変更する第３処理部とを有する。【選択図】図２０
2014225774.tif 000002
【特許請求の範囲】
【請求項１】
中継装置と、
前記中継装置に接続されている第１の情報処理装置及び第２の情報処理装置と、
を有し、
前記第２の情報処理装置は、
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが前記第１の情報処理装置から前記第２の情報処理装置に移動してきたことを検出する第１処理部と、
前記現用の仮想マシンが第２の情報処理装置に移動してきたことが前記第１処理部により検出された場合、前記中継装置に、前記複数の仮想マシンが属するグループのアドレスを送信する第２処理部と、
を有し、
前記中継装置は、
アドレスとポートの識別情報とを対応付けて格納するデータ格納部と、
前記データ格納部における、受信した前記グループのアドレスに対応付けて格納されているポートの識別情報を、前記第１の情報処理装置が接続されているポートの識別情報から前記第２の情報処理装置が接続されているポートの識別情報に変更する第３処理部と、
を有する情報処理システム。
【請求項２】
前記第１処理部は、
前記現用の仮想マシンが送信する所定のメッセージの転送元が前記中継装置から前記第２の情報処理装置内の仮想マシンに変化したことを検出することによって、前記現用の仮想マシンが移動してきたことを検出する
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが他の情報処理装置から移動してきたことを検出する第１処理部と、
前記現用の仮想マシンが移動してきたことが前記第１処理部により検出された場合、前記複数の仮想マシンが属するグループのアドレスを中継装置に送信する第２処理部と、
を有する情報処理装置。
【請求項４】
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが他の情報処理装置から移動してきたことを検出し、
前記現用の仮想マシンが移動してきたことが検出された場合、前記複数の仮想マシンが属するグループのアドレスを中継装置に送信する
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成の制御技術に関する。
【背景技術】
【０００２】
ＶＲＲＰ（Virtual Router Redundancy Protocol）は、ネットワークにおけるノードを冗長化するためのプロトコルである。ＶＲＲＰにおいては、特定のＶＲＲＰグループに属する複数のノードのうち１つのノードをマスタノード（すなわち現用のノード）とし、残りのノードをバックアップノード（すなわち待機のノード）とする。通常はマスタノードのみが処理を行い、マスタノードに障害が発生するとバックアップノードのうちの一つが代わりに処理を行う。
【０００３】
各ＶＲＲＰグループには、１つの仮想ＭＡＣアドレス及び仮想ＩＰアドレスが割り当てられる。ＶＲＲＰを利用するネットワークにおいては、この仮想ＭＡＣアドレス及び仮想ＩＰアドレス宛のデータがマスタノードに転送されるように、ネットワークにおけるスイッチ等の設定が行われる。
【０００４】
ところで、ＶＲＲＰは、物理マシンだけではなく仮想マシンに対しても適用される。そのため、ＶＲＲＰグループにおけるマスタノードが仮想マシンである場合、マスタノードがライブマイグレーション（Live Migration）によって別のサーバ等に移動することがある。
【０００５】
たとえマスタノードが別のサーバ等に移動したとしても、それに対する対処を行わない限りＶＲＲＰグループ宛のデータは元のサーバに転送される。しかし、マスタノードは元のサーバには存在しないため、通信障害が発生する。従来の技術においては、このような問題には着目されていない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５１８７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、１つの側面では、冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが移動する場合において、通信障害の発生を抑制するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理システムは、中継装置と、中継装置に接続されている第１の情報処理装置及び第２の情報処理装置とを有する。そして、上で述べた第２の情報処理装置は、冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが第１の情報処理装置から第２の情報処理装置に移動してきたことを検出する第１処理部と、現用の仮想マシンが第２の情報処理装置に移動してきたことが第１処理部により検出された場合、中継装置に、複数の仮想マシンが属するグループのアドレスを送信する第２処理部とを有する。そして、上で述べた中継装置は、アドレスとポートの識別情報とを対応付けて格納するデータ格納部と、データ格納部における、受信したグループのアドレスに対応付けて格納されているポートの識別情報を、第１の情報処理装置が接続されているポートの識別情報から第２の情報処理装置が接続されているポートの識別情報に変更する第３処理部とを有する。
【発明の効果】
【０００９】
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが移動する場合において、通信障害の発生を抑制できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、仮想環境におけるＶＲＲＰの設定について説明するための図である。
【図２】図２は、ＶＭのライブマイグレーションについて説明するための図である。
【図３】図３は、ＶＲＲＰグループの仮想ＭＡＣアドレスが更新されないことによる問題について説明するための図である。
【図４】図４は、本実施の形態におけるシステム概要を示す図である。
【図５】図５は、仮想スイッチの機能ブロック図である。
【図６】図６は、レイヤ２スイッチの機能ブロック図である。
【図７】図７は、管理テーブル格納部に格納されるデータの一例を示す図である。
【図８】図８は、ＦＤＢに格納されるデータの一例を示す図である。
【図９】図９は、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの一例を示す図である。
【図１０】図１０は、ＶＲＲＰセグメントを示す図である。
【図１１】図１１は、データ通信用セグメントを示す図である。
【図１２】図１２は、マスタノードの移動を検出する方法について説明するための図である。
【図１３】図１３は、マスタノードの移動を検出する方法について説明するための図である。
【図１４】図１４は、メインの処理フローを示す図である。
【図１５】図１５は、システムの動作の具体例を示す図である。
【図１６】図１６は、システムの動作の具体例を示す図である。
【図１７】図１７は、システムの動作の具体例を示す図である。
【図１８】図１８は、システムの動作の具体例を示す図である。
【図１９】図１９は、システムの動作の具体例を示す図である。
【図２０】図２０は、システムの動作の具体例を示す図である。
【図２１】図２１は、システムの動作の具体例を示す図である。
【図２２】図２２は、システムの動作の具体例を示す図である。
【図２３】図２３は、システムの動作の具体例を示す図である。
【図２４】図２４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１乃至図３を用いて、ライブマイグレーションによるマスタノードの移動について簡単に説明する。
【００１２】
まず、図１を用いて、仮想環境におけるＶＲＲＰの設定について説明する。図１の例においては、ホスト＃１と、サーバ＃１と、サーバ＃２とがＬ（Layer）２スイッチに接続されている。サーバ＃１及びサーバ＃２においては、仮想スイッチが実行されている。サーバ＃１においては、ＶＭ（Virtual Machine）＃１及びＶＭ＃２が実行されている。ＶＭ＃１及びＶＭ＃２は、サーバ＃１における仮想スイッチに接続されている。ここで、ＶＭ＃１及びＶＭ＃２は同じＶＬＡＮ（Virtual Local Area Network）（ここではＶＬＡＮ１）に属し、ＶＭ＃１、ＶＭ＃２及びホスト＃１は同じＶＬＡＮ（ここではＶＬＡＮ２）に属する。ＶＬＡＮ１はＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを送受信するためのＶＬＡＮであり、ＶＬＡＮ２はホスト＃１とＶＭ＃１及びＶＭ＃２との間でデータを送受信するためのＶＬＡＮである。
【００１３】
ＶＭ＃１及びＶＭ＃２は同一のＶＲＲＰグループに属しており、ＶＭ＃１の優先度がＶＭ＃２の優先度より高いため、ＶＭ＃１がマスタノード（すなわち、現用のノード）であり、ＶＭ＃２がバックアップノード（すなわち、待機のノード）である。ＶＭ＃１及びＶＭ＃２が属するＶＲＲＰグループの仮想ＭＡＣアドレスは「Ａ」であり、仮想ＩＰアドレスは「１．１．１．１」である。このように、各ＶＲＲＰグループに対して１つの仮想ＭＡＣアドレス及び仮想ＩＰアドレスが割り当てられているので、ホスト＃１は、たとえマスタノードが変わったとしても宛先アドレスの変更をしなくてもよい。
【００１４】
図２を用いて、ＶＭ＃１のライブマイグレーションについて説明する。図２において、ＶＭ＃１はライブマイグレーションによってサーバ＃２に移動している。ＶＭ＃１が移動すると、サーバ＃２の仮想スイッチは移動を検出し、ＶＭ＃１のＭＡＣアドレス「ａ」を含むＧＡＲＰ（Gratuitous Address Resolution Protocol）パケットをＬ２スイッチに送信する。Ｌ２スイッチは、送信元のＭＡＣアドレスが「ａ」であるパケットをポート「Ｐ２」から受け取り、ＦＤＢ（Forwarding DataBase）のデータを更新する。すなわち、ＦＤＢにおいてＭＡＣアドレス「ａ」に対応付けられている出力ＩＦ（InterFace）（ここではポート）の識別子を「Ｐ１」から「Ｐ２」に変更する。なお、ライブマイグレーションとは、特定の物理サーバ等において稼働しているＶＭを、ＯＳ（Operating System）等のソフトウェアを停止させることなく別の物理サーバ等に移動させることである。
【００１５】
図２を用いて説明した処理は、従来より行われている処理である。このような処理を行えば、ＶＭ＃１のＭＡＣアドレス「ａ」についてはＦＤＢに格納されている出力ＩＦを更新することができる。しかしながら、ＶＭ＃１及びＶＭ＃２が属するＶＲＲＰグループの仮想ＭＡＣアドレス「Ａ」に対応付けられている出力ＩＦは更新されない。
【００１６】
図３を用いて、ＶＲＲＰグループの仮想ＭＡＣアドレスが更新されないことによる問題を説明する。図３においては、ＶＲＲＰグループの仮想ＭＡＣアドレス「Ａ」及び仮想ＩＰアドレス「１．１．１．１」を宛先とするデータをホスト＃１がＬ２スイッチに送信している。Ｌ２スイッチにおけるＦＤＢにおいては、仮想ＭＡＣアドレス「Ａ」を宛先とするデータを出力ＩＦ「Ｐ１」に出力することを示すデータが格納されているので、ホスト＃１が送信したデータはポート「Ｐ１」を介してサーバ＃１に送信される。しかしながら、ＶＲＲＰグループのマスタノードであるＶＭ＃１はサーバ＃１には存在しないため、データに対する処理を行うことができない。
【００１７】
そこで、以下では、マスタノードがライブマイグレーションによって移動した場合にレイヤ２スイッチの設定を迅速に行うことで、通信障害が発生するのを抑制する方法について説明する。
【００１８】
図４に、本実施の形態におけるシステム概要を示す。レイヤ２スイッチ３には、物理サーバであるサーバ１００と、物理サーバであるサーバ１１０と、物理サーバと通信を行うホスト５とが接続されている。サーバ１００においては、ＶＭ１０１と、ＶＭ１０２と、仮想スイッチ１０３とが実行されている。仮想スイッチ１０３は、サーバ１００内でデータの中継を行う。また、サーバ１１０においては、ＶＭ１１１と、ＶＭ１１２と、仮想スイッチ１１３とが実行されている。仮想スイッチ１１３は、サーバ１１０内でデータの中継を行う。図４において、サーバ１００及びサーバ１１０において実行されるＶＭの数は２であるが、数に限定は無い。
【００１９】
図５に、仮想スイッチ１０３及び１１３の機能ブロック図を示す。仮想スイッチ１０３及び１１３においては、Ｉ／Ｏ（Input/Output）インタフェース１００１と、ブリッジング部１００２と、監視部１００３と、スヌーピング部１００４と、ＧＡＲＰ管理部１００６とが実行される。また、例えばサーバ１００及び１１０におけるハードディスク等の記憶装置には、管理テーブル格納部１００５のための領域が確保される。
【００２０】
Ｉ／Ｏインタフェース１００１は、データの入出力を行うためのインタフェース（例えば仮想ポート）である。ブリッジング部１００２は、仮想スイッチ内においてデータの中継を行う。監視部１００３は、同じサーバ内にマスタノードであるＶＭが移動してきたことを検出する。また、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを受信したポートの識別子を管理テーブル格納部１００５に格納する。スヌーピング部１００４は、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージから仮想ＭＡＣアドレス及び仮想ＩＰアドレスを取得し、管理テーブル格納部１００５に格納する。ＧＡＲＰ管理部１００６は、マスタノードが同じサーバに移動してきた場合に、ＶＲＲＰグループの仮想ＭＡＣアドレス及び仮想ＩＰアドレスを含むＧＡＲＰのパケットをレイヤ２スイッチ３に送信する。
【００２１】
図６に、レイヤ２スイッチ３の機能ブロック図を示す。レイヤ２スイッチ３は、処理部３１と、ＦＤＢ３２とを含む。処理部３１は、ＦＤＢ３２に格納されているデータを管理する処理等を実行する。
【００２２】
図７に、仮想スイッチ１０３及び１１３における管理テーブル格納部１００５に格納されるデータの一例を示す。図７の例では、仮想ＭＡＣアドレス及び仮想ＩＰアドレスと、接続ＩＦの識別子（ここでは、ポートの識別子）とが格納される。
【００２３】
図８に、レイヤ２スイッチ３のＦＤＢ３２に格納されるデータの一例を示す。図８の例では、宛先アドレスと、出力ＩＦの識別子（ここでは、ポートの識別子）とが格納される。図８に示したようなデータは、ＶＬＡＮ毎に用意される。
【００２４】
図９に、ＶＲＲＰにおけるＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの一例を示す。図９の例では、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージには、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスを含むイーサネット（登録商標）ヘッダと、宛先ＩＰアドレス及び送信元ＩＰアドレスを含むＩＰヘッダと、優先度と仮想ＩＰアドレスとを含むデータとが含まれる。図９に示すように、宛先には専用のマルチキャストアドレス（ＩＰアドレスは「２２４．０．０．１８」、ＭＡＣアドレスは「０１：００：５ｅ：００：００：１２」）が設定される。送信元ＭＡＣアドレスは、ＶＲＲＰグループに割り当てられた仮想ＭＡＣアドレスである。送信元ＩＰアドレスは、送信元のＶＭの送信ポートに割り当てられた物理ＩＰアドレスである。データには、優先度及びＶＲＲＰグループに割り当てられた仮想ＩＰアドレスが含まれる。
【００２５】
図１０及び図１１に、本実施の形態におけるシステムの論理ネットワークを示す。まず、図１０に、システムにおけるＶＲＲＰセグメント（本実施の形態においては、ＶＬＡＮ１とする）を示す。ＶＲＲＰセグメントには、サーバ１００と、サーバ１１０とが属する。ＶＲＲＰセグメントは、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージが通過するネットワークである。
【００２６】
一方、図１１に示すように、データ通信用セグメントには、サーバ１００と、サーバ１１０と、ホスト５とが属する。データ通信用セグメントを、ＶＬＡＮ２とする。データ通信用セグメントは、ホストとサーバとの間における通信データが通過するネットワークである。
【００２７】
このように、ＶＲＲＰセグメントとデータ通信用セグメントとを分離して構築する理由は、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージがホストに到達することを防ぐためである。
【００２８】
図１２及び図１３を用いて、マスタノードの移動を検出する方法について説明する。まず、図１２に、移動前の状態の一例を示す。マスタノードであるＶＭ１０１はサーバ１００に存在し、仮想スイッチのポート「ｐ１」に接続されている。マスタノードがＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージをマルチキャストで送信すると、ＶＲＲＰ  ＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージはバックアップノードであるＶＭ１０２に到達すると共に、サーバ１００内の仮想スイッチを経由してサーバ１１０内の仮想スイッチまで到達する。ここで、サーバ１００内の仮想スイッチは、管理テーブル格納部１００５に、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの受信ポートの識別子「ｐ１」を登録する。また、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージをスヌーピングし、仮想ＭＡＣアドレス及び仮想ＩＰアドレスを管理テーブル格納部１００５に登録する。サーバ１１０内の仮想スイッチも、管理テーブル格納部１００５への登録を行う。図１２の例の場合、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの受信ポートの識別子は「ｐ４」である。
【００２９】
図１３に、移動後の状態を示す。サーバ１００内のマスタノードはライブマイグレーションによってサーバ１１０に移動する。移動完了後、マスタノードはＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを送信する。ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージはサーバ１１０内の仮想スイッチを通過し、サーバ１００内の仮想スイッチに到達する。ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージはバックアップノードに転送される。各仮想スイッチが受信するＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの受信ポートは、移動前と移動後とで異なるため、管理テーブル格納部１００５に格納されているデータが更新される。サーバ１００内の仮想スイッチは「ｐ３」を登録し、サーバ１１０内の仮想スイッチは「ｐ５」を登録する。また、更新後のポートがＬ２スイッチ側ではなくＶＭ側であるか否かを確認することで、同じ物理サーバ内にマスタノードが移動してきたか否かを判断する。サーバ１００においては、ポート「ｐ３」はＶＭに接続されていないため、同じサーバ以外にマスタノードが移動したことを検出する。サーバ１１０においては、ポート「ｐ５」はＶＭに接続されているため、同じサーバ内にマスタノードが移動してきたことを検出する。
【００３０】
次に、図１４を用いて、本実施の形態におけるシステムの動作を詳細に説明する。まず、仮想スイッチにおけるＩ／Ｏインタフェース１００１は、パケットを受信する（図１４：ステップＳ１）。Ｉ／Ｏインタフェース１００１は、受信したパケットをブリッジング部１００２に出力する。ブリッジング部１００２は、Ｉ／Ｏインタフェース１００１から受け取ったパケットを監視部１００３に出力する。
【００３１】
監視部１００３は、宛先アドレスが所定のマルチキャストアドレスであるか判断する（ステップＳ３）。所定のマルチキャストアドレスとは、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの宛先アドレスに設定される専用のマルチキャストアドレスである。上で述べたように、ＩＰアドレスは「２２４．０．０．１８」であり、ＭＡＣアドレスは「０１：００：５ｅ：００：００：１２」である。
【００３２】
宛先アドレスが所定のマルチキャストアドレスではない場合（ステップＳ３：Ｎｏルート）、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージではないため、処理を終了する。一方、宛先アドレスが所定のマルチキャストアドレスである場合（ステップＳ３：Ｙｅｓルート）、監視部１００３は、パケットの受信ポートが前回の受信ポートと同じであるか判断する（ステップＳ５）。前回の受信ポートの識別子は、管理テーブル格納部１００５に格納されている。
【００３３】
前回の受信ポートと同じである場合（ステップＳ５：Ｙｅｓルート）、ＶＭは移動していないので、処理を終了する。一方、前回の受信ポートと同じではない場合（ステップＳ５：Ｎｏルート）、監視部１００３は、受信ポートの識別子を管理テーブル格納部１００５に格納する（ステップＳ７）。すなわち、ステップＳ７においては、既に格納されている識別子を、今回の受信ポートの識別子で更新する。監視部１００３は、パケットをスヌーピング部１００４に出力する。
【００３４】
スヌーピング部１００４は、パケットから仮想ＭＡＣアドレス及び仮想ＩＰアドレスを取得する（ステップＳ９）。そして、スヌーピング部１００４は、取得された仮想ＭＡＣアドレス及び仮想ＩＰアドレスを管理テーブル格納部１００５に格納する（ステップＳ１１）。ステップＳ１１においては、ステップＳ７において格納された受信ポートの識別子に対応付けて仮想ＭＡＣアドレス及び仮想ＩＰアドレスを格納する。
【００３５】
監視部１００３は、今回の受信ポートはＶＭが接続されるポートであるか判断する（ステップＳ１３）。仮想スイッチは各ポートの接続先を管理する情報を保持しているため、監視部１００３は、その情報を用いてステップＳ１３の処理を行う。
【００３６】
受信ポートはＶＭが接続されるポートではない場合（ステップＳ１３：Ｎｏルート）、仮想スイッチが実行されているサーバと同じサーバにＶＭが移動してきたわけではないので、処理を終了する。一方、受信ポートはＶＭが接続されるポートである場合（ステップＳ１３：Ｙｅｓルート）、監視部１００３は、ＧＡＲＰ管理部１００６に処理の実行を要求する。ＧＡＲＰ管理部１００６は、パケットから取得された仮想ＭＡＣアドレス及び仮想ＩＰアドレスを含むＧＡＲＰパケットを生成し、レイヤ２スイッチ３に送信する。具体的には、生成されたＧＡＲＰパケットをブリッジング部１００２に出力し、ブリッジング部１００２はそのＧＡＲＰパケットをＩ／Ｏインタフェース１００１に出力する。Ｉ／Ｏインタフェース１００１は、ブリッジング部１００２から受け取ったＧＡＲＰパケットをレイヤ２スイッチ３に送信する（ステップＳ１５）。そして処理を終了する。
【００３７】
なお、レイヤ２スイッチ３における処理部３１は、ＦＤＢ３２においてＧＡＲＰパケットに含まれる仮想ＭＡＣアドレスに対応付けて格納されているポートの識別子を、今回ＧＡＲＰパケットを受信したポートの識別子に変更する。
【００３８】
以上のような処理を実行すれば、マスタノードであるＶＭが移動した後ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを送信したタイミングにおいて、レイヤ２スイッチ３のＦＤＢ３２が更新される。これによって、ＶＲＲＰグループ宛のデータが元のサーバに送信されてしまうことを抑制できるので、通信障害の発生を抑制することにつながる。
【００３９】
次に、図１５乃至図２３を用いて、本実施の形態におけるシステムの動作を具体的に説明する。図１５に、ネットワークトポロジを示す。図１５においては、ホスト＃１と、サーバ＃１と、サーバ＃２とがＬ２スイッチに接続されている。サーバ＃1及びサーバ＃２は仮想化環境として使用される。サーバ＃１においてはＶＭ＃１とＶＭ＃２とが実行されている。ＶＭ＃１の仮想ＮＩＣ（Network Interface Card）に割り当てられるＭＡＣアドレスを「ａ」、ＶＭ＃２の仮想ＮＩＣに割り当てられるＭＡＣアドレスを「ｂ」とする。ホスト＃１の物理ＮＩＣのＭＡＣアドレスは「ｃ」とする。
【００４０】
ＶＭ＃１とＶＭ＃２との間にＶＲＲＰを設定し、ＶＭ＃１をマスタノードとする。ＶＲＲＰで使用する仮想ＩＰアドレスは「１．１．１．１」とし、仮想ＭＡＣアドレスは「Ａ」とする。ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージが通過するセグメントをＶＬＡＮ１とし、ホスト＃１とＶＭ＃１及びＶＭ＃２との間において通信データが通過するセグメントをＶＬＡＮ２とする。この段階において、仮想スイッチにおける管理テーブル格納部１００５及びＬ２スイッチにおけるＦＤＢ３２にはデータが格納されていない。
【００４１】
図１６に、管理テーブル格納部１００５におけるエントリを生成する動作を示す。ＶＲＲＰが設定されると、マスタノードからＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージがマルチキャストで定期的に送信される。ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを受信した、サーバ＃１の仮想スイッチは、受信ポートが前回の受信ポートと異なる場合に、管理テーブル格納部１００５にエントリを生成する。具体的には、サーバ＃１の仮想スイッチは、管理テーブル格納部１００５における接続ＩＦにＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの受信ポートの識別子「ｐ１」を登録する。また、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージをスヌーピングし、「Ａ」及び「１．１．１．１」を仮想ＭＡＣアドレス及び仮想ＩＰアドレスとして管理テーブル格納部１００５に登録する。一方、サーバ＃２の仮想スイッチは、管理テーブル格納部１００５における接続ＩＦにＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの受信ポートの識別子「ｐ４」を登録する。また、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージをスヌーピングし、「Ａ」及び「１．１．１．１」を仮想ＭＡＣアドレス及び仮想ＩＰアドレスとして管理テーブル格納部１００５に登録する。
【００４２】
Ｌ２スイッチは、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを受信すると、送信元ＭＡＣアドレスである「Ａ」と受信ポートの識別子である「Ｐ１」とを対応付けてＦＤＢ３２に登録する。ＶＲＲＰ  ＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージはＶＬＡＮ１のセグメントを通過するため、ＦＤＢ３２におけるＶＬＡＮ１用のデータを更新する。
【００４３】
図１７に、ホスト＃１がＡＲＰ要求を送信した場合における動作を示す。ホスト＃１は、ＶＲＲＰグループの仮想ＩＰアドレスである「１．１．１．１」に対応するＭＡＣアドレスを調べるため、ＡＲＰ要求をブロードキャストで送信する。ＡＲＰ要求を受信したレイヤ２スイッチは、ＡＲＰ要求をサーバ＃１に転送し、サーバ＃１における仮想スイッチは、ＶＭ＃１及びＶＭ＃２に対してＡＲＰ要求を送信する。ＡＲＰ要求を受信したＶＭのうちマスタノードであるＶＭ＃１は、ＡＲＰ応答を送信する。
【００４４】
Ｌ２スイッチは、ＡＲＰ要求については送信元ＭＡＣアドレスである「ｃ」と受信ポートの識別子である「Ｐ３」とを対応付けてＦＤＢ３２に登録し、ＡＲＰ応答については送信元ＭＡＣアドレスである「Ａ」と受信ポートの識別子であるである「Ｐ１」とを対応付けてＦＤＢ３２に登録する。なお、ＡＲＰ要求及びＡＲＰ応答はＶＬＡＮ２のセグメントを通過するため、ＦＤＢ３２におけるＶＬＡＮ２用のデータを更新する。
【００４５】
ＡＲＰの処理が完了すると、図１８で示すように、ホスト＃１とマスタノードであるＶＭ＃１との間ではユニキャストで通信が行われる。すなわち、ホスト＃１が宛先ＭＡＣアドレスを「Ａ」とし宛先ＩＰアドレスを「１．１．１．１」とするユニキャストのデータを送信する。Ｌ２スイッチは、ユニキャストのデータを受信すると、ＦＤＢ３２におけるエントリに従い、ユニキャストのデータをポート「Ｐ１」から出力する。サーバ＃１は、ユニキャストのデータを受信すると、管理テーブル格納部１００５に格納されているデータに従い、ユニキャストのデータをポート「ｐ１」から出力する。そして、ＶＭ＃１がユニキャストのデータを受信する。なお、ＶＭ＃１がホスト＃１にユニキャストのデータを送信する場合にも同様の中継が行われる。
【００４６】
図１９に、マスタノードがライブマイグレーションによってサーバ＃２に移動した場合における動作を示す。マスタノードがサーバ＃２に移動すると、サーバ＃２の仮想スイッチは、ＶＭ＃１の仮想ＮＩＣのＭＡＣアドレスである「ａ」を含むＧＡＲＰパケットを、ＶＬＡＮ１及びＶＬＡＮ２に対して送信する。ＧＡＲＰパケットを受信したＬ２スイッチは、ＦＤＢ３２におけるＶＬＡＮ１及びＶＬＡＮ２用のデータの各々について「ａ」を含むエントリを更新する。具体的には、ＶＬＡＮ１については出力ＩＦが「Ｐ１」から「Ｐ２」に変更され、ＶＬＡＮ２については新規にエントリが追加される。
【００４７】
図２０に、マスタノード移動後におけるＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの転送を示す。ライブマイグレーション完了後、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージはサーバ＃２におけるマスタノードから送信され、サーバ＃２における仮想スイッチを通過し、サーバ＃１における仮想スイッチに到達する。サーバ＃１の仮想スイッチに到達したＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージは、バックアップノードに転送される。
【００４８】
サーバ＃２の管理テーブル格納部１００５における接続ＩＦは「ｐ４」から「ｐ５」に変更され、サーバ＃１の管理テーブル格納部１００５における接続ＩＦは「ｐ１」から「ｐ３」に変更される。Ｌ２スイッチは、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを受信した後、ＦＤＢ３２におけるＶＬＡＮ１用のデータにおいて、「Ａ」を含むエントリを更新する。具体的には、出力ＩＦが「Ｐ１」から「Ｐ２」に変更される。
【００４９】
サーバ＃２の管理テーブル格納部１００５における接続ＩＦは「ｐ５」に変更されるが、「ｐ５」の接続先はＶＭであるため、仮想スイッチは、仮想ＭＡＣアドレスである「Ａ」を含むＧＡＲＰパケットをＬ２スイッチに送信する。このＧＡＲＰパケットは、ＶＬＡＮ２に対してのみ送信される。ＧＡＲＰパケットを受信したＬ２スイッチは、ＦＤＢ３２におけるＶＬＡＮ２用のデータについて、「Ａ」を含むエントリを更新する。具体的には、出力ＩＦが「Ｐ１」から「Ｐ２」に変更される。
【００５０】
図２１に、ライブマイグレーション後におけるデータ通信を示す。ホスト＃１が宛先ＭＡＣアドレスを「Ａ」とし宛先ＩＰアドレスを「１．１．１．１」とするユニキャストのデータを送信する。Ｌ２スイッチは、ユニキャストのデータを受信すると、ＦＤＢ３２におけるエントリに従い、ユニキャストのデータをポート「Ｐ２」から出力する。サーバ＃２における仮想スイッチは、ユニキャストのデータを受信すると、管理テーブル格納部１００５に格納されているデータに従い、ユニキャストのデータをポート「ｐ５」から出力する。そして、ＶＭ＃１がユニキャストのデータを受信する。なお、ＶＭ＃１がホスト＃１にユニキャストのデータを送信する場合にも同様の中継が行われる。
【００５１】
図２２に、図１８の状態においてバックアップノードがライブマイグレーションによってサーバ＃２に移動した場合における動作を示す。バックアップノードがサーバ＃２に移動すると、仮想スイッチは、ＶＭ＃２の仮想ＮＩＣのＭＡＣアドレス「ｂ」を含むＧＡＲＰパケットをＶＬＡＮ１及びＶＬＡＮ２に対して送信する。ＧＡＲＰパケットを受信したＬ２スイッチは、ＦＤＢ３２におけるＶＬＡＮ１用のデータ及びＶＬＡＮ２用のデータについて「ｂ」を含むエントリを更新する。具体的には、ＶＬＡＮ１及びＶＬＡＮ２について新規のエントリが追加される。
【００５２】
図２３に、バックアップノード移動後におけるＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージの転送を示す。ライブマイグレーション完了後、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージはサーバ＃１におけるマスタノードから送信され、サーバ＃１における仮想スイッチを通過し、サーバ＃２における仮想スイッチに到達する。サーバ＃２の仮想スイッチに到達したＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージは、バックアップノードに転送される。但し、マスタノードが移動したわけではないため、各仮想スイッチにおける管理テーブル格納部１００５のデータは更新されない。
【００５３】
以上のような処理を実行すれば、ライブマイグレーションによってマスタノードの配置が変更されたとしても迅速にＦＤＢ３２を更新できるので、通信障害の発生を抑制できるようになる。
【００５４】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したレイヤ２スイッチ３並びにサーバ１００及び１１０の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５５】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５６】
例えば、ステップＳ１５においてはＧＡＲＰのパケットを送信する例を説明したが、ＧＡＲＰのパケットに限られるわけではない。ＶＲＲＰグループの仮想ＭＡＣアドレスを含むパケットを送信し、レイヤ２スイッチ３がそのパケットの受信に応じてＦＤＢ３２を更新してもよい。
【００５７】
なお、上で述べたサーバ１００及び１１０は、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００５８】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００５９】
本実施の形態に係る情報処理システムは、（Ａ）中継装置と、（Ｂ）中継装置に接続されている第１の情報処理装置及び第２の情報処理装置とを有する。そして、上で述べた第２の情報処理装置は、（ｂ１）冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが第１の情報処理装置から第２の情報処理装置に移動してきたことを検出する第１処理部と、（ｂ２）現用の仮想マシンが第２の情報処理装置に移動してきたことが第１処理部により検出された場合、中継装置に、複数の仮想マシンが属するグループのアドレスを送信する第２処理部とを有する。そして、上で述べた中継装置は、（ａ１）アドレスとポートの識別情報とを対応付けて格納するデータ格納部と、（ａ２）データ格納部における、受信したグループのアドレスに対応付けて格納されているポートの識別情報を、第１の情報処理装置が接続されているポートの識別情報から第２の情報処理装置が接続されているポートの識別情報に変更する第３処理部とを有する。
【００６０】
このようにすれば、現用の仮想マシンが移動した場合において、グループ宛のデータが移動後の現用の仮想マシンに中継されるように迅速に中継装置を設定できるので、通信障害の発生を抑制できるようになる。
【００６１】
また、上で述べた第１処理部は、（ｂ１１）現用の仮想マシンが送信する所定のメッセージの転送元が中継装置から第２の情報処理装置内の仮想マシンに変化したことを検出することによって、現用の仮想マシンが移動してきたことを検出してもよい。このようにすれば、上記のグループが、現用系の仮想マシンが所定のメッセージを送ることを特徴とするグループ（例えばＶＲＲＰグループ）である場合に、現用の仮想マシンの移動を効率的に検出できるようになる。
【００６２】
また、上で述べた第２処理部は、（ｂ２１）複数の仮想マシンが属するグループのアドレスを含むアドレス解決プロトコルのパケットを中継装置に送信してもよい。上記ような情報処理システムにおいてアドレス解決プロトコルは通常使用されるプロトコルであるので、アドレス解決プロトコルを利用すれば、情報処理システムに対する改変を少なくできるようになる。
【００６３】
また、上で述べたグループのアドレスは、グループの仮想ＭＡＣアドレスを含んでもよい。このようにすれば、中継装置が例えばレイヤ２のスイッチである場合においても、設定を適切に行えるようになる。
【００６４】
また、上で述べた所定のメッセージは、ＶＲＲＰ（Virtual Router Redundancy Protocol）におけるＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージであってもよい。ＶＲＲＰにおけるＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージは定期的に送信されるので、Ａｄｖｅｒｔｉｓｅｍｅｎｔメッセージを利用すれば、上記のグループがＶＲＲＰグループである場合において確実に設定の変更を行えるようになる。
【００６５】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）
中継装置と、
前記中継装置に接続されている第１の情報処理装置及び第２の情報処理装置と、
を有し、
前記第２の情報処理装置は、
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが前記第１の情報処理装置から前記第２の情報処理装置に移動してきたことを検出する第１処理部と、
前記現用の仮想マシンが第２の情報処理装置に移動してきたことが前記第１処理部により検出された場合、前記中継装置に、前記複数の仮想マシンが属するグループのアドレスを送信する第２処理部と、
を有し、
前記中継装置は、
アドレスとポートの識別情報とを対応付けて格納するデータ格納部と、
前記データ格納部における、受信した前記グループのアドレスに対応付けて格納されているポートの識別情報を、前記第１の情報処理装置が接続されているポートの識別情報から前記第２の情報処理装置が接続されているポートの識別情報に変更する第３処理部と、
を有する情報処理システム。
【００６８】
（付記２）
前記第１処理部は、
前記現用の仮想マシンが送信する所定のメッセージの転送元が前記中継装置から前記第２の情報処理装置内の仮想マシンに変化したことを検出することによって、前記現用の仮想マシンが移動してきたことを検出する
ことを特徴とする付記１記載の情報処理システム。
【００６９】
（付記３）
前記第２処理部は、
前記複数の仮想マシンが属するグループのアドレスを含むアドレス解決プロトコルのパケットを前記中継装置に送信する
ことを特徴とする付記１又は２記載の情報処理システム。
【００７０】
（付記４）
前記グループのアドレスは、前記グループの仮想ＭＡＣアドレスを含む
ことを特徴とする付記１乃至３のいずれか１つ記載の情報処理システム。
【００７１】
（付記５）
前記所定のメッセージは、ＶＲＲＰ（Virtual Router Redundancy Protocol）におけるＡｄｖｅｒｔｉｓｅｍｅｎｔメッセージである
ことを特徴とする付記２記載の情報処理システム。
【００７２】
（付記６）
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが他の情報処理装置から移動してきたことを検出する第１処理部と、
前記現用の仮想マシンが移動してきたことが前記第１処理部により検出された場合、前記複数の仮想マシンが属するグループのアドレスを中継装置に送信する第２処理部と、
を有する情報処理装置。
【００７３】
（付記７）
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが他の情報処理装置から移動してきたことを検出し、
前記現用の仮想マシンが移動してきたことが検出された場合、前記複数の仮想マシンが属するグループのアドレスを中継装置に送信する
処理をコンピュータに実行させるためのプログラム。
【００７４】
（付記８）
冗長構成を実現する複数の仮想マシンのうち現用の仮想マシンが他の情報処理装置から移動してきたことを検出し、
前記現用の仮想マシンが移動してきたことが検出された場合、前記複数の仮想マシンが属するグループのアドレスを中継装置に送信する
処理をコンピュータが実行する情報処理方法。
【符号の説明】
【００７５】
１００，１１０  サーバ    １０１，１０２，１１１，１１２  ＶＭ
１０３，１１３  仮想スイッチ    ３  レイヤ２スイッチ
５  ホスト    １００１  Ｉ／Ｏインタフェース
１００２  ブリッジング部    １００３  監視部
１００４  スヌーピング部    １００５  管理テーブル格納部
１００６  ＧＡＲＰ管理部    ３１  処理部
３２  ＦＤＢ
【図１】
2014225774.tif 000003
【図２】
2014225774.tif 000004
【図３】
2014225774.tif 000005
【図４】
2014225774.tif 000006
【図５】
2014225774.tif 000007
【図６】
2014225774.tif 000008
【図７】
2014225774.tif 000009
【図８】
2014225774.tif 000010
【図９】
2014225774.tif 000011
【図１０】
2014225774.tif 000012
【図１１】
2014225774.tif 000013
【図１２】
2014225774.tif 000014
【図１３】
2014225774.tif 000015
【図１４】
2014225774.tif 000016
【図１５】
2014225774.tif 000017
【図１６】
2014225774.tif 000018
【図１７】
2014225774.tif 000019
【図１８】
2014225774.tif 000020
【図１９】
2014225774.tif 000021
【図２０】
2014225774.tif 000022
【図２１】
2014225774.tif 000023
【図２２】
2014225774.tif 000024
【図２３】
2014225774.tif 000025
【図２４】
2014225774.tif 000026