JP2011141635A - ホスト間通信を使用した仮想サーバのデータの通信方法 - Google Patents
ホスト間通信を使用した仮想サーバのデータの通信方法 Download PDFInfo
- Publication number
- JP2011141635A JP2011141635A JP2010000870A JP2010000870A JP2011141635A JP 2011141635 A JP2011141635 A JP 2011141635A JP 2010000870 A JP2010000870 A JP 2010000870A JP 2010000870 A JP2010000870 A JP 2010000870A JP 2011141635 A JP2011141635 A JP 2011141635A
- Authority
- JP
- Japan
- Prior art keywords
- data
- virtual
- host
- transmission
- destination
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】
従来の技術では、ソフトウェアのみで生成された仮想LANアダプタは、単一の物理サーバ上に配置された仮想サーバ間のデータ転送は可能だが、異なる物理サーバ上に配置された仮想サーバ間のデータ転送には使用できない。
また、LPAR移動機能において、異なる物理サーバ上で仮想計算機を移動させた場合、移動前には仮想LANアダプタを使用して通信可能であった他仮想サーバとの通信は使用不可となる。
【解決手段】
複数の物理サーバ上で動作するそれぞれの仮想化機構に対し、相互に通信を許可する仮想化機構、および仮想サーバのグループを定義し、仮想化機構上に配置された仮想サーバ間の仮想LANアダプタを使用した通信において、通信の宛先仮想サーバが同一仮想化機構上に配置された仮想サーバでない場合、通信対象のデータを仮想化機構間の通信を使用して、宛先の仮想サーバが配置された仮想化機構に送信し、仮想化機構を経由して宛先仮想サーバにデータを転送する。
【選択図】 図1
従来の技術では、ソフトウェアのみで生成された仮想LANアダプタは、単一の物理サーバ上に配置された仮想サーバ間のデータ転送は可能だが、異なる物理サーバ上に配置された仮想サーバ間のデータ転送には使用できない。
また、LPAR移動機能において、異なる物理サーバ上で仮想計算機を移動させた場合、移動前には仮想LANアダプタを使用して通信可能であった他仮想サーバとの通信は使用不可となる。
【解決手段】
複数の物理サーバ上で動作するそれぞれの仮想化機構に対し、相互に通信を許可する仮想化機構、および仮想サーバのグループを定義し、仮想化機構上に配置された仮想サーバ間の仮想LANアダプタを使用した通信において、通信の宛先仮想サーバが同一仮想化機構上に配置された仮想サーバでない場合、通信対象のデータを仮想化機構間の通信を使用して、宛先の仮想サーバが配置された仮想化機構に送信し、仮想化機構を経由して宛先仮想サーバにデータを転送する。
【選択図】 図1
Description
仮想サーバのデータを通信することに関する。
ソフトウェアで生成された仮想LANアダプタを使用して、同一仮想化機構上に設置された仮想サーバ間のLAN通信を行う、自仮想化機構以外に配置された仮想サーバと通信を行うには、当該仮想LANアダプタ専用に対応付けられた物理LANアダプタを使用する。
Blade Symphony BS2000 ユーザーズガイド 699ページ
従来の技術では、ソフトウェアのみで生成された仮想LANアダプタは、同一物理サーバ上の仮想サーバ間通信にのみ使用可能である。
この仮想LANアダプタを使用した通信は、仮想化機構による、以下のエミュレーションにより実現される。
(1) 送信元となる仮想サーバは、送信データを自サーバのメモリ上にある送信バッファに格納し、送信要求を出す。
(2) 送信要求を検知した仮想化機構は、前記送信元仮想サーバの送信バッファ内データを読み出し、そのデータ内に記述されている宛先から、受信対象の仮想サーバを特定し、送信データを受信対象仮想サーバのメモリ上にある受信バッファに格納し、前記受信対象仮想サーバに受信を通知する。
(3) 受信の通知を受けた受信対象の仮想サーバは、自サーバのメモリ上にある受信バッファの内容を読み出す。
この様に、実際のデータ転送は、仮想化機構が管理するメモリ上において、仮想化機構が送信元仮想サーバのメモリから受信先仮想サーバのメモリにデータを移動させることで実現している。
従って、この方法は、単一の物理サーバ上に配置された仮想サーバ間のデータ転送は可能だが、異なる物理サーバ上に配置された仮想サーバ間のデータ転送には使用できない。また、仮想計算機(以下LPARとする)移動機能において、ある物理サーバ上の仮想サーバを、異なる物理サーバ上に移動させた場合、移動前には仮想LANアダプタを使用して通信可能であった他仮想サーバとの通信が、移動後には使用不可となる為、LPAR移動機能と仮想LANアダプタを使用した仮想サーバ間通信は、共存できないという使用制限が生じている。
近年、一台の物理サーバに使用されるプロセッサ数の増加、また、各プロセッサの性能向上に伴い、一台の物理サーバ上に配置される仮想サーバ数が増加し、入出力デバイスの不足はサーバ仮想化の課題のひとつである。従って、完全にソフトウェアのみで生成される仮想LANアダプタは、対応する物理デバイスを実装する必要がない為、上記制限を除くことができサーバ仮想化にとって魅力的である。
複数の実計算機を備える計算機システムにおいて、仮想化機構は、複数の実計算機のうち、異なる実計算機上の仮想化機構が通信するための通信制御部を有し、複数の実計算機のうち、第一の実計算機上で実行される第一の仮想計算機が、第二の実計算機上で実行される第二の仮想計算機へデータを送信する際、第一の仮想計算機は、第二の仮想計算機のアドレスを含む前記送信するデータを前記第一の実計算機の有する記憶部のうち、第一の仮想計算機の使用する送信バッファに格納し、仮想アダプタを制御する仮想アダプタ制御部に格納したことを通知し、仮想アダプタ制御部は、送信するデータを送信バッファから読み出し、仮想スイッチを制御する仮想スイッチ制御部に転送し、仮想スイッチ制御部は、送信データに含まれる第二の仮想計算機のアドレスから、第一の仮想計算機とは別の実計算機へ送信するデータであることを判定し、第二の仮想計算機が実行されている実計算機を判別する宛先実計算機判定部へ転送し、宛先実計算機判定部は、各実計算機の有するアドレスを管理するアドレステーブルを有し、アドレステーブルを参照して、第二の実計算機を特定し、特定した第二の実計算機のアドレスと、送信するデータとを送信データ生成部に転送し、送信データ生成部は、送信するデータに、異なる実計算機間のデータ転送であることを示す情報を付加し、情報を付加された送信するデータを、通信制御部へ転送し、通信制御部は、第二の実計算機へ送信するデータを転送することを特徴とする。
本発明は、ソフトウェアのみで生成された仮想LANアダプタにおいて、単一の物理サーバ上に配置された仮想サーバ間のデータ転送のみに使用可能である制限を解除するものであり、仮想LANアダプタを使用し、異なる複数の物理サーバ上に配置された仮想サーバ間の通信を可能とする。
本発明により、複数の物理サーバ上で動作するそれぞれの仮想化機構が管理する仮想サーバの仮想LANアダプタを使用したデータ転送が可能となる。
これにより、サーバ仮想化の課題のひとつである入出力デバイス不足を解消し、異なる物理サーバ上の仮想サーバ移動時に、移動元、移動先仮想サーバの構成を容易に一致させることができ、仮想サーバ移動に関する制限が緩和される。
以下、本発明の実施例を図面に基づいて説明する。本図面では、仮想化機構をホスト、仮想化機構上に設置される仮想サーバをゲストOSと表記する。
図1は本発明におけるゲストOSのデータの通信の基本的な機能を説明するものである。
本発明の実施例の説明にあたり、まず従来技術である、同一仮想化機構上に設置された仮想サーバ間のLAN通信に関して説明する。
図1において、ホスト0(000)上には、ゲストOS1(001)、ゲストOS2(002)、ゲストOS3(003)が設置され、ホスト0(000)は、各ゲストOS(001,002,003)を管理している、ゲストOS1(001)、ゲストOS2(002)、ゲストOS3(003)には、ホスト0(000)がソフトウェア的に生成した仮想LANアダプタ(011,012,013)が割り当てられ、ホスト0(000)がソフトウェア的に生成した仮想LANスイッチ(020a)に接続されている。仮想LANスイッチ(020a)は、一般に使用されるLANスイッチの機能をホスト0(000)がエミュレーションしたものであり、仮想LANスイッチ(020a)内の、仮想LANアダプタ制御部(021)と仮想LANスイッチ制御部(022)により、ホスト0(000)が管理するゲストOS(001,002,003)間のネットワーク転送を実現している。
具体的な例を上げて説明する。ゲストOS1(001)からゲストOS3(003)へ、それぞれ仮想LANアダプタ(011,013)を使用して通信を行う場合、ゲストOS1(001)が、自サーバに割当てられたメモリ内の送信バッファに送信データを格納し、送信要求を発行する、送信要求を受けた仮想LANアダプタ制御部(021)は、送信データをゲストOS1(001)のメモリ内にある送信バッファから読み出し、読み出したデータを仮想LANスイッチ制御部(022)に転送する。
仮想LANスイッチ制御部(022)は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル(023)から、宛先がゲストOS3(003)であることを判断し、仮想LANアダプタ制御部(021)にデータをゲストOS3(003)に転送することを指示する。
仮想LANアダプタ制御部(021)は、ゲストOS3(003)の割当てられたメモリ内の受信バッファにデータを格納し、ゲストOS3(003)にデータの受信を通知する。
このデータ転送に関するホスト0(000)の仮想LANスイッチのエミュレーション動作について、さらに詳しく図2を用いて説明する。
ゲストOS1がゲストOS3へ、データを送信する場合、ゲストOS1が、自OSに割当てられたメモリ(501)内の送信バッファ(501t)に送信データを格納し、送信要求を発行する。送信要求を検知した仮想LANアダプタ制御部(021)は、送信データをゲストOS1の送信バッファ(501t)から読み出し、読み出したデータを仮想LANスイッチ制御部(022)に転送する。
仮想LANスイッチ制御部(022)は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル(023)から、宛先がゲストOS3であることを判断し、仮想LANアダプタ制御部(021)に対し、データをゲストOS3に転送することを指示する。仮想LANアダプタ制御部(021)は、ゲストOS3に割当てられたメモリ(503)内の受信バッファ(503r)にデータを格納し、ゲストOS3にデータの受信を通知する。
以上は、同一ホスト上のゲストOSのデータの通信であり、ホスト内に仮想的に生成されたLANスイッチのエミュレーション動作を説明したもので、既知の技術である。
この方法では、ひとつのホストが管理する物理メモリ上で、転送データを移動する方法である為、異なるホスト上のゲストOS間では通信ができない。
本発明は、上記同一ホスト上のゲストOS間の通信に加え、仮想LANアダプタを使用して異なるホスト上のゲストOS間の通信を可能とするものである。
まず図1において、ホスト0(000)上のゲストOS1(001)からホスト1(100)上のゲストOS4(101)へのデータ転送を例に、ホスト内の処理について説明する。
ゲストOS1(001)が、自OSに割当てられたメモリ内の送信バッファに送信データを格納し、送信要求を発行する、送信要求を検知した仮想LANアダプタ制御部(021)は、ゲストOS1(001)のメモリ内の送信バッファからデータを読み出し、読み出したデータを仮想LANスイッチ制御部(022)に転送する。
仮想LANスイッチ制御部(022)は、渡されたデータ内の宛先アドレスとホスト内MACアドレステーブル(023)から、他ホスト上のゲストOSを宛先とする通信であることを判断し、宛先ホスト判定部(041)に、送信データを転送する。
宛先ホスト判定部(041)は、ホスト間MACアドレステーブル(032)とホストグループテーブル(033)を参照し、そのデータを転送すべきホストと、セグメントを特定し、送信パケット生成部(042)に、宛先ホストのIPアドレス、セグメント識別情報、および送信データを転送する。
送信パケット生成部(042)は、送信データにパケット種を示すフラグと、セグメント識別情報を付加し送信データを作成する。このパケット種を示すフラグは、ゲストOS間の通信データであることを示すフラグである。
送信パケット生成部(042)は作成したデータと、宛先ホストのIPアドレスをホスト間通信制御部(043)に渡し、宛先ホストへのデータ送信を指示する。
ホスト間通信制御部(043)は、外部接続物理LANアダプタ(051)を使用し、データをホスト1(100)に送信する。
このデータ通信に使用されるインタフェースは、ホスト間通信用に専用に設置しても良いし、他ホスト間で通信が可能なインタフェースであれば既設のものでも使用可能である。たとえば、複数ホストの管理を目的として既設されている通信経路を使用しても実現できる。
ゲストOS4(101)のホスト間通信制御部(143)は、外部接続物理LANアダプタ(151)経由でデータを受信し、受信データを受信データ解析部(144)に転送する。
受信データ解析部(144)は、受信データに送信パケット生成部(042)で付加された、パケット種を示すフラグより、異なるホスト上ゲストOSのデータの通信のデータであることを判断し、同じく送信パケット生成部(042)にて付加されたセグメント識別情報から転送すべき仮想LANスイッチ(120a)を特定し、送信元ホストの送信パケット生成部(042)で付加された情報を削除して、特定した仮想LANスイッチ(120a)の仮想LANスイッチ制御部(122)に受信データを転送する。
受信データを転送された仮想LANスイッチ制御部(122)は、転送されたデータ内の宛先MACアドレスとホスト内MACアドレステーブル(123)から、宛先がゲストOS4(101)であることを判断し、仮想LANアダプタ制御部(121)に対し、受信データをゲストOS4(101)に転送することを指示する。
仮想LANアダプタ制御部(121)は、ゲストOS4(101)に割当てられたメモリ内の受信バッファにデータを格納し、ゲストOS4(101)にデータの受信を通知する。
次に、図3、図4を用いて、ゲストOS間の通信を行う際の、宛先ゲストOSの特定方法、宛先ゲストOSへの経路選択方法について説明する。
図3において、仮想LANスイッチ(020a)とホスト間接続LANスイッチ(300)は、図1における仮想LANスイッチと、ホスト間転送の機能を提供する各部位を、一般のLANスイッチのイメージに置き換えて表現したものである。
本発明は図3において、従来の機能である同一ホスト内のゲストOSのデータの通信を実現する仮想LANスイッチと、前記ホスト間接続LANスイッチを接続する方法、およびホスト間接続LANスイッチによるゲストOS間のLAN通信方法に関するものであり、言い換えれば、前記ホスト間接続LANスイッチ(300)を仮想化する方法に関するものと言える。
ゲストOS間のLAN通信における経路選択には、スイッチ内に保持しているMACアドレステーブルを使用する。図3において、仮想LANスイッチ0a(020a)が通信経路選択に使用しているのが、ホスト内MACアドレステーブル(023)であり、ホスト間接続仮想LANスイッチ(300)が信経路選択に使用しているのが、ホスト間MACアドレステーブル(032)である。また、ホスト間接続仮想LANスイッチ(300)は、予め定義された相互に通信を許可するホスト、およびセグメント識別情報を、ホストグループテーブル(033)として保持しており、この情報も通信経路選択に使用する。
図4に、ホスト内MACアドレステーブル(023)、ホスト間MACアドレステーブル(032)、ホストグループテーブル(033)の内容を示す。この各テーブルの内容は必ずしもこの形式である必要はなく、経路選択に必要な情報を含んでいればかまわない、例えば、通信先ホストとセグメントがひとつであり一意に通信経路の選択が可能な場合、この例の様なテーブルを持つ必要は無い。また、ホストグループテーブル(033)には、相互に通信を行うホストとセグメントの一覧、およびホストのIPアドレスを含んでおり、2つのテーブルとして管理する方法もあるが、いずれも本発明の範疇であり、図4はひとつの例として示している。
ホスト内MACアドレステーブル(023)は、スイッチがフレームを受信した際に、そのフレームの送信元MACアドレスと、受信したポートをテーブルとして記憶するものであり、フレーム中継時にフレームの宛先MACアドレスから転送先のポートを決定する目的で使用する。このテーブルの記憶方法、使用方法は、一般のLANスイッチと同様であることから、ここでの詳細な説明は省略する。
ホスト間MACアドレステーブル(032)とホストグループテーブル(033)における通信経路選択について説明する。ホスト間MACアドレステーブル(032)は、フレームを受信した際に、受信したポート、送信元のMACアドレス以外に、送信元のホスト情報、セグメント識別情報を記憶する。
ホストグループテーブル(033)は、予め各ホストに構成情報の形で定義される相互に通信を許可するホスト、およびセグメント識別情報のテーブルである。セグメント識別情報は、仮想LANスイッチの番号に相当する。
まず、ブロードキャストフレームの転送処理を、図3を使用して説明する。
図3において、仮想LANスイッチ_0a(020a)が、ブロードキャストフレーム受信した場合、他ポートと同様にポートHa(020Ha)にもフレームを転送し、当該フレームを、ホスト間接続LANスイッチ(300)はポートA(301A)で受信することになる。
図3において、仮想LANスイッチ_0a(020a)が、ブロードキャストフレーム受信した場合、他ポートと同様にポートHa(020Ha)にもフレームを転送し、当該フレームを、ホスト間接続LANスイッチ(300)はポートA(301A)で受信することになる。
ホスト間接続LANスイッチ(300)は、このポートA(301A)で受信したことから、このフレームは、仮想LANスイッチ_0a(020a)のセグメントに属していることが分かる。このセグメントにおいて、通信が許可されているホストを、ホストグループテーブル(033)から検索し、宛先のホストを特定し、テーブル内の当該ホストが使用するIPアドレスに対してフレームを送信する。
この際フレームのデータ部には、ホスト間接続仮想LANスイッチ(300)が付加したゲストOSのデータの通信のデータであることを示すフラグと、セグメント識別情報が付加されるが、この付加する情報については、後述の図5で説明する。
次に、ユニキャストフレームの転送処理を、同様に説明する。
仮想LANスイッチ_0a(020a)が、他ホスト上のゲストOS宛のフレームを受信した場合、ホスト内MACアドレステーブル(023)を参照し、ポートHa(020Ha)に転送する。当該フレームを、ホスト間接続LANスイッチ(300)はポートA(301A)で受信する。
受信したフレームの宛先MACアドレスをホスト間MACアドレステーブル(032)で検索し、宛先のホストとセグメントを特定する。また宛先ホストを、ホストグループテーブル(033)から検索し、テーブル内の当該ホストが使用するIPアドレスに対してフレームを送信する。
前述の通り、このフレームのデータ部には、ホスト間接続仮想LANスイッチ(300)が付加したゲストOSのデータの通信のデータであることを示すフラグと、セグメント識別情報が付加される。
ユニキャストフレームにおいても、ホスト内MACアドレステーブル(023)、ホスト間MACアドレステーブル(032)に、宛先MACアドレスが登録されていない時点での通信は、ブロードキャストフレームの転送処理と同じになるが、これは一般のLANスイッチと同様である。
次に、図5を用いて、送信元仮想化機構の送信パケット生成部(042)が付加する情報について説明する。
図5(a)は、ホスト0(000)上のゲストOS1がホスト1(100)上のゲストOS4にデータを転送する例であり、図5(b)は、送信パケット生成部(042)が送信データに付加する情報の例を示したものである。
図5(a)において、仮想LANアダプタ制御部(021)が、ゲストOS1の割り当てメモリ(500)内の送信バッファ(501t)から送信データを読み出し、仮想LANスイッチ制御部(022)からホスト間接続仮想LANスイッチ(300)に転送する。送信データ(701)には、ホスト間接続仮想LANスイッチ(300)の送信パケット生成部(042)で、8バイトのデータが付加される。この付加される情報の中には、ゲストOSのデータの通信のデータであることを示すフラグ1バイトと、セグメント識別情報の2バイトを含んでいる。
このデータを受信したホスト1(100)側のホスト間接続仮想LANスイッチ(300)は、ホスト間接続仮想LANスイッチ(300)内の受信データ解析部(144)が、付加されたデータ内のフラグを解析し、受信データのフォーマットを判断する。受信データはゲストOSのデータの通信のデータであることから、付加データに含まれるセグメント識別情報に従い、転送先の仮想LANスイッチ(120a)を特定し、付加データ8バイトを削除して、仮想LANスイッチ(120a)にデータを転送する。
仮想LANスイッチ(120a)の仮想LANスイッチ制御部(122)は、受信データ内の宛先MACアドレスをホスト内MACアドレステーブル(123)で検索し、宛先ゲストOSを特定し、該当するゲストOS4の割り当てメモリ(601)に受信データを格納する。
図5(b)は、転送データの内容を示している。フレーム形式701は、送信元となるゲストOS1の割り当てメモリ(501)内の送信バッファ(501t)から読み出したデータであり、MACフレームの形式である。フレーム形式702は、送信パケット生成部(042)が送信データに8バイトのデータを付加したデータであり、これがホスト間通信パケットのデータ部となる。フレーム形式703は、受信データ解析部(144)が、送信パケット生成部(042)にて付加された8バイトのデータを削除した状態であり、これが宛先となるゲストOS4の割り当てメモリ(601)内の送信バッファ(601r)に書き込むデータとなる。
本説明図では、転送するデータの形式のみ示している。実際にホスト間の通信の物理経路上を流れるデータは、通信プロトコルに対応した各種ヘッダが付加されるが、これは各通信プロトコルの仕様であり、本発明の範疇外であるので、ここでは詳しく説明しない。
図5では、ホスト間接続仮想LANスイッチ(300)の送信パケット生成部(042)が送信データに付加するパケットの種類を示すフラグと、セグメント識別情報を含む、8バイトの情報を付加しているが、これはあくまでも例である。必ずしもこれらの情報を付加する必要はない。例えば、ホスト間の通信が、異なるホスト上のゲストOSのデータの通信でのみ使用される場合、このパケット種を示すフラグは不要であるし、各ホスト内に1つのセグメントしか存在しない場合、セグメント識別情報が不要となることは明白である。
図6(a)に、これまで説明した仮想LANアダプタを使用したゲストOSのデータの通信の送信処理について、その処理をフローチャートで示す。ステップ(801〜803)は送信元ゲストの処理である。データ転送の要因が発生すると、自OSに割り当てられたメモリ内の送信バッファに送信データを格納してデータの送信要求を出す。
ステップ(811、812)は、ホスト内の仮想LANアダプタ制御部の処理であり、データの送信要求を受けて、データを上記メモリ内の送信バッファから読み出し、読み出したデータを仮想LANスイッチ制御部に転送する。
ステップ(821〜825)は、ホスト内の仮想LANスイッチの処理であり、転送されたデータがブロードキャストフレームかユニキャストフレームかを判断する。ブロードキャストフレームであれば、MACアドレステーブルを参照する必要がなく、そのままデータを宛先ホスト判定部に転送する。
ユニキャストフレームであれば、データ内の宛先MACアドレスをホスト内MACアドレステーブルで検索する。宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていれば、テーブルの内容から転送先のポートが決定する。宛先ポートが他ホスト向けのポートであれば、データを宛先ホスト判定部に転送する。宛先ポートが自ゲストOS向けのポートであれば、自ホスト内で送信データを処理する。
また、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合も、送信データを宛先ホスト判定部に転送する。
また、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合も、送信データを宛先ホスト判定部に転送する。
ステップ(831〜834)は、ホスト内の宛先ホスト判定部の処理であり、転送データがユニキャストフレームであれば、送信データ内のMACアドレスをホスト間MACアドレステーブルで検索する。宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていれば、テーブルの内容から転送先のホスト名とセグメント識別情報を得る。
宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合は、データを受信したポートからセグメント識別情報を作成する。
次にホストグループテーブルを参照し、宛先ホストのIPアドレスを得る。
ここで、宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合は、ホストグループテーブル内の同一グループに属する全てのホストが宛先の対象となり、複数の宛先ホストを順次処理する。
ステップ(835)で、宛先ホスト判定部は、転送データ、宛先ホストのIPアドレス、セグメント識別情報を送信パケット生成部に転送する。
ステップ(835)で、宛先ホスト判定部は、転送データ、宛先ホストのIPアドレス、セグメント識別情報を送信パケット生成部に転送する。
ステップ(836〜838)は、ホスト内の送信パケット生成部の処理であり、転送されたデータにゲストOS間のデータ転送を示すフラグとセグメント識別情報を付加し、送信データを作成する。そしてホスト間通信制御部に送信データと、宛先ホストのIPアドレスを転送し、宛先ホストへのデータ送信を指示する。
ステップ(841)で、ホスト間通信制御部は、外部接続物理LANアダプタを使用し、データを送信する。
ステップ(839)は、宛先MACアドレスが、ホスト間MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合の処理であり、ホスト内の宛先ホスト判定部は、ホストグループテーブルに登録されている全ての対象ホストにデータを送信するまで、ステップ(834)〜ステップ(838)の処理を繰返す。
ここで、仮想LANスイッチ制御部と、宛先ホスト判定部は、受信したデータ内の送信元MACアドレスと、受信したポートを、それぞれホスト内MACアドレステーブル、ホスト間MACアドレステーブルに登録する処理があるが、本フローチャートは主要な処理の流れを説明する為のものであり、省略している。
図6(b)に、これまで説明した仮想LANアダプタを使用したゲストOSのデータの通信の受信処理について、その処理をフローチャートで示す。ステップ(911、912)はホスト間通信制御部の処理であり、外部接続物理LANアダプタでデータを受信し、受信データを受信データ解析部に転送する。
ステップ(931〜936)は、受信データ解析部の処理であり、転送されたデータ内の送信元ホスト内の送信パケット生成部で付加されたフラグを判定する。フラグの内容が、ゲストOS間のデータ転送を示すものでなければ、そのフラグで指示される処理を実行するが、ここでは、ゲストOS間のデータ転送についてのみ説明する。
ステップ(933〜935)にて、受信データ解析部は、送信元ホスト内の送信パケット生成部で付加されたセグメント識別情報から、転送ポートを特定する。この転送ポートは、自ホスト内の仮想LANスイッチ番号に相当する。また、送信パケット生成部で付加されたデータを削除して、該当する仮想LANスイッチ制御部に転送する。
ステップ(941〜945)は、ホスト内の仮想LANスイッチ制御部の処理であり、転送されたデータがブロードキャストフレームかユニキャストフレームかを判断する。ブロードキャストフレームであれば、MACアドレステーブルを参照する必要がなく、同一セグメントの全てのゲストOSを対照として転送先のポートを決定する。
ユニキャストフレームであれば、データ内の宛先MACアドレスをホスト内MACアドレステーブルで検索する。宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていれば、テーブルの内容から転送先のポートが決定する。また、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合は、同一セグメントの全てのゲストOSを対照として転送先のポートを決定する。
ステップ(946〜947)は、ホストの仮想LANアダプタ制御部の処理であり、仮想LANスイッチ制御部が指示する転送先ポートに接続されるゲストOSに対して、当該ゲストOSに割り当てたメモリ内の受信バッファにデータを書き込み、ゲストOSにデータの受領を通知する。
ステップ(948)は、宛先MACアドレスが、ホスト内MACアドレステーブルに登録されていない場合、および受信データがブロードキャストフレームの場合の処理であり、仮想LANスイッチ制御部は、同一セグメントの全てのポートを対象として、対応するゲストOSに対してステップ(846)〜ステップ(847)の処理を繰返す。
ステップ(901〜902)は受信先ゲストの処理である。データの受領を通知されたゲストOSは、自OSに割り当てられたメモリ内の受信バッファを読み出してデータを受信する。
ここで、受信データ解析部と仮想LANスイッチ制御部は、受信したデータ内の送信元MACアドレスと、受信したポートを、それぞれホスト内MACアドレステーブル、ホスト間MACアドレステーブルに登録する処理があるが、本フローチャートは主要な処理の流れを説明する為のものであり、省略している。
図7は、本発明のゲストOSのデータの通信方法を使用して構築したネットワーク構成のイメージである。この接続構成例は、ホスト0(000)、ホスト1(100)、ホスト2(200)上のゲストOSが、ホスト間接続仮想スイッチを介して、相互に接続されている構成を示している。この接続構成例における接続に関しては、一般のLANスイッチの接続図と同様であるので、詳しい説明は省略するが、それぞれの仮想LANスイッチに関しては、前述のホストにおけるLANスイッチのエミュレーションが行われている。
また仮想LANスイッチ間の接続に関しては、各ホストに対して、予め構成情報の形で相互に通信を許可するホスト、およびセグメントを定義してある。この構成における定義内容は、図4におけるホストグループテーブル(033)の内容となる。
図7において、ホスト0(000)上のゲストOS3(003)をホスト1(100)上に移動させた場合の運用について説明する。
図7は、ゲストOS3(003)の移動前の構成、図8は、ゲストOS3(003)がホスト1(100)上に移動した後の構成を示している。ゲストOS3(003)は、移動前に仮想LANスイッチ_0c(020c)を介して、ホスト0(000)上のゲストOS2(002)と、また仮想LANスイッチ_0d(020d)を介して、ホスト0(000)上のゲストOS2(002)、ホスト2(200)上のゲストOS8(203)、ゲストOS9(204)、と通信可能な構成にあったが、ホスト1(100)上に移動したことにより、上記のゲストOSとの通信は不可となる。
図7は、ゲストOS3(003)の移動前の構成、図8は、ゲストOS3(003)がホスト1(100)上に移動した後の構成を示している。ゲストOS3(003)は、移動前に仮想LANスイッチ_0c(020c)を介して、ホスト0(000)上のゲストOS2(002)と、また仮想LANスイッチ_0d(020d)を介して、ホスト0(000)上のゲストOS2(002)、ホスト2(200)上のゲストOS8(203)、ゲストOS9(204)、と通信可能な構成にあったが、ホスト1(100)上に移動したことにより、上記のゲストOSとの通信は不可となる。
しかしながら、各ホストの保持するホストグループテーブル(033)を更新することにより移動前と同様に通信が可能となる。
移動前のホストグループテーブル(033)の内容と、更新したホストグループテーブル(033)の内容を図9に示す。
移動前のホストグループテーブル(033)の内容と、更新したホストグループテーブル(033)の内容を図9に示す。
ホストグループテーブル(033)の更新方法には、2つの方法がある。ひとつは既存のグループに移動元ホストとセグメント識別情報、移動先ホストとセグメント識別情報を追加する方法。
もう1つは、新たなグループを作成し、移動元ホストとセグメント識別情報、移動先ホストとセグメント識別情報を登録する方法である。
もう1つは、新たなグループを作成し、移動元ホストとセグメント識別情報、移動先ホストとセグメント識別情報を登録する方法である。
図9は、後者の新たなグループを作成する方法で、ホストグループテーブル(033)を更新した例である。ホストグループテーブル(033)の追加部(033-1)から分かる様に、移動元となるホスト0(000)上のセグメントで、移動先となるホスト1(001)上のセグメントと通信の許可が定義されていないSW-C、およびSW-Dのセグメントに対し、新たなグループを追加して定義を追加することにより、移動元と同じ条件で、仮想LANアダプタを使用したゲストOS間の通信が可能である。
この様に、ホストグループテーブル(033)を更新することにより、論理的に仮想LANスイッチ間の接続を変更することが可能である。またホストグループテーブル(033)の更新は、たとえばLPAR移動機能の中に組み込み、ゲストOSの移動に合わせ、自動的に更新することも可能である。
000、100、200:ホスト
001〜003、101、102、201〜204:ゲストOS
011〜013、111、112:仮想LANアダプタ
020、020a〜020d、120、120a〜120d、220、220a〜220d:仮想LANスイッチ
021、121:仮想LANスイッチ内の仮想LANアダプタ制御部
022、122:仮想LANスイッチ内の仮想LANスイッチ制御部
023、123:ホスト内MACアドレステーブル
032、132:ホスト間MACアドレステーブル
033、133:ホストグループテーブル
041、141:宛先ホスト判定部
042、142:送信パケット生成部
043、143:ホスト間通信制御部
044、144:受信データ解析部
051、151:外部接続物理LANアダプタ
300、301a〜301d:ホスト間接続仮想LANスイッチ
500、600:物理メモリ
501t:ゲストOS1のメモリ内送信バッファ
503r:ゲストOS3のメモリ内受信バッファ
601r:ゲストOS4のメモリ内受信バッファ
001〜003、101、102、201〜204:ゲストOS
011〜013、111、112:仮想LANアダプタ
020、020a〜020d、120、120a〜120d、220、220a〜220d:仮想LANスイッチ
021、121:仮想LANスイッチ内の仮想LANアダプタ制御部
022、122:仮想LANスイッチ内の仮想LANスイッチ制御部
023、123:ホスト内MACアドレステーブル
032、132:ホスト間MACアドレステーブル
033、133:ホストグループテーブル
041、141:宛先ホスト判定部
042、142:送信パケット生成部
043、143:ホスト間通信制御部
044、144:受信データ解析部
051、151:外部接続物理LANアダプタ
300、301a〜301d:ホスト間接続仮想LANスイッチ
500、600:物理メモリ
501t:ゲストOS1のメモリ内送信バッファ
503r:ゲストOS3のメモリ内受信バッファ
601r:ゲストOS4のメモリ内受信バッファ
Claims (2)
- 複数の実計算機を備える計算機システムにおいて、
前記複数の実計算機はネットワークを介して接続されており、演算部と、記憶部と、前記実計算機上で1つ以上の仮想計算機を実行する仮想化機構とを有し、
前記仮想化機構は、ある仮想計算機から、異なる前記実計算機上の他の仮想計算機へデータを転送する際に、前記他の仮想計算機が実行されている実計算機のアドレスを特定する宛先仮想化機構判定部と、異なる前記実計算機上の仮想計算機からのデータの転送であることを示すフラグを含む付加情報を前記データに付加する送信データ生成部と、異なる前記仮想化機構が通信するための通信制御部とを有し、
前記記憶部は、前記仮想計算機がデータを送信する際に使用する送信バッファを有し、
前記ある仮想計算機は、前記データの送信先仮想計算機を指定するアドレスを含む送信データを前記送信バッファに格納して送信要求を発行し、
前記宛先仮想化機構判定部は、前記送信データの含むアドレスから、各仮想計算機に割り当てられているアドレスを管理するアドレス情報を有し、前記アドレス情報を参照して、前記送信要求の発行された送信データの含むアドレスが指定する仮想計算機が実行されている送信先の実計算機のアドレスを特定し、前記特定した送信先の実計算機のアドレスと、前記送信データとを送信データ生成部に転送し、
前記送信データ生成部は、前記送信データに前記付加情報を付加して新たな送信データを生成し、前記新たな送信データと、前記送信先の実計算機のアドレスとを前記通信制御部へ転送し、
前記通信制御部は、前記送信先の実計算機のアドレスへ前記新たな送信データを転送する
ことを特徴としたデータ通信方法。 - 前記仮想化機構は、前記仮想計算機と前記仮想化機構とを接続する仮想アダプタを制御する仮想アダプタ制御部と、前記仮想アダプタで接続する前記仮想計算機を切り替える仮想スイッチを制御する仮想スイッチ制御部と、受信したデータが含むアドレスから、前記受信したデータの転送先である前記仮想スイッチ制御部を特定する受信データ解析部を有し、
前記記憶部は、データを受信する際に使用する受信バッファを有し、
前記送信先の実計算機上の仮想化機構が有する通信制御部は、前記新たな送信データを受信した際、前記受信したデータを前記受信データ解析部へ転送し、
前記受信データ解析部は、前記受信したデータを転送先すべき前記仮想スイッチ制御部を特定し、前記付加情報を削除し、前記特定された仮想スイッチ制御部に前記付加情報を削除した受信したデータを転送し、
前記仮想スイッチ制御部は、前記受信したデータが含む前記送信先の仮想計算機のアドレスを参照して転送すべき仮想アダプタ制御部を特定し、前記特定した仮想アダプタ制御部へ前記付加情報を削除した受信したデータを転送し、
前記特定された仮想アダプタ制御部は、前記受信バッファに前記付加情報を削除した受信したデータを格納し、格納したことを前記送信先の仮想計算機に通知し、
前記送信先の仮想計算機は、前記格納したことの通知の後、前記受信バッファから前記付加情報を削除した受信したデータを読み出す
ことを特徴とした請求項1記載のデータ通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010000870A JP2011141635A (ja) | 2010-01-06 | 2010-01-06 | ホスト間通信を使用した仮想サーバのデータの通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010000870A JP2011141635A (ja) | 2010-01-06 | 2010-01-06 | ホスト間通信を使用した仮想サーバのデータの通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011141635A true JP2011141635A (ja) | 2011-07-21 |
Family
ID=44457452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010000870A Pending JP2011141635A (ja) | 2010-01-06 | 2010-01-06 | ホスト間通信を使用した仮想サーバのデータの通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011141635A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013527532A (ja) * | 2010-05-14 | 2013-06-27 | マイクロソフト コーポレーション | 仮想ネットワークのメンバの相互接続 |
WO2013145780A1 (en) * | 2012-03-30 | 2013-10-03 | Nec Corporation | Communication system, control apparatus, communication apparatus, communication control method, and program |
JP5377775B1 (ja) * | 2012-09-21 | 2013-12-25 | 株式会社東芝 | システム管理装置、ネットワークシステム、システム管理方法およびプログラム |
WO2014006795A1 (ja) * | 2012-07-03 | 2014-01-09 | 日本電気株式会社 | 相互接続管理装置、相互接続設定方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 |
JP2019164661A (ja) * | 2018-03-20 | 2019-09-26 | Necプラットフォームズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2010
- 2010-01-06 JP JP2010000870A patent/JP2011141635A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013527532A (ja) * | 2010-05-14 | 2013-06-27 | マイクロソフト コーポレーション | 仮想ネットワークのメンバの相互接続 |
WO2013145780A1 (en) * | 2012-03-30 | 2013-10-03 | Nec Corporation | Communication system, control apparatus, communication apparatus, communication control method, and program |
US9935876B2 (en) | 2012-03-30 | 2018-04-03 | Nec Corporation | Communication system, control apparatus, communication apparatus, communication control method, and program |
WO2014006795A1 (ja) * | 2012-07-03 | 2014-01-09 | 日本電気株式会社 | 相互接続管理装置、相互接続設定方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 |
JP5377775B1 (ja) * | 2012-09-21 | 2013-12-25 | 株式会社東芝 | システム管理装置、ネットワークシステム、システム管理方法およびプログラム |
WO2014045413A1 (ja) * | 2012-09-21 | 2014-03-27 | 株式会社東芝 | システム管理装置、ネットワークシステム、システム管理方法およびプログラム |
US9148355B2 (en) | 2012-09-21 | 2015-09-29 | Kabushiki Kaisha Toshiba | System management device, network system, system management method, and program |
JP2019164661A (ja) * | 2018-03-20 | 2019-09-26 | Necプラットフォームズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP7056870B2 (ja) | 2018-03-20 | 2022-04-19 | Necプラットフォームズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451434B2 (en) | System and method for correlating fabric-level group membership with subnet-level partition membership in a high-performance computing environment | |
US9893977B2 (en) | System and method for supporting live migration of virtual machines in a virtualization environment | |
US8279878B2 (en) | Method for configuring virtual network and network system | |
CN104115121B (zh) | 在中间件机器环境中对虚拟机迁移提供可扩展的信令机制的系统和方法 | |
US9935920B2 (en) | Virtualization gateway between virtualized and non-virtualized networks | |
US10635474B2 (en) | Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration | |
US7356818B2 (en) | Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor | |
CN112398817B (zh) | 数据发送的方法及设备 | |
US7996569B2 (en) | Method and system for zero copy in a virtualized network environment | |
JP2019503595A (ja) | 高性能コンピューティング環境における仮想ルータポートにわたるsmp接続性チェックのためのルータsma抽象化をサポートするためのシステムおよび方法 | |
JP2010033404A (ja) | 仮想計算機システムおよび仮想計算機システムの制御方法 | |
WO2014030229A1 (ja) | ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム | |
WO2015003295A1 (zh) | 一种在虚拟域中通信的方法、设备和系统 | |
JP2011141635A (ja) | ホスト間通信を使用した仮想サーバのデータの通信方法 | |
JP2010066931A (ja) | 負荷分散機能を有した情報処理装置 | |
US8762485B2 (en) | Information system having computer and storage apparatus coupled to network | |
JP2005025485A (ja) | アドレス管理方法および装置 | |
JP2019503597A (ja) | 高性能コンピューティング環境においてスイッチポートステータスのスケーラブルな表現をサポートするためのシステムおよび方法 | |
WO2014172869A1 (zh) | 一种在虚拟局域网中通信的方法、设备和系统 | |
JP2017184195A (ja) | 通信管理装置、通信管理方法及びプログラム | |
US20220141178A1 (en) | Communication control method, computer system, and computer |