(57)【要約】【課題】  ネットワークにパケットを送信する通信回路を経由して宛先装置までパケットを届ける場合、通信回路の帯域制限に通信効率が制限されてしまう。【解決手段】  通信システムは、ネットワークにパケットを出力するための複数の通信回路と、宛先装置を識別するためのアドレスを含む第１パケットを複数の通信回路の何れかの通信回路へ出力させるために、第１パケットに通信回路の識別情報が付与された第２パケットを送信する送信元装置と、送信元装置から送信された第２パケットを、識別情報に応じて複数の通信回路の何れかの通信回路に出力する中継手段とを有し、中継手段は、第２パケットに含まれるアドレスが中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、識別情報に応じた通信回路に出力せずに、中継手段に接続された宛先装置に出力する。【選択図】  図２
2014187430.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにパケットを出力するための複数の通信回路と、
宛先装置を識別するためのアドレスを含む第１パケットを前記複数の通信回路の何れかの通信回路へ出力させるために、前記第１パケットに前記通信回路の識別情報が付与された第２パケットを送信する送信元装置と、
前記送信元装置から送信された前記第２パケットを、前記識別情報に応じて前記複数の通信回路の何れかの通信回路に出力する中継手段と
を有し、
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする通信システム。
【請求項２】
前記送信元装置は、前記識別情報が選択的に割り当てられることで、前記複数の通信回路の何れかに前記第１パケットを送信可能である
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであって、前記中継手段に接続された宛先装置を識別するためのアドレスが所定の基準に基づくアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
前記中継手段は、前記所定の基準の変更に応じて、前記第１パケットを前記識別情報に応じた通信回路に出力せずに前記中継手段に接続された宛先装置に出力する場合と、前記第１パケットを前記識別情報に応じた通信回路に出力する場合とを切り替える
ことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置のアドレスであって、前記第２パケットに含まれる送信元装置を識別するためのアドレスが前記所定の規則に基づくアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする請求項３又は４に記載の通信システム。
【請求項６】
前記中継手段は、前記第２パケットに含まれる前記識別情報の検出に続いて前記アドレスを検出し、前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであるか否かを判定するコントローラを含む
ことを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項７】
前記中継手段は、前記送信元装置のＩＯバス及び前記宛先装置のＩＯバスに接続されたクロスバスイッチを含み、
前記コントローラは、前記識別情報の検出に続いて検出された前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであると判定した場合に、前記クロスバスイッチの接続を制御して、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする請求項６に記載の通信システム。
【請求項８】
ネットワークにパケットを出力するための複数の通信回路と、
宛先装置を識別するためのアドレスを含む第１パケットを前記複数の通信回路の何れかの通信回路へ出力させるために、前記第１パケットに前記通信回路の識別情報が付与された第２パケットを送信する送信元装置から送信された前記第２パケットを、前記識別情報に応じて前記複数の通信回路の何れかの通信回路に出力する中継手段と
を有し、
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする中継装置。
【請求項９】
コンピュータが、
宛先装置を識別するためのアドレスを含む第１パケットに対して複数の通信回路のうちの何れかの通信回路の識別情報が付与された第２パケットを受信し、
前記第２パケットに含まれる前記アドレスが、前記第２パケットを中継する中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
を特徴とする通信方法。
【請求項１０】
コンピュータに、
宛先装置を識別するためのアドレスを含む第１パケットに対して複数の通信回路のうちの何れかの通信回路の識別情報が付与された第２パケットを受信させ、
前記第２パケットに含まれる前記アドレスが、前記第２パケットを中継する中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力させずに、前記中継手段に接続された宛先装置に出力させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、中継装置、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
サーバからネットワークへパケットが送信される場合には、サーバに備えられたネットワークインターフェースカード（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）によってパケット処理が実行されてから、ネットワークにパケットが送信される。このため、ネットワークに出力されるパケットの送信レートは、ＮＩＣの処理能力に基づく帯域制限を超えることができない。
【０００３】
そこで、ひとつのＮＩＣの帯域制限を超える送信レートを実現させるために、サーバに複数のＮＩＣを搭載して、複数のＮＩＣを同時に使用することがある。この場合、同時に使用されるＮＩＣの数に応じた帯域を実現できる。なお、サーバに既に供えられている複数のＮＩＣの処理能力を超えた送信レートを実現させるためには、新たなＮＩＣをサーバに増設する必要がある。
【０００４】
ところで、情報処理装置のリソースを仮想化する技術として、ＮＩＣを仮想化する技術が知られている。ＮＩＣを仮想化する場合には、サーバにＮＩＣを搭載する必要が必ずしもない。サーバは、複数のＮＩＣとそれらのＮＩＣにパケットを転送させるスイッチとを含むＮＩＣ仮想化装置に接続される。そして、サーバは、複数のＮＩＣのうちの割り当てられたＮＩＣの識別番号を指定して、パケットをＮＩＣ仮想化装置に出力する。ＮＩＣ仮想化装置は、この識別番号に従って、複数のＮＩＣのうちの対応するＮＩＣにパケットを転送する。そして、ＮＩＣ仮想化装置内のＮＩＣがパケットに処理を施して、ネットワークにパケットを送信する。
【０００５】
このＮＩＣ仮想化装置によって、サーバにＮＩＣを物理的に増設させなくても、サーバは複数のＮＩＣを使用することができる。また、サーバにＮＩＣが備えられていた場合に、このＮＩＣの処理能力に余裕があっても、他のサーバはこのＮＩＣを使用することはできない。しかし、ＮＩＣ仮想化装置では、あるサーバに割り当てられたＮＩＣの処理能力に余裕があれば、このＮＩＣを他のサーバにも割り当てて共有使用させることができる。
【０００６】
ところで、ルータ間にバイパス回線を敷設し、ユーザとの契約に基づき特定の端末装置間の伝送に限って利用権を設定すれば、利用権が設定された特定の端末装置間の伝送にはバイパス回線経由でのデータパケット伝送が行われるように、ルータ内のルーティングテーブルの書換処理を行う技術が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２１８９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ネットワークにパケットを送信する通信回路を経由して宛先装置までパケットを届ける場合、通信回路による帯域制限に通信効率が制限されてしまう。
【０００９】
本願は、パケットの宛先に応じて通信経路を変更して通信効率を良好にさせる通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の通信システムは、ネットワークにパケットを出力するための複数の通信回路と、宛先装置を識別するためのアドレスを含む第１パケットを前記複数の通信回路の何れかの通信回路へ出力させるために、前記第１パケットに前記通信回路の識別情報が付与された第２パケットを送信する送信元装置と、前記送信元装置から送信された前記第２パケットを、前記識別情報に応じて前記複数の通信回路の何れかの通信回路に出力する中継手段とを有し、前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する。
【発明の効果】
【００１１】
本開示の一側面によれば、ネットワークにパケットを送信する通信回路を経由して宛先装置まで届けられる予定のパケットの通信経路が、宛先装置のアドレスに応じて変更されることで、通信効率が向上する。
【図面の簡単な説明】
【００１２】
【図１】通信システムの例。
【図２】実施例の通信システムの例。
【図３】実施例の通信システムで処理されるパケットの例。
【図４】実施例の通信システムの動作のタイムチャートの例。
【図５】実施例の管理装置のハードウェア構成の例。
【図６】実施例の管理装置の機能ブロックの例。
【図７】実施例の管理装置で使用される情報の例。
【図８】実施例の管理装置で実行される処理の例。
【図９】実施例のサーバのハードウェア構成の例。
【図１０】実施例のサーバの機能ブロックの例。
【図１１】実施例のサーバで実行される処理の例。
【図１２】実施例の中継装置のハードウェア構成の例。
【図１３】実施例の中継装置の機能ブロックの例。
【図１４】実施例の中継装置で使用される情報の例。
【図１５】実施例の中継装置で実行される処理の例。
【図１６】実施例の中継装置で実行される処理の例。
【発明を実施するための形態】
【００１３】
図１に、通信システムの例が示される。通信システム１は、サーバ２−４、ＮＩＣ仮想化装置５、及び、Ｌ２（レイヤ２）スイッチ６を含む。ＮＩＣ仮想化装置５は、バススイッチ７及びネットワークインターフェースカード（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ、以下ＮＩＣとする）８−１１を有する。サーバ２−４は、ＮＩＣを有しておらず、ＮＩＣ仮想化装置５にあるＮＩＣ８−１１の何れかが適宜割り当てられることで、ネットワーク１２やネットワーク１３を介してサーバ１４やサーバ１５と通信する。なお、サーバ２−４の各々において、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、以下ＶＭとする）１６−１８が実行されているとする。
【００１４】
例えば、ＶＭ１６がパケットをサーバ１４に通信経路１９を介して送信する場合、ＶＭ１６がバススイッチ７にパケットを出力し、バススイッチ７はこのパケットをＶＭ１６に割り当てられているＮＩＣ８に出力する。そして、ＮＩＣ８はこのパケットをＬ２スイッチ６に出力し、Ｌ２スイッチ６はこのパケットが通信の宛先となるサーバ１４に届くようにネットワーク１２にパケットを出力する。
【００１５】
さらに説明すると、ＶＭ１６は、送信対象のデータに宛先となる装置のアドレスと送信元となる装置のアドレスを付与する。この通信経路１９による通信の場合、ＶＭ１６は、宛先となるサーバ１４のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを宛先ＭＡＣアドレスとし、ＶＭ１６のＭＡＣアドレスを送信元ＭＡＣアドレスとしてデータに付与することで、データをパケット化する。さらに、ＶＭ１６に割り当てられているＮＩＣ８を識別するためのデバイス情報を、パケットのヘッダ部に付与する。
【００１６】
サーバ２−４とバススイッチ７までは内部配線のバスでの通信となるため、ＶＭ１６がマスタとなりＮＩＣ８がスレーブとなる。マスタであるＶＭ１６は、パケットを出力する前に、パケットを出力することをスレーブであるＮＩＣ８に通知する。スレーブであるＮＩＣ８は、パケットを受け取ることが可能な場合、マスタであるＶＭ１６にパケットを受け取り可能であることを通知する。そして、マスタであるＶＭ１６はＮＩＣ８を識別するためのデバイス情報を含むパケットをバススイッチ７に出力する。
【００１７】
バススイッチ７は、バススイッチ７のどのポートにどのＮＩＣが接続されているかを関連付けた情報を有している。例えば、バススイッチ７は、バススイッチのポート番号とデバイス識別情報とを関連付けた情報を有している。バススイッチ７は、ＮＩＣ８を識別するためのデバイス情報を含むパケットを受け取ると、パケットのヘッダ部に含まれるデバイス識別情報に対応するポート番号を判定する。バススイッチ７は、判定されたポートにパケットを転送するために、バススイッチ７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ７における判定されたポートからパケットが出力される。
【００１８】
判定されたポートにはＮＩＣ８が接続されているので、スレーブであるＮＩＣ８にパケットが届くこととなる。ＮＩＣ８はこのパケットを受け取ると、パケットをデパケットすることによりヘッダ部のデバイス識別情報を外し、宛先ＭＡＣアドレスに従って、パケットをＬ２スイッチに出力する。Ｌ２スイッチは、この宛先ＭＡＣアドレスに関連付けられているポートにパケットを出力することで、パケットがネットワーク１２を介してサーバ１４に届けられることとなる。
【００１９】
また、ＶＭ１６がパケットをＶＭ１７に通信経路２０を介して送信する場合、ＶＭ１６がバススイッチ７にパケットを出力し、バススイッチ７はこのパケットをＶＭ１６に割り当てられているＮＩＣ９に出力する。そして、ＮＩＣ９はこのパケットをＬ２スイッチ６に出力し、Ｌ２スイッチ６はこのパケットが通信の宛先となるＶＭ１７に届くようにＮＩＣ１０にパケットを出力する。そして、ＮＩＣ１０はこのパケットをバススイッチ７に出力し、バススイッチはＶＭ１７にこのパケットを出力する。
【００２０】
さらに説明すると、ＶＭ１６は、宛先となるＶＭ１７のＭＡＣアドレスを宛先ＭＡＣアドレスとし、ＶＭ１６のＭＡＣアドレスを送信元ＭＡＣアドレスとして送信対象のデータに付与することで、データをパケット化する。さらに、ＶＭ１６に割り当てられているＮＩＣ９を識別するためのデバイス情報を、パケットのヘッダ部に付与する。
【００２１】
サーバ２−４とバススイッチ７までは内部配線のバスでの通信となるため、ＶＭ１６がマスタとなりＮＩＣ９がスレーブとなる。マスタであるＶＭ１６は、パケットを出力する前に、パケットを出力することをスレーブであるＮＩＣ９に通知する。スレーブであるＮＩＣ９は、パケットを受け取ることが可能な場合、マスタであるＶＭ１６にパケットを受け取り可能であることを通知する。そして、マスタであるＶＭ１６はＮＩＣ９を識別するためのデバイス情報を含むパケットをバススイッチ７に出力する。
【００２２】
バススイッチ７は、ＮＩＣ９を識別するためのデバイス情報を含むパケットを受け取ると、パケットのヘッダ部に含まれるデバイス識別情報に対応するポート番号を判定する。バススイッチ７は、判定されたポートにパケットを転送するために、バススイッチ７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ７における判定されたポートからパケットが出力される。
【００２３】
判定されたポートにはＮＩＣ９が接続されているので、スレーブであるＮＩＣ９にパケットが届くこととなる。ＮＩＣ９はこのパケットを受け取ると、パケットをデパケットすることによりヘッダ部のデバイス識別情報を外し、宛先ＭＡＣアドレスに従って、パケットをＬ２スイッチ６に出力する。
【００２４】
Ｌ２スイッチ６は、この宛先ＭＡＣアドレスが関連付けられているポートにパケットを出力する。この場合、ＶＭ１７のＭＡＣアドレスと関連付けられているポートはＮＩＣ１０に接続されているポートであり、ＮＩＣ１０が接続されているポートからパケットが出力される。
【００２５】
ＮＩＣ１０はパケットを受け取ると、内部配線であるバスの通信においてスレーブとなるＮＩＣ１０は、マスタとなるＶＭ１７に対して、ＶＭ１７を宛先とするパケットが届いていることを通知する。そして、マスタとなるＶＭ１７は、このパケットを受け取ることが可能な場合、スレーブとなるＮＩＣ１０にパケットを受け取り可能であるので出力してもよいことを通知する。この通知を受け取ると、スレーブとなるＮＩＣ１０は、マスタとなるＶＭ１７が実行されているサーバ３をバスの通信において識別するために、例えばサーバ３のＩＯバスコントローラを識別するためのデバイス識別情報をパケットにヘッダ部に付与して、バススイッチ７にパケットを出力する。
【００２６】
バススイッチ７は、サーバ３のＩＯバスコントローラを識別するためのデバイス情報を含むパケットを受け取ると、パケットのヘッダ部に含まれるデバイス識別情報に対応するポート番号を判定する。バススイッチ７は、判定されたポートにパケットを転送するために、バススイッチ７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ７における判定されたポートからパケットが出力される。
【００２７】
判定されたポートにはサーバ３のＩＯバスコントローラが接続されているので、サーバ３にパケットが送信されることで、マスタとなるＶＭ１７にパケットが届くこととなる。
【００２８】
以上に説明したように、サーバ２−４とＮＩＣ８−９との間は内部配線であるバスでの通信であり、サーバ２−４やＶＭ１６−１８がマスタとなりＮＩＣ８−１１がスレーブとなってデバイス識別情報に従った通信が実行される。この通信に対して、ＮＩＣ８−１１とＬ２スイッチ６との間の通信は、ＭＡＣアドレスに従って実行される。
【００２９】
その他、ＶＭ１７にはＮＩＣ１０が割り当てられ、ＶＭ１７は通信経路２１を介してパケットを送信する。ＶＭ１８にはＮＩＣ１１が割り当てられ、ＶＭ１８は通信経路２２を介してパケットを送信する。
【００３０】
ところで、ＮＩＣを有していないサーバ２−４は、内部配線であるバスによってバススイッチ７と接続されている。そのため、サーバ２−４とバススイッチとの通信の帯域は、内部配線による通信のため、例えば、５６Ｇｂｐｓである。他方で、ＮＩＣ８−１１とＬ２スイッチとの通信の帯域は、ＮＩＣの帯域制限に依存するため、例えば、１Ｇｂｐｓであり、内部配線の通信と比較して帯域幅が狭い。
【００３１】
すなわち、上述した通信経路２０の帯域は、ＮＩＣ９及び１０の帯域制限の制約をうけて実行されることになってしまう。
【００３２】
図２に、実施例の通信システムの例が示される。実施例の通信システム１００は、サーバ１０２−１０４、ＮＩＣ仮想化装置１０５、Ｌ２スイッチ１０６、管理サーバ１２２、及び、データベース１２３を含む。中継装置の一例であるＮＩＣ仮想化装置１０５は、バススイッチ１０７、及び、通信回路の一例であるＮＩＣ１０８−１１１を有する。サーバ１０２−１０４は、ＮＩＣを有しておらず、ＮＩＣ仮想化装置１０５にあるＮＩＣ１０８−１１１の何れかが適宜割り当てられることで、サーバ１０２−１０４の互いの通信が実行されたり、ネットワーク１２やネットワーク１３を介してサーバ１４やサーバ１５との通信が実行されたりする。つまり、ＮＩＣとサーバの物理的な接続関係によらずに、ＮＩＣ仮想化装置１０５があることで適応的にＮＩＣが割り当てられることで、所望の帯域の通信を実行させることができる。
【００３３】
なお、後述される実施例の説明は、サーバ１０２−１０４の各々において実行されているＶＭ１１６−１１８の間の通信を例に説明されるが、実施例はこれに限定されず、物理サーバであるサーバ１０２−１０４の間の通信にも適用可能である。そして、ＶＭ１１６−１１８やサーバ１０２−１０４が送信元装置や宛先装置の一例となる。
【００３４】
管理サーバ１２２は、サーバ１０２−１０４、ＮＩＣ仮想化装置１０５、Ｌ２スイッチ１０６、及びデータベース１２３に接続される。管理サーバ１２２は、サーバ１０２−１０４の各々において実行されているＶＭ１１６−１１８の配備、移動、及び消去を管理するＶＭマネージャの機能を有する。また、ＶＭ１１６−１１８を識別するためにＶＭ１１６−１１８の各々にＭＡＣアドレスを付与し、これを管理する。さらに、管理サーバ１２２は、ＶＭ１１６−１１８やサーバ１０２−１０４にＮＩＣ１０８−１１１を割り当て、これを管理する。管理サーバ１２２は、例えば、ＶＭ１１６−１１８に付与したＭＡＣアドレスとＶＭ１１６−１１８に割り当てたＮＩＣ１０８−１１１のデバイス識別情報との対応関係を、後述される図７（Ａ）の情報のように管理し、これをデータベース１２３に格納する。
【００３５】
実施例の通信システム１００では、ＮＩＣ１０８−１１１を経由させない通信の際に、内部配線であるバスの通信においてサーバ１０２−１０４がスレーブとして機能するように、サーバ１０２−１０４は仮想ＮＩＣ機能１２４−１２６を有している。例えば、サーバ１０２−１０４は、バスの通信においてマスタとなる装置からパケットを送信することの通知を受け取ると、仮想ＮＩＣ機能１２４−１２６によって、パケットを受け取れることを示す応答をマスタとなる装置に送信することができる。
【００３６】
そして、サーバ１０２−１０４には、サーバ１０２−１０４がスレーブデバイスとしてパケットを受け取れるように、内部配線であるバスの通信においてサーバ１０２−１０４をスレーブデバイスとして識別するための仮想デバイス識別情報が管理サーバ１２２によって付与されている。そして、管理サーバ１２２は、ＶＭ１１６−１１８が実行されているサーバ１０２−１０４の仮想デバイス識別情報を管理するために、例えば、ＶＭ１１６−１１８に付与したＭＡＣアドレスとサーバ１０２−１０４に付与した仮想デバイス識別情報との対応関係を、後述される図７（Ｃ）の情報のように管理し、これをデータベース１２３に格納する。
【００３７】
なお、管理サーバ１２２は、ＮＩＣ１０８−１１１を経由させない通信を設定する際に、例えば、パケットの宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスの通信フロー情報をＬ２スイッチ１０６から取得し、宛先アドレスと送信元アドレスとで特定されるとして通信フローを判定する。
【００３８】
そして、後述される図７（Ｂ）の基準に従って、通信フローが、ＮＩＣ１０８−１１１を経由させない基準に合うかどうかを判定して、ＮＩＣ１０８−１１１を経由させないように通信経路を切り替えてもよい通信フローの場合には、バススイッチ１０７に対して、通信経路を変更させるために、パケットの宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスを通知する。
【００３９】
ところで、ＶＭ１１６がパケットをＶＭ１１７に通信経路１１９を介して送信する場合、ＶＭ１１６がバススイッチ１０７にパケットを出力し、バススイッチ１０７はこのパケットをＶＭ１１６に割り当てられているＮＩＣ１０９に出力する。そして、ＮＩＣ１０９はこのパケットをＬ２スイッチ１０６に出力し、Ｌ２スイッチ１０６はこのパケットが通信の宛先となるＶＭ１１７に届くようにＮＩＣ１１０にパケットを出力する。そして、ＮＩＣ１１０はこのパケットをバススイッチ１０７に出力し、バススイッチはＶＭ１１７にこのパケットを出力する。
【００４０】
さらに説明すると、ＶＭ１１６は、宛先となるＶＭ１１７のＭＡＣアドレスを宛先ＭＡＣアドレスとし、ＶＭ１１６のＭＡＣアドレスを送信元ＭＡＣアドレスとして送信対象のデータに付与することで、図３（Ａ）に示されるパケットの概要のように、データをパケット化する。
【００４１】
サーバ１０２、バススイッチ１０７、及びＮＩＣ１０９は内部配線であるバスを使用して通信をするため、ＶＭ１１６が実行されているサーバ１０２がマスタとなり、ＮＩＣ１０９がスレーブとなる。ＶＭ１１６は、ＶＭ１１６が実行されているサーバ１０２をバスの通信において識別するためのデバイス識別情報をマスタのデバイス識別情報として、図３（Ｂ）に示されるパケットの概要のように、パケットに付与する。なお、マスタのデバイス識別情報はサーバ１０２に含まれるＩＯバスコントローラのデバイス識別情報を利用してもよい。さらに、ＶＭ１１６は、ＶＭ１１６に割り当てられているＮＩＣ１０９をバスの通信において識別するためのデバイス識別情報をスレーブのデバイス識別情報として、図３（Ｂ）に示されるパケットの概要のように、パケットに付与する。
【００４２】
ＶＭ１１６は、マスタであるサーバ１０２からパケットが出力される前に、パケットが出力されることをスレーブであるＮＩＣ１０９に通知する。スレーブであるＮＩＣ１０９は、パケットを受け取ることが可能な場合、パケットを受け取り可能であることをＶＭ１１６が実行されているマスタのサーバ１０２に通知する。
【００４３】
そして、ＶＭ１１６はＮＩＣ１０９を識別するためのデバイス識別情報を含むパケットをバススイッチ１０７に出力する。なお、このパケットの概要を示す例が図３（Ｂ）に例示される。
【００４４】
バススイッチ１０７は、ＮＩＣ１０９を識別するためのデバイス識別情報及び宛先ＭＡＣアドレスを含むパケットを受け取ると、パケットに含まれるデバイス識別情報に続いて、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスまでを判定できるようなビット数分の確認をする。そして、宛先ＭＡＣアドレスが、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定する。なお、通信経路１１９が選択される場合は、パケットに含まれる宛先ＭＡＣアドレスは管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れにも該当しない場合の例である。
【００４５】
この場合、バススイッチ１０７は、パケットに含まれるデバイス識別情報に対応するポート番号を判定する。バススイッチ１０７は、判定されたポートにパケットを転送するために、バススイッチ１０７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ１０７における判定されたポートからパケットが出力される。
【００４６】
判定されたポートにはＮＩＣ１０９が接続されているので、スレーブであるＮＩＣ１０９にパケットが届くこととなる。ＮＩＣ１０９はこのパケットを受け取ると、パケットをデパケットすることにより、図３（Ａ）に示されるパケットの概要のように、デバイス識別情報をパケットから外し、宛先ＭＡＣアドレスに従って、パケットをＬ２スイッチ１０６に出力する。Ｌ２スイッチ１０６は、この宛先ＭＡＣアドレスが関連付けられているポートにパケットを出力する。この場合、ＶＭ１１７のＭＡＣアドレスと関連付けられているポートはＮＩＣ１１０に接続されているポートであり、ＮＩＣ１１０が接続されているポートからパケットが出力される。なお、Ｌ２スイッチ１０６にＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の設定によって、Ｌ２スイッチ１０６内でＮＩＣ１１０が接続されているポートへパケットを転送できない場合には、ネットワーク１２又はネットワーク１３にパケットが出力される。そして、ネットワーク１２又はネットワーク１３内のスイッチによって通信が折り返されて、Ｌ２スイッチ１０６においてＮＩＣ１１０が接続されたポートに転送可能なポートにパケットが入力される。
【００４７】
ＮＩＣ１１０はパケットを受け取ると、内部配線であるバスの通信においてスレーブとなるＮＩＣ１１０は、ＶＭ１１７が実行されているマスタのサーバ１０３に対して、ＶＭ１１７を宛先とするパケットが届いていることを通知する。そして、マスタとなるサーバ１０３は、このパケットを受け取ることが可能な場合、スレーブとなるＮＩＣ１１０にパケットを受け取り可能であるので出力してもよいことを通知する。
【００４８】
スレーブとなるＮＩＣ１０９はこの通知を受け取ると、マスタとなるサーバ１０３をバスの通信において識別するために、例えばサーバ１０３のＩＯバスコントローラを識別するためのデバイス識別情報をマスタの識別情報として、またＮＩＣ１０９のデバイス識別情報をスレーブの識別情報としてパケットに付与して、バススイッチ１０７にパケットを出力する。なお、このパケットの概要を示す例が図３（Ｂ）に例示される。
【００４９】
バススイッチ１０７は、サーバ１０３のＩＯバスコントローラを識別するためのデバイス情報を含むパケットを受け取ると、パケットに含まれるデバイス識別情報に対応するポート番号を判定する。バススイッチ１０７は、判定されたポートにパケットを転送するために、バススイッチ１０７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ１０７における判定されたポートからパケットが出力される。判定されたポートにはサーバ１０３のＩＯバスコントローラが接続されているので、マスタとなるサーバ１０３にパケットが送信されることで、ＶＭ１１７にパケットが届くこととなる。
【００５０】
なお、ＶＭ１１８がパケットをＶＭ１１７に通信経路１２１を介して送信する場合は、上述された、ＶＭ１１６がパケットをＶＭ１１７に通信経路１１９を介して送信する場合と実質的に同様な手順をふむため、説明を省略する。
【００５１】
ＶＭ１１６がパケットをＶＭ１１７に通信経路１２０を介して送信する場合を説明する。この場合、ＶＭ１１６がバススイッチ１０７にパケットを出力し、バススイッチ１０７はこのパケットをＶＭ１１６に割り当てられているＮＩＣ１０９に出力せずに、ＶＭ１１７が接続されているポートから出力する。これによって、ＶＭ１１７に届けられる予定のパケットはＮＩＣ１０９を経由せずにＶＭ１１７に届けられる。
【００５２】
さらに説明すると、ＶＭ１１６は、宛先となるＶＭ１１７のＭＡＣアドレスを宛先ＭＡＣアドレスとし、ＶＭ１１６のＭＡＣアドレスを送信元ＭＡＣアドレスとして送信対象のデータに付与することで、図３（Ａ）に示されるパケットの概要のように、データをパケット化する。
【００５３】
ＶＭ１１６は、ＶＭ１１６が実行されているサーバ１０２をバスの通信において識別するためのデバイス識別情報をマスタのデバイス識別情報として、図３（Ｂ）に示されるパケットの概要のように、パケットに付与する。なお、マスタのデバイス識別情報はサーバ１０２に含まれるＩＯバスコントローラのデバイス識別情報を利用してもよい。さらに、ＶＭ１１６は、ＶＭ１１６に割り当てられているＮＩＣ１０９をバスの通信において識別するためのデバイス識別情報をスレーブのデバイス識別情報として、図３（Ｂ）に示されるパケットの概要のように、パケットに付与する。
【００５４】
ＶＭ１１６は、マスタであるサーバ１０２からパケットが出力される前に、パケットが出力されることをスレーブであるＮＩＣ１０９に通知するために、この通知をバススイッチ１０７に出力する。なお、この通知には、ＶＭ１１６が実行されているサーバ１０２を識別するためのデバイス識別情報をマスタのデバイス識別情報としたもの、ＮＩＣ１０９を識別するためのデバイス識別情報をスレーブのデバイス識別情報としたもの、ＶＭ１１７のＭＡＣアドレスを宛先ＭＡＣアドレスとしたもの、ＶＭ１１６のＭＡＣアドレスを送信元ＭＡＣアドレスとしたもの、及び、パケットを送信する前の通知であることを示す情報が含まれる。例えば、この通知の概要を示す例が、図３（Ｂ）に例示される。
【００５５】
バススイッチ１０７は、スレーブであるＮＩＣ１０９を識別するためのデバイス識別情報、宛先ＭＡＣアドレス、及び送信元ＭＡＣアドレスを含む通知を受け取ると、通知に含まれるスレーブのデバイス識別情報に続いて、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスまでを判定できるようなビット数分の確認をする。そして、通知に含まれる宛先ＭＡＣアドレスが少なくとも、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定する。なお、この際に、さらに送信元ＭＡＣアドレスが、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定して、通信経路の切り替えを通信フロー毎に異なるようにしてもよい。なお、この通信経路１２０の場合には、通知に含まれる宛先ＭＡＣアドレスが管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当した場合であるとする。
【００５６】
この場合、バススイッチ１０７は、通知に含まれるスレーブのデバイス識別情報を、宛先ＭＡＣアドレスに対応する仮想デバイス識別情報に置換することで、通知に仮想デバイス識別情報を設定する。例えば、この通知の概要を示す例が、図３（Ｃ）に例示される。なお、この仮想デバイス識別情報は、バスの通信経路において、通知やパケットをＮＩＣ１０８−１１１を経由させずに宛先装置に届けるために、宛先となるＶＭやサーバがスレーブとして識別できるように付与される情報である。
【００５７】
バススイッチ１０７は、例えば、宛先ＭＡＣアドレスに基づきＶＭ１１７がサーバ１０３において実行されていることを確認して、サーバ１０３に設定された仮想デバイス識別情報を取得し、通知に含まれていたデバイス識別情報を仮想デバイス識別情報で置換する。そして、通知に含まれる仮想デバイス識別情報に対応するポート番号を判定する。
【００５８】
バススイッチ１０７は、判定されたポートに通知を転送するために、バススイッチ１０７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートに通知を転送する。そして、バススイッチ１０７における判定されたポートから通知が出力される。判定されたポートにはスレーブとなるサーバ１０３が接続されている。
【００５９】
上述したように、スレーブとなるサーバ１０３は、仮想デバイス識別情報を元にして、バスの通信におけるスレーブの機能１２５を有している。バススイッチ１０７からスレーブとなるサーバ１０３に仮想デバイス識別情報を含む通知が出力されると、この通知をスレーブとなるサーバ１０３が受け取ることで、このパケットがＶＭ１１７に届けられる。
【００６０】
次いで、ＶＭ１１７がパケットを受け取ることが可能な場合、スレーブとなるサーバ１０３からパケットを受け取り可能であることを示す応答がマスタとなるサーバ１０２に送信されることになる。
【００６１】
例えば、ＶＭ１１７は、スレーブ機能を有するサーバ１０３から、ＶＭ１１６が実行されているサーバ１０２を識別するためのデバイス識別情報をマスタのデバイス識別情報としたもの、サーバ１０３に設定された仮想デバイス識別情報をスレーブのデバイス識別情報としたもの、ＶＭ１１６のＭＡＣアドレスを宛先ＭＡＣアドレスとしたもの、ＶＭ１１７のＭＡＣアドレスを送信元ＭＡＣアドレスとしたもの、及び、パケットを受け取り可能であることを示す情報を含む応答をバススイッチ７に出力する。例えば、この応答の概要を示す例が、図３（Ｃ）に例示される。
【００６２】
バススイッチ１０７は、この応答を受け取ると、応答に含まれるデバイス識別情報に続いて、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスまでを判定できるようなビット数分の確認をする。そして、応答に含まれる送信元ＭＡＣアドレスが、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定する。この判定では、パケットの宛先となるＶＭ１１７のＭＡＣアドレスが、応答においては送信元ＭＡＣアドレスとなっているため、バススイッチ１０７は、応答に含まれる送信元ＭＡＣアドレスに基づいてアドレスの判定することとなる。なお、この際に、さらに宛先ＭＡＣアドレスが、管理サーバ１２２によって設定された送信元ＭＡＣアドレスのうちの何れかに該当するか否かを判定して、通信経路の切り替えを通信フロー毎に異なるようにしてもよい。
【００６３】
そして、バススイッチ１０７は、応答に含まれるスレーブの仮想デバイス識別情報を、宛先ＭＡＣアドレスに割り当てられたＮＩＣ１０９を識別するためのデバイス識別情報に置換して、応答に含まれるマスタのデバイス識別情報に対応するポート番号を判定する。ここでＮＩＣ１０９を識別するためのデバイス識別情報に置換される理由は、パケットがＶＭ１１７に届けられる前にＮＩＣ１０９を経由するとＶＭ１１６が認識しているにもかかわらず、受け取った応答に含まれるスレーブのデバイス識別情報が、サーバ１０３に割り当てられた仮想デバイス識別情報であると、ＶＭ１１６は応答を受け取れなかったとして、パケットを送信しなくなってしまうからである。
【００６４】
バススイッチ１０７は、判定された上記のポートに応答を転送するために、バススイッチ１０７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートに応答を転送する。そして、バススイッチ１０７における判定されたポートから応答が出力される。
【００６５】
判定されたポートにはマスタとなるサーバ１０２が接続されている。バススイッチ１０７からマスタとなるサーバ１０３に応答が出力されると、この応答をマスタとなるサーバ１０３が受け取ることで、この応答がＶＭ１１６に届けられることとなる。
【００６６】
ＶＭ１１６は、この応答を受け取ると、パケットをバススイッチ１０７に出力する。このパケットの概要を示す例が図３（Ｂ）に例示される。
【００６７】
バススイッチ１０７は、スレーブであるＮＩＣ１０９を識別するためのデバイス情報、宛先ＭＡＣアドレス、及び送信元ＭＡＣアドレスを含むパケットを受け取ると、パケットに含まれるスレーブのデバイス識別情報に続いて、宛先ＭＡＣアドレスまでを判定できるようなビット数分パケットを確認する。そして、パケットに含まれる宛先ＭＡＣアドレスが少なくとも、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定する。なお、この際に、さらに送信元ＭＡＣアドレスが、管理サーバ１２２によって設定された宛先ＭＡＣアドレスのうちの何れかに該当するか否かを判定して、通信経路の切り替えを通信フロー毎に異なるようにしてもよい。
【００６８】
バススイッチ１０７は、パケットに含まれるスレーブのデバイス識別情報を、宛先ＭＡＣアドレスに対応する仮想デバイス識別情報に置換することで、パケットにスレーブの仮想デバイス識別情報を設定する。例えば、バススイッチ１０７は、宛先ＭＡＣアドレスに基づきＶＭ１１７がサーバ１０３において実行されていることを確認して、スレーブとなるサーバ１０３に設定された仮想デバイス識別情報を取得し、パケットに含まれていたデバイス識別情報をスレーブの仮想デバイス識別情報で置換する。例えば、この通知の概要を示す例が、図３（Ｃ）に例示される。
【００６９】
そして、パケットに含まれるスレーブの仮想デバイス識別情報に対応するポート番号を判定する。バススイッチ１０７は、判定されたポートにパケットを転送するために、バススイッチ１０７に含まれるクロスバスイッチなどのスイッチ回路を制御して、判定されたポートにパケットを転送する。そして、バススイッチ１０７における判定されたポートからパケットが出力される。
【００７０】
判定されたポートにはスレーブとなるサーバ１０３が接続されている。バススイッチ１０７からスレーブとなるサーバ１０３にスレーブの仮想デバイス識別情報を含むパケットが出力されると、このパケットをスレーブとなるサーバ１０３が受け取ることで、このパケットがＶＭ１１７に届けられる。
【００７１】
上述したように、実施例によれば、ＮＩＣ仮想化装置１０５が、宛先ＭＡＣアドレスに従ってパケットの通信経路を切り替えてパケットを中継する中継装置となる。そして、ネットワークにパケットを送信する通信回路であるＮＩＣのデバイス識別情報に従いパケットの出力先となるＮＩＣを切替えるＮＩＣ仮想化装置１０５が、パケットがＮＩＣ仮想化装置１０５に接続された宛先装置まで届けられる予定の場合には、パケットをＮＩＣに出力せず宛先装置に出力することで、ＮＩＣによって帯域が制限されないため、パケットの通信効率が向上する。
【００７２】
ところで、Ｌ２スイッチ１０６は、ＮＩＣ仮想化装置１０５の中に含めてもよい。この場合、Ｌ２スイッチ１０６とＮＩＣ仮想化装置１０５とがひとつの装置に集約されるため、管理サーバ１２２が通信フロー情報を取得したり経路変更を設定したりする場合に、通信システム１００の構成がシンプルになる。
【００７３】
また、実施例の通信システム１００によれば、通信経路１１９と通信経路１２０が、管理サーバ１２２による設定に従って、後述される図４のように、宛先ＭＡＣアドレスに応じてバススイッチ１０７により切り替えられる。さらに、ＶＭ１１６もＶＭ１１８もパケットの宛先は共にＶＭ１１７であるが、管理サーバ１２２による設定に従って、宛先ＭＡＣアドレスだけでなく送信元ＭＡＣアドレスに応じて、通信フロー毎に、ＮＩＣを経由させるかさせないかを設定することができる。これらにより、バススイッチ１０７の性能の範囲内で、管理サーバ１２２による通信フロー毎の優先順位を考慮した通信経路の設定が可能になる。
【００７４】
なお、ＮＩＣ１０８−１１１からＬ２スイッチ１０６を経由してネットワーク１２やネットワーク１３にパケットが送信されるが、上述された通信経路１９と同様であるため説明を省略する。
【００７５】
図３に、実施例の通信システムで処理されるパケットの例が示される。図３（Ａ）−（Ｃ）に示されるパケットの例は、上述したように、実施例の通信システム１００における通信で処理されるパケット、通知、応答などである。なお、図３（Ａ）−（Ｃ）では、パケットに他の情報が含む場合もあるが、他の情報が省略されて示されている。
【００７６】
図３（Ａ）に、パケットの例として、スレーブのデバイス識別情報、マスタのデバイス識別情報、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、パケットのシーケンス番号、及びデータを含むパケットが示される。
【００７７】
図３（Ｂ）に、パケットの他の例として、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、パケットのシーケンス番号、及びデータを含むパケットが示される。
【００７８】
図３（Ｃ）に、パケットの他の例として、スレーブの仮想デバイス識別情報、マスタのデバイス識別情報、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、パケットのシーケンス番号、及びデータを含むパケットが示される。
【００７９】
図４に、実施例の通信システムの動作のタイムチャートの例が示される。図４に示されるタイムチャートは、サーバ１０２において実行されるＶＭ１１６がパケット［０］を、サーバ１０３において実行されるＶＭ１１７に通信経路１１９を介して送信した後に、通信経路が１２０に切り換えられて、パケット［０］に続くパケット［１］−［３］が通信経路１２０を介してサーバ１０３に送信される場合のタイムチャートである。なお、このタイムチャートは、図２及び３に沿って説明された通信の一例であり、括弧内の数字によってパケットのシーケンス番号が示される。
【００８０】
はじめに、サーバ１０２からパケット［０］がＮＩＣ仮想化装置１０５に含まれるバススイッチ１０７に出力される。次いで、このバススイッチ１０７からパケット［０］がＬ２スイッチ１０６に出力される。
【００８１】
Ｌ２スイッチは、処理４０１に示されるように、パケット［０］の通信フローを検出して、通信フロー情報として管理サーバ１２２に送信する。Ｌ２スイッチ１０６はパケット［０］をバススイッチ１０７に出力する。バススイッチ１０７はサーバ１０３にパケット［０］を出力する。なお、管理サーバ１２２によって通信フローの判定がされるまで、パケット［０］をＬ２スイッチ１０６においてバッファリングしておいてもよい。この場合、通信フローの判定によって、パケット［０］をサーバ１０３に送らないという判定がされると、これ以降、Ｌ２スイッチ１０６からパケット［０］が出力されないので、無駄な通信が省略される。
【００８２】
通信フロー情報を受信した管理サーバ１２２は、処理４０２に示されるように、通信フロー情報に基づいて通信経路を切り換えるか否かを判定する。ここでは、通信経路を切り換えてもよいフローを特定するための基準に該当するか否かが判定される。通信経路を切り換えると判定されると、管理サーバ１２２は、サーバ１０３に対して、仮想ＮＩＣ機能１２５の起動を指示する。さらに、管理サーバ１２２は、バススイッチ１０７に対して、通信経路の切り替えを指示する。
【００８３】
通信経路の切り替え指示を受け取ったバススイッチ１０７は、処理４０３に示されるように、パケットのバッファリングを開始する。そのため、この後、パケット［０］に続いてサーバ１０２からバススイッチ１０７に出力されたパケット［１］やパケット［２］は、Ｌ２スイッチ１０６に出力されことなく、バススイッチ１０７においてバッファリングされる。
【００８４】
バススイッチ１０７は、処理４０４に示されるように、通信経路の切り替えを設定し、これが完了すると、処理４０５に示されるように、パケットのバッファリングを解除する。すると、パケット［１］及びパケット［２］はその順序を保ったまま、Ｌ２スイッチ１０６には出力されずに、サーバ１０３に出力される。
【００８５】
そして、この後、サーバ１０２からバススイッチ１０７に出力されたパケット［３］は、既に通信経路が切り換えられているため、Ｌ２スイッチ１０６には出力されずに、サーバ１０３に出力される。
【００８６】
図５に、実施例の管理装置のハードウェア構成の例が示される。管理装置の一例である管理サーバ１２２は、ＣＰＵ５００、メモリコントローラ５０１、メモリ５０２、メモリバス５０３、ＩＯバスコントローラ５０４、ＮＩＣ５０５、及びＩＯバス５０６を含み、ＩＯバス５０６には記憶装置５０７が接続される。なお、記憶装置５０７が図２に示されたデータベース１２３に対応する
メモリバス５０３に接続されたメモリ５０２には、管理サーバ１２２の各種処理を実行するためのプログラムが格納されている。ＣＰＵ５００は、メモリコントローラ５０１を介して、メモリ５０２からプログラムを読み出し、各種処理を実行する。ＣＰＵ５００によって実行される各種処理の実行に伴い、メモリ５０２に対するデータの書き込み及び読み出しがメモリコントローラ５０１を介して実行される。
【００８７】
ＣＰＵ５００は、ＩＯバスコントローラ５０４を介して、ＩＯバス５０６に接続されたＮＩＣ５０５にデータを転送し、また、ＮＩＣ５０５からデータやパケットを受け取る。ＣＰＵ５００は、ＩＯバスコントローラ５０４を介して、ＩＯバス５０６に接続された記憶装置５０７からデータを読み出し、また記憶装置５０７にデータを書き込む。
【００８８】
ＣＰＵ５００は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ５０２は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置５０８は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００８９】
なお、ＣＰＵ５００、メモリコントローラ５０１、メモリ５０２、ＮＩＣ５０５、及び、記憶装置５０７が同じバスに接続された構成を管理サーバ１２２に適用してもよい。図５に示されるハードウェア構成によって、図６に示される機能ブロックが実現され、図８に示される処理が実行される。
【００９０】
図６に、実施例の管理装置の機能ブロックの例が示される。管理装置の一例である管理サーバ１２２は、ワーキングメモリとして使用されるメモリ５０２にロードされたプログラムがＣＰＵ５００によって実行されることにより、取得部６００、判定部６０１、及び設定部６０２として機能する。なお、図６に示される各機能ブロックにより実行される処理が、図８に示される処理と対応させて後述される。
【００９１】
図７に、実施例の管理装置で使用される情報の例が示される。管理装置の一例である管理サーバ１２２は、図２に示されるデータベース１２３に、図７（Ａ）−（Ｄ）に示される情報を格納し、これを図５に示されるメモリ５０２に適宜読みだして、図８に示される処理に使用する。
【００９２】
図７（Ａ）に示されるように、管理サーバ１２２は、装置アドレスとデバイス識別情報との対応関係を管理する。上述したように、管理サーバ１２２は、図２に示されるサーバ１０２−１０４の各々において実行されているＶＭ１１６−１１８を管理するＶＭマネージャの機能を有しており、ＶＭ１１６−１１８を識別するためにＶＭ１１６−１１８の各々にＭＡＣアドレスを付与し、これを管理する。このＭＡＣアドレスが、図７（Ａ）に示される装置アドレスの例である。
【００９３】
さらに、管理サーバ１２２は、ＶＭ１１６−１１８やサーバ１０２−１０４にＮＩＣ１０８−１１１を割り当て、これを管理する。図７（Ａ）に示されるように、ＶＭ１１６−１１８に付与されるＭＡＣアドレスとＶＭ１１６−１１８に割り当てられたＮＩＣ１０８−１１１のデバイス識別情報とが、管理サーバ１２２によって対応付けられて管理される。例えば、“００−９０−２７−ＡＡ−７４−Ｅ０”というＭＡＣアドレスで識別される装置に“＃００１”というデバイス識別情報で識別される装置が割り当てられていることが管理サーバ１２２によって管理され、この対応関係が図７（Ａ）に示されている。
【００９４】
図７（Ｂ）に、通信フローの通信経路を変更するか否かを判定する際に適用される変更基準が示される。この基準は、図２に示されるＶＭ１１６−１１８やサーバ１０２−１０４から送信されたパケットが宛先装置まで届けられる際に、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させられるか、又は、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させられずにバススイッチ１０７を迂回させられるか否かを判定する際に適用される。
【００９５】
図７（Ｂ）に示されるように、例えば、宛先装置のＭＡＣアドレスである“００−９０−２７−ＡＡ−７４−Ｅ０”が宛先アドレスとして、送信元装置のＭＡＣアドレスである“００−９０−２７−ＢＢ−８６−Ｅ２”が送信元アドレスとして対応付けられている。さらに、図７（Ｂ）では、ＭＡＣアドレスが“００−９０−２７−ＡＡ−７４−Ｅ０”である装置と、ＭＡＣアドレスが“００−９０−２７−ＢＢ−８６−Ｅ２”である装置が事業者Ａによって運用される装置であることが、宛先アドレス及び送信元アドレスの組み合わせに対応付けられている。そして、管理サーバ１２２は、例えば、“００−９０−２７−ＡＡ−７４−Ｅ０”及び“００−９０−２７−ＢＢ−８６−Ｅ２”によって特定される通信フローであれば、事業者Ａ内での運用であるので、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させずにバススイッチ１０７を経由させてパケットを宛先装置まで届けてよい通信フローとして、図７（Ｂ）のように管理する。逆に、異なる事業者間の装置では、内部配線経由の通信を禁止するように変更基準を管理してもよい。なお、事業者毎にありあてられたアドレスのグループ毎に図７（Ｂ）の基準を管理してもよい。
【００９６】
図７（Ｃ）に示されるように、管理サーバ１２２は、図２に示されるサーバ１０２−１０４がスレーブデバイスとしてパケットを受け取れるように、内部配線であるバスの通信においてサーバ１０２−１０４をスレーブデバイスとして識別するための仮想デバイス識別情報を付与し、これを管理する。例えば、ＭＡＣアドレスが“００−９０−２７−ＡＡ−７４−Ｅ０”である装置に、“＃１００１”の仮想デバイス識別情報が付与されている場合、図７（Ｃ）に示されるように、管理サーバ１２２によってそれらが対応付けられて管理されている。
【００９７】
図７（Ｄ）に、通信経路の変更対象となる通信フローを特定するためのアドレスの組み合わせと通信経路を変更させる際に設定させる仮想デバイス識別情報との対応関係が示される。例えば、図７（Ｂ）にも示される宛先アドレスが“００−９０−２７−ＡＡ−７４−Ｅ０”であって、送信元アドレスが“００−９０−２７−ＢＢ−８６−Ｅ２”である通信フローが通信経路の変更対象である場合に、図７（Ｃ）において“００−９０−２７−ＡＡ−７４−Ｅ０”に対応付けられた“＃１００１”の仮想デバイス識別情報によってデバイス識別情報を変換させることが、図７（Ｄ）によって対応付けられて管理されている。図７（Ｄ）に示される対応関係がＮＩＣ仮想化装置１０５に通知されることで、ＮＩＣ仮想化装置１０５は、通信経路の切り換え対象となる通信フローを特定でき、通信経路の切り替えの際に仮想デバイス識別情報を設定することができる。
【００９８】
なお、図７（Ｄ）に示されるように、宛先アドレスが“００−９０−２７−ＡＡ−７４−Ｅ１”である通信フローは、送信元アドレスが任意のアドレスであっても通信経路の変更対象となり、“＃１００３”の仮想デバイス識別情報に変換させることが対応付けられ管理されている。これは、宛先アドレスが“００−９０−２７−ＡＡ−７４−Ｅ１”であれば、送信元装置が何であっても、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させずにバススイッチ１０７を経由させてパケットを宛先装置まで届けてよいことを規定している。他方で、図７（Ｄ）において送信元アドレスも特定する場合には、宛先装置が同じであっても送信元装置が異なれば、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させずにバススイッチ１０７を経由させてパケットを宛先装置まで届けてよい場合とそうでない場合とを区別して規定していることを意味している。
【００９９】
ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させずにバススイッチ１０７を経由させてパケットを宛先装置まで届ければ、内部配線を経由させる通信となるのでＮＩＣの帯域制限の影響を受けずに通信を実行できる。しかし、ＮＩＣ仮想化装置１０５の処理能力、例えば、バススイッチ１０７において通信経路を変更させる際に処理能力には限りがあるため、全ての通信フローを、内部配線経由にさせることができない。そこで、図７（Ｄ）に示されるように、送信元アドレスによって通信フロー毎に通信経路の変更対象を管理することで、ＮＩＣ仮想化装置１０５の処理能力を超えないように、通信経路の変更対象を細やかに管理することができる。
【０１００】
また、図７（Ｄ）によって管理されていたアドレスの組み合わせを解除して、これをＮＩＣ仮想化装置１０５に設定し、また、該アドレスの組み合わせを再管理して、これをＮＩＣ仮想化装置１０５に再設定することで、ＮＩＣ１０８−１１１やＬ２スイッチ１０６を経由させずにバススイッチ１０７を経由させてパケットを宛先装置まで届ける場合とそうでない場合との切り換えを制御できる。
【０１０１】
図８に、実施例の管理装置で実行される処理の例が示される。管理装置の一例である管理サーバ１２２は、通信経路をＮＩＣ仮想化装置１０５に設定させるための処理を、処理８００によって開始する。
【０１０２】
通信フロー情報を取得する処理８０１が、取得部６００によって実行される。処理８０１によって取得される通信フロー情報は、図２に示されるＬ２スイッチ１０６が図４に示される処理４０１により検出した通信フロー情報であり、この通信フロー情報がＬ２スイッチ１０６から管理サーバ１２２に通知され、この通信フロー情報が処理８０１により取取得されることとなる。なお、この通信フロー情報には、例えば、Ｌ２スイッチ１０６が受け取ったパケットに含まれる宛先装置のアドレス及び送信元装置のアドレスの組み合わせが含まれている。さらに例示すれば、通信フロー情報には、宛先装置のＭＡＣアドレス及び送信元装置のＭＡＣアドレスの組み合わせが含まれており、この組み合わせによって通信フローが区別可能となる。
【０１０３】
通信フローが通信経路の変更基準に当てはまるか否かを判定する処理８０２が、判定部６０１によって実行される。処理８０２では、処理８０１により取得された通信フロー情報に含まれる宛先アドレスと送信元アドレスとの組み合わせが特定され、特定されたアドレスの組み合わせが、図７（Ｂ）のように管理されている変更基準に当てはまるか否かが判定される。当てはまらない場合には処理８０７に移り、当てはまる場合には処理８０３に移る。
【０１０４】
通信フローの通信経路を変更した場合に中継装置の処理能力を超えないか否かを判定する処理８０３が、判定部６０１によって実行される。処理８０３では、通信経路を内部配線であるバス経由に既に変更された通信フローの数や通信量の合計値に基づき、処理８０１により取得された通信フロー情報に対応する通信フローをバス経由に変更しても、中継装置の一例であるＮＩＣ仮想化装置１０５の処理能力を超えないか否かが判定される。これは、通信経路の変更をＮＩＣ仮想化装置１０５の処理能力を考慮せずに実行してしまうと、内部バスにおいてパケットの輻輳が発生してしまうからである。処理能力を超えると判定されると処理８０７に移り、処理能力を超えないと判定されると処理８０４に移る。
【０１０５】
通信フロー毎に通信経路を変更するか否かを判定する処理８０４が、判定部６０１によって実行される。処理８０４では、中継装置の一例であるＮＩＣ仮想化装置１０５に通信経路を変更させる場合に、図７（Ｄ）に示されるように、宛先アドレス及び送信元アドレスの両方に従って通信経路を変更させるのか、すなわち、通信フロー毎に通信経路を変更させるのか、又は、送信元アドレスが任意のアドレスであっても宛先アドレスに従って通信経路を変更させるのかが判定される。通信フロー毎に通信経路を変更させないと判定された場合に処理８０５に移り、通信フロー毎に通信経路を変更させると判定された場合に処理８０６に移る。
【０１０６】
なお、処理８０２、処理８０３、及び処理８０４が、図４に示される処理４０２に対応する。
【０１０７】
通信経路の変更対象を、通信フローの宛先アドレスを使用して中継装置に設定させる処理８０５が、設定部６０２によって実行される。処理８０５は、図７（Ｄ）に示される対応関係に従い、宛先アドレスによって通信経路の変更対象を特定することをＮＩＣ仮想化装置１０５に通知し、ＮＩＣ仮想化装置１０５に宛先アドレスを使用して通信経路を変更するようにさせる処理である。処理８０５により、例えば、ＮＩＣ仮想化装置１０５はパケットを受け取った場合に、図７（Ｄ）に示されるように、宛先装置のＭＡＣアドレスが“００−９０−２７−ＡＡ−７４−Ｅ１”であれば、送信元アドレスによらずに、通信経路の変更対象であると判定し、受け取ったパケットのデバイス識別情報を“＃１００３”の仮想デバイス識別情報に変換する。そして、この変換によって、受け取られたパケットはＮＩＣに出力されずにバス経由で宛先まで届けられることとなる。
【０１０８】
通信経路の変更対象を、通信フローの宛先アドレス及び送信元アドレスを使用して中継装置に設定させる処理８０６が、設定部６０２によって実行される。処理８０６は、図７（Ｄ）に示される対応関係に従い、宛先アドレス及び送信元アドレスによって通信経路の変更対象を特定することをＮＩＣ仮想化装置１０５に通知し、ＮＩＣ仮想化装置１０５に宛先アドレス及び送信元アドレスを使用して通信経路を変更するようにさせる処理である。処理８０６により、例えば、ＮＩＣ仮想化装置１０５はパケットを受け取った場合に、図７（Ｄ）に示されるように、宛先装置のＭＡＣアドレスが“００−９０−２７−ＡＡ−７４−Ｅ０”であって、かつ送信元装置のＭＡＣアドレスが“００−９０−２７−ＢＢ−８６−Ｅ２”であれば、通信経路の変更対象であると判定し、受け取ったパケットのデバイス識別情報を“＃１００１”の仮想デバイス識別情報に変換する。そして、この変換によって、受け取られたパケットはＮＩＣに出力されずにバス経由で宛先まで届けられることとなる。
【０１０９】
なお、処理８０５や処理８０６によって、図４に例示されるように、通信経路の変更対象となる装置アドレスが、管理サーバ１２２からＮＩＣ仮想化装置１０５に通知される。
【０１１０】
宛先アドレスに対応する装置の仮想ＮＩＣ機能を起動させる処理８０７が、設定部６０２によって実行される。処理８０７は、サーバ１０２−１０４の仮想ＮＩＣ機能を起動させて、サーバ１０２−１０４が内部配線であるバスの通信においてスレーブデバイスとして機能するようにさせるための処理である。また、処理８０７では、宛先アドレスに対応する装置に対して、図７（Ｃ）に示される情報に従い、対応する仮想デバイス識別情報が通知される。なお、処理８０７は、図４に例示される、管理サーバ１２２からサーバ１０３に対して通知される仮想ＮＩＣ機能の起動指示に対応する。
【０１１１】
処理を継続するか否かを判定する処理８０８が、判定部６０１によって実行される。継続すると判定された場合には処理８０１に移り、継続しないと判定された場合には処理８０９に移って、通信経路をＮＩＣ仮想化装置１０５に設定させるための処理を終了する。
【０１１２】
図９に、実施例のサーバのハードウェア構成の例が示される。サーバの一例であるサーバ１０２−１０４は、ＣＰＵ９００、メモリコントローラ９０１、メモリ９０２、メモリバス９０３、ＩＯバスコントローラ９０４、及びＩＯバス９０６を含み、ＩＯバス９０６には記憶装置９０７が接続される。
【０１１３】
メモリバス９０３に接続されたメモリ９０２には、サーバ１０２−１０４の各種処理を実行するためのプログラムが格納されている。ＣＰＵ９００は、メモリコントローラ９０１を介して、メモリ９０２からプログラムを読み出し、各種処理を実行する。ＣＰＵ９００によって実行される各種処理の実行に伴い、メモリ９０２に対するデータの書き込み及び読み出しがメモリコントローラ９０１を介して実行される。
【０１１４】
ＣＰＵ９００の処理に従って、ＩＯバス９０６に接続されたＮＩＣ仮想化装置１０５に、図３（Ａ）に概要が示されるようにパケットが生成され、これがＩＯバスコントローラ９０４を介して出力される。また、ＮＩＣ仮想化装置１０５からＩＯバスコントローラ９０４を介して、図３（Ａ）や（Ｃ）に概要が示される構成のパケットを受け取る。
【０１１５】
ＣＰＵ９００は、ＩＯバスコントローラ９０４を介して、ＩＯバス９０６に接続された記憶装置９０７からデータを読み出し、また記憶装置９０７にデータを書き込む。
【０１１６】
ＣＰＵ９００は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ９０２は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置９０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【０１１７】
なお、ＣＰＵ９００、メモリコントローラ９０１、メモリ９０２、及び、記憶装置９０７が同じバスに接続された構成をサーバ１０２−１０４に適用してもよい。図９に示されるハードウェア構成によって、図１０に示される機能ブロックが実現され、図１１に示される処理が実行される。
【０１１８】
図１０に、実施例のサーバの機能ブロックの例が示される。サーバの一例であるサーバ１０２−１０４は、ワーキングメモリとして使用されるメモリ９０２にロードされたプログラムがＣＰＵ９００によって実行されることにより、判定部１０００、及び、仮想ＮＩＣ部１００１として機能し、仮想ＮＩＣ部１００１は図２に示される仮想ＮＩＣ機能１２４−１２６などに対応する。なお、図１０に示される各機能ブロックにより実行される処理が、図１１に示される処理と対応させて後述される。
【０１１９】
図１１に、実施例のサーバで実行される処理の例が示される。図１１に示される一連の処理が、処理１１００によって開始される。
【０１２０】
仮想ＮＩＣ機能の起動指示があるか否かを判定する処理１１０１が、判定部１０００によって実行される。処理１１０１では、図８に示される処理８０７によって管理装置から指示される仮想ＮＩＣ機能の起動指示があるか否かが判定される。仮想ＮＩＣ機能の起動指示がない場合には処理を継続するために処理１１０１の判定を繰り返し、仮想ＮＩＣ機能の起動指示がある場合には処理１１０２に移る。
【０１２１】
仮想ＮＩＣ機能を起動する処理１１０２が、仮想ＮＩＣ部１００１によって実行される。管理装置からの起動指示に応答して、処理１１０２によって仮想ＮＩＣ機能が起動されると、サーバ１０２−１０４は、パケット処理を実行する場合に、内部配線であるバスの通信においてスレーブデバイスとして機能することができるようになる。例えば、マスタデバイスからのパケット送信の前の通知に対して、パケットを受信することができることを応答する処理が実行可能になる。
【０１２２】
仮想デバイス識別情報を格納する処理１１０３が、仮想ＮＩＣ部１００１によって実行される。処理１１０３では、管理装置からの起動指示と併せて通知される仮想デバイス識別情報がメモリ９０２に格納される。この仮想デバイス識別情報に従って、バスの通信において、サーバ１０２−１０４がスレーブデバイスとして識別される。
【０１２３】
パケットを受信したか否かを判定する処理１１０４が、判定部１０００によって実行される。パケットを受信していないと判定された場合には処理を継続するために処理１１０４を繰り返す。パケットを受信したと判定された場合には処理１１０５に移る。
【０１２４】
バスにおけるスレーブデバイスとしてパケットを処理する処理１１０５が、仮想ＮＩＣ部１００１によって実行される。処理１１０５では、処理１１０３によってメモリ９０２に格納された仮想デバイス識別情報に従い、処理１１０２によって起動された仮想ＮＩＣ機能によってパケットを処理する。処理１１０５によって、サーバ１０２−１０４は、バスの通信において、サーバ１０２−１０４がスレーブデバイスとして動作する。そして、スレーブデバイスとしてのパケット処理を終えると、図１１に示される一連の処理が、処理１１０６によって終了する。
【０１２５】
図１２に、実施例の中継装置のハードウェア構成の例が示される。中継装置の一例であるＮＩＣ仮想化装置１０５は、ＣＰＵ１２０１、メモリ１２０２、バススイッチ１０７、及び通信回路の一例であるＮＩＣ１０８−１１１を含む。
【０１２６】
メモリ１２０２には、ＮＩＣ仮想化装置１０５の各種処理を実行するためのプログラムが格納されている。ＣＰＵ１２０１は、メモリ１２０２からプログラムを読み出し、各種処理を実行する。ＣＰＵ１２０１によって実行される各種処理の実行に伴い、メモリ１２０２に対するデータの書き込み及び読み出しが実行される。
【０１２７】
ＣＰＵ１２０１は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ１２０２は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。
【０１２８】
バススイッチ１０７は、バッファ１２０８、及びスイッチ回路１２０９を含む。バススイッチ１０７は複数のポートの何れかからパケットを受け取ると、このパケットをバッファ１２０８に格納する。そして、コントローラとして機能するＣＰＵ１２０１によって、このパケットのデバイス識別情報、宛先アドレス、送信元アドレスなどが後述されるようにチェックされ、パケットを出力するためにスイッチ回路１２０９のポートが特定される。パケットを出力するためのポートが特定されると、ＣＰＵ１２０１によって、スイッチ回路１２０９が制御されることで、バッファ１２０８からパケットを出力するためのポートまでの転送経路が形成され、パケットがポートから出力される。なお、スイッチ回路１２０９として、例えば、クロスバスイッチを適用してもよく、クロスバスイッチが適用されたスイッチ回路１２０９のポートには、サーバ１０２−１０４のＩＯバスや、ＮＩＣ１０８−１１１が接続される。
【０１２９】
ＮＩＣ１０８−１１１は、図３（Ｂ）に概要が示されるパケットを受け取ると、上述したように、図３（Ａ）に概要が示されるパケットになるようパケット処理を施し、ネットワークとの通信を実行する。
【０１３０】
図１３に、実施例の中継装置の機能ブロックの例が示される。中継装置の一例であるＮＩＣ仮想化装置１０５は、ワーキングメモリとして使用されるメモリ１２０２にロードされたプログラムがＣＰＵ１２０１によって実行されることにより、受信部１３００、判定部１３０１、デバイス識別情報を識別する第１チェック部１３０２、設定部１３０３、制御部１３０４、及び、装置アドレスをチェックする第２チェック部１３０５として機能する。なお、バッファ１２０８は図１２に示されるバッファに対応する。図１３に示される各機能ブロックにより実行される処理が、図１５に示される処理と対応させて後述される。
【０１３１】
図１４に、実施例の中継装置で使用される情報の例が示される。中継装置の一例であるＮＩＣ仮想化装置１０５は、図１２に示されるメモリ１２０２に、図１４（Ａ）−（Ｃ）に示される情報を格納し、これらを適宜読みだして、図１５に示される処理に使用する。
【０１３２】
図１４（Ａ）には、管理サーバ１２２がサーバ１０２−１０４やＶＭ１１６−１１８に対して割り当てたデバイス識別情報と、それらの装置が接続されているバススイッチ１０７のポート番号との対応関係が示される。例えば、“＃００１”のデバイス識別番号とポート番号“３”が対応付けられている。図１４（Ａ）に示される対応関係に従い、バススイッチ１０７は、受け取ったパケットに含まれる宛先のデバイス識別情報を参照し、この宛先が接続されているポート番号を特定して、特定されたポート番号のポートからこのパケットを出力する。なお、このデバイス識別情報は、接続された装置とのハンドシェイクなどにおいて取得すればよい。
【０１３３】
図１４（Ｂ）には、通信経路の変更対象となる通信フローを特定するためのアドレスの組み合わせと、通信経路を変更させる際に設定させる仮想デバイス識別情報及びデバイス識別情報との対応関係が示される。図１４（Ｂ）に示される対応関係は、管理サーバ１２２により図７（Ｄ）に示される対応関係がＮＩＣ仮想化装置１０５に通知され、これに対して、ハンドシェイクなどにより特定されたデバイス識別情報を対応付けすることで作成すればよい。なお、図１４（Ｂ）に示される対応関係が使用される処理が、後述される図１５及び１６に沿って説明される。
【０１３４】
図１４（Ｃ）には、管理サーバ１２２がサーバ１０２−１０４に対して割り当てた仮想デバイス識別情報と、サーバ１０２−１０４が接続されているバススイッチ１０７のポート番号との対応関係が示される。例えば、“＃１００１”の仮想デバイス識別番号とポート番号“１０”が対応付けられている。図１４（Ｂ）に示される対応関係に従い、バススイッチ１０７は、受け取ったパケットに含まれる仮想デバイス識別情報を参照することでポート番号を特定して、特定されたポート番号のポートからこのパケットを出力する。なお、この仮想デバイス識別情報とポート番号との対応関係は、管理サーバ１２２によりデバイス域別情報と仮想デバイス識別情報との対応付けが通知され、これに対して、ハンドシェイクなどにより特定されたポート番号を対応付けすることで作成すればよい。
【０１３５】
図１５及び１６に、実施例の中継装置で実行される処理の例が示される。中継装置の一例であるＮＩＣ仮想化装置１０５は、通信経路の設定する処理を処理１５００によって開始する。
【０１３６】
パケットを受信する処理１５０１が、受信部１４００によって実行される。処理１５０１では、マスタとなる送信元装置から送信されたパケットや、スレーブとなる宛先装置がから送信されたパケットや、ＮＩＣ０１８−１１１から出力されるパケットなどを受信する。そして、パケットが出力されるポートまでの転送経路が確立されるまで、バッファ１２０８にパケットをバッファリングしておく。なお、処理１５０１で受信されるパケットの構成は、図３（Ａ）又は（Ｃ）に概略が示されるパケットの構成である。
【０１３７】
パケットを通信回路が接続されたポートから受信したか否かを判定する処理１５０２が、判定部１３０１によって実行される。図１５及び１６に示される処理では、バススイッチ１０７が受け取ったパケットが、通信回路の一例であるＮＩＣ１０８−１１１から出力されたパケットでない場合に、第２チェック部１３０５によって装置アドレスをチェックする処理が実行される。他方、通信回路の一例であるＮＩＣ１０８−１１１から出力されたパケットである場合には、第２チェック部１３０５によって装置アドレスをチェックしなくてもよい。以上の判定をするために、処理１５０２が実行され、通信回路が接続されたポートから受信していないと判定された場合には処理１５０８に移り、通信回路が接続されたポートから受信したと判定された場合には処理１５０３に移る。
【０１３８】
マスタのデバイス識別情報をチェックする処理１５０３が、デバイス識別情報をチェックする第１チェック部１３０２によって実行される。処理１５０３では、図３（Ａ）に概略が示されるパケットにおいて、マスタのデバイス識別情報を示す部分のビット列がチェックされる。このチェックによって、パケットの宛先となるマスタデバイスが識別される。
【０１３９】
マスタのデバイス識別情報に対応するポートにパケットが出力されるようにスイッチ回路を制御する処理１５０４が、制御部１３０４によって実行される。処理１５０４では、処理１５０３によりチェックされたマスタのデバイス識別情報に対応するポート番号を、図１４（Ａ）に示される情報に従って取得する。そして、取得されたポート番号のポートにパケットが転送されるように、例えばクロスバスイッチなどを含むスイッチ回路１２０９を制御してポートまでの転送経路を確立させる。
【０１４０】
パケットをポートから出力する処理１５０５が、制御部１３０４によって実行される。処理１５０５では、処理１５０４によりポートまでの転送経路が確立されると、バッファ１２０８にバッファリングされていたパケットを、当該転送経路によってポートまで転送させ、パケットの宛先が接続されているこのポートからパケットを出力する。
【０１４１】
処理を継続するか否かを判定する処理１５０６が、判定部１３０１によって実行される。継続すると判定された場合には処理１５０１に移り、継続しないと判定された場合には処理１５０７に移って、図１５及び１６に示される処理を終了する。
【０１４２】
処理１５０１及び処理１５０２によって、パケットを受信したものの、通信回路が接続されたポートから受信していないと判定された場合には、スレーブのデバイス識別情報をチェックする処理１５０８が、第１チェック部１３０２によって実行される。処理１５０８では、受信されたパケットにおいて、スレーブのデバイス識別情報を示す部分のビット列がチェックされる。
【０１４３】
スレーブのデバイス識別情報が仮想デバイス識別情報か否かを判定する処理１５０９が、判定部１３０１によって実行される。処理１５０９では、後述される処理のために、パケットを送信したスレーブデバイスが、仮想ＮＩＣ機能１２４−１２６によってスレーブデバイスとして機能するサーバ１０２−１０４であって、スレーブデバイスとして機能するサーバ１０２−１０４が、管理サーバ１２２によって割り当てられた仮想デバイス識別情報をパケットにおけるスレーブのデバイス識別情報として付与してパケットを送信したか否かを判定するために実行される。スレーブのデバイス識別情報が仮想デバイス識別情報でないと判定されると処理１５１０に移り、スレーブのデバイス識別情報が仮想デバイス識別情報であると判定されると処理１５１８に移る。
【０１４４】
アドレス管理情報が更新中か否かを判定する処理１５１０が、判定部１３０１によって実行される。処理１５１０では、メモリ１２０２において、図１４（Ｂ）に示されるアドレス管理情報が更新中か否かが判定される。アドレス管理情報は、上述したように、ＮＩＣ１０８−１１１を経由させずにバス経由でパケットを宛先装置まで届けるための判定に使用さえる情報であり、管理装置１２２による通知に応答して更新される。従って、このアドレス管理情報が更新中である場合にはパケットのバッファリングすることで転送を待たせる。アドレス管理情報が更新中であると判定された場合には処理１５１１に移り、アドレス管理情報が更新中でないと判定された場合には処理１５１２に移る。
【０１４５】
パケットをバッファリングする処理１５１１が、バッファ１２０８によって実行される。処理１５１１では、アドレス管理情報が更新中である場合にパケットの転送を待たせるためにパケットをバッファリングする。アドレス管理情報の更新が終わるまでパケットをバッファリングさせるために、処理１５１１から処理１５１０に移る。
【０１４６】
宛先アドレスをチェックする処理１５１２が、装置アドレスをチェックする第２チェック部１３０５によって実行される。処理１５１２では、図３（Ａ）に概略が示されるパケットにおいて、宛先装置のアドレスを示す部分のビット列がチェックされる。このチェックによって、宛先アドレスとして、例えば宛先装置のＭＡＣアドレスが特定される。
【０１４７】
宛先アドレスが仮想デバイス識別情報を設定させるアドレスか否かを判定する処理１５１３が、判定部１３０１によって実行される。処理１５１３では、処理１５１２によりチェックされた宛先アドレスが、図１４（Ｂ）に示される情報の宛先アドレスに当てはまるか否かが判定される。図１４（Ｂ）に示される情報の宛先アドレスに当てはまる場合には、パケットに仮想デバイス識別情報を設定させる候補となる。処理１５１３は、受信されたパケットを、ＮＩＣ１０８−１１１を経由させずに、バススイッチ１０７においてバス経由でパケットを転送させて、宛先装置まで届ける対象か否かを判定するための処理の一つである。仮想デバイス識別情報を設定させるアドレスでないと判定された場合には処理１５０４に移り、仮想デバイス識別情報を設定させるアドレスであると判定された場合には処理１５１４に移る。
【０１４８】
送信元アドレスをチェックする処理１５１４が、第２チェック部１３０５によって実行される。処理１５１４では、図３（Ａ）に概略が示されるパケットにおいて、送信元装置のアドレスを示す部分のビット列がチェックされる。このチェックによって、送信元アドレスとして、例えば送信元装置のＭＡＣアドレスが特定される。
【０１４９】
送信元アドレスが仮想デバイス識別情報を設定させるアドレスか否かを判定する処理１５１５が、判定部１３０１によって実行される。処理１５１５では、処理１５１４によりチェックされた送信元アドレスが、図１４（Ｂ）に示される情報の送信元アドレスに当てはまるか否かが判定される。図１４（Ｂ）に示される情報の送信元アドレスに当てはまる場合には、パケットに仮想デバイス識別情報を設定させることになる。処理１５１５は、受信されたパケットを、ＮＩＣ１０８−１１１を経由させずに、バススイッチ１０７においてバス経由でパケットを転送させて、宛先装置まで届ける対象か否かを判定するための処理の一つである。仮想デバイス識別情報を設定させるアドレスでないと判定された場合には処理１５０４に移り、仮想デバイス識別情報を設定させるアドレスであると判定された場合には処理１５１６に移る。
【０１５０】
スレーブのデバイス識別情報を仮想デバイス識別情報に変換する処理１５１６が、設定部１３０３によって実行される。処理１５１６では、処理１５１３における宛先アドレス及び処理１５１５における送信元アドレスに対応付けられた仮想デバイス識別情報を、図１４（Ｂ）に示される情報に従って取得し、受信されたパケットにおけるスレーブのデバイス識別情報のビット列を、取得された仮想デバイス識別情報に対応するビット情報に変換する処理が実行される。この変換処理によって、パケットに仮想デバイス識別情報が設定される。
【０１５１】
仮想デバイス識別情報に対応するポートにパケットが出力されるようにスイッチ回路制御する処理１５１７が、制御部１３０４によって実行される。処理１５１７では、処理１５１６により設定された仮想デバイス識別情報に対応するポート番号を、図１４（Ｃ）に示される情報に従って取得する。そして、取得されたポート番号のポートにパケットが転送されるように、例えばクロスバスイッチなどを含むスイッチ回路１２０９を制御してポートまでの転送経路を確立させる。処理１５１７によって、受信されたパケットを、ＮＩＣ１０８−１１１を経由させずに、バススイッチ１０７においてバス経由でパケットを転送させて、仮想デバイス識別情報が割り当てられてスレーブとなる宛先装置まで届けることができる。処理１５１７を終えると処理１５０５に移る。
【０１５２】
処理１５０９によってスレーブのデバイス識別情報が仮想デバイス識別情報であると判定されると、送信先アドレスをチェックする処理１５１８が、第２チェック部１３０５によって実行される。処理１５１８が実行される場合とは、処理１５０９の判定によって、ＮＩＣ仮想化装置１０５が仮想デバイス識別情報を変換していないにもかかわらず、受信されたパケットに既に仮想デバイス識別情報が設定されていたと判定された場合である。これは、スレーブとして機能するサーバ１０２−１０４が、パケットをＮＩＣ仮想化装置１０５に送信した場合に該当する。この場合、受信されたパケットをパケットにおいて送信先として指定されている装置にそのまま転送してしまうと、バスにおける通信のため、送信先として指定されている装置がスレーブとして機能するサーバ１０２−１０４を認識していない場合に、パケットが受け取れないことになってしまう。従って、既に仮想デバイス識別情報が設定されているパケットを受け取った場合に、ＮＩＣ仮想化装置１０５は、パケットにおいて送信先として指定されている装置がパケットを受け取れるよう、送信先として指定されている装置に対して管理サーバ１２２が割り当てたＮＩＣのデバイス識別情報によって、パケットの仮想デバイス識別情報を変換することとなる。そのために、処理１５１８では、パケットの送信先アドレスをチェックする。
【０１５３】
仮想デバイス識別情報を送信元アドレスに基づくデバイス識別情報に変換する処理１５１９が、設定部１３０３によって実行される。処理１５１９では、処理１５１８によりチェックされた送信先アドレスに対応する装置に対して管理サーバ１２２が割り当てたＮＩＣのデバイス識別情報に従って、受信されたパケットにおけるスレーブのデバイス識別情報のビット列を変換する処理が実行される。この変換処理によって、パケットに、送信先アドレスに基づくデバイス識別情報が設定される。処理１５１９を終えると処理１５０４に移る。
【０１５４】
ところで、管理サーバ１２２がサーバ１０２−１０４に対して、図１４（Ｂ）に示される対応関係を通知してもよい。この場合、サーバ１０２−１０４がパケットを送信する際にパケットに仮想デバイス識別情報を付与できる。そのため、ＮＩＣ仮想化装置１０５による変換処理がなくても、パケットを、ＮＩＣ１０８−１１１を経由させずに、バススイッチ１０７においてバス経由でパケットを転送させて、仮想デバイス識別情報が割り当てられてスレーブとなる宛先装置まで届けることができる。
【０１５５】
ただし、サーバ１０２−１０４で実行されるＶＭは複数あり、かつこれらのＶＭが必ずしも同じ事業者が運用しているとは限らないため、サーバ１０２−１０４からパケットが送信される際に仮想デバイス識別情報が設定されると異なる事業者間で不正なパケット通信がバススイッチ１０７を介して実行されてしまう可能性がある。また、バスの帯域が考慮されずに、サーバ１０２−１０４の各々によって仮想デバイス識別情報を設定してしまうと、バスの帯域を超えたパケット通信が発生してしまうことがある。
【０１５６】
そのため、パケットを送信するサーバ１０２−１０４やＶＭ１１６−１１８には、図３（Ａ）に示されるようなパケットを送信させておき、仮想デバイス識別情報への変換の判定や処理は、管理サーバ１２２やＮＩＣ仮想化装置１０５によって実行させることにより、事業者間の通信の制限やバスの使用帯域の制御ができるようになる。
【０１５７】
上述された実施例によれば、ネットワークにパケットを送信する通信回路の識別情報に従いパケットの出力先となる通信回路を切替える中継装置が、パケットが中継装置に接続された宛先装置まで届けられる予定の場合には、パケットを通信回路に出力せず宛先装置に出力することで、パケットの通信効率を向上させる。
【０１５８】
なお、以上の実施例に関し、以下の付記としてまとめる。
（付記１）  ネットワークにパケットを出力するための複数の通信回路と、
宛先装置を識別するためのアドレスを含む第１パケットを前記複数の通信回路の何れかの通信回路へ出力させるために、前記第１パケットに前記通信回路の識別情報が付与された第２パケットを送信する送信元装置と、
前記送信元装置から送信された前記第２パケットを、前記識別情報に応じて前記複数の通信回路の何れかの通信回路に出力する中継手段と
を有し、
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする通信システム。
（付記２）  前記送信元装置は、前記識別情報が選択的に割り当てられることで、前記複数の通信回路の何れかに前記第１パケットを送信可能である
ことを特徴とする付記１に記載の通信システム。
（付記３）  前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであって、前記中継手段に接続された宛先装置を識別するためのアドレスが所定の基準に基づくアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする付記１又は２に記載の通信システム。
（付記４）  前記中継手段は、前記所定の基準の変更に応じて、前記第１パケットを前記識別情報に応じた通信回路に出力せずに前記中継手段に接続された宛先装置に出力する場合と、前記第１パケットを前記識別情報に応じた通信回路に出力する場合とを切り替える
ことを特徴とする付記３に記載の通信システム。
（付記５）  前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置のアドレスであって、前記第２パケットに含まれる送信元装置を識別するためのアドレスが前記所定の規則に基づくアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする付記３又は４に記載の通信システム。
（付記６）  前記中継手段は、前記第２パケットに含まれる前記識別情報の検出に続いて前記アドレスを検出し、前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであるか否かを判定するコントローラを含む
ことを特徴とする付記１〜５の何れか１つに記載の通信システム。
（付記７）  前記中継手段は、前記送信元装置のＩＯバス及び前記宛先装置のＩＯバスに接続されたクロスバスイッチを含み、
前記コントローラは、前記識別情報の検出に続いて検出された前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスであると判定した場合に、前記クロスバスイッチの接続を制御して、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする付記６に記載の通信システム。
（付記８）  前記コントローラは、前記送信元装置によって設定された前記通信回路の識別情報を、前記中継手段に接続された宛先装置に前記第１パケットを出力させるための識別情報に変換することで、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする付記６又は７に記載の通信システム。
（付記９）  前記中継手段は、前記送信元装置から送信された複数のパケットの出力先を、前記識別情報に応じた通信回路から前記中継手段に接続された宛先装置に切り替える場合に、切り替えにかかる期間は、前記中継手段に接続された宛先装置に出力される予定のパケットをバッファリングするバッファ
を有することを特徴とする付記１〜８の何れか１つに記載の通信システム。
（付記１０）  前記複数の通信回路は、前記第２パケットから前記識別情報を除いて、前記第１パケットを前記ネットワークに出力する
ことを特徴する付記１〜９の何れか１つに記載の通信システム。
（付記１１）  前記宛先装置は、物理サーバ又は仮想マシン
であることを特徴とする付記１〜１０の何れか１つに記載の通信システム。
（付記１２）  前記送信元装置と前記中継手段と間の通信経路の帯域は、前記複数の通信回路と前記ネットワークとの間の通信経路の帯域よりも広い
ことを特徴とする付記１〜１１の何れか１つに記載の通信システム。
（付記１３）  前記宛先装置のアドレスに応じて、前記所定の基準を管理する管理装置
を有することを特徴とする付記３〜１２の何れか１つに記載の通信システム。
（付記１４）  前記管理装置は、前記宛先装置のアドレス及び前記送信元装置のアドレスに応じて、通信フロー毎に前記所定の基準を設定する
ことを特徴とする付記１３に記載の通信システム。
（付記１５）  前記管理装置は、前記通信フロー毎に前記所定の基準を設定する場合に、前記宛先装置のアドレスのグループ毎に前記所定の基準を設定する
ことを特徴とする付記１４に記載の通信システム。
（付記１６）  ネットワークにパケットを出力するための複数の通信回路と、
宛先装置を識別するためのアドレスを含む第１パケットを前記複数の通信回路の何れかの通信回路へ出力させるために、前記第１パケットに前記通信回路の識別情報が付与された第２パケットを送信する送信元装置から送信された前記第２パケットを、前記識別情報に応じて前記複数の通信回路の何れかの通信回路に出力する中継手段と
を有し、
前記中継手段は、前記第２パケットに含まれる前記アドレスが前記中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
ことを特徴とする中継装置。
（付記１７）  コンピュータが、
宛先装置を識別するためのアドレスを含む第１パケットに対して複数の通信回路のうちの何れかの通信回路の識別情報が付与された第２パケットを受信し、
前記第２パケットに含まれる前記アドレスが、前記第２パケットを中継する中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力せずに、前記中継手段に接続された宛先装置に出力する
を特徴とする通信方法。
（付記１８）  コンピュータに、
宛先装置を識別するためのアドレスを含む第１パケットに対して複数の通信回路のうちの何れかの通信回路の識別情報が付与された第２パケットを受信させ、
前記第２パケットに含まれる前記アドレスが、前記第２パケットを中継する中継手段に接続された宛先装置を識別するためのアドレスである場合に、前記第１パケットを、前記識別情報に応じた通信回路に出力させずに、前記中継手段に接続された宛先装置に出力させる
ことを特徴とするプログラム。
【符号の説明】
【０１５９】
１、１００                                                  通信システム
２、３、４、１４、１５、１０２、１０３、１０４              サーバ
５、１０５                                                  ＮＩＣ仮想化装置
６、１０６                                                  Ｌ２スイッチ
７、１０７                                                  バススイッチ
８、９、１０、１１、１０８、１０９、１１０、１１１、５０５  ＮＩＣ
１２、１３                                                  ネットワーク
１６、１７、１８、１１６、１１７、１１８                    ＶＭ
１９、２０、２１、２２、１１９、１２０、１２１              通信経路
１２２                                                      管理サーバ
１２３                                                      データベース
１２４、１２５、１２６                                      仮想ＮＩＣ機能
５００、９００、１２０１                                    ＣＰＵ
５０１、９０１                                              メモリコントローラ
５０２、９０２、１２０２                                    メモリ
５０３、９０３                                              メモリバス
５０４、９０４                                              ＩＯバスコントローラ
５０６、９０６                                              ＩＯバス
５０７、９０７                                              記憶装置
６００                                                      取得部
６０１、１０００、１３０１                                  判定部
６０２、１３０３                                            設定部
１００１                                                    仮想ＮＩＣ部
１２０８                                                    バッファ
１２０９                                                    スイッチ回路
１３００                                                    受信部
１３０２                                                    第１チェック部
１３０４                                                    制御部
１３０５                                                    第２チェック部
【図１】
2014187430.tif 000003
【図２】
2014187430.tif 000004
【図３】
2014187430.tif 000005
【図４】
2014187430.tif 000006
【図５】
2014187430.tif 000007
【図６】
2014187430.tif 000008
【図７】
2014187430.tif 000009
【図８】
2014187430.tif 000010
【図９】
2014187430.tif 000011
【図１０】
2014187430.tif 000012
【図１１】
2014187430.tif 000013
【図１２】
2014187430.tif 000014
【図１３】
2014187430.tif 000015
【図１４】
2014187430.tif 000016
【図１５】
2014187430.tif 000017
【図１６】
2014187430.tif 000018