JP3783017B2 - ローカル識別子を使ったエンド・ノード区分 - Google Patents
ローカル識別子を使ったエンド・ノード区分 Download PDFInfo
- Publication number
- JP3783017B2 JP3783017B2 JP2003509336A JP2003509336A JP3783017B2 JP 3783017 B2 JP3783017 B2 JP 3783017B2 JP 2003509336 A JP2003509336 A JP 2003509336A JP 2003509336 A JP2003509336 A JP 2003509336A JP 3783017 B2 JP3783017 B2 JP 3783017B2
- Authority
- JP
- Japan
- Prior art keywords
- port
- hca
- switch
- subnet
- node
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 22
- 230000008859 change Effects 0.000 abstract description 8
- 230000004044 response Effects 0.000 abstract description 8
- 238000000638 solvent extraction Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 43
- 239000004744 fabric Substances 0.000 description 31
- 238000004891 communication Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
本発明は、一般に、コンピュータ・システム間の通信に関する。
システム・エリア・ネットワーク(SAN)では、ハードウェアは、入出力装置(I/O)および一般のコンピュータ・ノード間のプロセス間通信(IPC)に使用できるメッセージ受け渡し機構を提供する。消費側は、SANチャネル・アダプタ(CA)上にある送受信作業待ち行列に送受信メッセージを通知することによってSANメッセージ受け渡しハードウェアにアクセスする。送受信作業待ち行列(WQ)は、待ち行列対(QP)として消費側に割り当てられる。メッセージは、5つの異なる定義済みトランスポート・タイプ、すなわち高信頼接続(RC)、高信頼データグラム(RD)、低信頼接続(UC)、低信頼データグラム(UD)、および生データグラム(RawD)を介して送信することができる。さらに、同じままの経路指定ヘッダ・レイアウトを有するカスタム・パケットを様々な企業が定義できる1組の製造者定義可能命令コードもある。消費側は、SAN送受信作業完了(WC)を介して完了待ち行列(CQ)から定義済みメッセージの結果を取り出す。製造者定義可能命令は、定義済みパケット・タイプと同じ待ち行列構造を使用するか否かについては定義されない。パケット・タイプに関わらず、送信元チャネル・アダプタは、送信メッセージをセグメント化しそれらを宛先に送信する処理を行う。宛先チャネル・アダプタは、受信メッセージを再組立てしそれらを宛先の消費側によって指定されたメモリ空間に配置する処理を行う。ホスト・チャネル・アダプタ(HCA)とターゲット・チャネル・アダプタ(TCA)の2つのチャネル・アダプタ・タイプがある。ホスト・チャネル・アダプタは、汎用コンピュータ・ノードがSANファブリックにアクセスする際に使用する。消費側は、SANのverb(動詞)を使ってホスト・チャネル・アダプタ機能にアクセスする。verbを解釈しチャネル・アダプタに直接アクセスするソフトウェアは、チャネル・インターフェイス(CI)と呼ばれる。
インフィニバンド(InfiniBand)(インフィニバンド・トレード・アソシエーション(InfiniBandTrade Association)の商標)コンポーネントには、初期設定時にローカル識別子(LID)が割り当てられる。このLIDを使ってサブネット内のコンポーネントをアドレス指定する。すべてのインフィニバンド・パケットは、そのパケットのサブネット内の送信元アドレスおよび宛先アドレスを定義する送信元LIDおよび宛先LIDを含む。また、インフィニバンド・コンポーネントには、少なくとも1つの区分キー(P_Key)も割り当てられる。このP_Keyを使ってインフィニバンド・ファブリックを1つまたは複数のグループに区分する。次いで、各インフィニバンド・コンポーネントを1つまたは複数のグループに入れる。他のすべての通信が可能である。エンド・ノードは区分にグループ化され、アクセスはP_Keyを介して制御される。インフィニバンド区分機構は、本質的に、ホストがアダプタおよび共用アダプタを制御された形で提供できるようにするものである。
しかし、インフィニバンドは、単一のチャネル・アダプタ・ポートを共用する複数のオペレーティング・システム・インスタンスが同時にインフィニバンド・サブネットへの制御されたアクセスを得られるように1つのエンド・ノードを区分する機構は提供しない。従来技術のシステムは、一般に、それらのオペレーティング・システム・インスタンスを識別するために余分な1つまたは複数のパケット・ヘッダを付加する。1つまたは複数のパケット・ヘッダを付加することによって、データ伝送はより複雑になる。したがって、このエンド・ノード区分機構がないと、論理区分または物理区分による処理およびメモリ・リソースの区分をサポートするより上位のサーバでは問題が生じる。
したがって、単一の物理コンポーネントを、各単一コンポーネントが独自のアクセス制御レベルを有する複数のコンポーネントであるように見せることができる機構が求められている。これらのコンポーネントは、ホスト・チャネル・アダプタ(HCA)、ターゲット・チャネル・アダプタ(TCA)、またはスイッチとすることができる。
本発明は、請求項1で特許請求される方法、請求項2で特許請求される対応するシステムおよび請求項3で特許請求されるコンピュータ・プログラムを提供する。
本発明の新規の特徴と思われる特徴は添付の特許請求の範囲に記載される。しかし、本発明自体、ならびに本発明の好ましい使用形態、さらなる目的および利点については、例示的実施形態について以下の詳細な説明を、添付の図面と併せて読めば最も良く理解されるであろう。
ネットワーク・コンピュータ・システムは、エンド・ノード、スイッチ、ルータ、およびこれらのコンポーネントを相互接続するリンクを備える。エンド・ノードは、メッセージを複数のパケットにセグメント化しリンクを介してそれらのパケットを伝送する。スイッチおよびルータは、エンド・ノードを相互接続し、該当するエンド・ノードにパケットを経路指定する。エンド・ノードは、宛先においてパケットを再組立てしてメッセージにする。
次に、各図、具体的には、図1を参照すると、本発明の好ましい一実施形態によるネットワーク・コンピュータ・システムの図が示してある。図1に示すネットワーク・コンピュータ・システムは、システム・エリア・ネットワーク(SAN)100の形を取っているが、これは単に例示のためのものにすぎない。以下に述べる本発明の各実施形態は、他の多くのタイプおよび構成のコンピュータ・システム上でも実装することができる。
SAN100は、ネットワーク・コンピュータ・システム内のノードを相互接続する、帯域幅が広く待ち時間の少ないネットワークである。ノードは、ネットワークの1つまたは複数のリンクに接続され、そのネットワーク内でメッセージの発信元または宛先あるいはその両方となる任意のコンポーネントである。図示の例では、SAN100は、ホスト・プロセッサ・ノード102、ホスト・プロセッサ・ノード104、RAID(redundant array independent disk)サブシステム・ノード106、入出力シャーシ・ノード108、およびPCI入出力シャーシ・ノード184の形でノードを含んでいる。図1に示す各ノードは例示のためのものにすぎず、SAN100は、何台のどんなタイプの独立プロセッサ・ノード、入出力アダプタ・ノード、入出力装置ノードでも接続することができる。これらのノードのいずれもエンドノードとして機能することができる。エンドノードとは、本明細書では、SAN100においてメッセージまたはフレームを発信し、あるいは最終的にそれらを消費する装置であると定義される。
本明細書では、メッセージとは、アプリケーションで定義されるデータ交換の単位であり、協働するプロセス間の基本通信単位である。パケットは、ネットワーク・プロトコル・ヘッダまたはトレーラあるいはその両方によってカプセル化された一データ単位である。ヘッダは、一般に、SANを介してフレームを送信するための制御および経路指定情報を提供する。トレーラは、一般に、パケットの内容が破壊された状態で送達されないようにするための制御および巡回冗長検査(CRC)データを含む。
SAN100は、ネットワーク・コンピュータ・システム内での入出力とプロセッサ間通信の両方をサポートする通信および管理インフラストラクチャを含む。図1に示すSAN100は、多くの装置が、セキュアなリモート管理環境において、高帯域幅と少ない待ち時間で、同時にデータを伝送することができるようにする交換通信ファブリック(fabric)を含む。各エンドノードは、SANファブリックによって複数のポートを介してやりとりし複数の経路を利用することができる。図1に示すSANを介した複数のポートおよび経路を耐障害機能および高帯域幅データ伝送のために用いることができる。
図1のSAN100は、スイッチ112、スイッチ114、スイッチ146、およびルータ117を含む。スイッチとは、複数のリンクを相互に接続し、小ヘッダ宛先ローカル識別子(DLID)フィールドを使って、サブネット内のあるリンクから別のリンクまでパケットを経路指定できるようにする装置である。ルータとは、複数のサブネットを相互に接続し、大ヘッダ宛先グローバル一意識別子(DGUID)を使って、第1のサブネット内のあるリンクから第2のサブネット内の別のリンクまでフレームを経路指定することができる装置である。
一実施形態では、リンクは、エンドノード、スイッチ、ルータなど任意の2つのネットワーク・ファブリック要素間の全二重チャネルである。適当なリンクの例には、それだけに限らないが、銅ケーブル、光ケーブル、バックプレーン上のプリント回路銅トレースおよびプリント回路板が含まれる。
高信頼性サービス・タイプでは、ホスト・プロセッサ・エンドノードや入出力アダプタ・エンドノードなどのエンドノードは、要求パケットを生成し、応答パケットを返す。スイッチおよびルータは、送信元から宛先へとパケットを受け渡す。ネットワーク中の各段階で更新される可変CRCトレーラ・フィールドを除き、各スイッチはそれらのパケットを変更せずに次々と受け渡す。ルータは、可変CRCトレーラ・フィールドを更新し、パケットを経路指定するときにヘッダ内の他のフィールドを変更する。
図1に示すSAN100では、ホスト・プロセッサ・ノード102、ホスト・プロセッサ・ノード104、RAID入出力サブシステム106、入出力シャーシ108、およびPCI入出力シャーシ184は、SAN100にインターフェイスする少なくとも1つのチャネル・アダプタ(CA)を含む。一実施形態では、各チャネル・アダプタは、SANファブリック上を伝送されるパケットを送信または受信するのに十分な詳細さでそのチャネル・アダプタ・インターフェイスを実装するエンドポイントである。ホスト・プロセッサ・ノード102は、ホスト・チャネル・アダプタ118およびホスト・チャネル・アダプタ120の形のチャネル・アダプタを含む。ホスト・プロセッサ・ノード104は、ホスト・チャネル・アダプタ122およびホスト・チャネル・アダプタ124を含む。また、ホスト・プロセッサ・ノード102は、バス・システム134によって相互接続された中央処理装置126〜130およびメモリ132も含む。ホスト・プロセッサ・ノード104も、同様に、バス・システム144によって相互接続された中央処理装置136〜140およびメモリ142を含む。ホスト・チャネル・アダプタ118はスイッチ112への接続を提供し、ホスト・チャネル・アダプタ120、122はスイッチ112、114への接続を提供し、ホスト・チャネル・アダプタ124はスイッチ114への接続を提供する。
一実施形態では、ホスト・チャネル・アダプタをハードウェアとして実装する。この実装形態では、このホスト・チャネル・アダプタ・ハードウェアは、大部分の中央処理装置と入出力アダプタの通信オーバヘッドを軽減する。また、このホスト・チャネル・アダプタのハードウェアとしての実装形態は、従来の通信プロトコルに伴うオーバヘッドなしの、交換ネットワークを介した複数同時通信も可能にする。一実施形態では、図1のホスト・チャネル・アダプタおよびSAN100は、ネットワーク・コンピュータ・システムの入出力およびプロセス間通信(IPC)消費側に、オペレーティング・システムのカーネル・プロセスが関与しないゼロ・プロセッサ/コピー・データ転送(zero processor-copy data transfer)を提供し、ハードウェアを用いて信頼性の高い耐障害通信を提供する。図1に示すように、ルータ117は、他のホストまたは他のルータに至る広域ネットワーク(WAN)接続またはローカル・エリア・ネットワーク(LAN)接続あるいはその両方に結合されている。
図1の入出力シャーシ108は、スイッチ146および複数の入出力モジュール148〜156を含む。これらの例では、入出力モジュールはアダプタ・カードの形を取る。図1に示すアダプタ・カードの例には、入出力モジュール148のSCSIアダプタ・カード、入出力モジュール152のファイバ・チャネル・ハブおよびファイバ・チャネル・アービトレーテッド・ループ(fiber channel-arbitrated loop)(FC−AL)装置用アダプタ・カード、入出力モジュール150のイーサネット(R)・アダプタ・カード、入出力モジュール154のグラフィック・アダプタ・カード、および入出力モジュール156のビデオ・アダプタ・カードが含まれる。公知のどんなタイプのアダプタ・カードも実装することができる。また、入出力アダプタは、アダプタ・カードをSANファブリックに結合する入出力アダプタ・バックプレーンのスイッチも含む。これらのモジュールは、ターゲット・チャネル・アダプタ158〜166を含む。
この例では、図1のRAIDサブシステム・ノード106は、プロセッサ168、メモリ170、ターゲット・チャネル・アダプタ(TCA)172、および複数の冗長なまたはストライプされた、あるいはその両方のストレージ・ディスク・ユニット174を含む。ターゲット・チャネル・アダプタ172は、完全に機能できるホスト・チャネル・アダプタとすることができる。
PCI入出力シャーシ・ノード184は、TCA186と、PCIバス188を介してTCA186に接続された複数のPCI入出力アダプタ(IOA)190〜192を含む。これらの例では、IOAはアダプタ・カードの形を取る。図1に示すアダプタ・カードの例には、モデム・アダプタ・カード190およびシリアル・アダプタ・カード192が含まれる。TCA186は、SANファブリックを介してHCA118などのHCAに伝送するために、PCI IOA190〜192から受け取ったトランザクション要求または応答をデータ・パケットにカプセル化する。HCA118は、受け取ったデータ・パケットがPCI通信を含むかどうか判定し、含む場合は、そのデータ・パケットを復号化して、DMA書込みまたは読取り操作などのカプセル化されたPCIトランザクション要求または応答を取り出す。HCA118はそれをメモリ132など該当するユニットに送る。そのPCIトランザクションがDMA読取り要求であった場合、HCAはメモリ132などのメモリからその応答を受け取り、そのPCI応答をデータ・パケットにカプセル化し、SANファブリックを介して要求元TCA186にそのデータ・パケットを戻す。次いでTCAはデータ・パケットからPCIトランザクションを復号化し、PCIバス188を介してPCI IOA190または192にそのPCIトランザクションを送る。
同様に、例えばCPU126などのプロセッサからPCI IOA190や192などのPCI IOAへの記憶要求およびロード要求は、SANファブリックを介して該当するPCI IOA190または192に対応するTCA186に伝送するために、HCAによってデータ・パケットにカプセル化される。TCA186は、そのデータ・パケットを復号化してPCI通信を取り出し、PCIバス188を介してPCI IOA190または192にそのPCI記憶またはロード要求およびデータを送る。その要求がロード要求であった場合、TCA186は、PCI IOA190または192から応答を受け取り、それをデータ・パケットにカプセル化し、SANファブリックを介してHCA118に送る。HCA118は、そのデータ・パケットを復号化してPCIデータおよびコマンドを取り出し、そのPCIデータおよびコマンドを要求元CPU126に送る。したがって、PCIアダプタをSANファブリックに接続することができる。
SAN100は、入出力用データ通信およびプロセッサ間通信を処理する。SAN100は、入出力に必要とされる高帯域幅および拡張可能性をサポートすると共に、プロセッサ間通信に必要とされる極めて少ない待ち時間および小さいCPUオーバヘッドもサポートする。ユーザ・クライアントは、オペレーティング・システム・カーネル・プロセスを回避し、ホスト・チャネル・アダプタなどのネットワーク通信ハードウェアに直接アクセスすることができ、それによって効率の良いメッセージ受け渡しプロトコルが可能になる。SAN100は、最新のコンピュータ・モデルに適し、新しい形の入出力およびコンピュータ・クラスタ通信の構成単位である。さらに、図1のSAN100は、入出力アダプタ・ノードが、入出力アダプタ・ノード間で、あるいはネットワーク・コンピュータ・システム中のプロセッサ・ノードのいずれかまたはすべてとやりとりできるようにする。入出力アダプタをSAN100に接続すると、得られる入出力アダプタ・ノードは、SAN100中のどのホスト・プロセッサ・ノードとも実質的に同じ通信機能を備える。
図1は、本発明の一例であってアーキテクチャ上の限定を意図するものではなく、例示のためのものにすぎない。以下で説明する本発明の各実施形態は、多くのタイプおよび構成のコンピュータ・システム上で実装することができる。例えば、本発明を実装するコンピュータ・システムは、1つのプロセッサおよび限られた数の入出力アダプタを備える小型サーバから、例えば何百ものプロセッサおよび何千もの入出力アダプタを備える1台または複数の大規模並列スーパーコンピュータ・システムにまで及ぶ。さらに、本発明は、例えばインターネットまたはイントラネットによって接続されるリモート・コンピュータ・システムのインフラストラクチャ内で実装することもできる。
図2に、本発明の好ましい一実施形態によるホスト・プロセッサ・ノードの機能構成図を示す。ホスト・プロセッサ・ノード200は、図1のホスト・プロセッサ・ノード102などのホスト・プロセッサ・ノードの一例である。
この例では、図2に示すホスト・プロセッサ・ノード200は、1組の消費側202〜208、およびホスト・プロセッサ・ノード200上で実行されるプロセスである1つまたは複数のPCI/PCI−Xデバイス・ドライバを含む。また、ホスト・プロセッサ・ノード200は、チャネル・アダプタ210およびチャネル・アダプタ212も含む。チャネル・アダプタ210はポート214、216を含み、チャネル・アダプタ212はポート218、220を含む。各ポートはリンクに接続される。これらのポートは図1のSAN100など、1つまたは複数のSANサブネットに接続することができる。これらの例では、チャネル・アダプタはホスト・チャネル・アダプタの形を取る。
消費側202〜208は、verbインターフェイス222とメッセージおよびデータ・サービス224とを介してSANにメッセージを送る。verbインターフェイスとは、本質的には、ホスト・チャネル・アダプタの機能の抽象記述である。オペレーティング・システムは、そのプログラミング・インターフェイスを介してこのverb機能の一部または全部を表示させることができる。基本的に、このインターフェイスはホストの挙動を定義する。さらに、ホスト・プロセッサ・ノード200はメッセージおよびデータ・サービス224を含む。これはverbレイヤより上位レベルのインターフェイスであり、チャネル・アダプタ210およびチャネル・アダプタ212を介して受け取ったメッセージおよびデータを処理するために使用される。メッセージおよびデータ・サービス224は消費側202〜208がメッセージおよび他のデータを処理するためのインターフェイスを提供する。さらに、チャネル・アダプタ210およびチャネル・アダプタ212は、SANに接続されたPCI IOA用のプロセッサからのロード命令および記憶命令を受け取ることができる。これらは、図2に示すように、verbレイヤを迂回する。
図3に、本発明の好ましい一実施形態によるホスト・チャネル・アダプタの図を示す。図3に示すホスト・チャネル・アダプタ300は、1組の待ち行列対(QP)302〜310を含み、それらはホスト・チャネル・アダプタ・ポート312〜316にメッセージを転送するために使用される一手段である。ホスト・チャネル・アダプタ・ポート312〜316へのデータのバッファリングは、仮想レーン(VL)318〜334を通じて行われ、各VLは独自の流れ制御を備える。サブネット・マネージャ(図示せず)は、各物理ポートのローカル・アドレス、すなわちそのポートのLIDを用いてチャネル・アダプタを構成する。サブネット・マネージャ・エージェント(SMA)336は、チャネル・アダプタを構成するためにサブネット・マネージャとやりとりする。メモリ変換および保護(MTP)338は、仮想アドレスを物理アドレスに変換しアクセス権を検査する機構である。直接メモリ・アクセス(DMA)340は、待ち行列対302〜310に対して、(やはり340を付した)メモリを使って直接メモリ・アクセス操作を提供する。
図3に示すホスト・チャネル・アダプタ300などの単一のチャネル・アダプタは、何千もの待ち行列対をサポートすることができる。それとは異なり、1つの入出力アダプタ内の1つのターゲット・チャネル・アダプタは、一般に、もっと少数の待ち行列対をサポートする。
各待ち行列対は、1つの送信作業待ち行列(SWQ)と1つの受信作業待ち行列からなる。送信作業待ち行列は、チャネルおよびメモリ意味メッセージの送信に使用される。受信作業待ち行列は、チャネル意味メッセージを受信する。消費側は、作業待ち行列に作業要求(WR)を出すために、本明細書でverbと呼ぶ、オペレーティング・システム特有のプログラミング・インターフェイスを呼び出す。
図4に、本発明の好ましい一実施形態による作業要求の処理を例示する図を示す。図4では、受信作業待ち行列400、送信作業待ち行列402、および完了待ち行列404は、消費側406からの消費側406向けの要求を処理するために存在する。消費側406からのこれらの要求は、結局は、ハードウェア408に送られる。この例では、消費側406は、作業要求410および412を生成し、作業完了414を受け取る。図4に示すように、作業待ち行列に出された作業要求を、作業待ち行列要素(WQE)と呼ぶ。
送信作業待ち行列402は、SANファブリック上を伝送されるデータを記述する作業待ち行列要素(WQE)422〜428を含む。受信作業待ち行列400は、SANファブリックからの着信チャネル意味データをどこに入れるべきかを記述する作業待ち行列要素(WQE)416〜420を含む。作業待ち行列要素は、ホスト・チャネル・アダプタ内でハードウェア408によって処理される。
verbはまた、完了待ち行列404から完了した作業を取り出す機構も提供する。図4に示すように、完了待ち行列404は、完了待ち行列要素(CQE)430〜436を含む。完了待ち行列要素は、以前完了した作業待ち行列要素に関する情報を含む。完了待ち行列404を使用して複数の待ち行列対に対する単一の完了通知点を作成する。完了待ち行列要素は、完了待ち行列上のデータ構造である。この要素は完了した作業待ち行列要素を記述する。この完了待ち行列要素は、完了した待ち行列対および特定の作業待ち行列要素を判定するのに十分な情報を含む。完了待ち行列コンテキストは、個々の完了待ち行列を指すポインタ、長さ、および個々の完了待ち行列を管理するのに必要な他の情報を含む情報ブロックである。
図4に示す送信作業待ち行列402でサポートされる作業要求の例は以下のとおりである。送信作業要求は、リモート・ノードの受信作業待ち行列要素によって参照されるデータ・セグメントに1組のローカル・データ・セグメントをプッシュするチャネル意味操作(semantic operation)である。例えば、作業待ち行列要素428は、データ・セグメント4(438)、データ・セグメント5(440)、データ・セグメント6(442)への参照を含む。この送信作業要求のデータ・セグメントのそれぞれは、ほぼ連続したメモリ領域を含む。これらのローカル・データ・セグメントの参照に使用されるこれらの仮想アドレスは、そのローカル待ち行列対を作成したプロセスのアドレス・コンテキスト(addresscontext)にある。
リモート直接メモリ・アクセス(RDMA)読取り作業要求は、リモート・ノード上のほぼ連続したメモリ空間を読み取るメモリ意味操作を提供する。メモリ空間は、メモリ領域の一部分でも、メモリ・ウィンドウの一部分でもよい。メモリ領域は、以前に登録された、仮想アドレスおよび長さで定義される1組のほぼ連続したメモリ・アドレスを参照する。メモリ・ウィンドウは、以前に登録された領域にバインドされた1組のほぼ連続したメモリ・アドレスを参照する。
RDMA読取り作業要求は、リモート・エンドノード上のほぼ連続したメモリ空間を読み取り、そのデータをほぼ連続したローカル・メモリ空間に書き込む。送信作業要求と同様に、RDMA読取り作業待ち行列要素がローカル・データ・セグメントを参照するために使用する仮想アドレスは、そのローカル待ち行列対を作成したプロセスのアドレス・コンテキストにある。例えば、受信作業待ち行列400中の作業待ち行列要素416は、データ・セグメント1 444、データ・セグメント2 446、およびデータ・セグメント448を参照する。それらのリモート仮想アドレスは、RDMA読取り作業待ち行列要素が対象とするリモート待ち行列対を所有するプロセスのアドレス・コンテキストにある。
RDMA書込み作業待ち行列要素は、リモート・ノード上のほぼ連続したメモリ空間に書き込むメモリ意味操作を提供する。RDMA書込み作業待ち行列要素は、ローカルのほぼ連続したメモリ空間の分布リスト(scatter list)、およびそのローカル・メモリ空間が書き込まれる先のリモート・メモリ空間の仮想アドレスを含む。
RDMA FetchOp作業待ち行列要素は、リモート・ノード上でアトミック操作を実施するメモリ意味操作である。RDMA FetchOp作業待ち行列要素は、RDMA読取り、変更、およびRDMA書込み操作の組合せである。RDMA FetchOp作業待ち行列要素は、比較し一致すれば交換する(Compare and Swap if equal)など、いくつかの読取り/変更/書込み操作をサポートすることができる。
リモート・アクセス・キー(R_Key)バインド(アンバインド)作業待ち行列要素は、メモリ・ウィンドウをメモリ領域に関連付ける(あるメモリ領域から分離する)ことによってそのメモリ・ウィンドウを変更する(破壊する)ようホスト・チャネル・アダプタ・ハードウェアに命じるコマンドを提供する。このR_Keyは、各RDMAアクセスの一部であり、そのリモート・プロセスがバッファへのアクセスを許可されていることを検証するために使用される。
一実施形態では、図4に示す受信作業待ち行列400は、受信作業待ち行列要素と呼ばれる一種類の作業待ち行列要素だけしかサポートしない。この受信作業待ち行列要素は、着信送信メッセージが書き込まれる先のローカル・メモリ空間を記述するチャネル意味操作を提供する。この受信作業待ち行列要素は、いくつかのほぼ連続したメモリ空間を記述する分布リストを含む。着信送信メッセージはこれらのメモリ空間に書き込まれる。仮想アドレスは、そのローカル待ち行列対を作成したプロセスのアドレス・コンテキストにある。
プロセッサ間通信では、ユーザ・モードのソフトウェア・プロセスは、メモリ内のバッファがある場所から直接、待ち行列対を介してデータを転送する。一実施形態では、この待ち行列対を介する転送は、オペレーティング・システムを回避し、ホスト命令サイクルをほとんど消費しない。待ち行列対は、オペレーティング・システムのカーネルが関与しないゼロ・プロセッサ/コピー・データ転送を可能にする。このゼロ・プロセッサ/コピー・データ転送により、帯域幅が広く待ち時間の少ない通信を効率良くサポートすることができる。
待ち行列対を作成するとき、その待ち行列対は選択されたタイプのトランスポート・サービスを提供するように設定される。一実施形態では、本発明を実装するネットワーク・コンピュータ・システムは4種類のトランスポート・サービスをサポートする。
高信頼接続サービスおよび低信頼接続サービスは、ローカル待ち行列対を唯一のリモート待ち行列対に関連付ける。接続サービスは、SANファブリックを介してやりとりするプロセスごとに1つの待ち行列対を作成することを必要とする。したがって、N個のホスト・プロセッサ・ノードのそれぞれがP個のプロセスを含み、各ノード上のP個のプロセスのすべてがそれ以外のすべてのノード上のすべてのプロセスとやりとりしたいと望む場合、各ホスト・プロセッサ・ノードはP2×(N−1)個の待ち行列対を必要とする。さらに、1つのプロセスは、1つの待ち行列対を同じホスト・チャネル・アダプタ上の別の待ち行列対に接続することができる。
高信頼データグラム・サービスは、ローカル・エンド−エンド(EE)コンテキストを唯一のリモート・エンド−エンド・コンテキストに関連付ける。高信頼データグラム・サービスは、ある待ち行列のクライアント・プロセスが他のどのリモート・ノード上の他のどの待ち行列ともやりとりできるようにする。受信作業待ち行列では、高信頼データグラム・サービスは、他のどのリモート・ノード上のどの送信作業待ち行列からの着信メッセージも許可する。高信頼データグラム・サービスはコネクションレス型であるので、拡張可能性を大きく向上させる。したがって、一定数の待ち行列対を持つエンドノードは、高信頼接続トランスポート・サービスを用いるよりも高信頼データグラム・サービスを用いた方がはるかに多くのプロセスおよびエンドノードとやりとりすることができる。例えば、N個のホスト・プロセッサ・ノードのそれぞれがP個のプロセスを含み、各ノード上のP個のプロセスのすべてがそれ以外のすべてのノード上のすべてのプロセスとやりとりしたいと望む場合、高信頼接続サービスは各ノード上にP2×(N−1)個の待ち行列対を必要とする。それに比べて、コネクションレス型高信頼データグラム・サービスは、全く同一の通信では、各ノード上にP個の待ち行列対+(N−1)個のEEコンテキストしか必要としない。
低信頼データグラム・サービスはコネクションレス型である。低信頼データグラム・サービスは、管理アプリケーションが新しいスイッチ、ルータ、およびエンドノードを発見し、それらを所与のネットワーク・コンピュータ・システムに組み込むために用いる。低信頼データグラム・サービスは、高信頼接続サービスおよび高信頼データグラム・サービスの信頼性保証を提供しない。したがって、低信頼データグラム・サービスは、各エンドノードにより少ない状態情報を維持した状態で動作する。
図5は、本発明の好ましい一実施形態によるデータ・パケットの図である。メッセージ・データ500は、図4に示したデータ・セグメントと同様のデータ・セグメント1(502)、データ・セグメント2(504)、データ・セグメント3(506)を含む。この例では、これらのデータ・セグメントは、データ・パケット512内のパケット・ペイロード510に入れられるパケット508を形成する。また、データ・パケット512はエラー検出に使用されるCRC514を含む。さらに、データ・パケット512内には経路指定ヘッダ516およびトランスポート・ヘッダ518も存在する。経路指定ヘッダ516は、データ・パケット512の送信元ポートおよび宛先ポートを識別するために使用される。この例のトランスポート・ヘッダ518は、データ・パケット512のための宛先待ち行列対を指定する。また、トランスポート・ヘッダ518は、命令コード、パケット順序番号、データ・パケット512の区分などの情報も提供する。命令コードは、そのパケットがあるメッセージの最初、最後、中間、あるいは唯一のパケットであるか識別する。また、命令コードは、その命令が送信RDMA書込みか、読取りか、それともアトミックであるか指定する。パケット順序番号は、通信が確立されたときに開始され、待ち行列対が新規パケットを作成するたびに増分される。1つのエンドノードの各ポートは、おそらくオーバーラップする1組または複数組の、区分と呼ばれるメンバとして構成することができる。
図6に、本発明の一実施形態による仮想チャネル・アダプタおよび仮想スイッチを備える物理コンポーネントの図を示す。図6では、1つまたは複数のHCAを1つまたは複数のサブネットに相互接続する1つまたは複数のスイッチを含む多機能チップの内部構造が示されている。図6の物理要素600は、仮想ホスト・プロセッサ・ノード602および仮想ホスト・プロセッサ・ノード604を含む。仮想ホスト・プロセッサ・ノード602は、仮想ホスト・チャネル・アダプタ(HCA)606を含む。仮想ホスト・プロセッサ・ノード604は、ホスト・チャネル・アダプタ(HCA)608を含む。仮想HCA606および608は、物理HCAと同じ属性を持つことができる。例えば、仮想HCA606および608は、この例では、必須待ち行列対番号0および1を持つ。
図6の物理要素600は、スイッチ612を含むSANファブリック610を含む。図6のSANファブリック610は、ホスト・チャネル・アダプタ606をスイッチ612に結合するリンクと、スイッチ612をTCA642に結合するリンクを含む。また、図6のネットワーク・コンピュータ・システム600は、スイッチ614を含むSANファブリック611も含む。図6のSANファブリック611は、ホスト・チャネル・アダプタ608をスイッチ614に結合するリンクと、スイッチ614をTCA644に結合するリンクを含む。仮想HCA606はポート650および652を含む。ポート650はスイッチ612のポート678を介してサブネット646に接続される。ポート652はスイッチ614のポート682を介してサブネット648に接続される。サブネット646に関連するサブネット・マネージャは、HCA606のポート650にLID670を割り当て、スイッチ612のポート686にLID694を割り当てている。ポート686はスイッチ612のインフィニバンド・サブネット管理ポート0である。HCA606のポート652にLID672を割り当て、スイッチ614のポート688にLID696を割り当てているサブネット648に、サブネット・マネージャが関連付けられる。ポート688はスイッチ614のインフィニバンド・サブネット管理ポート0である。仮想HCA608はポート654および656を含む。ポート654はスイッチ612のポート680を介してサブネット646に接続される。ポート656はスイッチ614のポート684を介してサブネット648に接続される。サブネット646に関連付けられたサブネット・マネージャは、HCA608のポート654にLID674を割り当てている。サブネット648に関連付けられたサブネットは、HCA608のポート656にLID676を割り当てている。
例示のトランザクションでは、ホスト・プロセッサ・ノード602はクライアント・プロセスA616を含む。ホスト・プロセッサ・ノード604はクライアント・プロセスB618を含む。クライアント・プロセスA616は待ち行列対620、完了待ち行列632および変換保護テーブル(TPT)634を介してホスト・チャネル・アダプタ・ハードウェア606と対話する。クライアント・プロセスB618は、待ち行列対622、完了待ち行列636およびTPT638を介してホスト・チャネル・アダプタ608と対話する。待ち行列対620、待ち行列対622、完了待ち行列632、完了待ち行列636、TPT634およびTPT638はデータ構造である。待ち行列対620は1つの送信作業待ち行列624と1つの受信作業待ち行列626を含む。待ち行列対622は1つの送信作業待ち行列628と1つの受信作業待ち行列630を含む。完了待ち行列632および636は単一の完了待ち行列からなる。TPT634および638は、メモリ・アドレス変換保護テーブルからなるメモリで構成される。
TCAやHCAなどのチャネル・アダプタは、物理要素600の一部として実行されるソフトウェア、ファームウェアまたはハードウェア状態マシンにリソース構成/割振りインターフェイスを提供することができる。このリソース構成/割振りインターフェイスにより、ソフトウェア、ファームウェアまたはハードウェア状態マシンは、例えば図6のHCA606や608などの仮想HCA用の操作ポリシを設定することができる。この操作ポリシは、
1)多機能チップ内で使用されるスイッチの数、
2)一スイッチ当たりのポートの数、
3)各スイッチに割り振られるスイッチ・リソースの数、
4)多機能チップ内で使用されるHCAの数、
5)一HCA当たりのポートの数、および
6)各HCAに割り振られるHCAリソースの数
を含むことができる。
1)多機能チップ内で使用されるスイッチの数、
2)一スイッチ当たりのポートの数、
3)各スイッチに割り振られるスイッチ・リソースの数、
4)多機能チップ内で使用されるHCAの数、
5)一HCA当たりのポートの数、および
6)各HCAに割り振られるHCAリソースの数
を含むことができる。
ソフトウェア、ファームウェアまたはハードウェア状態マシンは、物理要素600の実際の構成を選択することができる。物理要素は、例えば、HCAとすることができる。この選択は静的に行っても動的に行ってもよい。静的選択では、ファブリックの再初期設定またはノードの再ブートあるいはその両方によるHCAまたはスイッチ構成の変更を必要とすることがある。動的選択では、ファブリックを再初期設定せずにHCAまたはスイッチ構成を変更できるが、ノードのブートを必要とすることがある。
静的選択機構の下では、物理要素600は、ファブリック初期設定時に物理要素600の一部として含むことができる仮想スイッチ、HCA、およびホスト・プロセッサ・ノードの正確な数を報告しなければならないことがある。静的選択機構は、物理要素上で使用可能なポートがあるかどうか情報を提供することができるが、ポート状態に関する情報は、その情報を求める要求がなければ提供しない。静的選択機構を使用すると、各仮想HCAを別個の物理HCAに見せることができる。図6では、サブネット646に関連するサブネット・マネージャは、標準インフィニバンド・サブネット管理パケット(SMP)を用いてポート644を探査した結果としてスイッチ612を検出する。スイッチ612は、サブネット646に関連するサブネット・マネージャには物理スイッチに見え、そのSMPポート686にはLID694が割り当てられる。このサブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを介してスイッチ612に2つの追加ポート、ポート678および680があることを識別する。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってスイッチ612のポート678を探査しHCA606のポート650を探し出した結果としてHCA606を検出する。サブネット646に関連するサブネット・マネージャには、HCA606は物理HCAに見える。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってHCA606のポート650にLID670を割り当てる。同様に、サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使った結果としてHCA608を検出する。サブネット646に関連するサブネット・マネージャには、HCA608は物理HCAに見える。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってポート654にLID674を割り当てる。
動的選択機構を使用すると、物理要素600は、構成可能な最大数の仮想スイッチおよびそれらに対応するトポロジを報告することができるが、ファブリック初期設定時に物理要素600の一部として含まれ得るHCAおよびホスト・プロセッサ・ノードの正確な数を報告することはできない。動的選択機構は、物理要素上に使用可能なポートがあるかどうかの情報を提供することができ、以前使用不能であったポートが動作可能になったときにその旨の情報を提供することができる。同様に、動的選択機構は、HCAおよびそれらに関連するホスト・ノードが動作解除されたときに、それらの解除を報告することができる。動的選択機構を使用すると、各仮想HCAを別個の物理HCAに見せることができる。
図6では、HCA606が後刻に動作可能になった場合、以下のプロセスを実施することができる。サブネット646に関連するサブネット・マネージャは、インフィニバンド管理パケット(SMP)を用いてポート644を探査した結果としてスイッチ612を検出する。スイッチ612は、サブネット646に関連するサブネット・マネージャには物理スイッチに見え、そのSMPポート686にはLID694が割り当てられる。サブネット646に関連するサブネット・マネージャは、標準インフィニバンドSMPを介してスイッチ612に2つの追加ポート、ポート678および680があることを識別する。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってスイッチ612のポート678を探査し、HCA606のポート650を探し出した結果としてHCA606を検出する。HCA606は、サブネット646に関連するサブネット・マネージャには物理HCAに見える。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってHCAのポート650にLID670を割り当てる。後刻、サブネット646に関連するサブネット・マネージャは、サブネット646に関連するサブネット・マネージャによるスイッチ612のポート680を探査するためのSMPスイープを実施し、HCA608のポート654を探し出した結果としてHCA608を検出することができる。
あるいは、サブネット646に関連するサブネット・マネージャは、状態変化を示すスイッチ612からのトラップの結果としてHCA608を検出することもできる。そうすると、サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってスイッチ612のポート680を探査し、HCA608のポート654を探し出すことになる。HCA608は、サブネット646に関連するサブネット・マネージャには物理HCAに見える。サブネット646に関連するサブネット・マネージャは、インフィニバンドSMPを使ってHCA608のポート654にLID674を割り当てる。
前述のように、本発明は物理要素のためのエンド・ノード区分の方法およびシステムを提供する。物理要素の構成の選択は、静的に行っても動的に行ってもよい。静的選択機構を用いると、サブネット・マネージャは、例えばスイッチやHCAなどの物理要素を探査してその物理要素が検出されたかどうか判定する。その物理要素が検出された場合、その物理要素のSMPポートにLIDを割り当てる。その物理要素の追加ポートが検出された場合、それらの追加ポートにLIDを割り当てる。
動的選択機構を用いると、HCAおよびそのHCAに関連するホスト・ノードが動作可能になったと報告される。さらに、動的選択機構は、HCAおよびそのHCAに関連するホスト・ノードを動作解除したときに、それらの解除を報告する。HCAが動作可能になると、サブネット・マネージャはそのHCAに関連するポートにLIDを割り当てる。
図7は、本発明の好ましい一実施形態による、物理要素の構成のための静的選択システムの動作を示す例示的流れ図である。この例では、サブネット・マネージャがインフィニバンド・サブネット管理パケットを用いてポートを探査することによって処理が開始する(ステップ702)。サブネット・マネージャによるインフィニバンド・サブネット管理パケットを用いたポートの探査に応答してスイッチを検出したか否か判定する(ステップ704)。スイッチを検出しなかった場合(ステップ704:NO)、処理を打ち切る。スイッチを検出した場合(ステップ704:YES)、そのスイッチのSMPポートにLIDを割り当てる(ステップ706)。
次いで、サブネット・マネージャがそのスイッチの追加ポートを検出したか否か判定する(ステップ708)。サブネット・マネージャがそのスイッチの追加ポートを検出した場合(ステップ708:YES)、その追加ポートにLIDを割り当て(ステップ710)、ステップ708に戻り、そこでサブネット・マネージャがそのスイッチの追加ポートを検出したか否か判定する。サブネット・マネージャがそのスイッチの追加ポートを検出しなかった場合(ステップ708:NO)、ファブリックを再初期設定すべきか否か判定する(ステップ712)。ファブリックを再初期設定すべきでない場合(ステップ712:NO)、ノード再ブートを実施する(ステップ716)。次いで、仮想スイッチ、HCAおよびホスト・プロセッサ・ノードの正確な数をサブネット・マネージャに報告し(ステップ720)、その後、処理を打ち切る。ファブリックを再初期設定すべきである場合(ステップ712:YES)、ファブリックの再初期設定を実施する(ステップ714)。次いで、ノード再ブートを実施すべきか否か判定する(ステップ718)。ノード再ブートを実施すべきである場合(ステップ718:YES)、ノード再ブートを実施し(ステップ716)、仮想スイッチ、HCAおよびホスト・プロセッサ・ノードの正確な数を報告し(ステップ720)、その後、処理を打ち切る。ノード再ブートを実施すべきでない場合(ステップ718:NO)、仮想スイッチ、HCAおよびホスト・プロセッサ・ノードの正確な数を報告し(ステップ720)、その後、処理を打ち切る。
図8は、本発明の好ましい一実施形態による、ホスト・チャネル・アダプタおよび関連するノードが動作可能になったこと、あるいは動作解除されていることの報告を示す例示的流れ図である。この例では、HCAおよびそのHCAに関連するホスト・ノードが動作可能であるか否かを判定することによって処理が開始する(ステップ802)。HCAおよびそのHCAに関連するホスト・ノードが動作可能でない場合(ステップ802:NO)、処理を打ち切る。HCAおよびHCAに関連するホスト・ノードが動作可能である場合(ステップ802:YES)、そのHCAおよび関連するノードが動作可能になったとサブネット・マネージャに報告する(ステップ804)。次いで、HCAおよびそのHCAに関連するホスト・ノードが動作解除されたか否か判定する(ステップ806)。HCAおよびそのHCAに関連するホスト・ノードが動作解除されていない場合(ステップ806:NO)、処理を打ち切る。HCAおよびそのHCAに関連するホスト・ノードが動作解除されている場合(ステップ806:YES)、そのHCAおよびHCAに関連するノードが動作解除されていると報告し(ステップ808)、その後処理を打ち切る。
図9は本発明の好ましい一実施形態による、物理要素の構成のための動的選択システムでの動作を示す例示的流れ図である。この例では、HCAが電源オン状態で動作可能になったか否か判定する(ステップ902)ことによって処理が開始する。HCAが電源オン状態で動作可能にならなかった場合(ステップ902:NO)、HCAが電源オン状態後に動作可能になったか否か判定する(ステップ904)。HCAが電源オン状態後に動作可能にならなかった場合(ステップ904:NO)、処理を打ち切る。HCAが電源オン状態後に動作可能になった場合(ステップ904:YES)、ステップ906に進み、そこでサブネット・マネージャがインフィニバンド・サブネット管理パケットを用いてポートを探査する。
ステップ902に戻ると、HCAが電源オン状態で動作可能になった場合(ステップ902:YES)、サブネット・マネージャがインフィニバンド・サブネット管理パケットを用いてポートを探査する(ステップ906)。スイッチを検出したか否か判定する(ステップ908)。スイッチが検出されなかった場合(ステップ908:NO)、処理を打ち切る。スイッチを検出した場合(ステップ908:YES)、そのスイッチのSMPポートにLIDを関連付ける(ステップ910)。次いで、サブネット・マネージャが、SMPスイープを使ってそのスイッチの追加ポートを検出したか否か判定する(ステップ912)。サブネット・マネージャがSMPスイープを使ってそのスイッチの追加ポートを検出した場合(ステップ912:YES)、その追加ポートにLIDを割り当て、ステップ914に進み、そこで、サブネット・マネージャが状態変化を示すスイッチからのトラップを使ってそのスイッチの追加ポートを検出したか否か判定する。
サブネット・マネージャがSMPスイープを使ってそのスイッチの追加ポートを検出しなかった場合(ステップ912:NO)、そのサブネット・マネージャが状態変化を示すスイッチからのトラップを使ってそのスイッチの追加ポートを検出したか否か判定する(ステップ914)。サブネット・マネージャが状態変化を示すスイッチからのトラップを使ってそのスイッチの追加ポートを検出した場合(ステップ914:YES)、その追加ポートにLIDを割り当て(ステップ916)、ステップ912に戻り、そこでサブネット・マネージャがSMPスイープを使ってスイッチの追加ポートを検出したか否か判定する。
サブネット・マネージャが状態変化を示すスイッチからのトラップを使ってそのスイッチの追加ポートを検出しなかった場合(ステップ914:NO)、ファブリック再初期設定を実施すべきか否か判定する(ステップ918)。ファブリック再初期設定を実施すべきである場合(ステップ918:YES)、ファブリック初期設定を実施し、ステップ920に進み、そこでノード再ブートを実施する。ファブリック初期設定を実施すべきでない場合(ステップ918:NO)、ノード再ブートを実施する(ステップ920)。HCAおよびホスト・プロセッサ・ノードが実行可能になったと報告し(ステップ922)、その後、処理を打ち切る。
したがって、本発明は、単一の物理コンポーネントを、各単一コンポーネントが独自のアクセス制御レベルを有する複数のコンポーネントに見せることができる機構を提供する。それらのコンポーネントは、ホスト・チャネル・アダプタ(HCA)、ターゲット・チャネル・アダプタ(TCA)、またはスイッチとすることができる。それらのホスト・チャネル・アダプタおよびスイッチの作成に使用するリソースは、共通プールからの、ソフトウェア、ファームウェアおよび状態マシンの静的または動的選択によって得ることができる。これらのリソースの割り振りは様々な機構によって実施することができる。例えば、単純な1/N機構を使ってすべての仮想HCAにリソースを割り当てることができる。あるいは、加重平均機構を使って様々な能力を備える仮想HCAを作成することもできる。それらのリソースは、それだけに限らないが、すべてのHCAおよびQP選択可能修飾子で構成することができる。例えば、これらのHCAおよびQP選択可能修飾子は、複数のQP、複数のCQ、TPTサイズ、P_Keyテーブル・サイズ、複数の未処理の読取りRDMAなどとすることができる。
以上、本発明を、完全に機能するデータ処理システムの状況で説明してきたが、当分野の技術者には当然のことながら、本発明の各プロセスは、コンピュータ可読命令媒体の形および様々な形での配布が可能であること、およびその配布を実行するために実際に使用される信号搬送媒体の個々のタイプに関わらず本発明を等しく適用できることに留意されたい。コンピュータ可読媒体の例には、フロッピー(R)・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体、ディジタルおよびアナログ通信リンク、無線周波数や光波伝送などを使った有線または無線通信リンクなどの伝送型媒体が含まれる。これらのコンピュータ可読媒体は、個々のデータ処理システムにおいて実際に使用する際に復号化される符号化フォーマットの形を取ることができる。
Claims (3)
- サブネット管理パケット(SMP)を使ってポート(644)を探査するステップ(702)と、
前記ポート(644)を探査した結果として前記ポート(644)に関連するスイッチ(612)を検出するステップ(704)と、
前記スイッチ(612)のSMPポート(686)にローカル識別子(694)を割り当てるステップ(706)と、
前記スイッチ(612)の追加ポート(678)を検出するステップ(708)と、
前記追加ポート(678)に対応するエンド・ノード(606)のポート(650)にローカル識別子(670)を割り当てるステップ(710)と
を含む、物理要素(600)のためにエンド・ノード(606)を区分する方法。 - サブネット管理パケット(SMP)を使ってポート(644)を探査する手段(702)と、
前記ポート(644)を探査した結果として前記ポート(644)に関連するスイッチ(612)を検出する手段(704)と、
前記スイッチ(612)のSMPポート(686)にローカル識別子(694)を割り当てる手段(706)と、
前記スイッチ(612)の追加ポート(678)を検出する手段(708)と、
前記追加ポート(678)に対応するエンド・ノード(606)のポート(650)にローカル識別子(670)を割り当てる手段(710)と
を含む、物理要素(600)のためにエンド・ノード(606)を区分するシステム。 - コンピュータ・システム上で実行されたときに請求項1に記載の方法を実行する、コンピュータ可読記憶媒体上に記憶されたコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/895,233 US20030005039A1 (en) | 2001-06-29 | 2001-06-29 | End node partitioning using local identifiers |
PCT/GB2002/001338 WO2003003229A1 (en) | 2001-06-29 | 2002-03-18 | End node partitioning using local identifiers |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004531175A JP2004531175A (ja) | 2004-10-07 |
JP3783017B2 true JP3783017B2 (ja) | 2006-06-07 |
Family
ID=25404187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003509336A Expired - Fee Related JP3783017B2 (ja) | 2001-06-29 | 2002-03-18 | ローカル識別子を使ったエンド・ノード区分 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20030005039A1 (ja) |
EP (1) | EP1399829B1 (ja) |
JP (1) | JP3783017B2 (ja) |
KR (1) | KR100582406B1 (ja) |
CN (1) | CN1212574C (ja) |
AT (1) | ATE331252T1 (ja) |
DE (1) | DE60212626T2 (ja) |
WO (1) | WO2003003229A1 (ja) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904545B1 (en) * | 2001-07-11 | 2005-06-07 | Advanced Micro Devices, Inc. | Fault tolerant computing node having multiple host channel adapters |
US9836424B2 (en) * | 2001-08-24 | 2017-12-05 | Intel Corporation | General input/output architecture, protocol and related methods to implement flow control |
EP1442548B1 (en) * | 2001-08-24 | 2008-05-14 | Intel Corporation | A general input/output inteface and related method to manage data integrity |
US6829685B2 (en) * | 2001-11-15 | 2004-12-07 | International Business Machines Corporation | Open format storage subsystem apparatus and method |
US20030101158A1 (en) * | 2001-11-28 | 2003-05-29 | Pinto Oscar P. | Mechanism for managing incoming data messages in a cluster |
US7290277B1 (en) * | 2002-01-24 | 2007-10-30 | Avago Technologies General Ip Pte Ltd | Control of authentication data residing in a network device |
US7606167B1 (en) * | 2002-04-05 | 2009-10-20 | Cisco Technology, Inc. | Apparatus and method for defining a static fibre channel fabric |
US7299266B2 (en) * | 2002-09-05 | 2007-11-20 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
US7379983B2 (en) * | 2003-06-25 | 2008-05-27 | International Business Machines Corporation | Merging scalable nodes into single-partition merged system using service processors of nodes |
EP1762932A3 (en) * | 2003-12-11 | 2007-11-21 | Fusion Dynamic Ltd. | Method and an apparatus for controlling executables running on blade servers |
US8336040B2 (en) | 2004-04-15 | 2012-12-18 | Raytheon Company | System and method for topology-aware job scheduling and backfilling in an HPC environment |
US9178784B2 (en) | 2004-04-15 | 2015-11-03 | Raytheon Company | System and method for cluster management based on HPC architecture |
US8335909B2 (en) | 2004-04-15 | 2012-12-18 | Raytheon Company | Coupling processors to each other for high performance computing (HPC) |
US8190714B2 (en) * | 2004-04-15 | 2012-05-29 | Raytheon Company | System and method for computer cluster virtualization using dynamic boot images and virtual disk |
US7711977B2 (en) * | 2004-04-15 | 2010-05-04 | Raytheon Company | System and method for detecting and managing HPC node failure |
US20050235055A1 (en) * | 2004-04-15 | 2005-10-20 | Raytheon Company | Graphical user interface for managing HPC clusters |
US7639616B1 (en) | 2004-06-08 | 2009-12-29 | Sun Microsystems, Inc. | Adaptive cut-through algorithm |
US8964547B1 (en) | 2004-06-08 | 2015-02-24 | Oracle America, Inc. | Credit announcement |
US7860096B2 (en) * | 2004-06-08 | 2010-12-28 | Oracle America, Inc. | Switching method and apparatus for use in a communications network |
US7257758B1 (en) * | 2004-06-08 | 2007-08-14 | Sun Microsystems, Inc. | Stumping mechanism |
US7602712B2 (en) * | 2004-06-08 | 2009-10-13 | Sun Microsystems, Inc. | Switch method and apparatus with cut-through routing for use in a communications network |
US7433931B2 (en) * | 2004-11-17 | 2008-10-07 | Raytheon Company | Scheduling in a high-performance computing (HPC) system |
US8244882B2 (en) * | 2004-11-17 | 2012-08-14 | Raytheon Company | On-demand instantiation in a high-performance computing (HPC) system |
US7581021B2 (en) * | 2005-04-07 | 2009-08-25 | International Business Machines Corporation | System and method for providing multiple virtual host channel adapters using virtual switches |
JP4670676B2 (ja) * | 2006-02-17 | 2011-04-13 | 日本電気株式会社 | スイッチ及びネットワークブリッジ装置 |
US7519761B2 (en) * | 2006-10-10 | 2009-04-14 | International Business Machines Corporation | Transparent PCI-based multi-host switch |
US20080155571A1 (en) * | 2006-12-21 | 2008-06-26 | Yuval Kenan | Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units |
US8862706B2 (en) | 2007-12-14 | 2014-10-14 | Nant Holdings Ip, Llc | Hybrid transport—application network fabric apparatus |
US7904602B2 (en) * | 2008-02-05 | 2011-03-08 | Raptor Networks Technology, Inc. | Distributed computing bus |
US7962564B2 (en) * | 2008-02-25 | 2011-06-14 | International Business Machines Corporation | Discovery of a virtual topology in a multi-tasking multi-processor environment |
US8042004B2 (en) * | 2008-02-25 | 2011-10-18 | International Business Machines Corporation | Diagnosing communications between computer systems |
US8065279B2 (en) * | 2008-02-25 | 2011-11-22 | International Business Machines Corporation | Performance neutral heartbeat for a multi-tasking multi-processor environment |
US7949721B2 (en) * | 2008-02-25 | 2011-05-24 | International Business Machines Corporation | Subnet management discovery of point-to-point network topologies |
US8762125B2 (en) * | 2008-02-25 | 2014-06-24 | International Business Machines Corporation | Emulated multi-tasking multi-processor channels implementing standard network protocols |
US8793699B2 (en) * | 2008-02-25 | 2014-07-29 | International Business Machines Corporation | Negating initiative for select entries from a shared, strictly FIFO initiative queue |
US7831710B2 (en) * | 2008-02-25 | 2010-11-09 | International Business Machines Corporation | Communication of offline status between computer systems |
US8009589B2 (en) * | 2008-02-25 | 2011-08-30 | International Business Machines Corporation | Subnet management in virtual host channel adapter topologies |
JP5110156B2 (ja) * | 2010-12-03 | 2012-12-26 | 日本電気株式会社 | スイッチ及びネットワークブリッジ装置 |
US8868700B2 (en) | 2010-12-28 | 2014-10-21 | Nant Holdings Ip, Llc | Distributed network interfaces for application cloaking and spoofing |
CN102136955B (zh) * | 2011-04-29 | 2014-04-09 | 杭州华三通信技术有限公司 | 一种基于解耦合vpls转发框架的报文转发方法和设备 |
US9935848B2 (en) | 2011-06-03 | 2018-04-03 | Oracle International Corporation | System and method for supporting subnet manager (SM) level robust handling of unkown management key in an infiniband (IB) network |
US9332005B2 (en) | 2011-07-11 | 2016-05-03 | Oracle International Corporation | System and method for providing switch based subnet management packet (SMP) traffic protection in a middleware machine environment |
EP2732604B1 (en) | 2011-07-11 | 2016-01-06 | Oracle International Corporation | System and method for using at least one of a multicast group and a packet process proxy to support a flooding mechanism in a middleware machine environment |
US9325619B2 (en) | 2011-11-15 | 2016-04-26 | Oracle International Corporation | System and method for using virtual lanes to alleviate congestion in a fat-tree topology |
US8879396B2 (en) * | 2011-11-15 | 2014-11-04 | Oracle International Corporation | System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology |
WO2013170218A1 (en) | 2012-05-10 | 2013-11-14 | Oracle International Corporation | System and method for supporting subnet manager (sm) master negotiation in a network environment |
US10212101B2 (en) | 2014-01-14 | 2019-02-19 | Nant Holdings Ip, Llc | Low level provisioning of network fabrics |
US9917728B2 (en) | 2014-01-14 | 2018-03-13 | Nant Holdings Ip, Llc | Software-based fabric enablement |
CN105335227B (zh) * | 2014-06-19 | 2019-01-08 | 华为技术有限公司 | 一种节点内的数据处理方法、装置和系统 |
US10432470B2 (en) | 2015-09-23 | 2019-10-01 | International Business Machines Corporation | Distributed subnet manager for InfiniBand networks |
US9692660B2 (en) | 2015-09-23 | 2017-06-27 | International Business Machines Corporation | Election and use of configuration manager |
US10360205B2 (en) | 2015-09-23 | 2019-07-23 | International Business Machines Corporation | Cooperative MKEY locking for managing infiniband networks |
US10498654B2 (en) | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US9985904B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US10148570B2 (en) | 2015-12-29 | 2018-12-04 | Amazon Technologies, Inc. | Connectionless reliable transport |
SG11201805409SA (en) * | 2015-12-29 | 2018-07-30 | Amazon Tech Inc | Networking technologies |
US9985903B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technologies, Inc. | Reliable, out-of-order receipt of packets |
US11271870B2 (en) | 2016-01-27 | 2022-03-08 | Oracle International Corporation | System and method for supporting scalable bit map based P_Key table in a high performance computing environment |
EP3408983B1 (en) * | 2016-01-27 | 2021-12-08 | Oracle International Corporation | System and method for supporting scalable representation of switch port status in a high performance computing environment |
US10972375B2 (en) | 2016-01-27 | 2021-04-06 | Oracle International Corporation | System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment |
US11018947B2 (en) | 2016-01-27 | 2021-05-25 | Oracle International Corporation | System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment |
US10469621B2 (en) | 2016-01-27 | 2019-11-05 | Oracle International Corporation | System and method of host-side configuration of a host channel adapter (HCA) in a high-performance computing environment |
US10594627B2 (en) | 2016-01-27 | 2020-03-17 | Oracle International Corporation | System and method for supporting scalable representation of switch port status in a high performance computing environment |
US11102108B2 (en) | 2017-08-31 | 2021-08-24 | Oracle International Corporation | System and method for a multicast send duplication instead of replication in a high performance computing environment |
US11411860B2 (en) | 2017-08-31 | 2022-08-09 | Oracle International Corporation | System and method for on-demand unicast forwarding in a high performance computing environment |
US11356327B2 (en) | 2017-08-31 | 2022-06-07 | Oracle International Corporation | System and method for a single logical IP subnet across multiple independent layer 2 (L2) subnets in a high performance computing environment |
US11070394B2 (en) * | 2017-08-31 | 2021-07-20 | Oracle International Corporation | System and method for redundant independent networks in a high performance computing environment |
US11336716B2 (en) | 2017-08-31 | 2022-05-17 | Oracle International Corporation | System and method for supporting heterogeneous and asymmetric dual rail fabric configurations in a high performance computing environment |
US11765037B2 (en) * | 2020-08-19 | 2023-09-19 | Hewlett Packard Enterprise Development Lp | Method and system for facilitating high availability in a multi-fabric system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793763A (en) * | 1995-11-03 | 1998-08-11 | Cisco Technology, Inc. | Security system for network address translation systems |
US6694361B1 (en) * | 2000-06-30 | 2004-02-17 | Intel Corporation | Assigning multiple LIDs to ports in a cluster |
US6704812B2 (en) * | 2000-11-30 | 2004-03-09 | International Business Machines Corporation | Transparent and dynamic management of redundant physical paths to peripheral devices |
-
2001
- 2001-06-29 US US09/895,233 patent/US20030005039A1/en not_active Abandoned
-
2002
- 2002-03-18 WO PCT/GB2002/001338 patent/WO2003003229A1/en active IP Right Grant
- 2002-03-18 DE DE60212626T patent/DE60212626T2/de not_active Expired - Lifetime
- 2002-03-18 JP JP2003509336A patent/JP3783017B2/ja not_active Expired - Fee Related
- 2002-03-18 EP EP02718297A patent/EP1399829B1/en not_active Expired - Lifetime
- 2002-03-18 KR KR1020037015567A patent/KR100582406B1/ko not_active IP Right Cessation
- 2002-03-18 CN CNB028129040A patent/CN1212574C/zh not_active Expired - Fee Related
- 2002-03-18 AT AT02718297T patent/ATE331252T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60212626T2 (de) | 2007-07-05 |
CN1520556A (zh) | 2004-08-11 |
JP2004531175A (ja) | 2004-10-07 |
DE60212626D1 (de) | 2006-08-03 |
KR20040054620A (ko) | 2004-06-25 |
CN1212574C (zh) | 2005-07-27 |
ATE331252T1 (de) | 2006-07-15 |
EP1399829B1 (en) | 2006-06-21 |
EP1399829A1 (en) | 2004-03-24 |
WO2003003229A1 (en) | 2003-01-09 |
KR100582406B1 (ko) | 2006-05-22 |
US20030005039A1 (en) | 2003-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3783017B2 (ja) | ローカル識別子を使ったエンド・ノード区分 | |
US7283473B2 (en) | Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network | |
US7979548B2 (en) | Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network | |
US7493409B2 (en) | Apparatus, system and method for implementing a generalized queue pair in a system area network | |
US7010633B2 (en) | Apparatus, system and method for controlling access to facilities based on usage classes | |
US7487326B2 (en) | Method for managing metrics table per virtual port in a logically partitioned data processing system | |
US7095750B2 (en) | Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts | |
US7555002B2 (en) | Infiniband general services queue pair virtualization for multiple logical ports on a single physical port | |
US6748559B1 (en) | Method and system for reliably defining and determining timeout values in unreliable datagrams | |
US7093024B2 (en) | End node partitioning using virtualization | |
US6829685B2 (en) | Open format storage subsystem apparatus and method | |
US6834332B2 (en) | Apparatus and method for swapping-out real memory by inhibiting i/o operations to a memory region and setting a quiescent indicator, responsive to determining the current number of outstanding operations | |
US6981025B1 (en) | Method and apparatus for ensuring scalable mastership during initialization of a system area network | |
US6941350B1 (en) | Method and apparatus for reliably choosing a master network manager during initialization of a network computing system | |
US8341237B2 (en) | Systems, methods and computer program products for automatically triggering operations on a queue pair | |
US7113995B1 (en) | Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system | |
US20050018669A1 (en) | Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port | |
US20060195634A1 (en) | System and method for modification of virtual adapter resources in a logically partitioned data processing system | |
US20020073257A1 (en) | Transferring foreign protocols across a system area network | |
US20060195618A1 (en) | 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 | |
US6950945B2 (en) | Apparatus and method for intersystem lock optimization | |
US20060212606A1 (en) | Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification | |
US7136907B1 (en) | Method and system for informing an operating system in a system area network when a new device is connected | |
US7099955B1 (en) | End node partitioning using LMC for a system area network | |
US20020078265A1 (en) | Method and apparatus for transferring data in a network data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060213 |
|
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: 20060221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060313 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |