JP7098711B2 - 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム - Google Patents

遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP7098711B2
JP7098711B2 JP2020500079A JP2020500079A JP7098711B2 JP 7098711 B2 JP7098711 B2 JP 7098711B2 JP 2020500079 A JP2020500079 A JP 2020500079A JP 2020500079 A JP2020500079 A JP 2020500079A JP 7098711 B2 JP7098711 B2 JP 7098711B2
Authority
JP
Japan
Prior art keywords
computer
nodes
network
hardware
arbiter
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.)
Active
Application number
JP2020500079A
Other languages
English (en)
Other versions
JP2020526968A (ja
JP2020526968A5 (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 JP2020526968A publication Critical patent/JP2020526968A/ja
Publication of JP2020526968A5 publication Critical patent/JP2020526968A5/ja
Application granted granted Critical
Publication of JP7098711B2 publication Critical patent/JP7098711B2/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、一般に、コンピューティングの分野に関し、より詳細には、コンピュータ・ネットワーキングの分野に関する。
コンピュータ・ネットワーキングは、コンピューティング・デバイスがデータを交換することを可能にするデータ・リンクを有する2つ以上のコンピューティング・デバイスの接続を含む。コンピュータ・ネットワークは、多くのなかでもとりわけ、インターネットに対するアクセス、クラウド・ストレージ、プリンタ、ファックス・マシン、電子メール、インスタント・メッセージング、電話サービス、およびデジタル・メディアなどの膨大な数のアプリケーションおよびサービスの基礎の役割をする。ラップトップおよびセル電話などのパーソナル・コンピューティング・デバイスの広範な普及とともに、コンピュータ・ネットワークは、いたるところに存在し、かつ現代の生活の極めて重要な要素となっている。このため、コンピュータ・ネットワーキング技術の維持および改良の進歩は、現代の社会に行き渡る利益をもたらす潜在力を有する。
したがって発明が解決しようとする課題は、遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のための方法、システム、およびそのプログラムを提供することである。
一態様によれば、通信チャネル実施のための、遠隔ノード発見、および複数のキュー・ペアを結び付けることのためのプロセッサによって実施される方法が提供され、方法は、複数のノードの間で1つまたは複数のポイント・ツー・ポイント・リンクを接続すべく複数のハードウェアを準備すること、発見プロセスを通じてその1つまたは複数のポイント・ツー・ポイント・リンク内でその複数のノードを発見すること、その複数のノード間に複数の管理トラフィック・レーンを作成すること、その複数のノード間の複数の接続を検証すること、その複数の接続上で1つまたは複数の補助的トラフィック・フロー・インターフェースを開始すること、その複数の接続のための複数のバッファをネゴシエートし、かつ接続すること、およびその複数のノードの間で複数のノード記述子を交換することを含む。
別の態様によれば、通信チャネル実施のための、遠隔ノード発見、および複数のキュー・ペアを結び付けることのためのコンピュータ・システムが提供され、コンピュータ・システムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶媒体と、その1つまたは複数のメモリのうちの少なくとも1つを介してその1つまたは複数のプロセッサのうちの少なくとも1つによって実行されるようにその1つまたは複数の有形記憶媒体のうちの少なくとも1つの上に記憶されたプログラム命令とを含み、コンピュータ・システムは、複数のノードの間で1つまたは複数のポイント・ツー・ポイント・リンクを接続すべく複数のハードウェアを準備すること、発見プロセスを通じてその1つまたは複数のポイント・ツー・ポイント・リンク内でその複数のノードを発見すること、その複数のノード間に複数の管理トラフィック・レーンを作成すること、その複数のノード間の複数の接続を検証すること、その複数の接続上で1つまたは複数の補助的トラフィック・フロー・インターフェースを開始すること、その複数の接続のための複数のバッファをネゴシエートし、かつ接続すること、およびその複数のノードの間で複数のノード記述子を交換することを含む方法を実行することができる。
別の態様によれば、通信チャネル実施のための、遠隔ノード発見、および複数のキュー・ペアを結び付けることのためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読有形記憶媒体と、その1つまたは複数のコンピュータ可読有形記憶媒体のうちの少なくとも1つの上に記憶されたプログラム命令とを含み、それらのプログラム命令は、プロセッサによって実行可能であり、それらのプログラム命令は、複数のノードの間で1つまたは複数のポイント・ツー・ポイント・リンクを接続すべく複数のハードウェアを準備すること、発見プロセスを通じてその1つまたは複数のポイント・ツー・ポイント・リンク内でその複数のノードを発見すること、その複数のノード間に複数の管理トラフィック・レーンを作成すること、その複数のノード間の複数の接続を検証すること、その複数の接続上で1つまたは複数の補助的トラフィック・フロー・インターフェースを開始すること、その複数の接続のための複数のバッファをネゴシエートし、かつ接続すること、およびその複数のノードの間で複数のノード記述子を交換することを含む方法を実行するようにプロセッサに指示する。
一実施形態によれば、コンピュータ・ネットワーキングのための方法、コンピュータ・システム、およびコンピュータ・プログラム製品が提供される。本発明は、システム間でポイント・ツー・ポイント・リンクを接続すべくハードウェアを準備すること、発見プロセスを通じてそれらのリンクの他方の側の遠隔システムを発見すること、管理トラフィック・レーンを作成すること、ノード間の接続を検証すること、補助的トラフィック・フロー・インターフェースを開始すること、バッファをネゴシエートし、かつ接続すること、およびノード記述子を交換することを含む、1つまたは複数の通信チャネルを実施する際に、遠隔ノードアドレス指定可能性を発見すべく媒体アクセス制御(MAC)マルチキャスト手続きを使用し、かつキュー・ペアのセットを接続すべくInfiniBand(R)(InfiniBand(R)およびすべてのInfiniBand(R)ベースの商標およびロゴは、システムI/O株式会社、またはシステムI/O株式会社の関連会社、あるいはその両方の商標または登録商標である)プロトコルを使用する方法を含んでよい。
次に、本発明の好ましい実施形態が、単に例として、以下の図面を参照して説明される。
少なくとも1つの実施形態による例示的なネットワーク化されたコンピュータ環境を示す図である。 少なくとも1つの実施形態によるノード発見およびアービトレーション・プロセスを示す動作フローチャートである。 少なくとも1つの実施形態によるリンク初期設定手続きを示す機能ブロック図である。 少なくとも1つの実施形態による図1に示されるコンピュータおよびサーバの内部構成要素および外部構成要素を示すブロック図である。 本発明の実施形態によるクラウド・コンピューティング環境を示す図である。 本発明の実施形態による抽象モデル層を示す図である。
図面の様々な特徴は、これらの例示が、当業者が、詳細な説明と併せて本発明の好ましい実施形態を理解するのを容易にする際の簡明さを目的とするので、一律の縮尺に従ってはいない。
特許請求される構造および方法の詳細な実施形態が本明細書において開示されるが、開示される実施形態は、様々な形態において実施されてよい特許請求される構造および方法を例示するに過ぎないものと理解されることが可能である。しかし、本発明は、異なる多くの形態で実施されてよく、本明細書に記載される例示的な実施形態に限定されるものと解釈されるべきではない。この説明において、よく知られた特徴および技法の詳細は、提示される実施形態を不必要に不明瞭にするのを回避すべく省略されることが可能である。
本発明の実施形態は、コンピューティングの分野に関し、より詳細には、コンピュータ・ネットワーキングに関する。説明される以下の例示的な実施形態は、1つまたは複数の通信チャネルを実施する際に、とりわけ、遠隔ノードアドレス指定可能性を発見すべく媒体アクセス制御(MAC)マルチキャスト手続きを使用し、かつキュー・ペアを接続すべくInfiniBand(R)(InfiniBand(R)およびすべてのInfiniBand(R)ベースの商標およびロゴは、システムI/O株式会社、またはシステムI/O株式会社の関連会社、あるいはその両方の商標または登録商標である)プロトコルを使用するシステム、方法、およびプログラム製品を提供する。したがって、本実施形態は、切り換えられる環境を許容するノード発見の帯域内方法を提供することによってコンピュータ・ネットワーキングの技術分野を改良する能力を有する。
前述したとおり、コンピュータ・ネットワーキングは、コンピューティング・デバイスがデータを交換することを可能にするデータ・リンクを有する2つ以上のコンピューティング・デバイスの接続を含む。コンピュータ・ネットワークは、多くのなかでもとりわけ、インターネットに対するアクセス、クラウド・ストレージ、プリンタ、ファックス・マシン、電子メール、インスタント・メッセージング、電話サービス、およびデジタル・メディアなどの膨大な数のアプリケーションおよびサービスの基礎の役割をする。ラップトップおよびセル電話などのパーソナル・コンピューティング・デバイスの広範な普及とともに、コンピュータ・ネットワークは、いたるところに存在し、かつ現代の生活の極めて重要な要素となっている。このため、コンピュータ・ネットワーキング技術の維持および改良の進歩は、現代の社会に行き渡る利益をもたらす潜在力を有する。
多くのネットワーク接続は、市販のオペレーティング・システムに組み込まれたプロトコルの標準のセットを利用する。これらのプロトコルは、汎用であり、ネットワーク接続の普及のための基礎である。しかし、そのような汎用性は、ネットワーク・パフォーマンスを犠牲にしている。ネットワーク潜時などの測定基準に左右されるシステムは、汎用ではなく、特定のアプリケーションおよびシステムの動作環境のためにカスタマイズされたカスタム通信プロトコルを開発することを選択することが可能である。したがって、集中型サーバの必要なしに、ポイント・ツー・ポイント・リンクにおけるノード発見を使用し、かつ動的プロトコルを使用して作成されたチャネルの使用によってではなく、初期の発見を介して確立された固定のチャネルに基づいてデータを転送する方法の必要性が存在する。
一実施形態によれば、マルチキャスト・プロトコルを使用して遠隔アドレス指定可能性を帯域内で発見し、次に、遠隔チャネル定義が確認され、かつ初期設定された直接に接続された管理経路を確立することによって、2つのシステムの間で1つまたは複数のチャネルのセットが確立される。
そのような実施形態において、InfiniBand(R)(InfiniBand(R)およびすべてのInfiniBand(R)ベースの商標およびロゴは、システムI/O株式会社、またはシステムI/O株式会社の関連会社、あるいはその両方の商標または登録商標である)などのトランスポート層プロトコルをサポートする通信アダプタを使用して、イーサネット(R)などの物理層プロトコルを使用して2つのサーバ・システムの間で物理接続がまず、確立される。その接続上で、遠隔システム上の接続されたポートのアドレスを包含するマルチキャスト・メッセージを受信し、かつローカル・システム上の接続されたポートのアドレスを包含するマルチキャスト・メッセージを送信するローカル・マルチキャスト・キュー・ペア(QP)をセット・アップすることによって、遠隔システムのアドレス指定可能性が獲得される。
遠隔ポート・アドレスが獲得されたとき、そのアドレスは、遠隔システムを相手に直接に接続された管理QPを確立するパラメータとして使用される。管理QPは、チャネルのローカル定義および遠隔定義などの情報が送られ、かつチャネルを含むQPの数などのパラメータがネゴシエートされる経路として使用される。
合致するローカルと遠隔の定義を有する各チャネルに関して、管理QP経路は、補助的QP、および構成バッファQPのセットを定義し、かつ接続するのに使用される。補助的QPは、チャネル特有の非データ・メッセージ(メッセージ中止コマンドなどの)のために使用され、バッファQPは、チャネルに関するデータ・メッセージを送受信するのに使用される。
本発明は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つの(または複数の)コンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持すること、および記憶することができる有形デバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストは、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカード、もしくは命令が記録されている溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を通して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされること、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含んでよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSmalltalk(R)、C++、もしくは類似したものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似したプログラミング言語などの手続き型プログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で、または完全に遠隔コンピュータもしくは遠隔サーバの上で実行されてよい。完全に遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実行するためにその電子回路を個人設定すべく、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図、あるいはその両方を参照して本明細書において説明される。フローチャートまたはブロック図、あるいはその両方の各ブロック、ならびにフローチャートまたはブロック図、あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装されることが可能であることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶された命令により、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を作り出すべく、コンピュータ可読記憶媒体に記憶されて、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するように指示するものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスの上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスの上で一連の動作ステップを実行させるものであってもよい。
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部分を表すことが可能である。一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、関与する機能に依存して、ときとして、逆の順序で実行されてよい。また、フローチャートまたはブロック図、あるいはその両方の各ブロック、ならびにフローチャートまたはブロック図、あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実装されることが可能であることにも留意されたい。
説明される以下の例示的な実施形態は、マルチキャスト・プロトコルを使用して遠隔アドレス指定可能性を帯域内で発見し、次に、遠隔チャネル定義が確認され、かつ初期設定された直接に接続された管理経路を確立することによって、2つのコンピューティング・システムの間で1つまたは複数の通信チャネルのセットを確立するシステム、方法、およびプログラム製品を提供する。
図1を参照すると、少なくとも1つの実施形態による例示的なネットワーク化されたコンピューティング環境100が示される。ネットワーク化されたコンピュータ環境100は、通信ネットワーク112を介して互いに接続されたネットワーク・ノード102Aおよび102Bを含んでよい。少なくとも1つの実装形態によれば、ネットワーク化されたコンピュータ環境100は、複数のネットワーク・ノード102A、102Bを含んでよく、そのうちの2つだけが、例示を簡単にするために図示される。
通信ネットワーク112は、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、遠隔通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、または衛星ネットワーク、あるいはその組合せなどの、様々なタイプの通信ネットワークを含んでよい。通信ネットワーク112は、配線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。図1は、一実装形態の例示だけを含み、異なる実施形態が実施されてよい環境に関して何ら限定を暗示するものではないことが認識されることが可能である。示される実施形態の多くの変形形態が、設計上および実施上の要件に基づいて行われてよい。
本発明の一実施形態による、ソフトウェア・プログラム108Aならびにノード発見およびアービタ・プログラム110Aをホストすること、および実行すること、ならびに通信ネットワーク112を介してネットワーク・ノード102Bと通信することを可能にされたネットワーク・ノード102Aは、プロセッサ104Aと、データ・ストレージ・デバイス106Aとを含んでよい。ネットワーク・ノード102Aは、例えば、モバイル・デバイス、電話機、携帯情報端末、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、あるいはプログラムを実行すること、およびネットワークにアクセスすることができる任意のタイプのコンピューティング・デバイスであってよい。図5を参照して説明されるとおり、ネットワーク・ノード102Aは、内部構成要素502aと、外部構成要素504aとをそれぞれ含んでよい。また、ネットワーク・ノード102Aは、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(IaaS)などのクラウド・コンピューティング・サービス・モデルにおいて動作してもよい。また、ネットワーク・ノード102Aは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドなどのクラウド・コンピューティング展開モデルに配置されてもよい。
本発明の一実施形態による、ソフトウェア・プログラム108Bならびにノード発見およびアービタ・プログラム110Bをホストすること、および実行すること、ならびに通信ネットワーク112を介してネットワーク・ノード102Aと通信することを可能にされたネットワーク・ノード102Bは、プロセッサ104Bと、データ・ストレージ・デバイス106Bとを含んでよい。ネットワーク・ノード102Bは、例えば、モバイル・デバイス、電話機、携帯情報端末、ネットブック、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータ、あるいはプログラムを実行すること、およびネットワークにアクセスすることができる任意のタイプのコンピューティング・デバイスであってよい。図5を参照して説明されるとおり、ネットワーク・ノード102Bは、内部構成要素502aと、外部構成要素504aとをそれぞれ含んでよい。また、ネットワーク・ノード102Bは、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(IaaS)などのクラウド・コンピューティング・サービス・モデルにおいて動作してもよい。また、ネットワーク・ノード102Bは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウドなどのクラウド・コンピューティング展開モデルに配置されてもよい。
ソフトウェア・プログラム108A、108Bは、ノード発見およびアービタ・プログラム110A、110Bによって確立された接続を活用するいくつかのより高レベルのソフトウェア・プログラムのいずれかであってよい。
本実施形態によれば、ノード発見およびアービタ・プログラム110A、110Bは、データ・チャネル通信の目的で、遠隔ホスト・ノードの身元を発見するランデブ機能を実行すること、およびマルチキャスト・プロトコルを使用することができ、かつ、その後、キュー・ペアのセットを結び付けるプログラムであってよい。ノード発見およびアービタ方法は、図2に関連して後段でさらに詳細に説明される。一実施形態において、ノード発見およびアービタ・プログラム110A、110Bは、コンピューティング・ノード102A、102Bのためのオペレーティング・システムのデバイス・ドライバ層において実行される。
次に、図2を参照すると、動作フローチャートが、遠隔ノード発見およびデータ・チャネル初期設定のための方法を示す。202において、ノード発見およびアービタ・プログラム110A、110Bが、システム間のポイント・ツー・ポイント・リンクを接続するようにハードウェアを準備する。このアダプタ初期設定ステップは、以下の3つの段階に分割されてよい。すなわち、段階1が、ノード発見およびアービタ・プログラム110A、110Bが、アダプタを知られている状態にするために、アダプタによって使用される仮想機能上で機能レベル・リセットをトリガすることを伴ってよい。アダプタに関して定義されたそのようなチャネルが存在しない場合、ノード発見およびアービタ・プログラム110A、110Bは、初期設定を中止してよい。次に、ノード発見およびアービタ・プログラム110A、110Bは、DMAトランザクションおよびMSI-X割込みに関してアダプタをイネーブルにしてよい。
アダプタ初期設定の段階2は、ノード発見およびアービタ・プログラム110A、110Bが、アダプタにコマンドを渡すこと、およびアダプタからコマンドを受け取ることに用いられる通信チャネルを確立することを伴ってよい。アダプタ初期設定の段階3は、ノード発見およびアービタ・プログラム110A、110Bが、アダプタに対するコマンドにおいて後に使用されることが可能な極めて重要なハードウェア構成情報に関してアダプタにクエリを行うことを含んでよい。さらに、ノード発見およびアービタ・プログラム110A、110Bは、アダプタ上のイベントについて通知を受けるべく、かつ遠隔直接メモリ・アクセス(RDMA)トランザクションを可能にすべく、イベント・キューおよびメモリ保護テーブル・エントリに登録する。また、ノード発見およびアービタ・プログラム110A、110Bは、この時点で、割当てにおいてQPを確保することもし、これらのQPが、次に、セットに細分され、ここで、データ・チャネルは、QPのセットから成る。ノード発見およびアービタ・プログラム110A、110Bは、初期設定の単純化をもたらすべく、かつフロー・インターフェースを解体すべく、QPのそれらのセットを順次に割り当てる。アダプタが、通知、DMA、割込み、および他のそのようなトラフィックに対して準備万端となると、ノード発見およびアービタ・プログラム110A、110Bは、発見トラフィック、タイミング・トラフィック、および管理トラフィック、ならびにデータ・トラフィックが流れることが可能なフロー・インターフェースを確立してよい。
本発明の一実施形態において、アダプタ初期設定プロセスの段階3中、ノード発見およびアービタ・プログラム110A、110Bは、前もってアダプタからバッファ・リソースを確保してよい。バッファ・プールの確保は、費用のかかる動作であり、この実施形態において、バッファ・プール確保動作は、アダプタ初期設定中、1回だけ実行されてよく、このことが、それらのリソースを敏捷な割当てのために後に利用可能にする。一実施形態において、ノード発見およびアービタ・プログラム110A、110Bは、ネットワーク・アダプタなどのデバイスが、様々なPCI Express拡張(商標)ハードウェア機能のなかでそのデバイスのリソースに別々にアクセスすることを可能にするPCIeである、単一ルート入力/出力仮想化(single-root in/out virtualization:SRIOV)と呼ばれるインターフェースを使用してバッファ・プール確保を行う。このインターフェースの下で、1つのデバイス・ドライバが、それらのリソースの管理所有者であってよく、ノード発見およびアービタ・プログラム110A、110Bは、ゲストであってよい。
次に、204において、ノード発見およびアービタ・プログラム110A、110Bが、発見プロセスを通じてリンクの他方の側の遠隔システムを発見する。ノード/遠隔ホスト発見を実行するために、ノード発見およびアービタ・プログラム110A、110Bは、専有のペイロードと一緒にマルチキャスト宛先MACアドレスを使用してよい。ポートが現れ、かつホスト・ファームウェアが構成されているとき、ノード発見およびアービタ・プログラム110A、110Bは、フロー・インターフェースとしても知られるQPを確立してよく、マルチキャストMACアドレスおよびペイロードを有するメッセージを生のイーサネット(R)・パケットとして周期的に発信してよい。フロー・インターフェースを立ち上げることに加えて、ノード発見およびアービタ・プログラム110A、110Bは、指定されたMACアドレスを有するトラフィックをいつ転送すべきかを知るために、ハードウェアにおいてMACアドレスを構成してよい。遠隔ホスト・ファームウェアが作動するようになった後、遠隔ホストは、この指定されたMACアドレス上でイーサネット(R)・パケットを受信してよく、かつそのペイロードをメモリに入れてよい。そのペイロードは、リンクの遠隔側についての情報を包含し、接続を確認するのに使用されてよい。リンク情報に加えて、ネットワーク・トラフィックの送信を可能にすべく、ノード発見およびアービタ・プログラム110A、110Bは、リンクのいずれの側が、レベルの高い方の初期設定手続きを開始するかのアービトレーションを行うのに使用される情報を送信してよい。一実施形態において、このアービトレーション情報は、タイムスタンプ・データから成ることが可能である。アービトレーション情報の他に、そのペイロードを介して送信される情報は、イーサネット(R)・アドレスと、グローバル識別子と、管理QP番号と、シスプレックス(R)時間プロトコル(STP)QPと、遠隔直接メモリ・アクセス(RDMA)キー情報と、ホスト・ファームウェア・バージョンとを含んでよい。イーサネット(R)・アドレスおよびグループ識別子(GID)は、向けられたネットワーク・トラフィックをポイント・ツー・ポイントとネットワーク化された交換環境の両方で送信するための識別情報であることが可能である。ノード発見およびアービタ・プログラム110A、110Bは、QP番号およびRDMAキー情報を使用して、パケットが、特定の終点アダプタに着信した後、どこに向かうべきかを翻訳する。最後に、ファームウェア・バージョンは、制御ブロックにおいて設定されてよく、ノード発見およびアービタ・プログラム110A、110Bは、ファームウェア・バージョンを使用して、サポートされる符号機能を識別してよい。
次に、206において、ノード発見およびアービタ・プログラム110A、110Bが、管理トラフィック・レーンを作成する。管理トラフィック・レーンは、必要である可能性がある特定のプロトコルがどのようなものであれ、そのプロトコルのために汎用の経路を提供するネットワーク・トラフィックのための通信チャネルであることが可能である。このことは、時間同期プロトコル、またはシスプレックス(R)・ワイド・ロギング・プロトコルなどの情報収集プロトコルを含むことが可能である。代替の実施形態において、管理レーンは、チャネル特有ではない、STPなどの複数の開始プロトコルを利用してよい。
ステップ208から216は、チャネル初期設定手続きを含む。より早期のステップにおいてポート・レベル/管理フロー・インターフェースのすべてが確立されると、次のステップは、チャネル初期設定手続きである。このチャネル初期設定手続きを実行するエンティティは、チャネル初期設定アービタとして知られ、いずれのチャネルが有効であるか、いずれのチャネルが誤り状態になく、または閾値に入れられているか、およびいずれのチャネルが正しいアーキテクチャ状態にあるかを判定することが可能である。定義された各チャネルに関して、チャネル初期設定アービタは、タイマを開始し、かつ接続の検証、補助的キュー・ペア接続、バッファ接続、およびノード記述子交換のステップを含むチャネル初期設定手続きを始める。
208において、ノード発見およびアービタ・プログラム110A、110Bが、ノード間の接続を検証する。接続検証段階は、ノード発見およびアービタ・プログラム110A、110Bが発見したノードが正しいことを確実にするのに役立つ。この段階はまず、ノード発見およびアービタ・プログラム110A、110Bが、リンク初期設定のノード発見部分においてアービトレーション情報を使用して確立した、リンクの能動側の動作を伴うことが可能であり、まず、ノード発見およびアービタ・プログラム110A、110Bが、チャネルのローカル・ノードの(能動側の)定義を遠隔ノード(受動側)に送信する。チャネル定義は、チャネル・サブシステム識別子(CSSID)およびチャネル経路識別子(CHPID)として知られる2つの識別子から成ることが可能である。受動側で、能動側のチャネル情報は、受動側のチャネル情報と照合確認される。情報が合致した場合、肯定的な応答が与えられてよく、受動側の情報は、能動側に送信されてよい。情報のいずれかが合致しない場合、誤りを知らせるべく応答符号が能動側に返信されてよく、特定の誤り符号がユーザに送信されてよい。接続検証パケットが、管理QPを使用して送信される。
次に、210において、ノード発見およびアービタ・プログラム110A、110Bが、チャネルの補助的トラフィック・フロー・インターフェース(AUX QP)を開始する。このフロー・インターフェースは、チャネル特有の非データ情報のために使用される。チャネル特有の情報は、そのポート上の他のチャネルに影響を及ぼすことなしにこのチャネルを維持すべく、ハートビートおよび小さい回復アクションを含む。ノード発見およびアービタ・プログラム110A、110Bは、次のステップにおいて説明されるのと同一の接続手続きを使用してAUX QPフロー・インターフェースを確立する。AUX QPフロー・インターフェースを確立することに加えて、ノード発見およびアービタ・プログラム110A、110Bは、アダプタから前に確保されているQPのセットを選択し、対応する制御メモリ領域を割り当てる。また、ノード発見およびアービタ・プログラム110A、110Bは、何らかの新たなパケットが、そのチャネルに割り当てられたQPのうちの1つの上で着信しており、処理される必要があることをホスト・ファームウェアに通知するのに使用される1つの完了キューを確立することもする。
次に、212において、ノード発見およびアービタ・プログラム110A、110Bが、バッファをネゴシエートし、かつ接続する。一実施形態において、ノード発見およびアービタ・プログラム110A、110Bは、以下に説明される4ステップ・プロセスを利用する。すなわち、最初に、能動側と受動側の両方のホスト・ファームウェアが、それぞれが接続することを必要とする各種類のQPを列挙する。次に、この情報を用いて、いずれかの側のファームウェアが、各QPを1つずつ接続する。使用されるべきQPの数をネゴシエートするために、能動側がサポートするQPの最大数を包含するメッセージが、能動側から受動側に管理QPを使用して送信される。次に、受動側が、それらの値を受動側が有するものと照合確認し、それらの値が同一である場合、受動側は、それらの値を能動側に戻す。それらの値が同一ではない場合、2つの値のうちの後者が能動側に戻される。次に、能動側が、能動側が受信したQP数を検査し、次に、ネゴシエートされた数のQPを1つずつ順次に通って、各側に2段階で各QPを確立する。能動側のQPは、リセット状態からセット・アップされ、かつ初期設定され、次に、能動側が、管理QP上で受動側に接続要求を送信し、ここで、対応するQPは、リセット状態から初期設定される。受動側が終わると、受動側は、接続応答を能動側に戻し、能動QPがトラフィックを受信するように準備を整えられ、次に、受動側に接続肯定応答を送信するように、かつ再送するように準備が整えられる。次に、受動側が、受動側のQPに関して同一の2ステップを実行し、能動側に「接続完了」メッセージを戻し、ここで、能動側は、次のQP接続を順次に初期設定する。
次に、214において、ノード発見およびアービタ・プログラム110A、110Bが、管理QP上でノード記述子を交換する。このことは、他方の側に特定のチャネル情報を与え、かつデータ・トラフィックが始まることを可能にする。この情報は、能動側から受動側に行って戻る単純なピンポン・メッセージである。このステップが完了すると、そのチャネルは初期設定され、ノード発見およびアービタ・プログラム110A、110Bが、トラフィックが送られることが可能であること、およびチャネルが公称どおりの性能を示しており、かつチャネルに誤りがないことを確かめるべく試験を行う。ノード発見およびアービタ・プログラム110A、110Bは、チャネルの利用可能性についてソフトウェア・プログラム108A、108Bに通知を行うべく、バックエンドにおいてリンク初期設定プログラムを呼び出してよい。
次に、216において、ノード発見およびアービタ・プログラム110A、110Bが、定義されたチャネルのすべてが、チャネル初期設定アービタ機能を使用して初期設定されているかどうかを判定する。ノード発見およびアービタ・プログラム110A、110Bは、定義されたチャネルのリストを横断することによってこの判定を行う。一実施例によれば、方法は、チャネル初期設定アービタ機能が、すべてのチャネルが初期設定されていると判定した(ステップ216、「はい」の分岐)場合、終了してよい。チャネル初期設定アービタ機能が、すべてのチャネルが初期設定されているわけではないと判定した(ステップ216、「いいえ」の分岐)場合、ノード発見およびアービタ・プログラム110A、110Bは、チャネル初期設定手続きを再開すべく、かつノード間の接続を検証すべくステップ208に進んでよい。
図3は、少なくとも1つの実施形態によるリンク初期設定手続きを例示する機能ブロック図である。アダプタ初期設定304の実行は、図2のステップ202においてさらに説明される。本発明の一実施形態におけるアダプタ初期設定304中、ポート初期設定306が、図2のステップ204および206においてさらに説明される。チャネル初期設定308が、図2のステップ208から216においてさらに述べられる。チャネル初期設定308中、チャネル初期設定アービタが、いずれのチャネルが有効であるか、いずれのチャネルが誤り状態になく、または閾値に入れられているか、およびいずれのチャネルが正しいアーキテクチャ状態にあるかを判定するのに利用される。チャネル初期設定308の後、プロセスは、新たに作成された仮想チャネルをソフトウェア・プログラム108に引き渡す。
図2~図3は、一実施例の例示を提供するに過ぎず、異なる実施形態がどのように実施されてよいかに関して何ら限定を暗示するものではないことが認識されてよい。図示される環境の多くの変形が、設計上および実施上の要件に基づいて行われてよい。
図4は、本発明の実施形態による図1に示されるネットワーク・ノード102A、102Bの内部構成要素および外部構成要素のブロック図400である。図4は、一実施例の例示を提供するに過ぎず、異なる実施形態が実施されてよい環境に関して何ら限定を暗示するものではないことを認識されたい。図示される環境の多くの変形が、設計上および実施上の要件に基づいて行われてよい。
データ処理システム402、404は、マシン可読プログラム命令を実行することができる任意の電子デバイスを表す。データ処理システム402、404は、スマート・フォン、コンピュータ・システム、PDA、またはその他の電子デバイスを表すことが可能である。データ処理システム402、404によって表されることが可能なコンピューティング・システム、コンピューティング環境、またはコンピューティング構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、ネットワークPC、ミニコンピュータ・システム、ならびに前述のシステムもしくはデバイスのうちのいずれかを含む分散クラウド・コンピューティング環境を含むが、以上には限定されない。
ネットワーク・ノード102A、102Bは、図4に例示される、内部構成要素402a、402b、および外部構成要素404a、404bのそれぞれのセットを含んでよい。内部構成要素402のセットのそれぞれは、1つもしくは複数のバス426上の1つもしくは複数のプロセッサ420、1つもしくは複数のコンピュータ可読RAM422、および1つもしくは複数のコンピュータ可読ROM424、ならびに1つもしくは複数のオペレーティング・システム428、および1つもしくは複数のコンピュータ可読有形ストレージ・デバイス430を含む。ネットワーク・ノード102A、102B上の1つもしくは複数のオペレーティング・システム428、ソフトウェア・プログラム108、ならびにノード発見およびアービタ・プログラム110A、110Bは、それぞれのRAM422(通常、キャッシュ・メモリを含む)のうちの1つまたは複数を介してそれぞれのプロセッサ420のうちの1つまたは複数によって実行されるようにそれぞれのコンピュータ可読有形ストレージ・デバイス430のうちの1つまたは複数の上に記憶される。図4に例示される実施形態において、コンピュータ可読有形ストレージ・デバイス430のそれぞれは、内部ハード・ドライブの磁気ディスク・ストレージ・デバイスである。代替として、コンピュータ可読有形ストレージ・デバイス430のそれぞれは、ROM424、EPROM、フラッシュ・メモリなどの半導体ストレージ・デバイス、あるいはコンピュータ・プログラムおよびデジタル情報を記憶することができる他の任意のコンピュータ可読有形ストレージ・デバイスである。
また、内部構成要素402a、402bの各セットは、CD-ROM、DVD、メモリ・スティック、磁気テープ、磁気ディスク、光ディスク、または半導体ストレージ・デバイスなどの1つまたは複数のポータブルのコンピュータ可読有形ストレージ・デバイス438から読取りを行うべく、かつデバイス438に書込みを行うべくR/WドライブもしくはR/Wインターフェース432も含む。ノード発見およびアービタ・プログラム110A、110Bなどのソフトウェア・プログラムは、それぞれのポータブルのコンピュータ可読有形ストレージ・デバイス438のうちの1つまたは複数の上に記憶されること、それぞれのR/WドライブもしくはR/Wインターフェース432を介して読み取られること、およびそれぞれのハード・ドライブ430にロードされることが可能である。
また、内部構成要素402a、402bの各セットは、TCP/IPアダプタ・カード、無線Wi-Fiインターフェース・カード、または3Gもしくは4Gの無線インターフェース・カード、または他の有線通信リンクもしくは無線通信リンクなどのネットワーク・アダプタもしくはネットワーク・インターフェース436も含む。ネットワーク・ノード102A、102Bにおけるソフトウェア・プログラム108、ならびにノード発見およびアービタ・プログラム110A、110Bは、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、または他のワイド・エリア・ネットワーク)およびそれぞれのネットワーク・アダプタもしくはネットワーク・インターフェース536を介して外部コンピュータからネットワーク・ノード102A、102Bにダウンロードされることが可能である。ネットワーク・アダプタもしくはネットワーク・インターフェース436から、ネットワーク・ノード102A、102Bにおけるソフトウェア・プログラム108、ならびにノード発見およびアービタ・プログラム110A、110Bは、それぞれのハード・ドライブ430にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含んでよい。
外部構成要素404a、404bのセットのそれぞれは、コンピュータ・ディスプレイ・モニタ444と、キーボード442と、コンピュータ・マウス434とを含むことが可能である。また、外部構成要素404a、404bは、タッチ・スクリーン、仮想キーボード、タッチ・パッド、ポインティング・デバイス、およびその他のヒューマン・インターフェース・デバイスを含むことも可能である。また、内部構成要素402a、402bのセットのそれぞれは、コンピュータ・ディスプレイ・モニタ444、キーボード442、およびコンピュータ・マウス434とインターフェースするためのデバイス・ドライバ440も含む。デバイス・ドライバ440、R/WドライブもしくはR/Wインターフェース432、およびネットワーク・アダプタもしくはネットワーク・インターフェース436は、ハードウェアと、ソフトウェア(ストレージ・デバイス430またはROM424、あるいはその両方に記憶される)とを含む。
本開示は、クラウド・コンピューティングについての詳細な説明を含むものの、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことをあらかじめ理解されたい。むしろ、本発明の実施形態は、現在、知られている、または後に開発される他の任意のタイプのコンピューティング環境と一緒に実施されることが可能である。
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限の対話で迅速にプロビジョニングされ、かつリリースされることが可能である構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有されるプールに対する好都合な、オンデマンドのネットワーク・アクセスを可能にするためのサービス・デリバリのモデルである。このクラウド・モデルは少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとを含む。
特徴は、以下のとおりである:
オンデマンド・セルフ・サービス:クラウド・コンシューマが、サービスのプロバイダとの人のやりとりを要求することなしに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることが可能である。
ブロード・ネットワーク・アクセス:能力が、ネットワーク上で利用可能であり、かつ異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、モバイル電話、ラップトップ、およびPDA)による使用を促進する標準機構を通じてアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースは、様々な物理リソースおよび仮想リソースが、デマンドに応じて動的に割り当てられること、および再割当てされることが行われて、マルチテナント・モデルを使用して複数のコンシューマに役立てられるようにプールされる。コンシューマが、一般に、提供されるリソースの厳密なロケーションをまったく管理しておらず、それについての知識も有さないが、抽象性のより高いレベルにおいてロケーション(例えば、国、州、またはデータセンタ)を指定することができる可能性があるという点で、ロケーション独立の感覚が存在する。
迅速な伸縮性:能力が、急速にスケールアウトするように、かつ急速にスケールインすべく迅速に解放されるように、一部の事例において自動的に、迅速に、かつ伸縮的にプロビジョニングされることが可能である。コンシューマには、プロビジョニングのために利用可能な能力は、しばしば、無制限であるように見え、かつ任意の時点で任意の数量で購入されることが可能である。
測定されるサービス:クラウド・システムが、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適切な抽象性の何らかのレベルで測定能力を活用することによって、リソース使用を自動的に制御し、かつ最適化する。リソース使用率が、監視され、制御され、かつ報告されて、利用されるサービスのプロバイダとコンシューマの両方に透明性を提供することが可能である。
サービス・モデルは、以下のとおりである:
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。コンシューマは、限られたユーザ特有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力さえも含め、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしない。
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマによって作成された、または獲得されたアプリケーションをクラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含め、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、展開されるアプリケーション、および、場合により、アプリケーションをホストする環境構成を管理する。
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、コンシューマが、オペレーティング・システムと、アプリケーションとを含むことが可能な任意のソフトウェアを展開すること、および実行することができる場合に、処理、ストレージ、ネットワーク、およびその他の基礎的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、オペレーティング・システム、ストレージ、展開されるアプリケーション、および、場合により、選定されたネットワーキング構成要素(例えば、ホスト・ファイアウォール)の限られた制御を管理する。
展開モデルは、以下のとおりである:
プライベート・クラウド:クラウド・インフラストラクチャは、専ら組織のために運用される。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されることが可能であり、かつ敷地内に存在することも、敷地外に存在することも可能である。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、かつ共有される関心(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されることが可能であり、かつ敷地内に存在することも、敷地外に存在することも可能である。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大きい業界グループに提供され、かつクラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ移植性およびアプリケーション移植性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された、または専有の技術によって一緒に結び付けられた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
クラウド・コンピューティング環境は、ステートレスであること、低結合、モジュール性、および意味相互運用性に焦点を合わせて、サービス指向である。クラウド・コンピューティングの中核には、互いに接続されたノードのネットワークを含むインフラストラクチャがある。
次に図5を参照すると、例示的なクラウド・コンピューティング環境50が、示される。図示されるとおり、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)もしくはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信相手とすることが可能な、1つまたは複数のクラウド・コンピューティング・ノード100を含む。ノード100は、互いに通信することが可能である。ノード100は、前段で説明されるプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなどの、1つまたは複数のネットワークにおいて、物理的に、または仮想でグループ化されてよい(図示せず)。このことは、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することを可能にする。図5に示されるコンピューティング・デバイス54A~Nのタイプは、単に例示的であることが意図されること、ならびにコンピューティング・ノード100およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続、あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信することが可能である(例えば、ウェブ・ブラウザを使用して)ことが理解される。
次に図6を参照すると、クラウド・コンピューティング環境50によって提供される機能抽象化層のセット600が示される。図6に示される構成要素、層、および機能は、単に例示的であることが意図され、本発明の実施形態は、これらに限定されないことをあらかじめ理解されたい。図示されるとおり、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60が、ハードウェア構成要素と、ソフトウェア構成要素とを含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。一部の実施形態において、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67と、データベース・ソフトウェア68とを含む。
仮想化層70が、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供されることが可能な抽象化層を提供する。
一実施例において、管理層80が、後段で説明される機能を提供することが可能である。リソース・プロビジョニング81が、クラウド・コンピューティング環境内でタスクを実行するのに利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。測定および価格設定82が、クラウド・コンピューティング環境内でリソースが利用されるにつれての費用追跡、およびこれらのリソースの消費に関する料金請求またはインボイス送付を提供する。一実施例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことが可能である。セキュリティが、クラウド・コンシューマおよびタスクに関する身元検証、ならびにデータおよびその他のリソースに関する保護を提供する。ユーザ・ポータル83が、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84が、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割当ておよび管理を提供する。サービス・レベル合意(SLA)計画および履行85が、SLAにより将来の要求が予期されるクラウド・コンピューティング・リソースの事前準備および調達を提供する。
作業負荷層90が、クラウド・コンピューティング環境が利用されることが可能な機能の例を提供する。この層から提供されることが可能な作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育デリバリ93、データ・アナリティクス処理94、トランザクション処理95、ならびにノード発見およびアービタ・メソッド96を含む。ノード発見およびアービタ・メソッド96は、1つまたは複数の通信チャネルを実施する際に、遠隔ノードアドレス指定可能性を発見すべく媒体アクセス制御(MAC)マルチキャスト手続きを使用すること、およびキュー・ペアのセットを接続すべくInfiniBand(R)(InfiniBand(R)およびすべてのInfiniBand(R)ベースの商標およびロゴは、システムI/O株式会社、またはシステムI/O株式会社の関連会社、あるいはその両方の商標または登録商標である)プロトコルを使用することと関係してよい。
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることも、開示される実施形態に限定されることも意図していない。説明される実施形態の範囲を逸脱することなく、多くの変形形態および変更形態が当業者には明白となろう。本明細書において使用される術語は、実施形態の原理、実際的な応用、または市場において見られる技術に優る技術的改良を最もよく説明するように、あるいは当業者が、本明細書において開示される実施形態を理解することを可能にするように選択されている。

Claims (10)

  1. 通信チャネル実施のための、遠隔ノード発見、および複数のキュー・ペアを結び付けることのためのプロセッサによって実施される方法であって、
    複数のノードの間で1つまたは複数のポイント・ツー・ポイント・リンクを接続すべく複数のハードウェアを準備するステップと
    発見プロセスを通じて前記1つまたは複数のポイント・ツー・ポイント・リンク内で前記複数のノードを発見するステップと
    前記複数のノード間に複数の管理用トラフィック・レーンを作成するステップであって、前記複数の管理用トラフィック・レーンは、チャネルに依存しない複数の開始プロトコルを利用する、ステップと
    前記複数のノード間の複数の接続を検証するステップと
    前記複数の接続上で1つまたは複数の補助的トラフィック・フロー・インターフェースを開始するステップと
    前記複数の接続のための複数のバッファをネゴシエートし、かつ接続すること、および
    前記複数のノードの間で複数のノード記述子を交換するステップ
    を含む方法。
  2. デバイス・ドライバ層内で実行される、請求項1に記載の方法。
  3. 複数のノードの間で1つまたは複数のポイント・ツー・ポイント・リンクを接続すべく複数のハードウェアを準備するステップが、
    前記複数のハードウェアから複数のバッファ・リソースを前もって確保するステップをさらに含む、請求項1に記載の方法。
  4. 前記複数のハードウェアから前記複数のバッファ・リソースを前もって前記確保するステップが、単一ルート入力/出力仮想化インターフェースを使用して行われる、請求項3に記載の方法。
  5. 前記複数のハードウェアからの複数のバッファ・リソースの確保が、1回、行われる、請求項1に記載の方法。
  6. チャネル初期設定アービタ機能を利用して、前記複数の接続内の複数のチャネルのすべてが初期設定されていることを確実にすることをさらに含む、請求項1に記載の方法。
  7. 前記複数のバッファをネゴシエートし、かつ接続することが、4ステップのキュー・ペア接続プロセスを含む、請求項1に記載の方法。
  8. 請求項1~7の何れか1項に記載の方法の各ステップをコンピュータ・ハードウェアによる手段として構成した、コンピュータ・システム。
  9. 請求項1~7の何れか1項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
  10. 請求項9に記載の前記コンピュータ・プログラムをコンピュータ可読記憶媒体に記録した、記憶媒体。
JP2020500079A 2017-07-12 2018-07-04 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム Active JP7098711B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/647,561 US10320654B2 (en) 2017-07-12 2017-07-12 Method for remote node discovery and communication channel validation and connection
US15/647,561 2017-07-12
US15/840,600 2017-12-13
US15/840,600 US10326687B2 (en) 2017-07-12 2017-12-13 Method for remote node discovery and communication channel validation and connection
PCT/IB2018/054942 WO2019012375A1 (en) 2017-07-12 2018-07-04 METHOD FOR REMOTE NODE DISCOVERY AND COMMUNICATION CHANNEL CONNECTION AND VALIDATION

Publications (3)

Publication Number Publication Date
JP2020526968A JP2020526968A (ja) 2020-08-31
JP2020526968A5 JP2020526968A5 (ja) 2020-10-08
JP7098711B2 true JP7098711B2 (ja) 2022-07-11

Family

ID=64999308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020500079A Active JP7098711B2 (ja) 2017-07-12 2018-07-04 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム

Country Status (6)

Country Link
US (2) US10320654B2 (ja)
JP (1) JP7098711B2 (ja)
CN (1) CN110869919B (ja)
DE (1) DE112018002049T5 (ja)
GB (1) GB2577846B (ja)
WO (1) WO2019012375A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320654B2 (en) 2017-07-12 2019-06-11 International Business Machines Corporation Method for remote node discovery and communication channel validation and connection
CN110336800B (zh) * 2019-06-19 2022-05-20 茂名市群英网络有限公司 一种云服务的管理控制系统
CN114866529A (zh) * 2022-04-29 2022-08-05 阿里巴巴(中国)有限公司 基于rdma的通信方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249357A (ja) 2006-03-14 2007-09-27 Toyota Motor Corp 情報処理装置、分散処理システム及びタスク管理方法
US20090216893A1 (en) 2008-02-25 2009-08-27 International Business Machines Corporation Buffer discovery in a parrallel multi-tasking multi-processor environment
US20170085430A1 (en) 2015-09-23 2017-03-23 International Business Machines Corporation Distributed subnet manager for infiniband networks
WO2017065905A1 (en) 2015-10-13 2017-04-20 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
WO2017091465A1 (en) 2015-11-24 2017-06-01 Oracle International Corporation System and method for efficient virtualization in lossless networks

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457683A (en) 1993-05-07 1995-10-10 Apple Computer, Inc. Link and discovery protocols for a ring interconnect architecture
US20030214938A1 (en) * 2002-03-21 2003-11-20 Jindal Deepak Kumar Method for routing of label switched paths (LSPS) through an internet supporting multi-protocol label switching (MPLS) technology
US7668923B2 (en) 2003-10-14 2010-02-23 International Business Machines Corporation Master-slave adapter
WO2007120127A2 (en) 2006-04-13 2007-10-25 The Mitre Corporation Reliable neighbor node discovery
US7730197B2 (en) 2006-06-30 2010-06-01 International Business Machines Corporation Server-based acquisition and usage of dynamic MAC addresses in a virtualized ethernet environment
US7961729B2 (en) 2007-01-08 2011-06-14 International Business Machines Corporation Broadcast and multicast packet management
US7894344B2 (en) * 2007-03-02 2011-02-22 Adva Ag Optical Networking System and method for aggregated shaping of multiple prioritized classes of service flows
US20090157844A1 (en) 2007-12-13 2009-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Network automatic discovery method and system
WO2012094022A1 (en) 2011-01-09 2012-07-12 Hewlett-Packard Development Company, L.P. Computer network node discovery sequencing
ES2766752T3 (es) 2012-08-22 2020-06-15 Signify Holding Bv Descubrimiento de red con opción de enlace táctil
CN104158747B (zh) 2013-05-14 2019-09-24 中兴通讯股份有限公司 网络拓扑发现方法和系统
WO2015078008A1 (zh) 2013-11-29 2015-06-04 华为技术有限公司 一种链路发现的方法、系统及设备
US10320654B2 (en) 2017-07-12 2019-06-11 International Business Machines Corporation Method for remote node discovery and communication channel validation and connection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249357A (ja) 2006-03-14 2007-09-27 Toyota Motor Corp 情報処理装置、分散処理システム及びタスク管理方法
US20090216893A1 (en) 2008-02-25 2009-08-27 International Business Machines Corporation Buffer discovery in a parrallel multi-tasking multi-processor environment
US20170085430A1 (en) 2015-09-23 2017-03-23 International Business Machines Corporation Distributed subnet manager for infiniband networks
WO2017065905A1 (en) 2015-10-13 2017-04-20 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
WO2017091465A1 (en) 2015-11-24 2017-06-01 Oracle International Corporation System and method for efficient virtualization in lossless networks

Also Published As

Publication number Publication date
GB2577846B (en) 2020-09-02
US10326687B2 (en) 2019-06-18
CN110869919B (zh) 2023-09-19
JP2020526968A (ja) 2020-08-31
GB202000521D0 (en) 2020-02-26
US10320654B2 (en) 2019-06-11
DE112018002049T5 (de) 2020-01-09
GB2577846A (en) 2020-04-08
CN110869919A (zh) 2020-03-06
US20190020567A1 (en) 2019-01-17
US20190020569A1 (en) 2019-01-17
WO2019012375A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
US11178254B2 (en) Chaining virtual network function services via remote memory sharing
US10320674B2 (en) Independent network interfaces for virtual network environments
US9667749B2 (en) Client-initiated leader election in distributed client-server systems
US9654928B2 (en) Tracking information technology (IT) assets
US9753786B2 (en) Client server communication system
US9660895B1 (en) Geolocation routing and simulation of network conditions
US9420562B1 (en) Tracking information technology (IT) assets
US9253061B2 (en) Tunnel health check mechanism in overlay network
JP7098711B2 (ja) 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム
US20150348177A1 (en) Managing lease transactions in distributed systems
US10025640B2 (en) Balancing work of tasks at a sending node of a transaction server
US9760412B2 (en) Client server communication system
US9916280B2 (en) Virtualizing TCP/IP services with shared memory transport
JP2023551837A (ja) 通信要求に基づく要求元の真正性評価

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220210

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220629

R150 Certificate of patent or registration of utility model

Ref document number: 7098711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150