JP5500270B2 - プロファイル処理プログラム、データ中継装置およびプロファイル制御方法 - Google Patents
プロファイル処理プログラム、データ中継装置およびプロファイル制御方法 Download PDFInfo
- Publication number
- JP5500270B2 JP5500270B2 JP2012551786A JP2012551786A JP5500270B2 JP 5500270 B2 JP5500270 B2 JP 5500270B2 JP 2012551786 A JP2012551786 A JP 2012551786A JP 2012551786 A JP2012551786 A JP 2012551786A JP 5500270 B2 JP5500270 B2 JP 5500270B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- server
- stored
- message
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 63
- 238000012545 processing Methods 0.000 claims description 77
- 238000012546 transfer Methods 0.000 claims description 50
- 238000013508 migration Methods 0.000 claims description 41
- 230000005012 migration Effects 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 28
- 238000012217 deletion Methods 0.000 claims description 25
- 230000037430 deletion Effects 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- DELJNDWGTWHHFA-UHFFFAOYSA-N 1-azaniumylpropyl(hydroxy)phosphinate Chemical compound CCC(N)P(O)(O)=O DELJNDWGTWHHFA-UHFFFAOYSA-N 0.000 description 1
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 101710145642 Probable Xaa-Pro aminopeptidase P Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Description
本発明は、プロファイル処理プログラム、データ中継装置およびプロファイル制御方法に関する。
従来、情報処理装置としてのサーバ上で、VM(Virtual Machine:仮想マシン)といわれる仮想的なサーバを動作させるサーバ仮想化技術が知られている。サーバでは、VMの生成などVMに関する各種制御を実施するVMM(Virtual Machine Monitor)が動作している。このVMMは、例えばハイパーバイザなどと呼ばれ、サーバのメモリやIO(Input/Output:入出力)などに関するハードウェア資源を管理する。
サーバの仮想化技術に関する機能の一つとして、業務を停止させることなく、あるサーバで稼動中のVMを別のサーバに移動させるライブマイグレーション(Live Migration)がある。このライブマイグレーションは、VMの自由な移動が求められるクラウドデータセンター環境においても、利用されている。
ライブマイグレーションによってVMを移動させる場合には、VMの移動にあわせて、移動対象のVMに対応したポートプロファイルも移動させる。このポートプロファイルには、例えばVLAN(Virtual Local Area Network)やQoS(Quality of Service)などの情報が含まれる。このポートプロファイルの移動を自動化する手法としては、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.1Qbgで議論されているプロトコルがある。このプロトコルは、いわゆるVSI(Virtual Station Interface)発見プロトコルと呼ばれる。
ここで、VSI発見プロトコルを用いたポートプロファイルの自動設定(AMPP:Automated Migration of Port Profile)について説明する。図17は、従来技術に係るポートプロファイルの自動化処理を示すシーケンス図である。図17のシステム構成は、移動対象のVMが稼動している移動元サーバと、移動対象のVMの移動先である移動先サーバと、移動元サーバおよび移動先サーバと接続されるスイッチと、VMのポートプロファイルを保持するポートプロファイルDBとを有する。
図17に示すように、移動先サーバは、管理者等の指示操作を受け付けると、新しいVMを自サーバ上に生成する(S1)。続いて、移動元サーバは、ライブマイグレーション指示を管理端末等から受け付けると(S2)、移動対象VMが自サーバで動作している状態で、プレコピーを実施する(S3とS4)。具体的には、移動元サーバで動作するVMMは、自身が利用しているメモリ内容を移動先サーバのVMMに転送する。そして、移動元サーバのVMMは、メモリの変更量に応じて、このプレコピーを繰り返す。
プレコピーが開始されると、移動先サーバは、VSI発見プロトコルのPRE-ASSOCメッセージをスイッチの移動先ポートに送信する(S5)。このメッセージを受信したスイッチは、移動対象VMに対応したポートプロファイルをポートプロファイルDBから取得する(S6)。そして、スイッチは、PRE-ASSOCメッセージの応答として、PRE-ASSOC CONFメッセージを移動先サーバに送信する(S7)。
その後、移動元サーバは、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する(S8とS9)。具体的には、移動元サーバのVMMは、移動対象VMの業務を一時的に停止し、自身が利用しているメモリ内容を移動対象サーバのVMMに転送する。なお、プレコピー実施中は、移動元サーバで移動対象VMが稼動しており、当該VMが停止した後にストップアンドコピーが実施される。
ストップアンドコピーが開始されると、移動先サーバは、VSI発見プロトコルのASSOCメッセージをスイッチの移動先ポートに送信する(S10)。このメッセージを受信したスイッチは、PRE-ASSOCメッセージ受信時に取得したポートプロファイルを移動先ポートに適用する(S11)。そして、移動先サーバは、ASSOCメッセージの応答として、ASSOC CONFメッセージを移動先サーバに送信する(S12)。なお、これ以降、移動対象VMは移動先サーバ上で稼動する。
一方で、移動元サーバは、VSI発見プロトコルのDE-ASSOCメッセージをスイッチの移動元ポートに送信する(S13)。このメッセージを受信したスイッチは、当該VMに対応するポートプロファイルを移動元ポートから除去する(S14)。そして、スイッチは、DE-ASSOCメッセージの応答として、DE-ASSOC CONFメッセージを移動元サーバに送信する(S15)。このようにして、VMの移動およびポートプロファイルの自動設定が実行される。
しかしながら、従来の技術では、複数段に構成されたスイッチにポートプロファイルを自動設定できないという問題があった。
例えば、1つの筐体にブレードと呼ばれる抜き差し可能なサーバを複数搭載したブレードサーバに、VSI発見プロトコルを適用した例について説明する。図18は、従来技術に係るブレードサーバにおけるポートプロファイルの自動化を説明する図である。
図18に示すように、このシステムは、ブレードサーバ1と、ブレードサーバ2と、ブレードサーバ間を接続する外部スイッチ3とを有する。なお、ポートプロファイルDBサーバは、外部スイッチを介して各ブレードサーバと接続される。各ブレードサーバには、サーバ(CPU(Central Processing Unit)サーバ)のネットワークを集約するスイッチブレードが搭載され、各CPUサーバは、スイッチブレードを経由して外部のネットワークや他のブレードサーバに接続する。つまり、図18に示すシステムは、スイッチブレードと外部スイッチの複数段構成となっている。
このようなシステムにおいて、ブレードサーバ1のCPUサーバ1a上で動作するVM(A)を、ブレードサーバ1のCPUサーバ1cに移動させる場合を示すS20について説明する。この場合、CPUサーバ1aとスイッチブレード1dとの間でPRE-ASSOCとASSOCがやり取りされ、CPUサーバ1cとスイッチブレード1dとの間でDE-ASSOCがやり取りされる。この結果、スイッチブレード1dは、VM(A)に関するポートプロファイルを自動で取得し設定できる。この例のように、同じブレードサーバ内でVMを移動させる場合には、外部スイッチ3内のポートプロファイルを変更する必要がないので、各スイッチのポートプロファイルを自動設定できるといえる。
次に、ブレードサーバ1のCPUサーバ1a上で動作するVM(A)を、ブレードサーバ2のCPUサーバ2aに移動させる場合を示すS21について説明する。この場合、CPUサーバ2aとスイッチブレード2cとの間でPRE-ASSOCとASSOCがやり取りされ、CPUサーバ1aとスイッチブレード1dとの間でDE-ASSOCがやり取りされる。この結果、スイッチブレード2cは、VM(A)に関するポートプロファイルを自動で取得し設定できる。この例のように、ブレードサーバ間をまたがってVMを移動させる場合には、外部スイッチ3内のポートプロファイルを変更する必要がある。ところが、VSI発見プロトコルは、ブレードサーバとスイッチブレードとの間で規定されるプロトコルである。つまり、サーバエッジがブレードサーバ内のCPUサーバとスイッチブレードとの間に存在することになる。したがって、VSI発見プロトコルを用いても外部スイッチ内のポートプロファイルを自動設定することができない。
一般的には、スイッチブレード1dがネットワーク管理システム等にVM移動を通知し、ネットワーク管理システムが外部スイッチ3のポートプロファイル設定を実行することが考えられる。ところが、この手法では、ポートプロファイル設定機能を有するネットワーク管理システムを新たに構築したりすることになるので、コストもかかり現実的ではない。
1つの側面では、複数段に構成されたスイッチにポートプロファイルを自動設定できるプロファイル処理プログラム、データ中継装置およびプロファイル制御方法を提供することを目的とする。
第1の案では、コンピュータに、移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する手順を実行させる。また、前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順を実行させる。さらに、前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行する手順を実行させる。そして、前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する手順を実行させる。
第2の案では、コンピュータに、前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する手順を実行させる。また、前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順を実行させる。また、前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順を実行させる。さらに、前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する手順を実行させる。
複数段に構成されたスイッチにポートプロファイルを自動設定できる。
以下に、本発明にかかるプロファイル処理プログラム、データ中継装置およびプロファイル制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成]
図1は、実施例1に係るシステムの全体構成を示す図である。図1に示すように、このシステムは、ブレードサーバ10と、ブレードサーバ40と、外部スイッチ60と、ポートプロファイルDB(データベース)サーバ5とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。
図1は、実施例1に係るシステムの全体構成を示す図である。図1に示すように、このシステムは、ブレードサーバ10と、ブレードサーバ40と、外部スイッチ60と、ポートプロファイルDB(データベース)サーバ5とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。
ポートプロファイルDBサーバ5は、各ブレードサーバで稼動するVM(Virtual Machine:仮想マシン)に対応付けて、VMの動作環境等を記憶する。例えば、ポートプロファイルDBサーバ5は、VMに対応したVLAN(Virtual Local Area Network)、QoS(Quality of Service)、割り当てられた帯域などの情報を記憶する。
ブレードサーバ10やブレードサーバ40は、ブレード(Blade)と呼ばれる抜き差し可能なサーバを筐体内に複数搭載するサーバである。例えば、ブレードサーバ10は、図1に示すように、CPU(Central Processing Unit)サーバ11〜13とスイッチブレード20とを有し、ブレードサーバ40は、CPUサーバ41とCPUサーバ42と、スイッチブレード50とを有する。なお、図1に示したブレードサーバ10やブレードサーバ40が有するサーバの台数等はこれに限定されるものではなく、例えばIO(Input/Output:入出力)ボートなど他のボードを有していてもよい。
各ブレードサーバが有するCPUサーバは、上記抜き差し可能なサーバであり、ハイパーバイザなどと呼ばれるVMM(Virtual Machine Monitor)を実行して、VMを動作させる。例えば、各CPUサーバは、VMMによって、VMや仮想スイッチを動作させて、他のCPUサーバや他のVMとの間でデータのやり取り等を実行する。なお、図1では、一例として、ブレードサーバ10のCPUサーバ11では、VM1とVM2が動作し、CPUサーバ12では、VM3とVM4が動作し、CPUサーバ13では、VM5とVM6が動作している。また、ブレードサーバ40のCPUサーバ41では、VM7とVM8が動作し、CPUサーバ42では、VM9が動作している。
各ブレードサーバが有するスイッチブレードは、イーサネット(登録商標)やファイバチャネルなどの転送方式を用いて、ブレードサーバ内の通信やブレードサーバ間の通信を制御する。例えば、スイッチブレード20は、CPUサーバ11のVM1とCPUサーバ13のVM5との間でやり取りされるデータを中継し、ブレードサーバ内の通信を制御する。また、スイッチブレード20やスイッチブレード50は、外部スイッチ60を介して、CPUサーバ12のVM3とCPUサーバ41のVM7との間でやり取りされるデータを中継し、ブレードサーバ間の通信を制御する。
外部スイッチ60は、各ブレードサーバ内のスイッチブレードと接続され、ブレードサーバ間の通信を制御するレイヤ2スイッチなどのデータ中継装置である。例えば、外部スイッチ60は、スイッチブレード20や50などと同様の機能を有し、スイッチブレード20とスイッチブレード50との間でやり取りされるデータを中継する。
上述したように、各CPUサーバは、スイッチブレードを経由して外部のネットワークや他のブレードサーバに接続する。つまり、図1に示すシステムは、スイッチブレードと外部スイッチとの複数段構成となっている。
このようなシステム構成において、各スイッチブレードは、移動対象のVMが移動する移動先のCPUサーバから、当該仮VMに対応するポートプロファイル情報の設定要求を受信する。そして、各スイッチブレードは、VMを識別するVSI(Virtual Station Interface)IDを記憶する記憶部に、受信した設定要求に含まれるVSIIDが記憶されているか否かを判定する。続いて、各スイッチブレードは、受信したVSIIDが記憶部に記憶されていると判定した場合、設定要求に応じた処理を実行する。さらに、各スイッチブレードは、受信したVSIIDが記憶部に記憶されていないと判定した場合、自装置を介して移動先のCPUサーバと接続される上位のデータ中継装置である外部スイッチ60に、設定要求を転送する。
また、各スイッチブレードは、VMが稼動する移動元のCPUサーバから、当該VMに対応するポートプロファイル情報の削除要求を受信する。続いて、各スイッチブレードは、VMを識別するVSIIDを記憶する記憶部に、受信した削除要求に含まれるVSIIDが記憶されているか否かを判定する。そして、各スイッチブレードは、受信したVSIIDが記憶部に記憶されていると判定した場合、VSIIDに対応付けて記憶部に記憶されるポートプロファイルを削除する。一方、各スイッチブレードは、受信したVSIIDが記憶部に記憶されていないと判定した場合、自装置を介して移動元のCPUサーバと接続される上位のデータ中継装置である外部スイッチ60に削除要求を転送するか、または、削除要求を破棄する。
このように、各スイッチブレードは、VMのライブマイグレーションがブレードサーバ内の移動であると判定した場合には、自装置内でプロファイルの設定処理または削除処理を実行する。また、各スイッチブレードは、VMのライブマイグレーションがブレードサーバをまたがった移動であると判定した場合には、設定要求または削除要求を外部スイッチ60に転送する。これらの要求を受信した外部スイッチ60では、各スイッチブレードと同様に、設定処理または削除処理を実行する。
つまり、CPUサーバとスイッチブレードとの間でやり取りされる、例えばVSI発見プロトコルに関する各種メッセージを外部スイッチ60まで拡張させる。このため、ブレードサーバをまたがったVM移動の場合には、ブレードサーバの端点、言い換えるとブレードサーバと外部スイッチとの間をサーバエッジとすることができる。
この結果、ブレードサーバ内の移動の場合は、各スイッチブレードとCPUサーバとの間でVSI発見プロトコルに関する各種メッセージをやり取りするので、各スイッチブレードにポートプロファイルを自動設定できる。また、ブレードサーバをまたがった移動の場合は、CPUサーバと外部スイッチ60との間でVSI発見プロトコルに関する各種メッセージをやり取りするので、外部スイッチ60にポートプロファイルを自動設定できる。したがって、スイッチを複数段構成にした場合であっても、スイッチにポートプロファイルを自動設定できる。
[各装置の構成]
次に、図1に示した各装置の構成について説明する。なお、各CPUサーバは同様の機能を有するので、ここではCPUサーバ11について説明する。また、スイッチブレード20とスイッチブレード50と外部スイッチ60も同様の機能を有するので、ここではスイッチブレード20について説明する。
次に、図1に示した各装置の構成について説明する。なお、各CPUサーバは同様の機能を有するので、ここではCPUサーバ11について説明する。また、スイッチブレード20とスイッチブレード50と外部スイッチ60も同様の機能を有するので、ここではスイッチブレード20について説明する。
(CPUサーバの構成)
図2は、実施例1に係るCPUサーバの構成を示すブロック図である。図2に示すように、CPUサーバ11は、物理インタフェース11aと、仮想スイッチ12aと、仮想領域13aと、メモリ14aと、CPU15aとを有する。なお、ここで示したCPUサーバの構成等はあくまで例示であり、これに限定されるものではなく、例えば、SC(システムコントローラー)やMAC(メモリアクセスコントローラー)などを有していてもよい。
図2は、実施例1に係るCPUサーバの構成を示すブロック図である。図2に示すように、CPUサーバ11は、物理インタフェース11aと、仮想スイッチ12aと、仮想領域13aと、メモリ14aと、CPU15aとを有する。なお、ここで示したCPUサーバの構成等はあくまで例示であり、これに限定されるものではなく、例えば、SC(システムコントローラー)やMAC(メモリアクセスコントローラー)などを有していてもよい。
物理インタフェース11aは、少なくとも1つのポートを有し、他のサーバやVMとの通信を制御するネットワークインタフェースカード(NIC)である。例えば、物理インタフェース11aは、スイッチブレード20にVSI発見プロトコルのPRE-ASSOCメッセージ、ASSOCメッセージ、DE-ASSOCメッセージを送信する。また、物理インタフェース11aは、スイッチブレード20を介して、VSI発見プロトコルのPRE-ASSOC CONFメッセージ、ASSOC CONFメッセージ、DE-ASSOC CONFメッセージを受信する。
仮想スイッチ12aは、後述するVMM16aによって仮想的に生成されたスイッチであり、VM間の通信やVMと外部との通信を制御する。例えば、CPUサーバ11で動作するVM1が、CPUサーバ12で動作するVM3宛のデータを送信した場合、仮想スイッチ12aは、このデータを受信して物理インタフェース11aに出力する。また、CPUサーバ12で動作するVM3が、CPUサーバ11で動作するVM1宛のデータを送信した場合、仮想スイッチ12aは、物理インタフェース11aを介してこのデータを受信してVM1に出力する。こうして、VM1とVM3は、互いに通信が実行できる。
仮想領域13aは、後述するVMM16aが生成するVMを動作させる領域であり、任意の数のVMを起動することができる。例えば、仮想領域13aでは、仮想サーバであるVM1およびVM2と、VM1やVM2などの仮想サーバを管理する管理ドメインである管理VMが実行される。なお、各VMは、仮想メモリや仮想プロセッサを利用して処理を実行する。例えば、仮想メモリは、メモリ14aにおける所定領域をVMが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、CPU15aにおける所定処理能力をVMが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。
メモリ14aは、後述するCPU15aによる各種処理に必要なデータおよびプログラムを格納する半導体メモリ素子などの記憶装置であり、例えば仮想メモリ等の割当などにも利用される。
CPU15aは、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともにVMM16aを有し、各種処理を実行する。
VMM16aは、VMの作成、削除、起動、停止などVMに関する各種制御を実施するソフトウェアであり、例えばライブマイグレーションを実行する。例えば、VMM16aは、管理者端末等からVM作成指示を受信した場合には、仮想領域13aにVMを作成し、管理者端末等からVM削除指示を受信した場合には、該当VMを仮想領域13aから削除する。また、VMM16aは、管理者端末等からVM起動指示を受信した場合には、仮想領域13a上の該当VMを起動し、管理者端末等からVM停止指示を受信した場合には、仮想領域13a上の該当VMを停止する。
また、VMM16aは、他のCPUサーバからプレコピーを受信した場合には、当該他のCPUサーバと連動してプレコピーを実行する。さらに、VMM16aは、物理インタフェース11aを介して、VSI発見プロトコルのPRE-ASSOCメッセージをスイッチブレード20に送信する。その後、VMM16aは、物理インタフェース11aを介して、VSI発見プロトコルのPRE-ASSOC CONFメッセージを受信する。
また、VMM16aは、他のCPUサーバからストップアンドコピーを受信した場合には、当該他のCPUサーバと連動してストップアンドコピーを実行する。さらに、VMM16aは、物理インタフェース11aを介して、VSI発見プロトコルのASSOCメッセージをスイッチブレード20に送信する。その後、VMM16aは、物理インタフェース11aを介して、VSI発見プロトコルのASSOC CONFメッセージを受信する。
また、VMM16aは、管理者端末等からVMの削除指示を受信した場合には、物理インタフェース11aを介して、VSI発見プロトコルのDE-ASSOCメッセージをスイッチブレード20に送信する。その後、VMM16aは、物理インタフェース11aを介して、VSI発見プロトコルのDE-ASSOC CONFメッセージを受信する。
(スイッチブレードの構成)
図3は、実施例1に係るスイッチブレードの構成を示すブロック図である。図3に示すように、スイッチブレード20は、通信制御I/F部21と、ポートプロファイルテーブル22と、VSIテーブル23と、MAC(Media Access Control)テーブル24と、制御部25とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。
図3は、実施例1に係るスイッチブレードの構成を示すブロック図である。図3に示すように、スイッチブレード20は、通信制御I/F部21と、ポートプロファイルテーブル22と、VSIテーブル23と、MAC(Media Access Control)テーブル24と、制御部25とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。
通信制御I/F部21は、少なくとも1つのポートを有し、他のサーバとの通信や外部スイッチ60との通信を制御するNICである。例えば、通信制御I/F部21は、CPUサーバ11や他のCPUサーバから、PRE-ASSOCメッセージやASSOCメッセージ、DE-ASSOCメッセージを受信して、制御部25に出力する。また、通信制御I/F部21は、制御部25から出力された、PRE-ASSOC CONFメッセージ、ASSOC CONFメッセージ、DE-ASSOC CONFメッセージを要求元のCPUサーバに送信する。また、通信制御I/F部21は、外部スイッチ60から送信された、PRE-ASSOC CONFメッセージ、ASSOC CONFメッセージ、DE-ASSOC CONFメッセージを要求元のCPUサーバに転送する。
ポートプロファイルテーブル22は、外部スイッチ60を介して接続されるポートプロファイルDBサーバ5から取得された情報をキャッシュする記憶部である。ポートプロファイルテーブル22が記憶する情報は、後述する実行部26cによって格納または削除される。図4は、ポートプロファイルテーブルに記憶される情報の例を示す図である。図4に示すように、ポートプロファイルテーブル22は、「ポートプロファイルID、VLAN、帯域情報」として「1、VLAN100、100MB」や「2、VLAN200、50MB」などと記憶する。なお、ポートプロファイルテーブル22が記憶する情報は、図4に示した情報に限定されるものではなく、任意に追加または削除することができる。
ここで記憶される「ポートプロファイルID」は、ポートプロファイルを識別する識別子であり、「VLAN」は、プロファイルが設定されるポートが属するVLANを示し、「帯域情報」は、当該ポートに割り当てられた帯域を示す。図4の場合、ポートプロファイルID=1のポートプロファイルは、VLAN100のVLANを用いた100MBの帯域幅をポートに設定することを示す。つまり、このポートを使用するVMは、VLAN100のVLANを用いた100MBの帯域幅で通信する。
同様に、ポートプロファイルID=2のポートプロファイルは、VLAN200のVLANを用いた50MBの帯域幅をポートに設定することを示す。つまり、このポートを使用するVMは、VLAN200のVLANを用いた50MBの帯域幅で通信する。
VSIテーブル23は、ポートプロファイルの割当情報を記憶する。VSIテーブル23が記憶する情報は、後述する実行部26cによって格納または削除される。図5は、VSIテーブルに記憶される情報の例を示す図である。図5に示すように、VSIテーブル23は、「VSIID、ポートプロファイルID、VSI State、ポート番号」を対応付けて記憶する。なお、VSIテーブル23が記憶する情報は、図5に示した情報に限定されるものではなく、任意に追加または削除することができる。
ここで記憶される「VSIID」は、VMを識別する識別子であり、「ポートプロファイルID」は、適用されるポートプロファイルを識別する識別子である。また、「VSI State」は、ポートプロファイルの状態を示し、「ポート番号」は、ポートプロファイルが割り当てられたポート番号、つまり、VMが使用するポート番号を示す。
図5の場合、VM1が使用するポートがP1であり、VM1に対応するポートプロファイルID=1のポートプロファイルがポートプロファイルDBサーバ5から取得済みの状態である。同様に、VM2が使用するポートがP1であり、VM2に対応するポートプロファイルID=1のポートプロファイルがポートプロファイルDBサーバ5から取得済みの状態である。また、VM3が使用するポートがP2であり、VM3に対応するポートプロファイルID=2のポートプロファイルがP2に割当済みの状態である。
MACテーブル24は、後述する学習部27によって動的に学習されたCPUサーバのMACアドレス、VLAN、ポート番号を記憶する。MACテーブル24が記憶する情報は、後述する学習部27によって格納または削除される。図6は、MACテーブルに記憶される情報の例を示す図である。図6に示すように、MACテーブル24は、「MACアドレス、VLAN ID、ポート番号」として「X、VLAN100、P3」や「Y、VLAN200、P1」などを記憶する。なお、MACテーブル24が記憶する情報は、図6に示した情報に限定されるものではなく、任意に追加または削除することができる。
ここで記憶される「MACアドレス」は、通信制御I/F部21を介して受信したデータ(パケット)に含まれる送信元のMACアドレスであり、学習されたMACアドレスである。「VLAN ID」は、通信制御I/F部21を介して受信したパケットに含まれるVLANを識別する識別子である。「ポート番号」は、パケットを受信した通信制御I/F部21のポート番号であり、これによってサーバがどのポート番号に接続されているのかを認識できる。
図6の場合、アドレスをXとするサーバが、VLAN100が割り当てられたP3に接続される。つまり、送信先がアドレスXであるデータは、VLAN100が割り当てられたポート番号P3から送信される。同様に、アドレスをYとするサーバが、VLAN200が割り当てられたP1に接続される。つまり、送信先がアドレスYであるデータは、VLAN200が割り当てられたポート番号P1から送信される。
図3に戻り、制御部25は、例えば、CPUやMPU(Micro Processing Unit)などの電子回路である。この制御部25は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、メッセージ処理部26と学習部27とスイッチング制御部28とを有し、これらによって各種処理を実行する。
メッセージ処理部26は、受信部26aと判定部26bと実行部26cと転送部26dとを有し、CPUサーバから受信したVSI発見プロトコルに準拠したメッセージに応じた各種処理を実行する。
受信部26aは、移動対象のVMが移動する移動先のCPUサーバから、当該VMに対応するポートプロファイル情報の設定要求を受信する。また、受信部26aは、VMが稼動する移動元のCPUサーバから、当該VMに対応するポートプロファイル情報の削除要求を受信する。
例えば、受信部26aは、VMの移動先となるCPUサーバからPRE-ASSOCメッセージを受信した場合には、当該メッセージを判定部26bに出力する。同様に、受信部26aは、VMの移動元であるCPUサーバからDE-ASSOCメッセージを受信した場合には、当該メッセージを判定部26bに出力する。また、受信部26aは、VMの移動先となるCPUサーバからASSOCメッセージを受信した場合には、当該メッセージを判定部26bに出力する。
また、受信部26aは、外部スイッチ60からPRE-ASSOC CONFメッセージを受信した場合には、当該メッセージを転送部26dに出力する。同様に、受信部26aは、外部スイッチ60からASSOC CONFメッセージやDE-ASSOC CONFメッセージを受信した場合には、当該メッセージを転送部26dに出力する。
一例として、受信部26aは、図7に示したTLV(Type Length Value)フォーマットで規定されるメッセージを受信する。図7は、VSI発見プロトコルで用いられるメッセージの例を示す図である。図7に示すメッセージフォーマットは、16ビットのTLVヘッダーに、メッセージの詳細情報であるTLV Information Stringが付加されている。受信部26aは、TLV Information String内に2オクテットで規定される「Mode」が「PRE-ASSOC」か「ASSOC」か「DE-ASSOC」かによってメッセージの種別を判定する。
なお、図7に示したメッセージにおいて、TLV Information String内に8オクテットで規定される「Port Profile Instance ID」には、「VSIID」が格納される。また、図7に示したメッセージにおいて、TLV Information String内に4オクテットで規定される「Port Profile ID」には、「ポートプロファイルID」が格納される。
判定部26bは、VMを識別するVSIIDを記憶するVSIテーブル23に、受信部26aが受信した設定要求に含まれるVSIIDが記憶されているか否かを判定する。また、判定部26bは、VMを識別するVSIIDを記憶するVSIテーブル23に、受信部26aが受信した削除要求に含まれるVSIIDが記憶されているか否かを判定する。
例えば、判定部26bは、図7に示したメッセージの「Mode」に「PRE-ASSOC」、「ASSOC」、「DE-ASSOC」が記載されたメッセージが受信された場合、当該メッセージの「Port Profile Instance ID」に格納されているVSIIDを取得する。続いて、判定部26bは、メッセージから取得したVSIIDがVSIテーブル23に格納されているか否かを判定する。そして、判定部26bは、VSIIDがVSIテーブル23に格納されている場合には、VMの移動が同一ブレードサーバ(シャーシ)内の移動であると判定して、当該メッセージを実行部26cに出力する。一方、判定部26bは、VSIIDがVSIテーブル23に格納されていない場合には、VMの移動がブレードサーバ(シャーシ)をまたがった移動であると判定して、当該メッセージを転送部26dに出力する。
なお、判定部26bは、PRE-ASSOCメッセージに含まれるVSIIDが格納されていると判定した場合に、当該VSIIDと判定結果とを対応付けてメモリ等に格納する。そして、この状態で、判定部26bは、メモリ等に判定結果が保持されるVSIIDが含まれるASSOCやDE-ASSOCメッセージを受信した場合、VSIIDが記憶されているか否かの判定を実行せずに、当該メッセージを実行部26cに出力することもできる。つまり、判定部26bは、同一ブレードサーバ内の移動であると判定している状態でASSOCやDE-ASSOCメッセージを受信するので、削除対象のVMの同一ブレードサーバ内で動作していると判定し、当該メッセージを実行部26cに出力する。
同様に、判定部26bは、PRE-ASSOCメッセージに含まれるVSIIDが格納されていないと判定した状態で、ASSOCやDE-ASSOCメッセージを受信した場合、VSIIDの判定を実行せずに、当該メッセージを外部スイッチ60に出力することもできる。
実行部26cは、受信されたメッセージに含まれるVSIIDがVSIテーブル23に記憶されていると判定した場合、設定要求に応じた処理を実行する。例えば、実行部26cは、PRE-ASSOCメッセージに含まれるVSIIDが記憶されていると判定された場合には、当該VSIIDに対応するポートプロファイルをポートプロファイルDBサーバ5から取得して、ポートプロファイルテーブル22に格納する。さらに、実行部26cは、取得したポートプロファイルのIDと、メッセージが受信されたポート番号と、当該メッセージに含まれるVSIIDとを対応付けてVSIテーブル23に格納し、「VSI State」を「FETCHED」に設定する。そして、実行部26cは、PRE-ASSOCメッセージの応答として、PRE-ASSOCメッセージの送信元サーバに、ポートプロファイルを格納したことを示すPRE-ASSOC CONFメッセージを送信する。
その後、実行部26cは、受信部26aからASSOCメッセージを受信した場合には、当該VSIIDに対応するポートプロファイルをVSIテーブル23から特定する。続いて、実行部26cは、特定したポートプロファイルの「VSI State」を「FETCHED」から「ACTIVE」に変更する。そして、実行部26cは、ASSOCメッセージの応答として、ASSOCメッセージの送信元サーバに、ポートプロファイルの設定変更が完了したことを示すASSOC CONFメッセージを送信する。
また、実行部26cは、DE-ASSOCメッセージに含まれるVSIIDが判定部26bによって記憶されていると判定された場合には、当該メッセージに含まれるVSIIDを抽出する。そして、実行部26cは、抽出したVSIIDに対応するポートプロファイルをVSIテーブル23から特定し、特定したポートプロファイルを削除する。そして、実行部26cは、DE-ASSOCメッセージの応答として、DE-ASSOCメッセージの送信元サーバに、ポートプロファイルの削除が完了したことを示すDE-ASSOC CONFメッセージを送信する。
転送部26dは、判定部26bによってVMの移動がシャーシをまたがった移動であると判定された場合には、受信部26aが受信したメッセージを外部スイッチ60に転送する。また、転送部26dは、受信部26aが外部スイッチ60から受信した応答メッセージを転送する。
例えば、転送部26dは、シャーシをまたがった移動であると判定部26bが判定したPRE-ASSOCメッセージ、ASSOCメッセージ、DE-ASSOCメッセージを受信した場合には、当該メッセージを外部スイッチ60に転送する。
また、転送部26dは、受信部26aによってPRE-ASSOC CONFメッセージが受信された場合、PRE-ASSOCメッセージを送信したCPUサーバに、PRE-ASSOC CONFメッセージを転送する。同様に、転送部26dは、受信部26aによってASSOC CONFメッセージが受信された場合、ASSOCメッセージを送信したCPUサーバに、ASSOC CONFメッセージを転送する。転送部26dは、受信部26aによってDE-ASSOC CONFメッセージが受信された場合、DE-ASSOCメッセージを送信したCPUサーバに、DE-ASSOC CONFメッセージを転送する。
なお、受信部26aは、PRE-ASSOCメッセージなどの要求メッセージと、要求メッセージから取得した送信元とを対応付けてメモリ等に格納しておく。こうすることで、例えば、実行部26cや転送部26dは、応答メッセージの送信元、言い換えると、要求メッセージの送信先を特定できる。例えば、転送部26dは、応答メッセージとしてPRE-ASSOC CONFメッセージを受信した場合に、PRE-ASSOCメッセージに対応する送信元をメモリ等から特定し、特定した送信元にPRE-ASSOC CONFメッセージを送信できる。その後、転送部26dは、PRE-ASSOCメッセージに対応する送信元をメモリ等から削除してもよい。
また、受信部26aは、PRE-ASSOCメッセージなどの要求メッセージと送信元と、さらに、要求メッセージから取得したVSIIDとを対応付けてメモリ等に格納しておく。こうすることで、VMの移動が複数同時に発生した場合であっても、VSIIDによってどのVMの移動かを特定することができるので、応答メッセージを送信元に送信することができる。
図3に戻り、学習部27は、CPUサーバ等のMACアドレスを学習する。例えば、学習部27は、MACアドレスがアドレスZであるCPUサーバから、ポート番号P5を介して、VLANID=VLAN300の通信でデータを受信した場合、「アドレスZ、VLAN300、P5」をMACテーブル24に記憶する。
スイッチング制御部28は、通信制御I/F部21によって受信されたデータのスイッチング制御を実行する。例えば、スイッチング制御部28は、受信されたデータの宛先のMACアドレスがMACテーブル24に記憶されているか否かを判定する。そして、スイッチング制御部28は、MACアドレスがMACテーブル24に記憶されている場合、当該MACアドレスに対応付けられているポート番号を有するポートから、受信したデータを送信する。一方、スイッチング制御部28は、MACアドレスがMACテーブル24に記憶されていない場合、全てのポートから当該データを送信するフラッディングを実行する。
[処理の流れ]
次に、実施例1に係るシステムで実行される処理の流れを説明する。ここでは、シャーシをまたがってVMが移動する場合のシーケンス、スイッチにおける要求メッセージ受信時の処理の流れ、要求メッセージ処理の流れを説明する。
次に、実施例1に係るシステムで実行される処理の流れを説明する。ここでは、シャーシをまたがってVMが移動する場合のシーケンス、スイッチにおける要求メッセージ受信時の処理の流れ、要求メッセージ処理の流れを説明する。
(シャーシをまたがってVMが移動する場合のシーケンス)
図8は、ブレードサーバをまたがってVMが移動する場合のシーケンス図である。ここでは、図1に示したCPUサーバ11からCPUサーバ41へVMを移動させる場合を例にして説明する。つまり、移動元サーバをCPUサーバ11、移動先サーバをCPUサーバ41とする。また、移動元スイッチブレードは、CPUサーバ11と同一ブレードサーバ内にあるスイッチブレード20であり、移動先スイッチブレードは、CPUサーバ41と同一ブレードサーバ内にあるスイッチブレード50であるとする。
図8は、ブレードサーバをまたがってVMが移動する場合のシーケンス図である。ここでは、図1に示したCPUサーバ11からCPUサーバ41へVMを移動させる場合を例にして説明する。つまり、移動元サーバをCPUサーバ11、移動先サーバをCPUサーバ41とする。また、移動元スイッチブレードは、CPUサーバ11と同一ブレードサーバ内にあるスイッチブレード20であり、移動先スイッチブレードは、CPUサーバ41と同一ブレードサーバ内にあるスイッチブレード50であるとする。
このような状況において、図8に示すように、CPUサーバ41のVMMは、管理者等の指示操作を受け付けると、新しいVMを自サーバ上に生成する(S101)。続いて、CPUサーバ11のVMMは、ライブマイグレーション指示を管理端末等から受け付けると(S102)、移動対象VMが自サーバで動作している状態で、プレコピーを実施する(S103とS104)。
プレコピーが開始されると、CPUサーバ41のVMMは、VSI発見プロトコルのPRE-ASSOCメッセージをスイッチブレード50に送信する(S105)。スイッチブレード50の判定部は、受信部が受信したPRE-ASSOCメッセージに含まれるVSIIDに基づいて、ブレードサーバをまたがったVM移動であると判定し、転送部は、受信されたPRE-ASSOCメッセージを外部スイッチ60に転送する(S106)。
メッセージが転送された外部スイッチ60の実行部は、PRE-ASSOCメッセージに含まれるVSIIDに対応したポートプロファイルをポートプロファイルDBサーバ5から取得して、ポートプロファイルテーブル22に格納する(S107)。そして、外部スイッチ60の実行部は、PRE-ASSOCメッセージの応答として、PRE-ASSOC CONFメッセージをスイッチブレード50に送信する(S108)。続いて、スイッチブレード50の転送部は、外部スイッチ60から受信されたPRE-ASSOC CONFメッセージを、PRE-ASSOCメッセージの送信元であるCPUサーバ41に転送する(S109)。
その後、CPUサーバ41のVMMは、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する(S110とS111)。
ストップアンドコピーが開始されると、CPUサーバ41のVMMは、VSI発見プロトコルのASSOCメッセージをスイッチブレード50に送信する(S112)。スイッチブレード50の判定部は、受信部が受信したASSOCメッセージに含まれるVSIIDに基づいて、ブレードサーバをまたがったVM移動であると判定し、転送部は、受信されたASSOCメッセージを外部スイッチ60に転送する(S113)。このとき、転送部は、PRE-ASSOCメッセージに含まれるVSIIDが格納されていないと判定した状態であることより、ASSOCメッセージに含まれるVSIIDが記憶されているか否かの判定を実行せずに、当該メッセージを転送することもできる。
メッセージが転送された外部スイッチ60の実行部は、ASSOCメッセージに含まれるVSIIDに対応したVSIテーブル23を更新して、ポートプロファイルを適用する(S114)。そして、外部スイッチ60の実行部は、ASSOCメッセージの応答として、ASSOC CONFメッセージをスイッチブレード50に送信する(S115)。続いて、スイッチブレード50の転送部は、外部スイッチ60から受信したASSOC CONFメッセージを、ASSOCメッセージの送信元であるCPUサーバ41に転送する(S116)。
一方で、CPUサーバ11のVMMは、VSI発見プロトコルのDE-ASSOCメッセージをスイッチブレード20に送信する(S117)。スイッチブレード20の判定部は、受信部が受信したDE-ASSOCメッセージに含まれるVSIIDに基づいて、ブレードサーバをまたがったVM移動であると判定し、転送部は、受信されたDE-ASSOCメッセージを外部スイッチ60に転送する(S118)。
メッセージが転送された外部スイッチ60の実行部は、DE-ASSOCメッセージに含まれるVSIIDに対応したポートプロファイルをVSIテーブル23から特定し、特定したポートプロファイルを削除する(S119)。そして、外部スイッチ60の実行部は、DE-ASSOCメッセージの応答として、DE-ASSOC CONFメッセージをスイッチブレード20に送信する(S120)。
続いて、スイッチブレード20の転送部は、外部スイッチ60から受信したDE-ASSOC CONFメッセージを、DE-ASSOCメッセージの送信元であるCPUサーバ11に転送する(S121)。
(要求メッセージ受信時の処理の流れ)
図9は、要求メッセージ受信時の処理の流れを示すフローチャートである。図9に示す処理は、図8に示したスイッチブレード20、スイッチブレード50、外部スイッチ60のそれぞれで実行されるので、ここでは、図3に例示したスイッチブレード20を例にして説明する。
図9は、要求メッセージ受信時の処理の流れを示すフローチャートである。図9に示す処理は、図8に示したスイッチブレード20、スイッチブレード50、外部スイッチ60のそれぞれで実行されるので、ここでは、図3に例示したスイッチブレード20を例にして説明する。
図9に示すように、スイッチブレード20の受信部26aが要求メッセージをCPUサーバから受信すると(S201肯定)、判定部26bは、当該メッセージに含まれるVSIIDがVSIテーブル23に記憶されているか否かを判定する(S202)。
例えば、判定部26bは、PRE-ASSOCメッセージ、ASSOCメッセージを受信した場合に、当該メッセージ内の「Port Profile Instance ID」に格納されている「VSIID」を抽出する。そして、判定部26bは、メッセージから抽出した「VSIID」がVSIテーブル23にActive状態で記憶されているか否かを判定する。また、判定部26bは、DE-ASSOCメッセージを受信した場合に、「VSIID」がVSIテーブル23にそのポートだけで記憶されているか否かを判定する。
そして、PRE-ASSOCメッセージ、ASSOCメッセージに含まれるVSIIDがVSIテーブル23にActive状態で記憶されていないと判定部26bが判定した場合(S202否定)、転送部26dは、当該メッセージを上位スイッチに転送する(S203)。例えば、図1に示したシステムの場合、転送部26dは、外部スイッチ60に転送する。また、DE-ASSOCメッセージに含まれるVSIIDがVSIテーブルにそのポートだけで記憶されていると判定した場合、転送部26dは、当該メッセージを上位スイッチに転送する(S203)。
その後、受信部26aが上位スイッチから送信された応答メッセージを受信した場合(S204肯定)、転送部26dは、要求元のCPUサーバに応答メッセージを転送する(S205)。一例を挙げると、受信部26aが、PRE-ASSOC CONFメッセージを外部スイッチ60から受信すると、転送部26dは、PRE-ASSOCメッセージを送信したCPUサーバに、PRE-ASSOC CONFメッセージを送信する。
一方、PRE-ASSOCメッセージ、ASSOCメッセージに含まれるVSIIDがVSIテーブル23にActive状態で記憶されていると判定部26bが判定した場合(S202肯定)、または、DE-ASSOCメッセージに含まれるVSIIDがVSIテーブルにそのポート以外のポートにも記憶されていると判定した場合、実行部26cは、受信された要求メッセージに対応した要求メッセージ処理を実行する(S206)。その後、実行部26cは、処理した要求メッセージに応じた応答メッセージを、要求メッセージを送信したCPUサーバに送信する。一例を挙げると、実行部26cは、ASSOCメッセージに対応した処理を実行した場合には、ASSOCメッセージを送信したCPUサーバにASSOC CONFメッセージを送信する。
(要求メッセージ処理の流れ)
図10は、要求メッセージ処理の流れを示すフローチャートである。図10に示す処理は、図9に示したS206で実行される処理である。この処理は、図8に示したスイッチブレード20、スイッチブレード50、外部スイッチ60のそれぞれで実行されるので、ここでは、図3に例示したスイッチブレード20を例にして説明する。
図10は、要求メッセージ処理の流れを示すフローチャートである。図10に示す処理は、図9に示したS206で実行される処理である。この処理は、図8に示したスイッチブレード20、スイッチブレード50、外部スイッチ60のそれぞれで実行されるので、ここでは、図3に例示したスイッチブレード20を例にして説明する。
図10に示すように、スイッチブレード20の実行部26cは、判定部26bが同一ブレードサーバ内の移動であると判定した要求メッセージから、メッセージ種別を判定する(S301)。一例を挙げると、実行部26cは、受信された要求メッセージにおける「Mode」からメッセージ種別を特定する。
そして、実行部26cは、メッセージ種別が「PRE-ASSOC」であると判定した場合、要求メッセージの「Port Profile ID」に記載される「ポートプロファイルID」でポートプロファイルテーブル22を検索する(S302)。
続いて、実行部26cは、「ポートプロファイルID」でポートプロファイルテーブル22に存在しない場合(S303否定)、当該ポートプロファイルIDに対応するポートプロファイルをポートプロファイルDBサーバ5から取得する(S304)。そして、実行部26cは、取得したポートプロファイルをポートプロファイルテーブル22に格納する(S305)。
その後、実行部26cは、取得したポートプロファイルのIDとVSI情報とをVSIテーブル23に格納する(S306)。このとき、実行部26cは、VSI情報の「VSI State」を「FETCHED」として格納する。なお、実行部26cは、VSI情報として、要求メッセージを受信したポートの「ポート番号」と、要求メッセージの「Port Profile Instance ID」に記載される「VSIID」とを格納する。
一方、実行部26cは、「ポートプロファイルID」でポートプロファイルテーブル22に存在する場合(S303肯定)、S304とS305を実行することなく、S306を実行する。
また、S301において、実行部26cは、メッセージ種別が「ASSOC」であると判定した場合、ポートプロファイルの割当を実行する(S307)。例えば、実行部26cは、ポートにVLANや帯域を設定する。そして、実行部26cは、要求メッセージの「Port Profile Instance ID」に記載される「VSIID」でVSIテーブル23を検索し、「VSIID」に対応付けられた「VSI State」を「ACTIVE」に更新する(S308)。
また、S301において、実行部26cは、メッセージ種別が「DE-ASSOC」であると判定した場合、ポートプロファイルの割当を削除する(S309)。例えば、実行部26cは、ポートにVLANや帯域の設定を削除する。そして、実行部26cは、要求メッセージの「Port Profile Instance ID」に記載される「VSIID」でVSIテーブル23を検索し、「VSIID」に対応付けられた情報を削除する(S310)。
続いて、実行部26cは、メッセージから「ポートプロファイルID」を取得し、この「ポートプロファイルID」を他のVSIIDが使用しているか否かを判定する(S311)。そして、実行部26cは、他のVSIIDが使用していないと判定した場合(S311否定)、当該「ポートプロファイルID」に対応付けてポートプロファイルテーブル22に格納されている情報を削除する(S312)。一方、実行部26cは、他のVSIIDが使用していると判定した場合(S311肯定)、処理を終了する。
一例を挙げると、実行部26cは、VSIテーブル23を検索し、上記「ポートプロファイルID」が割り当てられているVSIIDが存在するか否かによって、他のVSIIDが使用しているか否かを判定する。
[実施例1による効果]
実施例1によれば、VSI発見プロトコルを拡張し、ブレードサーバの端点をサーバエッジに見せる。そして、スイッチブレードは隣接スイッチとして動作しつつ、外部スイッチへVM移動を通知できる。具体的には、スイッチブレードがCPUサーバからVSI発見プロトコルのメッセージを受信した場合、その隣接スイッチであるスイッチブレード内の移動か否かを判断して、隣接スイッチ内の移動であれば、従来通り、隣接スイッチ自身で処理を行う。一方、隣接スイッチ内の移動でなければ、上位のスイッチにメッセージを転送し、上位のスイッチからの応答を待って、CPUサーバに応答メッセージを送信する。
実施例1によれば、VSI発見プロトコルを拡張し、ブレードサーバの端点をサーバエッジに見せる。そして、スイッチブレードは隣接スイッチとして動作しつつ、外部スイッチへVM移動を通知できる。具体的には、スイッチブレードがCPUサーバからVSI発見プロトコルのメッセージを受信した場合、その隣接スイッチであるスイッチブレード内の移動か否かを判断して、隣接スイッチ内の移動であれば、従来通り、隣接スイッチ自身で処理を行う。一方、隣接スイッチ内の移動でなければ、上位のスイッチにメッセージを転送し、上位のスイッチからの応答を待って、CPUサーバに応答メッセージを送信する。
これらの結果、エッジ仮想スイッチをスイッチの複数段構成に拡張できるので、ブレードサーバのシャーシにまたがってVMが移動する場合でも、ポートプロファイルをVM移動に応じて自動設定することができる。
また、スイッチブレードで中継せず、外部スイッチのポートを延長するもの(ポートエクステンダー、IEEE802.1Qbh)として動作させることも考えられるが、スイッチブレードのポート数比率を考慮すると、隣接スイッチとして動作させる方が帯域の点で望ましい。また、パケット中継の遅延時間(レイテンシー)も短くすることができる。
実施例1では、VSI発見プロトコルを拡張する手法について説明したが、本実施例では、エッジ仮想スイッチ(EVB)発見プロトコルを拡張することで、仮想スイッチの動作を調整して外部スイッチまでVSI発見プロトコルを拡張することもできる。具体的には、ブレードサーバと外部スイッチとの間でEVB発見プロトコル(IEEE 802.1Qbg)をやりとりすることで、外部スイッチが隣接スイッチとして動作可能とする。
実施例2では、EVB発見プロトコルの拡張について説明する。ここでは、システムの全体構成、スイッチの構成、処理の流れを説明する。
[全体構成]
図11は、実施例2に係るシステムの全体構成を示す図である。図11に示すように、このシステムは、ブレードサーバ10と、外部スイッチ60とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。なお、ブレードサーバ10内の構成や外部スイッチ等は図1と同様なので、ここでは詳細な説明は省略する。
図11は、実施例2に係るシステムの全体構成を示す図である。図11に示すように、このシステムは、ブレードサーバ10と、外部スイッチ60とを有する。なお、ここで示したサーバの台数等はこれに限定されるものではない。なお、ブレードサーバ10内の構成や外部スイッチ等は図1と同様なので、ここでは詳細な説明は省略する。
そして、ブレードサーバ内の各CPUサーバは、自サーバ内のVM間通信であっても外部のデータ中継装置であるスイッチブレード20を介して制御する動作モード(VEPA:Virtual Ethernet(登録商標) Port Aggregation)で動作している。また、外部スイッチ60は、サーバ内のVM間通信は当該サーバ内で制御する動作モード(VEB:Virtual Ethernet(登録商標) Bridge)で動作している。つまり、CPUサーバは、VEPAで動作しており、外部スイッチは、VEBで動作している。
このような状態において、スイッチブレード20は、外部スイッチ60に対して、ブレードサーバ10全体がVEBとして動作することを通知する。すなわち、スイッチブレード20は、各CPUサーバがVEPAとして動作しているにも関らず、ブレードサーバ10全体をVEBとして外部スイッチ60にみせる。つまり、CPUサーバ側がVEBであれば、スイッチブレード20の折り返しをオフし、CPUサーバ側がVEPAであれば、外部スイッチの折り返しをオンにする。
この結果、各CPUサーバがVEPAで外部スイッチ60もVEPAで動作している場合には、スイッチブレード20は、CPUサーバから通知された動作モードをそのまま外部スイッチ60に通知する。また、各CPUサーバがVEBで外部スイッチ60もVEBで動作している場合には、スイッチブレード20は、CPUサーバから通知された動作モードをそのまま外部スイッチ60に通知する。さらに、各CPUサーバがVEPAで外部スイッチ60もVEBで動作している場合には、スイッチブレード20は、CPUサーバから通知された動作モード(VEPA)をVEBに変換して外部スイッチ60に通知する。
[各装置の構成]
次に、図11に示した各装置の構成について説明する。なお、各CPUサーバは、図2で説明したCPUサーバ11と同様の構成を有するので、ここでは詳細な説明を省略する。また、スイッチブレード20と外部スイッチ60も同様の機能を有するので、ここではスイッチブレード20について説明する。
次に、図11に示した各装置の構成について説明する。なお、各CPUサーバは、図2で説明したCPUサーバ11と同様の構成を有するので、ここでは詳細な説明を省略する。また、スイッチブレード20と外部スイッチ60も同様の機能を有するので、ここではスイッチブレード20について説明する。
(スイッチブレードの構成)
図12は、実施例2に係るスイッチブレードの構成を示すブロック図である。図12に示すように、スイッチブレード20は、通信制御I/F部21と、ポートプロファイルテーブル22と、VSIテーブル23と、MACテーブル24と、動作モードテーブル30と、制御部25とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。
図12は、実施例2に係るスイッチブレードの構成を示すブロック図である。図12に示すように、スイッチブレード20は、通信制御I/F部21と、ポートプロファイルテーブル22と、VSIテーブル23と、MACテーブル24と、動作モードテーブル30と、制御部25とを有する。なお、各テーブルは、半導体メモリ素子またはハードディスクなどの記憶装置である。
ここで、通信制御I/F部21と、ポートプロファイルテーブル22と、VSIテーブル23と、MACテーブル24とは、図3で説明した機能と同様の機能を有するので、詳細な説明は省略する。また、制御部25が有するメッセージ処理部26と学習部27とスイッチング制御部28とについても、図3で説明した機能と同様の機能を有するので、詳細な説明は省略する。
そこで、実施例2では、実施例1とは異なる機能を有する動作モードテーブル30と、制御部25のEVB処理部31とについて説明する。
動作モードテーブル30は、CPUサーバや外部スイッチ60の動作モードなどを記憶する。ここで記憶される情報は、後述するEVB処理部31が格納したり、管理者等により格納されたりする。例えば、動作モードテーブル30は、CPUサーバ11の動作モード「VEPA」、外部スイッチ60の動作モード「VEPA」などと記憶する。
EVB処理部31は、EVB発見プロトコルに準拠したメッセージに応じた処理を実行する。例えば、EVB処理部31は、通信制御I/F部21を介して、各CPUサーバからEVB発見プロトコルのEDCP(Edge Discovery and Configuration Protocol)メッセージを受信する。そして、EVB処理部31は、受信したEDCPメッセージから動作モードを取得して動作モードテーブル30に格納する。例えば、EVB処理部31は、取得した動作モードが「VEPA」である場合には、折り返し設定を実行し、CPUサーバのVM等から受信したデータの中継を実行する。
また、EVB処理部31は、所定の間隔で、外部スイッチ60に動作モードを通知する。例えば、EVB処理部31は、動作モードテーブル30を参照し、CPUサーバの動作モードが「VEPA」で、外部スイッチ60の動作モードが「VEB」である場合には、ブレードサーバ全体の動作モードが「VEB」であると外部スイッチ60に通知する。
また、EVB処理部31は、動作モードテーブル30を参照し、CPUサーバの動作モードが「VEPA」で、外部スイッチ60の動作モードが「VEPA」である場合には、ブレードサーバ全体の動作モードが「VEPA」であると外部スイッチ60に通知する。また、EVB処理部31は、動作モードテーブル30を参照し、CPUサーバの動作モードが「VEB」で、外部スイッチ60の動作モードが「VEB」である場合には、ブレードサーバ全体の動作モードが「VEB」であると外部スイッチ60に通知する。
なお、動作モードを通知する契機としては、例えば1時間ごとや1日ごとなど定期的に送信することもできる。また、EDCPメッセージから動作モードを取得した後、すぐに通知することもできる。
[処理の流れ]
次に、スイッチブレード20が実行するEDCPメッセージ受信時の処理の流れと、スイッチブレード20が実行するEDCPメッセージ拡張処理の流れとを説明する。なお、これらの処理は、外部スイッチでも同様に実行できる。
次に、スイッチブレード20が実行するEDCPメッセージ受信時の処理の流れと、スイッチブレード20が実行するEDCPメッセージ拡張処理の流れとを説明する。なお、これらの処理は、外部スイッチでも同様に実行できる。
(EDCPメッセージ受信時の処理の流れ)
図13は、実施例2に係るスイッチブレードが実行するEDCPメッセージ受信時の処理の流れを示すフローチャートである。図13に示すように、スイッチブレード20のEVB処理部31は、CPUサーバからEDCPメッセージを受信すると(S401)、CPUサーバの動作モードが「VEPA」であるか否かを判定する(S402)。
図13は、実施例2に係るスイッチブレードが実行するEDCPメッセージ受信時の処理の流れを示すフローチャートである。図13に示すように、スイッチブレード20のEVB処理部31は、CPUサーバからEDCPメッセージを受信すると(S401)、CPUサーバの動作モードが「VEPA」であるか否かを判定する(S402)。
一例を挙げると、EVB処理部31は、図14に示したEVB TLVフォーマットで規定されるEDCPメッセージを受信する。図14は、EVB発見プロトコルで用いられるEDCPメッセージの例を示す図である。図14に示すメッセージフォーマットは、16ビットのTLVヘッダーに、メッセージの詳細情報が13オクテットで記載されるTLV Information Stringが付加されている。EVB処理部31は、TLV Information String内に2オクテットで規定される「EVB Capabilities」を参照する。そして、EVB処理部31は、「EVB Capabilities」内で1ビットで規定される「RR(Reflective Relay)」が「TRUE」であれば「VEPA」と判定し、「RR」が「FALSE」であれば「VEB」と判定する。
そして、EVB処理部31は、CPUサーバの動作モードが「VEPA」であると判定した場合には(S402肯定)、自スイッチに折り返しを設定する(S403)。このとき、EVB処理部31は、CPUサーバの動作モードを動作モードテーブル30に格納する。
続いて、EVB処理部31は、動作モードテーブル30を参照し、「VEB」に変換するか否かを判定する(S404)。そして、EVB処理部31は、「VEB」に変換しないと判定した場合には(S404否定)、上位スイッチに対する動作モードを「VEPA」に設定する(S405)。一方、EVB処理部31は、「VEB」に変換すると判定した場合には(S404肯定)、上位スイッチに対する動作モードを「VEB」に設定する(S406)。
一例を挙げると、EVB処理部31は、動作モードテーブル30を参照し、CPUサーバの動作モードが「VEPA」で、外部スイッチ60の動作モードが「VEPA」である場合には、ブレードサーバ全体の動作モードを「VEB」に変換しないと判定する。また、EVB処理部31は、動作モードテーブル30を参照し、CPUサーバの動作モードが「VEPA」で、外部スイッチ60の動作モードが「VEB」である場合には、ブレードサーバ全体の動作モードを「VEB」に変換すると判定する。
また、S402において、EVB処理部31は、CPUサーバの動作モードが「VEPA」でないと判定した場合には(S402否定)、上記S406を実行する。
(EDCPメッセージ拡張処理の流れ)
図15は、実施例2に係るスイッチブレードが実行するEDCPメッセージ拡張処理の流れを示すフローチャートである。図15に示すように、スイッチブレード20のEVB処理部31は、動作モード通知契機に到達すると、上位スイッチに動作モードを判定する(S501)。つまり、EVB処理部31は、図13に示したフローチャートで、上位スイッチに対して通知すると決定された動作モードを判定する。
図15は、実施例2に係るスイッチブレードが実行するEDCPメッセージ拡張処理の流れを示すフローチャートである。図15に示すように、スイッチブレード20のEVB処理部31は、動作モード通知契機に到達すると、上位スイッチに動作モードを判定する(S501)。つまり、EVB処理部31は、図13に示したフローチャートで、上位スイッチに対して通知すると決定された動作モードを判定する。
そして、EVB処理部31は、通知する動作モードが「VEPA」であると判定した場合には、「EVB Capabilities」における「RR」を「TRUE」としたEDCPメッセージを外部スイッチ60に送信する(S502)。一方、EVB処理部31は、通知する動作モードが「VEB」であると判定した場合には、「EVB Capabilities」における「RR」を「FALSE」としたEDCPメッセージを外部スイッチ60に送信する(S503)。
[実施例2による効果]
実施例2によれば、ブレードサーバ10が外部スイッチ60とEVB発見プロトコルをやりとりすることで、外部スイッチ60が隣接スイッチとして動作できる。また、スイッチブレード20はVEBとして外部スイッチ60にみせる。ここで、ブレードサーバ10がVEBであれば、スイッチブレードの折り返しをオフし、ブレードサーバ10側がVEPAであれば、スイッチの折り返しをオンにする。
実施例2によれば、ブレードサーバ10が外部スイッチ60とEVB発見プロトコルをやりとりすることで、外部スイッチ60が隣接スイッチとして動作できる。また、スイッチブレード20はVEBとして外部スイッチ60にみせる。ここで、ブレードサーバ10がVEBであれば、スイッチブレードの折り返しをオフし、ブレードサーバ10側がVEPAであれば、スイッチの折り返しをオンにする。
これらの結果、エッジ仮想スイッチの動作を調整することで、外部スイッチ60までVSI発見プロトコルを拡張しつつ、ブレードサーバ内の通信は、スイッチブレードで折り返すことにより、帯域及び遅延時間の点で優位な効果を有する。
また、ソフトウェアによる仮想スイッチのオフロードにより、CPUの負荷を軽減し、サーバ集約率向上する。また、VM間通信の見える化が実現でき、ミラーリング等が実行でき、問題調査の容易化に繋がる。また、仮想スイッチを一元管理することができ、ブレードサーバ内またはCPUサーバ内でも、ブレードサーバ外またはCPUサーバ外でも同様の処理を実行できる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(構成例)
実施例1や2では、ブレードサーバの例にして説明したが、これに限定されるものではなく、ラック搭載型サーバにも同様に適用することができる。また、実施例1や2では、スイッチブレードと外部スイッチの2段構成を例にして説明したが、これに限定されるものではなく、3段以上の構成にも同様に適用することができる。例えば、1段目のスイッチと2段目のスイッチで実施例1や2の処理を実行し、1段目のスイッチ+2段目のスイッチ=1スイッチと3段目のスイッチとで実施例1や2の処理を実行する。
実施例1や2では、ブレードサーバの例にして説明したが、これに限定されるものではなく、ラック搭載型サーバにも同様に適用することができる。また、実施例1や2では、スイッチブレードと外部スイッチの2段構成を例にして説明したが、これに限定されるものではなく、3段以上の構成にも同様に適用することができる。例えば、1段目のスイッチと2段目のスイッチで実施例1や2の処理を実行し、1段目のスイッチ+2段目のスイッチ=1スイッチと3段目のスイッチとで実施例1や2の処理を実行する。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図4〜図7、図14等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図4〜図7、図14等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば受信部26aと判定部26bとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図16は、プロトコル拡張処理プログラムを実行するコンピュータの例を示す図である。図16に示すように、コンピュータ100は、RAM101と、HDD102と、ROM103と、CPU104とを有する。HDD102には、MACテーブル24と同様の情報を記憶するMACテーブル102aと、ポートプロファイルテーブル22と同様の情報を記憶するポートプロファイルテーブル102bとが設けられる。また、HDD102には、VSIテーブル23と同様の情報を記憶するVSIテーブル102cが設けられる。
ROM103には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図16に示すように、ROM103には、プロトコル拡張処理プログラム103aがあらかじめ記憶されている。
そして、CPU104には、これらのプロトコル拡張処理プログラム103aを読み出して実行することで、図16に示すように、プロトコル拡張プロセス104aを実行する。プロトコル拡張処理プロセス104aは、受信部26aと判定部26bと実行部26cと転送部26dと同様の動作を実行する。さらに、プロトコル拡張処理プロセス104aは、EVB処理部31と同様の動作を実行する。
ところで、上記したプロトコル拡張処理プログラム103aは、必ずしもROM103に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータ100の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される「他のコンピュータ」に記憶させておいてもよい。そして、コンピュータ100がこれらからプログラムを読み出して実行するようにしてもよい。
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、コンピュータ100は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
5 ポートプロファイルDBサーバ
10、40 ブレードサーバ
11、12、13、41、42 CPUサーバ
11a 物理インタフェース
12a 仮想スイッチ
13a 仮想領域
14a メモリ
15a CPU
16a VMM
20、50 スイッチブレード
21 通信制御I/F部
22 ポートプロファイルテーブル
23 VSIテーブル
24 MACテーブル
25 制御部
26 メッセージ処理部
26a 受信部
26b 判定部
26c 実行部
26d 転送部
27 学習部
28 スイッチング制御部
30 動作モードテーブル
31 EVB処理部
60 外部スイッチ
10、40 ブレードサーバ
11、12、13、41、42 CPUサーバ
11a 物理インタフェース
12a 仮想スイッチ
13a 仮想領域
14a メモリ
15a CPU
16a VMM
20、50 スイッチブレード
21 通信制御I/F部
22 ポートプロファイルテーブル
23 VSIテーブル
24 MACテーブル
25 制御部
26 メッセージ処理部
26a 受信部
26b 判定部
26c 実行部
26d 転送部
27 学習部
28 スイッチング制御部
30 動作モードテーブル
31 EVB処理部
60 外部スイッチ
Claims (9)
- コンピュータに、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する手順と
を実行させることを特徴とするプロファイル処理プログラム。 - 前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合に、前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信すると、当該削除要求に含まれる仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順をさらに実行させることを特徴とする請求項1に記載のプロファイル処理プログラム。
- 前記判定する手順は、前記受信した設定要求がPRA−ASSOCメッセージである場合に、前記PRA−ASSOCメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されているか否かを判定し、前記PRA−ASSOCメッセージに含まれる仮想マシン識別子が前記記憶部に記憶されていないと判定した後に受信したASSOCメッセージについては、前記仮想マシン識別子が記憶されているかの判定を実施することなく、前記データ中継装置に転送することを特徴とする請求項1に記載のプロファイル処理プログラム。
- コンピュータに、
仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する手順と、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する手順と、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自プログラムが実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する手順と
を実行させることを特徴とするプロファイル処理プログラム。 - 前記仮想マシンが稼動するサーバから、当該サーバ内の仮想マシン間通信であっても外部のデータ中継装置で制御するVEPAで動作する旨の通知を受信した場合に、当該サーバ内の仮想マシン間通信は当該サーバ内で制御するVEBで前記サーバが動作する旨の通知を、前記VEBで動作する前記データ中継装置に送信する手順をさらに実行させることを特徴とする請求項1または4に記載のプロファイル処理プログラム。
- データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記設定要求に応じた処理を実行する実行部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動先サーバと接続される上位のデータ中継装置に、前記設定要求を転送する転送部と
を有することを特徴とするデータ中継装置。 - データを中継するデータ中継装置であって、
前記データ中継装置に接続されるサーバで稼動する仮想マシンを識別する仮想マシン識別子を記憶する記憶部と、
前記仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信する受信部と、
前記受信部によって受信された設定要求に含まれる仮想マシン識別子が、前記記憶部に記憶されているか否かを判定する判定部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていると判定された場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除する削除部と、
前記判定部によって前記受信された仮想マシン識別子が記憶部に記憶されていないと判定された場合、前記データ中継装置を介して前記移動元サーバと接続される上位のデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する転送部と
を有することを特徴とするデータ中継装置。 - コンピュータが実行する制御方法であって、
移動対象の仮想マシンが移動する移動先サーバから、当該仮想マシンに対応するポートプロファイル情報の設定要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した設定要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記設定要求に応じた処理を実行し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動先サーバと接続されるデータ中継装置に、前記設定要求を転送する
ことを特徴とするプロファイル制御方法。 - コンピュータが実行する制御方法であって、
仮想マシンが稼動する移動元サーバから、当該仮想マシンに対応するポートプロファイル情報の削除要求を受信し、
前記仮想マシンを識別する仮想マシン識別子を記憶する記憶部に、前記受信した削除要求に含まれる仮想マシン識別子が記憶されているか否かを判定し、
前記受信した仮想マシン識別子が記憶部に記憶されていると判定した場合、前記仮想マシン識別子に対応付けて前記記憶部に記憶されるポートプロファイルを削除し、
前記受信した仮想マシン識別子が記憶部に記憶されていないと判定した場合、自制御方法が実行されるコンピュータを介して前記移動元サーバと接続されるデータ中継装置に前記削除要求を転送するか、または、前記削除要求を破棄する
ことを特徴とするプロファイル制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/050217 WO2012093495A1 (ja) | 2011-01-07 | 2011-01-07 | プロファイル処理プログラム、データ中継装置およびプロファイル制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5500270B2 true JP5500270B2 (ja) | 2014-05-21 |
JPWO2012093495A1 JPWO2012093495A1 (ja) | 2014-06-09 |
Family
ID=46457360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012551786A Expired - Fee Related JP5500270B2 (ja) | 2011-01-07 | 2011-01-07 | プロファイル処理プログラム、データ中継装置およびプロファイル制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9354905B2 (ja) |
JP (1) | JP5500270B2 (ja) |
WO (1) | WO2012093495A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011107092B4 (de) * | 2011-07-11 | 2017-09-14 | Fujitsu Ltd. | Computersystem, Verfahren zum Starten eines Server-Computers, Server-Computer, Managementstation und Verwendung |
JP5776600B2 (ja) * | 2011-09-05 | 2015-09-09 | 富士通株式会社 | データ中継装置、データ中継プログラムおよびデータ中継方法 |
US9218303B2 (en) * | 2012-12-14 | 2015-12-22 | Dell Products L.P. | Live migration of virtual machines using virtual bridges in a multi-root input-output virtualization blade chassis |
JP6003611B2 (ja) * | 2012-12-17 | 2016-10-05 | 富士通株式会社 | 中継装置、中継装置の制御プログラム及び中継装置の制御方法 |
CN103051479B (zh) * | 2012-12-24 | 2016-01-20 | 北京启明星辰信息技术股份有限公司 | 虚拟机网络控制策略的迁移处理方法及系统 |
JP6032026B2 (ja) * | 2013-01-24 | 2016-11-24 | 富士通株式会社 | 中継プログラム、中継方法および中継処理装置 |
US9203699B2 (en) * | 2014-02-11 | 2015-12-01 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Constructing and verifying switch fabric cabling schemes |
US9535728B2 (en) * | 2013-03-18 | 2017-01-03 | International Business Machines Corporation | Scalable policy management in an edge virtual bridging (EVB) environment |
US9529612B2 (en) * | 2013-03-18 | 2016-12-27 | International Business Machines Corporation | Scalable policy assignment in an edge virtual bridging (EVB) environment |
EP2978169B1 (en) | 2013-03-19 | 2017-05-17 | Fujitsu Limited | Switch, setting method, and program |
US9203781B2 (en) * | 2013-08-07 | 2015-12-01 | Cisco Technology, Inc. | Extending virtual station interface discovery protocol (VDP) and VDP-like protocols for dual-homed deployments in data center environments |
US10417029B2 (en) * | 2015-08-03 | 2019-09-17 | Hewlett Packard Enterprise Development Lp | Virtual machine migration |
JP7003562B2 (ja) * | 2017-10-16 | 2022-01-20 | 富士通株式会社 | ミラーパケット制御プログラム、ミラーパケット制御方法、およびミラーパケット制御装置 |
TWI686065B (zh) * | 2017-11-06 | 2020-02-21 | 財團法人工業技術研究院 | 自動初始化網路裝置之方法及使用此方法之遠端伺服器及網路系統 |
US10462009B1 (en) * | 2018-02-20 | 2019-10-29 | Amazon Technologies, Inc. | Replicating customers' information technology (IT) infrastructures at service provider networks |
US10620987B2 (en) | 2018-07-27 | 2020-04-14 | At&T Intellectual Property I, L.P. | Increasing blade utilization in a dynamic virtual environment |
JP7359284B2 (ja) * | 2020-02-19 | 2023-10-11 | 日本電信電話株式会社 | 制御装置、制御方法及びプログラム |
US11409619B2 (en) | 2020-04-29 | 2022-08-09 | The Research Foundation For The State University Of New York | Recovering a virtual machine after failure of post-copy live migration |
US11163709B1 (en) | 2020-07-10 | 2021-11-02 | Dell Products L.P. | Port configuration migration system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007083557A1 (ja) * | 2006-01-17 | 2007-07-26 | Sharp Kabushiki Kaisha | ネットワーク制御装置、ネットワークシステム、プログラム、通信端末及び移動通信ネットワークの制御方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7633948B2 (en) * | 2003-07-07 | 2009-12-15 | Panasonic Corporation | Relay device and server, and port forward setting method |
US7647483B2 (en) | 2007-02-20 | 2010-01-12 | Sony Computer Entertainment Inc. | Multi-threaded parallel processor methods and apparatus |
US20090172125A1 (en) * | 2007-12-28 | 2009-07-02 | Mrigank Shekhar | Method and system for migrating a computer environment across blade servers |
US7835306B2 (en) * | 2008-01-23 | 2010-11-16 | Cisco Technology, Inc. | Translating MST instances between ports of a bridge in a computer network |
JP5164628B2 (ja) * | 2008-03-24 | 2013-03-21 | 株式会社日立製作所 | ネットワークスイッチ装置、サーバシステム及びサーバシステムにおけるサーバ移送方法 |
WO2009146165A1 (en) * | 2008-04-15 | 2009-12-03 | Blade Network Technologies, Inc. | Network virtualization for a virtualized server data center environment |
US8195774B2 (en) * | 2008-05-23 | 2012-06-05 | Vmware, Inc. | Distributed virtual switch for virtualized computer systems |
JP5079665B2 (ja) | 2008-11-18 | 2012-11-21 | Kddi株式会社 | 仮想計算機送信方法、システム、管理装置及びプログラム |
US8331362B2 (en) * | 2008-12-30 | 2012-12-11 | Juniper Networks, Inc. | Methods and apparatus for distributed dynamic network provisioning |
JP5333735B2 (ja) | 2009-01-27 | 2013-11-06 | 日本電気株式会社 | 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム |
KR101303718B1 (ko) * | 2009-02-27 | 2013-09-04 | 브로드콤 코포레이션 | 가상 머신 네트워킹을 위한 방법 및 시스템 |
US8265075B2 (en) * | 2009-03-16 | 2012-09-11 | International Business Machines Corporation | Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch |
US9031081B2 (en) * | 2009-08-06 | 2015-05-12 | Broadcom Corporation | Method and system for switching in a virtualized platform |
JP5446040B2 (ja) | 2009-09-28 | 2014-03-19 | 日本電気株式会社 | コンピュータシステム、及び仮想マシンのマイグレーション方法 |
US8693485B2 (en) * | 2009-10-14 | 2014-04-08 | Dell Products, Lp | Virtualization aware network switch |
US9158567B2 (en) * | 2009-10-20 | 2015-10-13 | Dell Products, Lp | System and method for reconfigurable network services using modified network configuration with modified bandwith capacity in dynamic virtualization environments |
US8489763B2 (en) * | 2010-04-20 | 2013-07-16 | International Business Machines Corporation | Distributed virtual bridge management |
US9461840B2 (en) * | 2010-06-02 | 2016-10-04 | Brocade Communications Systems, Inc. | Port profile management for virtual cluster switching |
US9807031B2 (en) * | 2010-07-16 | 2017-10-31 | Brocade Communications Systems, Inc. | System and method for network configuration |
US8417800B2 (en) * | 2010-07-16 | 2013-04-09 | Broadcom Corporation | Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata |
US8819235B2 (en) * | 2010-10-20 | 2014-08-26 | International Business Machines Corporation | Multi-adapter link aggregation for adapters with hardware based virtual bridges |
-
2011
- 2011-01-07 WO PCT/JP2011/050217 patent/WO2012093495A1/ja active Application Filing
- 2011-01-07 JP JP2012551786A patent/JP5500270B2/ja not_active Expired - Fee Related
-
2013
- 2013-07-03 US US13/934,294 patent/US9354905B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007083557A1 (ja) * | 2006-01-17 | 2007-07-26 | Sharp Kabushiki Kaisha | ネットワーク制御装置、ネットワークシステム、プログラム、通信端末及び移動通信ネットワークの制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US9354905B2 (en) | 2016-05-31 |
JPWO2012093495A1 (ja) | 2014-06-09 |
US20130298126A1 (en) | 2013-11-07 |
WO2012093495A1 (ja) | 2012-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5500270B2 (ja) | プロファイル処理プログラム、データ中継装置およびプロファイル制御方法 | |
US7962587B2 (en) | Method and system for enforcing resource constraints for virtual machines across migration | |
US8386825B2 (en) | Method and system for power management in a virtual machine environment without disrupting network connectivity | |
US7941539B2 (en) | Method and system for creating a virtual router in a blade chassis to maintain connectivity | |
US8990808B2 (en) | Data relay device, computer-readable recording medium, and data relay method | |
US11941423B2 (en) | Data processing method and related device | |
EP3091696B1 (en) | Method and device for implementing virtual machine communication | |
RU2571536C2 (ru) | Способ, система и управляющий мост для получения информации о топологии расширения порта | |
EP2250772B1 (en) | Method and system for offloading network processing | |
US8095661B2 (en) | Method and system for scaling applications on a blade chassis | |
JP2020526122A (ja) | データ処理方法、ネットワークインタフェースカード、及びサーバ | |
JP5983782B2 (ja) | コンピュータシステム、通信制御サーバ、通信制御方法およびプログラム | |
US8886838B2 (en) | Method and system for transferring packets to a guest operating system | |
JP2012533129A (ja) | 仮想ネットワークの高性能で自動化された管理方法及びシステム | |
JP6260310B2 (ja) | ネットワークスイッチ、ネットワークシステム及びネットワークシステムの制御方法 | |
JP5980724B2 (ja) | ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム | |
US8984634B2 (en) | Quarantine network system, server apparatus, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5500270 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |