JP5662949B2 - 仮想ネットワーク環境におけるコピーの迂回 - Google Patents

仮想ネットワーク環境におけるコピーの迂回 Download PDF

Info

Publication number
JP5662949B2
JP5662949B2 JP2011552384A JP2011552384A JP5662949B2 JP 5662949 B2 JP5662949 B2 JP 5662949B2 JP 2011552384 A JP2011552384 A JP 2011552384A JP 2011552384 A JP2011552384 A JP 2011552384A JP 5662949 B2 JP5662949 B2 JP 5662949B2
Authority
JP
Japan
Prior art keywords
logical partition
driver
ethernet driver
physical
computer
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
Application number
JP2011552384A
Other languages
English (en)
Other versions
JP2012519340A (ja
Inventor
カルドナ、オマール
オークス、マシュー、ライアン
カニンガム、ジェームス、ブライアン
レオン、サード、バルタザール デ
レオン、サード、バルタザール デ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012519340A publication Critical patent/JP2012519340A/ja
Application granted granted Critical
Publication of JP5662949B2 publication Critical patent/JP5662949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

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 And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本開示は、改良されたデータ処理システムに関する。具体的には、本開示は、論理区画されたデータ処理システムに関し、さらに具体的には、本開示は、仮想ネットワーク環境におけるコピー/マッピングの迂回に関する。
先進的な仮想化システムにおいては、オペレーティング・システム(OS:Operating System)インスタンス群は、仮想イーサネット(VE:virtual Ethernet)(R)を介し相互交信する能力を有する。論理区画されたデータ処理システムでは、論理区画(LPAR:logical partition)は、仮想入力/出力サーバ(VIOS:Virtual Input/Output Server)として知られる、特別なパーティションを介して外部ネットワークと通信する。VIOSは、各区画が物理I/Oデバイスを所有する必要なしに、これら区画へのネットワーク、ディスク、テープ、および他のアクセスを含む、I/Oサービスを提供する。
VIOS内では、共用イーサネット・アダプタ(SEA:shared Ethernet adapter)またはブリッジ・アダプタとして知られるネットワーク・アクセス・コンポーネントを使って、物理イーサネット・アダプタと一つ以上の仮想イーサネット・アダプタとの間がブリッジされる。SEAは、物理インタフェース部分および仮想インタフェース部分の両方を含む。仮想クライアントが、外部クライアントとの通信を所望する場合、データ・パケットがSEAの仮想部分に送信されて受信される。次いで、SEAは、該データ・パケットを、SEAの物理部分から外部クライアントに再送信する。この処理方法は、従来式のネットワーキング・アプローチに依って(仮想のまたは物理的なあるいはその両方の)各アダプタおよびアダプタの関連リソースを相互に独立的に保っている。
共用イーサネット・アダプタを用いる仮想ネットワーク環境において、データのコピー・オペレーションを迂回するための方法、システム、およびコンピュータ・プログラム製品を開示する。
該方法は、データ・パケットをユーザ・スペースから第一論理区画(LPAR)の第一カーネル・スペースにコピーするステップを含む。ハイパーバイザを使って、第二LPAR中の受信側仮想イーサネット・ドライバのマップされたアドレスが要求される。第一マップ・アドレスは、受信側仮想イーサネット・ドライバのバッファに関連付けられる。該データ・パケットは、第一LPARの第一カーネル・スペースから、第二LPARの第二カーネル・スペース中の送り先に直接コピーされる。送り先は、該マップされたアドレスを使って決められる。送り先に直接コピーするステップは、(i)該第一カーネル・スペースから第一LPARの送信側仮想イーサネット・ドライバへのデータ・パケットのコピー・オペレーションと、(ii)ハイパーバイザを介するデータ・パケットのコピー・オペレーションとを迂回する。受信側仮想イーサネット・ドライバには、該データ・パケットが第二LPAR中の送り先に成功裏にコピーされたことが通知される。
以下の詳細な書面説明において、本発明の上記のおよびさらなる特質が明らかになろう。
以下の図面に示された好適な実施形態を例として参照しながら以降に本発明を説明する。
本発明を実装することが可能な典型的データ処理システムのブロック図を示す。 本発明のある実施形態による、仮想イーサネット環境中のプロセシング・ユニットのブロック図を示す。 本発明のある実施形態による、外部の物理クライアントに送信する内部仮想クライアントを有するプロセシング・ユニットのブロック図を示す。 本発明のある実施形態による、仮想ネットワーク環境における、データのコピー・オペレーションを迂回するための高レベル・フローチャートを示す。 本発明の別の実施形態による、共用イーサネット・アダプタを用いる仮想ネットワーク環境における、データのコピー・オペレーションを迂回するための高レベル・フローチャートを示す。
(仮想のまたは物理的なあるいはその両方の)各イーサネット・アダプタおよびイーサネット・アダプタの関連リソースを区分けする場合、(i)ハイパーバイザを介する、仮想化環境中の仮想イーサネット・アダプタ同士の間と、(ii)ハイパーバイザおよびSEAを介する、仮想イーサネット・アダプタと物理イーサネット・アダプタとの間で、データ・パケットの送信および受信を行うためには相当な数のコピーが必要となる。結果的に、SEAを用いたかかる仮想ネットワーク環境下で、1500バイトの最大転送単位(MTU:maximum transmission unit)を有する10ギガ・ビットのイーサネット(10GbEまたは10GigE)ライン速度の規格で送信達成するのは困難である。加えて、データ・パケット処理の増加と相まったオペレーティング・システム(OS)またはデバイスの間接参照あるいはその両方によって、中央演算ユニット(CPU:central processing unit)の使用率とデータ・パケットあたりの全体的待ち時間の増大が生じる。本発明は、さまざまなコピー・オペレーションを効果的に迂回することによって、上記のような影響を回避する。
次いでこれらの図面、具体的に図1を参照すると、本発明の好適な実施形態が実装可能なデータ処理システム(DPS:data processing system)100のブロック図が示されている。説明目的の上で、該データ処理システムは、サーバ・コンピュータに一般的な機能を備えるものとして描かれている。しかしながら、本明細書で用いる用語「データ処理システム」は、コンピュータ・システムだけでなく、通信デバイス(例、ルータ、スイッチ、ページャ、電話、電子書籍、電子雑誌および新聞など)、並びに個人および一般家庭用デバイス(例、手持ちコンピュータ、ウェブ対応テレビジョン、ホーム・オートメーション・システム、マルチメディア視聴システムなど)のデバイスを含め、ソフトウエア製品を受信、格納、実行することのできる任意の種類のコンピューティング・デバイスまたはマシンを包含するものと意図されている。
図1および以下の説明は、本発明を実装するのに適した典型的データ処理システムの簡明で一般的な説明を提供することを意図している。本発明の各部を、サーバ・コンピュータ内のハードウエアに所在する命令の一般的コンテキストで説明するが、当業者は、本発明が、オペレーティング・システム中で作動するプログラム・モジュールの組み合わせにも実装可能なことを認識するであろう。一般に、プログラム・モジュールは、特定のタスクを遂行する、または特定の抽象データ型を実装する、ルーティン、プログラム、コンポーネント、およびデータ構造を包含する。また、本発明は、分散型コンピューティング環境においても実施することができ、該環境では、通信ネットワークを介してリンクされた遠隔のプロセシング・デバイス群によってタスクが遂行される。分散型コンピューティング環境においては、プログラム・モジュールは、ローカルおよび遠隔のメモリ記憶デバイスの両方に配置することができる。
DPS100は、一つ以上のプロセシング・ユニット102a〜102dと、メモリ・コントローラ105に連結されたシステム・メモリ104と、メモリ・コントローラ105をプロセシング・ユニット(群)102およびDPS100の他のコンポーネントに連結しているシステム相互接続ファブリック106とを含む。システム相互接続ファブリック106上の命令は、バス・アービタ108の制御の下でさまざまなシステム・コンポーネントに伝達される。
DPS100は、第一ハード・ディスク・ドライブ(HDD:hard disk drive)110および第二HDD112などの記憶媒体をさらに含む。第一HDD110および第二HDD112は、入力−出力(I/O:Input−Output)インタフェース114によって、システム相互接続ファブリック106に通信可能に連結されている。第一HDD110および第二HDD112は、DPS100に不揮発性記憶装置を提供する。上記のコンピュータ可読媒体の説明はハード・ディスクに言及しているが、当業者は、着脱可能磁気ディスク、コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read only memory)ディスク、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、およびその後に開発された他のハードウエアなど、コンピュータが可読の他の種類の媒体も、該典型的コンピュータ・オペレーティング環境において使用可能であることは十分理解しているはずである。
DPS100は、遠隔コンピュータ116など一つ以上の遠隔コンピュータへの論理接続を使いネットワーク環境中で作動することができる。遠隔コンピュータ116は、サーバ、ルータ、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、通常、DPS100に関して説明したエレメントの多くまたは全部を包含する。あるネットワーク環境において、DPS100が用いるプログラム・モジュールまたはその一部は、遠隔コンピュータ116などの遠隔メモリ記憶デバイスに格納しておくことができる。図1に示された論理接続は、ローカル・エリア・ネットワーク(LAN:local area network)118を介する接続を含むが、別の実施形態においては、広域ネットワーク(WAN:wide area network)を含めることもできる。
LANネットワーキング環境で用いられる場合、DPS100は、ネットワーク・インタフェース120などの入力/出力インタフェースを介してLAN118に接続される。示されたネットワーク接続は典型例であって、これらコンピュータの間の通信リンクを確立する他の手段を用いることも可能なことはよく理解されよう。
示された例は、現在説明している実施形態または本発明全般、あるいはその両方に対するアーキテクチャ上のまたは他の限定を意味するものではない。図1に示されたデータ処理システムは、例えば、AIX(IBMの登録商標)オペレーティング・システムまたはLINUX(R)オペレーティング・システム上で作動する、IBM(IBMの登録商標)のeServer pSeries(IBMの登録商標)システムとすることができる。(IBM、eServer、pSeries、およびAIXは、米国または他の国あるいはその両方におけるInternational Business Machines Corporationの商標であり、Linuxは、米国または他の国あるいはその両方におけるLinus Torvaldsの登録商標である。)
次に図2を参照すると、本開示のある実施形態による、論理区画(LPAR)されたプロセシング・ユニット中の仮想ネットワーキング・コンポーネントが示されている。これは、仮想イーサネット(VE)が、同一の物理システム内に包含されている仮想オペレーティング・システム(OS)インスタンス群(またはLPAR群)の間の通信を可能にする。LPAR200およびその関連リソースのセットは、各々、カーネル・スペース204に所在する自分用のOSインスタンスおよびユーザ・スペース202に所在するアプリケーションを用いる独立したコンピューティング・プロセスとして、独立的に作動することができる。生成可能なLPARの数は、DPS100のプロセッサ・モデルおよび利用可能なリソースの如何による。通常、LPAR群は、データベース・オペレーションまたはクライアント/サーバ・オペレーション、あるいはテスト環境とプロダクション環境とを分離するなど、各種の用途に用いられる。各LPARは、仮想LAN212を介して、他のLPARとあたかも各LPARが互いに別個のマシンに在るかのように通信することができる。
示された例では、プロセシング・ユニット102aは2つの論理区画(LPAR)200aおよび200bを実行している。LPAR200aおよび200bは、それぞれユーザ・スペース202aおよびユーザ・スペース202bを含む。ユーザ・スペース202aとユーザ・スペース202bとは、それぞれカーネル・スペース204aとカーネル・スペース204bとに通信可能にリンクされている。一つの実施形態によれば、ユーザ・スペース202aは、カーネル・スペース204a中のスタック206にデータをコピーする。スタック206中に格納されたデータを、LPAR200bの中の意図された受け手に転送するために、データは、LPAR200bのバッファのバス(またはマップされた)・アドレスに、マップまたはコピーされる。
LPAR200aおよび200b内で、仮想イーサネット・ドライバ208aおよび208bが、LPAR200aと200bとの間でのデータの転送を管理する。仮想イーサネット・ドライバ208aおよび208bの各々は、仮想イーサネット・ドライバ208aと208bとの間でデータ・パケットを送信または受信あるいはその両方を行うために、それ自体の送信データ・バッファおよび受信データ・バッファを有する。データ・パケットをLPAR200aからLPAR200bに転送するとき、仮想イーサネット・ドライバ208aはハイパーバイザ210を呼び出す。ハイパーバイザ210は、仮想化イーサネット環境内のさまざまなリソースを管理するように作られている。LPAR200aおよび200b両方の生成、並びに、LPAR200aと200bとへのプロセッサ102aおよびデータ処理システム100のリソースの割当は、ハイパーバイザ210によって制御される。
仮想LAN212は、仮想イーサネット(VE)技術の一例であり、該技術は、同じシステム上のLPAR群の間でインターネット・プロトコル(IP:internet protocol)ベースの通信を可能にする。仮想LAN(VLAN:Virtual LAN)技術はInstitute of Electrical and Electronics EngineersのIEEE 802.1Q規格に記載されており、該規格は参照により本明細書に組み込まれる。VLAN技術は、レイヤ2接続性が同じVLANに属する構成体に対するものに限定されるようにして、物理ネットワークを論理分割する。この分割は、イーサネット・データ・パケットにVLAN構成体の情報をタグ付けし、次いで所与のVLANの構成体への配送に限定することによって実現される。
VLANタグに包含されるVLAN構成体の情報は、VLAN ID(VID)と呼ばれる。デバイスは、そのデバイスに対するVIDによって指定されたVLANの構成体として設定される。仮想イーサネット・ドライバ208aおよび208bはかかるデバイスに含まれる。例えば、仮想イーサネット・ドライバ208aは、仮想イーサネット・ドライバ208bなどVLAN212の他の構成体に、デバイスVIDを使って識別される。
本発明のある好適な実施形態によれば、仮想イーサネット・ドライバ208bは、直接データ・バッファ(DDB:direct data buffer)群216のプール214を格納する。DDB216は、受信側VEデータ・バッファ(すなわち、データ・パケットの意図された受け手)のアドレスをポイントするバッファである。DDB216は、VEドライバ208aによるハイパーバイザ210の呼び出しを介して、スタック206に提供される。スタック206は、カーネル・スペース204aから直接にDDB216中へのコピー・オペレーションを遂行する。このオペレーションは、2つの別個のコピー/マッピング、(1)カーネル・スペース204aから仮想イーサネット・ドライバ208aへのコピー/マップと、(2)その後の、ハイパーバイザ210による、送信側VEドライバ208aから受信側VEドライバ208bへのデータ・パケットのコピー・オペレーションとを迂回する。上記(2)については、パケット・データは、スタック206によって、DDB216がポイントするアドレスを有する事前マップされたデータ・バッファ中に既にコピーされているので、ハイパーバイザ210によるコピー・オペレーションは必要ない。しかして、VEドライバ208aが、ハイパーバイザ210を介し、受信側VEドライバ208b中の、マップされた、受信データ・バッファのアドレスを取得して、VEドライバ208aがLPAR200b中の該マップされた受信データ・バッファの中に直接コピーすれば、VEドライバ208aは、受信側VEドライバ208b中の、DDB216によって参照されたメモリ域中に効果的に書き込み完了することになる。
次に図3を参照すると、本開示のある実施形態による、論理区画されたプロセシング・ユニットの複数のLPARによって共用される物理イーサネット・アダプタが示されている。DPS100は、LPAR220aとLPAR200bとに論理区画されたプロセシング・ユニット102aを含む。また、LPAR200bは仮想I/Oサーバ(VIOS)300を実行し、該サーバは、各区画がネットワーク・アダプタを所有する必要なく、LPAR200aおよび200bに、ネットワーク、ディスク、および他へのアクセスを提供するカプセル化されたデバイス・パーティションを提供する。VIOS300のネットワーク・アクセス・コンポーネントは、共用イーサネット・アダプタ(SEA)310である。SEA310を参照しながら本発明を説明しているが、本発明は、I/Oインタフェース114など、任意の周辺機器アダプタまたは他のデバイスにも同様に適合する。
SEA310は、物理ネットワーク・アダプタ・インタフェース120または物理アダプタの集合体と、VIOS300上のVLAN212の一つ以上とをブリッジする役割をする。SEA310は、VLAN212上のLPAR200aおよび200bが、物理ネットワーク330を介した外部クライアント320へのアクセスを共用することができるように構成されている。SEA310は、ハイパーバイザ210を介して、VLAN212を物理ネットワーク330中の物理LANに接続し、これらのLANに連結されたマシンおよび区画が、同じVLANの構成体として切れ目なく作動することを可能にすることによって、このアクセスを提供している。SEA310は、DPS100のプロセシング・ユニット102a中のLPAR200aおよび200bが、外部クライアント320とのIPサブネットを共用することを可能にする。
SEA310は仮想アダプタと物理アダプタとの対を含む。SEA310の仮想サイドでは、VEドライバ208bがハイパーバイザ210と通信する。VEドライバ208bはDDB316のプール314を格納する。DDB316は、物理イーサネット・ドライバ312の送信データ・バッファ(すなわち、データ・パケットの意図された場所)のアドレスをポイントするバッファである。SEA310の物理サイドでは、物理イーサネット・ドライバ312が物理ネットワーク330とインタフェース接続する。しかしながら、LPAR200aがその仮想環境を脱して物理環境と通信可能になる前に、仮想クライアントはVIOS300とインタフェース接続しなければならないので、物理イーサネット・ドライバ312の物理送信データ・バッファが、受信側VEドライバ208bにおいて受信データ・バッファとしてマップされる。しかして、受信側VEドライバ208bがVEドライバ208aから、物理イーサネット・ドライバ312の物理送信データ・バッファに事前マップされたデータ・パケットを受信すれば、受信側VEドライバ208bは、物理イーサネット・ドライバ312中の、DDB316によって参照されたメモリ域に効果的に書き込み完了することになる。VIOS300は、受信側VEドライバ208bにあるデータ・パケットを、物理イーサネット・ドライバ312を管理する別のドライバに転送する。
このオペレーションは、3つの別個のコピー/マッピング・オペレーション、(1)カーネル・スペース204aから仮想イーサネット・ドライバ208aへのコピー/マップ、(2)その後の、ハイパーバイザ210による、送信側VEドライバ208aからハイパーバイザ210を介する受信側VEドライバ208bへのデータ・バッファのコピー・オペレーション、および(3)その後の、受信側VEドライバ208bからSEA310を介した物理イーサネット・ドライバ312へのデータ・バッファのコピー・オペレーション、を迂回する。
次いで図4を参照すると、本発明の例示の好適な実施形態による、仮想ネットワーク環境においてデータ・コピー・オペレーションを迂回するための典型的プロセスのフローチャートが示されている。これについては図2に示されたエレメントを参照する。該プロセスは開始ブロック401から始まり、データ・パケットが、内部仮想クライアント(すなわち、LPAR200a)のユーザ・スペース202aからカーネル・スペース204aにコピーされることを示すブロック402に続く。次いで、ブロック404に示されるように、仮想イーサネット(VE)ドライバ208aは、VEドライバ208bの、マップされた、受信データ・バッファのアドレスを要求する。このステップは、VEドライバ208aによるデータ・パケット送信要求に応じて行われる、VEドライバ208aによるハイパーバイザ210の呼び出しを介して遂行される。ハイパーバイザ210は、VEドライバ208bから直接データ・バッファ(DDB)216を取得する。DDB216は、データ・パケットの送信先として意図された、LPAR200b中のバッファのアドレスを含む。ハイパーバイザ210は、該意図された受信データ・バッファのアドレスをVEドライバ208aに伝達し、該受信データ・バッファのアドレスは、カーネル・スペース204a中のスタック206に手渡される。受信データ・バッファがVEドライバ208aに伝達されたならば、プロセスは、ブロック406に続き、該ブロックには、カーネル・スペース204a中のVEドライバ208aが、データ・パケットを、スタック206から受信側VEドライバ208bの、マップされた、受信データ・バッファのアドレスに、直接にコピーするのが示されている。次いで、VEドライバ208aは、ハイパーバイザ210を呼び出して、受信側VEドライバ208bに、マップされた受信データ・バッファへのデータ・コピーが成功したことを通知する(ブロック408)。しかる後、ブロック410において該プロセスは終了する。
次に図5を参照すると、本発明の例示の好適な実施形態による、共用イーサネット・アダプタ(SEA)を用いた仮想ネットワーク環境において、データのコピー・オペレーションを迂回するための典型的プロセスのフローチャートが示されている。これについては図3に示されたエレメントを参照する。該プロセスは開始ブロック501から始まり、データ・パケットが、内部仮想クライアント(すなわち、LPAR200a)のユーザ・スペース202aからカーネル・スペース204aにコピーされることを示すブロック502に続く。次いで、ブロック504に示されるように、仮想イーサネット(VE)ドライバ208aは、受信側VEドライバ208bの、マップされた、受信データ・バッファの第一アドレスを要求する。このステップは、VEドライバ208aによるデータ・パケット送信要求に応じて行われる、VEドライバ208aによるハイパーバイザ210の呼び出しを介して遂行される。ハイパーバイザ210は、VEドライバ208bから直接データ・バッファ(DDB)316を取得する。
ハイパーバイザ210が、VEドライバ208aからの呼び出しを受信した後、DDB316を取得できるやり方はいろいろある。一つの典型的実施形態によれば、ハイパーバイザ210は、VEドライバ208aが対象となるマップされた受信データ・バッファに直接コピーするに先立って、マップされた、受信データ・バッファのアドレスのキャッシュ化サブセットを格納することができる。次いで、ハイパーバイザ210は、該キャッシュ化バッファ・アドレスを、仮想イーサネット・ドライバ208aに伝達することができ、該ドライバはデータ・パケットをマップされた受信データ・バッファに直接コピーする。
DDB316は、データ・パケットの意図された送信先である、LPAR200b中のバッファのアドレスを含む。データ・パケットを、仮想クライアントからSEA310を介して物理クライアントに転送する場合、DDB316は、物理イーサネット・ドライバ312が所有するバッファをポイントする。これを可能にするため、物理イーサネット・ドライバ312の送信データ・バッファの第二マップ・アドレスが、受信側VEドライバ208bの、マップされた受信データ・バッファにマップされる(ブロック506)。このマッピングは、通常、内部仮想クライアントが構成される前、起動時にVIOS300およびSEA310が初期設定される際に行われる。次いで、ハイパーバイザ210は、該意図された受信データ・バッファのアドレスをVEドライバ208aに伝達し、該受信データ・バッファのアドレスは、カーネル・スペース204a中のスタック206に手渡される。
受信データ・バッファの場所がVEドライバ208aに伝達されたならば、プロセスは、ブロック508に続き、該ブロックには、カーネル・スペース204a中のVEドライバ208aが、データ・パケットを、スタック206からカーネル・スペース204b中の第二マップ・アドレスに直接コピーするのが示されている。しかして、VEドライバ208bがVEドライバ208aから、物理イーサネット・ドライバ312の物理送信データ・バッファに事前マップされたデータ・パケットを受信すれば、VEドライバ208bは、物理イーサネット・ドライバ312中の、DDB316によって参照されたメモリ域に効果的に書き込み完了することになる。物理イーサネット・ドライバ312aは、SEA310を呼び出して、受信側VEドライバ208bに、意図された物理送信データ・バッファへのデータ・コピーが成功したことを通知する(ブロック510)。しかる後、ブロック512において該プロセスは終了する。
上記のフロー・チャートにおいて、これら方法の一つ以上は、コンピュータ可読コードを包含するコンピュータ可読媒体中に、該コンピュータ可読コードがコンピュータ・デバイス上で(プロセシング・ユニットによって)実行されたとき一連のステップが遂行されるように、具現される。いくつかのインプリメンテーションにおいては、本発明の精神および範囲から逸脱することなく、これらの方法の特定のプロセスが、組み合わせられ、同時にまたは異なる順序で遂行され、あるいは多分省略される。以上、本方法のプロセスを、特定のシーケンスで説明、例示してきたが、プロセスの特定のシーケンスの使用は、本発明に対するいかなる限定をも意味するものではない。本発明の精神および範囲から逸脱することなく、プロセスのシーケンスに関して変更を加えることができる。従って、特定のシーケンスの使用は、限定する意味合いで捉えるものでなく、本発明の範囲は、添付の請求項およびこれらの同等物に広く適用される。
当業者はよく理解するであろうが、本発明の実施形態は、方法、システムまたはコンピュータ・プログラム製品あるいはこれらの複数として具現することができる。従って、本発明の好適な実施形態は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態(ファームウエア、常駐ソフトウエア、マイクロコードなどを含む)、あるいは、一般に本明細書では全て「回路」、「モジュール」、「ロジック」または「システム」と呼ぶ、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の好適な実施形態は、媒体中または媒体上に具現されたコンピュータ可用プログラム・コードを有するコンピュータ可用記憶媒体中のコンピュータ・プログラム製品の形を取ることもできる。
さらに、よく分かっているように、本発明の好適な実施形態中のプロセスは、ソフトウエア、ファームウエア、マイクロコード、またはハードウエアの任意の組み合わせ用いて実装することができる。本発明の好適な実施形態をソフトウエアで実施する準備ステップとして、通常、(ソフトウエア、ファームウエアを問わず)プログラミング・コードは、固定(ハード)ドライブ、ディスケット、磁気ディスク、光ディスク、磁気テープ、および、ランダム・アクセス・メモリ(RAM:randam access memory)/読み取り専用メモリ(ROM:read only memory)/プログラム可能読み取り専用メモリ(PROM:programmable read only memory)等の半導体メモリ、など一つ以上のマシン可読記憶媒体に格納し、これにより本発明の好適な実施形態による製造品を作製することがある。プログラム・コードを包含する製造品は、直接に記憶デバイスからのコードを実行するか、記憶デバイスからのコードを、ハード・ディスク、RAMなどの別の記憶デバイスに中にコピーするか、あるいは、デジタルまたはアナログ通信リンクなどの送信型媒体を用いて遠隔実行のためのコードを送信するかして使われる。媒体は、電子的、磁気的、光学的、電磁的、赤外的もしくは半導体のシステム(または装置またはデバイス)あるいは伝播媒体とすることができる。さらに、該媒体は、実行システム、装置、またはデバイスによって、あるいはこれらと組み合わせて用いるためのプログラムを、包含、格納、通信、伝播、または伝送することが可能な任意の装置とすることができる。本発明の好適な実施形態の方法は、説明した実施形態(群)に従ったコードを包含する一つ以上のマシン可読記憶デバイスを、これらに収納された該コードを実行するための適切なプロセシング・ハードウエアと組み合わせることによって遂行することができる。本発明の好適な実施形態を実施するための装置は、本発明の好適な実施形態によってコードされたプログラム(群)を包含するか、または(サーバを介し)これへのネットワーク・アクセスを有する、一つ以上のプロセシング・デバイスおよび記憶システムとすることができよう。一般に、コンピュータ、コンピュータ・システム、またはデータ処理システムという用語は、広義には、メモリ媒体からの命令/コードを実行するプロセッサ(またはプロセシング・ユニット)を有する任意のデバイスを網羅すると定義することができる。
上記では、本発明の好適な実施形態の例示的な実施形態は、インストールされた(または実行可能な)ソフトウエアを備えた完全に機能可能なコンピュータ(サーバ)システムのコンテキストで説明されているが、当業者は、本発明の例示的好適な実施形態のソフトウエア態様は、さまざまな形でプログラム製品として配布することが可能で、本発明の例示的好適な実施形態が、使われる媒体の特定の種類に関わりなく、該配布の実際の施行に適していることをよく理解するであろう。例として、媒体の種類の非排他的なリストには、フロッピー・ディスク、USBメモリ、ハード・ディスク・ドライブ、CD−ROM、デジタル多用途ディスク(DVD:Digital Versatile Disc)などの記録型(有形)媒体、およびデジタルおよびアナログ通信リンクなどの送信型媒体が含まれる。
典型的実施形態を参照しながら、本発明の好適な実施形態を説明してきたが、当業者は、本発明の範囲から逸脱することなく、そのエレメントにさまざまな変更を加えたり、あるいは同等物によって代替したりすることが可能なのを理解していよう。さらに、特定のシステム、デバイス、またはこれらのコンポーネントに適応させるため、本発明の本質的範囲から逸脱することなく、本発明の教示に多くの修改を加えることもできる。従って、本発明は本発明を実施するため開示された特定の実施形態に限定されるものでなく、本発明は、添付の請求項の範囲に網羅される全ての実施形態を含むものと意図されている。さらに、第一、第二などの用語の使用は、いかなる順序または重要性をも表すものでなく、これら第一、第二などの用語は、一つのエレメントを別のエレメントから区別するために使われている。本明細書での使用において、単数形用語「ある(a、an)」および「該(the)」は、コンテキストが明確に表している場合を除き、同様に複数も含むものと意図されている。本明細書での使用において、用語「含む(comprises)」または「含んでいる(comprising)」あるいはその両方は、述べられた特質、整数、ステップ、オペレーション、エレメント、またはコンポーネントあるいはこれらの複数の存在を規定しているが、他の一つ以上の特質、整数、ステップ、オペレーション、エレメント、コンポーネント、またはこれらのグループの存在または追加を除外するものでないとさらに理解する。

Claims (8)

  1. 仮想ネットワーク環境において、データのコピー・オペレーションを迂回するためのコンピュータ実行の方法であって、前記方法は、
    データ・パケットを第一論理区画のユーザ・スペースから第一カーネル・スペースにコピーするステップであり、前記データ・パケットは、第二論理区画中の受信側仮想イーサネット・ドライバへ届くように構成され、前記第一論理区画と前記第二論理区画は同じ物理的なデータ処理装置内の仮想オペレーション・システム・インスタンスである、前記コピーするステップと、
    ハイパーバイザを介して、前記第二論理区画中の受信側仮想イーサネット・ドライバの第一マップト・アドレスを要求するステップであって、前記第一マップト・アドレスは、前記受信側仮想イーサネット・ドライバの受信バッファに関連付けられる、前記要求するステップと、
    第二マップト・アドレスを前記受信側仮想イーサネット・ドライバの前記受信バッファへマップするステップであり、前記第二マップト・アドレスは共用物理イーサネット・アダプタの物理イーサネット・ドライバーの物理送信バッファに関連付けられ、前記共用物理イーサネット・アダプタは少なくとも前記第一論理区画および第二論理区画を含む複数の論理区画により共用される、前記マップするステップと、
    前記データ・パケットを、前記第一論理区画の前記第一カーネル・スペースから、前記第二論理区画の第二カーネル・スペース中の送り先へ、前記ハイパーバイザをバイパスすることで、直接コピーするステップであって、前記送り先は前記第一マップト・アドレスを使って決められる、前記直接コピーするステップと、
    前記物理イーサネット・ドライバーが呼び出しを行うことで、前記受信側仮想イーサネット・ドライバに、前記第二論理区画中の前記送り先への前記データ・パケットのコピーが成功したことを通知するステップと、
    を含む、前記コンピュータ実行の方法。
  2. 前記直接コピーするステップは、前記第一カーネル・スペースから前記第一論理区画の送信側仮想イーサネット・ドライバへのデータ・パケットのコピー・オペレーションを含まない、請求項1に記載のコンピュータ実行の方法。
  3. 前記受信側仮想イーサネット・ドライバは、少なくとも一つの直接データ・バッファを有する直接データ・バッファプールを含む、請求項1又は2に記載のコンピュータ実行の方法。
  4. 前記少なくとも一つの直接データ・バッファの各々は、前記第二論理区画の前記第二カーネル・スペース中の前記送り先をポイントする、前記第一マップト・アドレスを含む、請求項3に記載のコンピュータ実行の方法。
  5. 前記ハイパーバイザがマップされたバッファ・アドレスのキャッシュ化サブセットを格納するステップをさらに含む、請求項1〜のいずれかに記載のコンピュータ実行の方法。
  6. コンピュータの内部メモリにロード可能であり、前記コンピュータ上で実行されたとき、請求項1〜のいずれかに記載の前記方法を前記コンピュータに遂行させるコンピュータ・プログラム。
  7. 論理区画されたデータ処理システムであって、該システムは、
    バスと、
    前記バスに連結されたメモリであって、命令のセットがメモリ中に配置されている、前記メモリと、
    前記バスに連結された一つ以上のプロセッサであって、前記一つ以上のプロセッサは、
    仮想ネットワーク環境において、データのコピー・オペレーションを迂回するための命令
    のセットを実行する、前記プロセッサと、
    を含み、
    前記命令のセットは、
    データ・パケットを第一論理区画のユーザ・スペースから第一カーネル・スペースにコピーするステップであり、前記データ・パケットは、第二論理区画中の受信側仮想イーサネット・ドライバへ届くように構成され、前記第一論理区画と前記第二論理区画は同じ物理的なデータ処理装置内の仮想オペレーション・システム・インスタンスである、前記コピーするステップと、
    ハイパーバイザを介して、前記第二論理区画中の受信側仮想イーサネット・ドライバの第一マップト・アドレスを要求するステップであって、前記第一マップト・アドレスは、前記受信側仮想イーサネット・ドライバの受信バッファに関連付けられる、前記要求するステップと、
    第二マップト・アドレスを前記受信側仮想イーサネット・ドライバの前記受信バッファへマップするステップであり、前記第二マップト・アドレスは共用物理イーサネット・アダプタの物理イーサネット・ドライバーの物理送信バッファに関連付けられ、前記共用物理イーサネット・アダプタは少なくとも前記第一論理区画および第二論理区画を含む複数の論理区画により共用される、前記マップするステップと、
    前記データ・パケットを、前記第一論理区画の前記第一カーネル・スペースから、前記第二論理区画の第二カーネル・スペース中の送り先へ、前記ハイパーバイザをバイパスすることで、直接コピーするステップであって、前記送り先は前記第一マップト・アドレスを使って決められる、前記直接コピーするステップと、
    前記物理イーサネット・ドライバーが呼び出しを行うことで、前記受信側仮想イーサネット・ドライバに、前記第二論理区画中の前記送り先への前記データ・パケットのコピーが成功したことを通知するステップと、
    を含む、前記論理区画されたデータ処理システム。
  8. 前記マップするステップは、前記論理区画されたデータ処理システムの起動時に実行され、前記第一および第二論理区画が構成される前に実行される請求項に記載のデータ処理システム。
JP2011552384A 2009-03-02 2010-02-16 仮想ネットワーク環境におけるコピーの迂回 Expired - Fee Related JP5662949B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/396,257 US20100223419A1 (en) 2009-03-02 2009-03-02 Copy circumvention in a virtual network environment
US12/396,257 2009-03-02
PCT/EP2010/051930 WO2010100027A1 (en) 2009-03-02 2010-02-16 Copy circumvention in a virtual network environment

Publications (2)

Publication Number Publication Date
JP2012519340A JP2012519340A (ja) 2012-08-23
JP5662949B2 true JP5662949B2 (ja) 2015-02-04

Family

ID=42272400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011552384A Expired - Fee Related JP5662949B2 (ja) 2009-03-02 2010-02-16 仮想ネットワーク環境におけるコピーの迂回

Country Status (8)

Country Link
US (1) US20100223419A1 (ja)
EP (1) EP2359242A1 (ja)
JP (1) JP5662949B2 (ja)
KR (1) KR101720360B1 (ja)
CN (1) CN102326147B (ja)
CA (1) CA2741141A1 (ja)
IL (1) IL214774A (ja)
WO (1) WO2010100027A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677024B2 (en) * 2011-03-31 2014-03-18 International Business Machines Corporation Aggregating shared Ethernet adapters in a virtualized environment
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
US9535871B2 (en) 2012-11-27 2017-01-03 Red Hat Israel, Ltd. Dynamic routing through virtual appliances
US9454392B2 (en) * 2012-11-27 2016-09-27 Red Hat Israel, Ltd. Routing data packets between virtual machines using shared memory without copying the data packet
US9350607B2 (en) * 2013-09-25 2016-05-24 International Business Machines Corporation Scalable network configuration with consistent updates in software defined networks
US10621138B2 (en) 2014-09-25 2020-04-14 Intel Corporation Network communications using pooled memory in rack-scale architecture
US10078615B1 (en) * 2015-09-18 2018-09-18 Aquantia Corp. Ethernet controller with integrated multi-media payload de-framer and mapper
CN110554977A (zh) * 2018-05-30 2019-12-10 阿里巴巴集团控股有限公司 数据缓存方法、数据处理方法、计算机设备、存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016A (en) * 1850-01-15 Mill for grinding
US2012A (en) * 1841-03-18 Machine foe
US7089558B2 (en) * 2001-03-08 2006-08-08 International Business Machines Corporation Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
JP2003202999A (ja) * 2002-01-08 2003-07-18 Hitachi Ltd 仮想計算機システム
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7249208B2 (en) * 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
JP2006127461A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
US20060123111A1 (en) * 2004-12-02 2006-06-08 Frank Dea Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems
US7721299B2 (en) * 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
JP4883979B2 (ja) * 2005-10-11 2012-02-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および通信制御方法
CN101356783B (zh) * 2006-01-12 2014-06-04 博通以色列研发公司 虚拟化网络环境中具有i/o共享的协议卸载和直接i/o的方法和系统
JP4854710B2 (ja) * 2008-06-23 2012-01-18 株式会社東芝 仮想計算機システム及びネットワークデバイス共有方法

Also Published As

Publication number Publication date
CA2741141A1 (en) 2010-09-10
WO2010100027A1 (en) 2010-09-10
IL214774A0 (en) 2011-11-30
CN102326147B (zh) 2014-11-26
US20100223419A1 (en) 2010-09-02
IL214774A (en) 2016-04-21
EP2359242A1 (en) 2011-08-24
KR20110124333A (ko) 2011-11-16
CN102326147A (zh) 2012-01-18
JP2012519340A (ja) 2012-08-23
KR101720360B1 (ko) 2017-03-27

Similar Documents

Publication Publication Date Title
US11121972B2 (en) Multicast message filtering in virtual environments
JP5662949B2 (ja) 仮想ネットワーク環境におけるコピーの迂回
US10402341B2 (en) Kernel-assisted inter-process data transfer
JP6122483B2 (ja) 拡張ホストチャネルアダプタ(hca)モデルに基づいてバーチャルマシンのライブマイグレーションをサポートするためのシステムおよび方法
US8806025B2 (en) Systems and methods for input/output virtualization
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
TWI515572B (zh) 分散式虛擬橋接器環境中暫存器存取之系統及方法
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
US20080189432A1 (en) Method and system for vm migration in an infiniband network
US10824466B2 (en) Container migration
US8468551B2 (en) Hypervisor-based data transfer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131007

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140908

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140916

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: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141205

R150 Certificate of patent or registration of utility model

Ref document number: 5662949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees