(57)【要約】  各スイッチブレードは、移動対象のＶＭが移動する移動先のＣＰＵサーバから、当該仮ＶＭに対応するポートプロファイル情報の設定要求を受信する。そして、各スイッチブレードは、ＶＭを識別するＶＳＩＩＤを記憶する記憶部に、受信した設定要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。続いて、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていると判定した場合、設定要求に応じた処理を実行する。さらに、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていないと判定した場合、自装置を介して移動先のＣＰＵサーバと接続される上位のデータ中継装置である外部スイッチに、設定要求を転送する。
2012093495.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する手順と
を実行させることを特徴とするプロファイル処理プログラム。
【請求項２】
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合に、前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信すると、当該削除要求に含まれる仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順をさらに実行させることを特徴とする請求項１に記載のプロファイル処理プログラム。
【請求項３】
前記判定する手順は、前記受信した設定要求がＰＲＡ−ＡＳＳＯＣメッセージである場合に、前記ＰＲＡ−ＡＳＳＯＣメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されているか否かを判定し、前記ＰＲＡ−ＡＳＳＯＣメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されていないと判定した後に受信したＡＳＳＯＣメッセージについては、前記仮想マシン識別子が記憶されているかの判定を実施することなく、前記データ中継装置に転送することを特徴とする請求項１に記載のプロファイル処理プログラム。
【請求項４】
コンピュータに、
前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する手順と
を実行させることを特徴とするプロファイル処理プログラム。
【請求項５】
前記仮想マシンが稼動するサーバから、当該サーバ内の仮想マシン間通信であっても外部のデータ中継装置で制御するＶＥＰＡで動作する旨の通知を受信した場合に、当該サーバ内の仮想マシン間通信は当該サーバ内で制御するＶＥＢで前記サーバが動作する旨の通知を、前記ＶＥＢで動作する前記データ中継装置に送信する手順をさらに実行させることを特徴とする請求項１または４に記載のプロファイル処理プログラム。
【請求項６】
データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記設定要求に応じた処理を実行する実行部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動先サーバと接続される上位のデータ中継装置に、前記設定要求を転送する転送部と
を有することを特徴とするデータ中継装置。
【請求項７】
データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する削除部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動元サーバと接続される上位のデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する転送部と
を有することを特徴とするデータ中継装置。
【請求項８】
コンピュータが実行する制御方法であって、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する
ことを特徴とするプロファイル制御方法。
【請求項９】
コンピュータが実行する制御方法に、
前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する
ことを特徴とするプロファイル制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロファイル処理プログラム、データ中継装置およびプロファイル制御方法に関する。
【背景技術】
【０００２】
従来、情報処理装置としてのサーバ上で、ＶＭ（Virtual  Machine：仮想マシン）といわれる仮想的なサーバを動作させるサーバ仮想化技術が知られている。サーバでは、ＶＭの生成などＶＭに関する各種制御を実施するＶＭＭ（Virtual  Machine  Monitor）が動作している。このＶＭＭは、例えばハイパーバイザなどと呼ばれ、サーバのメモリやＩＯ（Input／Output：入出力）などに関するハードウェア資源を管理する。【０００３】
サーバの仮想化技術に関する機能の一つとして、業務を停止させることなく、あるサーバで稼動中のＶＭを別のサーバに移動させるライブマイグレーション（Live  Migration）がある。このライブマイグレーションは、ＶＭの自由な移動が求められるクラウドデータセンター環境においても、利用されている。【０００４】
ライブマイグレーションによってＶＭを移動させる場合には、ＶＭの移動にあわせて、移動対象のＶＭに対応したポートプロファイルも移動させる。このポートプロファイルには、例えばＶＬＡＮ（Virtual  Local  Area  Network）やＱｏＳ（Quality  of  Service）などの情報が含まれる。このポートプロファイルの移動を自動化する手法としては、ＩＥＥＥ（The  Institute  of  Electrical  and  Electronics  Engineers,  Inc.）８０２．１Ｑｂｇで議論されているプロトコルがある。このプロトコルは、いわゆるＶＳＩ（Virtual  Station  Interface）発見プロトコルと呼ばれる。【０００５】
ここで、ＶＳＩ発見プロトコルを用いたポートプロファイルの自動設定（ＡＭＰＰ：Automated  Migration  of  Port  Profile）について説明する。図１７は、従来技術に係るポートプロファイルの自動化処理を示すシーケンス図である。図１７のシステム構成は、移動対象のＶＭが稼動している移動元サーバと、移動対象のＶＭの移動先である移動先サーバと、移動元サーバおよび移動先サーバと接続されるスイッチと、ＶＭのポートプロファイルを保持するポートプロファイルＤＢとを有する。【０００６】
図１７に示すように、移動先サーバは、管理者等の指示操作を受け付けると、新しいＶＭを自サーバ上に生成する（Ｓ１）。続いて、移動元サーバは、ライブマイグレーション指示を管理端末等から受け付けると（Ｓ２）、移動対象ＶＭが自サーバで動作している状態で、プレコピーを実施する（Ｓ３とＳ４）。具体的には、移動元サーバで動作するＶＭＭは、自身が利用しているメモリ内容を移動先サーバのＶＭＭに転送する。そして、移動元サーバのＶＭＭは、メモリの変更量に応じて、このプレコピーを繰り返す。【０００７】
プレコピーが開始されると、移動先サーバは、ＶＳＩ発見プロトコルのPRE-ASSOCメッセージをスイッチの移動先ポートに送信する（Ｓ５）。このメッセージを受信したスイッチは、移動対象ＶＭに対応したポートプロファイルをポートプロファイルＤＢから取得する（Ｓ６）。そして、スイッチは、PRE-ASSOCメッセージの応答として、PRE-ASSOC  CONFメッセージを移動先サーバに送信する（Ｓ７）。【０００８】
その後、移動元サーバは、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する（Ｓ８とＳ９）。具体的には、移動元サーバのＶＭＭは、移動対象ＶＭの業務を一時的に停止し、自身が利用しているメモリ内容を移動対象サーバのＶＭＭに転送する。なお、プレコピー実施中は、移動元サーバで移動対象ＶＭが稼動しており、当該ＶＭが停止した後にストップアンドコピーが実施される。【０００９】
ストップアンドコピーが開始されると、移動先サーバは、ＶＳＩ発見プロトコルのASSOCメッセージをスイッチの移動先ポートに送信する（Ｓ１０）。このメッセージを受信したスイッチは、PRE-ASSOCメッセージ受信時に取得したポートプロファイルを移動先ポートに適用する（Ｓ１１）。そして、移動先サーバは、ASSOCメッセージの応答として、ASSOC  CONFメッセージを移動先サーバに送信する（Ｓ１２）。なお、これ以降、移動対象ＶＭは移動先サーバ上で稼動する。【００１０】
一方で、移動元サーバは、ＶＳＩ発見プロトコルのDE-ASSOCメッセージをスイッチの移動元ポートに送信する（Ｓ１３）。このメッセージを受信したスイッチは、当該ＶＭに対応するポートプロファイルを移動元ポートから除去する（Ｓ１４）。そして、スイッチは、DE-ASSOCメッセージの応答として、DE-ASSOC  CONFメッセージを移動元サーバに送信する（Ｓ１５）。このようにして、ＶＭの移動およびポートプロファイルの自動設定が実行される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−１２４１２９号公報
【特許文献２】特開２０１０−１７６１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の技術では、複数段に構成されたスイッチにポートプロファイルを自動設定できないという問題があった。【００１３】
例えば、１つの筐体にブレードと呼ばれる抜き差し可能なサーバを複数搭載したブレードサーバに、ＶＳＩ発見プロトコルを適用した例について説明する。図１８は、従来技術に係るブレードサーバにおけるポートプロファイルの自動化を説明する図である。【００１４】
図１８に示すように、このシステムは、ブレードサーバ１と、ブレードサーバ２と、ブレードサーバ間を接続する外部スイッチ３とを有する。なお、ポートプロファイルＤＢサーバは、外部スイッチを介して各ブレードサーバと接続される。各ブレードサーバには、サーバ（ＣＰＵ（Central  Processing  Unit）サーバ）のネットワークを集約するスイッチブレードが搭載され、各ＣＰＵサーバは、スイッチブレードを経由して外部のネットワークや他のブレードサーバに接続する。つまり、図１８に示すシステムは、スイッチブレードと外部スイッチの複数段構成となっている。【００１５】
このようなシステムにおいて、ブレードサーバ１のＣＰＵサーバ１ａ上で動作するＶＭ（Ａ）を、ブレードサーバ１のＣＰＵサーバ１ｃに移動させる場合を示すＳ２０について説明する。この場合、ＣＰＵサーバ１ａとスイッチブレード１ｄとの間でPRE-ASSOCとASSOCがやり取りされ、ＣＰＵサーバ１ｃとスイッチブレード１ｄとの間でDE-ASSOCがやり取りされる。この結果、スイッチブレード１ｄは、ＶＭ（Ａ）に関するポートプロファイルを自動で取得し設定できる。この例のように、同じブレードサーバ内でＶＭを移動させる場合には、外部スイッチ３内のポートプロファイルを変更する必要がないので、各スイッチのポートプロファイルを自動設定できるといえる。【００１６】
次に、ブレードサーバ１のＣＰＵサーバ１ａ上で動作するＶＭ（Ａ）を、ブレードサーバ２のＣＰＵサーバ２ａに移動させる場合を示すＳ２１について説明する。この場合、ＣＰＵサーバ２ａとスイッチブレード２ｃとの間でPRE-ASSOCとASSOCがやり取りされ、ＣＰＵサーバ１ａとスイッチブレード１ｄとの間でDE-ASSOCがやり取りされる。この結果、スイッチブレード２ｃは、ＶＭ（Ａ）に関するポートプロファイルを自動で取得し設定できる。この例のように、ブレードサーバ間をまたがってＶＭを移動させる場合には、外部スイッチ３内のポートプロファイルを変更する必要がある。ところが、ＶＳＩ発見プロトコルは、ブレードサーバとスイッチブレードとの間で規定されるプロトコルである。つまり、サーバエッジがブレードサーバ内のＣＰＵサーバとスイッチブレードとの間に存在することになる。したがって、ＶＳＩ発見プロトコルを用いても外部スイッチ内のポートプロファイルを自動設定することができない。【００１７】
一般的には、スイッチブレード１ｄがネットワーク管理システム等にＶＭ移動を通知し、ネットワーク管理システムが外部スイッチ３のポートプロファイル設定を実行することが考えられる。ところが、この手法では、ポートプロファイル設定機能を有するネットワーク管理システムを新たに構築したりすることになるので、コストもかかり現実的ではない。【００１８】
１つの側面では、複数段に構成されたスイッチにポートプロファイルを自動設定できるプロファイル処理プログラム、データ中継装置およびプロファイル制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
第１の案では、コンピュータに、移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する手順を実行させる。また、前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順を実行させる。さらに、前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行する手順を実行させる。そして、前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する手順を実行させる。【００２０】
第２の案では、コンピュータに、前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する手順を実行させる。また、前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順を実行させる。また、前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順を実行させる。さらに、前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する手順を実行させる。
【発明の効果】
【００２１】
複数段に構成されたスイッチにポートプロファイルを自動設定できる。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施例１に係るシステムの全体構成を示す図である。
【図２】図２は、実施例１に係るＣＰＵサーバの構成を示すブロック図である。
【図３】図３は、実施例１に係るスイッチブレードの構成を示すブロック図である。
【図４】図４は、ポートプロファイルテーブルに記憶される情報の例を示す図である。
【図５】図５は、ＶＳＩテーブルに記憶される情報の例を示す図である。
【図６】図６は、ＭＡＣテーブルに記憶される情報の例を示す図である。
【図７】図７は、ＶＳＩ発見プロトコルで用いられるメッセージの例を示す図である。
【図８】図８は、ブレードサーバをまたがってＶＭが移動する場合のシーケンス図である。
【図９】図９は、要求メッセージ受信時の処理の流れを示すフローチャートである。
【図１０】図１０は、要求メッセージ処理の流れを示すフローチャートである。
【図１１】図１１は、実施例２に係るシステムの全体構成を示す図である。
【図１２】図１２は、実施例２に係るスイッチブレードの構成を示すブロック図である。
【図１３】図１３は、実施例２に係るスイッチブレードが実行するＥＤＣＰメッセージ受信時の処理の流れを示すフローチャートである。
【図１４】図１４は、ＥＶＢ発見プロトコルで用いられるＥＤＣＰメッセージの例を示す図である。
【図１５】図１５は、実施例２に係るスイッチブレードが実行するＥＤＣＰメッセージ拡張処理の流れを示すフローチャートである。
【図１６】図１６は、プロトコル拡張処理プログラムを実行するコンピュータの例を示す図である。
【図１７】図１７は、従来技術に係るポートプロファイルの自動化処理を示すシーケンス図である。
【図１８】図１８は、従来技術に係るブレードサーバにおけるポートプロファイルの自動化を説明する図である。
【発明を実施するための形態】
【００２３】
以下に、本発明にかかるプロファイル処理プログラム、データ中継装置およびプロファイル制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２４】
［全体構成］
図１は、実施例１に係るシステムの全体構成を示す図である。図１に示すように、このシステムは、ブレードサーバ１０と、ブレードサーバ４０と、外部スイッチ６０と、ポートプロファイルＤＢ（データベース）サーバ５とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。【００２５】
ポートプロファイルＤＢサーバ５は、各ブレードサーバで稼動するＶＭ（Virtual  Machine：仮想マシン）に対応付けて、ＶＭの動作環境等を記憶する。例えば、ポートプロファイルＤＢサーバ５は、ＶＭに対応したＶＬＡＮ（Virtual  Local  Area  Network）、ＱｏＳ（Quality  of  Service）、割り当てられた帯域などの情報を記憶する。【００２６】
ブレードサーバ１０やブレードサーバ４０は、ブレード（Blade）と呼ばれる抜き差し可能なサーバを筐体内に複数搭載するサーバである。例えば、ブレードサーバ１０は、図１に示すように、ＣＰＵ（Central  Processing  Unit）サーバ１１〜１３とスイッチブレード２０とを有し、ブレードサーバ４０は、ＣＰＵサーバ４１とＣＰＵサーバ４２と、スイッチブレード５０とを有する。なお、図１に示したブレードサーバ１０やブレードサーバ４０が有するサーバの台数等はこれに限定されるものではなく、例えばＩＯ（Input／Output：入出力）ボートなど他のボードを有していてもよい。【００２７】
各ブレードサーバが有するＣＰＵサーバは、上記抜き差し可能なサーバであり、ハイパーバイザなどと呼ばれるＶＭＭ（Virtual  Machine  Monitor）を実行して、ＶＭを動作させる。例えば、各ＣＰＵサーバは、ＶＭＭによって、ＶＭや仮想スイッチを動作させて、他のＣＰＵサーバや他のＶＭとの間でデータのやり取り等を実行する。なお、図１では、一例として、ブレードサーバ１０のＣＰＵサーバ１１では、ＶＭ１とＶＭ２が動作し、ＣＰＵサーバ１２では、ＶＭ３とＶＭ４が動作し、ＣＰＵサーバ１３では、ＶＭ５とＶＭ６が動作している。また、ブレードサーバ４０のＣＰＵサーバ４１では、ＶＭ７とＶＭ８が動作し、ＣＰＵサーバ４２では、ＶＭ９が動作している。【００２８】
各ブレードサーバが有するスイッチブレードは、イーサネット（登録商標）やファイバチャネルなどの転送方式を用いて、ブレードサーバ内の通信やブレードサーバ間の通信を制御する。例えば、スイッチブレード２０は、ＣＰＵサーバ１１のＶＭ１とＣＰＵサーバ１３のＶＭ５との間でやり取りされるデータを中継し、ブレードサーバ内の通信を制御する。また、スイッチブレード２０やスイッチブレード５０は、外部スイッチ６０を介して、ＣＰＵサーバ１２のＶＭ３とＣＰＵサーバ４１のＶＭ７との間でやり取りされるデータを中継し、ブレードサーバ間の通信を制御する。【００２９】
外部スイッチ６０は、各ブレードサーバ内のスイッチブレードと接続され、ブレードサーバ間の通信を制御するレイヤ２スイッチなどのデータ中継装置である。例えば、外部スイッチ６０は、スイッチブレード２０や５０などと同様の機能を有し、スイッチブレード２０とスイッチブレード５０との間でやり取りされるデータを中継する。【００３０】
上述したように、各ＣＰＵサーバは、スイッチブレードを経由して外部のネットワークや他のブレードサーバに接続する。つまり、図１に示すシステムは、スイッチブレードと外部スイッチとの複数段構成となっている。【００３１】
このようなシステム構成において、各スイッチブレードは、移動対象のＶＭが移動する移動先のＣＰＵサーバから、当該仮ＶＭに対応するポートプロファイル情報の設定要求を受信する。そして、各スイッチブレードは、ＶＭを識別するＶＳＩ（Virtual  Station  Interface）ＩＤを記憶する記憶部に、受信した設定要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。続いて、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていると判定した場合、設定要求に応じた処理を実行する。さらに、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていないと判定した場合、自装置を介して移動先のＣＰＵサーバと接続される上位のデータ中継装置である外部スイッチ６０に、設定要求を転送する。【００３２】
また、各スイッチブレードは、ＶＭが稼動する移動元のＣＰＵサーバから、当該ＶＭに対応するポートプロファイル情報の削除要求を受信する。続いて、各スイッチブレードは、ＶＭを識別するＶＳＩＩＤを記憶する記憶部に、受信した削除要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。そして、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていると判定した場合、ＶＳＩＩＤに対応付けて記憶部に記憶されるポートプロファイルを削除する。一方、各スイッチブレードは、受信したＶＳＩＩＤが記憶部に記憶されていないと判定した場合、自装置を介して移動元のＣＰＵサーバと接続される上位のデータ中継装置である外部スイッチ６０に削除要求を転送するか、または、削除要求を破棄する。【００３３】
このように、各スイッチブレードは、ＶＭのライブマイグレーションがブレードサーバ内の移動であると判定した場合には、自装置内でプロファイルの設定処理または削除処理を実行する。また、各スイッチブレードは、ＶＭのライブマイグレーションがブレードサーバをまたがった移動であると判定した場合には、設定要求または削除要求を外部スイッチ６０に転送する。これらの要求を受信した外部スイッチ６０では、各スイッチブレードと同様に、設定処理または削除処理を実行する。【００３４】
つまり、ＣＰＵサーバとスイッチブレードとの間でやり取りされる、例えばＶＳＩ発見プロトコルに関する各種メッセージを外部スイッチ６０まで拡張させる。このため、ブレードサーバをまたがったＶＭ移動の場合には、ブレードサーバの端点、言い換えるとブレードサーバと外部スイッチとの間をサーバエッジとすることができる。【００３５】
この結果、ブレードサーバ内の移動の場合は、各スイッチブレードとＣＰＵサーバとの間でＶＳＩ発見プロトコルに関する各種メッセージをやり取りするので、各スイッチブレードにポートプロファイルを自動設定できる。また、ブレードサーバをまたがった移動の場合は、ＣＰＵサーバと外部スイッチ６０との間でＶＳＩ発見プロトコルに関する各種メッセージをやり取りするので、外部スイッチ６０にポートプロファイルを自動設定できる。したがって、スイッチを複数段構成にした場合であっても、スイッチにポートプロファイルを自動設定できる。【００３６】
［各装置の構成］
次に、図１に示した各装置の構成について説明する。なお、各ＣＰＵサーバは同様の機能を有するので、ここではＣＰＵサーバ１１について説明する。また、スイッチブレード２０とスイッチブレード５０と外部スイッチ６０も同様の機能を有するので、ここではスイッチブレード２０について説明する。【００３７】
（ＣＰＵサーバの構成）
図２は、実施例１に係るＣＰＵサーバの構成を示すブロック図である。図２に示すように、ＣＰＵサーバ１１は、物理インタフェース１１ａと、仮想スイッチ１２ａと、仮想領域１３ａと、メモリ１４ａと、ＣＰＵ１５ａとを有する。なお、ここで示したＣＰＵサーバの構成等はあくまで例示であり、これに限定されるものではなく、例えば、ＳＣ（システムコントローラー）やＭＡＣ（メモリアクセスコントローラー）などを有していてもよい。【００３８】
物理インタフェース１１ａは、少なくとも１つのポートを有し、他のサーバやＶＭとの通信を制御するネットワークインタフェースカード（ＮＩＣ）である。例えば、物理インタフェース１１ａは、スイッチブレード２０にＶＳＩ発見プロトコルのPRE-ASSOCメッセージ、ASSOCメッセージ、DE-ASSOCメッセージを送信する。また、物理インタフェース１１ａは、スイッチブレード２０を介して、ＶＳＩ発見プロトコルのPRE-ASSOC  CONFメッセージ、ASSOC  CONFメッセージ、DE-ASSOC  CONFメッセージを受信する。【００３９】
仮想スイッチ１２ａは、後述するＶＭＭ１６ａによって仮想的に生成されたスイッチであり、ＶＭ間の通信やＶＭと外部との通信を制御する。例えば、ＣＰＵサーバ１１で動作するＶＭ１が、ＣＰＵサーバ１２で動作するＶＭ３宛のデータを送信した場合、仮想スイッチ１２ａは、このデータを受信して物理インタフェース１１ａに出力する。また、ＣＰＵサーバ１２で動作するＶＭ３が、ＣＰＵサーバ１１で動作するＶＭ１宛のデータを送信した場合、仮想スイッチ１２ａは、物理インタフェース１１ａを介してこのデータを受信してＶＭ１に出力する。こうして、ＶＭ１とＶＭ３は、互いに通信が実行できる。【００４０】
仮想領域１３ａは、後述するＶＭＭ１６ａが生成するＶＭを動作させる領域であり、任意の数のＶＭを起動することができる。例えば、仮想領域１３ａでは、仮想サーバであるＶＭ１およびＶＭ２と、ＶＭ１やＶＭ２などの仮想サーバを管理する管理ドメインである管理ＶＭが実行される。なお、各ＶＭは、仮想メモリや仮想プロセッサを利用して処理を実行する。例えば、仮想メモリは、メモリ１４ａにおける所定領域をＶＭが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、ＣＰＵ１５ａにおける所定処理能力をＶＭが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。【００４１】
メモリ１４ａは、後述するＣＰＵ１５ａによる各種処理に必要なデータおよびプログラムを格納する半導体メモリ素子などの記憶装置であり、例えば仮想メモリ等の割当などにも利用される。【００４２】
ＣＰＵ１５ａは、ＯＳ（Operating  System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともにＶＭＭ１６ａを有し、各種処理を実行する。【００４３】
ＶＭＭ１６ａは、ＶＭの作成、削除、起動、停止などＶＭに関する各種制御を実施するソフトウェアであり、例えばライブマイグレーションを実行する。例えば、ＶＭＭ１６ａは、管理者端末等からＶＭ作成指示を受信した場合には、仮想領域１３ａにＶＭを作成し、管理者端末等からＶＭ削除指示を受信した場合には、該当ＶＭを仮想領域１３ａから削除する。また、ＶＭＭ１６ａは、管理者端末等からＶＭ起動指示を受信した場合には、仮想領域１３ａ上の該当ＶＭを起動し、管理者端末等からＶＭ停止指示を受信した場合には、仮想領域１３ａ上の該当ＶＭを停止する。【００４４】
また、ＶＭＭ１６ａは、他のＣＰＵサーバからプレコピーを受信した場合には、当該他のＣＰＵサーバと連動してプレコピーを実行する。さらに、ＶＭＭ１６ａは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのPRE-ASSOCメッセージをスイッチブレード２０に送信する。その後、ＶＭＭ１６ａは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのPRE-ASSOC  CONFメッセージを受信する。【００４５】
また、ＶＭＭ１６ａは、他のＣＰＵサーバからストップアンドコピーを受信した場合には、当該他のＣＰＵサーバと連動してストップアンドコピーを実行する。さらに、ＶＭＭ１６ａは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのASSOCメッセージをスイッチブレード２０に送信する。その後、ＶＭＭ１６ａは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのASSOC  CONFメッセージを受信する。【００４６】
また、ＶＭＭ１６ａは、管理者端末等からＶＭの削除指示を受信した場合には、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのDE-ASSOCメッセージをスイッチブレード２０に送信する。その後、ＶＭＭ１６ａは、物理インタフェース１１ａを介して、ＶＳＩ発見プロトコルのDE-ASSOC  CONFメッセージを受信する。【００４７】
（スイッチブレードの構成）
図３は、実施例１に係るスイッチブレードの構成を示すブロック図である。図３に示すように、スイッチブレード２０は、通信制御Ｉ／Ｆ部２１と、ポートプロファイルテーブル２２と、ＶＳＩテーブル２３と、ＭＡＣ（Media  Access  Control）テーブル２４と、制御部２５とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。【００４８】
通信制御Ｉ／Ｆ部２１は、少なくとも１つのポートを有し、他のサーバとの通信や外部スイッチ６０との通信を制御するＮＩＣである。例えば、通信制御Ｉ／Ｆ部２１は、ＣＰＵサーバ１１や他のＣＰＵサーバから、PRE-ASSOCメッセージやASSOCメッセージ、DE-ASSOCメッセージを受信して、制御部２５に出力する。また、通信制御Ｉ／Ｆ部２１は、制御部２５から出力された、PRE-ASSOC  CONFメッセージ、ASSOC  CONFメッセージ、DE-ASSOC  CONFメッセージを要求元のＣＰＵサーバに送信する。また、通信制御Ｉ／Ｆ部２１は、外部スイッチ６０から送信された、PRE-ASSOC  CONFメッセージ、ASSOC  CONFメッセージ、DE-ASSOC  CONFメッセージを要求元のＣＰＵサーバに転送する。【００４９】
ポートプロファイルテーブル２２は、外部スイッチ６０を介して接続されるポートプロファイルＤＢサーバ５から取得された情報をキャッシュする記憶部である。ポートプロファイルテーブル２２が記憶する情報は、後述する実行部２６ｃによって格納または削除される。図４は、ポートプロファイルテーブルに記憶される情報の例を示す図である。図４に示すように、ポートプロファイルテーブル２２は、「ポートプロファイルＩＤ、ＶＬＡＮ、帯域情報」として「１、ＶＬＡＮ１００、１００ＭＢ」や「２、ＶＬＡＮ２００、５０ＭＢ」などと記憶する。なお、ポートプロファイルテーブル２２が記憶する情報は、図４に示した情報に限定されるものではなく、任意に追加または削除することができる。【００５０】
ここで記憶される「ポートプロファイルＩＤ」は、ポートプロファイルを識別する識別子であり、「ＶＬＡＮ」は、プロファイルが設定されるポートが属するＶＬＡＮを示し、「帯域情報」は、当該ポートに割り当てられた帯域を示す。図４の場合、ポートプロファイルＩＤ＝１のポートプロファイルは、ＶＬＡＮ１００のＶＬＡＮを用いた１００ＭＢの帯域幅をポートに設定することを示す。つまり、このポートを使用するＶＭは、ＶＬＡＮ１００のＶＬＡＮを用いた１００ＭＢの帯域幅で通信する。【００５１】
同様に、ポートプロファイルＩＤ＝２のポートプロファイルは、ＶＬＡＮ２００のＶＬＡＮを用いた５０ＭＢの帯域幅をポートに設定することを示す。つまり、このポートを使用するＶＭは、ＶＬＡＮ２００のＶＬＡＮを用いた５０ＭＢの帯域幅で通信する。【００５２】
ＶＳＩテーブル２３は、ポートプロファイルの割当情報を記憶する。ＶＳＩテーブル２３が記憶する情報は、後述する実行部２６ｃによって格納または削除される。図５は、ＶＳＩテーブルに記憶される情報の例を示す図である。図５に示すように、ＶＳＩテーブル２３は、「ＶＳＩＩＤ、ポートプロファイルＩＤ、ＶＳＩ  Ｓｔａｔｅ、ポート番号」を対応付けて記憶する。なお、ＶＳＩテーブル２３が記憶する情報は、図５に示した情報に限定されるものではなく、任意に追加または削除することができる。【００５３】
ここで記憶される「ＶＳＩＩＤ」は、ＶＭを識別する識別子であり、「ポートプロファイルＩＤ」は、適用されるポートプロファイルを識別する識別子である。また、「ＶＳＩ  Ｓｔａｔｅ」は、ポートプロファイルの状態を示し、「ポート番号」は、ポートプロファイルが割り当てられたポート番号、つまり、ＶＭが使用するポート番号を示す。【００５４】
図５の場合、ＶＭ１が使用するポートがＰ１であり、ＶＭ１に対応するポートプロファイルＩＤ＝１のポートプロファイルがポートプロファイルＤＢサーバ５から取得済みの状態である。同様に、ＶＭ２が使用するポートがＰ１であり、ＶＭ２に対応するポートプロファイルＩＤ＝１のポートプロファイルがポートプロファイルＤＢサーバ５から取得済みの状態である。また、ＶＭ３が使用するポートがＰ２であり、ＶＭ３に対応するポートプロファイルＩＤ＝２のポートプロファイルがＰ２に割当済みの状態である。【００５５】
ＭＡＣテーブル２４は、後述する学習部２７によって動的に学習されたＣＰＵサーバのＭＡＣアドレス、ＶＬＡＮ、ポート番号を記憶する。ＭＡＣテーブル２４が記憶する情報は、後述する学習部２７によって格納または削除される。図６は、ＭＡＣテーブルに記憶される情報の例を示す図である。図６に示すように、ＭＡＣテーブル２４は、「ＭＡＣアドレス、ＶＬＡＮ  ＩＤ、ポート番号」として「Ｘ、ＶＬＡＮ１００、Ｐ３」や「Ｙ、ＶＬＡＮ２００、Ｐ１」などを記憶する。なお、ＭＡＣテーブル２４が記憶する情報は、図６に示した情報に限定されるものではなく、任意に追加または削除することができる。【００５６】
ここで記憶される「ＭＡＣアドレス」は、通信制御Ｉ／Ｆ部２１を介して受信したデータ（パケット）に含まれる送信元のＭＡＣアドレスであり、学習されたＭＡＣアドレスである。「ＶＬＡＮ  ＩＤ」は、通信制御Ｉ／Ｆ部２１を介して受信したパケットに含まれるＶＬＡＮを識別する識別子である。「ポート番号」は、パケットを受信した通信制御Ｉ／Ｆ部２１のポート番号であり、これによってサーバがどのポート番号に接続されているのかを認識できる。【００５７】
図６の場合、アドレスをＸとするサーバが、ＶＬＡＮ１００が割り当てられたＰ３に接続される。つまり、送信先がアドレスＸであるデータは、ＶＬＡＮ１００が割り当てられたポート番号Ｐ３から送信される。同様に、アドレスをＹとするサーバが、ＶＬＡＮ２００が割り当てられたＰ１に接続される。つまり、送信先がアドレスＹであるデータは、ＶＬＡＮ２００が割り当てられたポート番号Ｐ１から送信される。【００５８】
図３に戻り、制御部２５は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などの電子回路である。この制御部２５は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、メッセージ処理部２６と学習部２７とスイッチング制御部２８とを有し、これらによって各種処理を実行する。【００５９】
メッセージ処理部２６は、受信部２６ａと判定部２６ｂと実行部２６ｃと転送部２６ｄとを有し、ＣＰＵサーバから受信したＶＳＩ発見プロトコルに準拠したメッセージに応じた各種処理を実行する。【００６０】
受信部２６ａは、移動対象のＶＭが移動する移動先のＣＰＵサーバから、当該ＶＭに対応するポートプロファイル情報の設定要求を受信する。また、受信部２６ａは、ＶＭが稼動する移動元のＣＰＵサーバから、当該ＶＭに対応するポートプロファイル情報の削除要求を受信する。【００６１】
例えば、受信部２６ａは、ＶＭの移動先となるＣＰＵサーバからPRE-ASSOCメッセージを受信した場合には、当該メッセージを判定部２６ｂに出力する。同様に、受信部２６ａは、ＶＭの移動元であるＣＰＵサーバからDE-ASSOCメッセージを受信した場合には、当該メッセージを判定部２６ｂに出力する。また、受信部２６ａは、ＶＭの移動先となるＣＰＵサーバからASSOCメッセージを受信した場合には、当該メッセージを判定部２６ｂに出力する。【００６２】
また、受信部２６ａは、外部スイッチ６０からPRE-ASSOC  CONFメッセージを受信した場合には、当該メッセージを転送部２６ｄに出力する。同様に、受信部２６ａは、外部スイッチ６０からASSOC  CONFメッセージやDE-ASSOC  CONFメッセージを受信した場合には、当該メッセージを転送部２６ｄに出力する。【００６３】
一例として、受信部２６ａは、図７に示したＴＬＶ（Type  Length  Value）フォーマットで規定されるメッセージを受信する。図７は、ＶＳＩ発見プロトコルで用いられるメッセージの例を示す図である。図７に示すメッセージフォーマットは、１６ビットのＴＬＶヘッダーに、メッセージの詳細情報であるTLV  Information  Stringが付加されている。受信部２６ａは、TLV  Information  String内に２オクテットで規定される「Mode」が「PRE-ASSOC」か「ASSOC」か「DE-ASSOC」かによってメッセージの種別を判定する。【００６４】
なお、図７に示したメッセージにおいて、TLV  Information  String内に８オクテットで規定される「Port  Profile  Instance  ID」には、「ＶＳＩＩＤ」が格納される。また、図７に示したメッセージにおいて、TLV  Information  String内に４オクテットで規定される「Port  Profile  ID」には、「ポートプロファイルＩＤ」が格納される。【００６５】
判定部２６ｂは、ＶＭを識別するＶＳＩＩＤを記憶するＶＳＩテーブル２３に、受信部２６ａが受信した設定要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。また、判定部２６ｂは、ＶＭを識別するＶＳＩＩＤを記憶するＶＳＩテーブル２３に、受信部２６ａが受信した削除要求に含まれるＶＳＩＩＤが記憶されているか否かを判定する。【００６６】
例えば、判定部２６ｂは、図７に示したメッセージの「Mode」に「PRE-ASSOC」、「ASSOC」、「DE-ASSOC」が記載されたメッセージが受信された場合、当該メッセージの「Port  Profile  Instance  ID」に格納されているＶＳＩＩＤを取得する。続いて、判定部２６ｂは、メッセージから取得したＶＳＩＩＤがＶＳＩテーブル２３に格納されているか否かを判定する。そして、判定部２６ｂは、ＶＳＩＩＤがＶＳＩテーブル２３に格納されている場合には、ＶＭの移動が同一ブレードサーバ（シャーシ）内の移動であると判定して、当該メッセージを実行部２６ｃに出力する。一方、判定部２６ｂは、ＶＳＩＩＤがＶＳＩテーブル２３に格納されていない場合には、ＶＭの移動がブレードサーバ（シャーシ）をまたがった移動であると判定して、当該メッセージを転送部２６ｄに出力する。【００６７】
なお、判定部２６ｂは、PRE-ASSOCメッセージに含まれるＶＳＩＩＤが格納されていると判定した場合に、当該ＶＳＩＩＤと判定結果とを対応付けてメモリ等に格納する。そして、この状態で、判定部２６ｂは、メモリ等に判定結果が保持されるＶＳＩＩＤが含まれるASSOCやDE-ASSOCメッセージを受信した場合、ＶＳＩＩＤが記憶されているか否かの判定を実行せずに、当該メッセージを実行部２６ｃに出力することもできる。つまり、判定部２６ｂは、同一ブレードサーバ内の移動であると判定している状態でASSOCやDE-ASSOCメッセージを受信するので、削除対象のＶＭの同一ブレードサーバ内で動作していると判定し、当該メッセージを実行部２６ｃに出力する。【００６８】
同様に、判定部２６ｂは、PRE-ASSOCメッセージに含まれるＶＳＩＩＤが格納されていないと判定した状態で、ASSOCやDE-ASSOCメッセージを受信した場合、ＶＳＩＩＤの判定を実行せずに、当該メッセージを外部スイッチ６０に出力することもできる。【００６９】
実行部２６ｃは、受信されたメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル２３に記憶されていると判定した場合、設定要求に応じた処理を実行する。例えば、実行部２６ｃは、PRE-ASSOCメッセージに含まれるＶＳＩＩＤが記憶されていると判定された場合には、当該ＶＳＩＩＤに対応するポートプロファイルをポートプロファイルＤＢサーバ５から取得して、ポートプロファイルテーブル２２に格納する。さらに、実行部２６ｃは、取得したポートプロファイルのＩＤと、メッセージが受信されたポート番号と、当該メッセージに含まれるＶＳＩＩＤとを対応付けてＶＳＩテーブル２３に格納し、「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」に設定する。そして、実行部２６ｃは、PRE-ASSOCメッセージの応答として、PRE-ASSOCメッセージの送信元サーバに、ポートプロファイルを格納したことを示すPRE-ASSOC  CONFメッセージを送信する。【００７０】
その後、実行部２６ｃは、受信部２６ａからASSOCメッセージを受信した場合には、当該ＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル２３から特定する。続いて、実行部２６ｃは、特定したポートプロファイルの「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」から「ＡＣＴＩＶＥ」に変更する。そして、実行部２６ｃは、ASSOCメッセージの応答として、ASSOCメッセージの送信元サーバに、ポートプロファイルの設定変更が完了したことを示すASSOC  CONFメッセージを送信する。【００７１】
また、実行部２６ｃは、DE-ASSOCメッセージに含まれるＶＳＩＩＤが判定部２６ｂによって記憶されていると判定された場合には、当該メッセージに含まれるＶＳＩＩＤを抽出する。そして、実行部２６ｃは、抽出したＶＳＩＩＤに対応するポートプロファイルをＶＳＩテーブル２３から特定し、特定したポートプロファイルを削除する。そして、実行部２６ｃは、DE-ASSOCメッセージの応答として、DE-ASSOCメッセージの送信元サーバに、ポートプロファイルの削除が完了したことを示すDE-ASSOC  CONFメッセージを送信する。【００７２】
転送部２６ｄは、判定部２６ｂによってＶＭの移動がシャーシをまたがった移動であると判定された場合には、受信部２６ａが受信したメッセージを外部スイッチ６０に転送する。また、転送部２６ｄは、受信部２６ａが外部スイッチ６０から受信した応答メッセージを転送する。【００７３】
例えば、転送部２６ｄは、シャーシをまたがった移動であると判定部２６ｂが判定したPRE-ASSOCメッセージ、ASSOCメッセージ、DE-ASSOCメッセージを受信した場合には、当該メッセージを外部スイッチ６０に転送する。【００７４】
また、転送部２６ｄは、受信部２６ａによってPRE-ASSOC  CONFメッセージが受信された場合、PRE-ASSOCメッセージを送信したＣＰＵサーバに、PRE-ASSOC  CONFメッセージを転送する。同様に、転送部２６ｄは、受信部２６ａによってASSOC  CONFメッセージが受信された場合、ASSOCメッセージを送信したＣＰＵサーバに、ASSOC  CONFメッセージを転送する。転送部２６ｄは、受信部２６ａによってDE-ASSOC  CONFメッセージが受信された場合、DE-ASSOCメッセージを送信したＣＰＵサーバに、DE-ASSOC  CONFメッセージを転送する。【００７５】
なお、受信部２６ａは、PRE-ASSOCメッセージなどの要求メッセージと、要求メッセージから取得した送信元とを対応付けてメモリ等に格納しておく。こうすることで、例えば、実行部２６ｃや転送部２６ｄは、応答メッセージの送信元、言い換えると、要求メッセージの送信先を特定できる。例えば、転送部２６ｄは、応答メッセージとしてPRE-ASSOC  CONFメッセージを受信した場合に、PRE-ASSOCメッセージに対応する送信元をメモリ等から特定し、特定した送信元にPRE-ASSOC  CONFメッセージを送信できる。その後、転送部２６ｄは、PRE-ASSOCメッセージに対応する送信元をメモリ等から削除してもよい。【００７６】
また、受信部２６ａは、PRE-ASSOCメッセージなどの要求メッセージと送信元と、さらに、要求メッセージから取得したＶＳＩＩＤとを対応付けてメモリ等に格納しておく。こうすることで、ＶＭの移動が複数同時に発生した場合であっても、ＶＳＩＩＤによってどのＶＭの移動かを特定することができるので、応答メッセージを送信元に送信することができる。【００７７】
図３に戻り、学習部２７は、ＣＰＵサーバ等のＭＡＣアドレスを学習する。例えば、学習部２７は、ＭＡＣアドレスがアドレスＺであるＣＰＵサーバから、ポート番号Ｐ５を介して、ＶＬＡＮＩＤ＝ＶＬＡＮ３００の通信でデータを受信した場合、「アドレスＺ、ＶＬＡＮ３００、Ｐ５」をＭＡＣテーブル２４に記憶する。【００７８】
スイッチング制御部２８は、通信制御Ｉ／Ｆ部２１によって受信されたデータのスイッチング制御を実行する。例えば、スイッチング制御部２８は、受信されたデータの宛先のＭＡＣアドレスがＭＡＣテーブル２４に記憶されているか否かを判定する。そして、スイッチング制御部２８は、ＭＡＣアドレスがＭＡＣテーブル２４に記憶されている場合、当該ＭＡＣアドレスに対応付けられているポート番号を有するポートから、受信したデータを送信する。一方、スイッチング制御部２８は、ＭＡＣアドレスがＭＡＣテーブル２４に記憶されていない場合、全てのポートから当該データを送信するフラッディングを実行する。【００７９】
［処理の流れ］
次に、実施例１に係るシステムで実行される処理の流れを説明する。ここでは、シャーシをまたがってＶＭが移動する場合のシーケンス、スイッチにおける要求メッセージ受信時の処理の流れ、要求メッセージ処理の流れを説明する。【００８０】
（シャーシをまたがってＶＭが移動する場合のシーケンス）
図８は、ブレードサーバをまたがってＶＭが移動する場合のシーケンス図である。ここでは、図１に示したＣＰＵサーバ１１からＣＰＵサーバ４１へＶＭを移動させる場合を例にして説明する。つまり、移動元サーバをＣＰＵサーバ１１、移動先サーバをＣＰＵサーバ４１とする。また、移動元スイッチブレードは、ＣＰＵサーバ１１と同一ブレードサーバ内にあるスイッチブレード２０であり、移動先スイッチブレードは、ＣＰＵサーバ４１と同一ブレードサーバ内にあるスイッチブレード５０であるとする。【００８１】
このような状況において、図８に示すように、ＣＰＵサーバ４１のＶＭＭは、管理者等の指示操作を受け付けると、新しいＶＭを自サーバ上に生成する（Ｓ１０１）。続いて、ＣＰＵサーバ１１のＶＭＭは、ライブマイグレーション指示を管理端末等から受け付けると（Ｓ１０２）、移動対象ＶＭが自サーバで動作している状態で、プレコピーを実施する（Ｓ１０３とＳ１０４）。【００８２】
プレコピーが開始されると、ＣＰＵサーバ４１のＶＭＭは、ＶＳＩ発見プロトコルのPRE-ASSOCメッセージをスイッチブレード５０に送信する（Ｓ１０５）。スイッチブレード５０の判定部は、受信部が受信したPRE-ASSOCメッセージに含まれるＶＳＩＩＤに基づいて、ブレードサーバをまたがったＶＭ移動であると判定し、転送部は、受信されたPRE-ASSOCメッセージを外部スイッチ６０に転送する（Ｓ１０６）。【００８３】
メッセージが転送された外部スイッチ６０の実行部は、PRE-ASSOCメッセージに含まれるＶＳＩＩＤに対応したポートプロファイルをポートプロファイルＤＢサーバ５から取得して、ポートプロファイルテーブル２２に格納する（Ｓ１０７）。そして、外部スイッチ６０の実行部は、PRE-ASSOCメッセージの応答として、PRE-ASSOC  CONFメッセージをスイッチブレード５０に送信する（Ｓ１０８）。続いて、スイッチブレード５０の転送部は、外部スイッチ６０から受信されたPRE-ASSOC  CONFメッセージを、PRE-ASSOCメッセージの送信元であるＣＰＵサーバ４１に転送する（Ｓ１０９）。【００８４】
その後、ＣＰＵサーバ４１のＶＭＭは、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する（Ｓ１１０とＳ１１１）。【００８５】
ストップアンドコピーが開始されると、ＣＰＵサーバ４１のＶＭＭは、ＶＳＩ発見プロトコルのASSOCメッセージをスイッチブレード５０に送信する（Ｓ１１２）。スイッチブレード５０の判定部は、受信部が受信したASSOCメッセージに含まれるＶＳＩＩＤに基づいて、ブレードサーバをまたがったＶＭ移動であると判定し、転送部は、受信されたASSOCメッセージを外部スイッチ６０に転送する（Ｓ１１３）。このとき、転送部は、PRE-ASSOCメッセージに含まれるＶＳＩＩＤが格納されていないと判定した状態であることより、ASSOCメッセージに含まれるＶＳＩＩＤが記憶されているか否かの判定を実行せずに、当該メッセージを転送することもできる。【００８６】
メッセージが転送された外部スイッチ６０の実行部は、ASSOCメッセージに含まれるＶＳＩＩＤに対応したＶＳＩテーブル２３を更新して、ポートプロファイルを適用する（Ｓ１１４）。そして、外部スイッチ６０の実行部は、ASSOCメッセージの応答として、ASSOC  CONFメッセージをスイッチブレード５０に送信する（Ｓ１１５）。続いて、スイッチブレード５０の転送部は、外部スイッチ６０から受信したASSOC  CONFメッセージを、ASSOCメッセージの送信元であるＣＰＵサーバ４１に転送する（Ｓ１１６）。【００８７】
一方で、ＣＰＵサーバ１１のＶＭＭは、ＶＳＩ発見プロトコルのDE-ASSOCメッセージをスイッチブレード２０に送信する（Ｓ１１７）。スイッチブレード２０の判定部は、受信部が受信したDE-ASSOCメッセージに含まれるＶＳＩＩＤに基づいて、ブレードサーバをまたがったＶＭ移動であると判定し、転送部は、受信されたDE-ASSOCメッセージを外部スイッチ６０に転送する（Ｓ１１８）。【００８８】
メッセージが転送された外部スイッチ６０の実行部は、DE-ASSOCメッセージに含まれるＶＳＩＩＤに対応したポートプロファイルをＶＳＩテーブル２３から特定し、特定したポートプロファイルを削除する（Ｓ１１９）。そして、外部スイッチ６０の実行部は、DE-ASSOCメッセージの応答として、DE-ASSOC  CONFメッセージをスイッチブレード２０に送信する（Ｓ１２０）。【００８９】
続いて、スイッチブレード２０の転送部は、外部スイッチ６０から受信したDE-ASSOC  CONFメッセージを、DE-ASSOCメッセージの送信元であるＣＰＵサーバ１１に転送する（Ｓ１２１）。【００９０】
（要求メッセージ受信時の処理の流れ）
図９は、要求メッセージ受信時の処理の流れを示すフローチャートである。図９に示す処理は、図８に示したスイッチブレード２０、スイッチブレード５０、外部スイッチ６０のそれぞれで実行されるので、ここでは、図３に例示したスイッチブレード２０を例にして説明する。【００９１】
図９に示すように、スイッチブレード２０の受信部２６ａが要求メッセージをＣＰＵサーバから受信すると（Ｓ２０１肯定）、判定部２６ｂは、当該メッセージに含まれるＶＳＩＩＤがＶＳＩテーブル２３に記憶されているか否かを判定する（Ｓ２０２）。【００９２】
例えば、判定部２６ｂは、PRE-ASSOCメッセージ、ASSOCメッセージを受信した場合に、当該メッセージ内の「Port  Profile  Instance  ID」に格納されている「ＶＳＩＩＤ」を抽出する。そして、判定部２６ｂは、メッセージから抽出した「ＶＳＩＩＤ」がＶＳＩテーブル２３にＡｃｔｉｖｅ状態で記憶されているか否かを判定する。また、判定部２６ｂは、DE-ASSOCメッセージを受信した場合に、「ＶＳＩＩＤ」がＶＳＩテーブル２３にそのポートだけで記憶されているか否かを判定する。【００９３】
そして、PRE-ASSOCメッセージ、ASSOCメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル２３にＡｃｔｉｖｅ状態で記憶されていないと判定部２６ｂが判定した場合（Ｓ２０２否定）、転送部２６ｄは、当該メッセージを上位スイッチに転送する（Ｓ２０３）。例えば、図１に示したシステムの場合、転送部２６ｄは、外部スイッチ６０に転送する。また、DE-ASSOCメッセージに含まれるＶＳＩＩＤがＶＳＩテーブルにそのポートだけで記憶されていると判定した場合、転送部２６ｄは、当該メッセージを上位スイッチに転送する（Ｓ２０３）。【００９４】
その後、受信部２６ａが上位スイッチから送信された応答メッセージを受信した場合（Ｓ２０４肯定）、転送部２６ｄは、要求元のＣＰＵサーバに応答メッセージを転送する（Ｓ２０５）。一例を挙げると、受信部２６ａが、PRE-ASSOC  CONFメッセージを外部スイッチ６０から受信すると、転送部２６ｄは、PRE-ASSOCメッセージを送信したＣＰＵサーバに、PRE-ASSOC  CONFメッセージを送信する。【００９５】
一方、PRE-ASSOCメッセージ、ASSOCメッセージに含まれるＶＳＩＩＤがＶＳＩテーブル２３にＡｃｔｉｖｅ状態で記憶されていると判定部２６ｂが判定した場合（Ｓ２０２肯定）、または、DE-ASSOCメッセージに含まれるＶＳＩＩＤがＶＳＩテーブルにそのポート以外のポートにも記憶されていると判定した場合、実行部２６ｃは、受信された要求メッセージに対応した要求メッセージ処理を実行する（Ｓ２０６）。その後、実行部２６ｃは、処理した要求メッセージに応じた応答メッセージを、要求メッセージを送信したＣＰＵサーバに送信する。一例を挙げると、実行部２６ｃは、ASSOCメッセージに対応した処理を実行した場合には、ASSOCメッセージを送信したＣＰＵサーバにASSOC  CONFメッセージを送信する。【００９６】
（要求メッセージ処理の流れ）
図１０は、要求メッセージ処理の流れを示すフローチャートである。図１０に示す処理は、図９に示したＳ２０６で実行される処理である。この処理は、図８に示したスイッチブレード２０、スイッチブレード５０、外部スイッチ６０のそれぞれで実行されるので、ここでは、図３に例示したスイッチブレード２０を例にして説明する。【００９７】
図１０に示すように、スイッチブレード２０の実行部２６ｃは、判定部２６ｂが同一ブレードサーバ内の移動であると判定した要求メッセージから、メッセージ種別を判定する（Ｓ３０１）。一例を挙げると、実行部２６ｃは、受信された要求メッセージにおける「Ｍｏｄｅ」からメッセージ種別を特定する。【００９８】
そして、実行部２６ｃは、メッセージ種別が「PRE-ASSOC」であると判定した場合、要求メッセージの「Port  Profile  ID」に記載される「ポートプロファイルＩＤ」でポートプロファイルテーブル２２を検索する（Ｓ３０２）。【００９９】
続いて、実行部２６ｃは、「ポートプロファイルＩＤ」でポートプロファイルテーブル２２に存在しない場合（Ｓ３０３否定）、当該ポートプロファイルＩＤに対応するポートプロファイルをポートプロファイルＤＢサーバ５から取得する（Ｓ３０４）。そして、実行部２６ｃは、取得したポートプロファイルをポートプロファイルテーブル２２に格納する（Ｓ３０５）。【０１００】
その後、実行部２６ｃは、取得したポートプロファイルのＩＤとＶＳＩ情報とをＶＳＩテーブル２３に格納する（Ｓ３０６）。このとき、実行部２６ｃは、ＶＳＩ情報の「ＶＳＩ  Ｓｔａｔｅ」を「ＦＥＴＣＨＥＤ」として格納する。なお、実行部２６ｃは、ＶＳＩ情報として、要求メッセージを受信したポートの「ポート番号」と、要求メッセージの「Port  Profile  Instance  ID」に記載される「ＶＳＩＩＤ」とを格納する。【０１０１】
一方、実行部２６ｃは、「ポートプロファイルＩＤ」でポートプロファイルテーブル２２に存在する場合（Ｓ３０３肯定）、Ｓ３０４とＳ３０５を実行することなく、Ｓ３０６を実行する。【０１０２】
また、Ｓ３０１において、実行部２６ｃは、メッセージ種別が「ASSOC」であると判定した場合、ポートプロファイルの割当を実行する（Ｓ３０７）。例えば、実行部２６ｃは、ポートにＶＬＡＮや帯域を設定する。そして、実行部２６ｃは、要求メッセージの「Port  Profile  Instance  ID」に記載される「ＶＳＩＩＤ」でＶＳＩテーブル２３を検索し、「ＶＳＩＩＤ」に対応付けられた「ＶＳＩ  Ｓｔａｔｅ」を「ＡＣＴＩＶＥ」に更新する（Ｓ３０８）。【０１０３】
また、Ｓ３０１において、実行部２６ｃは、メッセージ種別が「DE-ASSOC」であると判定した場合、ポートプロファイルの割当を削除する（Ｓ３０９）。例えば、実行部２６ｃは、ポートにＶＬＡＮや帯域の設定を削除する。そして、実行部２６ｃは、要求メッセージの「Port  Profile  Instance  ID」に記載される「ＶＳＩＩＤ」でＶＳＩテーブル２３を検索し、「ＶＳＩＩＤ」に対応付けられた情報を削除する（Ｓ３１０）。【０１０４】
続いて、実行部２６ｃは、メッセージから「ポートプロファイルＩＤ」を取得し、この「ポートプロファイルＩＤ」を他のＶＳＩＩＤが使用しているか否かを判定する（Ｓ３１１）。そして、実行部２６ｃは、他のＶＳＩＩＤが使用していないと判定した場合（Ｓ３１１否定）、当該「ポートプロファイルＩＤ」に対応付けてポートプロファイルテーブル２２に格納されている情報を削除する（Ｓ３１２）。一方、実行部２６ｃは、他のＶＳＩＩＤが使用していると判定した場合（Ｓ３１１肯定）、処理を終了する。【０１０５】
一例を挙げると、実行部２６ｃは、ＶＳＩテーブル２３を検索し、上記「ポートプロファイルＩＤ」が割り当てられているＶＳＩＩＤが存在するか否かによって、他のＶＳＩＩＤが使用しているか否かを判定する。【０１０６】
［実施例１による効果］
実施例１によれば、ＶＳＩ発見プロトコルを拡張し、ブレードサーバの端点をサーバエッジに見せる。そして、スイッチブレードは隣接スイッチとして動作しつつ、外部スイッチへＶＭ移動を通知できる。具体的には、スイッチブレードがＣＰＵサーバからＶＳＩ発見プロトコルのメッセージを受信した場合、その隣接スイッチであるスイッチブレード内の移動か否かを判断して、隣接スイッチ内の移動であれば、従来通り、隣接スイッチ自身で処理を行う。一方、隣接スイッチ内の移動でなければ、上位のスイッチにメッセージを転送し、上位のスイッチからの応答を待って、ＣＰＵサーバに応答メッセージを送信する。【０１０７】
これらの結果、エッジ仮想スイッチをスイッチの複数段構成に拡張できるので、ブレードサーバのシャーシにまたがってＶＭが移動する場合でも、ポートプロファイルをＶＭ移動に応じて自動設定することができる。【０１０８】
また、スイッチブレードで中継せず、外部スイッチのポートを延長するもの（ポートエクステンダー、IEEE802.1Qbh）として動作させることも考えられるが、スイッチブレードのポート数比率を考慮すると、隣接スイッチとして動作させる方が帯域の点で望ましい。また、パケット中継の遅延時間（レイテンシー）も短くすることができる。
【実施例２】
【０１０９】
実施例１では、ＶＳＩ発見プロトコルを拡張する手法について説明したが、本実施例では、エッジ仮想スイッチ（ＥＶＢ）発見プロトコルを拡張することで、仮想スイッチの動作を調整して外部スイッチまでＶＳＩ発見プロトコルを拡張することもできる。具体的には、ブレードサーバと外部スイッチとの間でＥＶＢ発見プロトコル（ＩＥＥＥ  ８０２．１Ｑｂｇ）をやりとりすることで、外部スイッチが隣接スイッチとして動作可能とする。【０１１０】
実施例２では、ＥＶＢ発見プロトコルの拡張について説明する。ここでは、システムの全体構成、スイッチの構成、処理の流れを説明する。【０１１１】
［全体構成］
図１１は、実施例２に係るシステムの全体構成を示す図である。図１１に示すように、このシステムは、ブレードサーバ１０と、外部スイッチ６０とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。なお、ブレードサーバ１０内の構成や外部スイッチ等は図１と同様なので、ここでは詳細な説明は省略する。【０１１２】
そして、ブレードサーバ内の各ＣＰＵサーバは、自サーバ内のＶＭ間通信であっても外部のデータ中継装置であるスイッチブレード２０を介して制御する動作モード（ＶＥＰＡ：Virtual  Ethernet（登録商標）  Port  Aggregation）で動作している。また、外部スイッチ６０は、サーバ内のＶＭ間通信は当該サーバ内で制御する動作モード（ＶＥＢ：Virtual  Ethernet（登録商標）  Bridge）で動作している。つまり、ＣＰＵサーバは、ＶＥＰＡで動作しており、外部スイッチは、ＶＥＢで動作している。【０１１３】
このような状態において、スイッチブレード２０は、外部スイッチ６０に対して、ブレードサーバ１０全体がＶＥＢとして動作することを通知する。すなわち、スイッチブレード２０は、各ＣＰＵサーバがＶＥＰＡとして動作しているにも関らず、ブレードサーバ１０全体をＶＥＢとして外部スイッチ６０にみせる。つまり、ＣＰＵサーバ側がＶＥＢであれば、スイッチブレード２０の折り返しをオフし、ＣＰＵサーバ側がＶＥＰＡであれば、外部スイッチの折り返しをオンにする。【０１１４】
この結果、各ＣＰＵサーバがＶＥＰＡで外部スイッチ６０もＶＥＰＡで動作している場合には、スイッチブレード２０は、ＣＰＵサーバから通知された動作モードをそのまま外部スイッチ６０に通知する。また、各ＣＰＵサーバがＶＥＢで外部スイッチ６０もＶＥＢで動作している場合には、スイッチブレード２０は、ＣＰＵサーバから通知された動作モードをそのまま外部スイッチ６０に通知する。さらに、各ＣＰＵサーバがＶＥＰＡで外部スイッチ６０もＶＥＢで動作している場合には、スイッチブレード２０は、ＣＰＵサーバから通知された動作モード（ＶＥＰＡ）をＶＥＢに変換して外部スイッチ６０に通知する。【０１１５】
［各装置の構成］
次に、図１１に示した各装置の構成について説明する。なお、各ＣＰＵサーバは、図２で説明したＣＰＵサーバ１１と同様の構成を有するので、ここでは詳細な説明を省略する。また、スイッチブレード２０と外部スイッチ６０も同様の機能を有するので、ここではスイッチブレード２０について説明する。【０１１６】
（スイッチブレードの構成）
図１２は、実施例２に係るスイッチブレードの構成を示すブロック図である。図１２に示すように、スイッチブレード２０は、通信制御Ｉ／Ｆ部２１と、ポートプロファイルテーブル２２と、ＶＳＩテーブル２３と、ＭＡＣテーブル２４と、動作モードテーブル３０と、制御部２５とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。【０１１７】
ここで、通信制御Ｉ／Ｆ部２１と、ポートプロファイルテーブル２２と、ＶＳＩテーブル２３と、ＭＡＣテーブル２４とは、図３で説明した機能と同様の機能を有するので、詳細な説明は省略する。また、制御部２５が有するメッセージ処理部２６と学習部２７とスイッチング制御部２８とについても、図３で説明した機能と同様の機能を有するので、詳細な説明は省略する。【０１１８】
そこで、実施例２では、実施例１とは異なる機能を有する動作モードテーブル３０と、制御部２５のＥＶＢ処理部３１とについて説明する。【０１１９】
動作モードテーブル３０は、ＣＰＵサーバや外部スイッチ６０の動作モードなどを記憶する。ここで記憶される情報は、後述するＥＶＢ処理部３１が格納したり、管理者等により格納されたりする。例えば、動作モードテーブル３０は、ＣＰＵサーバ１１の動作モード「ＶＥＰＡ」、外部スイッチ６０の動作モード「ＶＥＰＡ」などと記憶する。【０１２０】
ＥＶＢ処理部３１は、ＥＶＢ発見プロトコルに準拠したメッセージに応じた処理を実行する。例えば、ＥＶＢ処理部３１は、通信制御Ｉ／Ｆ部２１を介して、各ＣＰＵサーバからＥＶＢ発見プロトコルのＥＤＣＰ（Edge  Discovery  and  Configuration  Protocol）メッセージを受信する。そして、ＥＶＢ処理部３１は、受信したＥＤＣＰメッセージから動作モードを取得して動作モードテーブル３０に格納する。例えば、ＥＶＢ処理部３１は、取得した動作モードが「ＶＥＰＡ」である場合には、折り返し設定を実行し、ＣＰＵサーバのＶＭ等から受信したデータの中継を実行する。【０１２１】
また、ＥＶＢ処理部３１は、所定の間隔で、外部スイッチ６０に動作モードを通知する。例えば、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、ＣＰＵサーバの動作モードが「ＶＥＰＡ」で、外部スイッチ６０の動作モードが「ＶＥＢ」である場合には、ブレードサーバ全体の動作モードが「ＶＥＢ」であると外部スイッチ６０に通知する。【０１２２】
また、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、ＣＰＵサーバの動作モードが「ＶＥＰＡ」で、外部スイッチ６０の動作モードが「ＶＥＰＡ」である場合には、ブレードサーバ全体の動作モードが「ＶＥＰＡ」であると外部スイッチ６０に通知する。また、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、ＣＰＵサーバの動作モードが「ＶＥＢ」で、外部スイッチ６０の動作モードが「ＶＥＢ」である場合には、ブレードサーバ全体の動作モードが「ＶＥＢ」であると外部スイッチ６０に通知する。【０１２３】
なお、動作モードを通知する契機としては、例えば１時間ごとや１日ごとなど定期的に送信することもできる。また、ＥＤＣＰメッセージから動作モードを取得した後、すぐに通知することもできる。【０１２４】
［処理の流れ］
次に、スイッチブレード２０が実行するＥＤＣＰメッセージ受信時の処理の流れと、スイッチブレード２０が実行するＥＤＣＰメッセージ拡張処理の流れとを説明する。なお、これらの処理は、外部スイッチでも同様に実行できる。【０１２５】
（ＥＤＣＰメッセージ受信時の処理の流れ）
図１３は、実施例２に係るスイッチブレードが実行するＥＤＣＰメッセージ受信時の処理の流れを示すフローチャートである。図１３に示すように、スイッチブレード２０のＥＶＢ処理部３１は、ＣＰＵサーバからＥＤＣＰメッセージを受信すると（Ｓ４０１）、ＣＰＵサーバの動作モードが「ＶＥＰＡ」であるか否かを判定する（Ｓ４０２）。【０１２６】
一例を挙げると、ＥＶＢ処理部３１は、図１４に示したＥＶＢ  ＴＬＶフォーマットで規定されるＥＤＣＰメッセージを受信する。図１４は、ＥＶＢ発見プロトコルで用いられるＥＤＣＰメッセージの例を示す図である。図１４に示すメッセージフォーマットは、１６ビットのＴＬＶヘッダーに、メッセージの詳細情報が１３オクテットで記載されるTLV  Information  Stringが付加されている。ＥＶＢ処理部３１は、TLV  Information  String内に２オクテットで規定される「EVB  Capabilities」を参照する。そして、ＥＶＢ処理部３１は、「EVB  Capabilities」内で１ビットで規定される「RR（Reflective  Relay）」が「TRUE」であれば「ＶＥＰＡ」と判定し、「RR」が「FALSE」であれば「ＶＥＢ」と判定する。【０１２７】
そして、ＥＶＢ処理部３１は、ＣＰＵサーバの動作モードが「ＶＥＰＡ」であると判定した場合には（Ｓ４０２肯定）、自スイッチに折り返しを設定する（Ｓ４０３）。このとき、ＥＶＢ処理部３１は、ＣＰＵサーバの動作モードを動作モードテーブル３０に格納する。【０１２８】
続いて、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、「ＶＥＢ」に変換するか否かを判定する（Ｓ４０４）。そして、ＥＶＢ処理部３１は、「ＶＥＢ」に変換しないと判定した場合には（Ｓ４０４否定）、上位スイッチに対する動作モードを「ＶＥＰＡ」に設定する（Ｓ４０５）。一方、ＥＶＢ処理部３１は、「ＶＥＢ」に変換すると判定した場合には（Ｓ４０４肯定）、上位スイッチに対する動作モードを「ＶＥＢ」に設定する（Ｓ４０６）。【０１２９】
一例を挙げると、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、ＣＰＵサーバの動作モードが「ＶＥＰＡ」で、外部スイッチ６０の動作モードが「ＶＥＰＡ」である場合には、ブレードサーバ全体の動作モードを「ＶＥＢ」に変換しないと判定する。また、ＥＶＢ処理部３１は、動作モードテーブル３０を参照し、ＣＰＵサーバの動作モードが「ＶＥＰＡ」で、外部スイッチ６０の動作モードが「ＶＥＢ」である場合には、ブレードサーバ全体の動作モードを「ＶＥＢ」に変換すると判定する。【０１３０】
また、Ｓ４０２において、ＥＶＢ処理部３１は、ＣＰＵサーバの動作モードが「ＶＥＰＡ」でないと判定した場合には（Ｓ４０２否定）、上記Ｓ４０６を実行する。【０１３１】
（ＥＤＣＰメッセージ拡張処理の流れ）
図１５は、実施例２に係るスイッチブレードが実行するＥＤＣＰメッセージ拡張処理の流れを示すフローチャートである。図１５に示すように、スイッチブレード２０のＥＶＢ処理部３１は、動作モード通知契機に到達すると、上位スイッチに動作モードを判定する（Ｓ５０１）。つまり、ＥＶＢ処理部３１は、図１３に示したフローチャートで、上位スイッチに対して通知すると決定された動作モードを判定する。【０１３２】
そして、ＥＶＢ処理部３１は、通知する動作モードが「ＶＥＰＡ」であると判定した場合には、「EVB  Capabilities」における「RR」を「TRUE」としたＥＤＣＰメッセージを外部スイッチ６０に送信する（Ｓ５０２）。一方、ＥＶＢ処理部３１は、通知する動作モードが「ＶＥＢ」であると判定した場合には、「EVB  Capabilities」における「RR」を「FALSE」としたＥＤＣＰメッセージを外部スイッチ６０に送信する（Ｓ５０３）。【０１３３】
［実施例２による効果］
実施例２によれば、ブレードサーバ１０が外部スイッチ６０とＥＶＢ発見プロトコルをやりとりすることで、外部スイッチ６０が隣接スイッチとして動作できる。また、スイッチブレード２０はＶＥＢとして外部スイッチ６０にみせる。ここで、ブレードサーバ１０がＶＥＢであれば、スイッチブレードの折り返しをオフし、ブレードサーバ１０側がＶＥＰＡであれば、スイッチの折り返しをオンにする。【０１３４】
これらの結果、エッジ仮想スイッチの動作を調整することで、外部スイッチ６０までＶＳＩ発見プロトコルを拡張しつつ、ブレードサーバ内の通信は、スイッチブレードで折り返すことにより、帯域及び遅延時間の点で優位な効果を有する。【０１３５】
また、ソフトウェアによる仮想スイッチのオフロードにより、ＣＰＵの負荷を軽減し、サーバ集約率向上する。また、ＶＭ間通信の見える化が実現でき、ミラーリング等が実行でき、問題調査の容易化に繋がる。また、仮想スイッチを一元管理することができ、ブレードサーバ内またはＣＰＵサーバ内でも、ブレードサーバ外またはＣＰＵサーバ外でも同様の処理を実行できる。
【実施例３】
【０１３６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１３７】
（構成例）
実施例１や２では、ブレードサーバの例にして説明したが、これに限定されるものではなく、ラック搭載型サーバにも同様に適用することができる。また、実施例１や２では、スイッチブレードと外部スイッチの２段構成を例にして説明したが、これに限定されるものではなく、３段以上の構成にも同様に適用することができる。例えば、１段目のスイッチと２段目のスイッチで実施例１や２の処理を実行し、１段目のスイッチ＋２段目のスイッチ＝１スイッチと３段目のスイッチとで実施例１や２の処理を実行する。【０１３８】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図４〜図７、図１４等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１３９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば受信部２６ａと判定部２６ｂとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０１４０】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。【０１４１】
図１６は、プロトコル拡張処理プログラムを実行するコンピュータの例を示す図である。図１６に示すように、コンピュータ１００は、ＲＡＭ１０１と、ＨＤＤ１０２と、ＲＯＭ１０３と、ＣＰＵ１０４とを有する。ＨＤＤ１０２には、ＭＡＣテーブル２４と同様の情報を記憶するＭＡＣテーブル１０２ａと、ポートプロファイルテーブル２２と同様の情報を記憶するポートプロファイルテーブル１０２ｂとが設けられる。また、ＨＤＤ１０２には、ＶＳＩテーブル２３と同様の情報を記憶するＶＳＩテーブル１０２ｃが設けられる。【０１４２】
ＲＯＭ１０３には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図１６に示すように、ＲＯＭ１０３には、プロトコル拡張処理プログラム１０３ａがあらかじめ記憶されている。【０１４３】
そして、ＣＰＵ１０４には、これらのプロトコル拡張処理プログラム１０３ａを読み出して実行することで、図１６に示すように、プロトコル拡張プロセス１０４ａを実行する。プロトコル拡張処理プロセス１０４ａは、受信部２６ａと判定部２６ｂと実行部２６ｃと転送部２６ｄと同様の動作を実行する。さらに、プロトコル拡張処理プロセス１０４ａは、ＥＶＢ処理部３１と同様の動作を実行する。【０１４４】
ところで、上記したプロトコル拡張処理プログラム１０３ａは、必ずしもＲＯＭ１０３に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータ１００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される「他のコンピュータ」に記憶させておいてもよい。そして、コンピュータ１００がこれらからプログラムを読み出して実行するようにしてもよい。【０１４５】
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、コンピュータ１００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１４６】
５  ポートプロファイルＤＢサーバ
１０、４０  ブレードサーバ
１１、１２、１３、４１、４２  ＣＰＵサーバ
１１ａ  物理インタフェース
１２ａ  仮想スイッチ
１３ａ  仮想領域
１４ａ  メモリ
１５ａ  ＣＰＵ
１６ａ  ＶＭＭ
２０、５０  スイッチブレード
２１  通信制御Ｉ／Ｆ部
２２  ポートプロファイルテーブル
２３  ＶＳＩテーブル
２４  ＭＡＣテーブル
２５  制御部
２６  メッセージ処理部
２６ａ  受信部
２６ｂ  判定部
２６ｃ  実行部
２６ｄ  転送部
２７  学習部
２８  スイッチング制御部
３０  動作モードテーブル
３１  ＥＶＢ処理部
６０  外部スイッチ
【図１】
2012093495.tif 000003
【図２】
2012093495.tif 000004
【図３】
2012093495.tif 000005
【図４】
2012093495.tif 000006
【図５】
2012093495.tif 000007
【図６】
2012093495.tif 000008
【図７】
2012093495.tif 000009
【図８】
2012093495.tif 000010
【図９】
2012093495.tif 000011
【図１０】
2012093495.tif 000012
【図１１】
2012093495.tif 000013
【図１２】
2012093495.tif 000014
【図１３】
2012093495.tif 000015
【図１４】
2012093495.tif 000016
【図１５】
2012093495.tif 000017
【図１６】
2012093495.tif 000018
【図１７】
2012093495.tif 000019
【図１８】
2012093495.tif 000020
【手続補正書】
【提出日】平成25年12月19日(2013.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する手順と
を実行させることを特徴とするプロファイル処理プログラム。
【請求項２】
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合に、前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信すると、当該削除要求に含まれる仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順をさらに実行させることを特徴とする請求項１に記載のプロファイル処理プログラム。
【請求項３】
前記判定する手順は、前記受信した設定要求がＰＲＡ−ＡＳＳＯＣメッセージである場合に、前記ＰＲＡ−ＡＳＳＯＣメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されているか否かを判定し、前記ＰＲＡ−ＡＳＳＯＣメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されていないと判定した後に受信したＡＳＳＯＣメッセージについては、前記仮想マシン識別子が記憶されているかの判定を実施することなく、前記データ中継装置に転送することを特徴とする請求項１に記載のプロファイル処理プログラム。
【請求項４】
コンピュータに、
仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する手順と
を実行させることを特徴とするプロファイル処理プログラム。
【請求項５】
前記仮想マシンが稼動するサーバから、当該サーバ内の仮想マシン間通信であっても外部のデータ中継装置で制御するＶＥＰＡで動作する旨の通知を受信した場合に、当該サーバ内の仮想マシン間通信は当該サーバ内で制御するＶＥＢで前記サーバが動作する旨の通知を、前記ＶＥＢで動作する前記データ中継装置に送信する手順をさらに実行させることを特徴とする請求項１または４に記載のプロファイル処理プログラム。
【請求項６】
データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記設定要求に応じた処理を実行する実行部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動先サーバと接続される上位のデータ中継装置に、前記設定要求を転送する転送部と
を有することを特徴とするデータ中継装置。
【請求項７】
データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する削除部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動元サーバと接続される上位のデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する転送部と
を有することを特徴とするデータ中継装置。
【請求項８】
コンピュータが実行する制御方法であって、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する
ことを特徴とするプロファイル制御方法。
【請求項９】
コンピュータが実行する制御方法であって、
仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する
ことを特徴とするプロファイル制御方法。
【国際調査報告】
2012093495.tif 000021
2012093495.tif 000022