説明

データ中継装置、データ中継プログラムおよびデータ中継方法

【課題】数段に接続されたスイッチにポートプロファイルを自動設定する。
【解決手段】仮想マシンを稼働させるサーバ間のデータを中継するスイッチ1である。このようなスイッチ1は、自身と接続されたサーバから、移動対象の仮想マシンを示すVSIIDと、ポートプロファイルの設定要求とを受信する。また、スイッチ1は、自身と接続されたサーバで稼働する仮想マシンのVSIIDと各仮想マシンが用いるポート番号とを記憶する記憶装置に、受信したVSIIDが設定要求を受信したポートとは異なるポートで記憶されているか否かを判定する。そして、スイッチ1は、受信したVSIIDを設定要求を受信したポートとは異なるポートで記憶していないと判定した場合には、VSIIDが示す仮想マシンの通信を中継する通信経路において自身よりも上位のスイッチ4またはスイッチ5にポートプロファイルの設定要求を転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ中継装置、データ中継プログラムおよびデータ中継方法に関する。
【背景技術】
【0002】
従来、情報処理装置としてのサーバ上で、VM(Virtual Machine:仮想マシン)といわれる仮想的な情報処理装置を動作させるサーバ仮想化技術が知られている。このような仮想化技術に関する機能の1つとして、業務を停止させることなく、あるサーバで稼働中のVMを別のサーバに移動するライブマイグレーション(Live Migration)の技術が知られている。
【0003】
このようなライブマイグレーションの技術は、VMの自由な移動が求められるクラウドデータセンタ環境等において利用される。例えば、このようなクラウドデータセンタは、VMを稼働させる複数のサーバと、各サーバが実行するVM間の通信を中継する1つ又は複数のスイッチとを有する。各スイッチは、各サーバが稼働させるVMのVLAN(Virtual Local Area Network)やQoS(Quality of Service)等を示すポートプロファイルに応じて、VM間の通信を中継する。
【0004】
このようなポートプロファイルの設定を自動化する手法の一例として、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.1Qbgで議論されるVSI(Virtual Station Interface)発見プロトコルが知られている。以下、VSI発見プロトコルを用いたポートプロファイルの自動設定(AMPP:Automated Migration of Port Profile)の一例について説明する。
【0005】
図30は、従来技術に係るポートプロファイルの自動化処理の一例を示すシーケンス図である。なお、図30に示す例では、移動対象のVMの移動元である移動元サーバと、VMの移動先である移動先サーバと、移動元サーバと移動先サーバとの通信を中継するスイッチとが実行する処理の一例について説明する。また、以下の説明では、移動先サーバと接続されているスイッチのポートを移動先ポートとし、移動元サーバと接続されているスイッチのポートを移動元ポートとする。
【0006】
図30に示す例では、移動先サーバは、管理者等の指示操作を受け付けると、新しいVMを自サーバ上に生成する(S1)。続いて、移動元サーバおよび移動先サーバは、移動元サーバがライブマイグレーションを指示されると(S2)、VMを稼働させながらVMのデータを移動元サーバから移動先サーバへ段階的にコピーするプレコピーを実施する(S3、S4)。
【0007】
プレコピーが開始されると、移動先サーバは、VSI発見プロトコルのPRE−ASSOCメッセージをスイッチの移動先ポートに送信する(S5)。このメッセージを受信したスイッチは、移動対象となるVMに対応したポートプロファイルを取得し、取得したポートプロファイルを自身の移動先ポートに設定する準備を行う(S6)。そして、スイッチは、PRE−ASSOCメッセージの応答として、PRE−ASSOC−CONFメッセージを移動先サーバに送信する(S7)。
【0008】
次に、移動元サーバおよび移動先サーバは、移動対象VMの業務を一時的に停止し、自身が利用しているメモリ内容を移動元サーバから移動先サーバに転送するストップアンドコピーを実施する(S8、S9)。ストップアンドコピーが開始されると、移動先サーバは、VSI発見プロトコルのASSOCメッセージをスイッチの移動先ポートに送信する(S10)。
【0009】
このような場合には、スイッチは、PRE−ASSOCメッセージ受信時に取得したポートプロファイルを移動先ポートに設定する(S11)。そして、スイッチは、ASSOCメッセージの応答として、ASSOC−CONFメッセージを移動先サーバに送信する(S12)。なお、ステップS12以降、移動対象VMは移動先サーバ上で稼動する。
【0010】
一方で、移動元サーバは、VSI発見プロトコルのDE−ASSOCメッセージをスイッチの移動元ポートに送信する(S13)。スイッチは、DE−ASSOCメッセージを受信した場合には、移動元ポートに設定されたポートプロファイル、すなわち、移動対象となるVMに対応するポートプロファイルの設定を削除する(S14)。そして、スイッチは、DE−ASSOCメッセージの応答として、DE−ASSOC−CONFメッセージを移動元サーバに送信する(S15)。このようにして、VMの移動およびポートプロファイルの自動設定が実行される。
【0011】
一方、サーバ間を複数の経路で接続することで、サーバ間の通信帯域を増加させるマルチパスの技術が知られている。以下、図31を用いて、マルチパスの技術が適用されたクラウドデータセンターのシステムの一例について説明する。図31は、マルチパスの技術が適用されたシステムの一例を説明するための図である。図31に示す例では、システム30は、それぞれVM#1〜#4を稼働させる複数のサーバ36〜39と各サーバ間の通信を中継する複数のスイッチ31〜35を有する。
【0012】
ここで、サーバ36とサーバ37とは、スイッチ31と接続し、サーバ38は、スイッチ32と接続し、サーバ39は、スイッチ33と接続する。また、スイッチ31〜33は、スイッチ同士の通信を中継する上位のスイッチ34およびスイッチ35と接続する。つまり、システム30においては、複数のスイッチを介する通信経路が各サーバ36〜39間に複数存在するよう各スイッチ31〜35を接続する。
【0013】
このようなシステム30においては、例えば、サーバ36が稼働させるVM#1は、スイッチ31、スイッチ34、スイッチ32を介する経路、または、スイッチ31、スイッチ35、スイッチ32を介する経路でサーバ38が稼働させるVM#3と通信を行う。また、例えば、サーバ37が稼働させるVM#2は、スイッチ31、スイッチ35、スイッチ33を介する経路、または、スイッチ31、スイッチ34、スイッチ33を介する経路でサーバ39が稼働させるVM#4と通信を行う。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2011−070549号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
しかし、上述したVSI発見プロトコルは、サーバと接続されたスイッチにポートプロファイルを自動設定するためのプロトコルであるため、複数段に接続されたスイッチにポートプロファイルを自動設定することができないという問題がある。
【0016】
一例として、サーバ39が稼働させるVM#4をサーバ38に移動させる例について説明する。このような場合には、サーバ38とスイッチ32との間でPRE−ASSOCとASSOCとがやり取りされ、サーバ39とスイッチ33との間でDE−ASSOCがやり取りされるので、スイッチ33およびスイッチ32のポートプロファイルが自動設定される。
【0017】
しかし、スイッチ間の通信を中継する上位のスイッチ34およびスイッチ35に対しては、VSI発見プロトコルの各メッセージが送信されない。このため、システム30は、スイッチ34およびスイッチ35のポートプロファイルを自動設定することができない。
【0018】
1つの側面では、本発明は、複数段に接続されたスイッチにポートプロファイルを自動設定する。
【課題を解決するための手段】
【0019】
本願に開示の技術は、1つの側面では、仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置である。このようなデータ中継装置は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信する。また、データ中継装置は、自身と接続されたサーバで稼働する仮想マシンの仮想マシン識別子と各仮想マシンが用いるポートとを記憶する記憶装置に、受信した仮想マシン識別子が異なるポートで記憶されているか否かを判定する。そして、データ中継装置は、受信した仮想マシン識別子を異なるポートで記憶していないと判定した場合には、仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置にポートプロファイルの設定要求を転送する。
【発明の効果】
【0020】
1実施形態では、複数段に接続されたスイッチにポートプロファイルを自動設定することができる。
【図面の簡単な説明】
【0021】
【図1】図1は、実施例1に係る情報処理システムの一例を説明するための図である。
【図2】図2は、スイッチが経路IDに基づいてデータの転送を行う例について説明するための図である。
【図3】図3は、仮想マシンの移動時に行われる処理の一例を説明するための図である。
【図4】図4は、実施例1に係るサーバの構成を示すブロック図である。
【図5】図5は、実施例1に係るスイッチの一例を説明するための図である。
【図6】図6は、実施例1に係る経路テーブルの一例を説明するための図である。
【図7】図7は、VSIテーブルに記憶される情報の一例を示す図である。
【図8】図8は、ポートプロファイルテーブルに記憶される情報の一例を示す図である。
【図9A】図9Aは、MACテーブルに記憶される情報の一例を説明する第1の図である。
【図9B】図9Bは、MACテーブルに記憶される情報の一例を説明する第2の図である。
【図9C】図9Cは、MACテーブルに記憶される情報の一例を説明する第3の図である。
【図9D】図9Dは、MACテーブルに記憶される情報の一例を説明する第4の図である。
【図9E】図9Eは、MACテーブルに記憶される情報の一例を説明する第5の図である。
【図10】図10は、VSI発見プロトコルで用いられるメッセージの一例を示す図である。
【図11A】図11Aは、MACテーブルを書換える処理の一例を説明する第1の図である。
【図11B】図11Bは、MACテーブルを書換える処理の一例を説明する第2の図である。
【図11C】図11Cは、MACテーブルを書換える処理の一例を説明する第3の図である。
【図11D】図11Dは、MACテーブルを書換える処理の一例を説明する第4の図である。
【図11E】図11Eは、MACテーブルを書換える処理の一例を説明する第5の図である。
【図12】図12は、スイッチをまたがってVMが移動する際の処理の流れの一例を説明するための図である。
【図13】図13は、MACテーブルを修正する処理の流れの一例を説明するための図である。
【図14】図14は、スイッチが実行する処理の流れの一例を説明するための図である。
【図15A】図15Aは、上位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。
【図15B】図15Bは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れの一例を説明するための図である。
【図16】図16は、ポートプロファイルテーブルを修正する処理の流れの一例を説明するための図である。
【図17】図17は、ファブリックのスイッチによる通信の一例を説明するための図である。
【図18】図18は、実施例2に係る情報処理システムの一例を説明するための図である。
【図19】図19は、実施例2に係るピングループ情報の一例を説明するための図である。
【図20】図20は、実施例2に係るスイッチの一例を説明するための図である。
【図21】図21は、スイッチがピングループごとにデータの転送を行う例について説明するための図である。
【図22】図22は、仮想マシンの移動後を説明するための図である。
【図23】図23は、ピングループとVDPメッセージの内容に応じてVDPメッセージを転送する処理の流れを説明するためのシーケンス図である。
【図24】図24は、MACアドレスを動的学習しない場合の処理の流れを説明するためのシーケンス図である。
【図25】図25は、実施例2に係るスイッチが実行する処理の流れを説明するためのフローチャートである。
【図26】図26は、実施例2に係るスイッチが上位スイッチを選択する処理の流れを説明するためのフローチャートである。
【図27A】図27Aは、上位スイッチが経路変更メッセージを送信する処理の流れを説明するためのフローチャートである。
【図27B】図27Bは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。
【図28】図28は、バリエーションの一例を説明するための図である。
【図29】図29は、中継プログラムを実行するコンピュータの一例を説明するための図である。
【図30】図30は、従来技術に係るポートプロファイルの自動化処理の一例を示すシーケンス図である。
【図31】図31は、マルチパスの技術が適用されたシステムの一例を説明するための図である。
【発明を実施するための形態】
【0022】
以下に添付図面を参照して本願に係るデータ中継装置、データ中継プログラムおよびデータ中継方法について説明する。
【実施例1】
【0023】
以下の実施例1では、図1を用いて、実施例1に係るデータ中継装置を有する情報処理システムの一例を説明する。図1は、実施例1に係る情報処理システムの一例を説明するための図である。
【0024】
図1に示すように、情報処理システムは、複数のスイッチ1〜5、複数のサーバ11〜14、管理サーバ10を有する。ここで、スイッチ1〜3は、サーバ11〜14と接続されており、いわゆる下位のスイッチである。また、図1に示す例では、スイッチ1は、サーバ11、および、サーバ12と接続され、スイッチ2は、サーバ13と接続され、スイッチ3は、サーバ14と接続されている。
【0025】
また、スイッチ4、および、スイッチ5は、スイッチ1〜3とそれぞれ接続されており、スイッチ1〜3の通信を中継する上位のスイッチである。すなわち、情報処理システムには、各サーバ11〜14間の通信経路が複数存在するマルチパスの技術が適用されている。
【0026】
以下、実施例1に係る各スイッチ1〜5、管理サーバ10、各サーバ11〜14が実行する処理について説明する。なお、以下の説明では、各サーバ11〜14が実行する処理、各スイッチ1〜5が実行する処理、管理サーバ10が実行する処理の順に説明する。
【0027】
まず、各サーバ11〜14について説明する。サーバ11〜14は、ハイパーバイザなどと呼ばれるVMM(Virtual Machine Monitor)を実行してVM(Virtual Machine:仮想マシン)を稼働させる情報処理装置である。図1に示す例では、サーバ11は、仮想マシンであるVM#1を稼働させ、サーバ12は、VM#3を稼働させ、サーバ13は、VM#2を稼働させ、サーバ14は、VM#4を稼働させる。また、各サーバ11〜14は、仮想スイッチを動作させ、VM#1〜#4間における通信を中継させる。
【0028】
また、サーバ11〜14は、管理サーバ10の指示に従って、VM#1〜#4をサーバ間で移動させる場合には、VSI発見プロトコルに従って、自身と接続するスイッチに対してVSI発見プロトコルのメッセージを送信する。
【0029】
具体的には、サーバ11〜14は、移動先サーバとなる場合には、以下の処理を実行する。すなわち、サーバ11〜14は、移動対象となるVMのデータを受信するプレコピー処理を開始するとともに、移動対象となるVMに係るポートプロファイルの設定準備を指示するPRE−ASSOCメッセージを送信する。また、サーバ11〜14は、プレコピーが終了した場合には、ストップアンドコピー処理を実行する。
【0030】
そして、サーバ11〜14は、ストップアンドコピー処理を実行し、かつ、PRE−ASSOCメッセージに対する応答であるPRE−ASSOC−CONFメッセージを受信した場合には、ポートプロファイル情報の設定適用を指示するメッセージを送信する。すなわち、サーバ11〜14は、自身と接続するスイッチにASSOCメッセージを送信する。
【0031】
また、サーバ11〜14は、移動元サーバとなる場合には、以下の処理を実行する。すなわち、サーバ11〜14は、移動対象となるVMのデータを送信するプレコピー処理を開始し、その後、移動対象となるVMを停止させ、VMに係る全てのデータを送信するストップアンドコピー処理を実行する。その後、サーバ11〜14は、移動対象となるVMに係るポートプロファイルの削除を指示するDE−ASSOCメッセージを送信する。
【0032】
さらに、サーバ11〜14は、VSI発見プロトコルのメッセージを送信する場合には、以下の処理を実行する。すなわち、サーバ11〜14は、移動対象となるVMのデータを送受信する際に用いられる通信経路を示す経路IDをVSI発見プロトコルとともに、自身と接続するスイッチに対して送信する。
【0033】
詳細には、サーバ11〜14は、VMの移動を管理サーバ10から指示された場合は、移動対象となるVMに係る経路IDを管理サーバ10から取得する。そして、サーバ11〜14は、VSI発見プロトコルのTLV(Type Length Value)フォーマットで規定されるメッセージに経路IDを格納し、経路IDを格納したメッセージをスイッチに送信する。そして、サーバ11〜14は、経路IDを格納したメッセージを、自身と接続するスイッチへ送信する。
【0034】
ここで、経路IDの一例について説明すると、経路ID「1」とは、スイッチ1、スイッチ5、スイッチ3を介する通信経路を示す識別子であり、経路ID「2」とは、スイッチ1、スイッチ4、スイッチ2を介する通信経路を示す識別子である。
【0035】
次に、スイッチ1〜5について説明する。なお、スイッチ2〜5は、スイッチ1と同様の処理を実行するものとして、詳細な説明を省略する。スイッチ1は、サーバ11、サーバ12、上位のスイッチ4またはスイッチ5のいずれかからデータが格納されたパケットを受信した場合には、パケットの宛先に応じて、受信したパケットを転送するスイッチである。
【0036】
具体的には、スイッチ1は、サーバ11またはサーバ12からサーバ13またはサーバ14を宛先とするパケットを受信した場合には、パケットに格納された経路IDが示す通信経路に基づいて、受信したデータをスイッチ4またはスイッチ5へ転送する。また、スイッチ1は、サーバ11のIPアドレスまたはサーバ12のIPアドレスを宛先とするパケットをスイッチ4またはスイッチ5から受信した場合には、パケットをサーバ11またはサーバ12へ転送する。
【0037】
例えば、スイッチ1は、宛先としてサーバ13のIPアドレスと、経路ID「2」とを含むパケットをサーバ11から受信する。このような場合には、スイッチ1は、受信したパケットをスイッチ4に転送する。また、スイッチ1は、宛先としてサーバ12のIPアドレスと、経路ID「1」とを含むパケットをスイッチ5から受信する。このような場合には、スイッチ1は、受信したパケットをサーバ12へ転送する。
【0038】
ここで、スイッチ1は、自身に接続されたサーバ11、12が稼働させるVM#1とVM#3のポートプロファイルを記憶し、記憶したポートプロファイルに応じて、パケットの転送を実行する。例えば、スイッチ1は、サーバ11およびサーバ12との間でパケットを送受信する複数のポートを有する。また、スイッチ1は、各ポートとVM#1またはVM#3とを対応付けるポートプロファイル情報を記憶する。そして、スイッチ1は、ポートプロファイル情報に基づいて、パケットの送受信を行う。
【0039】
すなわち、スイッチ1は、VM#1と対応付けたポートを介してパケットを受信した場合には、VM#1から受信したパケットとして転送を行う。また、スイッチ1は、VM#3と対応付けたポートを介してパケットを受信した場合には、VM#3から受信したパケットとして転送を行う。つまり、スイッチ1は、VM#1を宛先とするパケットを受信した場合には、受信したパケットをVM#1と対応付けたポートから出力し、VM#3を宛先とするパケットを受信した場合には、受信したパケットをVM#3と対応付けたポートから出力する。
【0040】
また、スイッチ1は、自身に隣接するサーバ11またはサーバ12から、VSI発見プロトコルのメッセージを受信した場合には、以下の処理を実行する。すなわち、スイッチ1は、受信したメッセージが、PRE−ASSOCメッセージであるか、ASSOCメッセージであるか、DE−ASSOCメッセージであるかを判別する。
【0041】
そして、スイッチ1は、受信したメッセージがPRE−ASSOCメッセージである場合には、以下の処理を実行する。すなわち、スイッチ1は、受信したPRE−ASSOCメッセージの対象となるVMを示す識別子であるVSIID(Virtual Station Interface Identification)を記憶しているか否かを判別する。すなわち、スイッチ1は、受信したVSIIDに係るVMのポートプロファイルが適用されているか否かを判別する。
【0042】
ここで、PRE−ASSOCメッセージは、VMの移動先となるサーバ(以下、移動先サーバとする)から送信されるメッセージである。このため、スイッチ1は、受信したVSIIDに係るVMのポートプロファイルが適用されている場合には、自身に接続されているサーバのうち、移動先サーバとは別のサーバが移動対象となるVMを稼働させていると判別できる。この結果、スイッチ1は、受信したPRE−ASSOCメッセージのVSIIDを記憶している場合には、移動対象となるVMに係る通信経路に変更が無いので、上位のスイッチ4、5についてポートプロファイルの更新を行わずとも良い。
【0043】
このため、スイッチ1は、受信したPRE−ASSOCメッセージのVSIIDを記憶している場合には、管理サーバ10から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。そして、スイッチ1は、PRE−ASSOCメッセージの送信元サーバ、すなわち、移動先サーバへPRE−ASSOCメッセージに対する応答であるPRE−ASSOC−CONFメッセージを送信する。
【0044】
一方、スイッチ1は、受信したVSIIDに係るVMのポートプロファイルが適用されていない場合、すなわち、PRE−ASSOCメッセージのVSIIDを記憶していない場合は、自身に接続されていないサーバが移動対象のVMを稼働させていると判別できる。つまり、スイッチ1は、移動対象となるVMに係る通信経路が変更されるので、上位のスイッチ4、5についてもポートプロファイルの更新を要すると判別する。
【0045】
この結果、スイッチ1は、受信したPRE−ASSOCメッセージのVSIIDを記憶していない場合には、以下の処理を実行する。すなわち、スイッチ1は、管理サーバ10から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。
【0046】
また、スイッチ1は、受信したPRE−ASSOCメッセージから経路IDを取得し、取得した経路IDが示す通信経路において、自身よりも上位のスイッチを判別し、判別したスイッチへPRE−ASSOCメッセージを転送する。そして、スイッチ1は、PRE−ASSOCメッセージを転送したスイッチからPRE−ASSOC−CONFメッセージを受信した場合は、PRE−ASSOC−CONFメッセージを移動先サーバへ送信する。一方、スイッチ1は、取得した経路IDが示す通信経路において、自身よりも上位のスイッチが存在しない場合は、PRE−ASSOC−CONFメッセージをPRE−ASSOCメッセージの送信元へ送信する。
【0047】
また、スイッチ1は、移動先サーバからASSOCメッセージを受信した場合には、VSIIDを他のポートで記憶しているか否かを判別し、記憶している場合には、設定準備したポートプロファイルを適用する。つまり、スイッチ1は、受信したASSOCメッセージが示すVSIIDを、ASSOCメッセージを受信したポートとは異なるポートと対応付けて記憶しているか否かを判別し、記憶している場合には、設定準備したポートプロファイルを適用する。そして、スイッチ1は、ASSOCメッセージに対する応答であるASSOC−CONFメッセージを移動先サーバへ送信する。
【0048】
また、スイッチ1は、ASSOCメッセージのVSIIDを他のポートで記憶していない場合には、ポートプロファイルの適用を行わず、経路IDが示す通信経路において、自身よりも上位のスイッチにASSOCメッセージを転送する。また、スイッチ1は、上位のスイッチからASSOC−CONFメッセージを受信した場合には、ポートプロファイルの適用を行い、受信したASSOC−CONFメッセージを送信先サーバへ転送する。
【0049】
また、スイッチ1は、移動元サーバからDE−ASSOCメッセージを受信した場合は、DE−ASSOCメッセージから経路IDを取得する。そして、スイッチ1は、DE−ASSOCメッセージのVSIIDを他のポートで記憶している場合には、ポートプロファイルを削除し、移動元サーバへDE−ASSOC−CONFメッセージを送信する。また、スイッチ1は、DE−ASSOCメッセージのVSIIDを他のポートで記憶していない場合には、取得した経路IDが示す通信経路における自身よりも上位のスイッチを判別し、判別したスイッチへDE−ASSOCメッセージを転送する。
【0050】
その後、スイッチ1は、自身よりも上位のスイッチからDE−ASSOCメッセージに対する応答であるDE−ASSOC−CONFメッセージを受信した場合には、ポートプロファイルを削除し、移動元サーバへDE−ASSOC−CONFメッセージを送信する。また、スイッチ1は、取得した経路IDが示す通信経路に自身よりも上位のスイッチが存在しない場合は、ポートプロファイルを削除するとともに、DE−ASSOCメッセージに対する応答であるDE−ASSOC−CONFメッセージを移動元サーバへ送信する。
【0051】
つまり、スイッチ1は、VMの移動が自身と接続されたサーバ間で行われる場合には、VSI発見プロトコルに従って、ポートプロファイルの更新を行う。一方、スイッチ1は、VMの移動が自身と接続されたサーバと、自身に接続されていないサーバとの間で行われる場合には、メッセージに格納された経路IDを取得し、経路IDが示す通信経路において、自身よりも上位のスイッチを判定する。そして、スイッチ1は、受信したメッセージを判定したスイッチに転送する。その後、スイッチ1は、上位のスイッチから各メッセージに対する応答を受信した後に、各メッセージの送信元であるサーバへ、各メッセージの応答を送信する。
【0052】
管理サーバ10は、各スイッチ1〜5および各サーバ11〜14を管理するサーバである。例えば、管理サーバ10は、各スイッチ1〜5、および、各サーバ11〜14と図1中の点線で示す管理用ネットワークで接続される。そして、管理サーバ10は、管理用ネットワークを介して、各サーバ11〜14に各VM#1〜#4の起動処理、停止処理等を各サーバ11〜14に指示する。
【0053】
また、管理サーバ10は、各スイッチ1〜5に適用されるポートプロファイル情報を記憶する。例えば、管理サーバ10は、各サーバ11〜14で稼動するVM(Virtual Machine:仮想マシン)に対応付けて、VMの動作環境等を記憶する。また、管理サーバ10は、VMに対応したVLAN(Virtual Local Area Network)、QoS(Quality of Service)、割り当てられた帯域などの情報を記憶する。
【0054】
また、管理サーバ10は、各サーバ11〜14におけるCPU(Central Processing Unit)の使用率や、通信経路におけるトラフィックの量、各サーバ11〜14の消費電力量等に応じて、各VM#1〜#4を効率良く動作させるサーバを算出する。そして、管理サーバ10は、いずれかのVMを他のサーバに移動させる場合には、VMの移動に応じて、移動元のサーバと移動先のサーバとにVMの移動処理の実行を指示する。また、管理サーバ10は、VMを移動させた後においてVM#1〜#4間の通信を中継する最適な通信経路を再度計算し、計算結果に基づいて、各スイッチ1〜5に対して新たなポートプロファイルを適用するためのポートプロファイル情報を算出する。
【0055】
なお、上述した管理サーバ10が各VM#1〜#4を動作させるサーバを算出する処理や、新たな通信経路を計算する手法は、あくまで一例に過ぎず、管理サーバ10は、任意の手法を用いて、新たなサーバおよび通信経路を算出してよい。
【0056】
次に、管理サーバ10が生成したポートプロファイル情報と経路IDとに従って、各スイッチ1〜5が各VM#1〜#4のデータを中継する処理の一例について説明する。図2は、スイッチが経路IDに基づいてデータの転送を行う例について説明するための図である。
【0057】
図2に示す例では、管理サーバ10は、VM#1とVM#2の通信を図2中(A)の点線で示すように、スイッチ1、スイッチ4、スイッチ2を中継する経路ID「2」の通信経路で行わせるポートプロファイル情報を生成する。また、管理サーバ10は、VM#3とVM#4の通信を図2中(B)の点線で示すように、スイッチ1、スイッチ5、スイッチ3を中継する経路ID「1」の通信経路で行わせるポートプロファイル情報を生成する。
【0058】
このような場合には、各スイッチ1〜5は、管理サーバ10が生成したポートプロファイル情報を取得し、取得したポートプロファイル情報を用いて、自身のポートプロファイルを適用する。この結果、例えば、スイッチ1は、サーバ11からVM#1からVM#2に送信されるパケットを受信した場合には、受信したパケットをスイッチ4に転送する。また、スイッチ4は、VM#1からVM#2に送信されるパケットをスイッチ2へ転送する。そして、スイッチ2は、VM#1からVM#3に送信されるパケットをサーバ13へ転送する。
【0059】
また、例えば、スイッチ1は、VM#3からVM#4に送信されるパケットをサーバ12から受信した場合には、受信したパケットをスイッチ5に転送する。また、スイッチ5は、VM#3からVM#4に送信されるパケットをスイッチ3に転送する。そして、スイッチ3は、VM#3からVM#4に送信されるパケットをサーバ14に転送する。
【0060】
次に、図2および図3を用いて、サーバ14が動作中のVM#4をサーバ13に移動させる例について説明する。なお、図3は、仮想マシンの移動時に行われる処理の一例を説明するための図である。例えば、図2に示す例では、VM#1が10Gbps(Giga Bit Per Second)の帯域を利用し、VM#3が10Gbpsの帯域を利用し、VM#2が5Gbpsの帯域を利用しているものとする。
【0061】
また、サーバ11およびサーバ12のCPU使用率が100%であり、サーバ13のCPU使用率が50%であるものとする。また、移動前のCPU#4は、10Gbpsの帯域を利用し、サーバ14のCPU使用率が100%であったものとする。また、各スイッチ1〜5、および各サーバ11〜14間においては、最大で10Gbpsまでの通信を行う事ができるものとする。
【0062】
このような場合には、図2中(A)で示す点線の通信経路、すなわち、VM#1とVM#2との通信経路においては、最大帯域が5Gbpsで通信が行われる。また、図2中(B)で示す点線の通信経路、すなわち、VM#3とVM#4との通信経路においては、最大帯域が10Gbpsで通信が行われる。
【0063】
図3に示す例では、VM#4が利用する帯域が5Gbpsとなり、サーバ14のCPU使用率が50%となったものとする。このような場合には、管理サーバ10は、図3中(C)に示すように、VM#4をサーバ13に移動し、スイッチ3、スイッチ5、サーバ14をスリープさせても、各VM#1〜#4間の通信を継続されることができると判別する。
【0064】
このため、管理サーバ10は、VM#3とVM#4との間における新たな通信経路を算出する。図3に示す例では、管理サーバ10は、図3中(D)で示すように、スイッチ1、スイッチ4、スイッチ2を介する通信経路、すなわち、経路ID「2」で示す通信経路をVM#3とVM#4との通信に用いる新たな通信経路とする。
【0065】
そして、管理サーバ10は、スイッチ1、スイッチ4、スイッチ2がVM#3とVM#4との通信を中継するよう設定するポートプロファイル情報を生成する。また、管理サーバ10は、新たな通信経路を示す経路ID「2」を格納したPRE−ASSOCメッセージとASSOCメッセージとを送信するようサーバ13に指示する。また、管理サーバ10は、経路ID「4」を格納したDE−ASSOCメッセージを送信するようにサーバ14に指示する。
【0066】
このような場合には、移動先のサーバ13は、スイッチ2へ経路ID「2」とVM#4のVSIIDを格納したPRE−ASSOCメッセージを送信する。このような場合には、スイッチ2は、VM#4のVSIIDを記憶していないので、管理サーバ10からVM#4に係るポートプロファイル情報を取得し、適用準備を行うと共に、経路ID「2」における自身よりも上位のスイッチ4を判別する。そして、スイッチ2は、スイッチ4へPRE−ASSOCメッセージを送信する。
【0067】
スイッチ4は、スイッチ2からPRE−ASSOCメッセージを受信した場合には、管理サーバ10からポートプロファイル情報を取得し、適用準備を行う。また、スイッチ4は、経路ID「2」が示す通信経路において、自身よりも上位のスイッチが存在しないため、PRE−ASSOC−CONFメッセージをスイッチ2へ送信する。また、スイッチ2は、PRE−ASSOC−CONFメッセージをサーバ13に送信する。
【0068】
このような場合には、サーバ13は、経路ID「2」を含むASSOCメッセージをスイッチ2へ送信する。すると、スイッチ2は、ASSOCメッセージをスイッチ4に転送する。スイッチ4は、経路ID「2」が示す通信経路において、自身よりも上位のスイッチが存在しないため、ポートプロファイルを適用するとともに、ASSOC−CONFメッセージをスイッチ2へ送信する。そして、スイッチ2は、スイッチ4からASSOC−CONFメッセージを受信した場合には、ポートプロファイルを適用するとともに、ASSOC−CONFメッセージをサーバ13へ送信する。
【0069】
また、送信元サーバであるサーバ14は、経路ID「1」とVM#4のVSIIDを含むDE−ASSOCメッセージを送信する。このような場合には、スイッチ3は、DE−ASSOCメッセージを経路ID「1」が示す通信経路において、自身よりも上位のスイッチ5へ転送する。すると、スイッチ5は、経路ID「1」が示す通信経路において、自身よりも上位のスイッチが存在しないので、VM#4に係るポートプロファイルを削除するとともに、DE−ASSOC−CONFメッセージをスイッチ3に送信する。スイッチ3は、スイッチ5からDE−ASSOC−CONFメッセージを受信した場合には、ポートプロファイルの削除を行うと共に、DE−ASSOC−CONFメッセージをサーバ14に送信する。
【0070】
このように、各スイッチ1〜5は、VMのライブマイグレーションが自身に接続されたサーバ間の移動であると判定した場合には、自装置内でプロファイルの設定処理または削除処理を実行する。また、各スイッチ1〜5は、VMのライブマイグレーションが自身をまたがった移動であると判定した場合には、各メッセージに含まれる経路IDが示す通信経路において、自身よりも上位のスイッチに、各メッセージを転送する。
【0071】
つまり、各スイッチ1〜5は、VSI発見プロトコルに関する各種メッセージを、上位スイッチにまで拡張する。この結果、各スイッチ1〜5は、ポートプロファイルを自動設定できる。また、各スイッチ1〜5は、各メッセージに含まれる経路IDを用いて、移動対象となるVMの通信経路における上位スイッチへ送信するので、適切にポートプロファイルを自動設定することができる。
【0072】
次に、図4を用いて、サーバ11の一例について説明する。図4は、実施例1に係るサーバの構成を示すブロック図である。図4に示すように、サーバ11は、物理インタフェース11aと、仮想スイッチ11bと、CPU11cと、メモリ11eと、仮想領域11fとを有する。また、CPU11cは、VMM11dを動作させる。なお、ここで示したサーバの構成等はあくまで例示であり、これに限定されるものではなく、例えば、SC(System Controller)やMAC(Memory Access Controller)などを有していてもよい。
【0073】
物理インタフェース11aは、少なくとも1つのポートを有し、他のサーバやVMとの通信を制御するNIC(Network Interface Card)である。例えば、物理インタフェース11aは、スイッチ1にVSI発見プロトコルのPRE−ASSOCメッセージ、ASSOCメッセージ、DE−ASSOCメッセージを送信する。また、物理インタフェース11aは、スイッチ1を介して、VSI発見プロトコルのPRE−ASSOC−CONFメッセージ、ASSOC−CONFメッセージ、DE−ASSOC−CONFメッセージを受信する。
【0074】
仮想スイッチ11bは、VMM11dによって仮想的に生成されたスイッチであり、VM間の通信やVMと外部との通信を制御する。例えば、サーバ11で動作するVM#1が、サーバ13で動作するVM#2宛のデータを送信した場合、仮想スイッチ11bは、このデータを受信して物理インタフェース11aに出力する。また、サーバ13で動作するVM#2が、サーバ11で動作するVM#1宛のデータを送信した場合、仮想スイッチ11bは、物理インタフェース11aを介してこのデータを受信してVM#1に出力する。こうして、VM#1とVM#2は、互いに通信が実行できる。
【0075】
CPU11cは、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともにVMM11dを実行し、各種処理を実行する。
【0076】
VMM11dは、VMの作成、削除、起動、停止などVMに関する各種制御を実施するソフトウェアであり、例えばライブマイグレーションを実行する。例えば、VMM11dは、管理者端末や管理サーバ10等からVM作成指示を受信した場合には、仮想領域11fにVMを作成し、管理者端末や管理サーバ10等からVM削除指示を受信した場合には、該当VMを仮想領域11fから削除する。また、VMM11dは、管理者端末や管理サーバ10等からVM起動指示を受信した場合には、仮想領域11f上の該当VMを起動し、管理者端末や管理サーバ10等からVM停止指示を受信した場合には、仮想領域11f上の該当VMを停止する。
【0077】
また、VMM11dは、他のサーバからプレコピーを受信した場合には、当該他のサーバと連動してプレコピーを実行する。さらに、VMM11dは、物理インタフェース11aを介して、移動対象となるVMの新たな通信経路を示す経路IDを管理サーバ10から取得し、取得した経路IDを含むPRE−ASSOCメッセージをスイッチ1に送信する。その後、VMM11dは、物理インタフェース11aを介して、VSI発見プロトコルのPRE−ASSOC−CONFメッセージを受信する。
【0078】
また、VMM11dは、他のサーバからストップアンドコピーを受信した場合には、当該他のサーバと連動してストップアンドコピーを実行する。さらに、VMM11dは、物理インタフェース11aを介して、経路IDを含むASSOCメッセージをスイッチ1に送信する。その後、VMM11dは、物理インタフェース11aを介して、VSI発見プロトコルのASSOC−CONFメッセージを受信する。
【0079】
また、VMM11dは、管理者端末や管理サーバ等からVMの削除指示を受信した場合には、物理インタフェース11aを介して、管理サーバ10から削除対象となるVMの通信経路を示す経路IDを取得する。そして、VMM11dは、取得した経路IDを含むDE−ASSOCメッセージをスイッチ1に送信する。その後、VMM11dは、物理インタフェース11aを介して、VSI発見プロトコルのDE−ASSOC−CONFメッセージを受信する。
【0080】
仮想領域11fは、VMM11dが生成するVMを動作させる領域であり、任意の数のVMを起動することができる。例えば、仮想領域11fでは、仮想サーバであるVM#1と、VM#1の仮想サーバを管理する管理ドメインである管理VMが実行される。なお、VM#1は、仮想メモリや仮想プロセッサを利用して処理を実行する。例えば、仮想メモリは、メモリ11eにおける所定領域をVM#1が使用するメモリとして割り当てることで実現された仮想的なメモリである。
【0081】
メモリ11eは、後述するCPU11cによる各種処理に必要なデータおよびプログラムを格納する半導体メモリ素子などの記憶装置であり、例えば仮想メモリ等の割当などにも利用される。
【0082】
次に、図5を用いて、各スイッチ1〜5の一例について説明する。図5は、実施例1に係るスイッチの一例を説明するための図である。図5に示すように、スイッチ1は、経路テーブル15と、VSIテーブル16と、ポートプロファイルテーブル17と、MAC(Media Access Control)テーブル18とを有する。また、スイッチ1は、通信制御I/F部19と制御部20とを有する。
【0083】
また、制御部20は、メッセージ処理部21と、学習部26と、スイッチング制御部27とを有する。また、メッセージ処理部21は、受信部22と、判定部23と、実行部24と、転送部25とを有する。
【0084】
以下、スイッチ1が有する各部15〜27について説明する。経路テーブル15は、スイッチ1と接続されたサーバ11およびサーバ12が稼働させる仮想マシンに係る通信経路を示す経路IDを記憶する。図6は、実施例1に係る経路テーブルの一例を説明するための図である。図6に示す例では、経路テーブル15は、VMのMACアドレスと経路IDと経路とを対応付けて記憶する。
【0085】
例えば、図6に示す例では、経路テーブル15は、サーバ12が稼働させるVM#3のMACアドレス「MAC3」と、経路ID「1」と、経路「1、5、3」が対応付けて記憶される。ここで、経路「1、5、3」とは、スイッチ1、スイッチ5、スイッチ3を介する通信経路を示す情報である。また、図6に示す例では、経路テーブル15は、サーバ11が稼働させるVM#1のMACアドレスである「MAC1」と、経路ID「2」と、経路「1、4、2」とを対応付けて記憶する。ここで、経路「1、4、2」とは、スイッチ1、スイッチ4、スイッチ2を介する通信経路を示す情報である。
【0086】
VSIテーブル16は、ポートプロファイルの割当情報を記憶する。VSIテーブル16が記憶する情報は、後述する実行部24によって格納または削除される。図7は、VSIテーブルに記憶される情報の一例を示す図である。図7に示すように、VSIテーブル16は、「VSIID、ポートプロファイルID、VSI State、ポート番号」を対応付けて記憶する。なお、VSIテーブル16が記憶する情報は、図7に示した情報に限定されるものではなく、任意に追加または削除することができる。
【0087】
ここで記憶される「VSIID」は、VMを示す識別子であり、「ポートプロファイルID」は、適用されるポートプロファイルを示す識別子である。また、「VSI State」は、ポートプロファイルの状態を示し、「ポート番号」は、ポートプロファイルが割り当てられたポート番号、つまり、VMが使用するポート番号を示す。
【0088】
図7に示す例では、VM#1が使用するポートがP1であり、VM#1に対応するポートプロファイルID=1のポートプロファイルが管理サーバ10から取得済みの状態である。また、VM#3が使用するポートがP2であり、VM#3に対応するポートプロファイルID=2のポートプロファイルがP2に割当済みの状態である。
【0089】
図5に戻って、ポートプロファイルテーブル17は、管理サーバ10から取得された情報をキャッシュする記憶部である。ポートプロファイルテーブル17が記憶する情報は、後述する実行部24によって格納または削除される。図8は、ポートプロファイルテーブルに記憶される情報の一例を示す図である。図8に示すように、ポートプロファイルテーブル17は、「ポートプロファイルID、VLAN、帯域情報」として「1、VLAN100、50MB」や「2、VLAN200、100MB」などと記憶する。なお、ポートプロファイルテーブル17が記憶する情報は、図8に示した情報に限定されるものではなく、任意に追加または削除することができる。
【0090】
ここで記憶される「ポートプロファイルID」は、ポートプロファイルを示す識別子であり、「VLAN」は、プロファイルが設定されるポートが属するVLANを示し、「帯域情報」は、当該ポートに割り当てられた帯域を示す。図8の場合、ポートプロファイルID=1のポートプロファイルは、VLAN100のVLANを用いた50MBの帯域幅をポートに設定することを示す。つまり、このポートを使用するVM#1は、VLAN100のVLANを用いた50MBの帯域幅で通信する。
【0091】
同様に、ポートプロファイルID=2のポートプロファイルは、VLAN200のVLANを用いた100MBの帯域幅をポートに設定することを示す。つまり、このポートを使用するVM#3は、VLAN200のVLANを用いた100MBの帯域幅で通信する。
【0092】
図5に戻って、MACテーブル18は、後述する学習部26によって学習されたサーバのMACアドレスと中継先とを対応付けて記憶する。MACテーブル18が記憶する情報は、後述する学習部26によって格納または削除される。
【0093】
以下、図9A〜図9Eを用いて、各スイッチ1〜5が有するMACテーブルに記憶される情報の一例を説明する。図9Aは、MACテーブルに記憶される情報の一例を説明する第1の図である。図9Bは、MACテーブルに記憶される情報の一例を説明する第2の図である。図9Cは、MACテーブルに記憶される情報の一例を説明する第3の図である。図9Dは、MACテーブルに記憶される情報の一例を説明する第4の図である。図9Eは、MACテーブルに記憶される情報の一例を説明する第5の図である。
【0094】
なお、図9Aは、スイッチ1が有するMACテーブルの一例を示し、図9Bは、スイッチ2が有するMACテーブルの一例を示すものとする。また、図9Cは、スイッチ3が有するMACテーブルの一例を示し、図9Dは、スイッチ4が有するMACテーブルの一例を示すものとし、図9Eは、スイッチ5が有するMACテーブルの一例を示すものとする。なお、MACテーブル18が記憶する情報は、図9A〜9Eに示した情報に限定されるものではなく、任意に追加または削除することができる。
【0095】
例えば、図9Aに示す例では、MACテーブル18は、「MACアドレス、中継先」として「MAC1、サーバ11」、「MAC2、スイッチ4」、「MAC3、サーバ12」、「MAC4、スイッチ5」などを記憶する。ここで記憶される「MACアドレス」は、通信制御I/F部19を介して受信したデータ(パケット)に含まれる送信先のMACアドレスであり、学習されたMACアドレスである。また、「中継先」は、受信したパケットを転送する転送先を示す情報である。
【0096】
図9Aに示す例では、スイッチ1が有するMACテーブル18は、宛先のMACアドレスが「MAC1」であるパケットをサーバ11に転送する旨を示し、宛先のMACアドレスが「MAC2」であるパケットをスイッチ4に転送する旨を示す。また、図9Aに示す例では、MACテーブル18は、宛先のMACアドレスが「MAC3」であるパケットをサーバ12に転送する旨を示し、宛先のMACアドレスが「MAC4」であるパケットをスイッチ5に転送する旨を示す。
【0097】
また、図9Bに示す例では、スイッチ2が有するMACテーブルは、宛先のMACアドレスが「MAC1」であるパケットをスイッチ4に転送する旨を示し、宛先のMACアドレスが「MAC2」であるパケットをサーバ13に転送する旨を示す。また、図9Cに示す例では、スイッチ3が有するMACテーブルは、宛先のMACアドレスが「MAC3」であるパケットをスイッチ5に転送する旨を示し、宛先のMACアドレスが「MAC4」であるパケットをサーバ14に転送する旨を示す。
【0098】
また、図9Dに示す例では、スイッチ4が有するMACテーブルは、宛先のMACアドレスが「MAC1」であるパケットをスイッチ1に転送する旨を示し、宛先のMACアドレスが「MAC2」であるパケットをスイッチ2に転送する旨を示す。また、図9Eに示す例では、スイッチ5が有するMACテーブルは、宛先のMACアドレスが「MAC3」であるパケットをスイッチ1に転送する旨を示し、宛先のMACアドレスが「MAC4」であるパケットをスイッチ3に転送する旨を示す。
【0099】
図5に戻って、通信制御I/F部19は、少なくとも1つのポートを有し、他のサーバとの通信や上位のスイッチ4またはスイッチ5との通信を制御するNICである。例えば、通信制御I/F部19は、各サーバ11から、PRE−ASSOCメッセージやASSOCメッセージ、DE−ASSOCメッセージを受信して、制御部20に出力する。
【0100】
また、通信制御I/F部19は、制御部20から出力された、PRE−ASSOC−CONFメッセージ、ASSOC−CONFメッセージ、DE−ASSOC−CONFメッセージを要求元のサーバに送信する。また、通信制御I/F部19は、スイッチ4またはスイッチ5から送信された、PRE−ASSOC−CONFメッセージ、ASSOC−CONFメッセージ、DE−ASSOC−CONFメッセージを要求元のサーバに転送する。
【0101】
また、通信制御I/F部19は、ブロードキャスト送信したMACテーブル18の更新を指示する経路変更メッセージを受信した場合は、受信した経路変更メッセージを学習部26に出力する。また、通信制御I/F部19は、経路変更メッセージをブロードキャスト送信する旨の通知を学習部26から取得した場合は、取得した経路変更メッセージを下位のスイッチへブロードキャスト送信する。
【0102】
制御部20は、例えば、CPUやMPU(Micro Processing Unit)などの電子回路である。この制御部20は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、メッセージ処理部21と学習部26とスイッチング制御部27とを有し、これらによって各種処理を実行する。
【0103】
メッセージ処理部21は、サーバから受信したVSI発見プロトコルに準拠したメッセージに応じた各種処理を実行する。以下、メッセージ処理部21が有する受信部22、判定部23、実行部24、転送部25が実行する処理の一例について説明する。
【0104】
受信部22は、移動対象のVMが移動する移動先のサーバから、当該VMに対応するポートプロファイル情報の設定要求を受信する。また、受信部22は、VMが稼動する移動元のサーバから、当該VMに対応するポートプロファイル情報の削除要求を受信する。
【0105】
例えば、受信部22は、VMの移動先となるサーバからPRE−ASSOCメッセージを受信した場合には、受信したメッセージを判定部23に出力する。同様に、受信部22は、VMの移動元であるサーバからDE−ASSOCメッセージを受信した場合には、受信したメッセージを判定部23に出力する。また、受信部22は、VMの移動先となるサーバからASSOCメッセージを受信した場合には、受信したメッセージを判定部23に出力する。
【0106】
また、受信部22は、上位のスイッチ4またはスイッチ5からPRE−ASSOC−CONFメッセージを受信した場合には、当該メッセージを転送部25に出力する。また、受信部22は、上位のスイッチ4またはスイッチ5からASSOC−CONFメッセージやDE−ASSOC−CONFメッセージを受信した場合には、当該メッセージを転送部25に出力するとともに、各応答を受信した旨を実行部24に出力する。
【0107】
一例として、受信部22は、図10に示したTLVフォーマットで規定されるメッセージを受信する。図10は、VSI発見プロトコルで用いられるメッセージの一例を示す図である。図10に示す例では、メッセージフォーマットは、7ビットのTLVタイプ、9ビットのTLV情報長、1オクテットのリージョン、3オクテットのVSIタイプIDを有する。
【0108】
また、メッセージフォーマットは、1オクテットのVSIタイプバージョン、1オクテットのVSIIDフォーマット、16オクテットのVSIIDを有する。また、メッセージフォーマットは、図10中の太線で囲む範囲に示すように、1オクテットの経路IDを有する。また、メッセージフォーマットは、1オクテットのフィルターインフォメーションフォーマットを有し、任意のサイズのフィルターインフォメーションを有する。
【0109】
ここで、TLVタイプとTLV情報長とは、TLVヘッダであり、VSIIDフォーマット、VSIID、経路IDとは、VSI Type and Instanceである。また、フィルターインフォメーションフォーマットとフィルターインフォメーションは、Filter Infoである。また、リージョン以降の各情報は、TLV information stringである。すなわち、メッセージフォーマットには、16ビットのTLVヘッダに、メッセージの詳細情報であるTLV information stringが付加されている。
【0110】
ここで、TLVタイプには、メッセージの種別が「PRE−ASSOC」か「ASSOC」か「DE−ASSOC」のいずれであるかを示す情報が格納される。また、VSI Type IDには、ポートプロファイルIDが格納される。また、VSIIDには、移動対象となるVMのVSIIDが格納される。また、経路IDには、移動対象となるVMに係る通信経路を示す経路IDが格納される。
【0111】
このような図10に例示するメッセージを受信した場合は、受信部22は、受信したメッセージのTLV Typeに格納された情報を参照し、メッセージの種別が「PRE−ASSOC」か「ASSOC」か「DE−ASSOC」のいずれかであるかを判別する。
【0112】
図5に戻って、判定部23は、VMを判別するVSIIDを記憶するVSIテーブル16に、受信部22が受信した設定要求に含まれるVSIIDが記憶されているか否かを判定する。また、判定部23は、VMを判別するVSIIDを記憶するVSIテーブル16に、受信部22が受信した削除要求に含まれるVSIIDが記憶されているか否かを判定する。
【0113】
例えば、判定部23は、図10に示したメッセージのTLV TypeがPRE−ASSOC、ASSOCのいずれかが記載されたメッセージが受信された場合、以下の処理を実行する。すなわち、判定部23は、受信したメッセージのVSI Type IDに格納されているVSIIDを取得する。
【0114】
続いて、判定部23は、メッセージから取得したVSIIDがVSIテーブル16に格納されているか否かを判定する。そして、判定部23は、VSIIDがVSIテーブル16に格納されている場合には、VMの移動がスイッチ1をまたがない移動であると判定して、VMの移動がスイッチ1をまたがない移動である旨の通知と当該メッセージとを実行部24に出力する。一方、判定部23は、VSIIDがVSIテーブル16に格納されていない場合には、VMの移動がスイッチ1をまたがった移動であると判定して、以下の処理を実行する。
【0115】
すなわち、判定部23は、メッセージに格納された経路IDを参照し、参照した経路IDが示す通信経路を管理サーバ10から取得する。そして、判定部23は、取得した通信経路において、自身よりも上位のスイッチ、すなわち、スイッチ1よりも上位のスイッチが存在するか否かを判別する。
【0116】
その後、判定部23は、スイッチ1よりも上位のスイッチが存在すると判別した場合には、判別した上位のスイッチに対して、判別したスイッチを示す情報と、受信したメッセージを転送する旨と受信したメッセージとを転送部25に出力する。また、判定部23は、VMの移動がスイッチ1をまたがった移動である旨の通知と受信したメッセージとを転送部25に出力する。
【0117】
また、判定部23は、受信したメッセージが「DE−ASSOC」である場合は、メッセージに格納された経路IDを参照し、参照した経路IDと対応付けて記憶された通信経路を経路テーブル15から取得する。そして、判定部23は、自身よりも上位のスイッチを判別し、判別したスイッチに受信したメッセージを転送する旨と受信したメッセージとを転送部25に出力する。また、判定部23は、VMの移動がスイッチ1をまたがった移動である旨の通知と受信したメッセージとを実行部24に出力する。
【0118】
なお、判定部23は、PRE−ASSOCメッセージに含まれるVSIIDが格納されていると判定した場合に、当該VSIIDと判定結果とを対応付けてメモリ等に格納する。そして、この状態で、判定部23は、メモリ等に判定結果が保持されるVSIIDが含まれるASSOCやDE−ASSOCメッセージを受信した場合、VSIIDが記憶されているか否かの判定を実行せずに、当該メッセージを実行部24に出力することもできる。
【0119】
つまり、判定部23は、VMの移動がスイッチ1をまたがない移動であると判定している状態でASSOCやDE−ASSOCメッセージを受信するので、削除対象のVMの同一ブレードサーバ内で動作していると判定し、当該メッセージを実行部24に出力する。同様に、判定部23は、PRE−ASSOCメッセージに含まれるVSIIDが格納されていないと判定した状態で、ASSOCやDE−ASSOCメッセージを受信した場合、VSIIDの判定を実行せずに、当該メッセージを上位のスイッチ4またはスイッチ5に出力することもできる。
【0120】
また、判定部23は、VMの移動がスイッチ1をまたぐ移動であり、かつ、経路IDが示す通信経路において、スイッチ1よりも上位のスイッチが存在しないと判別した場合には、経路IDを学習部26に通知する。
【0121】
実行部24は、メッセージに含まれるVSIIDがVSIテーブル16に記憶されていると判定部23が判定した場合、つまり、判定部23からVMの移動がスイッチ1をまたがない移動である旨の通知を取得した場合は、設定要求に応じた処理を実行する。例えば、実行部24は、判定部23がPRE−ASSOCメッセージに含まれるVSIIDが記憶されていると判定した場合は、当該VSIIDに対応するポートプロファイルを管理サーバ10から取得して、ポートプロファイルテーブル17に格納する。
【0122】
さらに、実行部24は、取得したポートプロファイルIDと、メッセージが受信されたポート番号と、当該メッセージに含まれるVSIIDとを対応付けてVSIテーブル16に格納し、「VSI State」を「FETCHED」に設定する。そして、実行部24は、PRE−ASSOCメッセージの応答として、PRE−ASSOCメッセージの送信元サーバに、ポートプロファイルを格納したことを示すPRE−ASSOC−CONFメッセージを送信する。
【0123】
その後、実行部24は、判定部23からASSOCメッセージを受信した場合には、当該VSIIDに対応するポートプロファイルをVSIテーブル16から特定する。続いて、実行部24は、特定したポートプロファイルの「VSI State」を「FETCHED」から「ACTIVE」に変更する。そして、実行部24は、ASSOCメッセージの応答として、ASSOCメッセージの送信元サーバに、ポートプロファイルの設定変更が完了したことを示すASSOC−CONFメッセージを送信する。
【0124】
また、実行部24は、DE−ASSOCメッセージに含まれるVSIIDが判定部23によって記憶されていると判定された場合には、当該メッセージに含まれるVSIIDを抽出する。そして、実行部24は、抽出したVSIIDに対応するポートプロファイルをVSIテーブル16から特定し、特定したポートプロファイルを削除する。そして、実行部24は、DE−ASSOCメッセージの応答として、DE−ASSOCメッセージの送信元サーバに、ポートプロファイルの削除が完了したことを示すDE−ASSOC−CONFメッセージを送信する。
【0125】
一方、実行部24は、受信したメッセージに含まれるVSIIDがVSIテーブル16に記憶されていないと判定部23が判定した場合、すなわち、判定部23からVMの移動がスイッチ1をまたがった移動である旨の通知を取得した場合は、以下の処理を実行する。例えば、実行部24は、受信したメッセージがPRE−ASSOCである場合は、当該VSIIDに対応するポートプロファイルを管理サーバ10から取得して、ポートプロファイルテーブル17に格納する。
【0126】
さらに、実行部24は、取得したポートプロファイルIDと、メッセージが受信されたポート番号と、当該メッセージに含まれるVSIIDとを対応付けてVSIテーブル16に格納し、「VSI State」を「FETCHED」に設定する。そして、実行部24は、PRE−ASSOC−CONFメッセージを送信せずに処理を終了する。
【0127】
また、実行部24は、VMの移動がスイッチ1をまたいだ移動である旨の通知とASSOCメッセージとを判定部23から取得した場合には、以下の処理を実行する。すなわち、実行部24は、ASSOCメッセージに含まれるVSIIDを取得し、取得したVSIIDに対応するポートプロファイルをVSIテーブル16から特定する。そして、実行部24は、受信部22からASSOC−CONFメッセージを受信した旨の通知を取得した場合は、特定したポートプロファイルの「VSI State」を「FETCHED」から「ACTIVE」に変更する。つまり、実行部24は、上位のスイッチからASSOC−CONFメッセージを受信した後に、特定したポートプロファイルを有効にする。
【0128】
また、実行部24は、VMの移動がスイッチ1をまたいだ移動である旨の通知とDE−ASSOCメッセージとを判定部23から取得した場合には、以下の処理を実行する。すなわち、実行部24は、DE−ASSOCメッセージに含まれるVSIIDを抽出する。そして、実行部24は、抽出したVSIIDに対応するポートプロファイルをVSIテーブル16から特定する。そして、実行部24は、上位のスイッチからDE−ASSOC−CONFメッセージを受信した旨の通知を受信部22から取得した場合は、特定したポートプロファイルを削除する。つまり、実行部24は、上位のスイッチからDE−ASSOC−CONFを受信した後に、特定したポートプロファイルを削除する。
【0129】
転送部25は、VMの移動がスイッチ1をまたがった移動であると判定部23が判定した場合は、受信部22が受信したメッセージを判定部23が判定した上位のスイッチに転送する。また、転送部25は、受信部22が上位のスイッチ4またはスイッチ5から受信した各応答のメッセージを転送する。
【0130】
例えば、転送部25は、VMの移動がスイッチ1をまたがった移動であると判定部23が判定したPRE−ASSOCメッセージ、ASSOCメッセージ、DE−ASSOCメッセージを取得する。また、転送部25は、判定部23が判別したスイッチに受信したメッセージを転送する旨の通知を取得する。このような場合には、転送部25は、取得した各メッセージを判定部23が判別したスイッチに対して転送する。
【0131】
また、転送部25は、受信部22によってPRE−ASSOC−CONFメッセージが受信された場合、PRE−ASSOCメッセージを送信したサーバに、PRE−ASSOC−CONFメッセージを転送する。同様に、転送部25は、受信部22によってASSOC−CONFメッセージが受信された場合、ASSOCメッセージを送信したサーバに、ASSOC−CONFメッセージを転送する。転送部25は、受信部22によってDE−ASSOC−CONFメッセージが受信された場合、DE−ASSOCメッセージを送信したサーバに、DE−ASSOC−CONFメッセージを転送する。
【0132】
なお、受信部22は、PRE−ASSOCメッセージなどの要求メッセージと、要求メッセージから取得した送信元とを対応付けてメモリ等に格納しておく。こうすることで、例えば、実行部24や転送部25は、応答メッセージの送信元、言い換えると、要求メッセージの送信先を特定できる。例えば、転送部25は、応答メッセージとしてPRE−ASSOC−CONFメッセージを受信した場合に、PRE−ASSOCメッセージに対応する送信元をメモリ等から特定し、特定した送信元にPRE−ASSOC−CONFメッセージを送信できる。その後、転送部25は、PRE−ASSOCメッセージに対応する送信元をメモリ等から削除してもよい。
【0133】
また、受信部22は、PRE−ASSOCメッセージなどの要求メッセージと送信元と、さらに、要求メッセージから取得したVSIIDとを対応付けてメモリ等に格納しておく。こうすることで、VMの移動が複数同時に発生した場合であっても、VSIIDによってどのVMの移動かを特定することができるので、応答メッセージを送信元に送信することができる。
【0134】
図5に戻り、学習部26は、サーバ等のMACアドレスを学習する。例えば、学習部26は、通信制御I/F部19を介して、上位のスイッチがブロードキャスト送信した経路変更メッセージを受信した場合には、受信した信号が示す経路IDに応じて、MACテーブル18を更新する。また、学習部26は、判定部23から経路IDを取得した場合には、取得した経路IDに基づいた経路変更メッセージと信号をブロードキャスト送信する旨の通知を通信制御I/F部19に出力する。
【0135】
ここで、図11A〜11Eを用いて、学習部26がMACテーブル18を修正する処理の例について説明する。図11Aは、MACテーブルを書換える処理の一例を説明する第1の図である。図11Bは、MACテーブルを書換える処理の一例を説明する第2の図である。図11Cは、MACテーブルを書換える処理の一例を説明する第3の図である。図11Dは、MACテーブルを書換える処理の一例を説明する第4の図である。図11Eは、MACテーブルを書換える処理の一例を説明する第5の図である。
【0136】
なお、図11A〜11Eには、図9A〜9Eに例示するMACテーブルを有するスイッチ1〜5が、「MAC3」と「MAC4」に係る中継先を経路ID「2」に基づいて更新を指示する経路変更メッセージに基づいて、各MACテーブルを更新した例を示す。また、図11A〜11Eに示す例では、スイッチ4が経路変更メッセージをブロードキャストしたものとする。なお、図11Aは、スイッチ1が有する書換後のMACテーブルの一例を示し、図11Bは、スイッチ2が有する書換後のMACテーブルの一例を示すものとする。
【0137】
また、図11Cは、スイッチ3が有する書換後のMACテーブルの一例を示し、図11Dは、スイッチ4が有する書換後のMACテーブルの一例を示すものとし、図11Eは、スイッチ5が有する書換後のMACテーブルの一例を示すものとする。
【0138】
例えば、スイッチ1の学習部26は、経路ID「2」が示す通信経路がスイッチ1、スイッチ4、スイッチ2であるため、図11A中(E)に示すように、「MAC4」と対応付けられた中継先を「スイッチ4」に更新する。同様に、スイッチ2の学習部は、図11B中(F)に示すように、「MAC3」と対応付けられた中継先を「スイッチ4」に更新し、「MAC4」と対応付けられた中継先を「サーバ13」に修正する。
【0139】
また、スイッチ3の学習部は、図11C中(G)に示すように、「MAC3」および「MAC4」と対応付けられた中継先を削除する。また、スイッチ4の学習部は、図11D中(H)に示すように、「MAC3」と対応付けられた中継先を「スイッチ1」に更新し、「MAC4」と対応付けられた中継先を「スイッチ2」に更新する。なお、スイッチ5には、スイッチ4がブロードキャスト送信した経路変更メッセージが届かないため、スイッチ5は、MACテーブルの更新を行わない。
【0140】
図5に戻って、スイッチング制御部27は、通信制御I/F部19によって受信されたデータのスイッチング制御を実行する。例えば、スイッチング制御部27は、受信されたデータの宛先のMACアドレスがMACテーブル18に記憶されているか否かを判定する。そして、スイッチング制御部27は、MACアドレスがMACテーブル18に記憶されている場合、当該MACアドレスに対応付けられているポート番号を有するポートから、受信したデータを送信する。一方、スイッチング制御部27は、MACアドレスがMACテーブル18に記憶されていない場合、全てのポートから当該データを送信するフラッディングを実行する。
【0141】
次に、図12を用いて、実施例1に係るシステムで実行される処理の流れを説明する。図12は、スイッチをまたがってVMが移動する際の処理の流れの一例を説明するための図である。なお、図12に示す例では、管理サーバ10は、移動後のVM#4とVM#2との新たな通信経路として、経路ID「2」で示す通信経路を算出したものとする。
【0142】
なお、図12に示す例では、VM#4がサーバ14からサーバ13に移動する場合のシーケンス、各スイッチ1〜5におけるメッセージ受信時の処理の流れ、メッセージ処理の流れを説明する。また、図12に示す例では、新たなポートプロファイルを適用するスイッチ2、スイッチ4を移動先スイッチとし、ポートプロファイルを削除するスイッチ3、スイッチ5を移動元スイッチとした。
【0143】
図12に示す例では、まず、移動先サーバ13は、新しいVMを自サーバ上に生成する(ステップS101)。続いて、サーバ14は、ライブマイグレーション指示を管理サーバ10から受け付けると(ステップS102)、移動対象VMが自サーバで動作している状態で、プレコピーを実施する(ステップS103、S104)。
【0144】
プレコピーが開始されると、サーバ13は、経路ID「2」を含むPRE−ASSOCメッセージを移動先スイッチ2に送信する(ステップS105)。このような場合には、移動先スイッチ2は、ポートプロファイルを取得するとともに(ステップS106)、経路ID「2」が示す通信経路において、自身よりも上位の移動先スイッチ4にPRE−ASSOCを転送する(ステップS107)。次に、移動先スイッチ4は、PRE−ASSOCを受信すると、ポートプロファイルを取得し(ステップS108)、その後、PRE−ASSOC−CONFメッセージを移動先スイッチ2へ送信する(ステップS109)。
【0145】
このような場合には、移動先スイッチ2は、PRE−ASSOC−CONFメッセージを移動先サーバ13へ転送する(ステップS110)。その後、移動先サーバ13と移動元サーバ14は、プレコピーを継続し(ステップS111、S112)、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する(ステップS113、S114)。
【0146】
ストップアンドコピーが開始されると、移動先サーバ13は、経路ID「2」を含むASSOCメッセージを移動先スイッチ2に送信する(ステップS115)。このような場合には、移動先スイッチ2は、ASSOCメッセージを経路ID「2」が示す通信経路における上位の移動先スイッチ4へ転送する(ステップS116)。また、移動先スイッチ4は、ASSOCメッセージを受信すると、ステップS108にて取得したポートプロファイルを適用し(ステップS117)、ASSOC−CONFメッセージを移動先スイッチ2へ送信する(ステップS118)。
【0147】
移動先スイッチ2は、ASSOC−CONFメッセージを移動先スイッチ4から受信した場合には、ステップS106にて取得したポートプロファイルを適用する(ステップS119)。その後、移動先スイッチ2は、ASSOC−CONFメッセージを移動先サーバ13へ転送する(ステップS120)。
【0148】
また、移動元サーバ14は、ストップアンドコピーを実行した後に、経路ID「1」を含むDE−ASSOCメッセージを移動元スイッチ3へ送信する(ステップS121)。このような場合には、移動元スイッチ3は、DE−ASSOCメッセージを経路ID「1」が示す通信経路において、自身よりも上位の移動元スイッチ5へ転送する(ステップS122)。
【0149】
すると、移動元スイッチ5は、VM#4に係るポートプロファイルを削除し(ステップS123)、DE−ASSOC−CONFメッセージを移動元スイッチ3へ送信する(ステップS124)。そして、移動元スイッチ3は、DE−ASSOC−CONFメッセージを受信した場合には、VM#4に係るポートプロファイルを削除し、DE−ASSOC−CONFメッセージを移動元サーバ14へ転送する(ステップS125)。
【0150】
次に、図13を用いて、各スイッチ1〜5がMACテーブルを修正する処理の流れについて説明する。図13は、MACテーブルを修正する処理の流れの一例を説明するための図である。なお、図13は、図12に例示した処理に、各スイッチ1〜5がMACテーブルを修正する処理の流れを追加した図である。また、図13に示すステップS101〜S125は、図12に示すステップS101〜ステップS125と同様の処理であるものとして、説明を省略する。
【0151】
例えば、図13に示す例では、移動先スイッチ4は、ASSOCを受信し、ポートプロファイルを適用した場合には(ステップS117)、以下の処理を実行する。すなわち、移動先スイッチ4は、経路ID「2」を有する経路変更メッセージを下位のスイッチにブロードキャスト送信する(ステップS201)。
【0152】
すると、移動先スイッチ4の下位のスイッチであるスイッチ1は、経路変更メッセージを受信し、受信した経路変更メッセージに応じて、MACテーブル18を変更する(ステップS202)。また、移動先スイッチ4の下位のスイッチである移動元スイッチ3は、経路変更メッセージを受信し、受信した経路変更メッセージに応じて、自身のMACテーブルを変更する(ステップS203)。
【0153】
このように、各スイッチ1〜5は、受信した各メッセージに含まれるVSIIDを記憶していない場合には、各メッセージに含まれる経路IDを取得し、取得した経路IDが示す通信経路において自身よりも上位のスイッチに受信した各メッセージを転送する。そして、各スイッチ1〜5は、上位のスイッチからメッセージに対する応答を受信した場合には、受信した応答を各メッセージの送信元であるサーバへ転送する。
【0154】
次に、図14を用いて、各スイッチ1〜5が実行する処理の流れの一例について説明する。図14は、スイッチが実行する処理の流れの一例を説明するための図である。例えば、図14に示す例では、スイッチ1は、PRE−ASSOCメッセージ、ASSOCメッセージ、DE−ASSOCメッセージのいずれかを受信したか否かを判別する(ステップS301)。そして、スイッチ1は、各メッセージを受信していない場合には(ステップS301否定)、各メッセージを受信するまで待機する。
【0155】
また、スイッチ1は、各メッセージを受信した場合には(ステップS301肯定)、受信したメッセージに含まれるVSIIDがVSIテーブル16に記憶されているか否かを判別する(ステップS302)。そして、スイッチ1は、VSIIDがVSIテーブル16に記憶されていないと判別した場合には(ステップS302否定)、各メッセージに含まれる経路IDに基づいて、上位スイッチを選択する(ステップS303)。
【0156】
また、スイッチ1は、選択した上位スイッチに各メッセージを転送する(ステップS304)。その後、スイッチ1は、上位のスイッチから応答メッセージを受信したか否かを判別し(ステップS305)、受信していないと判別した場合には(ステップS305否定)、受信まで待機する。また、スイッチ1は、上位のスイッチから応答メッセージを受信したと判別した場合には(ステップS305肯定)、応答メッセージをメッセージの送信元に送信し(ステップS307)、処理を終了する。
【0157】
また、スイッチ1は、各メッセージに含まれるVSIIDがVSIテーブル16に記憶されている場合には(ステップS302肯定)、メッセージに応じた処理を実行する(ステップS306)。そして、スイッチ1は、メッセージの送信元に応答メッセージを送信し(ステップS307)、処理を終了する。
【0158】
次に、図15A、図15Bを用いて、各スイッチ1〜5がMACテーブルを更新する処理の流れについて説明する。図15Aは、上位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。また、図15Bは、下位スイッチが経路変更メッセージを送信する処理の流れの一例を説明するための図である。
【0159】
例えば、図15Aに示す例では、スイッチ4やスイッチ5等の上位のスイッチは、スイッチ1〜3等の下位のスイッチから各メッセージを受信したか否かを判別する(ステップS401)。そして、上位のスイッチは、下位のスイッチから各メッセージを受信していない場合には(ステップS401否定)、各メッセージを受信するまで待機し、下位のスイッチから各メッセージを受信した場合は(ステップS401肯定)、以下の処理を実行する。
【0160】
すなわち、上位のスイッチは、各メッセージを受信した受信ポートを除く他のダウンリンクポート、つまり、下位のスイッチと接続されたポートに、MACアドレスと経路IDとを含む経路変更メッセージをブロードキャスト送信する(ステップS402)。その後、上位のスイッチは、処理を終了する。
【0161】
また、図15Bに示す例では、スイッチ1〜3等の下位のスイッチは、スイッチ4やスイッチ5などの上位のスイッチから経路変更メッセージを受信したか否かを判別する(ステップS501)。そして、下位のスイッチは、上位のスイッチから経路変更メッセージを受信していない場合は(ステップS501否定)、経路変更メッセージを受信するまで待機し、経路変更メッセージを受信した場合は(ステップS501肯定)、以下の処理を実行する。すなわち、下位のスイッチは、受信した経路変更メッセージに含まれるMACアドレスと、経路IDとに基づいて、MACテーブルの書き換えを行い(ステップS502)、その後、処理を終了する。
【0162】
次に、図16を用いて、図14中ステップS306に示した処理の一例について説明する。図16は、ポートプロファイルテーブルを修正する処理の流れの一例を説明するための図である。
【0163】
図16に示すように、スイッチ1は、VMの移動がスイッチをまたがない場合には、受信したメッセージから、メッセージ種別を判定する(ステップS601)。そして、実行部24は、メッセージ種別がPRE−ASSOCであると判定した場合、メッセージに含まれるポートプロファイルIDを用いてポートプロファイルテーブル17を検索する(ステップS602)。
【0164】
続いて、スイッチ1は、ポートプロファイルIDがポートプロファイルテーブル17に存在しない場合(ステップS603否定)、当該ポートプロファイルIDに対応するポートプロファイルを管理サーバ10から取得する(ステップS604)。そして、スイッチ1は、取得したポートプロファイルをポートプロファイルテーブル17に格納する(ステップS605)。
【0165】
その後、スイッチ1は、取得したポートプロファイルのIDとVSI情報とをVSIテーブル16に格納する(ステップS606)。このとき、スイッチ1は、VSI情報の「VSI State」を「FETCHED」として格納する。なお、スイッチ1は、VSI情報として、要求メッセージを受信したポートのポート番号と、受信したメッセージのVSIIDとを格納する。
【0166】
一方、スイッチ1は、ポートプロファイルIDがポートプロファイルテーブル17に存在する場合(ステップS603肯定)、ステップS604とステップS605を実行することなく、ステップS606を実行する。
【0167】
また、ステップS601において、スイッチ1は、メッセージ種別がASSOCであると判定した場合、ポートプロファイルの割当を実行する(ステップS607)。例えば、スイッチ1は、ポートにVLANや帯域を設定する。そして、スイッチ1は、受信したメッセージに含まれるVSIIDでVSIテーブル16を検索し、VSIIDに対応付けられた「VSI State」を「ACTIVE」に更新する(ステップS608)。
【0168】
また、ステップS601において、スイッチ1は、メッセージ種別がDE−ASSOCであると判定した場合、ポートプロファイルの割当を削除する(ステップS609)。例えば、スイッチ1は、ポートにVLANや帯域の設定を削除する。そして、スイッチ1は、受信したメッセージに含まれるVSIIDでVSIテーブル16を検索し、VSIIDに対応付けられた情報を削除する(ステップS610)。
【0169】
続いて、スイッチ1は、メッセージからポートプロファイルIDを取得し、このポートプロファイルIDを他のVSIIDが使用しているか否かを判定する(ステップS611)。そして、スイッチは、他のVSIIDが使用していないと判定した場合(ステップS611否定)、当該ポートプロファイルIDに対応付けてポートプロファイルテーブル17に格納されている情報を削除する(ステップS612)。一方、スイッチ1は、他のVSIIDが使用していると判定した場合(ステップS611肯定)、処理を終了する。
【0170】
[実施例1による効果]
上述したように、スイッチ1は、VSI発見プロトコルを拡張し、VMの移動がスイッチ1をまたぐ移動である場合には、移動対象となるVMの通信を中継する通信経路において、自身よりも上位のスイッチに各メッセージを転送する。このため、スイッチ1は、各スイッチ1〜5が多段構成であり、かつ、マルチパスで接続されている場合にも、各スイッチ1〜5のポートプロファイルを自動設定することができる。
【0171】
また、スイッチ1は、各メッセージに含まれる経路IDを用いて、経路IDが示す通信経路において自身よりも上位のスイッチを判定し、判定したスイッチへ各メッセージを転送する。このため、スイッチ1は、ポートプロファイルの更新を要するスイッチに、ポートプロファイルを自動設定させることができる。
【0172】
また、スイッチ1は、VMの移動がスイッチ1をまたがない移動である場合には、各メッセージの転送を行わずに、ポートプロファイルの更新を実行する。このため、スイッチ1は、他のスイッチ2〜5がポートプロファイルの更新を行わずともよい場合には、メッセージを転送しないので、ネットワークの帯域を空けることができる。
【0173】
また、スイッチ1は、受信したメッセージに含まれる経路IDが示す通信経路において、自身よりも上位のスイッチが存在しない場合には、各メッセージの転送を行わずにポートプロファイル情報の更新を行う。このため、スイッチ1は、他のスイッチ2〜5がポートプロファイルの更新を行わずともよい場合には、メッセージを転送しないので、ネットワークの帯域を空けることができる。
【0174】
また、スイッチ1は、上位のスイッチへ各メッセージを転送し、上位のスイッチから各メッセージの応答を受信した場合には、各メッセージの送信元となるサーバへ、受信した応答を転送する。このため、スイッチ1は、各メッセージの送信元となるサーバに対して、適切に応答を送信するので、各サーバに複雑なプロトコルを適用せずに、VSI発見プロトコルを用いた処理を適用すればよい。
【0175】
また、スイッチ1は、上位のスイッチからASSOC−CONFメッセージ、または、DE−ASSOC−CONFメッセージを受信した後に、ポートプロファイルの設定や削除を実行する。このため、スイッチ1は、適切なタイミングで、ポートプロファイルの設定や削除を実行することができる。
【実施例2】
【0176】
以下の実施例2では、複数のスイッチを相互に接続したファブリックの技術が適用された情報処理システムについて説明する。
【0177】
従来、複数のスイッチを相互に接続した集合体を、外部ネットワークに対して1つのスイッチに見せるファブリックの技術が知られている。このようなファブリックの技術が適用された情報処理ネットワークは、外部ネットワークが接続する端点から見たときに、その端点にサーバが接続されているように見えるように動作するエンドホストモード(End Host Mode:EHM)でデータを中継する場合がある。
【0178】
例えば、情報処理ネットワークは、VMを稼働させる複数のサーバと、複数のスイッチを相互に接続したファブリックとを有し、各サーバが稼働させるVM間の通信をファブリックのスイッチに中継させる。また、各VMは、ピングループと呼ばれるグループに組み分けられており、ピングループごとに同一のアップリンクにピン接続し、ピン接続したアップリンクから外部ネットワークに接続する。つまり、各VMは、ピングループごとに同一の端点から外部ネットワークに接続する。
【0179】
ここで、ファブリックに含まれるスイッチは、1つのVMが送受信するデータをマルチパスで転送する場合がある。例えば、スイッチは、VMが送信したデータを受信した場合には、データの送信先IPアドレスやポート番号等に応じて、データを転送する経路を選択し、選択した経路を介して、データの転送を行う。
【0180】
以下、図17を用いて、ファブリックに含まれるスイッチがマルチパスでデータを転送する処理について説明する。図17は、ファブリックのスイッチによる通信の一例を説明するための図である。図17に示す例では、ファブリックは、上位スイッチ#1、上位スイッチ#2、下位スイッチ#1、下位スイッチ#2を有する。また、上位スイッチ#1、上位スイッチ#2は、ファブリックの端点となるスイッチであり、下位スイッチ#1、下位スイッチ#2は、VM#1〜#4と接続するスイッチである。
【0181】
例えば、下位スイッチ#1は、VM#1からVM#3を宛先とするデータを受信する。すると、下位スイッチ#1は、図17中(I)に示すように、データの宛先となるIPアドレスやポート番号に応じて、上位スイッチ#1を介して下位スイッチ#2に転送する経路、または、上位スイッチ#2を介して下位スイッチ#2にデータを転送する経路を選択する。そして、下位スイッチ#1は、選択した経路を介して、データの転送を行う。
【0182】
ここで、従来のVSI発見プロトコルは、サーバと接続されたスイッチにポートプロファイルを自動設定するためのプロトコルであるので、複数のスイッチが相互に接続されたファブリックの各スイッチにポートプロファイルを自動設定できないという問題がある。
【0183】
なお、VSI発見プロトコル(VDP:VSI Discovery Protocol)のメッセージ(以下、VDPメッセージと記載する)を受信したスイッチが上位のスイッチにメッセージをブロードキャストする手法も考えられる。しかし、スイッチは、上位のスイッチにメッセージをブロードキャストした場合には、移動するVMのピングループが接続していないスイッチにもメッセージが送信されるため、無駄なトラフィックが発生する。
【0184】
例えば、図17に示す例では、VM#1とVM#2が上位スイッチ#1にピン接続し、VM#3とVM#4が上位スイッチ#2にピン接続しているものとする。このような場合には、上位スイッチ#1には、VM#1とVM#2のポートプロファイルが存在し、上位スイッチ#2には、VM#1とVM#2のポートプロファイルが存在しない。
【0185】
ここで、下位スイッチ#2は、自身の配下にVM#1が移動する場合には、図17中(J)に示すように、VSI発見プロトコルのメッセージを上位スイッチ#1および上位スイッチ#2にブロードキャスト送信する。しかし、上位スイッチ#2には、VM#1のポートプロファイルが存在しないので、下位スイッチ#2は、無駄なトラフィックを発生させてしまう。
【0186】
実施例2に開示の技術は、一つの側面では、ファブリックの技術が適用されたスイッチ間のポートプロファイルを自動で変更できる。
【0187】
以下、図18を用いて、実施例2に係る情報処理システムを説明する。図18は、実施例2に係る情報処理システムの一例を説明するための図である。図18に示す例では、情報処理システム40は、複数のスイッチ41〜45を相互に接続したファブリック46、管理サーバ50、複数のサーバ51〜54を有する。また、各サーバ51〜54は、ファブリック46を介して、外部ネットワーク49と接続されている。
【0188】
また、VM#1とVM#2は、スイッチ44を端点として外部ネットワーク49に接続するピングループであり、VM#3とVM#4は、スイッチ45を端点として外部ネットワーク49に接続するピングループである。以下、VM#1とVM#2のピングループをピングループAとし、VM#3とVM#4のピングループをピングループBと記載する。
【0189】
以下、情報処理システム40が有するサーバ51〜54、管理サーバ50、ファブリック46について説明する。各サーバ51〜54は、それぞれサーバ11〜14と同様の機能を発揮する。すなわち、各サーバ51〜54は、ハイパーバイザなどと呼ばれるVMM(Virtual Machine Monitor)を実行してVM(Virtual Machine:仮想マシン)を稼働させる情報処理装置である。
【0190】
図18に示す例では、サーバ51は、仮想マシンであるVM#1を稼働させ、サーバ52は、VM#3を稼働させ、サーバ53は、VM#2を稼働させ、サーバ54は、VM#4を稼働させる。また、各サーバ51〜54は、仮想スイッチを動作させ、各VM#1〜#4間における通信を中継させる。
【0191】
また、サーバ51〜54は、管理サーバ50の指示に従って、VM#1〜#4をサーバ間で移動させる場合には、VSI発見プロトコルに従って、自身と接続するスイッチに対してVDPメッセージを送信する。具体的には、サーバ51〜54は、移動先サーバとなる場合には、移動対象となるVMのデータを受信するプレコピー処理を行い、PRE−ASSOCメッセージを送信する。
【0192】
また、サーバ51〜54は、プレコピーが終了した場合には、ストップアンドコピー処理を実行する。そして、サーバ51〜54は、PRE−ASSOCメッセージに対する応答であるPRE−ASSOC−CONFメッセージを受信した場合には、ポートプロファイル情報の設定適用を指示するASSOCメッセージを送信する。
【0193】
また、サーバ51〜54は、移動元サーバとなる場合には、プレコピー処理を開始し、その後、移動対象となるVMを停止させ、VMに係る全てのデータを送信するストップアンドコピー処理を実行する。その後、サーバ51〜54は、移動対象となるVMに係るポートプロファイルの削除を指示するDE−ASSOCメッセージを送信する。
【0194】
なお、各サーバ51〜54は、実施例1とは異なり、PRE−ASSOC、ASSOC、DE−ASSOC等のメッセージに経路IDを格納せずに送信する。すなわち、各サーバ51〜54は、従来のVSI発見プロトコルと同様に、移動対象のVMを示すVSIIDが格納されたメッセージを送信する。
【0195】
次に、管理サーバ50について説明する。管理サーバ50は、管理用ネットワークを介して、各サーバ51〜54に各VM#1〜#4の起動処理、停止処理等を指示する。また、管理サーバ50は、各スイッチ41〜45に適用されるポートプロファイル情報と、各サーバ51〜54が稼働させるVM#1〜#4が所属するピングループ情報50aを記憶する。また、管理サーバ50は、各サーバ51〜54で稼動するVMに対応付けて、VMの動作環境等を記憶する。また、管理サーバ50は、VMに対応したVLAN、QoS、割り当てられた帯域などの情報を記憶する。
【0196】
また、管理サーバ50は、各サーバ51〜54におけるCPUの使用率や、通信経路におけるトラフィックの量、各サーバ51〜54の消費電力量等に応じて、各VM#1〜#4を効率良く動作させるサーバを算出する。そして、管理サーバ50は、いずれかのVMを他のサーバに移動させる場合には、VMの移動に応じて、移動元のサーバと移動先のサーバとにVMの移動処理の実行を指示する。
【0197】
ここで、管理サーバ50は、移動対象となるVMのピングループに含まれるVMが新たに外部ネットワーク49と通信を行う際のアップリンクを選択する。そして、管理サーバ50は、移動対象となるVMのピングループに含まれるVMがピン接続しているアップリンクを変更前アップリンクとし、新たに選択したアップリンクを変更後アップリンクとして、各スイッチ41〜45に通知する。
【0198】
なお、管理サーバ50は、任意の手法を用いて、新たなアップリンクを選択することとしてよい。また、管理サーバ50は、VMの移動が無い場合にも、ピングループのVMがピン接続するアップリンクを変更する場合には、上述した処理を行い、変更前アップリンクと変更後アップリンクとを対応付けたピングループ情報のエントリを各スイッチ41〜45に通知する。
【0199】
ここで、図19は、実施例2に係るピングループ情報の一例を説明するための図である。図19に示す例では、ピングループ情報50aは、ピングループ、変更前アップリンク、変更後アップリンク、VM、備考を対応付けた複数のエントリを有する。ここで、ピングループは、各ピングループの識別子であり、変更前アップリンクは、同一エントリのピングループに所属するVMがピン接続している変更前のアップリンクである。
【0200】
また、変更後アップリンクは、同一エントリのピングループに所属するVMが新たに接続する変更後のアップリンクである。また、VMは、同一エントリのピングループに所属するVMである。また、備考は、各種制御情報であり、例えば、ピングループに所属するVMを使用するクライアント、すなわちテナントの情報が格納される。
【0201】
例えば、図19に示す例では、ピングループ情報50aは、ピングループAのVM#1、VM#2がアップリンクとしてスイッチ44にピン接続し、外部ネットワーク49と通信を行う旨を示す。また、ピングループ情報50aは、ピングループBのVM#3、VM#4がアップリンクとしてスイッチ45にピン接続し、外部ネットワーク49と通信を行う旨を示す。また、ピングループ情報50aは、ピングループBのVM#3、VM#4が新たなアップリンクとしてスイッチ44にピン接続する旨を示す。そして、例えば、管理サーバ50は、各スイッチ41〜45に対して、ピングループBのエントリを送信する。
【0202】
次に、各スイッチ41〜45について説明する。スイッチ41〜45は、スイッチ1〜5と同様に、各サーバ51〜54が稼働させるVM#1〜#4のデータを中継するスイッチである。具体的には、各スイッチ41〜45は、相互に接続され、ファブリック46として動作する。
【0203】
また、スイッチ44およびスイッチ45は、外部ネットワーク49と接続されており、各VM#1〜#4がピン接続するアップリンクとして動作する。詳細には、スイッチ44には、ピングループAに所属するVM#1とVM#2がピン接続し、スイッチ45には、ピングループBに所属するVM#3とVM#4がピン接続する。
【0204】
また、スイッチ41〜45は、下位のスイッチ、または自身と接続されたサーバ51〜54からVSI発見プロトコルのメッセージを受信した場合には、ポートプロファイルを更新する。以下、スイッチ41〜45がポートプロファイルを更新する処理について説明する。なお、以下の説明では、スイッチ42〜45は、スイッチ41と同様の処理を実行するものとして、説明を省略する。
【0205】
例えば、スイッチ41は、管理サーバ50からピングループ情報50aのエントリを受信した場合は、受信したエントリを記憶する。また、スイッチ41は、自身に接続されたサーバ51、52が稼働させるVM#1とVM#3のポートプロファイルを記憶し、記憶したポートプロファイルに応じて、パケットの転送を実行する。すなわち、スイッチ41は、スイッチ1と同様に、VM#1と対応付けたポートを介してパケットを受信した場合には、VM#1から受信したパケットとして転送を行う。
【0206】
また、スイッチ41は、自身に隣接するサーバ51またはサーバ52から、VDPメッセージを受信した場合には、VDPメッセージの内容を判別する。すなわち、スイッチ41は、受信したメッセージが、PRE−ASSOCメッセージであるか、ASSOCメッセージであるか、DE−ASSOCメッセージであるかを判別する。すなわち、スイッチ41は、VDPメッセージがポートプロファイルの設定を示すPRE−ASSOCやASSOCであるか、またはポートプロファイルの削除を示すDE−ASSOCであるかを識別する。
【0207】
また、スイッチ41は、受信したメッセージがPRE−ASSOCメッセージ、またはASSOCメッセージである場合は、VDPメッセージからVSIIDを取得し、取得したVSIIDを記憶しているか否かを判別する。つまり、スイッチ41は、移動対象となるVMの移動がスイッチ41をまたぐ移動であるか否かを判別する。
【0208】
そして、スイッチ41は、取得したVSIIDを記憶している場合は、スイッチ1と同様に、管理サーバ50から新たなポートプロファイル情報を取得し、取得したポートプロファイル情報に従って、ポートプロファイルの設定準備を実行する。そして、スイッチ41は、PRE−ASSOCメッセージの送信元サーバ、すなわち、移動先サーバへPRE−ASSOCメッセージに対する応答であるPRE−ASSOC−CONFメッセージを送信する。
【0209】
一方、スイッチ41は、取得したVSIIDを記憶していない場合は、管理サーバ50から受信したピングループ情報のエントリを閲覧し、識別したVSIIDが示すVM、すなわち移動対象のVMが所属するピングループを判別する。その後、スイッチ41は、識別したVDPメッセージの内容と判別したピングループのVMがピン接続するアップリンクとに応じて、VDPメッセージを転送する上位のスイッチを識別する。
【0210】
詳細には、スイッチ41は、VDPメッセージの内容が新たなポートプロファイルの設定を要求するPRE−ASSOCやASSOCである場合には、移動対象のVMが所属するピングループが、新たにピン接続するアップリンクを識別する。つまり、スイッチ41は、移動対象のVMが所属するピングループの変更後アップリンクを識別する。そして、スイッチ41は、変更後アップリンクに基づいて、VDPメッセージを転送する上位のスイッチを選択し、選択した上位のスイッチへVDPメッセージを転送する。
【0211】
また、スイッチ41は、VDPメッセージの内容がポートプロファイルの削除を要求するDE−ASSOCである場合には、ポートプロファイルの削除を準備するとともに、移動対象のVMが所属するピングループが、ピン接続していたアップリンクを識別する。つまり、スイッチ41は、移動対象のVMが所属するピングループの変更前アップリンクを識別する。そして、スイッチ41は、変更前アップリンクに基づいて、VDPメッセージを転送する上位のスイッチを選択し、選択したスイッチへVDPメッセージを転送する。
【0212】
また、スイッチ41は、ASSOCを転送した上位のスイッチから応答として、ASSOC−CONFを受信した場合には、準備したポートプロファイルの設定を実行し、下位のスイッチにASSOC−CONFを転送する。また、スイッチ41は、DE−ASSOCを転送した上位のスイッチから応答としてDE−ASSOC−CONFを受信した場合には、準備していたポートプロファイルの削除を実行し、下位のスイッチにDE−ASSOC−CONFを転送する。
【0213】
なお、スイッチ41は、VDPメッセージを受信した際に、自身が最も上位のスイッチである場合、すなわち、移動対象のVMがピン接続するアップリンクである場合には、VDPメッセージの転送を行わず、ポートプロファイルの設定や削除を実行する。そして、スイッチ41は、VDPメッセージの送信元となる下位のスイッチ41〜43に、応答を送信する。
【0214】
次に、図20を用いて、スイッチ41の機能構成の一例について説明する。図20は、実施例2に係るスイッチの一例を説明するための図である。図20に示す例では、スイッチ41は、通信制御I/F部19、制御部20a、ピングループ情報記憶部15a、VSIテーブル16、ポートプロファイルテーブル17、MACテーブル18を有する。また、制御部20aは、メッセージ処理部21a、学習部26、スイッチング制御部27を有する。また、メッセージ処理部21aは、受信部22a、判定部23a、実行部24、転送部25aを有する。なお、以下の説明においては、図5と同一の符号を付したものについては、実施例1と同様の処理を実行するものとして、説明を省略する。
【0215】
受信部22aは、受信部22と同様の機能を発揮する。例えば、受信部22aは、移動対象のVMが移動する移動先のサーバから、当該VMに対応するポートプロファイル情報の設定要求であるVDPメッセージを受信する。また、受信部22aは、VMが稼動する移動元のサーバから、当該VMに対応するポートプロファイル情報の削除要求であるVDPメッセージを受信する。そして、受信部22aは、受信したVDPメッセージを判定部23aに出力する。
【0216】
また、受信部22aは、上位のスイッチ44、45からPRE−ASSOC−CONFメッセージを受信すると、受信したPRE−ASSOC−CONFメッセージを転送部25に出力する。また、受信部22aは、上位のスイッチ44、45からASSOC−CONFメッセージやDE−ASSOC−CONFメッセージを受信した場合には、メッセージを転送部25aに出力するとともに、各応答を受信した旨を実行部24に出力する。
【0217】
さらに、受信部22aは、管理サーバ50から移動対象のVMが所属するピングループのピングループ情報50aを受信し、受信したピングループ情報50aをピングループ情報記憶部15aに格納する。
【0218】
判定部23aは、判定部23と同様に、VSIテーブル16に、受信部22aが受信したVDPメッセージに含まれるVSIIDが格納されているか否かを判定する。そして、判定部23aは、VSIIDがVSIテーブル16に格納されている場合には、VMの移動がスイッチ41をまたがない移動であると判定して、VMの移動がスイッチ41をまたがない移動である旨の通知とVDPメッセージとを実行部24に出力する。
【0219】
一方、判定部23aは、VSIIDがVSIテーブル16に格納されていない場合には、VMの移動がスイッチ1をまたがった移動であると判定して、以下の処理を実行する。まず、判定部23aは、VDPメッセージのTLV Typeから、VDPメッセージがPRE−ASSOC、ASSOC、DE−ASSOCのいずれであるかを判別する。また、判定部23aは、VSIIDが示すVMを識別し、ピングループ情報記憶部15aに記憶されたピングループ情報から、識別したVMが所属するピングループを判別する。
【0220】
そして、判定部23aは、VDPメッセージがPRE−ASSOCまたはASSOCである場合には、判別したピングループの変更後アップリンクをピングループ情報記憶部15aから取得する。また、判定部23aは、VDPメッセージがDE−ASSOCである場合は、判別したピングループの変更前アップリンクをピングループ情報記憶部15aから取得する。
【0221】
ここで、判定部23aは、取得した変更前アップリンク、または変更後アップリンクがスイッチ41であるか否かを判別する。そして、判定部23aは、取得した変更前アップリンク、または変更後アップリンクがスイッチ41ではない場合は、VDPメッセージを実行部24に送信する。また、判定部23aは、VDPメッセージと変更前アップリンクまたは変更後アップリンクを転送部25aに送信する。
【0222】
一方、判定部23aは、取得した変更前アップリンク、または変更後アップリンクがスイッチ41である場合は、VDPメッセージを実行部24に送信する。なお、実施例2に関わる実行部24は、実施例1に関わる実行部24と同様の処理を行い、ポートプロファイルテーブル17に格納されたポートプロファイルの設定および削除を実行する。
【0223】
転送部25aは、VMの移動がスイッチ41をまたがった移動であると判定部23aが判定した場合には、VDPメッセージと変更前アップリンク、またはVDPメッセージと変更後アップリンクとを受信する。このような場合には、転送部25aは、受信した変更前アップリンク、または変更後アップリンクに対してVDPメッセージを転送する。
【0224】
すなわち、転送部25aは、VDPメッセージがPRE−ASSOCメッセージ、または、ASSOCメッセージである場合は、変更後アップリンクに対してVDPメッセージを転送する。また、転送部25aは、VDPメッセージがDE−ASSOCメッセージである場合は、変更前アップリンクに対してVDPメッセージを転送する。
【0225】
また、転送部25aは、転送部25と同様に、受信部22aが応答を受信した場合には、VDPメッセージの送信元となるスイッチやサーバに対して、応答を転送する。ここで、転送部25aは、転送部25と同様の手法を用いて、VDPメッセージの送信元となるスイッチやサーバに対して応答を転送する。
【0226】
すなわち、受信部22aは、PRE−ASSOCメッセージなどのVDPメッセージと、VDPメッセージの送信元とを対応付けてメモリ等に格納しておく。そして、転送部25aは、メモリ等に格納されたVDPメッセージの送信元へVDPメッセージの応答を送信する。その後、転送部25aは、応答を送信したVDPメッセージの送信元をメモリ等から削除する。
【0227】
なお、転送部25aは、変更後アップリンク、または変更前アップリンクがスイッチ41と直接接続されている場合は、通信制御I/F部19を介して、VDPメッセージを転送することとなる。また、転送部25aは、変更後アップリンク、または変更前アップリンクがスイッチ41と直接接続されていない場合は、管理サーバ50から変更後アップリンク、または変更前アップリンクにVDPメッセージを転送する経路を取得し、取得した経路で送信する。
【0228】
例えば、転送部25aは、管理サーバ50から、移動対象のVMが変更前アップリンクにピン接続していた経路、または、移動対象のVMが変更後アップリンクにピン接続する経路を取得する。そして、転送部25aは、取得した経路において、自身よりも上位のスイッチに、VDPメッセージを転送する。
【0229】
次に、図21および図22を用いて、仮想マシンが移動する際にファブリック46の各スイッチ41〜45が実行する処理について説明する。なお、以下の説明では、サーバ54が稼働させるVM#4をサーバ53に移動させるとともに、省電力制御のため、スイッチ43、スイッチ45、サーバ54の動作を止める例について説明する。
【0230】
図21は、スイッチがピングループごとにデータの転送を行う例について説明するための図である。例えば、図21中(K)で示すように、ピングループAのVM#1とVM#2は、アップリンクであるスイッチ44にピン接続し、データの送受信を行う。また、図21中(L)で示すように、ピングループBのVM#3とVM#4は、アップリンクであるスイッチ45にピン接続し、データの送受信を行う。
【0231】
詳細には、ピングループAのVM#1とVM#2は、スイッチ44を上位のスイッチとし、スイッチ41およびスイッチ42を下位のスイッチとしてデータの送受信を行う。また、ピングループBのVM#3とVM#4は、スイッチ45を上位のスイッチとし、スイッチ41およびスイッチ43を下位のスイッチとしてデータの送受信を行う。
【0232】
ここで、管理サーバ50は、VM#4を移動させるとともに、スイッチ45とスイッチ43を停止させた際に、ピングループBが接続するアップリンクとしてスイッチ44を選択する。この結果、管理サーバ50は、図19に示すように、ピングループ情報50aのピングループBのエントリに、更新後アップリンクとしてスイッチ44を格納する。そして、管理サーバ50は、スイッチ41〜45に対して、ピングループ情報50aのうち、ピングループBのエントリを各スイッチ41〜45に送信する。
【0233】
次に、サーバ53は、スイッチ42に対して、VM#4のVSIIDが格納されたPRE−ASSOCメッセージを送信する。すると、スイッチ42は、管理サーバからVM#4に関するポートプロファイル設定の準備を行う。また、スイッチ42は、管理サーバ50から受信したピングループ情報50aのエントリから、VM#4が所属するピングループの変更後アップリンクであるスイッチ44を識別する。そして、スイッチ42は、スイッチ44に対して、PRE−ASSOCメッセージを送信する。
【0234】
すると、スイッチ44は、管理サーバ50からVM#4に関する新たなポートプロファイルを取得するとともに、スイッチ42に対して、PRE−ASSOC−CONFメッセージを送信する。すると、スイッチ42は、PRE−ASSOC−CONFメッセージをサーバ53に送信する。
【0235】
続いて、スイッチ42は、サーバ53からASSOCメッセージを受信する。すると、スイッチ42は、PRE−ASSOCメッセージと同様の処理を実行し、ピングループBの変更後アップリンクであるスイッチ44にASSOCメッセージを転送する。すると、スイッチ44は、VM#4に関するポートプロファイルを適用するとともに、ASSOC−CONFメッセージをスイッチ42に送信する。また、スイッチ42は、ASSOC−CONFメッセージをスイッチ44から受信すると、VM#4に関するポートプロファイルを適用し、ASSOC−CONFメッセージをサーバ53に転送する。
【0236】
また、スイッチ43は、サーバ54からVM#4に関するDE−ASSOCメッセージを受信すると、VM#4に関するポートプロファイルの削除を準備するとともに、管理サーバ50から受信したピングループ情報50aのエントリから、VM#4が所属するピングループの変更前アップリンクであるスイッチ45を識別する。そして、スイッチ43は、スイッチ45に対して、DE−ASSOCメッセージを送信する。
【0237】
すると、スイッチ45は、VM#4に関するポートプロファイルを削除するとともに、DE−ASSOC−CONFメッセージをスイッチ43に送信する。また、スイッチ43は、DE−ASSOC−CONFメッセージをスイッチ45から受信すると、VM#4に関するポートプロファイルを削除するとともに、DE−ASSOC−CONFメッセージをサーバ54に転送する。
【0238】
ここで、図22は、仮想マシンの移動後を説明するための図である。情報処理システム40は、上述した処理を実行した後に、図22中(M)に示すように、VM#4をサーバ53に移動させる。この結果、図22中(N)に示すように、ファブリック46の各スイッチ41〜45は、ピングループBに所属するVM#3とVM#4の通信経路を変更する。
【0239】
具体的には、ファブリック46の各スイッチ41〜45は、スイッチ41、スイッチ44、スイッチ42を介して、ピングループBに所属するVM#3およびVM#4の通信を中継する。また、ファブリック46の各スイッチ41〜45は、ピングループBに所属するVM#3およびVM#4がピン接続するアップリンクをスイッチ44とする。
【0240】
次に、図23を用いて、移動対象となるVMが所属するピングループとVDPメッセージの内容に応じて、VDPメッセージを転送する処理の流れについて説明する。図23は、ピングループとVDPメッセージの内容に応じてVDPメッセージを転送する処理の流れを説明するためのシーケンス図である。なお、図23には、VM#4がサーバ54からサーバ53に移動する際に実行する処理について記載し、各スイッチ41〜45には、図19中に示すピングループ情報50aのうち、ピングループBのエントリが送信されたものとする。
【0241】
例えば、移動先サーバ53は、新しいVMを自サーバ上に生成する(ステップS701)。続いて、移動元サーバ54は、ライブマイグレーション指示を管理サーバ50から受け付けると(ステップS702)、移動対象VMが自サーバで動作している状態で、プレコピーを実施する(ステップS703、S704)。
【0242】
プレコピーが開始されると、移動先サーバ53は、ピングループBの変更後アップリンクであるスイッチ44までの経路において、自身よりも上位のスイッチであるスイッチ42にPRE−ASSOCメッセージを移動先スイッチ42に送信する(ステップS705)。このような場合には、移動先スイッチ42は、ポートプロファイルを取得するとともに(ステップS706)、ピングループBの変更後アップリンクであるスイッチ44にPRE−ASSOCを転送する(ステップS707)。次に、移動先スイッチ44は、PRE−ASSOCを受信すると、ポートプロファイルを取得し(ステップS708)、その後、PRE−ASSOC−CONFメッセージを移動先スイッチ42へ送信する(ステップS709)。
【0243】
このような場合には、移動先スイッチ42は、PRE−ASSOC−CONFメッセージを移動先サーバ53へ転送する(ステップS710)。その後、移動先サーバ53と移動元サーバ54は、プレコピーを継続し(ステップS711、S712)、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する(ステップS713、S714)。
【0244】
移動先サーバ53は、ストップアンドコピーが開始後に、PRE−ASSOCと同様に、ピングループBの変更後アップリンクであるスイッチ44までの経路において、自身よりも上位の移動先スイッチ42にASSOCメッセージを送信する(ステップS715)。このような場合には、移動先スイッチ42は、ピングループBの変更後アップリンクである移動先スイッチ44にPRE−ASSOCを転送する(ステップS716)。また、移動先スイッチ44は、ASSOCメッセージを受信すると、ステップS708にて取得したポートプロファイルを適用し(ステップS717)、ASSOC−CONFメッセージを移動先スイッチ42へ送信する(ステップS718)。
【0245】
移動先スイッチ42は、ASSOC−CONFメッセージを移動先スイッチ44から受信した場合には、ステップS706にて取得したポートプロファイルを適用する(ステップS719)。その後、移動先スイッチ42は、ASSOC−CONFメッセージを移動先サーバ53へ転送する(ステップS720)。
【0246】
また、移動元サーバ54は、ストップアンドコピーを実行した後に、ピングループBの変更前アップリンクである移動元スイッチ45まで経路上で、自身よりも上位のスイッチである移動元スイッチ43にDE−ASSOCメッセージを送信する(ステップS721)。このような場合には、移動元スイッチ43は、ピングループBの変更前アップリンクである移動元スイッチ45にDE−ASSOCメッセージを転送する(ステップS722)。
【0247】
すると、移動元スイッチ45は、VM#4に係るポートプロファイルを削除し(ステップS723)、DE−ASSOC−CONFメッセージを移動元スイッチ43へ送信する(ステップS724)。そして、移動元スイッチ43は、DE−ASSOC−CONFメッセージを受信した場合には、VM#4に係るポートプロファイルを削除し、DE−ASSOC−CONFメッセージを移動元サーバ54へ転送する(ステップS725)。
【0248】
なお、ファブリック46の各スイッチ41〜45は、MACアドレスの動的学習を行わない場合は、以下の処理を実行する。すなわち、各スイッチ41〜45は、リバースARP(Address Resolution Protocol)等を送出し、移動するVMのMACアドレスとIPアドレスとが移動先のサーバに移行したことを他のスイッチに通知することで、移動したVMのデータを転送する経路の変更を行う。具体的には、アップリンクとなるスイッチ44、45が、下位のスイッチ41〜43に対して、移動するVMが所属するピングループの情報をブロードキャストすることで、通信経路の変更を実現する。
【0249】
以下、図24を用いて、各スイッチ41〜45が、MACアドレスの動的学習を行わない場合に、経路変更を行う処理の流れについて説明する。図24は、MACアドレスを動的学習しない場合の処理の流れを説明するためのシーケンス図である。なお、図24に記載した処理のうち、図23と同様の処理については、同一のステップ番号を付し、説明を省略する。
【0250】
例えば、ピングループBの変更後アップリンクである移動先スイッチ44は、移動先スイッチ42からASSOCメッセージを受信し、ポートプロファイルを適用した場合は(ステップS717)、以下の処理を実行する。すなわち、移動先スイッチ44は、ASSOCメッセージを受信したポート以外のポートから、自身よりも下位のスイッチ41および移動元スイッチ43に対して、ピングループBの情報をブロードキャスト送信する(ステップS801)。具体例を挙げると、スイッチ44は、ピングループBに所属するVM#3とVM#4の通信を中継する経路の情報をブロードキャスト送信する。
【0251】
すると、移動先スイッチ44の下位のスイッチであるスイッチ41は、受信したピングループBの情報に応じて、MACテーブル18を変更する(ステップS802)。また、移動先スイッチ44の下位のスイッチである移動元スイッチ43は、スイッチ41と同様に、ピングループBの情報に応じて、自身のMACテーブルを変更する(ステップS803)。
【0252】
また、移動先スイッチ44は、ピングループB情報をブロードキャスト送信した場合は、自身のMACテーブルを変更して経路変更を適用する(ステップS804)。また、移動先スイッチ42は、ポートプロファイルの適用を行った場合は(ステップS719)、自身のMACテーブルを変更して経路変更を適用する(ステップS805)。
【0253】
すなわち、実施例1に係るスイッチ1〜5は、図9A〜9Eに示すMACアドレスを図11A〜11Eに示すように修正することで経路を変更した。各スイッチ41〜45は、ブロードキャスト送信されたピングループBの情報に基づいて、スイッチ1〜5と同様の修正を適用する事で、経路変更を適用する。
【0254】
次に、図25を用いて、スイッチ41が実行する処理の流れについて説明する。図25は、実施例2に係るスイッチが実行する処理の流れを説明するためのフローチャートである。図25に示す例では、スイッチ41は、VDPメッセージを受信したか否かを判別する(ステップS901)。そして、スイッチ41は、VDPメッセージを受信した場合には(ステップS901肯定)、VDPメッセージに含まれるVSIIDがVSIテーブル16に記憶されているか否かを判別する(ステップS902)。
【0255】
そして、スイッチ41は、VSIIDがVSIテーブル16に記憶されていない場合は(ステップS902否定)、ピングループ情報とVDPメッセージの内容に基づいて、上位スイッチを選択する(ステップS903)。そして、スイッチ41は、上位スイッチにVDPメッセージを転送する(ステップS904)。
【0256】
また、スイッチ41は、応答メッセージを上位のスイッチから受信した否かを判別し(ステップS905)、受信した場合には(ステップS905肯定)、応答メッセージをVDPメッセージの送信元へ送信し(ステップS907)、処理を終了する。一方、スイッチ41は、VDPメッセージに含まれるVSIIDがVSIテーブル16に記憶されている場合は(ステップS902肯定)、VDPメッセージに応じた処理を実行する(ステップS906)。すなわち、スイッチ41は、図16に示す各処理を実行し、ポートプロファイルテーブルの修正を行う。
【0257】
なお、スイッチ41は、VDPメッセージを受信していない場合は(ステップS901否定)、再度VDPメッセージを受信したか否かを判別する(ステップS901)。また、スイッチ41は、応答メッセージを受信していない場合は(ステップS905否定)、再度応答メッセージを受信したか否かを判別する(ステップS905)。
【0258】
次に、図25中のステップS903にて、スイッチ41が上位のスイッチを選択する処理の流れを、図26を用いて説明する。図26は、実施例2に係るスイッチが上位スイッチを選択する処理の流れを説明するためのフローチャートである。例えば、スイッチ41は、受信したVDPメッセージがDE−ASSOCであるか否かを判別する(ステップS1001)。
【0259】
そして、スイッチ41は、受信したVDPメッセージがDE−ASSOCである場合は(ステップS1001肯定)、ピングループ情報の変更前アップリンクへの経路における上位スイッチを選択し(ステップS1002)、ステップS904の処理を実行する。一方、スイッチ41は、受信したVDPメッセージがDE−ASSOCではない場合は(ステップS1001否定)、ピングループ情報の変更後アップリンクへの経路における上位スイッチを選択し(ステップS1003)、ステップS904の処理を実行する。
【0260】
次に、図27Aを用いて、上位スイッチ、すなわち、他のスイッチからVDPメッセージを受信したスイッチが、ピングループ情報と経路変更の対象となるMACアドレスとを含む経路変更メッセージをブロードキャスト送信する処理の流れについて説明する。図27Aは、上位スイッチが経路変更メッセージを送信する処理の流れを説明するためのフローチャートである。
【0261】
例えば、図27Aに示す例では、スイッチ44は、下位スイッチ、例えば、スイッチ42からVDPメッセージを受信したか否かを判別する(ステップS1101)。そして、スイッチ44は、VDPメッセージを受信した場合は(ステップS1101肯定)、以下の処理を実行する。
【0262】
すなわち、スイッチ44は、VDPメッセージを受信した受信ポートを除く、他のダウンリンクポート、すなわち、下位スイッチと接続されるポートから、経路変更メッセージを送信し(ステップS1102)、処理を終了する。ここで、経路変更メッセージとは、経路変更対象となるMACアドレスと、ピングループ情報とを含むメッセージである。なお、図27Aに示す処理は、図24中ステップS801の処理と対応する。一方、スイッチ44は、下位スイッチからVDPメッセージを受信していない場合は(ステップS1101否定)、再度、VDPメッセージを受信したか判別する(ステップS1101)。
【0263】
次に、図27Bを用いて、上位のスイッチがブロードキャスト送信した経路変更メッセージを受信したスイッチが経路を変更する処理の流れについて説明する。図27Bは、下位スイッチが経路変更メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。
【0264】
例えば、図27Bに示す例では、スイッチ41は、上位スイッチ、例えば、スイッチ44から経路変更メッセージを受信したか否かを判別する(ステップS1201)。そして、スイッチ41は、経路変更メッセージを受信した場合は(ステップS1201肯定)、受信した経路変更メッセージに含まれるMACアドレスとピングループ情報に基づいて、MACテーブル16を書き換えし(ステップS1202)、処理を終了する。なお、スイッチ41は、上位スイッチから経路変更メッセージを受信していない場合は(ステップS1201否定)、再度上位スイッチから経路変更メッセージを受信したか判別する(ステップS1201)。
【0265】
[実施例2の効果]
上述したように、スイッチ41〜45は、受信したVDPメッセージに格納されるVSIIDを記憶していない場合は、VDPメッセージの内容と、移動対象のVMが所属するピングループとに応じて、VDPメッセージを転送する上位のスイッチを選択する。そして、スイッチ41〜45は、選択したスイッチにVDPメッセージを転送する。
【0266】
このため、スイッチ41〜45は、VDPメッセージを上位のスイッチにブロードキャスト送信せずとも、ポートプロファイルを変更すべきスイッチにVDPメッセージを転送することができる。この結果、情報処理システム40は、ファブリック46を用いて各サーバ51〜54や外部ネットワーク49の通信を中継する場合にも、自動でポートプロファイルの設定を行うことができる。
【0267】
また、スイッチ41〜45は、VDPメッセージの内容がPRE−ASSOCメッセージ、またはASSOCメッセージである場合には、移動対象のVMが移動後にピン接続する変更後アップリンクを識別する。その後、スイッチ41〜45は、識別した変更後アップリンクへ、VDPメッセージを転送する。一方、スイッチ41〜45は、VDPメッセージの内容がDE−ASSOCである場合には、移動対象のVMが移動前にピン接続する変更前アップリンクを識別する。そして、スイッチ41〜45は、識別した変更後アップリンクへ、VDPメッセージを転送する。
【0268】
すなわち、各スイッチ41〜45は、VMが移動前にピン接続するアップリンクへの経路上に存在するスイッチに対しては、DE−ASSOCを転送する。また、各スイッチ41〜45は、VMが移動後にピン接続するアップリンクへの経路上に存在するスイッチに対しては、PRE−ASSOCとASSOCとを転送する。この結果、各スイッチ41〜45は、VMの移動によってポートプロファイルの更新を行うべきスイッチに対して、VDPメッセージを転送することができる。
【0269】
また、スイッチ41〜45は、変更前アップリンク、または変更後アップリンクである場合、すなわち、VDPメッセージを転送すべきスイッチのうち最も上位のスイッチである場合には、ポートプロファイルの設定を行う。そして、スイッチ41〜45は、VDPメッセージの転送元に応答を送信する。このため、スイッチ41〜45は、アップリンクとして外部ネットワーク49と各サーバ51〜54との通信を中継する場合にも、適切にポートプロファイルの設定を行う事ができる。
【実施例3】
【0270】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【0271】
(1)経路選択について
上述した各スイッチ1〜5は、各メッセージに含まれる経路IDを用いて、ポートプロファイルを更新すべき上位のスイッチを判定し、判定したスイッチに各メッセージを転送した。しかし、実施例はこれに限定されるものではなく、各スイッチ1〜5は、ポートプロファイルを更新すべきスイッチに対して各メッセージを転送することができれば、任意の手法を用いることができる。
【0272】
例えば、各スイッチ1〜5は、受信した各メッセージに含まれるVSIIDを記憶していない場合は、自身よりも上位のスイッチに対して、受信したメッセージをブロードキャスト送信してもよい。このような場合には、ブロードキャスト送信されたメッセージを受信した上位のスイッチは、受信したメッセージが示すVSIIDに基づいて、自身のポートプロファイルを更新すればよい。このような場合には、各スイッチ1〜5は、上位のスイッチを判定する処理をスキップできるので、上位のスイッチに対して迅速にポートプロファイルを自動設定できる。
【0273】
また、各スイッチ1〜5は、FDB(Forwarding DataBase)に、経路IDを含めて一元管理する。そして、各スイッチ1〜5は、受信した各メッセージに含まれる経路IDと対応付けて記憶されたMACアドレスとを宛先として、各メッセージを転送してもよい。すなわち、各スイッチ1〜5は、受信した各メッセージに含まれる経路IDと、FDBとを用いて、各メッセージを転送すべき上位のスイッチを判定してもよい。このような場合には、各スイッチ1〜5は、経路テーブルを有する必要がないので、装置規模を削減することができる。
【0274】
また、各スイッチ1〜5は、仮想マシンが使用する仮想ネットワークを判別する情報、すなわち、VLANの情報を記憶する。そして、各スイッチ1〜5は、各メッセージのVSIIDを用いて、移動対象となるVMが利用してたVLANを判別し、判別したVLANに係るスイッチへ各メッセージを転送する。このような場合には、各スイッチ1〜5は、VLANに基づく容易な処理で、各メッセージを転送すべき上位のスイッチを判定することができる。
【0275】
また、各スイッチ1〜5は、各メッセージを受信したポート番号に基づいて、各メッセージを転送する上位スイッチを選択してもよい。このような処理を実行した場合には、各スイッチ1〜5は、入力ポート番号に基づく容易な処理で、各メッセージを転送する上位のスイッチを判定することができる。
【0276】
また、各スイッチ1〜5は、各メッセージの送信元であるサーバやスイッチのMACアドレスやIPアドレスに基づいて、各メッセージの転送先となるスイッチを判定してもよい。各スイッチ1〜5は、各メッセージの送信元であるサーバやスイッチのMACアドレスやIPアドレスに基づいて、各メッセージの転送先を判定した場合には、決め細やかな経路選択を行うことができる。
【0277】
また、各スイッチ1〜5は、自身と接続されたスイッチやサーバに対して、あらかじめ優先度(Priority Group)を設定する。例えば、各スイッチ1〜5は、トラフィックの種類に応じて、ストレージとして動作するネットワークに含まれるスイッチやサーバには「Priority 3」を設定し、他のLANに含まれるスイッチやサーバには「Priority 0」を設定する。そして、各スイッチ1〜5は、受信した各メッセージの送信元に設定された優先度が「Priority 3」である場合には、「Priority 3」の上位スイッチに各メッセージを転送する。また、各スイッチ1〜5は、受信した各メッセージの送信元に設定された優先度が「Priority 0」である場合には、「Priority 0」の上位スイッチに各メッセージを転送する。このような処理を実行する場合には、各スイッチ1〜5は、ポートプロファイルの更新対象となるネットワークの種別に応じて、上位スイッチを判定することができる。
【0278】
(2)ネットワークについて
上述した実施例では、スイッチ1〜5とサーバ11〜14をマルチパスで接続した例について説明した。しかし、実施例は、これに限定されるものではない。例えば、各スイッチおよび各サーバの数は、任意の数を適用することができる。また、各サーバ間の通信を中継するスイッチの数は、任意の段数を適用することができる。例えば、サーバ11とサーバ14との通信を5つのスイッチが中継し、サーバ12とサーバ13との通信を3つのスイッチが中継してもよい。
【0279】
(3)管理サーバについて
上述した実施例では、各サーバ11〜14は、管理サーバ10の指示により、ライブマイグレーションを実行した。しかし、実施例はこれに限定されるものではなく、例えば、ライブマイグレーションを実行するたびに、管理者が管理用端末等から各サーバ11〜14に指示を送信してもよい。
【0280】
(4)各処理について
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0281】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば受信部22と判定部23とを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0282】
(5)VDPメッセージを転送する上位のスイッチについて
上述したスイッチ41〜45は、受信したVDPメッセージの種別と、移動するVMが所属するピングループのVMがピン接続するアップリンクに応じて、VDPメッセージを転送する上位のスイッチを選択した。しかし、実施例は、これに限定されるものではない。例えば、スイッチ41〜45は、VDPメッセージの種別に係らず、移動するVMが所属するピングループのVMがピン接続するアップリンクに応じて、VDPメッセージを転送する上位のスイッチを選択しても良い。
【0283】
具体的には、スイッチ41〜45は、VDPメッセージに含まれるVSIIDがVSIテーブルに記憶されていない場合には、移動対象となるVMが移動前にピン接続する変更前アップリンクと、移動後にピン接続する変更後アップリンクとを識別する。そして、スイッチ41〜45は、識別した変更前アップリンクと変更後アップリンクへデータを送信する経路上の上位スイッチへ、VDPメッセージを転送してもよい。
【0284】
すなわち、スイッチ41〜45は、移動対象となるVMのピングループに応じた上位スイッチのみに、VDPメッセージを転送するので、ファブリック46内の余計なトラフィックを削減することができる。
【0285】
(6)他の情報を用いた上位のスイッチの選択について
上述したスイッチ1〜5およびスイッチ41〜45は、経路IDやピングループの情報を用いて、VDPメッセージを転送する上位スイッチを選した。しかし、実施例は、これに限定されるものではない。例えば、各スイッチ41〜45は、異なるピングループのVM同士が通信を行わない場合は、移動対象となるVMと同一のピングループに所属するVMがピン接続する上位スイッチのみにVDPメセージを中継してもよい。
【0286】
また、スイッチ41〜45は、各VMを使用しているクライアントの情報、すなわちテナント情報を用いて、VDPメッセージを転送する上位スイッチを選択してもよい。以下、テナント情報を用いてVDPメッセージを転送するスイッチの一例を、図28を用いて説明する。図28は、バリエーションの一例を説明するための図である。
【0287】
図28に示す例では、ファブリックは、上位スイッチ#1、上位スイッチ#2、下位スイッチ#1、下位スイッチ#2を有する。また、下位スイッチ#1の配下には、VM#1〜#3が存在し、下位スイッチ#2の配下には、VM#4〜#6が存在する。また、VM#2〜VM#5は、同一テナントのVMである。また、図28に示す例では、VM#2、VM#3、VM#5が上位スイッチ#1にピン接続し、VM#1、VM#4が上位スイッチ#2にピン接続する。
【0288】
そして、各スイッチ41〜45は、VDPメッセージを受信した場合は、移動対象となるVMと同一テナントのVMのvNIC(Virtual Network Interface Card)が、ピン接続しておらず、かつ、自身のvNICがピン接続していない上位スイッチを識別する。そして、各スイッチ41〜45は、識別した上位スイッチ以外の上位スイッチに対して、VDPメッセージを転送する。なお、各スイッチ41〜45は、同一テナントのVMでも通信をする可能性がないvNIC、例えば、下位スイッチの配下に存在するvNICがピン接続している上位スイッチについても、選択しない。
【0289】
例えば、図28に示す例では、下位スイッチ#2は、VM#5に係るVDPメッセージを受信すると、上位スイッチ#2に対して、VM#5と同一のテナントのVM#2〜VM#4のvNICがピン接続していないと判別する。また、下位スイッチ#2は、上位スイッチ#2に対して、自身のvNICが上位スイッチ#2にピン接続していないと判別する。そして、下位スイッチ#2は、VDPメッセージを上位スイッチ#1にのみ転送する。この結果、下位スイッチ#2は、上位スイッチ#2に無駄なVDPメッセージを転送せずとも、ポートプロファイルを適切に変更できるので、ファブリック内の無駄なトラフィックを削減することができる。
【0290】
(7)プログラム
ところで、実施例1に係る各スイッチ1〜5、および実施例2に係る各スイッチ41〜45は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをデータ中継装置が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図29を用いて、制御部20、制御部20aと同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図29は、中継プログラムを実行するコンピュータの一例を説明するための図である。
【0291】
図29に例示されたコンピュータ100は、RAM(Random Access Memory)101、HDD(Hard Disk Drive)102、ROM(Read Only Memory)103、CPU(Central Processing Unit)104を有する。HDD102には、MACテーブル102a、ポートプロファイルテーブル102b、VSIテーブル102c、経路テーブル102dが予め保存される。なお、各テーブル102a〜102dは、図5に例示する各テーブル15〜18と同様の情報を有するものとする。
【0292】
ROM103には、中継プログラム103aが格納されており、CPU104が中継プログラム103aを読み出して実行することによって、図29に示す例では、中継プロセス104aとして機能するようになる。なお、中継プロセス104aは、図1に示した制御部20と同様の機能を発揮するが、図20に示した制御部20aと同様の機能を発揮させることもできる。
【0293】
なお、本実施例で説明した中継プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【0294】
1〜5、41〜45 スイッチ
10、50 管理サーバ
11〜14、51〜54 サーバ
11a 物理インタフェース
11b 仮想スイッチ
11c CPU
11d VMM
11e メモリ
11f 仮想領域
15 経路テーブル
15a ピングループ情報記憶部
16 VSIテーブル
17 ポートプロファイルテーブル
18 MACテーブル
19 通信制御I/F部
20a 制御部
21a メッセージ処理部
22a 受信部
23a 判定部
24 実行部
25a 転送部
26 学習部
27 スイッチング制御部
40 情報処理システム
49 外部ネットワーク
50a ピングループ情報

