(57)【特許請求の範囲】
【請求項１】
仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置において、
自身と接続されたサーバで稼働する仮想マシンを示す仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶部と、
自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信する受信部と、
前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶しているか否かを判定する判定部と、
前記記憶部が前記受信した仮想マシン識別子を他のポートで記憶していないと前記判定部が判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する転送部と
を有することを特徴とするデータ中継装置。
【請求項２】
前記受信部は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、当該仮想マシンが通信を行う際の通信経路を示す経路識別子と、ポートプロファイルの設定要求とを受信し、
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、前記受信部が受信した経路識別子が示す通信経路を判別し、当該判別した通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
ことを特徴とする請求項１に記載のデータ中継装置。
【請求項３】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していると前記判定部が判定した場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、当該仮想マシン識別子が示す仮想マシンのポートプロファイルの更新を実行する実行部を有することを特徴とする請求項２に記載のデータ中継装置。
【請求項４】
前記実行部は、前記受信部が受信した経路識別子が示す通信経路において自身よりも上位のデータ中継装置が存在しない場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、前記受信部が受信した仮想マシン識別子が示す仮想マシンのポートプロファイルを更新することを特徴とする請求項３に記載のデータ中継装置。
【請求項５】
前記受信部は、自身よりも上位のデータ中継装置から前記ポートプロファイルの設定要求に対する応答を受信し、
前記転送部は、前記受信部が受信した経路識別子が示す通信経路において自身よりも上位のデータ中継装置が存在する場合には、前記受信部が当該上位のデータ中継装置から前記応答を受信した後に、自身よりも下位のデータ中継装置、または、自身と接続された前記サーバに対して、前記応答を転送することを特徴とする請求項４に記載のデータ中継装置。
【請求項６】
前記実行部は、前記受信部が、前記上位のデータ中継装置から前記応答を受信した後で、前記ポートプロファイルを更新することを特徴とする請求項５に記載のデータ中継装置。
【請求項７】
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、自身よりも上位のデータ中継装置に対して、前記ポートプロファイルの設定要求をブロードキャスト送信することを特徴とする請求項１に記載のデータ中継装置。
【請求項８】
前記データ中継装置は、
自身を含む通信経路を示す経路識別子と、ＭＡＣアドレスとを対応付けて記憶する経路情報記憶部を有し、
前記受信部は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、当該仮想マシンが通信を行う際の通信経路を判別する経路識別子と、ポートプロファイルの設定要求とを受信し、
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、前記経路情報記憶部が当該経路識別子と対応付けて記憶する前記ＭＡＣアドレスとが示すデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項９】
前記受信部は、前記移動対象の仮想マシンが使用していた仮想ネットワークを判別する情報を含む前記設定要求を受信し、
前記転送部は、前記設定要求に含まれる前記仮想ネットワークを判別する情報を用いて、前記移動対象の仮想マシンが使用していた仮想ネットワークを判別し、当該判別した仮想ネットワークにおいて当該仮想マシンのデータを中継するデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１０】
前記データ中継装置は、
中継するデータを受信したポート番号と、当該データの送信先となるデータ中継装置とを対応付けて記憶する転送記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求を受信したポート番号と対応付けて記憶されたデータ中継先を前記転送記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１１】
前記データ中継装置は、
受信したデータの送信元であるサーバのＭＡＣアドレスと、当該データの転送先となるデータ中継装置とを対応付けて記憶するＭＡＣアドレス記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求の送信元となるサーバのＭＡＣアドレスと対応付けて記憶されたデータ中継装置をＭＡＣアドレス記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１２】
前記データ中継装置は、
受信したデータの送信元であるサーバのＩＰアドレスと、当該データの転送先となるデータ中継装置とを対応付けて記憶するＩＰアドレス記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求の送信元となるサーバのＩＰアドレスと対応付けて記憶されたデータ中継装置を前記ＩＰアドレス記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１３】
前記データ中継装置は、
中継するデータを転送する優先度を示す優先情報と、当該データの送信先となるデータ中継装置とを対応付けて記憶する優先情報記憶部を有し、
前記受信部は、前記優先情報と、前記ポートプロファイルの設定要求を受信し、
前記転送部は、前記受信した優先情報と対応付けて記憶されたデータ中継装置を前記優先情報記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１４】
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１５】
前記転送部は、前記ポートプロファイルの設定要求の内容がポートプロファイルの削除である場合は、前記受信部が受信した仮想マシン識別子が示す仮想マシンが移動前に利用したアップリンクに基づいて、上位のデータ中継装置を選択し、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定し、かつ、前記ポートプロファイルの設定要求の内容が新たなポートプロファイルの適用である場合は、該仮想マシンが移動後に利用するアップリンクに基づいて、上位のデータ中継装置を選択し、前記選択した上位のデータ中継装置に前記受信部が受信したポートプロファイルの設定要求を転送することを特徴とする請求項１４に記載のデータ中継装置。
【請求項１６】
前記受信部が受信した仮想マシン識別子が示す仮想マシンが外部ネットワークに接続するためのアップリンクにおいて自身よりも上位のデータ中継装置が存在しない場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、前記受信部が受信した仮想マシン識別子が示す仮想マシンのポートプロファイルを更新することを特徴とする請求項１５に記載のデータ中継装置。
【請求項１７】
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合は、当該仮想マシン識別子が示す仮想マシンが外部ネットワークに接続するためのアップリンクに基づいて、上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１８】
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、同一のテナントに対してサービスを提供する仮想マシンのグループとに応じて、前記ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、選択した上位のデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項１に記載のデータ中継装置。
【請求項１９】
仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置が有するコンピュータが実行するデータ中継プログラムにおいて、
自身を動作させるコンピュータと接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信し、
自身を動作させるコンピュータと接続されたサーバで稼働する仮想マシンの仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶装置に、前記受信した仮想マシン識別子が他のポートで記憶されているか否かを判定し、
前記受信した仮想マシン識別子を他のポートで記憶していないと判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身を動作させるコンピュータよりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
処理を前記コンピュータに実行させることを特徴とするデータ中継プログラム。
【請求項２０】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送する
処理を前記コンピュータに実行させることを特徴とする請求項１９に記載のデータ中継プログラム。
【請求項２１】
仮想マシンを稼働させるサーバ間のデータを中継するコンピュータが実行するデータ中継方法において、
自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信し、
自身と接続されたサーバで稼働する仮想マシンの仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶装置に、前記受信した仮想マシン識別子が他のポートで記憶されているか否かを判定し、
前記受信した仮想マシン識別子を他のポートで記憶していないと判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
処理を実行することを特徴とするデータ中継方法。
【請求項２２】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送する
処理を実行することを特徴とする請求項２１に記載のデータ中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ中継装置、データ中継プログラムおよびデータ中継方法に関する。
【背景技術】
【０００２】
従来、情報処理装置としてのサーバ上で、ＶＭ（Virtual  Machine：仮想マシン）といわれる仮想的な情報処理装置を動作させるサーバ仮想化技術が知られている。このような仮想化技術に関する機能の１つとして、業務を停止させることなく、あるサーバで稼働中のＶＭを別のサーバに移動するライブマイグレーション（Live  Migration）の技術が知られている。
【０００３】
このようなライブマイグレーションの技術は、ＶＭの自由な移動が求められるクラウドデータセンタ環境等において利用される。例えば、このようなクラウドデータセンタは、ＶＭを稼働させる複数のサーバと、各サーバが実行するＶＭ間の通信を中継する１つ又は複数のスイッチとを有する。各スイッチは、各サーバが稼働させるＶＭのＶＬＡＮ（Virtual  Local  Area  Network）やＱｏＳ（Quality  of  Service）等を示すポートプロファイルに応じて、ＶＭ間の通信を中継する。
【０００４】
このようなポートプロファイルの設定を自動化する手法の一例として、ＩＥＥＥ（The  Institute  of  Electrical  and  Electronics  Engineers,  Inc.）８０２．１Ｑｂｇで議論されるＶＳＩ（Virtual  Station  Interface）発見プロトコルが知られている。以下、ＶＳＩ発見プロトコルを用いたポートプロファイルの自動設定（AMPP：Automated  Migration  of  Port  Profile）の一例について説明する。
【０００５】
図３０は、従来技術に係るポートプロファイルの自動化処理の一例を示すシーケンス図である。なお、図３０に示す例では、移動対象のＶＭの移動元である移動元サーバと、ＶＭの移動先である移動先サーバと、移動元サーバと移動先サーバとの通信を中継するスイッチとが実行する処理の一例について説明する。また、以下の説明では、移動先サーバと接続されているスイッチのポートを移動先ポートとし、移動元サーバと接続されているスイッチのポートを移動元ポートとする。
【０００６】
図３０に示す例では、移動先サーバは、管理者等の指示操作を受け付けると、新しいＶＭを自サーバ上に生成する（Ｓ１）。続いて、移動元サーバおよび移動先サーバは、移動元サーバがライブマイグレーションを指示されると（Ｓ２）、ＶＭを稼働させながらＶＭのデータを移動元サーバから移動先サーバへ段階的にコピーするプレコピーを実施する（Ｓ３、Ｓ４）。
【０００７】
プレコピーが開始されると、移動先サーバは、ＶＳＩ発見プロトコルのＰＲＥ−ＡＳＳＯＣメッセージをスイッチの移動先ポートに送信する（Ｓ５）。このメッセージを受信したスイッチは、移動対象となるＶＭに対応したポートプロファイルを取得し、取得したポートプロファイルを自身の移動先ポートに設定する準備を行う（Ｓ６）。そして、スイッチは、ＰＲＥ−ＡＳＳＯＣメッセージの応答として、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバに送信する（Ｓ７）。
【０００８】
次に、移動元サーバおよび移動先サーバは、移動対象ＶＭの業務を一時的に停止し、自身が利用しているメモリ内容を移動元サーバから移動先サーバに転送するストップアンドコピーを実施する（Ｓ８、Ｓ９）。ストップアンドコピーが開始されると、移動先サーバは、ＶＳＩ発見プロトコルのＡＳＳＯＣメッセージをスイッチの移動先ポートに送信する（Ｓ１０）。
【０００９】
このような場合には、スイッチは、ＰＲＥ−ＡＳＳＯＣメッセージ受信時に取得したポートプロファイルを移動先ポートに設定する（Ｓ１１）。そして、スイッチは、ＡＳＳＯＣメッセージの応答として、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバに送信する（Ｓ１２）。なお、ステップＳ１２以降、移動対象ＶＭは移動先サーバ上で稼動する。
【００１０】
一方で、移動元サーバは、ＶＳＩ発見プロトコルのＤＥ−ＡＳＳＯＣメッセージをスイッチの移動元ポートに送信する（Ｓ１３）。スイッチは、ＤＥ−ＡＳＳＯＣメッセージを受信した場合には、移動元ポートに設定されたポートプロファイル、すなわち、移動対象となるＶＭに対応するポートプロファイルの設定を削除する（Ｓ１４）。そして、スイッチは、ＤＥ−ＡＳＳＯＣメッセージの応答として、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元サーバに送信する（Ｓ１５）。このようにして、ＶＭの移動およびポートプロファイルの自動設定が実行される。
【００１１】
一方、サーバ間を複数の経路で接続することで、サーバ間の通信帯域を増加させるマルチパスの技術が知られている。以下、図３１を用いて、マルチパスの技術が適用されたクラウドデータセンターのシステムの一例について説明する。図３１は、マルチパスの技術が適用されたシステムの一例を説明するための図である。図３１に示す例では、システム３０は、それぞれＶＭ＃１〜＃４を稼働させる複数のサーバ３６〜３９と各サーバ間の通信を中継する複数のスイッチ３１〜３５を有する。
【００１２】
ここで、サーバ３６とサーバ３７とは、スイッチ３１と接続し、サーバ３８は、スイッチ３２と接続し、サーバ３９は、スイッチ３３と接続する。また、スイッチ３１〜３３は、スイッチ同士の通信を中継する上位のスイッチ３４およびスイッチ３５と接続する。つまり、システム３０においては、複数のスイッチを介する通信経路が各サーバ３６〜３９間に複数存在するよう各スイッチ３１〜３５を接続する。
【００１３】
このようなシステム３０においては、例えば、サーバ３６が稼働させるＶＭ＃１は、スイッチ３１、スイッチ３４、スイッチ３２を介する経路、または、スイッチ３１、スイッチ３５、スイッチ３２を介する経路でサーバ３８が稼働させるＶＭ＃３と通信を行う。また、例えば、サーバ３７が稼働させるＶＭ＃２は、スイッチ３１、スイッチ３５、スイッチ３３を介する経路、または、スイッチ３１、スイッチ３４、スイッチ３３を介する経路でサーバ３９が稼働させるＶＭ＃４と通信を行う。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０１１−０７０５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかし、上述したＶＳＩ発見プロトコルは、サーバと接続されたスイッチにポートプロファイルを自動設定するためのプロトコルであるため、複数段に接続されたスイッチにポートプロファイルを自動設定することができないという問題がある。
【００１６】
一例として、サーバ３９が稼働させるＶＭ＃４をサーバ３８に移動させる例について説明する。このような場合には、サーバ３８とスイッチ３２との間でＰＲＥ−ＡＳＳＯＣとＡＳＳＯＣとがやり取りされ、サーバ３９とスイッチ３３との間でＤＥ−ＡＳＳＯＣがやり取りされるので、スイッチ３３およびスイッチ３２のポートプロファイルが自動設定される。
【００１７】
しかし、スイッチ間の通信を中継する上位のスイッチ３４およびスイッチ３５に対しては、ＶＳＩ発見プロトコルの各メッセージが送信されない。このため、システム３０は、スイッチ３４およびスイッチ３５のポートプロファイルを自動設定することができない。
【００１８】
１つの側面では、本発明は、複数段に接続されたスイッチにポートプロファイルを自動設定する。
【課題を解決するための手段】
【００１９】
本願に開示の技術は、１つの側面では、仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置である。このようなデータ中継装置は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信する。また、データ中継装置は、自身と接続されたサーバで稼働する仮想マシンの仮想マシン識別子と各仮想マシンが用いるポートとを記憶する記憶装置に、受信した仮想マシン識別子が異なるポートで記憶されているか否かを判定する。そして、データ中継装置は、受信した仮想マシン識別子を異なるポートで記憶していないと判定した場合には、仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置にポートプロファイルの設定要求を転送する。
【発明の効果】
【００２０】
１実施形態では、複数段に接続されたスイッチにポートプロファイルを自動設定することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施例１に係る情報処理システムの一例を説明するための図である。
【図２】図２は、スイッチが経路ＩＤに基づいてデータの転送を行う例について説明するための図である。
【図３】図３は、仮想マシンの移動時に行われる処理の一例を説明するための図である。
【図４】図４は、実施例１に係るサーバの構成を示すブロック図である。
【図５】図５は、実施例１に係るスイッチの一例を説明するための図である。
【図６】図６は、実施例１に係る経路テーブルの一例を説明するための図である。
【図７】図７は、ＶＳＩテーブルに記憶される情報の一例を示す図である。
【図８】図８は、ポートプロファイルテーブルに記憶される情報の一例を示す図である。
【図９Ａ】図９Ａは、ＭＡＣテーブルに記憶される情報の一例を説明する第１の図である。
【図９Ｂ】図９Ｂは、ＭＡＣテーブルに記憶される情報の一例を説明する第２の図である。
【図９Ｃ】図９Ｃは、ＭＡＣテーブルに記憶される情報の一例を説明する第３の図である。
【図９Ｄ】図９Ｄは、ＭＡＣテーブルに記憶される情報の一例を説明する第４の図である。
【図９Ｅ】図９Ｅは、ＭＡＣテーブルに記憶される情報の一例を説明する第５の図である。
【図１０】図１０は、ＶＳＩ発見プロトコルで用いられるメッセージの一例を示す図である。
【図１１Ａ】図１１Ａは、ＭＡＣテーブルを書換える処理の一例を説明する第１の図である。
【図１１Ｂ】図１１Ｂは、ＭＡＣテーブルを書換える処理の一例を説明する第２の図である。
【図１１Ｃ】図１１Ｃは、ＭＡＣテーブルを書換える処理の一例を説明する第３の図である。
【図１１Ｄ】図１１Ｄは、ＭＡＣテーブルを書換える処理の一例を説明する第４の図である。
【図１１Ｅ】図１１Ｅは、ＭＡＣテーブルを書換える処理の一例を説明する第５の図である。
【図１２】図１２は、スイッチをまたがってＶＭが移動する際の処理の流れの一例を説明するための図である。
【図１３】図１３は、ＭＡＣテーブルを修正する処理の流れの一例を説明するための図である。
【図１４】図１４は、スイッチが実行する処理の流れの一例を説明するための図である。
【図１５Ａ】図１５Ａは、上位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。
【図１５Ｂ】図１５Ｂは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れの一例を説明するための図である。
【図１６】図１６は、ポートプロファイルテーブルを修正する処理の流れの一例を説明するための図である。
【図１７】図１７は、ファブリックのスイッチによる通信の一例を説明するための図である。
【図１８】図１８は、実施例２に係る情報処理システムの一例を説明するための図である。
【図１９】図１９は、実施例２に係るピングループ情報の一例を説明するための図である。
【図２０】図２０は、実施例２に係るスイッチの一例を説明するための図である。
【図２１】図２１は、スイッチがピングループごとにデータの転送を行う例について説明するための図である。
【図２２】図２２は、仮想マシンの移動後を説明するための図である。
【図２３】図２３は、ピングループとＶＤＰメッセージの内容に応じてＶＤＰメッセージを転送する処理の流れを説明するためのシーケンス図である。
【図２４】図２４は、ＭＡＣアドレスを動的学習しない場合の処理の流れを説明するためのシーケンス図である。
【図２５】図２５は、実施例２に係るスイッチが実行する処理の流れを説明するためのフローチャートである。
【図２６】図２６は、実施例２に係るスイッチが上位スイッチを選択する処理の流れを説明するためのフローチャートである。
【図２７Ａ】図２７Ａは、上位スイッチが経路変更メッセージを送信する処理の流れを説明するためのフローチャートである。
【図２７Ｂ】図２７Ｂは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。
【図２８】図２８は、バリエーションの一例を説明するための図である。
【図２９】図２９は、中継プログラムを実行するコンピュータの一例を説明するための図である。
【図３０】図３０は、従来技術に係るポートプロファイルの自動化処理の一例を示すシーケンス図である。
【図３１】図３１は、マルチパスの技術が適用されたシステムの一例を説明するための図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照して本願に係るデータ中継装置、データ中継プログラムおよびデータ中継方法について説明する。
【実施例１】
【００２３】
以下の実施例１では、図１を用いて、実施例１に係るデータ中継装置を有する情報処理システムの一例を説明する。図１は、実施例１に係る情報処理システムの一例を説明するための図である。
【００２４】
図１に示すように、情報処理システムは、複数のスイッチ１〜５、複数のサーバ１１〜１４、管理サーバ１０を有する。ここで、スイッチ１〜３は、サーバ１１〜１４と接続されており、いわゆる下位のスイッチである。また、図１に示す例では、スイッチ１は、サーバ１１、および、サーバ１２と接続され、スイッチ２は、サーバ１３と接続され、スイッチ３は、サーバ１４と接続されている。
【００２５】
また、スイッチ４、および、スイッチ５は、スイッチ１〜３とそれぞれ接続されており、スイッチ１〜３の通信を中継する上位のスイッチである。すなわち、情報処理システムには、各サーバ１１〜１４間の通信経路が複数存在するマルチパスの技術が適用されている。
【００２６】
以下、実施例１に係る各スイッチ１〜５、管理サーバ１０、各サーバ１１〜１４が実行する処理について説明する。なお、以下の説明では、各サーバ１１〜１４が実行する処理、各スイッチ１〜５が実行する処理、管理サーバ１０が実行する処理の順に説明する。
【００２７】
まず、各サーバ１１〜１４について説明する。サーバ１１〜１４は、ハイパーバイザなどと呼ばれるＶＭＭ（Virtual  Machine  Monitor）を実行してＶＭ（Virtual  Machine：仮想マシン）を稼働させる情報処理装置である。図１に示す例では、サーバ１１は、仮想マシンであるＶＭ＃１を稼働させ、サーバ１２は、ＶＭ＃３を稼働させ、サーバ１３は、ＶＭ＃２を稼働させ、サーバ１４は、ＶＭ＃４を稼働させる。また、各サーバ１１〜１４は、仮想スイッチを動作させ、ＶＭ＃１〜＃４間における通信を中継させる。
【００２８】
また、サーバ１１〜１４は、管理サーバ１０の指示に従って、ＶＭ＃１〜＃４をサーバ間で移動させる場合には、ＶＳＩ発見プロトコルに従って、自身と接続するスイッチに対してＶＳＩ発見プロトコルのメッセージを送信する。
【００２９】
具体的には、サーバ１１〜１４は、移動先サーバとなる場合には、以下の処理を実行する。すなわち、サーバ１１〜１４は、移動対象となるＶＭのデータを受信するプレコピー処理を開始するとともに、移動対象となるＶＭに係るポートプロファイルの設定準備を指示するＰＲＥ−ＡＳＳＯＣメッセージを送信する。また、サーバ１１〜１４は、プレコピーが終了した場合には、ストップアンドコピー処理を実行する。
【００３０】
そして、サーバ１１〜１４は、ストップアンドコピー処理を実行し、かつ、ＰＲＥ−ＡＳＳＯＣメッセージに対する応答であるＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイル情報の設定適用を指示するメッセージを送信する。すなわち、サーバ１１〜１４は、自身と接続するスイッチにＡＳＳＯＣメッセージを送信する。
【００３１】
また、サーバ１１〜１４は、移動元サーバとなる場合には、以下の処理を実行する。すなわち、サーバ１１〜１４は、移動対象となるＶＭのデータを送信するプレコピー処理を開始し、その後、移動対象となるＶＭを停止させ、ＶＭに係る全てのデータを送信するストップアンドコピー処理を実行する。その後、サーバ１１〜１４は、移動対象となるＶＭに係るポートプロファイルの削除を指示するＤＥ−ＡＳＳＯＣメッセージを送信する。
【００３２】
さらに、サーバ１１〜１４は、ＶＳＩ発見プロトコルのメッセージを送信する場合には、以下の処理を実行する。すなわち、サーバ１１〜１４は、移動対象となるＶＭのデータを送受信する際に用いられる通信経路を示す経路ＩＤをＶＳＩ発見プロトコルとともに、自身と接続するスイッチに対して送信する。
【００３３】
詳細には、サーバ１１〜１４は、ＶＭの移動を管理サーバ１０から指示された場合は、移動対象となるＶＭに係る経路ＩＤを管理サーバ１０から取得する。そして、サーバ１１〜１４は、ＶＳＩ発見プロトコルのＴＬＶ（Type  Length  Value）フォーマットで規定されるメッセージに経路ＩＤを格納し、経路ＩＤを格納したメッセージをスイッチに送信する。そして、サーバ１１〜１４は、経路ＩＤを格納したメッセージを、自身と接続するスイッチへ送信する。
【００３４】
ここで、経路ＩＤの一例について説明すると、経路ＩＤ「１」とは、スイッチ１、スイッチ５、スイッチ３を介する通信経路を示す識別子であり、経路ＩＤ「２」とは、スイッチ１、スイッチ４、スイッチ２を介する通信経路を示す識別子である。
【００３５】
次に、スイッチ１〜５について説明する。なお、スイッチ２〜５は、スイッチ１と同様の処理を実行するものとして、詳細な説明を省略する。スイッチ１は、サーバ１１、サーバ１２、上位のスイッチ４またはスイッチ５のいずれかからデータが格納されたパケットを受信した場合には、パケットの宛先に応じて、受信したパケットを転送するスイッチである。
【００３６】
具体的には、スイッチ１は、サーバ１１またはサーバ１２からサーバ１３またはサーバ１４を宛先とするパケットを受信した場合には、パケットに格納された経路ＩＤが示す通信経路に基づいて、受信したデータをスイッチ４またはスイッチ５へ転送する。また、スイッチ１は、サーバ１１のＩＰアドレスまたはサーバ１２のＩＰアドレスを宛先とするパケットをスイッチ４またはスイッチ５から受信した場合には、パケットをサーバ１１またはサーバ１２へ転送する。
【００３７】
例えば、スイッチ１は、宛先としてサーバ１３のＩＰアドレスと、経路ＩＤ「２」とを含むパケットをサーバ１１から受信する。このような場合には、スイッチ１は、受信したパケットをスイッチ４に転送する。また、スイッチ１は、宛先としてサーバ１２のＩＰアドレスと、経路ＩＤ「１」とを含むパケットをスイッチ５から受信する。このような場合には、スイッチ１は、受信したパケットをサーバ１２へ転送する。
【００３８】
ここで、スイッチ１は、自身に接続されたサーバ１１、１２が稼働させるＶＭ＃１とＶＭ＃３のポートプロファイルを記憶し、記憶したポートプロファイルに応じて、パケットの転送を実行する。例えば、スイッチ１は、サーバ１１およびサーバ１２との間でパケットを送受信する複数のポートを有する。また、スイッチ１は、各ポートとＶＭ＃１またはＶＭ＃３とを対応付けるポートプロファイル情報を記憶する。そして、スイッチ１は、ポートプロファイル情報に基づいて、パケットの送受信を行う。
【００３９】
すなわち、スイッチ１は、ＶＭ＃１と対応付けたポートを介してパケットを受信した場合には、ＶＭ＃１から受信したパケットとして転送を行う。また、スイッチ１は、ＶＭ＃３と対応付けたポートを介してパケットを受信した場合には、ＶＭ＃３から受信したパケットとして転送を行う。つまり、スイッチ１は、ＶＭ＃１を宛先とするパケットを受信した場合には、受信したパケットをＶＭ＃１と対応付けたポートから出力し、ＶＭ＃３を宛先とするパケットを受信した場合には、受信したパケットをＶＭ＃３と対応付けたポートから出力する。
【００４０】
また、スイッチ１は、自身に隣接するサーバ１１またはサーバ１２から、ＶＳＩ発見プロトコルのメッセージを受信した場合には、以下の処理を実行する。すなわち、スイッチ１は、受信したメッセージが、ＰＲＥ−ＡＳＳＯＣメッセージであるか、ＡＳＳＯＣメッセージであるか、ＤＥ−ＡＳＳＯＣメッセージであるかを判別する。
【００４１】
そして、スイッチ１は、受信したメッセージがＰＲＥ−ＡＳＳＯＣメッセージである場合には、以下の処理を実行する。すなわち、スイッチ１は、受信したＰＲＥ−ＡＳＳＯＣメッセージの対象となるＶＭを示す識別子であるＶＳＩＩＤ（Virtual  Station  Interface  Identification）を記憶しているか否かを判別する。すなわち、スイッチ１は、受信したＶＳＩＩＤに係るＶＭのポートプロファイルが適用されているか否かを判別する。
【００４２】
ここで、ＰＲＥ−ＡＳＳＯＣメッセージは、ＶＭの移動先となるサーバ（以下、移動先サーバとする）から送信されるメッセージである。このため、スイッチ１は、受信したＶＳＩＩＤに係るＶＭのポートプロファイルが適用されている場合には、自身に接続されているサーバのうち、移動先サーバとは別のサーバが移動対象となるＶＭを稼働させていると判別できる。この結果、スイッチ１は、受信したＰＲＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを記憶している場合には、移動対象となるＶＭに係る通信経路に変更が無いので、上位のスイッチ４、５についてポートプロファイルの更新を行わずとも良い。
【００４３】
このため、スイッチ１は、受信したＰＲＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを記憶している場合には、管理サーバ１０から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。そして、スイッチ１は、ＰＲＥ−ＡＳＳＯＣメッセージの送信元サーバ、すなわち、移動先サーバへＰＲＥ−ＡＳＳＯＣメッセージに対する応答であるＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。
【００４４】
一方、スイッチ１は、受信したＶＳＩＩＤに係るＶＭのポートプロファイルが適用されていない場合、すなわち、ＰＲＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを記憶していない場合は、自身に接続されていないサーバが移動対象のＶＭを稼働させていると判別できる。つまり、スイッチ１は、移動対象となるＶＭに係る通信経路が変更されるので、上位のスイッチ４、５についてもポートプロファイルの更新を要すると判別する。
【００４５】
この結果、スイッチ１は、受信したＰＲＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを記憶していない場合には、以下の処理を実行する。すなわち、スイッチ１は、管理サーバ１０から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。
【００４６】
また、スイッチ１は、受信したＰＲＥ−ＡＳＳＯＣメッセージから経路ＩＤを取得し、取得した経路ＩＤが示す通信経路において、自身よりも上位のスイッチを判別し、判別したスイッチへＰＲＥ−ＡＳＳＯＣメッセージを転送する。そして、スイッチ１は、ＰＲＥ−ＡＳＳＯＣメッセージを転送したスイッチからＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバへ送信する。一方、スイッチ１は、取得した経路ＩＤが示す通信経路において、自身よりも上位のスイッチが存在しない場合は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをＰＲＥ−ＡＳＳＯＣメッセージの送信元へ送信する。
【００４７】
また、スイッチ１は、移動先サーバからＡＳＳＯＣメッセージを受信した場合には、ＶＳＩＩＤを他のポートで記憶しているか否かを判別し、記憶している場合には、設定準備したポートプロファイルを適用する。つまり、スイッチ１は、受信したＡＳＳＯＣメッセージが示すＶＳＩＩＤを、ＡＳＳＯＣメッセージを受信したポートとは異なるポートと対応付けて記憶しているか否かを判別し、記憶している場合には、設定準備したポートプロファイルを適用する。そして、スイッチ１は、ＡＳＳＯＣメッセージに対する応答であるＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバへ送信する。
【００４８】
また、スイッチ１は、ＡＳＳＯＣメッセージのＶＳＩＩＤを他のポートで記憶していない場合には、ポートプロファイルの適用を行わず、経路ＩＤが示す通信経路において、自身よりも上位のスイッチにＡＳＳＯＣメッセージを転送する。また、スイッチ１は、上位のスイッチからＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイルの適用を行い、受信したＡＳＳＯＣ−ＣＯＮＦメッセージを送信先サーバへ転送する。
【００４９】
また、スイッチ１は、移動元サーバからＤＥ−ＡＳＳＯＣメッセージを受信した場合は、ＤＥ−ＡＳＳＯＣメッセージから経路ＩＤを取得する。そして、スイッチ１は、ＤＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを他のポートで記憶している場合には、ポートプロファイルを削除し、移動元サーバへＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。また、スイッチ１は、ＤＥ−ＡＳＳＯＣメッセージのＶＳＩＩＤを他のポートで記憶していない場合には、取得した経路ＩＤが示す通信経路における自身よりも上位のスイッチを判別し、判別したスイッチへＤＥ−ＡＳＳＯＣメッセージを転送する。
【００５０】
その後、スイッチ１は、自身よりも上位のスイッチからＤＥ−ＡＳＳＯＣメッセージに対する応答であるＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイルを削除し、移動元サーバへＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。また、スイッチ１は、取得した経路ＩＤが示す通信経路に自身よりも上位のスイッチが存在しない場合は、ポートプロファイルを削除するとともに、ＤＥ−ＡＳＳＯＣメッセージに対する応答であるＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元サーバへ送信する。
【００５１】
つまり、スイッチ１は、ＶＭの移動が自身と接続されたサーバ間で行われる場合には、ＶＳＩ発見プロトコルに従って、ポートプロファイルの更新を行う。一方、スイッチ１は、ＶＭの移動が自身と接続されたサーバと、自身に接続されていないサーバとの間で行われる場合には、メッセージに格納された経路ＩＤを取得し、経路ＩＤが示す通信経路において、自身よりも上位のスイッチを判定する。そして、スイッチ１は、受信したメッセージを判定したスイッチに転送する。その後、スイッチ１は、上位のスイッチから各メッセージに対する応答を受信した後に、各メッセージの送信元であるサーバへ、各メッセージの応答を送信する。
【００５２】
管理サーバ１０は、各スイッチ１〜５および各サーバ１１〜１４を管理するサーバである。例えば、管理サーバ１０は、各スイッチ１〜５、および、各サーバ１１〜１４と図１中の点線で示す管理用ネットワークで接続される。そして、管理サーバ１０は、管理用ネットワークを介して、各サーバ１１〜１４に各ＶＭ＃１〜＃４の起動処理、停止処理等を各サーバ１１〜１４に指示する。
【００５３】
また、管理サーバ１０は、各スイッチ１〜５に適用されるポートプロファイル情報を記憶する。例えば、管理サーバ１０は、各サーバ１１〜１４で稼動するＶＭ（Virtual  Machine：仮想マシン）に対応付けて、ＶＭの動作環境等を記憶する。また、管理サーバ１０は、ＶＭに対応したＶＬＡＮ（Virtual  Local  Area  Network）、ＱｏＳ（Quality  of  Service）、割り当てられた帯域などの情報を記憶する。
【００５４】
また、管理サーバ１０は、各サーバ１１〜１４におけるＣＰＵ（Central  Processing  Unit）の使用率や、通信経路におけるトラフィックの量、各サーバ１１〜１４の消費電力量等に応じて、各ＶＭ＃１〜＃４を効率良く動作させるサーバを算出する。そして、管理サーバ１０は、いずれかのＶＭを他のサーバに移動させる場合には、ＶＭの移動に応じて、移動元のサーバと移動先のサーバとにＶＭの移動処理の実行を指示する。また、管理サーバ１０は、ＶＭを移動させた後においてＶＭ＃１〜＃４間の通信を中継する最適な通信経路を再度計算し、計算結果に基づいて、各スイッチ１〜５に対して新たなポートプロファイルを適用するためのポートプロファイル情報を算出する。
【００５５】
なお、上述した管理サーバ１０が各ＶＭ＃１〜＃４を動作させるサーバを算出する処理や、新たな通信経路を計算する手法は、あくまで一例に過ぎず、管理サーバ１０は、任意の手法を用いて、新たなサーバおよび通信経路を算出してよい。
【００５６】
次に、管理サーバ１０が生成したポートプロファイル情報と経路ＩＤとに従って、各スイッチ１〜５が各ＶＭ＃１〜＃４のデータを中継する処理の一例について説明する。図２は、スイッチが経路ＩＤに基づいてデータの転送を行う例について説明するための図である。
【００５７】
図２に示す例では、管理サーバ１０は、ＶＭ＃１とＶＭ＃２の通信を図２中（Ａ）の点線で示すように、スイッチ１、スイッチ４、スイッチ２を中継する経路ＩＤ「２」の通信経路で行わせるポートプロファイル情報を生成する。また、管理サーバ１０は、ＶＭ＃３とＶＭ＃４の通信を図２中（Ｂ）の点線で示すように、スイッチ１、スイッチ５、スイッチ３を中継する経路ＩＤ「１」の通信経路で行わせるポートプロファイル情報を生成する。
【００５８】
このような場合には、各スイッチ１〜５は、管理サーバ１０が生成したポートプロファイル情報を取得し、取得したポートプロファイル情報を用いて、自身のポートプロファイルを適用する。この結果、例えば、スイッチ１は、サーバ１１からＶＭ＃１からＶＭ＃２に送信されるパケットを受信した場合には、受信したパケットをスイッチ４に転送する。また、スイッチ４は、ＶＭ＃１からＶＭ＃２に送信されるパケットをスイッチ２へ転送する。そして、スイッチ２は、ＶＭ＃１からＶＭ＃３に送信されるパケットをサーバ１３へ転送する。
【００５９】
また、例えば、スイッチ１は、ＶＭ＃３からＶＭ＃４に送信されるパケットをサーバ１２から受信した場合には、受信したパケットをスイッチ５に転送する。また、スイッチ５は、ＶＭ＃３からＶＭ＃４に送信されるパケットをスイッチ３に転送する。そして、スイッチ３は、ＶＭ＃３からＶＭ＃４に送信されるパケットをサーバ１４に転送する。
【００６０】
次に、図２および図３を用いて、サーバ１４が動作中のＶＭ＃４をサーバ１３に移動させる例について説明する。なお、図３は、仮想マシンの移動時に行われる処理の一例を説明するための図である。例えば、図２に示す例では、ＶＭ＃１が１０Ｇｂｐｓ（Giga  Bit  Per  Second）の帯域を利用し、ＶＭ＃３が１０Ｇｂｐｓの帯域を利用し、ＶＭ＃２が５Ｇｂｐｓの帯域を利用しているものとする。
【００６１】
また、サーバ１１およびサーバ１２のＣＰＵ使用率が１００％であり、サーバ１３のＣＰＵ使用率が５０％であるものとする。また、移動前のＣＰＵ＃４は、１０Ｇｂｐｓの帯域を利用し、サーバ１４のＣＰＵ使用率が１００％であったものとする。また、各スイッチ１〜５、および各サーバ１１〜１４間においては、最大で１０Ｇｂｐｓまでの通信を行う事ができるものとする。
【００６２】
このような場合には、図２中（Ａ）で示す点線の通信経路、すなわち、ＶＭ＃１とＶＭ＃２との通信経路においては、最大帯域が５Ｇｂｐｓで通信が行われる。また、図２中（Ｂ）で示す点線の通信経路、すなわち、ＶＭ＃３とＶＭ＃４との通信経路においては、最大帯域が１０Ｇｂｐｓで通信が行われる。
【００６３】
図３に示す例では、ＶＭ＃４が利用する帯域が５Ｇｂｐｓとなり、サーバ１４のＣＰＵ使用率が５０％となったものとする。このような場合には、管理サーバ１０は、図３中（Ｃ）に示すように、ＶＭ＃４をサーバ１３に移動し、スイッチ３、スイッチ５、サーバ１４をスリープさせても、各ＶＭ＃１〜＃４間の通信を継続されることができると判別する。
【００６４】
このため、管理サーバ１０は、ＶＭ＃３とＶＭ＃４との間における新たな通信経路を算出する。図３に示す例では、管理サーバ１０は、図３中（Ｄ）で示すように、スイッチ１、スイッチ４、スイッチ２を介する通信経路、すなわち、経路ＩＤ「２」で示す通信経路をＶＭ＃３とＶＭ＃４との通信に用いる新たな通信経路とする。
【００６５】
そして、管理サーバ１０は、スイッチ１、スイッチ４、スイッチ２がＶＭ＃３とＶＭ＃４との通信を中継するよう設定するポートプロファイル情報を生成する。また、管理サーバ１０は、新たな通信経路を示す経路ＩＤ「２」を格納したＰＲＥ−ＡＳＳＯＣメッセージとＡＳＳＯＣメッセージとを送信するようサーバ１３に指示する。また、管理サーバ１０は、経路ＩＤ「４」を格納したＤＥ−ＡＳＳＯＣメッセージを送信するようにサーバ１４に指示する。
【００６６】
このような場合には、移動先のサーバ１３は、スイッチ２へ経路ＩＤ「２」とＶＭ＃４のＶＳＩＩＤを格納したＰＲＥ−ＡＳＳＯＣメッセージを送信する。このような場合には、スイッチ２は、ＶＭ＃４のＶＳＩＩＤを記憶していないので、管理サーバ１０からＶＭ＃４に係るポートプロファイル情報を取得し、適用準備を行うと共に、経路ＩＤ「２」における自身よりも上位のスイッチ４を判別する。そして、スイッチ２は、スイッチ４へＰＲＥ−ＡＳＳＯＣメッセージを送信する。
【００６７】
スイッチ４は、スイッチ２からＰＲＥ−ＡＳＳＯＣメッセージを受信した場合には、管理サーバ１０からポートプロファイル情報を取得し、適用準備を行う。また、スイッチ４は、経路ＩＤ「２」が示す通信経路において、自身よりも上位のスイッチが存在しないため、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ２へ送信する。また、スイッチ２は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ１３に送信する。
【００６８】
このような場合には、サーバ１３は、経路ＩＤ「２」を含むＡＳＳＯＣメッセージをスイッチ２へ送信する。すると、スイッチ２は、ＡＳＳＯＣメッセージをスイッチ４に転送する。スイッチ４は、経路ＩＤ「２」が示す通信経路において、自身よりも上位のスイッチが存在しないため、ポートプロファイルを適用するとともに、ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ２へ送信する。そして、スイッチ２は、スイッチ４からＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイルを適用するとともに、ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ１３へ送信する。
【００６９】
また、送信元サーバであるサーバ１４は、経路ＩＤ「１」とＶＭ＃４のＶＳＩＩＤを含むＤＥ−ＡＳＳＯＣメッセージを送信する。このような場合には、スイッチ３は、ＤＥ−ＡＳＳＯＣメッセージを経路ＩＤ「１」が示す通信経路において、自身よりも上位のスイッチ５へ転送する。すると、スイッチ５は、経路ＩＤ「１」が示す通信経路において、自身よりも上位のスイッチが存在しないので、ＶＭ＃４に係るポートプロファイルを削除するとともに、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ３に送信する。スイッチ３は、スイッチ５からＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイルの削除を行うと共に、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ１４に送信する。
【００７０】
このように、各スイッチ１〜５は、ＶＭのライブマイグレーションが自身に接続されたサーバ間の移動であると判定した場合には、自装置内でプロファイルの設定処理または削除処理を実行する。また、各スイッチ１〜５は、ＶＭのライブマイグレーションが自身をまたがった移動であると判定した場合には、各メッセージに含まれる経路ＩＤが示す通信経路において、自身よりも上位のスイッチに、各メッセージを転送する。
【００７１】
つまり、各スイッチ１〜５は、ＶＳＩ発見プロトコルに関する各種メッセージを、上位スイッチにまで拡張する。この結果、各スイッチ１〜５は、ポートプロファイルを自動設定できる。また、各スイッチ１〜５は、各メッセージに含まれる経路ＩＤを用いて、移動対象となるＶＭの通信経路における上位スイッチへ送信するので、適切にポートプロファイルを自動設定することができる。
【００７２】
次に、図４を用いて、サーバ１１の一例について説明する。図４は、実施例１に係るサーバの構成を示すブロック図である。図４に示すように、サーバ１１は、物理インタフェース１１ａと、仮想スイッチ１１ｂと、ＣＰＵ１１ｃと、メモリ１１ｅと、仮想領域１１ｆとを有する。また、ＣＰＵ１１ｃは、ＶＭＭ１１ｄを動作させる。なお、ここで示したサーバの構成等はあくまで例示であり、これに限定されるものではなく、例えば、ＳＣ（System  Controller）やＭＡＣ（Memory  Access  Controller）などを有していてもよい。
【００７３】
物理インタフェース１１ａは、少なくとも１つのポートを有し、他のサーバやＶＭとの通信を制御するＮＩＣ（Network  Interface  Card）である。例えば、物理インタフェース１１ａは、スイッチ１にＶＳＩ発見プロトコルのＰＲＥ−ＡＳＳＯＣメッセージ、ＡＳＳＯＣメッセージ、ＤＥ−ＡＳＳＯＣメッセージを送信する。また、物理インタフェース１１ａは、スイッチ１を介して、ＶＳＩ発見プロトコルのＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信する。
【００７４】
仮想スイッチ１１ｂは、ＶＭＭ１１ｄによって仮想的に生成されたスイッチであり、ＶＭ間の通信やＶＭと外部との通信を制御する。例えば、サーバ１１で動作するＶＭ＃１が、サーバ１３で動作するＶＭ＃２宛のデータを送信した場合、仮想スイッチ１１ｂは、このデータを受信して物理インタフェース１１ａに出力する。また、サーバ１３で動作するＶＭ＃２が、サーバ１１で動作するＶＭ＃１宛のデータを送信した場合、仮想スイッチ１１ｂは、物理インタフェース１１ａを介してこのデータを受信してＶＭ＃１に出力する。こうして、ＶＭ＃１とＶＭ＃２は、互いに通信が実行できる。
【００７５】
ＣＰＵ１１ｃは、ＯＳ（Operating  System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともにＶＭＭ１１ｄを実行し、各種処理を実行する。
【００７６】
ＶＭＭ１１ｄは、ＶＭの作成、削除、起動、停止などＶＭに関する各種制御を実施するソフトウェアであり、例えばライブマイグレーションを実行する。例えば、ＶＭＭ１１ｄは、管理者端末や管理サーバ１０等からＶＭ作成指示を受信した場合には、仮想領域１１ｆにＶＭを作成し、管理者端末や管理サーバ１０等からＶＭ削除指示を受信した場合には、該当ＶＭを仮想領域１１ｆから削除する。また、ＶＭＭ１１ｄは、管理者端末や管理サーバ１０等からＶＭ起動指示を受信した場合には、仮想領域１１ｆ上の該当ＶＭを起動し、管理者端末や管理サーバ１０等からＶＭ停止指示を受信した場合には、仮想領域１１ｆ上の該当ＶＭを停止する。
【００７７】
また、ＶＭＭ１１ｄは、他のサーバからプレコピーを受信した場合には、当該他のサーバと連動してプレコピーを実行する。さらに、ＶＭＭ１１ｄは、物理インタフェース１１ａを介して、移動対象となるＶＭの新たな通信経路を示す経路ＩＤを管理サーバ１０から取得し、取得した経路ＩＤを含むＰＲＥ−ＡＳＳＯＣメッセージをスイッチ１に送信する。その後、ＶＭＭ１１ｄは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信する。
【００７８】
また、ＶＭＭ１１ｄは、他のサーバからストップアンドコピーを受信した場合には、当該他のサーバと連動してストップアンドコピーを実行する。さらに、ＶＭＭ１１ｄは、物理インタフェース１１ａを介して、経路ＩＤを含むＡＳＳＯＣメッセージをスイッチ１に送信する。その後、ＶＭＭ１１ｄは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのＡＳＳＯＣ−ＣＯＮＦメッセージを受信する。
【００７９】
また、ＶＭＭ１１ｄは、管理者端末や管理サーバ等からＶＭの削除指示を受信した場合には、物理インタフェース１１ａを介して、管理サーバ１０から削除対象となるＶＭの通信経路を示す経路ＩＤを取得する。そして、ＶＭＭ１１ｄは、取得した経路ＩＤを含むＤＥ−ＡＳＳＯＣメッセージをスイッチ１に送信する。その後、ＶＭＭ１１ｄは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信する。
【００８０】
仮想領域１１ｆは、ＶＭＭ１１ｄが生成するＶＭを動作させる領域であり、任意の数のＶＭを起動することができる。例えば、仮想領域１１ｆでは、仮想サーバであるＶＭ＃１と、ＶＭ＃１の仮想サーバを管理する管理ドメインである管理ＶＭが実行される。なお、ＶＭ＃１は、仮想メモリや仮想プロセッサを利用して処理を実行する。例えば、仮想メモリは、メモリ１１ｅにおける所定領域をＶＭ＃１が使用するメモリとして割り当てることで実現された仮想的なメモリである。
【００８１】
メモリ１１ｅは、後述するＣＰＵ１１ｃによる各種処理に必要なデータおよびプログラムを格納する半導体メモリ素子などの記憶装置であり、例えば仮想メモリ等の割当などにも利用される。
【００８２】
次に、図５を用いて、各スイッチ１〜５の一例について説明する。図５は、実施例１に係るスイッチの一例を説明するための図である。図５に示すように、スイッチ１は、経路テーブル１５と、ＶＳＩテーブル１６と、ポートプロファイルテーブル１７と、ＭＡＣ（Media  Access  Control）テーブル１８とを有する。また、スイッチ１は、通信制御Ｉ／Ｆ部１９と制御部２０とを有する。
【００８３】
また、制御部２０は、メッセージ処理部２１と、学習部２６と、スイッチング制御部２７とを有する。また、メッセージ処理部２１は、受信部２２と、判定部２３と、実行部２４と、転送部２５とを有する。
【００８４】
以下、スイッチ１が有する各部１５〜２７について説明する。経路テーブル１５は、スイッチ１と接続されたサーバ１１およびサーバ１２が稼働させる仮想マシンに係る通信経路を示す経路ＩＤを記憶する。図６は、実施例１に係る経路テーブルの一例を説明するための図である。図６に示す例では、経路テーブル１５は、ＶＭのＭＡＣアドレスと経路ＩＤと経路とを対応付けて記憶する。
【００８５】
例えば、図６に示す例では、経路テーブル１５は、サーバ１２が稼働させるＶＭ＃３のＭＡＣアドレス「ＭＡＣ３」と、経路ＩＤ「１」と、経路「１、５、３」が対応付けて記憶される。ここで、経路「１、５、３」とは、スイッチ１、スイッチ５、スイッチ３を介する通信経路を示す情報である。また、図６に示す例では、経路テーブル１５は、サーバ１１が稼働させるＶＭ＃１のＭＡＣアドレスである「ＭＡＣ１」と、経路ＩＤ「２」と、経路「１、４、２」とを対応付けて記憶する。ここで、経路「１、４、２」とは、スイッチ１、スイッチ４、スイッチ２を介する通信経路を示す情報である。
【００８６】
ＶＳＩテーブル１６は、ポートプロファイルの割当情報を記憶する。ＶＳＩテーブル１６が記憶する情報は、後述する実行部２４によって格納または削除される。図７は、ＶＳＩテーブルに記憶される情報の一例を示す図である。図７に示すように、ＶＳＩテーブル１６は、「ＶＳＩＩＤ、ポートプロファイルＩＤ、ＶＳＩ  Ｓｔａｔｅ、ポート番号」を対応付けて記憶する。なお、ＶＳＩテーブル１６が記憶する情報は、図７に示した情報に限定されるものではなく、任意に追加または削除することができる。
【００８７】
ここで記憶される「ＶＳＩＩＤ」は、ＶＭを示す識別子であり、「ポートプロファイルＩＤ」は、適用されるポートプロファイルを示す識別子である。また、「ＶＳＩ  Ｓｔａｔｅ」は、ポートプロファイルの状態を示し、「ポート番号」は、ポートプロファイルが割り当てられたポート番号、つまり、ＶＭが使用するポート番号を示す。
【００８８】
図７に示す例では、ＶＭ＃１が使用するポートがＰ１であり、ＶＭ＃１に対応するポートプロファイルＩＤ＝１のポートプロファイルが管理サーバ１０から取得済みの状態である。また、ＶＭ＃３が使用するポートがＰ２であり、ＶＭ＃３に対応するポートプロファイルＩＤ＝２のポートプロファイルがＰ２に割当済みの状態である。
【００８９】
図５に戻って、ポートプロファイルテーブル１７は、管理サーバ１０から取得された情報をキャッシュする記憶部である。ポートプロファイルテーブル１７が記憶する情報は、後述する実行部２４によって格納または削除される。図８は、ポートプロファイルテーブルに記憶される情報の一例を示す図である。図８に示すように、ポートプロファイルテーブル１７は、「ポートプロファイルＩＤ、ＶＬＡＮ、帯域情報」として「１、ＶＬＡＮ１００、５０ＭＢ」や「２、ＶＬＡＮ２００、１００ＭＢ」などと記憶する。なお、ポートプロファイルテーブル１７が記憶する情報は、図８に示した情報に限定されるものではなく、任意に追加または削除することができる。
【００９０】
ここで記憶される「ポートプロファイルＩＤ」は、ポートプロファイルを示す識別子であり、「ＶＬＡＮ」は、プロファイルが設定されるポートが属するＶＬＡＮを示し、「帯域情報」は、当該ポートに割り当てられた帯域を示す。図８の場合、ポートプロファイルＩＤ＝１のポートプロファイルは、ＶＬＡＮ１００のＶＬＡＮを用いた５０ＭＢの帯域幅をポートに設定することを示す。つまり、このポートを使用するＶＭ＃１は、ＶＬＡＮ１００のＶＬＡＮを用いた５０ＭＢの帯域幅で通信する。
【００９１】
同様に、ポートプロファイルＩＤ＝２のポートプロファイルは、ＶＬＡＮ２００のＶＬＡＮを用いた１００ＭＢの帯域幅をポートに設定することを示す。つまり、このポートを使用するＶＭ＃３は、ＶＬＡＮ２００のＶＬＡＮを用いた１００ＭＢの帯域幅で通信する。
【００９２】
図５に戻って、ＭＡＣテーブル１８は、後述する学習部２６によって学習されたサーバのＭＡＣアドレスと中継先とを対応付けて記憶する。ＭＡＣテーブル１８が記憶する情報は、後述する学習部２６によって格納または削除される。
【００９３】
以下、図９Ａ〜図９Ｅを用いて、各スイッチ１〜５が有するＭＡＣテーブルに記憶される情報の一例を説明する。図９Ａは、ＭＡＣテーブルに記憶される情報の一例を説明する第１の図である。図９Ｂは、ＭＡＣテーブルに記憶される情報の一例を説明する第２の図である。図９Ｃは、ＭＡＣテーブルに記憶される情報の一例を説明する第３の図である。図９Ｄは、ＭＡＣテーブルに記憶される情報の一例を説明する第４の図である。図９Ｅは、ＭＡＣテーブルに記憶される情報の一例を説明する第５の図である。
【００９４】
なお、図９Ａは、スイッチ１が有するＭＡＣテーブルの一例を示し、図９Ｂは、スイッチ２が有するＭＡＣテーブルの一例を示すものとする。また、図９Ｃは、スイッチ３が有するＭＡＣテーブルの一例を示し、図９Ｄは、スイッチ４が有するＭＡＣテーブルの一例を示すものとし、図９Ｅは、スイッチ５が有するＭＡＣテーブルの一例を示すものとする。なお、ＭＡＣテーブル１８が記憶する情報は、図９Ａ〜９Ｅに示した情報に限定されるものではなく、任意に追加または削除することができる。
【００９５】
例えば、図９Ａに示す例では、ＭＡＣテーブル１８は、「ＭＡＣアドレス、中継先」として「ＭＡＣ１、サーバ１１」、「ＭＡＣ２、スイッチ４」、「ＭＡＣ３、サーバ１２」、「ＭＡＣ４、スイッチ５」などを記憶する。ここで記憶される「ＭＡＣアドレス」は、通信制御Ｉ／Ｆ部１９を介して受信したデータ（パケット）に含まれる送信先のＭＡＣアドレスであり、学習されたＭＡＣアドレスである。また、「中継先」は、受信したパケットを転送する転送先を示す情報である。
【００９６】
図９Ａに示す例では、スイッチ１が有するＭＡＣテーブル１８は、宛先のＭＡＣアドレスが「ＭＡＣ１」であるパケットをサーバ１１に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ２」であるパケットをスイッチ４に転送する旨を示す。また、図９Ａに示す例では、ＭＡＣテーブル１８は、宛先のＭＡＣアドレスが「ＭＡＣ３」であるパケットをサーバ１２に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ４」であるパケットをスイッチ５に転送する旨を示す。
【００９７】
また、図９Ｂに示す例では、スイッチ２が有するＭＡＣテーブルは、宛先のＭＡＣアドレスが「ＭＡＣ１」であるパケットをスイッチ４に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ２」であるパケットをサーバ１３に転送する旨を示す。また、図９Ｃに示す例では、スイッチ３が有するＭＡＣテーブルは、宛先のＭＡＣアドレスが「ＭＡＣ３」であるパケットをスイッチ５に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ４」であるパケットをサーバ１４に転送する旨を示す。
【００９８】
また、図９Ｄに示す例では、スイッチ４が有するＭＡＣテーブルは、宛先のＭＡＣアドレスが「ＭＡＣ１」であるパケットをスイッチ１に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ２」であるパケットをスイッチ２に転送する旨を示す。また、図９Ｅに示す例では、スイッチ５が有するＭＡＣテーブルは、宛先のＭＡＣアドレスが「ＭＡＣ３」であるパケットをスイッチ１に転送する旨を示し、宛先のＭＡＣアドレスが「ＭＡＣ４」であるパケットをスイッチ３に転送する旨を示す。
【００９９】
図５に戻って、通信制御Ｉ／Ｆ部１９は、少なくとも１つのポートを有し、他のサーバとの通信や上位のスイッチ４またはスイッチ５との通信を制御するＮＩＣである。例えば、通信制御Ｉ／Ｆ部１９は、各サーバ１１から、ＰＲＥ−ＡＳＳＯＣメッセージやＡＳＳＯＣメッセージ、ＤＥ−ＡＳＳＯＣメッセージを受信して、制御部２０に出力する。
【０１００】
また、通信制御Ｉ／Ｆ部１９は、制御部２０から出力された、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを要求元のサーバに送信する。また、通信制御Ｉ／Ｆ部１９は、スイッチ４またはスイッチ５から送信された、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＡＳＳＯＣ−ＣＯＮＦメッセージ、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを要求元のサーバに転送する。
【０１０１】
また、通信制御Ｉ／Ｆ部１９は、ブロードキャスト送信したＭＡＣテーブル１８の更新を指示する経路変更メッセージを受信した場合は、受信した経路変更メッセージを学習部２６に出力する。また、通信制御Ｉ／Ｆ部１９は、経路変更メッセージをブロードキャスト送信する旨の通知を学習部２６から取得した場合は、取得した経路変更メッセージを下位のスイッチへブロードキャスト送信する。
【０１０２】
制御部２０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などの電子回路である。この制御部２０は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、メッセージ処理部２１と学習部２６とスイッチング制御部２７とを有し、これらによって各種処理を実行する。
【０１０３】
メッセージ処理部２１は、サーバから受信したＶＳＩ発見プロトコルに準拠したメッセージに応じた各種処理を実行する。以下、メッセージ処理部２１が有する受信部２２、判定部２３、実行部２４、転送部２５が実行する処理の一例について説明する。
【０１０４】
受信部２２は、移動対象のＶＭが移動する移動先のサーバから、当該ＶＭに対応するポートプロファイル情報の設定要求を受信する。また、受信部２２は、ＶＭが稼動する移動元のサーバから、当該ＶＭに対応するポートプロファイル情報の削除要求を受信する。
【０１０５】
例えば、受信部２２は、ＶＭの移動先となるサーバからＰＲＥ−ＡＳＳＯＣメッセージを受信した場合には、受信したメッセージを判定部２３に出力する。同様に、受信部２２は、ＶＭの移動元であるサーバからＤＥ−ＡＳＳＯＣメッセージを受信した場合には、受信したメッセージを判定部２３に出力する。また、受信部２２は、ＶＭの移動先となるサーバからＡＳＳＯＣメッセージを受信した場合には、受信したメッセージを判定部２３に出力する。
【０１０６】
また、受信部２２は、上位のスイッチ４またはスイッチ５からＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、当該メッセージを転送部２５に出力する。また、受信部２２は、上位のスイッチ４またはスイッチ５からＡＳＳＯＣ−ＣＯＮＦメッセージやＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、当該メッセージを転送部２５に出力するとともに、各応答を受信した旨を実行部２４に出力する。
【０１０７】
一例として、受信部２２は、図１０に示したＴＬＶフォーマットで規定されるメッセージを受信する。図１０は、ＶＳＩ発見プロトコルで用いられるメッセージの一例を示す図である。図１０に示す例では、メッセージフォーマットは、７ビットのＴＬＶタイプ、９ビットのＴＬＶ情報長、１オクテットのリージョン、３オクテットのＶＳＩタイプＩＤを有する。
【０１０８】
また、メッセージフォーマットは、１オクテットのＶＳＩタイプバージョン、１オクテットのＶＳＩＩＤフォーマット、１６オクテットのＶＳＩＩＤを有する。また、メッセージフォーマットは、図１０中の太線で囲む範囲に示すように、１オクテットの経路ＩＤを有する。また、メッセージフォーマットは、１オクテットのフィルターインフォメーションフォーマットを有し、任意のサイズのフィルターインフォメーションを有する。
【０１０９】
ここで、ＴＬＶタイプとＴＬＶ情報長とは、ＴＬＶヘッダであり、ＶＳＩＩＤフォーマット、ＶＳＩＩＤ、経路ＩＤとは、ＶＳＩ  Ｔｙｐｅ  ａｎｄ  Ｉｎｓｔａｎｃｅである。また、フィルターインフォメーションフォーマットとフィルターインフォメーションは、Ｆｉｌｔｅｒ  Ｉｎｆｏである。また、リージョン以降の各情報は、ＴＬＶ  ｉｎｆｏｒｍａｔｉｏｎ  ｓｔｒｉｎｇである。すなわち、メッセージフォーマットには、１６ビットのＴＬＶヘッダに、メッセージの詳細情報であるＴＬＶ  ｉｎｆｏｒｍａｔｉｏｎ  ｓｔｒｉｎｇが付加されている。
【０１１０】
ここで、ＴＬＶタイプには、メッセージの種別が「ＰＲＥ−ＡＳＳＯＣ」か「ＡＳＳＯＣ」か「ＤＥ−ＡＳＳＯＣ」のいずれであるかを示す情報が格納される。また、ＶＳＩ  Ｔｙｐｅ  ＩＤには、ポートプロファイルＩＤが格納される。また、ＶＳＩＩＤには、移動対象となるＶＭのＶＳＩＩＤが格納される。また、経路ＩＤには、移動対象となるＶＭに係る通信経路を示す経路ＩＤが格納される。
【０１１１】
このような図１０に例示するメッセージを受信した場合は、受信部２２は、受信したメッセージのＴＬＶ  Ｔｙｐｅに格納された情報を参照し、メッセージの種別が「ＰＲＥ−ＡＳＳＯＣ」か「ＡＳＳＯＣ」か「ＤＥ−ＡＳＳＯＣ」のいずれかであるかを判別する。
【０１１２】
図５に戻って、判定部２３は、ＶＭを判別するＶＳＩＩＤを記憶するＶＳＩテーブル１６に、受信部２２が受信した設定要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。また、判定部２３は、ＶＭを判別するＶＳＩＩＤを記憶するＶＳＩテーブル１６に、受信部２２が受信した削除要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。
【０１１３】
例えば、判定部２３は、図１０に示したメッセージのＴＬＶ  ＴｙｐｅがＰＲＥ−ＡＳＳＯＣ、ＡＳＳＯＣのいずれかが記載されたメッセージが受信された場合、以下の処理を実行する。すなわち、判定部２３は、受信したメッセージのＶＳＩ  Ｔｙｐｅ  ＩＤに格納されているＶＳＩＩＤを取得する。
【０１１４】
続いて、判定部２３は、メッセージから取得したＶＳＩＩＤがＶＳＩテーブル１６に格納されているか否かを判定する。そして、判定部２３は、ＶＳＩＩＤがＶＳＩテーブル１６に格納されている場合には、ＶＭの移動がスイッチ１をまたがない移動であると判定して、ＶＭの移動がスイッチ１をまたがない移動である旨の通知と当該メッセージとを実行部２４に出力する。一方、判定部２３は、ＶＳＩＩＤがＶＳＩテーブル１６に格納されていない場合には、ＶＭの移動がスイッチ１をまたがった移動であると判定して、以下の処理を実行する。
【０１１５】
すなわち、判定部２３は、メッセージに格納された経路ＩＤを参照し、参照した経路ＩＤが示す通信経路を管理サーバ１０から取得する。そして、判定部２３は、取得した通信経路において、自身よりも上位のスイッチ、すなわち、スイッチ１よりも上位のスイッチが存在するか否かを判別する。
【０１１６】
その後、判定部２３は、スイッチ１よりも上位のスイッチが存在すると判別した場合には、判別した上位のスイッチに対して、判別したスイッチを示す情報と、受信したメッセージを転送する旨と受信したメッセージとを転送部２５に出力する。また、判定部２３は、ＶＭの移動がスイッチ１をまたがった移動である旨の通知と受信したメッセージとを転送部２５に出力する。
【０１１７】
また、判定部２３は、受信したメッセージが「ＤＥ−ＡＳＳＯＣ」である場合は、メッセージに格納された経路ＩＤを参照し、参照した経路ＩＤと対応付けて記憶された通信経路を経路テーブル１５から取得する。そして、判定部２３は、自身よりも上位のスイッチを判別し、判別したスイッチに受信したメッセージを転送する旨と受信したメッセージとを転送部２５に出力する。また、判定部２３は、ＶＭの移動がスイッチ１をまたがった移動である旨の通知と受信したメッセージとを実行部２４に出力する。
【０１１８】
なお、判定部２３は、ＰＲＥ−ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤが格納されていると判定した場合に、当該ＶＳＩＩＤと判定結果とを対応付けてメモリ等に格納する。そして、この状態で、判定部２３は、メモリ等に判定結果が保持されるＶＳＩＩＤが含まれるＡＳＳＯＣやＤＥ−ＡＳＳＯＣメッセージを受信した場合、ＶＳＩＩＤが記憶されているか否かの判定を実行せずに、当該メッセージを実行部２４に出力することもできる。
【０１１９】
つまり、判定部２３は、ＶＭの移動がスイッチ１をまたがない移動であると判定している状態でＡＳＳＯＣやＤＥ−ＡＳＳＯＣメッセージを受信するので、削除対象のＶＭの同一ブレードサーバ内で動作していると判定し、当該メッセージを実行部２４に出力する。同様に、判定部２３は、ＰＲＥ−ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤが格納されていないと判定した状態で、ＡＳＳＯＣやＤＥ−ＡＳＳＯＣメッセージを受信した場合、ＶＳＩＩＤの判定を実行せずに、当該メッセージを上位のスイッチ４またはスイッチ５に出力することもできる。
【０１２０】
また、判定部２３は、ＶＭの移動がスイッチ１をまたぐ移動であり、かつ、経路ＩＤが示す通信経路において、スイッチ１よりも上位のスイッチが存在しないと判別した場合には、経路ＩＤを学習部２６に通知する。
【０１２１】
実行部２４は、メッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されていると判定部２３が判定した場合、つまり、判定部２３からＶＭの移動がスイッチ１をまたがない移動である旨の通知を取得した場合は、設定要求に応じた処理を実行する。例えば、実行部２４は、判定部２３がＰＲＥ−ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤが記憶されていると判定した場合は、当該ＶＳＩＩＤに対応するポートプロファイルを管理サーバ１０から取得して、ポートプロファイルテーブル１７に格納する。
【０１２２】
さらに、実行部２４は、取得したポートプロファイルＩＤと、メッセージが受信されたポート番号と、当該メッセージに含まれるＶＳＩＩＤとを対応付けてＶＳＩテーブル１６に格納し、「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」に設定する。そして、実行部２４は、ＰＲＥ−ＡＳＳＯＣメッセージの応答として、ＰＲＥ−ＡＳＳＯＣメッセージの送信元サーバに、ポートプロファイルを格納したことを示すＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。
【０１２３】
その後、実行部２４は、判定部２３からＡＳＳＯＣメッセージを受信した場合には、当該ＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル１６から特定する。続いて、実行部２４は、特定したポートプロファイルの「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」から「ＡＣＴＩＶＥ」に変更する。そして、実行部２４は、ＡＳＳＯＣメッセージの応答として、ＡＳＳＯＣメッセージの送信元サーバに、ポートプロファイルの設定変更が完了したことを示すＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。
【０１２４】
また、実行部２４は、ＤＥ−ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤが判定部２３によって記憶されていると判定された場合には、当該メッセージに含まれるＶＳＩＩＤを抽出する。そして、実行部２４は、抽出したＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル１６から特定し、特定したポートプロファイルを削除する。そして、実行部２４は、ＤＥ−ＡＳＳＯＣメッセージの応答として、ＤＥ−ＡＳＳＯＣメッセージの送信元サーバに、ポートプロファイルの削除が完了したことを示すＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。
【０１２５】
一方、実行部２４は、受信したメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されていないと判定部２３が判定した場合、すなわち、判定部２３からＶＭの移動がスイッチ１をまたがった移動である旨の通知を取得した場合は、以下の処理を実行する。例えば、実行部２４は、受信したメッセージがＰＲＥ−ＡＳＳＯＣである場合は、当該ＶＳＩＩＤに対応するポートプロファイルを管理サーバ１０から取得して、ポートプロファイルテーブル１７に格納する。
【０１２６】
さらに、実行部２４は、取得したポートプロファイルＩＤと、メッセージが受信されたポート番号と、当該メッセージに含まれるＶＳＩＩＤとを対応付けてＶＳＩテーブル１６に格納し、「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」に設定する。そして、実行部２４は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信せずに処理を終了する。
【０１２７】
また、実行部２４は、ＶＭの移動がスイッチ１をまたいだ移動である旨の通知とＡＳＳＯＣメッセージとを判定部２３から取得した場合には、以下の処理を実行する。すなわち、実行部２４は、ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤを取得し、取得したＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル１６から特定する。そして、実行部２４は、受信部２２からＡＳＳＯＣ−ＣＯＮＦメッセージを受信した旨の通知を取得した場合は、特定したポートプロファイルの「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」から「ＡＣＴＩＶＥ」に変更する。つまり、実行部２４は、上位のスイッチからＡＳＳＯＣ−ＣＯＮＦメッセージを受信した後に、特定したポートプロファイルを有効にする。
【０１２８】
また、実行部２４は、ＶＭの移動がスイッチ１をまたいだ移動である旨の通知とＤＥ−ＡＳＳＯＣメッセージとを判定部２３から取得した場合には、以下の処理を実行する。すなわち、実行部２４は、ＤＥ−ＡＳＳＯＣメッセージに含まれるＶＳＩＩＤを抽出する。そして、実行部２４は、抽出したＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル１６から特定する。そして、実行部２４は、上位のスイッチからＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した旨の通知を受信部２２から取得した場合は、特定したポートプロファイルを削除する。つまり、実行部２４は、上位のスイッチからＤＥ−ＡＳＳＯＣ−ＣＯＮＦを受信した後に、特定したポートプロファイルを削除する。
【０１２９】
転送部２５は、ＶＭの移動がスイッチ１をまたがった移動であると判定部２３が判定した場合は、受信部２２が受信したメッセージを判定部２３が判定した上位のスイッチに転送する。また、転送部２５は、受信部２２が上位のスイッチ４またはスイッチ５から受信した各応答のメッセージを転送する。
【０１３０】
例えば、転送部２５は、ＶＭの移動がスイッチ１をまたがった移動であると判定部２３が判定したＰＲＥ−ＡＳＳＯＣメッセージ、ＡＳＳＯＣメッセージ、ＤＥ−ＡＳＳＯＣメッセージを取得する。また、転送部２５は、判定部２３が判別したスイッチに受信したメッセージを転送する旨の通知を取得する。このような場合には、転送部２５は、取得した各メッセージを判定部２３が判別したスイッチに対して転送する。
【０１３１】
また、転送部２５は、受信部２２によってＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージが受信された場合、ＰＲＥ−ＡＳＳＯＣメッセージを送信したサーバに、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを転送する。同様に、転送部２５は、受信部２２によってＡＳＳＯＣ−ＣＯＮＦメッセージが受信された場合、ＡＳＳＯＣメッセージを送信したサーバに、ＡＳＳＯＣ−ＣＯＮＦメッセージを転送する。転送部２５は、受信部２２によってＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージが受信された場合、ＤＥ−ＡＳＳＯＣメッセージを送信したサーバに、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを転送する。
【０１３２】
なお、受信部２２は、ＰＲＥ−ＡＳＳＯＣメッセージなどの要求メッセージと、要求メッセージから取得した送信元とを対応付けてメモリ等に格納しておく。こうすることで、例えば、実行部２４や転送部２５は、応答メッセージの送信元、言い換えると、要求メッセージの送信先を特定できる。例えば、転送部２５は、応答メッセージとしてＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合に、ＰＲＥ−ＡＳＳＯＣメッセージに対応する送信元をメモリ等から特定し、特定した送信元にＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信できる。その後、転送部２５は、ＰＲＥ−ＡＳＳＯＣメッセージに対応する送信元をメモリ等から削除してもよい。
【０１３３】
また、受信部２２は、ＰＲＥ−ＡＳＳＯＣメッセージなどの要求メッセージと送信元と、さらに、要求メッセージから取得したＶＳＩＩＤとを対応付けてメモリ等に格納しておく。こうすることで、ＶＭの移動が複数同時に発生した場合であっても、ＶＳＩＩＤによってどのＶＭの移動かを特定することができるので、応答メッセージを送信元に送信することができる。
【０１３４】
図５に戻り、学習部２６は、サーバ等のＭＡＣアドレスを学習する。例えば、学習部２６は、通信制御Ｉ／Ｆ部１９を介して、上位のスイッチがブロードキャスト送信した経路変更メッセージを受信した場合には、受信した信号が示す経路ＩＤに応じて、ＭＡＣテーブル１８を更新する。また、学習部２６は、判定部２３から経路ＩＤを取得した場合には、取得した経路ＩＤに基づいた経路変更メッセージと信号をブロードキャスト送信する旨の通知を通信制御Ｉ／Ｆ部１９に出力する。
【０１３５】
ここで、図１１Ａ〜１１Ｅを用いて、学習部２６がＭＡＣテーブル１８を修正する処理の例について説明する。図１１Ａは、ＭＡＣテーブルを書換える処理の一例を説明する第１の図である。図１１Ｂは、ＭＡＣテーブルを書換える処理の一例を説明する第２の図である。図１１Ｃは、ＭＡＣテーブルを書換える処理の一例を説明する第３の図である。図１１Ｄは、ＭＡＣテーブルを書換える処理の一例を説明する第４の図である。図１１Ｅは、ＭＡＣテーブルを書換える処理の一例を説明する第５の図である。
【０１３６】
なお、図１１Ａ〜１１Ｅには、図９Ａ〜９Ｅに例示するＭＡＣテーブルを有するスイッチ１〜５が、「ＭＡＣ３」と「ＭＡＣ４」に係る中継先を経路ＩＤ「２」に基づいて更新を指示する経路変更メッセージに基づいて、各ＭＡＣテーブルを更新した例を示す。また、図１１Ａ〜１１Ｅに示す例では、スイッチ４が経路変更メッセージをブロードキャストしたものとする。なお、図１１Ａは、スイッチ１が有する書換後のＭＡＣテーブルの一例を示し、図１１Ｂは、スイッチ２が有する書換後のＭＡＣテーブルの一例を示すものとする。
【０１３７】
また、図１１Ｃは、スイッチ３が有する書換後のＭＡＣテーブルの一例を示し、図１１Ｄは、スイッチ４が有する書換後のＭＡＣテーブルの一例を示すものとし、図１１Ｅは、スイッチ５が有する書換後のＭＡＣテーブルの一例を示すものとする。
【０１３８】
例えば、スイッチ１の学習部２６は、経路ＩＤ「２」が示す通信経路がスイッチ１、スイッチ４、スイッチ２であるため、図１１Ａ中（Ｅ）に示すように、「ＭＡＣ４」と対応付けられた中継先を「スイッチ４」に更新する。同様に、スイッチ２の学習部は、図１１Ｂ中（Ｆ）に示すように、「ＭＡＣ３」と対応付けられた中継先を「スイッチ４」に更新し、「ＭＡＣ４」と対応付けられた中継先を「サーバ１３」に修正する。
【０１３９】
また、スイッチ３の学習部は、図１１Ｃ中（Ｇ）に示すように、「ＭＡＣ３」および「ＭＡＣ４」と対応付けられた中継先を削除する。また、スイッチ４の学習部は、図１１Ｄ中（Ｈ）に示すように、「ＭＡＣ３」と対応付けられた中継先を「スイッチ１」に更新し、「ＭＡＣ４」と対応付けられた中継先を「スイッチ２」に更新する。なお、スイッチ５には、スイッチ４がブロードキャスト送信した経路変更メッセージが届かないため、スイッチ５は、ＭＡＣテーブルの更新を行わない。
【０１４０】
図５に戻って、スイッチング制御部２７は、通信制御Ｉ／Ｆ部１９によって受信されたデータのスイッチング制御を実行する。例えば、スイッチング制御部２７は、受信されたデータの宛先のＭＡＣアドレスがＭＡＣテーブル１８に記憶されているか否かを判定する。そして、スイッチング制御部２７は、ＭＡＣアドレスがＭＡＣテーブル１８に記憶されている場合、当該ＭＡＣアドレスに対応付けられているポート番号を有するポートから、受信したデータを送信する。一方、スイッチング制御部２７は、ＭＡＣアドレスがＭＡＣテーブル１８に記憶されていない場合、全てのポートから当該データを送信するフラッディングを実行する。
【０１４１】
次に、図１２を用いて、実施例１に係るシステムで実行される処理の流れを説明する。図１２は、スイッチをまたがってＶＭが移動する際の処理の流れの一例を説明するための図である。なお、図１２に示す例では、管理サーバ１０は、移動後のＶＭ＃４とＶＭ＃２との新たな通信経路として、経路ＩＤ「２」で示す通信経路を算出したものとする。
【０１４２】
なお、図１２に示す例では、ＶＭ＃４がサーバ１４からサーバ１３に移動する場合のシーケンス、各スイッチ１〜５におけるメッセージ受信時の処理の流れ、メッセージ処理の流れを説明する。また、図１２に示す例では、新たなポートプロファイルを適用するスイッチ２、スイッチ４を移動先スイッチとし、ポートプロファイルを削除するスイッチ３、スイッチ５を移動元スイッチとした。
【０１４３】
図１２に示す例では、まず、移動先サーバ１３は、新しいＶＭを自サーバ上に生成する（ステップＳ１０１）。続いて、サーバ１４は、ライブマイグレーション指示を管理サーバ１０から受け付けると（ステップＳ１０２）、移動対象ＶＭが自サーバで動作している状態で、プレコピーを実施する（ステップＳ１０３、Ｓ１０４）。
【０１４４】
プレコピーが開始されると、サーバ１３は、経路ＩＤ「２」を含むＰＲＥ−ＡＳＳＯＣメッセージを移動先スイッチ２に送信する（ステップＳ１０５）。このような場合には、移動先スイッチ２は、ポートプロファイルを取得するとともに（ステップＳ１０６）、経路ＩＤ「２」が示す通信経路において、自身よりも上位の移動先スイッチ４にＰＲＥ−ＡＳＳＯＣを転送する（ステップＳ１０７）。次に、移動先スイッチ４は、ＰＲＥ−ＡＳＳＯＣを受信すると、ポートプロファイルを取得し（ステップＳ１０８）、その後、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ２へ送信する（ステップＳ１０９）。
【０１４５】
このような場合には、移動先スイッチ２は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバ１３へ転送する（ステップＳ１１０）。その後、移動先サーバ１３と移動元サーバ１４は、プレコピーを継続し（ステップＳ１１１、Ｓ１１２）、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する（ステップＳ１１３、Ｓ１１４）。
【０１４６】
ストップアンドコピーが開始されると、移動先サーバ１３は、経路ＩＤ「２」を含むＡＳＳＯＣメッセージを移動先スイッチ２に送信する（ステップＳ１１５）。このような場合には、移動先スイッチ２は、ＡＳＳＯＣメッセージを経路ＩＤ「２」が示す通信経路における上位の移動先スイッチ４へ転送する（ステップＳ１１６）。また、移動先スイッチ４は、ＡＳＳＯＣメッセージを受信すると、ステップＳ１０８にて取得したポートプロファイルを適用し（ステップＳ１１７）、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ２へ送信する（ステップＳ１１８）。
【０１４７】
移動先スイッチ２は、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ４から受信した場合には、ステップＳ１０６にて取得したポートプロファイルを適用する（ステップＳ１１９）。その後、移動先スイッチ２は、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバ１３へ転送する（ステップＳ１２０）。
【０１４８】
また、移動元サーバ１４は、ストップアンドコピーを実行した後に、経路ＩＤ「１」を含むＤＥ−ＡＳＳＯＣメッセージを移動元スイッチ３へ送信する（ステップＳ１２１）。このような場合には、移動元スイッチ３は、ＤＥ−ＡＳＳＯＣメッセージを経路ＩＤ「１」が示す通信経路において、自身よりも上位の移動元スイッチ５へ転送する（ステップＳ１２２）。
【０１４９】
すると、移動元スイッチ５は、ＶＭ＃４に係るポートプロファイルを削除し（ステップＳ１２３）、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元スイッチ３へ送信する（ステップＳ１２４）。そして、移動元スイッチ３は、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ＶＭ＃４に係るポートプロファイルを削除し、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元サーバ１４へ転送する（ステップＳ１２５）。
【０１５０】
次に、図１３を用いて、各スイッチ１〜５がＭＡＣテーブルを修正する処理の流れについて説明する。図１３は、ＭＡＣテーブルを修正する処理の流れの一例を説明するための図である。なお、図１３は、図１２に例示した処理に、各スイッチ１〜５がＭＡＣテーブルを修正する処理の流れを追加した図である。また、図１３に示すステップＳ１０１〜Ｓ１２５は、図１２に示すステップＳ１０１〜ステップＳ１２５と同様の処理であるものとして、説明を省略する。
【０１５１】
例えば、図１３に示す例では、移動先スイッチ４は、ＡＳＳＯＣを受信し、ポートプロファイルを適用した場合には（ステップＳ１１７）、以下の処理を実行する。すなわち、移動先スイッチ４は、経路ＩＤ「２」を有する経路変更メッセージを下位のスイッチにブロードキャスト送信する（ステップＳ２０１）。
【０１５２】
すると、移動先スイッチ４の下位のスイッチであるスイッチ１は、経路変更メッセージを受信し、受信した経路変更メッセージに応じて、ＭＡＣテーブル１８を変更する（ステップＳ２０２）。また、移動先スイッチ４の下位のスイッチである移動元スイッチ３は、経路変更メッセージを受信し、受信した経路変更メッセージに応じて、自身のＭＡＣテーブルを変更する（ステップＳ２０３）。
【０１５３】
このように、各スイッチ１〜５は、受信した各メッセージに含まれるＶＳＩＩＤを記憶していない場合には、各メッセージに含まれる経路ＩＤを取得し、取得した経路ＩＤが示す通信経路において自身よりも上位のスイッチに受信した各メッセージを転送する。そして、各スイッチ１〜５は、上位のスイッチからメッセージに対する応答を受信した場合には、受信した応答を各メッセージの送信元であるサーバへ転送する。
【０１５４】
次に、図１４を用いて、各スイッチ１〜５が実行する処理の流れの一例について説明する。図１４は、スイッチが実行する処理の流れの一例を説明するための図である。例えば、図１４に示す例では、スイッチ１は、ＰＲＥ−ＡＳＳＯＣメッセージ、ＡＳＳＯＣメッセージ、ＤＥ−ＡＳＳＯＣメッセージのいずれかを受信したか否かを判別する（ステップＳ３０１）。そして、スイッチ１は、各メッセージを受信していない場合には（ステップＳ３０１否定）、各メッセージを受信するまで待機する。
【０１５５】
また、スイッチ１は、各メッセージを受信した場合には（ステップＳ３０１肯定）、受信したメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されているか否かを判別する（ステップＳ３０２）。そして、スイッチ１は、ＶＳＩＩＤがＶＳＩテーブル１６に記憶されていないと判別した場合には（ステップＳ３０２否定）、各メッセージに含まれる経路ＩＤに基づいて、上位スイッチを選択する（ステップＳ３０３）。
【０１５６】
また、スイッチ１は、選択した上位スイッチに各メッセージを転送する（ステップＳ３０４）。その後、スイッチ１は、上位のスイッチから応答メッセージを受信したか否かを判別し（ステップＳ３０５）、受信していないと判別した場合には（ステップＳ３０５否定）、受信まで待機する。また、スイッチ１は、上位のスイッチから応答メッセージを受信したと判別した場合には（ステップＳ３０５肯定）、応答メッセージをメッセージの送信元に送信し（ステップＳ３０７）、処理を終了する。
【０１５７】
また、スイッチ１は、各メッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されている場合には（ステップＳ３０２肯定）、メッセージに応じた処理を実行する（ステップＳ３０６）。そして、スイッチ１は、メッセージの送信元に応答メッセージを送信し（ステップＳ３０７）、処理を終了する。
【０１５８】
次に、図１５Ａ、図１５Ｂを用いて、各スイッチ１〜５がＭＡＣテーブルを更新する処理の流れについて説明する。図１５Ａは、上位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。また、図１５Ｂは、下位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。
【０１５９】
例えば、図１５Ａに示す例では、スイッチ４やスイッチ５等の上位のスイッチは、スイッチ１〜３等の下位のスイッチから各メッセージを受信したか否かを判別する（ステップＳ４０１）。そして、上位のスイッチは、下位のスイッチから各メッセージを受信していない場合には（ステップＳ４０１否定）、各メッセージを受信するまで待機し、下位のスイッチから各メッセージを受信した場合は（ステップＳ４０１肯定）、以下の処理を実行する。
【０１６０】
すなわち、上位のスイッチは、各メッセージを受信した受信ポートを除く他のダウンリンクポート、つまり、下位のスイッチと接続されたポートに、ＭＡＣアドレスと経路ＩＤとを含む経路変更メッセージをブロードキャスト送信する（ステップＳ４０２）。その後、上位のスイッチは、処理を終了する。
【０１６１】
また、図１５Ｂに示す例では、スイッチ１〜３等の下位のスイッチは、スイッチ４やスイッチ５などの上位のスイッチから経路変更メッセージを受信したか否かを判別する（ステップＳ５０１）。そして、下位のスイッチは、上位のスイッチから経路変更メッセージを受信していない場合は（ステップＳ５０１否定）、経路変更メッセージを受信するまで待機し、経路変更メッセージを受信した場合は（ステップＳ５０１肯定）、以下の処理を実行する。すなわち、下位のスイッチは、受信した経路変更メッセージに含まれるＭＡＣアドレスと、経路ＩＤとに基づいて、ＭＡＣテーブルの書き換えを行い（ステップＳ５０２）、その後、処理を終了する。
【０１６２】
次に、図１６を用いて、図１４中ステップＳ３０６に示した処理の一例について説明する。図１６は、ポートプロファイルテーブルを修正する処理の流れの一例を説明するための図である。
【０１６３】
図１６に示すように、スイッチ１は、ＶＭの移動がスイッチをまたがない場合には、受信したメッセージから、メッセージ種別を判定する（ステップＳ６０１）。そして、実行部２４は、メッセージ種別がＰＲＥ−ＡＳＳＯＣであると判定した場合、メッセージに含まれるポートプロファイルＩＤを用いてポートプロファイルテーブル１７を検索する（ステップＳ６０２）。
【０１６４】
続いて、スイッチ１は、ポートプロファイルＩＤがポートプロファイルテーブル１７に存在しない場合（ステップＳ６０３否定）、当該ポートプロファイルＩＤに対応するポートプロファイルを管理サーバ１０から取得する（ステップＳ６０４）。そして、スイッチ１は、取得したポートプロファイルをポートプロファイルテーブル１７に格納する（ステップＳ６０５）。
【０１６５】
その後、スイッチ１は、取得したポートプロファイルのＩＤとＶＳＩ情報とをＶＳＩテーブル１６に格納する（ステップＳ６０６）。このとき、スイッチ１は、ＶＳＩ情報の「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」として格納する。なお、スイッチ１は、ＶＳＩ情報として、要求メッセージを受信したポートのポート番号と、受信したメッセージのＶＳＩＩＤとを格納する。
【０１６６】
一方、スイッチ１は、ポートプロファイルＩＤがポートプロファイルテーブル１７に存在する場合（ステップＳ６０３肯定）、ステップＳ６０４とステップＳ６０５を実行することなく、ステップＳ６０６を実行する。
【０１６７】
また、ステップＳ６０１において、スイッチ１は、メッセージ種別がＡＳＳＯＣであると判定した場合、ポートプロファイルの割当を実行する（ステップＳ６０７）。例えば、スイッチ１は、ポートにＶＬＡＮや帯域を設定する。そして、スイッチ１は、受信したメッセージに含まれるＶＳＩＩＤでＶＳＩテーブル１６を検索し、ＶＳＩＩＤに対応付けられた「ＶＳＩ  Ｓｔａｔｅ」を「ＡＣＴＩＶＥ」に更新する（ステップＳ６０８）。
【０１６８】
また、ステップＳ６０１において、スイッチ１は、メッセージ種別がＤＥ−ＡＳＳＯＣであると判定した場合、ポートプロファイルの割当を削除する（ステップＳ６０９）。例えば、スイッチ１は、ポートにＶＬＡＮや帯域の設定を削除する。そして、スイッチ１は、受信したメッセージに含まれるＶＳＩＩＤでＶＳＩテーブル１６を検索し、ＶＳＩＩＤに対応付けられた情報を削除する（ステップＳ６１０）。
【０１６９】
続いて、スイッチ１は、メッセージからポートプロファイルＩＤを取得し、このポートプロファイルＩＤを他のＶＳＩＩＤが使用しているか否かを判定する（ステップＳ６１１）。そして、スイッチは、他のＶＳＩＩＤが使用していないと判定した場合（ステップＳ６１１否定）、当該ポートプロファイルＩＤに対応付けてポートプロファイルテーブル１７に格納されている情報を削除する（ステップＳ６１２）。一方、スイッチ１は、他のＶＳＩＩＤが使用していると判定した場合（ステップＳ６１１肯定）、処理を終了する。
【０１７０】
［実施例１による効果］
上述したように、スイッチ１は、ＶＳＩ発見プロトコルを拡張し、ＶＭの移動がスイッチ１をまたぐ移動である場合には、移動対象となるＶＭの通信を中継する通信経路において、自身よりも上位のスイッチに各メッセージを転送する。このため、スイッチ１は、各スイッチ１〜５が多段構成であり、かつ、マルチパスで接続されている場合にも、各スイッチ１〜５のポートプロファイルを自動設定することができる。
【０１７１】
また、スイッチ１は、各メッセージに含まれる経路ＩＤを用いて、経路ＩＤが示す通信経路において自身よりも上位のスイッチを判定し、判定したスイッチへ各メッセージを転送する。このため、スイッチ１は、ポートプロファイルの更新を要するスイッチに、ポートプロファイルを自動設定させることができる。
【０１７２】
また、スイッチ１は、ＶＭの移動がスイッチ１をまたがない移動である場合には、各メッセージの転送を行わずに、ポートプロファイルの更新を実行する。このため、スイッチ１は、他のスイッチ２〜５がポートプロファイルの更新を行わずともよい場合には、メッセージを転送しないので、ネットワークの帯域を空けることができる。
【０１７３】
また、スイッチ１は、受信したメッセージに含まれる経路ＩＤが示す通信経路において、自身よりも上位のスイッチが存在しない場合には、各メッセージの転送を行わずにポートプロファイル情報の更新を行う。このため、スイッチ１は、他のスイッチ２〜５がポートプロファイルの更新を行わずともよい場合には、メッセージを転送しないので、ネットワークの帯域を空けることができる。
【０１７４】
また、スイッチ１は、上位のスイッチへ各メッセージを転送し、上位のスイッチから各メッセージの応答を受信した場合には、各メッセージの送信元となるサーバへ、受信した応答を転送する。このため、スイッチ１は、各メッセージの送信元となるサーバに対して、適切に応答を送信するので、各サーバに複雑なプロトコルを適用せずに、ＶＳＩ発見プロトコルを用いた処理を適用すればよい。
【０１７５】
また、スイッチ１は、上位のスイッチからＡＳＳＯＣ−ＣＯＮＦメッセージ、または、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した後に、ポートプロファイルの設定や削除を実行する。このため、スイッチ１は、適切なタイミングで、ポートプロファイルの設定や削除を実行することができる。
【実施例２】
【０１７６】
以下の実施例２では、複数のスイッチを相互に接続したファブリックの技術が適用された情報処理システムについて説明する。
【０１７７】
従来、複数のスイッチを相互に接続した集合体を、外部ネットワークに対して１つのスイッチに見せるファブリックの技術が知られている。このようなファブリックの技術が適用された情報処理ネットワークは、外部ネットワークが接続する端点から見たときに、その端点にサーバが接続されているように見えるように動作するエンドホストモード（End  Host  Mode:ＥＨＭ）でデータを中継する場合がある。
【０１７８】
例えば、情報処理ネットワークは、ＶＭを稼働させる複数のサーバと、複数のスイッチを相互に接続したファブリックとを有し、各サーバが稼働させるＶＭ間の通信をファブリックのスイッチに中継させる。また、各ＶＭは、ピングループと呼ばれるグループに組み分けられており、ピングループごとに同一のアップリンクにピン接続し、ピン接続したアップリンクから外部ネットワークに接続する。つまり、各ＶＭは、ピングループごとに同一の端点から外部ネットワークに接続する。
【０１７９】
ここで、ファブリックに含まれるスイッチは、１つのＶＭが送受信するデータをマルチパスで転送する場合がある。例えば、スイッチは、ＶＭが送信したデータを受信した場合には、データの送信先ＩＰアドレスやポート番号等に応じて、データを転送する経路を選択し、選択した経路を介して、データの転送を行う。
【０１８０】
以下、図１７を用いて、ファブリックに含まれるスイッチがマルチパスでデータを転送する処理について説明する。図１７は、ファブリックのスイッチによる通信の一例を説明するための図である。図１７に示す例では、ファブリックは、上位スイッチ＃１、上位スイッチ＃２、下位スイッチ＃１、下位スイッチ＃２を有する。また、上位スイッチ＃１、上位スイッチ＃２は、ファブリックの端点となるスイッチであり、下位スイッチ＃１、下位スイッチ＃２は、ＶＭ＃１〜＃４と接続するスイッチである。
【０１８１】
例えば、下位スイッチ＃１は、ＶＭ＃１からＶＭ＃３を宛先とするデータを受信する。すると、下位スイッチ＃１は、図１７中（Ｉ）に示すように、データの宛先となるＩＰアドレスやポート番号に応じて、上位スイッチ＃１を介して下位スイッチ＃２に転送する経路、または、上位スイッチ＃２を介して下位スイッチ＃２にデータを転送する経路を選択する。そして、下位スイッチ＃１は、選択した経路を介して、データの転送を行う。
【０１８２】
ここで、従来のＶＳＩ発見プロトコルは、サーバと接続されたスイッチにポートプロファイルを自動設定するためのプロトコルであるので、複数のスイッチが相互に接続されたファブリックの各スイッチにポートプロファイルを自動設定できないという問題がある。
【０１８３】
なお、ＶＳＩ発見プロトコル（ＶＤＰ：VSI  Discovery  Protocol）のメッセージ（以下、ＶＤＰメッセージと記載する）を受信したスイッチが上位のスイッチにメッセージをブロードキャストする手法も考えられる。しかし、スイッチは、上位のスイッチにメッセージをブロードキャストした場合には、移動するＶＭのピングループが接続していないスイッチにもメッセージが送信されるため、無駄なトラフィックが発生する。
【０１８４】
例えば、図１７に示す例では、ＶＭ＃１とＶＭ＃２が上位スイッチ＃１にピン接続し、ＶＭ＃３とＶＭ＃４が上位スイッチ＃２にピン接続しているものとする。このような場合には、上位スイッチ＃１には、ＶＭ＃１とＶＭ＃２のポートプロファイルが存在し、上位スイッチ＃２には、ＶＭ＃１とＶＭ＃２のポートプロファイルが存在しない。
【０１８５】
ここで、下位スイッチ＃２は、自身の配下にＶＭ＃１が移動する場合には、図１７中（Ｊ）に示すように、ＶＳＩ発見プロトコルのメッセージを上位スイッチ＃１および上位スイッチ＃２にブロードキャスト送信する。しかし、上位スイッチ＃２には、ＶＭ＃１のポートプロファイルが存在しないので、下位スイッチ＃２は、無駄なトラフィックを発生させてしまう。
【０１８６】
実施例２に開示の技術は、一つの側面では、ファブリックの技術が適用されたスイッチ間のポートプロファイルを自動で変更できる。
【０１８７】
以下、図１８を用いて、実施例２に係る情報処理システムを説明する。図１８は、実施例２に係る情報処理システムの一例を説明するための図である。図１８に示す例では、情報処理システム４０は、複数のスイッチ４１〜４５を相互に接続したファブリック４６、管理サーバ５０、複数のサーバ５１〜５４を有する。また、各サーバ５１〜５４は、ファブリック４６を介して、外部ネットワーク４９と接続されている。
【０１８８】
また、ＶＭ＃１とＶＭ＃２は、スイッチ４４を端点として外部ネットワーク４９に接続するピングループであり、ＶＭ＃３とＶＭ＃４は、スイッチ４５を端点として外部ネットワーク４９に接続するピングループである。以下、ＶＭ＃１とＶＭ＃２のピングループをピングループＡとし、ＶＭ＃３とＶＭ＃４のピングループをピングループＢと記載する。
【０１８９】
以下、情報処理システム４０が有するサーバ５１〜５４、管理サーバ５０、ファブリック４６について説明する。各サーバ５１〜５４は、それぞれサーバ１１〜１４と同様の機能を発揮する。すなわち、各サーバ５１〜５４は、ハイパーバイザなどと呼ばれるＶＭＭ（Virtual  Machine  Monitor）を実行してＶＭ（Virtual  Machine：仮想マシン）を稼働させる情報処理装置である。
【０１９０】
図１８に示す例では、サーバ５１は、仮想マシンであるＶＭ＃１を稼働させ、サーバ５２は、ＶＭ＃３を稼働させ、サーバ５３は、ＶＭ＃２を稼働させ、サーバ５４は、ＶＭ＃４を稼働させる。また、各サーバ５１〜５４は、仮想スイッチを動作させ、各ＶＭ＃１〜＃４間における通信を中継させる。
【０１９１】
また、サーバ５１〜５４は、管理サーバ５０の指示に従って、ＶＭ＃１〜＃４をサーバ間で移動させる場合には、ＶＳＩ発見プロトコルに従って、自身と接続するスイッチに対してＶＤＰメッセージを送信する。具体的には、サーバ５１〜５４は、移動先サーバとなる場合には、移動対象となるＶＭのデータを受信するプレコピー処理を行い、ＰＲＥ−ＡＳＳＯＣメッセージを送信する。
【０１９２】
また、サーバ５１〜５４は、プレコピーが終了した場合には、ストップアンドコピー処理を実行する。そして、サーバ５１〜５４は、ＰＲＥ−ＡＳＳＯＣメッセージに対する応答であるＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ポートプロファイル情報の設定適用を指示するＡＳＳＯＣメッセージを送信する。
【０１９３】
また、サーバ５１〜５４は、移動元サーバとなる場合には、プレコピー処理を開始し、その後、移動対象となるＶＭを停止させ、ＶＭに係る全てのデータを送信するストップアンドコピー処理を実行する。その後、サーバ５１〜５４は、移動対象となるＶＭに係るポートプロファイルの削除を指示するＤＥ−ＡＳＳＯＣメッセージを送信する。
【０１９４】
なお、各サーバ５１〜５４は、実施例１とは異なり、ＰＲＥ−ＡＳＳＯＣ、ＡＳＳＯＣ、ＤＥ−ＡＳＳＯＣ等のメッセージに経路ＩＤを格納せずに送信する。すなわち、各サーバ５１〜５４は、従来のＶＳＩ発見プロトコルと同様に、移動対象のＶＭを示すＶＳＩＩＤが格納されたメッセージを送信する。
【０１９５】
次に、管理サーバ５０について説明する。管理サーバ５０は、管理用ネットワークを介して、各サーバ５１〜５４に各ＶＭ＃１〜＃４の起動処理、停止処理等を指示する。また、管理サーバ５０は、各スイッチ４１〜４５に適用されるポートプロファイル情報と、各サーバ５１〜５４が稼働させるＶＭ＃１〜＃４が所属するピングループ情報５０ａを記憶する。また、管理サーバ５０は、各サーバ５１〜５４で稼動するＶＭに対応付けて、ＶＭの動作環境等を記憶する。また、管理サーバ５０は、ＶＭに対応したＶＬＡＮ、ＱｏＳ、割り当てられた帯域などの情報を記憶する。
【０１９６】
また、管理サーバ５０は、各サーバ５１〜５４におけるＣＰＵの使用率や、通信経路におけるトラフィックの量、各サーバ５１〜５４の消費電力量等に応じて、各ＶＭ＃１〜＃４を効率良く動作させるサーバを算出する。そして、管理サーバ５０は、いずれかのＶＭを他のサーバに移動させる場合には、ＶＭの移動に応じて、移動元のサーバと移動先のサーバとにＶＭの移動処理の実行を指示する。
【０１９７】
ここで、管理サーバ５０は、移動対象となるＶＭのピングループに含まれるＶＭが新たに外部ネットワーク４９と通信を行う際のアップリンクを選択する。そして、管理サーバ５０は、移動対象となるＶＭのピングループに含まれるＶＭがピン接続しているアップリンクを変更前アップリンクとし、新たに選択したアップリンクを変更後アップリンクとして、各スイッチ４１〜４５に通知する。
【０１９８】
なお、管理サーバ５０は、任意の手法を用いて、新たなアップリンクを選択することとしてよい。また、管理サーバ５０は、ＶＭの移動が無い場合にも、ピングループのＶＭがピン接続するアップリンクを変更する場合には、上述した処理を行い、変更前アップリンクと変更後アップリンクとを対応付けたピングループ情報のエントリを各スイッチ４１〜４５に通知する。
【０１９９】
ここで、図１９は、実施例２に係るピングループ情報の一例を説明するための図である。図１９に示す例では、ピングループ情報５０ａは、ピングループ、変更前アップリンク、変更後アップリンク、ＶＭ、備考を対応付けた複数のエントリを有する。ここで、ピングループは、各ピングループの識別子であり、変更前アップリンクは、同一エントリのピングループに所属するＶＭがピン接続している変更前のアップリンクである。
【０２００】
また、変更後アップリンクは、同一エントリのピングループに所属するＶＭが新たに接続する変更後のアップリンクである。また、ＶＭは、同一エントリのピングループに所属するＶＭである。また、備考は、各種制御情報であり、例えば、ピングループに所属するＶＭを使用するクライアント、すなわちテナントの情報が格納される。
【０２０１】
例えば、図１９に示す例では、ピングループ情報５０ａは、ピングループＡのＶＭ＃１、ＶＭ＃２がアップリンクとしてスイッチ４４にピン接続し、外部ネットワーク４９と通信を行う旨を示す。また、ピングループ情報５０ａは、ピングループＢのＶＭ＃３、ＶＭ＃４がアップリンクとしてスイッチ４５にピン接続し、外部ネットワーク４９と通信を行う旨を示す。また、ピングループ情報５０ａは、ピングループＢのＶＭ＃３、ＶＭ＃４が新たなアップリンクとしてスイッチ４４にピン接続する旨を示す。そして、例えば、管理サーバ５０は、各スイッチ４１〜４５に対して、ピングループＢのエントリを送信する。
【０２０２】
次に、各スイッチ４１〜４５について説明する。スイッチ４１〜４５は、スイッチ１〜５と同様に、各サーバ５１〜５４が稼働させるＶＭ＃１〜＃４のデータを中継するスイッチである。具体的には、各スイッチ４１〜４５は、相互に接続され、ファブリック４６として動作する。
【０２０３】
また、スイッチ４４およびスイッチ４５は、外部ネットワーク４９と接続されており、各ＶＭ＃１〜＃４がピン接続するアップリンクとして動作する。詳細には、スイッチ４４には、ピングループＡに所属するＶＭ＃１とＶＭ＃２がピン接続し、スイッチ４５には、ピングループＢに所属するＶＭ＃３とＶＭ＃４がピン接続する。
【０２０４】
また、スイッチ４１〜４５は、下位のスイッチ、または自身と接続されたサーバ５１〜５４からＶＳＩ発見プロトコルのメッセージを受信した場合には、ポートプロファイルを更新する。以下、スイッチ４１〜４５がポートプロファイルを更新する処理について説明する。なお、以下の説明では、スイッチ４２〜４５は、スイッチ４１と同様の処理を実行するものとして、説明を省略する。
【０２０５】
例えば、スイッチ４１は、管理サーバ５０からピングループ情報５０ａのエントリを受信した場合は、受信したエントリを記憶する。また、スイッチ４１は、自身に接続されたサーバ５１、５２が稼働させるＶＭ＃１とＶＭ＃３のポートプロファイルを記憶し、記憶したポートプロファイルに応じて、パケットの転送を実行する。すなわち、スイッチ４１は、スイッチ１と同様に、ＶＭ＃１と対応付けたポートを介してパケットを受信した場合には、ＶＭ＃１から受信したパケットとして転送を行う。
【０２０６】
また、スイッチ４１は、自身に隣接するサーバ５１またはサーバ５２から、ＶＤＰメッセージを受信した場合には、ＶＤＰメッセージの内容を判別する。すなわち、スイッチ４１は、受信したメッセージが、ＰＲＥ−ＡＳＳＯＣメッセージであるか、ＡＳＳＯＣメッセージであるか、ＤＥ−ＡＳＳＯＣメッセージであるかを判別する。すなわち、スイッチ４１は、ＶＤＰメッセージがポートプロファイルの設定を示すＰＲＥ−ＡＳＳＯＣやＡＳＳＯＣであるか、またはポートプロファイルの削除を示すＤＥ−ＡＳＳＯＣであるかを識別する。
【０２０７】
また、スイッチ４１は、受信したメッセージがＰＲＥ−ＡＳＳＯＣメッセージ、またはＡＳＳＯＣメッセージである場合は、ＶＤＰメッセージからＶＳＩＩＤを取得し、取得したＶＳＩＩＤを記憶しているか否かを判別する。つまり、スイッチ４１は、移動対象となるＶＭの移動がスイッチ４１をまたぐ移動であるか否かを判別する。
【０２０８】
そして、スイッチ４１は、取得したＶＳＩＩＤを記憶している場合は、スイッチ１と同様に、管理サーバ５０から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。そして、スイッチ４１は、ＰＲＥ−ＡＳＳＯＣメッセージの送信元サーバ、すなわち、移動先サーバへＰＲＥ−ＡＳＳＯＣメッセージに対する応答であるＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。
【０２０９】
一方、スイッチ４１は、取得したＶＳＩＩＤを記憶していない場合は、管理サーバ５０から受信したピングループ情報のエントリを閲覧し、識別したＶＳＩＩＤが示すＶＭ、すなわち移動対象のＶＭが所属するピングループを判別する。その後、スイッチ４１は、識別したＶＤＰメッセージの内容と判別したピングループのＶＭがピン接続するアップリンクとに応じて、ＶＤＰメッセージを転送する上位のスイッチを識別する。
【０２１０】
詳細には、スイッチ４１は、ＶＤＰメッセージの内容が新たなポートプロファイルの設定を要求するＰＲＥ−ＡＳＳＯＣやＡＳＳＯＣである場合には、移動対象のＶＭが所属するピングループが、新たにピン接続するアップリンクを識別する。つまり、スイッチ４１は、移動対象のＶＭが所属するピングループの変更後アップリンクを識別する。そして、スイッチ４１は、変更後アップリンクに基づいて、ＶＤＰメッセージを転送する上位のスイッチを選択し、選択した上位のスイッチへＶＤＰメッセージを転送する。
【０２１１】
また、スイッチ４１は、ＶＤＰメッセージの内容がポートプロファイルの削除を要求するＤＥ−ＡＳＳＯＣである場合には、ポートプロファイルの削除を準備するとともに、移動対象のＶＭが所属するピングループが、ピン接続していたアップリンクを識別する。つまり、スイッチ４１は、移動対象のＶＭが所属するピングループの変更前アップリンクを識別する。そして、スイッチ４１は、変更前アップリンクに基づいて、ＶＤＰメッセージを転送する上位のスイッチを選択し、選択したスイッチへＶＤＰメッセージを転送する。
【０２１２】
また、スイッチ４１は、ＡＳＳＯＣを転送した上位のスイッチから応答として、ＡＳＳＯＣ−ＣＯＮＦを受信した場合には、準備したポートプロファイルの設定を実行し、下位のスイッチにＡＳＳＯＣ−ＣＯＮＦを転送する。また、スイッチ４１は、ＤＥ−ＡＳＳＯＣを転送した上位のスイッチから応答としてＤＥ−ＡＳＳＯＣ−ＣＯＮＦを受信した場合には、準備していたポートプロファイルの削除を実行し、下位のスイッチにＤＥ−ＡＳＳＯＣ−ＣＯＮＦを転送する。
【０２１３】
なお、スイッチ４１は、ＶＤＰメッセージを受信した際に、自身が最も上位のスイッチである場合、すなわち、移動対象のＶＭがピン接続するアップリンクである場合には、ＶＤＰメッセージの転送を行わず、ポートプロファイルの設定や削除を実行する。そして、スイッチ４１は、ＶＤＰメッセージの送信元となる下位のスイッチ４１〜４３に、応答を送信する。
【０２１４】
次に、図２０を用いて、スイッチ４１の機能構成の一例について説明する。図２０は、実施例２に係るスイッチの一例を説明するための図である。図２０に示す例では、スイッチ４１は、通信制御Ｉ／Ｆ部１９、制御部２０ａ、ピングループ情報記憶部１５ａ、ＶＳＩテーブル１６、ポートプロファイルテーブル１７、ＭＡＣテーブル１８を有する。また、制御部２０ａは、メッセージ処理部２１ａ、学習部２６、スイッチング制御部２７を有する。また、メッセージ処理部２１ａは、受信部２２ａ、判定部２３ａ、実行部２４、転送部２５ａを有する。なお、以下の説明においては、図５と同一の符号を付したものについては、実施例１と同様の処理を実行するものとして、説明を省略する。
【０２１５】
受信部２２ａは、受信部２２と同様の機能を発揮する。例えば、受信部２２ａは、移動対象のＶＭが移動する移動先のサーバから、当該ＶＭに対応するポートプロファイル情報の設定要求であるＶＤＰメッセージを受信する。また、受信部２２ａは、ＶＭが稼動する移動元のサーバから、当該ＶＭに対応するポートプロファイル情報の削除要求であるＶＤＰメッセージを受信する。そして、受信部２２ａは、受信したＶＤＰメッセージを判定部２３ａに出力する。
【０２１６】
また、受信部２２ａは、上位のスイッチ４４、４５からＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信すると、受信したＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを転送部２５に出力する。また、受信部２２ａは、上位のスイッチ４４、４５からＡＳＳＯＣ−ＣＯＮＦメッセージやＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、メッセージを転送部２５ａに出力するとともに、各応答を受信した旨を実行部２４に出力する。
【０２１７】
さらに、受信部２２ａは、管理サーバ５０から移動対象のＶＭが所属するピングループのピングループ情報５０ａを受信し、受信したピングループ情報５０ａをピングループ情報記憶部１５ａに格納する。
【０２１８】
判定部２３ａは、判定部２３と同様に、ＶＳＩテーブル１６に、受信部２２ａが受信したＶＤＰメッセージに含まれるＶＳＩＩＤが格納されているか否かを判定する。そして、判定部２３ａは、ＶＳＩＩＤがＶＳＩテーブル１６に格納されている場合には、ＶＭの移動がスイッチ４１をまたがない移動であると判定して、ＶＭの移動がスイッチ４１をまたがない移動である旨の通知とＶＤＰメッセージとを実行部２４に出力する。
【０２１９】
一方、判定部２３ａは、ＶＳＩＩＤがＶＳＩテーブル１６に格納されていない場合には、ＶＭの移動がスイッチ１をまたがった移動であると判定して、以下の処理を実行する。まず、判定部２３ａは、ＶＤＰメッセージのＴＬＶ  Ｔｙｐｅから、ＶＤＰメッセージがＰＲＥ−ＡＳＳＯＣ、ＡＳＳＯＣ、ＤＥ−ＡＳＳＯＣのいずれであるかを判別する。また、判定部２３ａは、ＶＳＩＩＤが示すＶＭを識別し、ピングループ情報記憶部１５ａに記憶されたピングループ情報から、識別したＶＭが所属するピングループを判別する。
【０２２０】
そして、判定部２３ａは、ＶＤＰメッセージがＰＲＥ−ＡＳＳＯＣまたはＡＳＳＯＣである場合には、判別したピングループの変更後アップリンクをピングループ情報記憶部１５ａから取得する。また、判定部２３ａは、ＶＤＰメッセージがＤＥ−ＡＳＳＯＣである場合は、判別したピングループの変更前アップリンクをピングループ情報記憶部１５ａから取得する。
【０２２１】
ここで、判定部２３ａは、取得した変更前アップリンク、または変更後アップリンクがスイッチ４１であるか否かを判別する。そして、判定部２３ａは、取得した変更前アップリンク、または変更後アップリンクがスイッチ４１ではない場合は、ＶＤＰメッセージを実行部２４に送信する。また、判定部２３ａは、ＶＤＰメッセージと変更前アップリンクまたは変更後アップリンクを転送部２５ａに送信する。
【０２２２】
一方、判定部２３ａは、取得した変更前アップリンク、または変更後アップリンクがスイッチ４１である場合は、ＶＤＰメッセージを実行部２４に送信する。なお、実施例２に関わる実行部２４は、実施例１に関わる実行部２４と同様の処理を行い、ポートプロファイルテーブル１７に格納されたポートプロファイルの設定および削除を実行する。
【０２２３】
転送部２５ａは、ＶＭの移動がスイッチ４１をまたがった移動であると判定部２３ａが判定した場合には、ＶＤＰメッセージと変更前アップリンク、またはＶＤＰメッセージと変更後アップリンクとを受信する。このような場合には、転送部２５ａは、受信した変更前アップリンク、または変更後アップリンクに対してＶＤＰメッセージを転送する。
【０２２４】
すなわち、転送部２５ａは、ＶＤＰメッセージがＰＲＥ−ＡＳＳＯＣメッセージ、または、ＡＳＳＯＣメッセージである場合は、変更後アップリンクに対してＶＤＰメッセージを転送する。また、転送部２５ａは、ＶＤＰメッセージがＤＥ−ＡＳＳＯＣメッセージである場合は、変更前アップリンクに対してＶＤＰメッセージを転送する。
【０２２５】
また、転送部２５ａは、転送部２５と同様に、受信部２２ａが応答を受信した場合には、ＶＤＰメッセージの送信元となるスイッチやサーバに対して、応答を転送する。ここで、転送部２５ａは、転送部２５と同様の手法を用いて、ＶＤＰメッセージの送信元となるスイッチやサーバに対して応答を転送する。
【０２２６】
すなわち、受信部２２ａは、ＰＲＥ−ＡＳＳＯＣメッセージなどのＶＤＰメッセージと、ＶＤＰメッセージの送信元とを対応付けてメモリ等に格納しておく。そして、転送部２５ａは、メモリ等に格納されたＶＤＰメッセージの送信元へＶＤＰメッセージの応答を送信する。その後、転送部２５ａは、応答を送信したＶＤＰメッセージの送信元をメモリ等から削除する。
【０２２７】
なお、転送部２５ａは、変更後アップリンク、または変更前アップリンクがスイッチ４１と直接接続されている場合は、通信制御Ｉ／Ｆ部１９を介して、ＶＤＰメッセージを転送することとなる。また、転送部２５ａは、変更後アップリンク、または変更前アップリンクがスイッチ４１と直接接続されていない場合は、管理サーバ５０から変更後アップリンク、または変更前アップリンクにＶＤＰメッセージを転送する経路を取得し、取得した経路で送信する。
【０２２８】
例えば、転送部２５ａは、管理サーバ５０から、移動対象のＶＭが変更前アップリンクにピン接続していた経路、または、移動対象のＶＭが変更後アップリンクにピン接続する経路を取得する。そして、転送部２５ａは、取得した経路において、自身よりも上位のスイッチに、ＶＤＰメッセージを転送する。
【０２２９】
次に、図２１および図２２を用いて、仮想マシンが移動する際にファブリック４６の各スイッチ４１〜４５が実行する処理について説明する。なお、以下の説明では、サーバ５４が稼働させるＶＭ＃４をサーバ５３に移動させるとともに、省電力制御のため、スイッチ４３、スイッチ４５、サーバ５４の動作を止める例について説明する。
【０２３０】
図２１は、スイッチがピングループごとにデータの転送を行う例について説明するための図である。例えば、図２１中（Ｋ）で示すように、ピングループＡのＶＭ＃１とＶＭ＃２は、アップリンクであるスイッチ４４にピン接続し、データの送受信を行う。また、図２１中（Ｌ）で示すように、ピングループＢのＶＭ＃３とＶＭ＃４は、アップリンクであるスイッチ４５にピン接続し、データの送受信を行う。
【０２３１】
詳細には、ピングループＡのＶＭ＃１とＶＭ＃２は、スイッチ４４を上位のスイッチとし、スイッチ４１およびスイッチ４２を下位のスイッチとしてデータの送受信を行う。また、ピングループＢのＶＭ＃３とＶＭ＃４は、スイッチ４５を上位のスイッチとし、スイッチ４１およびスイッチ４３を下位のスイッチとしてデータの送受信を行う。
【０２３２】
ここで、管理サーバ５０は、ＶＭ＃４を移動させるとともに、スイッチ４５とスイッチ４３を停止させた際に、ピングループＢが接続するアップリンクとしてスイッチ４４を選択する。この結果、管理サーバ５０は、図１９に示すように、ピングループ情報５０ａのピングループＢのエントリに、更新後アップリンクとしてスイッチ４４を格納する。そして、管理サーバ５０は、スイッチ４１〜４５に対して、ピングループ情報５０ａのうち、ピングループＢのエントリを各スイッチ４１〜４５に送信する。
【０２３３】
次に、サーバ５３は、スイッチ４２に対して、ＶＭ＃４のＶＳＩＩＤが格納されたＰＲＥ−ＡＳＳＯＣメッセージを送信する。すると、スイッチ４２は、管理サーバからＶＭ＃４に関するポートプロファイル設定の準備を行う。また、スイッチ４２は、管理サーバ５０から受信したピングループ情報５０ａのエントリから、ＶＭ＃４が所属するピングループの変更後アップリンクであるスイッチ４４を識別する。そして、スイッチ４２は、スイッチ４４に対して、ＰＲＥ−ＡＳＳＯＣメッセージを送信する。
【０２３４】
すると、スイッチ４４は、管理サーバ５０からＶＭ＃４に関する新たなポートプロファイルを取得するとともに、スイッチ４２に対して、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを送信する。すると、スイッチ４２は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ５３に送信する。
【０２３５】
続いて、スイッチ４２は、サーバ５３からＡＳＳＯＣメッセージを受信する。すると、スイッチ４２は、ＰＲＥ−ＡＳＳＯＣメッセージと同様の処理を実行し、ピングループＢの変更後アップリンクであるスイッチ４４にＡＳＳＯＣメッセージを転送する。すると、スイッチ４４は、ＶＭ＃４に関するポートプロファイルを適用するとともに、ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ４２に送信する。また、スイッチ４２は、ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ４４から受信すると、ＶＭ＃４に関するポートプロファイルを適用し、ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ５３に転送する。
【０２３６】
また、スイッチ４３は、サーバ５４からＶＭ＃４に関するＤＥ−ＡＳＳＯＣメッセージを受信すると、ＶＭ＃４に関するポートプロファイルの削除を準備するとともに、管理サーバ５０から受信したピングループ情報５０ａのエントリから、ＶＭ＃４が所属するピングループの変更前アップリンクであるスイッチ４５を識別する。そして、スイッチ４３は、スイッチ４５に対して、ＤＥ−ＡＳＳＯＣメッセージを送信する。
【０２３７】
すると、スイッチ４５は、ＶＭ＃４に関するポートプロファイルを削除するとともに、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ４３に送信する。また、スイッチ４３は、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをスイッチ４５から受信すると、ＶＭ＃４に関するポートプロファイルを削除するとともに、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージをサーバ５４に転送する。
【０２３８】
ここで、図２２は、仮想マシンの移動後を説明するための図である。情報処理システム４０は、上述した処理を実行した後に、図２２中（Ｍ）に示すように、ＶＭ＃４をサーバ５３に移動させる。この結果、図２２中（Ｎ）に示すように、ファブリック４６の各スイッチ４１〜４５は、ピングループＢに所属するＶＭ＃３とＶＭ＃４の通信経路を変更する。
【０２３９】
具体的には、ファブリック４６の各スイッチ４１〜４５は、スイッチ４１、スイッチ４４、スイッチ４２を介して、ピングループＢに所属するＶＭ＃３およびＶＭ＃４の通信を中継する。また、ファブリック４６の各スイッチ４１〜４５は、ピングループＢに所属するＶＭ＃３およびＶＭ＃４がピン接続するアップリンクをスイッチ４４とする。
【０２４０】
次に、図２３を用いて、移動対象となるＶＭが所属するピングループとＶＤＰメッセージの内容に応じて、ＶＤＰメッセージを転送する処理の流れについて説明する。図２３は、ピングループとＶＤＰメッセージの内容に応じてＶＤＰメッセージを転送する処理の流れを説明するためのシーケンス図である。なお、図２３には、ＶＭ＃４がサーバ５４からサーバ５３に移動する際に実行する処理について記載し、各スイッチ４１〜４５には、図１９中に示すピングループ情報５０ａのうち、ピングループＢのエントリが送信されたものとする。
【０２４１】
例えば、移動先サーバ５３は、新しいＶＭを自サーバ上に生成する（ステップＳ７０１）。続いて、移動元サーバ５４は、ライブマイグレーション指示を管理サーバ５０から受け付けると（ステップＳ７０２）、移動対象ＶＭが自サーバで動作している状態で、プレコピーを実施する（ステップＳ７０３、Ｓ７０４）。
【０２４２】
プレコピーが開始されると、移動先サーバ５３は、ピングループＢの変更後アップリンクであるスイッチ４４までの経路において、自身よりも上位のスイッチであるスイッチ４２にＰＲＥ−ＡＳＳＯＣメッセージを移動先スイッチ４２に送信する（ステップＳ７０５）。このような場合には、移動先スイッチ４２は、ポートプロファイルを取得するとともに（ステップＳ７０６）、ピングループＢの変更後アップリンクであるスイッチ４４にＰＲＥ−ＡＳＳＯＣを転送する（ステップＳ７０７）。次に、移動先スイッチ４４は、ＰＲＥ−ＡＳＳＯＣを受信すると、ポートプロファイルを取得し（ステップＳ７０８）、その後、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ４２へ送信する（ステップＳ７０９）。
【０２４３】
このような場合には、移動先スイッチ４２は、ＰＲＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバ５３へ転送する（ステップＳ７１０）。その後、移動先サーバ５３と移動元サーバ５４は、プレコピーを継続し（ステップＳ７１１、Ｓ７１２）、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する（ステップＳ７１３、Ｓ７１４）。
【０２４４】
移動先サーバ５３は、ストップアンドコピーが開始後に、ＰＲＥ−ＡＳＳＯＣと同様に、ピングループＢの変更後アップリンクであるスイッチ４４までの経路において、自身よりも上位の移動先スイッチ４２にＡＳＳＯＣメッセージを送信する（ステップＳ７１５）。このような場合には、移動先スイッチ４２は、ピングループＢの変更後アップリンクである移動先スイッチ４４にＰＲＥ−ＡＳＳＯＣを転送する（ステップＳ７１６）。また、移動先スイッチ４４は、ＡＳＳＯＣメッセージを受信すると、ステップＳ７０８にて取得したポートプロファイルを適用し（ステップＳ７１７）、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ４２へ送信する（ステップＳ７１８）。
【０２４５】
移動先スイッチ４２は、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先スイッチ４４から受信した場合には、ステップＳ７０６にて取得したポートプロファイルを適用する（ステップＳ７１９）。その後、移動先スイッチ４２は、ＡＳＳＯＣ−ＣＯＮＦメッセージを移動先サーバ５３へ転送する（ステップＳ７２０）。
【０２４６】
また、移動元サーバ５４は、ストップアンドコピーを実行した後に、ピングループＢの変更前アップリンクである移動元スイッチ４５まで経路上で、自身よりも上位のスイッチである移動元スイッチ４３にＤＥ−ＡＳＳＯＣメッセージを送信する（ステップＳ７２１）。このような場合には、移動元スイッチ４３は、ピングループＢの変更前アップリンクである移動元スイッチ４５にＤＥ−ＡＳＳＯＣメッセージを転送する（ステップＳ７２２）。
【０２４７】
すると、移動元スイッチ４５は、ＶＭ＃４に係るポートプロファイルを削除し（ステップＳ７２３）、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元スイッチ４３へ送信する（ステップＳ７２４）。そして、移動元スイッチ４３は、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを受信した場合には、ＶＭ＃４に係るポートプロファイルを削除し、ＤＥ−ＡＳＳＯＣ−ＣＯＮＦメッセージを移動元サーバ５４へ転送する（ステップＳ７２５）。
【０２４８】
なお、ファブリック４６の各スイッチ４１〜４５は、ＭＡＣアドレスの動的学習を行わない場合は、以下の処理を実行する。すなわち、各スイッチ４１〜４５は、リバースＡＲＰ（Address  Resolution  Protocol）等を送出し、移動するＶＭのＭＡＣアドレスとＩＰアドレスとが移動先のサーバに移行したことを他のスイッチに通知することで、移動したＶＭのデータを転送する経路の変更を行う。具体的には、アップリンクとなるスイッチ４４、４５が、下位のスイッチ４１〜４３に対して、移動するＶＭが所属するピングループの情報をブロードキャストすることで、通信経路の変更を実現する。
【０２４９】
以下、図２４を用いて、各スイッチ４１〜４５が、ＭＡＣアドレスの動的学習を行わない場合に、経路変更を行う処理の流れについて説明する。図２４は、ＭＡＣアドレスを動的学習しない場合の処理の流れを説明するためのシーケンス図である。なお、図２４に記載した処理のうち、図２３と同様の処理については、同一のステップ番号を付し、説明を省略する。
【０２５０】
例えば、ピングループＢの変更後アップリンクである移動先スイッチ４４は、移動先スイッチ４２からＡＳＳＯＣメッセージを受信し、ポートプロファイルを適用した場合は（ステップＳ７１７）、以下の処理を実行する。すなわち、移動先スイッチ４４は、ＡＳＳＯＣメッセージを受信したポート以外のポートから、自身よりも下位のスイッチ４１および移動元スイッチ４３に対して、ピングループＢの情報をブロードキャスト送信する（ステップＳ８０１）。具体例を挙げると、スイッチ４４は、ピングループＢに所属するＶＭ＃３とＶＭ＃４の通信を中継する経路の情報をブロードキャスト送信する。
【０２５１】
すると、移動先スイッチ４４の下位のスイッチであるスイッチ４１は、受信したピングループＢの情報に応じて、ＭＡＣテーブル１８を変更する（ステップＳ８０２）。また、移動先スイッチ４４の下位のスイッチである移動元スイッチ４３は、スイッチ４１と同様に、ピングループＢの情報に応じて、自身のＭＡＣテーブルを変更する（ステップＳ８０３）。
【０２５２】
また、移動先スイッチ４４は、ピングループＢ情報をブロードキャスト送信した場合は、自身のＭＡＣテーブルを変更して経路変更を適用する（ステップＳ８０４）。また、移動先スイッチ４２は、ポートプロファイルの適用を行った場合は（ステップＳ７１９）、自身のＭＡＣテーブルを変更して経路変更を適用する（ステップＳ８０５）。
【０２５３】
すなわち、実施例１に係るスイッチ１〜５は、図９Ａ〜９Ｅに示すＭＡＣアドレスを図１１Ａ〜１１Ｅに示すように修正することで経路を変更した。各スイッチ４１〜４５は、ブロードキャスト送信されたピングループＢの情報に基づいて、スイッチ１〜５と同様の修正を適用する事で、経路変更を適用する。
【０２５４】
次に、図２５を用いて、スイッチ４１が実行する処理の流れについて説明する。図２５は、実施例２に係るスイッチが実行する処理の流れを説明するためのフローチャートである。図２５に示す例では、スイッチ４１は、ＶＤＰメッセージを受信したか否かを判別する（ステップＳ９０１）。そして、スイッチ４１は、ＶＤＰメッセージを受信した場合には（ステップＳ９０１肯定）、ＶＤＰメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されているか否かを判別する（ステップＳ９０２）。
【０２５５】
そして、スイッチ４１は、ＶＳＩＩＤがＶＳＩテーブル１６に記憶されていない場合は（ステップＳ９０２否定）、ピングループ情報とＶＤＰメッセージの内容に基づいて、上位スイッチを選択する（ステップＳ９０３）。そして、スイッチ４１は、上位スイッチにＶＤＰメッセージを転送する（ステップＳ９０４）。
【０２５６】
また、スイッチ４１は、応答メッセージを上位のスイッチから受信した否かを判別し（ステップＳ９０５）、受信した場合には（ステップＳ９０５肯定）、応答メッセージをＶＤＰメッセージの送信元へ送信し（ステップＳ９０７）、処理を終了する。一方、スイッチ４１は、ＶＤＰメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル１６に記憶されている場合は（ステップＳ９０２肯定）、ＶＤＰメッセージに応じた処理を実行する（ステップＳ９０６）。すなわち、スイッチ４１は、図１６に示す各処理を実行し、ポートプロファイルテーブルの修正を行う。
【０２５７】
なお、スイッチ４１は、ＶＤＰメッセージを受信していない場合は（ステップＳ９０１否定）、再度ＶＤＰメッセージを受信したか否かを判別する（ステップＳ９０１）。また、スイッチ４１は、応答メッセージを受信していない場合は（ステップＳ９０５否定）、再度応答メッセージを受信したか否かを判別する（ステップＳ９０５）。
【０２５８】
次に、図２５中のステップＳ９０３にて、スイッチ４１が上位のスイッチを選択する処理の流れを、図２６を用いて説明する。図２６は、実施例２に係るスイッチが上位スイッチを選択する処理の流れを説明するためのフローチャートである。例えば、スイッチ４１は、受信したＶＤＰメッセージがＤＥ−ＡＳＳＯＣであるか否かを判別する（ステップＳ１００１）。
【０２５９】
そして、スイッチ４１は、受信したＶＤＰメッセージがＤＥ−ＡＳＳＯＣである場合は（ステップＳ１００１肯定）、ピングループ情報の変更前アップリンクへの経路における上位スイッチを選択し（ステップＳ１００２）、ステップＳ９０４の処理を実行する。一方、スイッチ４１は、受信したＶＤＰメッセージがＤＥ−ＡＳＳＯＣではない場合は（ステップＳ１００１否定）、ピングループ情報の変更後アップリンクへの経路における上位スイッチを選択し（ステップＳ１００３）、ステップＳ９０４の処理を実行する。
【０２６０】
次に、図２７Ａを用いて、上位スイッチ、すなわち、他のスイッチからＶＤＰメッセージを受信したスイッチが、ピングループ情報と経路変更の対象となるＭＡＣアドレスとを含む経路変更メッセージをブロードキャスト送信する処理の流れについて説明する。図２７Ａは、上位スイッチが経路変更メッセージを送信する処理の流れを説明するためのフローチャートである。
【０２６１】
例えば、図２７Ａに示す例では、スイッチ４４は、下位スイッチ、例えば、スイッチ４２からＶＤＰメッセージを受信したか否かを判別する（ステップＳ１１０１）。そして、スイッチ４４は、ＶＤＰメッセージを受信した場合は（ステップＳ１１０１肯定）、以下の処理を実行する。
【０２６２】
すなわち、スイッチ４４は、ＶＤＰメッセージを受信した受信ポートを除く、他のダウンリンクポート、すなわち、下位スイッチと接続されるポートから、経路変更メッセージを送信し（ステップＳ１１０２）、処理を終了する。ここで、経路変更メッセージとは、経路変更対象となるＭＡＣアドレスと、ピングループ情報とを含むメッセージである。なお、図２７Ａに示す処理は、図２４中ステップＳ８０１の処理と対応する。一方、スイッチ４４は、下位スイッチからＶＤＰメッセージを受信していない場合は（ステップＳ１１０１否定）、再度、ＶＤＰメッセージを受信したか判別する（ステップＳ１１０１）。
【０２６３】
次に、図２７Ｂを用いて、上位のスイッチがブロードキャスト送信した経路変更メッセージを受信したスイッチが経路を変更する処理の流れについて説明する。図２７Ｂは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。
【０２６４】
例えば、図２７Ｂに示す例では、スイッチ４１は、上位スイッチ、例えば、スイッチ４４から経路変更メッセージを受信したか否かを判別する（ステップＳ１２０１）。そして、スイッチ４１は、経路変更メッセージを受信した場合は（ステップＳ１２０１肯定）、受信した経路変更メッセージに含まれるＭＡＣアドレスとピングループ情報に基づいて、ＭＡＣテーブル１６を書き換えし（ステップＳ１２０２）、処理を終了する。なお、スイッチ４１は、上位スイッチから経路変更メッセージを受信していない場合は（ステップＳ１２０１否定）、再度上位スイッチから経路変更メッセージを受信したか判別する（ステップＳ１２０１）。
【０２６５】
［実施例２の効果］
上述したように、スイッチ４１〜４５は、受信したＶＤＰメッセージに格納されるＶＳＩＩＤを記憶していない場合は、ＶＤＰメッセージの内容と、移動対象のＶＭが所属するピングループとに応じて、ＶＤＰメッセージを転送する上位のスイッチを選択する。そして、スイッチ４１〜４５は、選択したスイッチにＶＤＰメッセージを転送する。
【０２６６】
このため、スイッチ４１〜４５は、ＶＤＰメッセージを上位のスイッチにブロードキャスト送信せずとも、ポートプロファイルを変更すべきスイッチにＶＤＰメッセージを転送することができる。この結果、情報処理システム４０は、ファブリック４６を用いて各サーバ５１〜５４や外部ネットワーク４９の通信を中継する場合にも、自動でポートプロファイルの設定を行うことができる。
【０２６７】
また、スイッチ４１〜４５は、ＶＤＰメッセージの内容がＰＲＥ−ＡＳＳＯＣメッセージ、またはＡＳＳＯＣメッセージである場合には、移動対象のＶＭが移動後にピン接続する変更後アップリンクを識別する。その後、スイッチ４１〜４５は、識別した変更後アップリンクへ、ＶＤＰメッセージを転送する。一方、スイッチ４１〜４５は、ＶＤＰメッセージの内容がＤＥ−ＡＳＳＯＣである場合には、移動対象のＶＭが移動前にピン接続する変更前アップリンクを識別する。そして、スイッチ４１〜４５は、識別した変更後アップリンクへ、ＶＤＰメッセージを転送する。
【０２６８】
すなわち、各スイッチ４１〜４５は、ＶＭが移動前にピン接続するアップリンクへの経路上に存在するスイッチに対しては、ＤＥ−ＡＳＳＯＣを転送する。また、各スイッチ４１〜４５は、ＶＭが移動後にピン接続するアップリンクへの経路上に存在するスイッチに対しては、ＰＲＥ−ＡＳＳＯＣとＡＳＳＯＣとを転送する。この結果、各スイッチ４１〜４５は、ＶＭの移動によってポートプロファイルの更新を行うべきスイッチに対して、ＶＤＰメッセージを転送することができる。
【０２６９】
また、スイッチ４１〜４５は、変更前アップリンク、または変更後アップリンクである場合、すなわち、ＶＤＰメッセージを転送すべきスイッチのうち最も上位のスイッチである場合には、ポートプロファイルの設定を行う。そして、スイッチ４１〜４５は、ＶＤＰメッセージの転送元に応答を送信する。このため、スイッチ４１〜４５は、アップリンクとして外部ネットワーク４９と各サーバ５１〜５４との通信を中継する場合にも、適切にポートプロファイルの設定を行う事ができる。
【実施例３】
【０２７０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０２７１】
（１）経路選択について
上述した各スイッチ１〜５は、各メッセージに含まれる経路ＩＤを用いて、ポートプロファイルを更新すべき上位のスイッチを判定し、判定したスイッチに各メッセージを転送した。しかし、実施例はこれに限定されるものではなく、各スイッチ１〜５は、ポートプロファイルを更新すべきスイッチに対して各メッセージを転送することができれば、任意の手法を用いることができる。
【０２７２】
例えば、各スイッチ１〜５は、受信した各メッセージに含まれるＶＳＩＩＤを記憶していない場合は、自身よりも上位のスイッチに対して、受信したメッセージをブロードキャスト送信してもよい。このような場合には、ブロードキャスト送信されたメッセージを受信した上位のスイッチは、受信したメッセージが示すＶＳＩＩＤに基づいて、自身のポートプロファイルを更新すればよい。このような場合には、各スイッチ１〜５は、上位のスイッチを判定する処理をスキップできるので、上位のスイッチに対して迅速にポートプロファイルを自動設定できる。
【０２７３】
また、各スイッチ１〜５は、ＦＤＢ（Ｆｏｒｗａｒｄｉｎｇ  ＤａｔａＢａｓｅ）に、経路ＩＤを含めて一元管理する。そして、各スイッチ１〜５は、受信した各メッセージに含まれる経路ＩＤと対応付けて記憶されたＭＡＣアドレスとを宛先として、各メッセージを転送してもよい。すなわち、各スイッチ１〜５は、受信した各メッセージに含まれる経路ＩＤと、ＦＤＢとを用いて、各メッセージを転送すべき上位のスイッチを判定してもよい。このような場合には、各スイッチ１〜５は、経路テーブルを有する必要がないので、装置規模を削減することができる。
【０２７４】
また、各スイッチ１〜５は、仮想マシンが使用する仮想ネットワークを判別する情報、すなわち、ＶＬＡＮの情報を記憶する。そして、各スイッチ１〜５は、各メッセージのＶＳＩＩＤを用いて、移動対象となるＶＭが利用してたＶＬＡＮを判別し、判別したＶＬＡＮに係るスイッチへ各メッセージを転送する。このような場合には、各スイッチ１〜５は、ＶＬＡＮに基づく容易な処理で、各メッセージを転送すべき上位のスイッチを判定することができる。
【０２７５】
また、各スイッチ１〜５は、各メッセージを受信したポート番号に基づいて、各メッセージを転送する上位スイッチを選択してもよい。このような処理を実行した場合には、各スイッチ１〜５は、入力ポート番号に基づく容易な処理で、各メッセージを転送する上位のスイッチを判定することができる。
【０２７６】
また、各スイッチ１〜５は、各メッセージの送信元であるサーバやスイッチのＭＡＣアドレスやＩＰアドレスに基づいて、各メッセージの転送先となるスイッチを判定してもよい。各スイッチ１〜５は、各メッセージの送信元であるサーバやスイッチのＭＡＣアドレスやＩＰアドレスに基づいて、各メッセージの転送先を判定した場合には、決め細やかな経路選択を行うことができる。
【０２７７】
また、各スイッチ１〜５は、自身と接続されたスイッチやサーバに対して、あらかじめ優先度（Priority  Group）を設定する。例えば、各スイッチ１〜５は、トラフィックの種類に応じて、ストレージとして動作するネットワークに含まれるスイッチやサーバには「Priority  ３」を設定し、他のＬＡＮに含まれるスイッチやサーバには「Priority  ０」を設定する。そして、各スイッチ１〜５は、受信した各メッセージの送信元に設定された優先度が「Priority  ３」である場合には、「Priority  ３」の上位スイッチに各メッセージを転送する。また、各スイッチ１〜５は、受信した各メッセージの送信元に設定された優先度が「Priority  ０」である場合には、「Priority  ０」の上位スイッチに各メッセージを転送する。このような処理を実行する場合には、各スイッチ１〜５は、ポートプロファイルの更新対象となるネットワークの種別に応じて、上位スイッチを判定することができる。
【０２７８】
（２）ネットワークについて
上述した実施例では、スイッチ１〜５とサーバ１１〜１４をマルチパスで接続した例について説明した。しかし、実施例は、これに限定されるものではない。例えば、各スイッチおよび各サーバの数は、任意の数を適用することができる。また、各サーバ間の通信を中継するスイッチの数は、任意の段数を適用することができる。例えば、サーバ１１とサーバ１４との通信を５つのスイッチが中継し、サーバ１２とサーバ１３との通信を３つのスイッチが中継してもよい。
【０２７９】
（３）管理サーバについて
上述した実施例では、各サーバ１１〜１４は、管理サーバ１０の指示により、ライブマイグレーションを実行した。しかし、実施例はこれに限定されるものではなく、例えば、ライブマイグレーションを実行するたびに、管理者が管理用端末等から各サーバ１１〜１４に指示を送信してもよい。
【０２８０】
（４）各処理について
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０２８１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば受信部２２と判定部２３とを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０２８２】
（５）ＶＤＰメッセージを転送する上位のスイッチについて
上述したスイッチ４１〜４５は、受信したＶＤＰメッセージの種別と、移動するＶＭが所属するピングループのＶＭがピン接続するアップリンクに応じて、ＶＤＰメッセージを転送する上位のスイッチを選択した。しかし、実施例は、これに限定されるものではない。例えば、スイッチ４１〜４５は、ＶＤＰメッセージの種別に係らず、移動するＶＭが所属するピングループのＶＭがピン接続するアップリンクに応じて、ＶＤＰメッセージを転送する上位のスイッチを選択しても良い。
【０２８３】
具体的には、スイッチ４１〜４５は、ＶＤＰメッセージに含まれるＶＳＩＩＤがＶＳＩテーブルに記憶されていない場合には、移動対象となるＶＭが移動前にピン接続する変更前アップリンクと、移動後にピン接続する変更後アップリンクとを識別する。そして、スイッチ４１〜４５は、識別した変更前アップリンクと変更後アップリンクへデータを送信する経路上の上位スイッチへ、ＶＤＰメッセージを転送してもよい。
【０２８４】
すなわち、スイッチ４１〜４５は、移動対象となるＶＭのピングループに応じた上位スイッチのみに、ＶＤＰメッセージを転送するので、ファブリック４６内の余計なトラフィックを削減することができる。
【０２８５】
（６）他の情報を用いた上位のスイッチの選択について
上述したスイッチ１〜５およびスイッチ４１〜４５は、経路ＩＤやピングループの情報を用いて、ＶＤＰメッセージを転送する上位スイッチを選した。しかし、実施例は、これに限定されるものではない。例えば、各スイッチ４１〜４５は、異なるピングループのＶＭ同士が通信を行わない場合は、移動対象となるＶＭと同一のピングループに所属するＶＭがピン接続する上位スイッチのみにＶＤＰメセージを中継してもよい。
【０２８６】
また、スイッチ４１〜４５は、各ＶＭを使用しているクライアントの情報、すなわちテナント情報を用いて、ＶＤＰメッセージを転送する上位スイッチを選択してもよい。以下、テナント情報を用いてＶＤＰメッセージを転送するスイッチの一例を、図２８を用いて説明する。図２８は、バリエーションの一例を説明するための図である。
【０２８７】
図２８に示す例では、ファブリックは、上位スイッチ＃１、上位スイッチ＃２、下位スイッチ＃１、下位スイッチ＃２を有する。また、下位スイッチ＃１の配下には、ＶＭ＃１〜＃３が存在し、下位スイッチ＃２の配下には、ＶＭ＃４〜＃６が存在する。また、ＶＭ＃２〜ＶＭ＃５は、同一テナントのＶＭである。また、図２８に示す例では、ＶＭ＃２、ＶＭ＃３、ＶＭ＃５が上位スイッチ＃１にピン接続し、ＶＭ＃１、ＶＭ＃４が上位スイッチ＃２にピン接続する。
【０２８８】
そして、各スイッチ４１〜４５は、ＶＤＰメッセージを受信した場合は、移動対象となるＶＭと同一テナントのＶＭのｖＮＩＣ（Virtual  Network  Interface  Card）が、ピン接続しておらず、かつ、自身のｖＮＩＣがピン接続していない上位スイッチを識別する。そして、各スイッチ４１〜４５は、識別した上位スイッチ以外の上位スイッチに対して、ＶＤＰメッセージを転送する。なお、各スイッチ４１〜４５は、同一テナントのＶＭでも通信をする可能性がないｖＮＩＣ、例えば、下位スイッチの配下に存在するｖＮＩＣがピン接続している上位スイッチについても、選択しない。
【０２８９】
例えば、図２８に示す例では、下位スイッチ＃２は、ＶＭ＃５に係るＶＤＰメッセージを受信すると、上位スイッチ＃２に対して、ＶＭ＃５と同一のテナントのＶＭ＃２〜ＶＭ＃４のｖＮＩＣがピン接続していないと判別する。また、下位スイッチ＃２は、上位スイッチ＃２に対して、自身のｖＮＩＣが上位スイッチ＃２にピン接続していないと判別する。そして、下位スイッチ＃２は、ＶＤＰメッセージを上位スイッチ＃１にのみ転送する。この結果、下位スイッチ＃２は、上位スイッチ＃２に無駄なＶＤＰメッセージを転送せずとも、ポートプロファイルを適切に変更できるので、ファブリック内の無駄なトラフィックを削減することができる。
【０２９０】
（７）プログラム
ところで、実施例１に係る各スイッチ１〜５、および実施例２に係る各スイッチ４１〜４５は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをデータ中継装置が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図２９を用いて、制御部２０、制御部２０ａと同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２９は、中継プログラムを実行するコンピュータの一例を説明するための図である。
【０２９１】
図２９に例示されたコンピュータ１００は、ＲＡＭ（Random  Access  Memory）１０１、ＨＤＤ（Hard  Disk  Drive）１０２、ＲＯＭ（Read  Only  Memory）１０３、ＣＰＵ（Central  Processing  Unit）１０４を有する。ＨＤＤ１０２には、ＭＡＣテーブル１０２ａ、ポートプロファイルテーブル１０２ｂ、ＶＳＩテーブル１０２ｃ、経路テーブル１０２ｄが予め保存される。なお、各テーブル１０２ａ〜１０２ｄは、図５に例示する各テーブル１５〜１８と同様の情報を有するものとする。
【０２９２】
ＲＯＭ１０３には、中継プログラム１０３ａが格納されており、ＣＰＵ１０４が中継プログラム１０３ａを読み出して実行することによって、図２９に示す例では、中継プロセス１０４ａとして機能するようになる。なお、中継プロセス１０４ａは、図１に示した制御部２０と同様の機能を発揮するが、図２０に示した制御部２０ａと同様の機能を発揮させることもできる。
【０２９３】
なお、本実施例で説明した中継プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０２９４】
１〜５、４１〜４５  スイッチ
１０、５０  管理サーバ
１１〜１４、５１〜５４  サーバ
１１ａ  物理インタフェース
１１ｂ  仮想スイッチ
１１ｃ  ＣＰＵ
１１ｄ  ＶＭＭ
１１ｅ  メモリ
１１ｆ  仮想領域
１５  経路テーブル
１５ａ  ピングループ情報記憶部
１６  ＶＳＩテーブル
１７  ポートプロファイルテーブル
１８  ＭＡＣテーブル
１９  通信制御Ｉ／Ｆ部
２０ａ  制御部
２１ａ  メッセージ処理部
２２ａ  受信部
２３ａ  判定部
２４  実行部
２５ａ  転送部
２６  学習部
２７  スイッチング制御部
４０  情報処理システム
４９  外部ネットワーク
５０ａ  ピングループ情報
【図１】
0005776600.tif 000002
【図２】
0005776600.tif 000003
【図３】
0005776600.tif 000004
【図４】
0005776600.tif 000005
【図５】
0005776600.tif 000006
【図６】
0005776600.tif 000007
【図７】
0005776600.tif 000008
【図８】
0005776600.tif 000009
【図９Ａ】
0005776600.tif 000010
【図９Ｂ】
0005776600.tif 000011
【図９Ｃ】
0005776600.tif 000012
【図９Ｄ】
0005776600.tif 000013
【図９Ｅ】
0005776600.tif 000014
【図１０】
0005776600.tif 000015
【図１１Ａ】
0005776600.tif 000016
【図１１Ｂ】
0005776600.tif 000017
【図１１Ｃ】
0005776600.tif 000018
【図１１Ｄ】
0005776600.tif 000019
【図１１Ｅ】
0005776600.tif 000020
【図１２】
0005776600.tif 000021
【図１３】
0005776600.tif 000022
【図１４】
0005776600.tif 000023
【図１５Ａ】
0005776600.tif 000024
【図１５Ｂ】
0005776600.tif 000025
【図１６】
0005776600.tif 000026
【図１７】
0005776600.tif 000027
【図１８】
0005776600.tif 000028
【図１９】
0005776600.tif 000029
【図２０】
0005776600.tif 000030
【図２１】
0005776600.tif 000031
【図２２】
0005776600.tif 000032
【図２３】
0005776600.tif 000033
【図２４】
0005776600.tif 000034
【図２５】
0005776600.tif 000035
【図２６】
0005776600.tif 000036
【図２７Ａ】
0005776600.tif 000037
【図２７Ｂ】
0005776600.tif 000038
【図２８】
0005776600.tif 000039
【図２９】
0005776600.tif 000040
【図３０】
0005776600.tif 000041
【図３１】
0005776600.tif 000042