JP2016500972A - コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品(少なくとも2つの通信プロトコルを用いるコンピュータ・システムによるネットワーク通信のための技術) - Google Patents

コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品(少なくとも2つの通信プロトコルを用いるコンピュータ・システムによるネットワーク通信のための技術) Download PDF

Info

Publication number
JP2016500972A
JP2016500972A JP2015538341A JP2015538341A JP2016500972A JP 2016500972 A JP2016500972 A JP 2016500972A JP 2015538341 A JP2015538341 A JP 2015538341A JP 2015538341 A JP2015538341 A JP 2015538341A JP 2016500972 A JP2016500972 A JP 2016500972A
Authority
JP
Japan
Prior art keywords
vlan
network communication
network
communication
protocol
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.)
Granted
Application number
JP2015538341A
Other languages
English (en)
Other versions
JP6270860B2 (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 JP2016500972A publication Critical patent/JP2016500972A/ja
Application granted granted Critical
Publication of JP6270860B2 publication Critical patent/JP6270860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/467Arrangements for supporting untagged frames, e.g. port-based VLANs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供すること【解決手段】ネットワーク・アダプタが、ネットワーク・アダプタの第1のおよび第2の物理ポートのそれぞれで構成された第1のおよび第2の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスを有する。第2のVLANデバイスは、論理的にボンディングされた仮想デバイスとして構成される。【選択図】図5

Description

現在のオペレーティング・システムにおいては、概して、TCP/IPによるコンピュータ・システムへのデータ転送が、システムのOSカーネルのネットワーク・スタック内での処理を必要とし、この処理は、言うまでもなく、システムのCPUの関与を必要とする。
その結果、現在の高速なイーサネット(R)技術での比較的高速な転送は、特に、ストレージ・サーバなどの大きなトラフィックを処理するサーバに関して、CPUへの負荷を増大させる傾向がある。この理由およびその他の理由で、ネットワーク業界およびそのインターネット技術タスク・フォース(Internet Engineering Task Force)は、InfiniBandおよびiWARPを含むリモート・ダイレクト・メモリ・アドレス指定(remote direct memory addressing)(「RDMA」)のための代替的なOSIトランスポート・レイヤの特徴を定義した。
これまでは、TCP、RDMA、ファイバ・チャネルなどのさまざまな種類の通信ファブリックが、それぞれ、独自の専用のデバイスおよびスイッチを持っていた。
本発明の一実施形態の一形態によって、ネットワーク通信のためのコンピュータ・プログラム製品が提供される。その他の形態では、システム、およびコンピュータで実装される方法が提供される。
1つの実装においては、コンピュータ・システムが、ネットワーク・アダプタの第1の物理ポートおよび第2の物理ポートのそれぞれで構成された第1の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスおよび第2のVLANデバイスを有し、論理的にボンディングされた仮想デバイスとして構成された第2のVLANデバイスを有するネットワーク・アダプタを含む。
別の態様において、コンピュータ・システムは、コンピュータ可読ストレージ媒体に記憶され、第1のVLANデバイスを介して第1のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされた第1のアプリケーションを含む。
別の態様において、コンピュータ・システムは、コンピュータ可読ストレージ媒体に記憶され、第2のVLANデバイスおよび論理的にボンディングされた仮想デバイスを介して第2のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされたアプリケーションを含み、第1のVLANデバイスのうちの少なくとも1つが、第1のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、論理的にボンディングされた仮想デバイスが、第2のネットワーク通信プロトコルによるネットワーク通信を提供する。
別の態様において、第1のネットワーク通信プロトコルは、リモート・ダイレクト・メモリ・アクセス(remote direct memory access)(「RDMA」)プロトコルを含み、第2のネットワーク通信プロトコルは、伝送制御プロトコル(「TCP」)プロトコルを含む。
別の態様において、第1のネットワーク通信プロトコルによって第1のVLANデバイスのうちの少なくとも1つでネットワーク通信を実行し、第2のネットワーク通信プロトコルによって論理的にボンディングされた仮想デバイスでネットワーク通信を実行することは、第1のVLANデバイスによって第1の物理ポートと第2の物理ポートとの両方でRDMAプロトコル通信を同時に実行することと、論理的にボンディングされた仮想デバイス、および第2のVLANデバイスのうちの第2の物理ポートの第2のVLANデバイスによって第2の物理ポートでTCPプロトコル通信を実行することとを含む。
別の態様において、コンピュータ・システムは、第1のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第1の命令モジュールと、第2のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第2の命令モジュールとを含む。第1のアプリケーションまたは第2のアプリケーションは、第2のネットワーク通信プロトコルに関する第2の命令モジュールによって通信を実行するようにプログラミングされ、第2の命令モジュールは、ボンディングされた仮想デバイスのためにアクティブ−アクティブ・モードを提供するようにプログラミングされる。
別の態様において、論理的にボンディングされた仮想デバイスで第2のネットワーク通信プロトコルによってネットワーク通信を実行することは、論理的にボンディングされた仮想デバイスにより第1の物理ポートと第2の物理ポートとの両方で第2のネットワーク通信プロトコルによってネットワーク通信を実行することであって、両方の第2のVLANデバイスが同時に通信する、実行することをさらに含む。
別の態様において、第2の命令モジュールは、ボンディングされた仮想デバイスのためにアクティブ−バックアップ・モードを提供するようにプログラミングされ、論理的にボンディングされた仮想デバイスで第2のネットワーク通信プロトコルによってネットワーク通信を実行することは、論理的にボンディングされた仮想デバイスによって第1の物理ポートおよび第2の物理ポートのうちの1つで第2のネットワーク通信プロトコルによってネットワーク通信を実行することであって、第2のVLANデバイスのうちの1つのみが一度に通信し、第2のVLANデバイスのうちの通信している方の第2のVLANデバイス、または通信している方の第2のVLANデバイスの関連する物理ポートが故障するとき、第2のVLANデバイスのうちのもう一方の第2のVLANデバイスが、通信を引き継ぐ、実行することをさらに含む。
別の態様において、第1のVLANデバイスは、それぞれの第1のネットワーク・アドレスおよび第2のネットワーク・アドレスで構成され、ボンディングされた仮想デバイスは、第3のネットワーク・アドレスで構成される。
本発明に特有と考えられる新規性のある特徴は、添付の請求項に記載されている。しかし、本発明自体、ならびに本発明の好ましい使用の形態、さらなる目的、および利点は、添付の図面と併せて読まれるときに、1つまたは複数の例示的な実施形態の以下の詳細な説明を参照することによって最も深く理解されるであろう。
本発明の1つまたは複数の実施形態による分散型データ処理システムを示す例示的なブロック図である。 本発明の1つまたは複数の実施形態によるサーバ装置の例示的なブロック図である。 本発明の1つまたは複数の実施形態によるクライアント装置の例示的なブロック図である。 本発明の1つまたは複数の実施形態によるプロセス、構造、およびコンピュータ・プログラム製品の概要を示す例示的なブロック図である。 本発明の1つまたは複数の実施形態による構成の態様のより詳細な図を示す別の例示的なブロック図である。 本発明の1つまたは複数の実施形態による例示的なプロセスの態様を示す流れ図である。
概して、ラック式サーバで実行される高性能クラスタは、複数のアダプタのための複数の利用可能なI/O拡張スロットを有する。しかし、ブレード・サーバまたはIBM PureFlex ITEなどの比較的小型のフォーム・ファクタのより強力なサーバは、より限られた数のI/O拡張スロットを有する傾向がある。(PureFlexは、IBMの商標である) 場合によっては、2つのI/O拡張スロットのみが、3つ以上のプロトコルをサポートするために利用可能である。この理由と、さらにはコンバージド・ネットワーク(converged network)の登場とにより、複数のプロトコルが、I/Oデバイスおよびスイッチの単一の組によって処理されることがある。
今日、最もよく使われているプロトコルは、イーサネット(R)であり、イーサネット(R)では、TCPが既にネイティブで動作する。RDMAは、RDMAオーバ・コンバージド・エンハンスト・イーサネット(R)(RoCEE:RDMA over Converged Enhanced Ethernet)モードで動作することができ、ファイバ・チャネルは、ファイバ・チャネル・オーバ・イーサネット(R)(Fibre Channel over Ethernet)で動作することができる。これらのファブリックのそれぞれは、異なる可能性がある独自の特性および能力を有する。
2つのI/Oアダプタによって3つの異なるプロトコルを実行するためには、どのプロトコルが組み合わされるのかについての選択がなされなければならない。例えば、ファイバ・チャネルが第1のアダプタのために選択され、イーサネット(R)が第2のアダプタのために選択される場合、第2のアダプタによってRDMAオーバ・イーサネット(R)(RDMA over Ethernet)を実行することが可能である。しかし、同じアダプタでのRDMAおよびTCPトラフィックのこの統合は、有用であるが、制限もある。
コンピュータ・システム400の単一のネットワークI/Oアダプタ410が、本発明の1つまたは複数の実施形態にしたがって、図4で高レベルの観点で示される。アダプタ410は、スイッチsw_eth0およびsw_eth1に接続される2つのイーサネット(R)・ポートport_eth0およびport_eth1に関する構成414を有する。つまり、スイッチsw_eth0およびsw_eth1が、構成414を介してそれらのポートport_eth0およびport_eth1にネットワーク420を接続し、ポートport_eth0およびport_eth1は、バス(図示せず)を介してCPU440などの1つまたは複数の中央演算処理装置への経路を提供する。共通のファブリックは、イーサネット(R)であり、TCPおよびRDMAトラフィックが単一のアダプタ410で集約される。ポートeth0は、ネットワーク420を介したリモート・デバイス450などのリモート・デバイスへの、およびリモート・デバイスからの分離されたTCP通信のための初期の通常の動作のモードを提供し、一方、ポートport_eth1は、分離されたRDMA通信のための初期の通常の動作のモード、すなわち、RDMAオーバ・コンバージド・エンハンスト・イーサネット(R)(RoCEE)を提供する。(代替的な実施形態においては、TCPトラフィックが、常に、ポートeth0とeth1との両方で実行される。しかし、これは、eth0がTCPで最高速度で動作し得るが、eth1はTCPとRDMAとの両方のトラフィックを有するので、偏った性能をもたらす可能性がある。)
本発明の実施形態において、構成414は、1つまたは複数のプロセッサと、メモリと、1つまたは複数のプロセッサに、概して1つまたは複数のバスを含む通信のための相互接続回路を介して本明細書において説明されるようにトラフィックを導かせるための命令とを含む。実施形態において、構成414は、これらの機能の一部またはすべてを実行するための1つまたは複数の特定用途向け集積回路を含む可能性がある。
システム400は、CPU440と、命令のカーネル432を含むオペレーティング・システム436の命令をロードされたメモリ430とを含む。カーネル432は、CPU440に標準的なTCPおよびボンディング機能をそれぞれ実行させるように構成され、動作可能な命令のTCPモジュール433およびボンディング・モジュール435を含む。メモリ430は、データベースまたはその他のアプリケーションなどのアプリケーション438の命令もロードされる。例えば、アプリケーション438は、クラスタ動作に好適な分散型エンタープライズ・データベース・アプリケーション、例えば、IBMの商標であるdB2である可能性がある。
実施形態においては、アプリケーション438は、RDMA式の通信とTCP式の通信との両方を同時に使用し、CPU440に標準的なRDMA機能を実行させるように構成され、動作可能な命令を有するRDMAモジュール439を含む。その他の実施形態においては、単一のアプリケーション438の別々のインスタンス、またはそうでなければ異なる種類の別々のアプリケーションが、それぞれ、単一のネットワーク通信プロトコルを使用する可能性がある。いずれにせよ、システムは、2つの異なるネットワーク通信プロトコル、すなわち、例示的な場合ではRDMAおよびTCPを用いる同時通信のために構成される。
メモリ430は、ネットワーク・アダプタ410に関する通信構成パラメータを記憶するための、RDMAモジュール439およびTCPモジュール433を含むネットワーク通信モジュールに関連する不揮発性メモリ434を含む。モジュール439は、アプリケーション438に含まれる命令の組として示されており、一方、モジュール433および435は、オペレーティング・システム436の命令のカーネル432の命令に含まれる命令の組として示される。しかし、異なる実施形態においては、命令が互いに異なるように関連付けられるが、実質的に同じ機能をやはり提供し得ることを理解されたい。同様に、構成414およびメモリ434の位置は、代替的な実施形態においては変わり得る。
通信プロトコル、VLANおよびボンディング・デバイス、ならびにIPアドレス構成などに関する本明細書において説明される初期化、構成、またはプログラミングは、ポート/スイッチに関連するネットワーク・アダプタの構成414の不揮発性メモリ、ならびにネットワーク通信モジュールおよびアプリケーションに関連するメモリ434に構成パラメータを記憶することを含む。初期化は、ネットワーク管理者が(ローカルまたはリモートで)ポートeth0およびeth1との通信を開始することによって実行される可能性があり、通信を開始することは、OS436のユーザ・インターフェースを介して、またはネットワーク管理アプリケーションを介して手動で行われる可能性があり、例えば、ポートeth0およびeth1は、ポートに関する構成414のメモリ、ならびにモジュール433および439に関するメモリ434に構成データを確立するためにネットワーク420を介してリモートのアプリケーションから信号を受信する。
理想的な環境においては、同じファブリックを通るすべてのプロトコルは、同様の共有された特質を有する。しかし、TCPが、損失のあるプロトコルであり、イーサ・チャネル・ボンディングをサポートする一方、RDMAは、損失のない通信を必要とし、ボンディングをサポートしない。これに対処するために、本発明の実施形態によれば、図5に示されるように、ポートeth0およびeth1は、仮想デバイスを含むように初期化され、eth0は、仮想ローカル・エリア・ネットワーク・デバイスVLAN710(eth0.710として示される)および4033(eth0.4033として示される)を生成するように構成され、同様に、eth1も、仮想ローカル・エリア・ネットワーク・デバイスVLAN710(eth1.710として示される)および4033(eth1.4033として示される)を生成するように構成される。
示された場合では、IPアドレス172.23.7.101が、その後、RDMAトラフィックのためにVLANデバイスeth1.4033に対して初期化され、したがって、リモート・デバイス450は、172.23.7.101のIPアドレスおよびeth1.4033VLANタグ・デバイスを用いてポートport_eth1を介してRDMAトラフィックを送受信し得る。(代替的に、示された場合では、リモート・デバイス450は、VLAN id4033でパケットをタグ付けし、それらのパケットをネットワーク420で送信する可能性があり、コンピュータ・システム400は、それらのパケットをeth1.4033VLANデバイスで受信する。) TCPに関して、示されるように、2つの定義されたVLAN710でポートport_eth0とport_eth1との両方に渡るボンドが初期化され、つまり、bond0−>[eth0.710,eth1.710]である。示された場合では、IPアドレス10.21.1.101が、TCPトラフィックのためにbond0に対して初期化され、したがって、リモート・デバイス450は、10.21.1.101のIPアドレスおよびeth0.710VLANタグまたはeth1.710VLANタグを用いてポートport_eth0またはport_eth1を介してTCPトラフィックを送受信し得る。
VLANデバイスeth0.710およびeth1.710がそれぞれのポートport_eth0およびport_eth1で生成され、次いで、VLANデバイスeth0.710およびeth1.710がボンディングされる(bond0)上述の構成は、ポートをボンディングし、それから、ボンド・デバイス(bond device)でVLANデバイスを生成することとは異なることを理解されたい。2つのポートが直接ボンディングされ、そのことが、TCPの負荷分散およびフェイルオーバに関する利点をもたらす場合、現在知られているRDMA技術によれば、どちらのポートも、RDMAプロトコル通信のために使用され得ない。したがって、直接ボンディングは、さらなるネットワーク・アダプタがRDMA通信に対応することを必要とする結果となる傾向がある。図5の示された実施形態のように、ポートport_eth0およびport_eth1でVLANデバイスeth0.710およびeth1.710を生成し、ポートの代わりにVLANデバイスをボンディングすることによって、これは、RDMAプロトコル通信のためにポートport_eth0およびport_eth1を使用することを可能にし、さらに、TCP通信のためにそれぞれのポートのボンディングされたVLANデバイスeth0.710およびeth1.710を使用することを可能にする。
つまり、本発明の1つまたは複数の実施形態によれば、RDMA命令モジュール439は、TCP通信のために論理的にボンディングされた物理ポートでRDMAネットワーク通信プロトコルによって通信するための命令を提供しない。結果として、そのような実施形態に関しては、ネットワーク・アダプタ410は、直接論理的にボンディングされる物理ポートでRDMAネットワーク通信プロトコルによって通信することができない。しかし、ネットワーク・アダプタのVLANデバイスeth0.710およびeth1.710が仮想デバイスbond0として論理的にボンディングされるので、これは、RDMAおよびTCPネットワーク通信プロトコルによる同時通信を可能にする。
さらに詳しく説明すると、物理ポートport_eth0およびport_eth1自体はbond0を含む経路でアクセス可能であるが、ポートは、ポートとボンドとの間に置かれたVLANデバイスeth0.710およびeth1.710によってボンドから分離されているので、依然としてRDMAトラフィックを有する可能性がある。オペレーティング・システム436は、VLAN仮想デバイスを別々のものと見る。実施形態において、図5のRDMAトラフィックは、VLANデバイスeth0.710およびVLANデバイスeth1.710で定義されたTCPボンドの一部ではない別々の仮想デバイス(VLANデバイスeth1.4033)を通っている。
各ポートport_eth0およびport_eth1は、上述のように、別々の物理的スイッチsw_eth0およびeth1に接続される。最低限、リモート・デバイス450などの接続するホストは、その接続するホストがRDMAによって通信するポートに関連する1つのスイッチ、例えば、上述され、図5に示された例示的な場合ではport_eth1およびsw_eth1にのみ接続するように構成される必要がある。したがって、上述のようにVLANデバイスeth1.4033に関してアダプタ410で初期化された少なくともRDMAのIPアドレス172.23.7.101が、接続するホスト・リモート・デバイス450の構成メモリ452で初期化される。しかし、接続するホスト・リモート・デバイス450が(VLANデバイスeth0.4033およびeth1.4033を介して)port_eth0とport_eth1との両方に接続するように構成される、本発明の実施形態に関するRDMAフェイルオーバの特徴またはそうでなければ2RDMAポート通信モードで有利に動作することが、より理想的である可能性がある。どちらの場合も、IPアドレス172.23.6.101が、RDMAに関して、VLANデバイスeth0.4033、および接続するホスト・リモート・デバイス450の構成メモリ452に対して直接さらに初期化され、したがって、識別子4033のVLANタグを有するRDMAトラフィックもport_eth0を通る可能性がある。2ポート通信モードに関しては、RDMA VLAN eth0.4033とeth1.4033との両方が、RDMAモジュール439によってアクティブであるように構成される。フェイルオーバ・モードに関しては、モジュール439は、VLANデバイスeth1.4033をアクティブであるように構成し、VLANデバイスeth0.4033をフェイルオーバのバックアップであるように構成する。
要約すると、中断のないフェイルオーバのために、sw_eth0またはport_eth0が故障した場合に、依然として動作しているsw_eth1およびport_eth1を介してホストがシステム400に到達し続けることができ、同様に、sw_eth1またはport_eth1が故障した場合に、依然として動作しているsw_eth0およびport_eth0を介してホストがシステム400に到達し続けることができるように、RDMAトラフィックかTCPトラフィックかのどちらかをシステム400に送信する(例えば、図4のデバイス450のような)リモート・ホストが、port_eth0に関する物理的スイッチsw_eth0とport_eth1に関する物理的スイッチsw_eth1との両方に接続するように構成される。
さらにフェイルオーバに関して、TCPフェイルオーバとRDMAフェイルオーバとの両方が、本発明の1つまたは複数の実施形態によって容易にされる。アクティブ−バックアップ・ボンディングは、TCP通信に対しては、TCPトラフィックとRDMAトラフィックとの両方を一貫して早く流れ続けさせるための方法として提供される可能性があり、つまり、両方のVLANデバイスがTCPトラフィックを同時に許可するアクティブ−アクティブ・ボンディングではない可能性がある。アクティブ−バックアップ・ボンディングによるTCPフェイルオーバに関しては、TCPモジュール433がport_eth0またはsw_eth0の故障を検出すると、それに応じて、モジュール435が、トラフィックが途切れることなく継続するようにTCPのbond0のトラフィックをport_eth1に自動的に切り替え、これは、標準的なボンディング・モジュールのサポートされる特徴である。同様に、port_eth0およびsw_eth0が再び利用可能であることを検出することに応じて、モジュール433は、TCPトラフィックを再び自動的に切り替えてport_eth0に戻す。RDMAフェイルオーバに関しては、本発明の1つまたは複数の実施形態によれば、アプリケーション438が、RDMAモジュール439をやはり提供され、モジュール439は、CPU440に自動フェイルオーバ機能を実行されるように動作可能な命令で構成される。(通常のカーネルは、RDMAに関してこの種のフェイルオーバを自動的に処理することができない。) RDMAモジュール439がeth1ポートまたはスイッチの故障を検出することに応じて、モジュール439は、RDMAトラフィックをport_eth1からport_eth0に自動的に切り替える。同様に、RDMAモジュール439は、eth1のリンクが再確立されることを検出するとき、自動的に、RDMA接続を再構成し、port_eth1でのRDMA動作を再開する。
TCPおよびRDMAが両方とも同じポートで同時に実行される場合、TCPとRDMAとの両方に関して性能が低下する可能性があることを理解されたい。TCPアクティブ−バックアップ・モードに関して上で説明されたように、VLANデバイスを使用し、分離されたTCPおよびRDMAトラフィックが別々のポートを流れるようにシステム400を構成することによって、概して、性能は、TCPとRDMAとの両方を同じポートで同時に実行する(すなわち、アクティブ−アクティブ・モード)のと比較して高められる。アクティブ−バックアップ・モードのこの専用ポート構成は、本発明の実施形態によれば、TCPの割り振られたVLANデバイスeth0.710およびeth1.710のボンディングによってTCPがポートport_eth0またはport_eth1のどちらか一方で実行され得るので、そのような分離に通常つきまとう故障モードのリスクの欠点なしに、本明細書において説明されるように実現される。このボンディング構成の別の利点は、RDMAトラフィックが特定の状況で少なくなる傾向がある場合に、構成が、2つのそれぞれのポートのボンディングされたTCPの割り振られたVLANデバイスでアクティブ−アクティブ・モードで実行されるようにTCPを構成することを許し、それによって、2倍の帯域幅およびスループットを実現するが、TCPおよびRDMAプロトコルのそれぞれのためのネットワーク・アダプタを持つことがないことである。
ここで図6を参照すると、本発明の1つまたは複数の実施形態にしたがって実行されるプロセスを示す流れ図が、示されている。
一態様において、プロセスは、ネットワーク・アダプタのそれぞれの第1および第2の物理ポートで第1および第2の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスを構成すること(604)を含む。これは、管理者がコンピュータ・システムのオペレーティング・システムまたは何らかのその他のアプリケーションの管理者インターフェースを使用することによって行われ得る。それは、アプリケーション・プログラミング・インターフェース(「API」)を用いて構成プログラムによって自動的に行われ得る。管理者は、オペレーティング・システムまたは別々のネットワーク通信アプリケーションの命令によって提供される機能に、管理者インターフェースを介して直接か、または構成プログラムおよびAPIを介して間接的にかのどちらかでアクセスして、ポートを指し示す(つまり、ポートに関連する仮想LANデバイスに関するアドレスとして働く)VLANタグを有するデータ構造を生成し、システムの不揮発性メモリに記憶する。データ構造を生成し、物理ポートに関連する物理メモリに記憶するこのプロセスは、「初期化」、「構成」、「プログラミング」などと呼ばれる可能性がある。
別の態様において、プロセスは、第2のVLANデバイスを、論理的にボンディングされた仮想デバイスとして構成すること(608)を含む。別の態様において、ボンディング・モジュールは、ボンディングされた仮想デバイスにアクティブ−アクティブまたはそうでなければアクティブ−バックアップ通信モードを提供するようにプログラミングされる(610)。これは、ボンディング命令モジュールの命令によって提供される機能によって、今し方説明された方法のうちの1つで行われる可能性があり、例えば、2つのVLANタグを指し示すボンド・タグを有するデータ構造が生成され、システムの不揮発性メモリに記憶される。ボンディング機能は、オペレーティング・システムの一部として含まれる命令モジュールによって提供される可能性があり、または別々にインストールされた命令モジュールである可能性がある。
別の態様において、プロセスは、それぞれの第1のおよび第2のネットワーク・アドレスで第1のVLANデバイスを構成し、第3のネットワーク・アドレスで、ボンディングされた仮想デバイスを構成し(612)、その結果、VLANデバイスおよびボンディングされた仮想デバイスに関連する記憶されたデータ構造をもたらすことを含み、これは、本明細書において上で説明されたようにして行われ得る。
別の態様において、プロセスは、第1のVLANデバイスを介して第1のネットワーク通信プロトコルによってネットワーク通信を実行するようにコンピュータ・システムの第1のアプリケーションをプログラミングし、第2のVLANデバイスおよび論理的にボンディングされた仮想デバイスを介して第2のネットワーク通信プロトコルによってネットワーク通信を実行するようにコンピュータ・システムの第1または第2のアプリケーションをプログラミングすること(616)(これは第1のアプリケーションと第2のアプリケーションとの両方をプログラミングすることを含む可能性がある)を含む。第1のネットワーク通信プロトコルは、例えば、リモート・ダイレクト・メモリ・アクセス(「RDMA」)プロトコルである可能性があり、第2のネットワーク通信プロトコルは、例えば、伝送制御プロトコル(「TCP」)プロトコルである可能性がある。
1つまたは複数のアプリケーションは、例えば、DB2 PureScale、Websphere、IBM Infosphere BigInsights、IBM Infosphere Streams、IBM Infosphere DataWarehouse、IBM PureData Systems(これらのすべてはIBMの商標である)などのデータベース・アプリケーションを含む可能性があり、または他者のアプリケーションを含む可能性がある。このプログラミングすることは、1つまたは複数のアプリケーションの命令によって提供される機能によって、上で説明された方法のうちの1つで行われる可能性があり、例えば、各アプリケーションがネットワークで通信するために使用する通信プロトコルモジュールにアプリケーションを関連付け(つまり、アプリケーションを向け)、さらに各アプリケーションを通信のために使用すべき1つまたは複数のIPアドレスに向けるデータ構造が生成され、システムの不揮発性メモリに記憶される。よって、第1のアプリケーションは、第1のネットワーク通信プロトコルに関する第1の命令モジュールを実行することによって第1の通信を行うようにプログラミングされ、第1のアプリケーションまたは第2のアプリケーションは、第2のネットワーク通信プロトコルに関する第2の命令モジュールを実行することによって第2の通信を行うようにプログラミングされる。したがって、第1のVLANデバイスのうちの少なくとも1つが、第1のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、論理的にボンディングされた仮想デバイスが、第2のネットワーク通信プロトコルによるネットワーク通信を提供する。
諸態様において、プロセスは、コンピュータ・システムのネットワーク・アダプタの第1の物理ポートの第1のVLANデバイスによって第1の通信を実行することを含め、第1のネットワーク通信プロトコルによってネットワークへの、およびネットワークからの第1の通信を実際に実行すること(620)と、第2のネットワーク通信プロトコルによってネットワークへの、およびネットワークからの第2の通信を実際に実行すること(624)とを含む。第2の通信は、論理的にボンディングされた仮想デバイス、および第2の物理ポートの第2のVLANデバイスを介して第2の物理ポートで行われ、第1の通信と同時である。
第1の通信を実行すること(620)は、第1のネットワーク通信プロトコルに関する命令モジュールの命令を実行することを含み得ることを理解されたい。1つまたは複数の実施形態によれば、第1のネットワーク通信命令モジュールは、第1のネットワーク通信プロトコルによって論理的にボンディングされた物理ポートで通信するための命令を提供せず、したがって、ネットワーク・アダプタは、論理的にボンディングされた物理ポートで第1のネットワーク通信プロトコルによって通信することができない。それでもやはり、ネットワーク・アダプタのVLANデバイスが仮想デバイスとして論理的にボンディングされる本明細書において説明される構成は、実行すること(620および624)をそれらのそれぞれの第1のおよび第2のネットワーク通信プロトコルによって同時に可能にする。
システムがアクティブ−アクティブ・ボンディングを提供するようにプログラミングされたか、またはアクティブ−バックアップ・ボンディングを提供するようにプログラミングされたかに応じて、本明細書において説明されたように、第2の通信は、両方の第2のVLANデバイスが同時に通信するように、論理的にボンディングされた仮想デバイスを介して第1の物理ポートと第2の物理ポートとの両方で実行される(630)(アクティブ−アクティブ・モード)か、またはそうでなければ、第2のVLANデバイスのうちの1つまたはその関連する物理ポートとの通信が失敗するときに第2のVLANデバイスのうちの他方が通信を引き継ぐように、一度に第2のVLANデバイスのうちの1つだけで実行される(634)(アクティブ−バックアップ・モード)。
ここで図1を参照すると、本発明が実装され得るネットワーク・データ処理システム100の図式的表現が、示されている。ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内で一緒に接続されるさまざまなデバイスおよびコンピュータの間の通信リンクを提供するために使用される媒体であるネットワーク102を含む。ネットワーク102は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
示された例においては、サーバ104が、ストレージ・ユニット106とともにネットワーク102に接続される。加えて、クライアント108、110、および112が、ネットワーク102に接続される。これらのクライアント108、110、および112は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータである可能性がある。示された例においては、サーバ104が、ブート・ファイル、オペレーティング・システム・イメージ、およびプログラムなどのデータをクライアント108、110、および112に提供する。クライアント108、110、および112は、サーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示されていないさらなるサーバ、クライアント、およびその他のデバイスを含み得る。示された例において、ネットワーク・データ処理システム100は、インターネットであり、ネットワーク102は、プロトコルのTCP/IPスイートを用いて互いに通信するネットワークおよびゲートウェイの全世界的な集合を表す。
図2を参照すると、図1のサーバ104などのサーバとして実装され得るデータ処理システムのブロック図が、本発明の一実施形態にしたがって示されている。データ処理システム200は、システム・バス206に接続された複数のプロセッサ202および204を含む対称型マルチプロセッサ(SMP)システムである可能性がある。あるいは、単一プロセッサ・システムが使用される可能性がある。さらにシステム・バス206に接続されているのは、ローカル・メモリ209へのインターフェースを提供するメモリ・コントローラ/キャッシュ208である。I/Oバス・ブリッジ210が、システム・バス206に接続され、I/Oバス212へのインターフェースを提供する。メモリ・コントローラ/キャッシュ208およびI/Oバス・ブリッジ210は、示されるように統合される可能性がある。
I/Oバス212に接続された周辺装置相互接続(PCI:peripheralcomponent interconnect)バス・ブリッジ214は、PCIローカル・バス216へのインターフェースを提供する。いくつかのモデムが、PCIローカル・バス216に接続される可能性がある。典型的なPCIバスの実装は、4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。図1のネットワーク・コンピュータ108、110、および112への通信リンクは、アドイン・ボードを通じてPCIローカル・バス216に接続されたモデム218およびネットワーク・アダプタ220を通じて提供され得る。さらなるPCIバス・ブリッジ222および224は、さらなるモデムまたはネットワーク・アダプタがサポートされ得るさらなるPCIローカル・バス226および228のためのインターフェースを提供する。このようにして、データ処理システム200は、複数のネットワーク・コンピュータへの接続を可能にする。メモリ・マップト・グラフィックス・アダプタ230およびハード・ディスク232も、示されるように、直接的かまたは間接的かのどちらかでI/Oバス212に接続され得る。
当業者は、図2に示されたハードウェアが変わり得ることを理解するであろう。例えば、光ディスク・ドライブなどのその他の周辺機器も、示されたハードウェアに加えて、または示されたハードウェアの代わりに使用される可能性がある。示された例は、本発明に関してアーキテクチャの限定を示唆するように意図されていない。
図2に示されたデータ処理システムは、例えば、Advanced InteractiveExecutive(AIX)オペレーティング・システムまたはLINUXオペレーティング・システムを実行する、New York、ArmonkのIBMの製品であるIBM e-Server pSeriesシステムである可能性がある。
サーバ104は、本発明の実施形態の態様に関するユーザ・インタラクションを可能にするために、ユーザによってアクセス可能な好適なウェブサイトまたはその他のインターネットに基づくグラフィカル・ユーザ・インターフェースを提供し得る。1つの実施形態においては、Netscapeウェブ・サーバ、IBM Websphere Internetツール・スイート、IBM DB2 for Linux, Unix(R) and Windows(R)(「IBM DB2 for LUW」とも呼ばれる)プラットフォームおよびSybaseデータベース・プラットフォームが、Sun Solarisオペレーティング・システム・プラットフォームと連携して使用される。加えて、JBDCドライバ、IBMコネクション・プーリング、およびIBM MQシリーズの接続メソッドなどのコンポーネントが、いくつかのソースへのデータ・アクセスを提供するために使用され得る。用語ウェブページは、本明細書において使用されるとき、ユーザとインタラクションするために使用される可能性があるドキュメントおよびプログラムの種類を限定するように意図されていない。例えば、典型的なウェブサイトは、標準的なHTMLドキュメントに加えて、さまざまな形態、Javaアプレット(R)、JavaScript(R)、アクティブ・サーバ・ページ(ASP)、Javaサーバ・ページ(JSP)(R)、共通ゲートウェイ・インターフェース・スクリプト(CGI)、拡張可能マークアップ言語(XML)、ダイナミックHTML、カスケーディング・スタイル・シート(CSS)、ヘルパー・プログラム、プラグインなどを含む可能性がある。
ここで図3を参照すると、本発明の一実施形態の態様が実装され得るデータ処理システムを示すブロック図が、示されている。データ処理システム300は、クライアント・コンピュータの一例である。データ処理システム300は、周辺装置相互接続(PCI)ローカル・バス・アーキテクチャを採用する。示された例はPCIバスを採用するが、アセラレーテッド・グラフィックス・ポート(AGP)および業界標準アーキテクチャ(ISA)などのその他のバス・アーキテクチャが、使用される可能性がある。プロセッサ302および主メモリ304は、PCIブリッジ308によってPCIローカル・バス306に接続される。PCIブリッジ308は、プロセッサ302のための統合されたメモリ・コントローラおよびキャッシュ・メモリを含む可能性もある。PCIローカル・バス306へのさらなる接続が、直接的なコンポーネントの相互接続またはアドイン・ボードを通じて行われる可能性がある。示された例においては、ローカル・エリア・ネットワーク(LAN)アダプタ310、小型コンピュータ・システム・インターフェース(SCSI)ホスト・バス・アダプタ312、および拡張バス・インターフェース314が、直接的なコンポーネントの接続によってPCIローカル・バス306に接続される。対照的に、オーディオ・アダプタ316、グラフィックス・アダプタ318、およびオーディオ/ビデオ・アダプタ319は、拡張スロットに挿入されたアドイン・ボードによってPCIローカル・バス306に接続される。
拡張バス・インターフェース314は、キーボードおよびマウス・アダプタ320、モデム322、および追加のメモリ324に接続を提供する。SCSIホスト・バス・アダプタ312は、ハード・ディスク・ドライブ326、テープ・ドライブ328、およびCD−ROMドライブ330に接続を提供する。典型的なPCIローカル・バスの実装は、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。
オペレーティング・システムが、プロセッサ302で実行され、図3のデータ処理システム300内のさまざまなコンポーネントを調整し、制御するために使用される。オペレーティング・システムは、マイクロソフトから入手可能なWindows XP(R)などの市販のオペレーティング・システムである可能性がある。Java(R)などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと連携して動作し、データ処理システム300で実行されるJava(R)プログラムまたはその他のプログラムからオペレーティング・システムへの呼び出しを行う可能性がある。「Java(R)」は、サン・マイクロシステムズの商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、およびプログラムに関する命令は、ハード・ディスク・ドライブ326などのストレージ・デバイスに置かれ、プロセッサ302による実行のために主メモリ304にロードされ得る。
当業者は、図3のハードウェアが実装に応じて変わり得ることを理解するであろう。フラッシュROM(もしくは等価な不揮発性メモリ)または光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺機器が、図3に示されたハードウェアに加えて、またはそれらのハードウェアの代わりに使用される可能性がある。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用され得る。
別の例として、データ処理システム300は、何らかの種類のネットワーク通信インターフェースを含むか否かにかかわらず、何らかの種類のネットワーク通信インターフェースに頼ることなくブート可能であるように構成されたスタンドアロン・システムである可能性がある。さらなる例として、データ処理システム300は、オペレーティング・システムのファイルまたはユーザによって生成されたデータあるいはその両方を記憶するための不揮発性メモリを提供するためにROMまたはフラッシュROMあるいはその両方を用いて構成される携帯情報端末(PDA)デバイスである可能性がある。
図3の示された例および上述の例は、アーキテクチャの制限を示唆するように意図されていない。例えば、データ処理システム300は、PDAだけでなくノートブック・コンピュータまたはハンド・ヘルド・コンピュータである可能性もある。さらに、データ処理システム300は、キオスクまたはウェブ・アプライアンスである可能性もある。さらに、本発明は、コンピュータ・システムによって使用される任意のデータ・ストレージ媒体(すなわち、フロッピー(R)・ディスク、コンパクト・ディスク、ハード・ディスク、テープ、ROM、RAMなど)に存在する可能性がある。(用語「コンピュータ」、「システム」、「コンピュータ・システム」、および「データ処理システム」は、本明細書においては交換可能なように使用される。)
当業者に理解されるように、本発明の態様は、システム、方法、またはプログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化する1つまたは複数のコンピュータ可読ストレージ媒体で具現化されたプログラム製品の形態をとる可能性がある。(しかし、1つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。)
コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、もしくはデバイス、またはこれらの任意の好適な組み合わせである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例(非網羅的なリスト)は、以下、すなわち、1つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組み合わせを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。コンピュータ可読信号媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはこれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびプログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、(1つまたは複数の)規定された論理的な機能を実装するための1つまたは複数の実行可能なプログラム命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された2つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。
例えば、さまざまな種類のプロセッサによる実行のためにソフトウェアで実装されたモジュールは、例えば、オブジェクト、プロシージャ、または関数として編成され得るコンピュータ命令の1つまたは複数の物理的または論理的なブロックを含む可能性がある。それでもやはり、特定されたモジュールの実行ファイルは、物理的にまとめて配置される必要はないが、論理的に一緒に結びつけられるときにモジュールを構成し、モジュールの上述の目的を達成する、異なる場所に記憶された異なる命令を含み得る。さらに言えば、実行可能なコードのモジュールは、単一の命令または多数の命令である可能性があり、いくつかの異なるコード・セグメントに、異なるプログラムの間に、およびいくつかのメモリ・デバイスに渡って分散される可能性さえある。同様に、動作データが、本明細書において特定され、モジュール内に示される可能性があり、任意の好適な形態で具現化され、任意の好適な種類のデータ構造内に編成される可能性がある。動作データは、単一のデータ・セットとして集められる可能性があり、または異なるストレージ・デバイスを含む異なる場所に分散される可能性があり、少なくとも部分的に、単にシステムまたはネットワーク上の電子的な信号として存在する可能性がある。
コンピュータまたはその他のプログラミング可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで規定された機能/動作を実施するための手段をもたらすように、これらのプログラム命令は、汎用コンピュータ、専用コンピュータ、またはその他のプログラミング可能なデータ処理装置のプロセッサに与えられてマシンを作り出す可能性がある。
ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組み合わせとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組み合わせによって実装され得ることにも留意されたい。例えば、モジュールは、カスタムVLSI回路またはゲート・アレイ、論理チップ、トランジスタ、またはその他のディスクリート部品などの既製の半導体を含むハードウェア回路として実装される可能性がある。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイスなどのプログラミング可能なハードウェア・デバイスで実装される可能性もある。
本発明の態様の動作を実行するためのコンピュータ・プログラム・コード、すなわち命令は、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータもしくはサーバ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行われ得る。
コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで規定された機能/動作を実施する命令を含む製品をもたらすように、これらのプログラム命令は、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、その他のプログラミング可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させるように指示する可能性もある。
コンピュータまたはその他のプログラミング可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで規定された機能/動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために、プログラム命令は、コンピュータ、その他のプログラミング可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラミング可能な装置、またはその他のデバイスで一連の動作のステップが実行されるようにする可能性もある。
1つまたは複数のデータベースが、さまざまな実装に関するデータを記憶し、そのデータへのアクセスを提供するためにホストに含まれる可能性がある。当業者は、セキュリティ上の理由で、本発明の任意のデータベース、システム、またはコンポーネントが、単一の場所または複数の場所のデータベースまたはコンポーネントの任意の組み合わせを含む可能性があり、各データベースまたはシステムが、ファイアウォール、アクセス・コード、符号化、復号などのさまざまな好適なセキュリティの特徴のいずれかを含むことも理解するであろう。データベースは、リレーショナル、階層型、オブジェクト指向などの任意の種類のデータベースである可能性がある。データベースを実装するために使用され得るよくあるデータベース製品は、IBM(NY、White Plains)によるDB2、オラクル(CA、Redwood Shores)から入手可能なデータベース製品のいずれか、マイクロソフト(Washington、Redmond)によるMicrosoft Access、または任意のその他のデータベース製品を含む。データベースは、データ・テーブルまたはルックアップ・テーブルを含む任意の好適な方法で編成される可能性がある。
特定のデータの関連付けは、当技術分野で知られており、実施される任意のデータ関連付け技術によって実現され得る。例えば、関連付けは、手動かまたは自動かのどちらかで実現される可能性がある。自動関連付け技術は、例えば、データベースの検索、データベースの合併、GREP、AGREP、SQLなどを含む可能性がある。関連付けのステップは、例えば、製造業者および小売業者のデータ・テーブルのそれぞれのキー・フィールドを用いて、データベースの合併機能によって実現される可能性がある。キー・フィールドは、キー・フィールドによって定義されるオブジェクトの高レベルのクラスにしたがってデータベースを分割する。例えば、特定のクラスが、第1のデータ・テーブルと第2のデータ・テーブルとの両方でキー・フィールドとして指定される可能性があり、そのとき、2つのデータ・テーブルは、キー・フィールドのクラス・データに基づいて合併され得る。この実施形態においては、合併されるデータ・テーブルのそれぞれのキー・フィールドに対応するデータは、同じであることが好ましい。しかし、キー・フィールドに似ているが同一ではないデータを有するデータ・テーブルも、例えば、AGREPを使用することによって合併され得る。
本明細書全体を通じて、「1つの実施形態(one embodiment)」、「一実施形態(an embodiment)」、または同様の言い回しについての表現は、その実施形態に関連して説明された特定の特徴、構造、または特質が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通じて、語句「1つの実施形態において(in one embodiment)」、「一実施形態において(in anembodiment)」、および同様の言い回しの記載は、すべて同じ実施形態に言及する可能性があるが、必ずそうとは限らない。さらに、本発明の説明された機能、構造、または特質は、1つまたは複数の実施形態において任意の好適な方法で組み合わされる可能性がある。それに対応して、たとえ特徴が特定の組み合わせで働くと最初に主張されているとしても、主張された組み合わせの1つまたは複数の特徴は、場合によってはその組み合わせから削除される可能性があり、主張された組み合わせは、部分的組み合わせ、または部分的組み合わせの変形を対象とする可能性がある。
本明細書の説明においては、本発明の実施形態を完全に理解させるために、プログラミング、ソフトウェア・モジュール、ユーザの選択、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなどの例などの多くの特定の詳細が、与えられている。しかし、当業者は、本発明が特定の詳細のうちの1つまたは複数なしに、またはその他の方法、コンポーネント、素材などと共に実施され得ることを認識するであろう。その他の場合、よく知られている構造、素材、または動作は、本発明の態様を曖昧にすることを避けるために詳細に示されないかまたは説明されない。
利益、利点、および問題に対する解決策が、特定の実施形態に関連して上で説明された。しかし、利益、利点、問題に対する解決策、および任意の利益、利点、または問題に対する解決策をもたらすかもしくはよりはっきりさせる可能性のある(1つもしくは複数の)任意の要素は、請求項のいずれかまたはすべての重要な、必要とされる、または必須の特徴または要素であると解釈されるべきでない。
本開示を読んだ当業者は、変形および変更が本発明の範囲を逸脱することなく実施形態に対してなされ得ることを認識するであろう。本明細書において示され、説明された特定の実装は、本発明および本発明の最良の形態を例示しており、そうではなく本発明の範囲を限定するようには全く意図されていないことを理解されたい。その他の変更形態は、添付の特許請求の範囲内にある。
本明細書は多くの詳細を含むが、これらは、本発明の範囲、または特許請求され得るものの範囲に対する限定と解釈されるべきではなく、むしろ、本発明の特定の実装に特有の特徴の説明と解釈されるべきである。本明細書の見出しは、本発明、本発明の実施形態、または見出しの下で開示されたその他の事柄を限定するように意図されていない。
本明細書において使用されるとき、用語「含む(comprises)」、「含んでいる(comprising)」、またはこれらの任意のその他の変形は、要素のリストを含むプロセス、方法、製品、または装置がそれらの要素を含むだけでなく、明示的に挙げられていないか、またはそのようなプロセス、方法、製品、または装置に固有でないその他の要素を含む可能性もあるように、非排他的包含を含むように意図される。さらに、本明細書において説明された要素は、必須または重要であると明示的に説明されていない限り、本発明の実施のための必要とされない。
本明細書で使用された用語は、特定の実施形態を説明することのみを目的としており、本発明を限定するように意図されていない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈がそうでないことをはっきりと示さない限り複数形も含むように意図される。用語「含む(comprises)」または「含んでいる(comprising)」あるいはその両方は、本明細書において使用されるとき、言及された特徴、完全体(integer)、ステップ、動作、要素、またはコンポーネントあるいはこれらすべての存在を指定するが、1つまたは複数のその他の特徴、完全体、ステップ、動作、要素、コンポーネント、またはこれらのグループあるいはその両方の存在または追加を除外しないことがさらに理解されるであろう。
請求項のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、素材、動作、および等価なものは、明確に特許請求されたその他の特許請求された要素と組み合わせて機能を実行するための任意の構造、素材、または動作を含むように意図される。
本発明の説明が、例示および説明を目的として示されたが、網羅的であるように、または開示された形態の本発明に限定されるように意図されていない。多くの変更および改変が、本発明の範囲および精神から逸脱することなく当業者に明らかになる。実施形態は、本発明の原理および実際の応用を最もよく説明し、考えられる特定の用途に適するさまざまな変更を加えたさまざまな実施形態に関して当業者が本発明を理解することを可能にするために選択され、説明された。
サービス品質の要件が、本発明の1つまたは複数の実施形態によって、スイッチでVLANのレベルで対処され得ることが、以上の内容からやはり理解されるに違いない。つまり、コンバージド・エンハンスト・イーサネット(R)(CEE)対応のスイッチを用いて、RDMAトラフィックが、無損失モードで実行されるように特定のVLANでタグ付けされる可能性があり、VLANが、適切な量の帯域幅を割り振られる可能性がある。CEEがないとしても、ポートにおける全体休止(global pause)(つまり、フロー制御)を可能にすることが、混雑しているときにTCPとRDMAとの両方が無損失モードで実行されることを強制する。しかし、本明細書において示された実施形態は、トラフィックのそれらの対応するVLANデバイスへの分離を可能にする。結果として、アクセス制御リストおよびVMAPが、トラフィックの種類のそれぞれに関するサービス品質の要件を満たすために使用され得る。
要約すると、TCPに関するイーサ・チャネル・ボンディングが、RDMAがこの特徴を利用することができないことに影響を与えることなく可能にされるので、本発明の実施形態において、TCPトラフィックの高い可用性が、単一のマルチ・ポート・アダプタのみを用いて実現され得る。TCPトラフィックは、一方のポートが落ちる場合にもう一方のポートがその代わりに引き継ぐかまたは動作し続けることができるように、両方のポートを利用し得る。異なるプロトコルおよびI/O拡張スロットの限られた可用性にもかかわらず、堅牢で完全なネットワークが実現される。

Claims (24)

  1. 第1のネットワーク通信プロトコルおよび第2のネットワーク通信プロトコルによってコンピュータ・システムが通信するための方法であって、
    コンピュータ・システムのネットワーク・アダプタの第1の物理ポートの第1の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスによって第1の通信を実行することを含め、第1のネットワーク通信プロトコルによってネットワークへの、および前記ネットワークからの前記第1の通信を実行するステップであって、前記ネットワーク・アダプタが、さらに、前記第1のポートの第2のVLANデバイスを含み、第2の物理ポートの第1のVLANデバイスおよび第2のVLANデバイスを含み、前記第2のVLANデバイスが、第2のネットワーク通信プロトコルによるネットワーク通信のために論理的にボンディングされた仮想デバイスとしてプログラミングされる、前記第1の通信を実行するステップと、
    前記論理的にボンディングされた仮想デバイス、および前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートで第2の通信を実行することを含め、前記第2のネットワーク通信プロトコルによって前記ネットワークへの、および前記ネットワークからの前記第2の通信を実行するステップであって、前記第2の通信が、前記第1の通信と同時である、前記第2の通信を実行するステップとを含む、方法。
  2. 前記第1のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス(「RDMA」)プロトコルを含み、前記第2のネットワーク通信プロトコルが、伝送制御プロトコル(「TCP」)プロトコルを含む、請求項1に記載の方法。
  3. 前記第1の通信を実行するステップが、
    前記第1のVLANデバイスを介して前記第1の物理ポートと前記第2の物理ポートとの両方でRDMAプロトコル通信を同時に実行するステップを含み、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートでTCPプロトコル通信を実行するステップを含む、請求項2に記載の方法。
  4. 前記ボンディングされた仮想デバイスが、アクティブ−アクティブ通信モードのために構成され、その結果、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイスを介して前記第1の物理ポートと前記第2の物理ポートとの両方で前記第2の通信を実行するステップであって、両方の前記第2のVLANデバイスが同時に通信する、前記実行するステップをさらに含む、請求項1に記載の方法。
  5. 前記ボンディングされた仮想デバイスが、アクティブ−バックアップ通信モードのために構成され、その結果、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイスを介して前記第2の物理ポートで前記第2のネットワーク通信プロトコルによって前記第2の通信を実行するステップであって、前記第2のVLANデバイスのうちの1つのみが一度に通信し、前記第2のVLANデバイスのうちの通信している方の前記第2のVLANデバイス、または前記通信している方の前記第2のVLANデバイスの関連する物理ポートが故障するとき、前記第2のVLANデバイスのうちのもう一方の前記第2のVLANデバイスが、前記通信を引き継ぐ、前記実行するステップをさらに含む、請求項1に記載の方法。
  6. コンピュータ・システムでネットワーク通信を提供するための方法であって、
    ネットワーク・アダプタの第1の物理ポートおよび第2の物理ポートのそれぞれで第1の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスおよび第2のVLANデバイスを構成し、
    前記第2のVLANデバイスを論理的にボンディングされた仮想デバイスとして構成することを含め、前記コンピュータ・システムの前記ネットワーク・アダプタを構成するステップを含む、方法。
  7. 前記第1のVLANデバイスを介して第1のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの第1のアプリケーションをプログラミングするステップと、
    前記第2のVLANデバイスおよび前記論理的にボンディングされた仮想デバイスを介して第2のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムのアプリケーションをプログラミングするステップとを含み、前記第1のVLANデバイスのうちの少なくとも1つが、前記第1のネットワーク通信プロトコルによってネットワーク通信を提供し、同時に、前記論理的にボンディングされた仮想デバイスが、前記第2のネットワーク通信プロトコルによってネットワーク通信を提供する、請求項6に記載の方法。
  8. 前記第1のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス(「RDMA」)プロトコルを含み、前記第2のネットワーク通信プロトコルが、伝送制御プロトコル(「TCP」)プロトコルを含む、請求項7に記載の方法。
  9. 前記第1のネットワーク通信プロトコルによって前記第1のVLANデバイスのうちの少なくとも1つで前記ネットワーク通信を実行し、前記第2のネットワーク通信プロトコルによって前記論理的にボンディングされた仮想デバイスで前記ネットワーク通信を実行することが、
    前記第1のVLANデバイスによって前記第1の物理ポートと前記第2の物理ポートとの両方でRDMAプロトコル通信を同時に実行することと、
    前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートでTCPプロトコル通信を実行することとを含む、請求項7に記載の方法。
  10. 前記第2のVLANデバイスを介して前記第2のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの前記アプリケーションをプログラミングするステップが、
    前記第2のネットワーク通信プロトコルに関する第2の命令モジュールによって通信を実行するように前記第1のアプリケーションまたは第2のアプリケーションをプログラミングするステップを含み、前記第2の命令モジュールが、アクティブ−アクティブ・モードを提供し、前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの少なくとも1つで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
    前記論理的にボンディングされた仮想デバイスにより前記第1の物理ポートと前記第2の物理ポートとの両方で前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、両方の前記第2のVLANデバイスが同時に通信する、前記実行することをさらに含む、請求項7に記載の方法。
  11. 前記第2のVLANデバイスを介して前記第2のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの前記第1のアプリケーションまたは第2のアプリケーションをプログラミングするステップが、
    前記第2のネットワーク通信プロトコルに関する第2の命令モジュールによって通信を実行するように前記第1のアプリケーションまたは前記第2のアプリケーションをプログラミングするステップを含み、前記第2の命令モジュールが、アクティブ−バックアップ・モードを提供し、前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの少なくとも1つで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
    前記論理的にボンディングされた仮想デバイスによって前記第1の物理ポートおよび前記第2の物理ポートのうちの1つで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、前記第2のVLANデバイスのうちの1つのみが一度に通信し、前記第2のVLANデバイスのうちの通信している方の前記第2のVLANデバイス、または前記通信している方の前記第2のVLANデバイスの関連する物理ポートが故障するとき、前記第2のVLANデバイスのうちのもう一方の前記第2のVLANデバイスが、前記通信を引き継ぐ、前記実行することをさらに含む、請求項7に記載の方法。
  12. それぞれの第1のネットワーク・アドレスおよび第2のネットワーク・アドレスで前記第1のVLANデバイスを構成するステップと、
    第3のネットワーク・アドレスで前記ボンディングされた仮想デバイスを構成するステップとを含む、請求項6に記載の方法。
  13. 第1のネットワーク通信プロトコルおよび第2のネットワーク通信プロトコルによってコンピュータ・システムでネットワーク通信を提供するためのコンピュータ・プログラム製品であって、
    コンピュータ可読ストレージ媒体と、
    コンピュータ・システムのネットワーク・アダプタの第1の物理ポートの第1の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスによって第1の通信を実行することを含め、第1のネットワーク通信プロトコルによってネットワークへの、および前記ネットワークからの前記第1の通信を実行するステップであって、前記ネットワーク・アダプタが、さらに、前記第1のポートの第2のVLANデバイスを含み、第2の物理ポートの第1のVLANデバイスおよび第2のVLANデバイスを含み、前記第2のVLANデバイスが、第2のネットワーク通信プロトコルによるネットワーク通信のために論理的にボンディングされた仮想デバイスとしてプログラミングされる、前記第1の通信を実行するステップ、ならびに
    前記論理的にボンディングされた仮想デバイス、および前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートで第2の通信を実行することを含め、前記第2のネットワーク通信プロトコルによって前記ネットワークへの、および前記ネットワークからの前記第2の通信を実行するステップであって、前記第2の通信が、前記第1の通信と同時である、前記第2の通信を実行するステップを含む方法を実行するように前記コンピュータ・システムをプログラミングする、前記コンピュータ可読ストレージ媒体に記憶されたプログラム命令とを含む、コンピュータ・プログラム製品。
  14. 前記第1のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス(「RDMA」)プロトコルを含み、前記第2のネットワーク通信プロトコルが、伝送制御プロトコル(「TCP」)プロトコルを含む、請求項13に記載のコンピュータ・プログラム製品。
  15. 前記第1の通信を実行するステップが、
    前記第1のVLANデバイスによって前記第1の物理ポートと前記第2の物理ポートとの両方でRDMAプロトコル通信を同時に実行するステップを含み、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートでTCPプロトコル通信を実行するステップを含む、請求項13に記載のコンピュータ・プログラム製品。
  16. 前記コンピュータ可読ストレージ媒体に記憶された前記プログラム命令が、
    前記ボンディングされた仮想デバイスのためにアクティブ−アクティブ通信モードを提供するように前記コンピュータ・システムをさらにプログラミングし、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイスを介して前記第1の物理ポートと前記第2の物理ポートとの両方で前記第2の通信を実行するステップであって、両方の前記第2のVLANデバイスが同時に通信する、前記実行するステップをさらに含む、請求項13に記載のコンピュータ・プログラム製品。
  17. 前記コンピュータ可読ストレージ媒体に記憶された前記プログラム命令が、
    前記ボンディングされた仮想デバイスのためにアクティブ−バックアップ通信モードを提供するように前記コンピュータ・システムをさらにプログラミングし、前記第2の通信を実行するステップが、
    前記論理的にボンディングされた仮想デバイスを介して前記第1の物理ポートおよび前記第2の物理ポートのうちの1つで前記第2の通信を実行するステップであって、前記第2のVLANデバイスのうちの1つのみが一度に通信し、前記第2のVLANデバイスのうちの通信している方の前記第2のVLANデバイス、または前記通信している方の前記第2のVLANデバイスの関連する物理ポートが故障するとき、前記第2のVLANデバイスのうちのもう一方の前記第2のVLANデバイスが、前記通信を引き継ぐ、前記実行するステップをさらに含む、請求項13に記載のコンピュータ・プログラム製品。
  18. ネットワーク・アダプタの第1の物理ポートおよび第2の物理ポートのそれぞれで構成された第1の仮想ローカル・エリア・ネットワーク(「VLAN」)デバイスおよび第2のVLANデバイスを有し、論理的にボンディングされた仮想デバイスとして構成された前記第2のVLANデバイスを有するネットワーク・アダプタを含む、コンピュータ・システム。
  19. コンピュータ可読ストレージ媒体に記憶され、前記第1のVLANデバイスを介して第1のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされた第1のアプリケーションと、
    コンピュータ可読ストレージ媒体に記憶され、前記第2のVLANデバイスおよび前記論理的にボンディングされた仮想デバイスを介して第2のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされたアプリケーションとを含み、前記第1のVLANデバイスのうちの少なくとも1つが、前記第1のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、前記論理的にボンディングされた仮想デバイスが、前記第2のネットワーク通信プロトコルによるネットワーク通信を提供する、請求項18に記載のコンピュータ・システム。
  20. 前記第1のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス(「RDMA」)プロトコルを含み、前記第2のネットワーク通信プロトコルが、伝送制御プロトコル(「TCP」)プロトコルを含む、請求項19に記載のコンピュータ・システム。
  21. 前記第1のネットワーク通信プロトコルによって前記第1のVLANデバイスのうちの少なくとも1つで前記ネットワーク通信を実行し、前記第2のネットワーク通信プロトコルによって前記論理的にボンディングされた仮想デバイスで前記ネットワーク通信を実行することが、
    前記第1のVLANデバイスによって前記第1の物理ポートと前記第2の物理ポートとの両方でRDMAプロトコル通信を同時に実行することと、
    前記論理的にボンディングされた仮想デバイス、および前記第2のVLANデバイスのうちの前記第2の物理ポートの前記第2のVLANデバイスによって前記第2の物理ポートでTCPプロトコル通信を実行することとを含む、請求項19に記載のコンピュータ・システム。
  22. 前記第1のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第1の命令モジュールと、
    前記第2のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第2の命令モジュールとを含み、前記第1のアプリケーションまたは第2のアプリケーションが、前記第2のネットワーク通信プロトコルに関する前記第2の命令モジュールによって通信を実行するようにプログラミングされ、前記第2の命令モジュールが、前記ボンディングされた仮想デバイスのためにアクティブ−アクティブ・モードを提供するようにプログラミングされ、前記論理的にボンディングされた仮想デバイスで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
    前記論理的にボンディングされた仮想デバイスにより前記第1の物理ポートと前記第2の物理ポートとの両方で前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、両方の前記第2のVLANデバイスが同時に通信する、前記実行することをさらに含む、請求項19に記載のコンピュータ・システム。
  23. 前記第1のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第1の命令モジュールと、
    前記第2のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第2の命令モジュールとを含み、前記第1のアプリケーションまたは第2のアプリケーションが、前記第2のネットワーク通信プロトコルに関する前記第2の命令モジュールによって通信を実行するようにプログラミングされ、前記第2の命令モジュールが、前記ボンディングされた仮想デバイスのためにアクティブ−バックアップ・モードを提供するようにプログラミングされ、前記論理的にボンディングされた仮想デバイスで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
    前記論理的にボンディングされた仮想デバイスによって前記第1の物理ポートおよび前記第2の物理ポートのうちの1つで前記第2のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、前記第2のVLANデバイスのうちの1つのみが一度に通信し、前記第2のVLANデバイスのうちの通信している方の前記第2のVLANデバイス、または前記通信している方の前記第2のVLANデバイスの関連する物理ポートが故障するとき、前記第2のVLANデバイスのうちのもう一方の前記第2のVLANデバイスが、前記通信を引き継ぐ、前記実行することをさらに含む、請求項19に記載のコンピュータ・システム。
  24. 前記第1のVLANデバイスが、それぞれの第1のネットワーク・アドレスおよび第2のネットワーク・アドレスで構成され、前記ボンディングされた仮想デバイスが、第3のネットワーク・アドレスで構成される、請求項19に記載のコンピュータ・システム。
JP2015538341A 2012-10-25 2013-08-27 コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品(少なくとも2つの通信プロトコルを用いるコンピュータ・システムによるネットワーク通信のための技術) Active JP6270860B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/660,973 US8988987B2 (en) 2012-10-25 2012-10-25 Technology for network communication by a computer system using at least two communication protocols
US13/660,973 2012-10-25
PCT/EP2013/067726 WO2014063851A1 (en) 2012-10-25 2013-08-27 Technology for network communication by a computer system using at least two communication protocols

Publications (2)

Publication Number Publication Date
JP2016500972A true JP2016500972A (ja) 2016-01-14
JP6270860B2 JP6270860B2 (ja) 2018-01-31

Family

ID=49034106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015538341A Active JP6270860B2 (ja) 2012-10-25 2013-08-27 コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品(少なくとも2つの通信プロトコルを用いるコンピュータ・システムによるネットワーク通信のための技術)

Country Status (7)

Country Link
US (2) US8988987B2 (ja)
JP (1) JP6270860B2 (ja)
CN (1) CN104782085B (ja)
DE (1) DE112013004187B4 (ja)
GB (1) GB2521315B (ja)
TW (1) TW201424304A (ja)
WO (1) WO2014063851A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988987B2 (en) 2012-10-25 2015-03-24 International Business Machines Corporation Technology for network communication by a computer system using at least two communication protocols
US20140173157A1 (en) * 2012-12-14 2014-06-19 Microsoft Corporation Computing enclosure backplane with flexible network support
EP3126977A4 (en) * 2014-04-02 2017-11-01 Strato Scale Ltd. Remote asymmetric tcp connection offload over rdma
EP3222021A1 (en) * 2014-11-19 2017-09-27 Lantiq Beteiligungs-GmbH & Co. KG Physical medium dependent layer bonding
US10374924B1 (en) * 2014-12-05 2019-08-06 Amazon Technologies, Inc. Virtualized network device failure detection
WO2016109948A1 (zh) * 2015-01-07 2016-07-14 华为技术有限公司 构建网络的方法和装置
US10771315B2 (en) 2017-02-14 2020-09-08 Futurewei Technologies, Inc. High availability using multiple network elements
DE102017103554B3 (de) * 2017-02-21 2018-05-09 Phoenix Contact Gmbh & Co. Kg Frontadapter zum Verbinden mit einer Steuerungseinrichtung und Automatisierungssystem
US10454226B2 (en) * 2017-04-07 2019-10-22 Centurylink Intellectual Property Llc Power distribution unit for transmitting data over a power line
US10733137B2 (en) * 2017-04-25 2020-08-04 Samsung Electronics Co., Ltd. Low latency direct access block storage in NVME-of ethernet SSD
US11082408B2 (en) * 2017-07-20 2021-08-03 Michael T. Jones Systems and methods for packet spreading data transmission with anonymized endpoints
US20200104152A1 (en) * 2018-06-04 2020-04-02 Srinivas Vegesna Methods and systems for virtual tor implementation
CN109756464B (zh) * 2017-11-07 2021-12-03 阿里巴巴集团控股有限公司 一种通信方法及服务器、客户端
CN108254694B (zh) * 2017-12-27 2020-12-25 深圳市科陆电子科技股份有限公司 一种电池工作数据采集方法、系统及存储介质
US10735248B2 (en) 2018-02-12 2020-08-04 Futurewei Technologies, Inc. Cloudified N-way routing protection at hyper scale

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005185A1 (en) * 2004-06-30 2006-01-05 Nokia Inc. Virtual broadcast network for inter-domain communications
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
JP2007235674A (ja) * 2006-03-02 2007-09-13 Nec Corp 通信装置および通信方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678241B1 (en) 1999-11-30 2004-01-13 Cisc Technology, Inc. Fast convergence with topology switching
US7242665B2 (en) * 2001-01-25 2007-07-10 Ericsson Ab Network device virtual interface
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7899047B2 (en) * 2001-11-27 2011-03-01 Microsoft Corporation Virtual network with adaptive dispatcher
US7188364B2 (en) * 2001-12-20 2007-03-06 Cranite Systems, Inc. Personal virtual bridged local area networks
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7554993B2 (en) * 2003-03-27 2009-06-30 Hewlett-Packard Development Company, L.P. Method and apparatus for performing connection management with multiple stacks
US7565454B2 (en) * 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
US7839843B2 (en) * 2003-09-18 2010-11-23 Cisco Technology, Inc. Distributed forwarding in virtual network devices
EP1709530A2 (en) * 2004-01-20 2006-10-11 Broadcom Corporation System and method for supporting multiple users
US20060168275A1 (en) 2004-11-22 2006-07-27 Lin Peter A Method to facilitate a service convergence fabric
US20060123204A1 (en) 2004-12-02 2006-06-08 International Business Machines Corporation Method and system for shared input/output adapter in logically partitioned data processing system
US20070266127A1 (en) 2006-05-10 2007-11-15 Richter Andrew H Internal virtual local area network (lan)
US20080244620A1 (en) 2007-03-27 2008-10-02 Brian James Cagno Dynamic Communication Fabric Zoning
US8098572B2 (en) * 2009-02-03 2012-01-17 Google Inc. Interface monitoring for link aggregation
JP5336405B2 (ja) * 2010-03-10 2013-11-06 富士フイルム株式会社 社内情報閲覧用サーバ・システムおよびその制御方法
CN101827032A (zh) 2010-04-29 2010-09-08 华为技术有限公司 一种收敛二层组播网络的方法及设备
US8559341B2 (en) 2010-11-08 2013-10-15 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US8625597B2 (en) 2011-01-07 2014-01-07 Jeda Networks, Inc. Methods, systems and apparatus for the interconnection of fibre channel over ethernet devices
US8537706B2 (en) 2011-01-11 2013-09-17 International Business Machines Corporation Preserving traffic class priority QoS with self-virtualizing input/output device
US8934783B2 (en) 2011-02-17 2015-01-13 International Business Machines Corporation Adaptor system for an ethernet network
US8988987B2 (en) 2012-10-25 2015-03-24 International Business Machines Corporation Technology for network communication by a computer system using at least two communication protocols

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005185A1 (en) * 2004-06-30 2006-01-05 Nokia Inc. Virtual broadcast network for inter-domain communications
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
JP2007235674A (ja) * 2006-03-02 2007-09-13 Nec Corp 通信装置および通信方法

Also Published As

Publication number Publication date
US8988987B2 (en) 2015-03-24
US9137041B2 (en) 2015-09-15
DE112013004187T5 (de) 2015-05-07
GB2521315B (en) 2015-08-05
US20140119380A1 (en) 2014-05-01
GB2521315A (en) 2015-06-17
US20140119174A1 (en) 2014-05-01
CN104782085A (zh) 2015-07-15
GB201506292D0 (en) 2015-05-27
WO2014063851A1 (en) 2014-05-01
JP6270860B2 (ja) 2018-01-31
DE112013004187B4 (de) 2017-06-22
CN104782085B (zh) 2017-12-29
TW201424304A (zh) 2014-06-16

Similar Documents

Publication Publication Date Title
JP6270860B2 (ja) コンピュータ・システムによるネットワーク通信のための方法、コンピュータ・システム、およびコンピュータ・プログラム製品(少なくとも2つの通信プロトコルを用いるコンピュータ・システムによるネットワーク通信のための技術)
US10691628B2 (en) Systems and methods for flexible HDD/SSD storage support
CN107005547B (zh) 用于由中间装置执行对于客户机的远程桌面会话的单点登录的系统和方法
CA2783452C (en) Migrating virtual machines among networked servers upon detection of degrading network link operation
JP6559842B2 (ja) マルチノードシステムファン制御スイッチ
US9282055B2 (en) System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system
US9389893B2 (en) Method and system for migration of virtual machines and virtual applications between cloud-computing facilities through multiplexed secure tunnels
JP6426846B2 (ja) 多数のコンピュータサブシステム用の再構成可能リソースを備えるシステムオンチップ
TWI504193B (zh) 用於在雲計算中卸載隧道資料包的方法和系統
JP6608979B2 (ja) 電圧レギュレータセルフバーンインテストのための方法、システム、及び記憶媒体
JP6805116B2 (ja) Psuの待機電源が機能しない場合に動作可能なサーバシステム
US7970852B2 (en) Method for moving operating systems between computer electronic complexes without loss of service
CN107078936B (zh) 用于提供对传输层连接的mss值的细粒度控制的系统和方法
KR101720360B1 (ko) 가상 네트워크 환경에서 복사 회피
US8305883B2 (en) Transparent failover support through pragmatically truncated progress engine and reversed complementary connection establishment in multifabric MPI implementation
US10771283B2 (en) Virtual cloud node
US8650433B2 (en) Shared ethernet adapter (SEA) load sharing and SEA fail-over configuration as set by a user interface
CN116897527A (zh) 用于将服务提供商私有网络连接到客户私有网络的云基础设施资源
CN116746136A (zh) 同步通信信道状态信息以实现高流量可用性
US20170070453A1 (en) Method to configure network bonds as a port on an integration bridge for a virtualized multilayer switch

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171226

R150 Certificate of patent or registration of utility model

Ref document number: 6270860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150