【特許請求の範囲】
【請求項1】
仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置において、
自身と接続されたサーバで稼働する仮想マシンを示す仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶部と、
自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信する受信部と、
前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶しているか否かを判定する判定部と、
前記記憶部が前記受信した仮想マシン識別子を他のポートで記憶していないと前記判定部が判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する転送部と
を有することを特徴とするデータ中継装置。
【請求項2】
前記受信部は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、当該仮想マシンが通信を行う際の通信経路を示す経路識別子と、ポートプロファイルの設定要求とを受信し、
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、前記受信部が受信した経路識別子が示す通信経路を判別し、当該判別した通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
ことを特徴とする請求項1に記載のデータ中継装置。
【請求項3】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していると前記判定部が判定した場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、当該仮想マシン識別子が示す仮想マシンのポートプロファイルの更新を実行する実行部を有することを特徴とする請求項2に記載のデータ中継装置。
【請求項4】
前記実行部は、前記受信部が受信した経路識別子が示す通信経路において自身よりも上位のデータ中継装置が存在しない場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、前記受信部が受信した仮想マシン識別子が示す仮想マシンのポートプロファイルを更新することを特徴とする請求項3に記載のデータ中継装置。
【請求項5】
前記受信部は、自身よりも上位のデータ中継装置から前記ポートプロファイルの設定要求に対する応答を受信し、
前記転送部は、前記受信部が受信した経路識別子が示す通信経路において自身よりも上位のデータ中継装置が存在する場合には、前記受信部が当該上位のデータ中継装置から前記応答を受信した後に、自身よりも下位のデータ中継装置、または、自身と接続された前記サーバに対して、前記応答を転送することを特徴とする請求項4に記載のデータ中継装置。
【請求項6】
前記実行部は、前記受信部が、前記上位のデータ中継装置から前記応答を受信した後で、前記ポートプロファイルを更新することを特徴とする請求項5に記載のデータ中継装置。
【請求項7】
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、自身よりも上位のデータ中継装置に対して、前記ポートプロファイルの設定要求をブロードキャスト送信することを特徴とする請求項1に記載のデータ中継装置。
【請求項8】
前記データ中継装置は、
自身を含む通信経路を示す経路識別子と、MACアドレスとを対応付けて記憶する経路情報記憶部を有し、
前記受信部は、自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、当該仮想マシンが通信を行う際の通信経路を判別する経路識別子と、ポートプロファイルの設定要求とを受信し、
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、前記経路情報記憶部が当該経路識別子と対応付けて記憶する前記MACアドレスとが示すデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項9】
前記受信部は、前記移動対象の仮想マシンが使用していた仮想ネットワークを判別する情報を含む前記設定要求を受信し、
前記転送部は、前記設定要求に含まれる前記仮想ネットワークを判別する情報を用いて、前記移動対象の仮想マシンが使用していた仮想ネットワークを判別し、当該判別した仮想ネットワークにおいて当該仮想マシンのデータを中継するデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項10】
前記データ中継装置は、
中継するデータを受信したポート番号と、当該データの送信先となるデータ中継装置とを対応付けて記憶する転送記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求を受信したポート番号と対応付けて記憶されたデータ中継先を前記転送記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項11】
前記データ中継装置は、
受信したデータの送信元であるサーバのMACアドレスと、当該データの転送先となるデータ中継装置とを対応付けて記憶するMACアドレス記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求の送信元となるサーバのMACアドレスと対応付けて記憶されたデータ中継装置をMACアドレス記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項12】
前記データ中継装置は、
受信したデータの送信元であるサーバのIPアドレスと、当該データの転送先となるデータ中継装置とを対応付けて記憶するIPアドレス記憶部を有し、
前記転送部は、前記ポートプロファイルの設定要求の送信元となるサーバのIPアドレスと対応付けて記憶されたデータ中継装置を前記IPアドレス記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項13】
前記データ中継装置は、
中継するデータを転送する優先度を示す優先情報と、当該データの送信先となるデータ中継装置とを対応付けて記憶する優先情報記憶部を有し、
前記受信部は、前記優先情報と、前記ポートプロファイルの設定要求を受信し、
前記転送部は、前記受信した優先情報と対応付けて記憶されたデータ中継装置を前記優先情報記憶部から検索し、当該検索したデータ中継装置へ前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項14】
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項15】
前記転送部は、前記ポートプロファイルの設定要求の内容がポートプロファイルの削除である場合は、前記受信部が受信した仮想マシン識別子が示す仮想マシンが移動前に利用したアップリンクに基づいて、上位のデータ中継装置を選択し、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定し、かつ、前記ポートプロファイルの設定要求の内容が新たなポートプロファイルの適用である場合は、該仮想マシンが移動後に利用するアップリンクに基づいて、上位のデータ中継装置を選択し、前記選択した上位のデータ中継装置に前記受信部が受信したポートプロファイルの設定要求を転送することを特徴とする請求項14に記載のデータ中継装置。
【請求項16】
前記受信部が受信した仮想マシン識別子が示す仮想マシンが外部ネットワークに接続するためのアップリンクにおいて自身よりも上位のデータ中継装置が存在しない場合には、前記受信部が受信したポートプロファイルの設定要求に基づいて、前記受信部が受信した仮想マシン識別子が示す仮想マシンのポートプロファイルを更新することを特徴とする請求項15に記載のデータ中継装置。
【請求項17】
前記転送部は、前記受信部が受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合は、当該仮想マシン識別子が示す仮想マシンが外部ネットワークに接続するためのアップリンクに基づいて、上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項18】
前記転送部は、前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと前記判定部が判定した場合には、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、同一のテナントに対してサービスを提供する仮想マシンのグループとに応じて、前記ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、選択した上位のデータ中継装置に前記ポートプロファイルの設定要求を転送することを特徴とする請求項1に記載のデータ中継装置。
【請求項19】
仮想マシンを稼働させるサーバ間のデータを中継するデータ中継装置が有するコンピュータが実行するデータ中継プログラムにおいて、
自身を動作させるコンピュータと接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信し、
自身を動作させるコンピュータと接続されたサーバで稼働する仮想マシンの仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶装置に、前記受信した仮想マシン識別子が他のポートで記憶されているか否かを判定し、
前記受信した仮想マシン識別子を他のポートで記憶していないと判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身を動作させるコンピュータよりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
処理を前記コンピュータに実行させることを特徴とするデータ中継プログラム。
【請求項20】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送する
処理を前記コンピュータに実行させることを特徴とする請求項19に記載のデータ中継プログラム。
【請求項21】
仮想マシンを稼働させるサーバ間のデータを中継するコンピュータが実行するデータ中継方法において、
自身と接続されたサーバから、移動対象の仮想マシンを示す仮想マシン識別子と、ポートプロファイルの設定要求とを受信し、
自身と接続されたサーバで稼働する仮想マシンの仮想マシン識別子と当該仮想マシンが用いるポートとを記憶する記憶装置に、前記受信した仮想マシン識別子が他のポートで記憶されているか否かを判定し、
前記受信した仮想マシン識別子を他のポートで記憶していないと判定した場合には、当該仮想マシン識別子が示す仮想マシンの通信を中継する通信経路において自身よりも上位のデータ中継装置に前記ポートプロファイルの設定要求を転送する
処理を実行することを特徴とするデータ中継方法。
【請求項22】
前記受信した仮想マシン識別子を前記記憶部が他のポートで記憶していないと判定した場合は、移動対象となる仮想マシンと同一のアップリンクを介して外部ネットワークに接続する仮想マシンのグループと、前記ポートプロファイルの設定要求の内容とに応じて、当該ポートプロファイルの設定要求を転送する上位のデータ中継装置を選択し、当該選択したデータ中継装置に当該ポートプロファイルの設定要求を転送する
処理を実行することを特徴とする請求項21に記載のデータ中継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図9D】
image rotate

【図9E】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図11C】
image rotate

【図11D】
image rotate

【図11E】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27A】
image rotate

【図27B】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate