期待のネット新技術

ラック間やサーバー間で2.5GT/sの転送速度を実現する「InfiniBand 1.0」

【InfiniBandの現在】

 前回からは、「InfiniBand」の歴史と現状、今後の動向をまとめて紹介している。大半の読者にとっては「InfiniBandって何?」というところだろうが、僚誌クラウドWatchをご覧になっておられる読者の中には「何で今さら」という方も居られるかもしれない。

 そう、InfiniBandという規格は、1999年に作業が始まり、2000年に最初の規格策定が行われたという「えらく古い」規格なのである。

ラック間、ラック内サーバー間接続を目的に2001年に仕様がリリースされた「InfiniBand 1.0」

 前回紹介したNGIO ForumとFuture I/O Allianceが合併する前の1999年7月21日にNGIO Forumは、"NGIO Forum 1.0 Specification"をリリースしている。

 InfiniBand Trade Associationは、これを基にSpecification 1.0の策定を急ぐ。最終的にInfiniBand Architecture Specification Release 1.0のVolume 1のみが2000年9月26日(Volume 2は10月24日)にリリースされ、その後、2001年6月にエラッタの修正のみを行ったRelease 1.0aが、2002年11月6日に機能追加などを包括したRelease 1.1がリリースされている。

 Release 1.0aのリリースから少し後の2001年8月、サンフランシスコで開催されたIDF(Intel Developer Forum)で、ちょうどこのInfiniBandに関するさまざまなセッションが開催されていた。当時の資料をベースに、InfiniBand 1.0の概要を簡単に紹介していこう。

 まず目的であるが、最小限の配線で300m程度、つまりデータセンター内部のラック間、あるいはラック内のサーバー間の接続を目的とするものだ。加えて言うなら、単なるサーバーとストレージの接続だけでなく、InfiniBandでクラスタを構築することも考えていたためか、数千台まで接続可能なスケーラビリティもここに盛り込まれることになった。

複数のネットワークワークロードの同時利用、RAS機能の搭載なども盛り込まれているが、Release 1.0にちょっと盛り込み過ぎの気もする
スケーラビリティの鍵は当然ながらスイッチの側にあることになる。また、ネットワーク転送の負荷を下げるため、CPUオフロードのサポートも当初から盛り込まれた

 基本的なネットワーク構成というか、接続方法をまとめたのが以下の図だ。左側がサーバーで、そこにHCA(Host Channel Adapter)が装着され、そこからInfiniBand Linkが出てくるかたちになる。そのInfiniBand Linkで接続されたスイッチを経由し、ほかのHCAやTCA(Target Channel Adapter)へと接続されるほか、ルーターを介して、ほかのネットワーク経由で別のスイッチと接続することも可能になっている。

HCAはサーバー(Host)で、TCAは例えばディスクアレイやSANなどのストレージデバイスが該当すると思えば分かりやすい。ルーター経由で他のネットワーク(例えば10Gイーサネット)に接続可能という話が、当初から仕様に盛り込まれていたのはちょっと珍しい

 OSIの7層構造で言えば、InfiniBandはPhysical~Transportまでの各レイヤーを提供するかたちとなっており、その上はアプリケーション任せということになる。

ちなみに、物理層は2つまでリピーターを挟める(銅配線の場合)仕様で、この場合はPhysical Layerのみでのリピートになると思われる

 プロトコルとしては、1つのトランザクションが複数のメッセージから構成され、各々のメッセージが複数のパケットから構成されるという、それそのものは非常に妥当な構成だ。送受信はこれを複数の仮想レーンに振り分けた上で並列(2レーン以上の場合)に転送を行うという仕組みだ。

ただ、メッセージを最大2GBまで拡張する必要はあったのだろうか? MTUのサイズが意外に小さい点も、やや気になる部分だ
ここで仮想レーンが出てくる辺りは、PCI Expressの元になった「3GIO(3rd Generation I/O)」の影響を多分に受けている気がする。ちなみに3GIOでは、これを“仮想チャンネル”と称していた

 ちなみにスイッチの内部には、複数の接続をパーティショニングできるファブリケーションの機能が搭載予定とされた。メッセージのキューイングやQoS(Quality of Service)の機能も盛り込まれている。こうした仕様を改めて見直してみると、HBAはともかくInfiniBandのスイッチを(2000年当時に)実装するのは、さぞかし大変だったろうと思わざるを得ない。

少なくとも最初の時点では、スイッチへのパーティションの実装はオプション扱いだった気がするが、プロトコルには当初からパーティショニングの機能が含まれていた

PCI Express Gen1と同じ信号方式を採用、銅で17m、光ファイバーで10kmの到達距離と2.5GT/sの伝送速度

 ちなみに、物理層のプロトコルは、2.5GT/secのDifferential Signalingで、Uni-Directionalを2対組み合わせたBi-Directionalの構成だ。エンコードは8B/10Bを採用したEmbedded Clock方式である。

 難しく書いたが、要するにPCI Express Gen1と全く同じ信号方式となる。この結果として、PCB(プリント基板)上での配線は最大20インチ程度という、PCI Expressと同じ制限が付くことになった。そのPCI Expressと異なるのは、以下の点となる。

  • 当初からリピーターを念頭に置いており、これを途中に挟み込むことで最大で3倍程度まで配線長を伸ばせた。PCI ExpressでリピーターにあたるReTimerが正式に標準化されたのは、PCI Express Gen 3.1のタイミングとなる
  • 当初からOut-of-Boxを念頭に置いており、銅ケーブルで最大17m、光ファイバーで最大10kmまでが対象とされた。PCI Expressでは、PCI Express 2.0のリリース後で、PCI Express External Cabling Specification Revision 1.0がようやくリリースされたが、思ったほどには普及しなかった。光ファイバーに至っては現時点でも標準化はされておらず、ベンダー独自のPCIe Extension製品が存在する程度でしかない

 もっとも、時間軸で言えばPCI ExpressがInfiniBandと同じ信号形式を利用した、というのが正確なところだろうとは思う。ちなみに配線に関しては1X(送受信1対)以外に、4X(4対)と12X(12対)の3種類が規定されていた。

 実はこの12Xに関して言えば、どこからこういう不思議な構成が出てきたのか、今もって謎である。以前、PCI Expressが確かGen 2.1でx12をサポートした際に、その理由をPCI-SIGの関係者に聞いたところ「これはInfiniBandからの要請によるものだが、そもそも何故x12という不思議な構成にしているのかはさっぱり分からない」とこぼされた記憶がある。

 なお、信号がディファレンシャル(片方向あたり2本で1対)なのは銅配線(つまりPCB上と銅ケーブル)のみで、光ファイバーを利用する場合は片方向あたり1本で構成される。

1X構成でも双方向で250MB/secの帯域があり、これは2000年当時としては十分高速だった
これはあくまで概念図ということらしいが、1対2本の信号線の外には、それなりにシールドがあった、と思いたいところだ

 ケーブルの構成は、初代の2.5GT/sのケーブルに関して言えば、Specification(Volume 2のChapter 7に"Copper Cable"とある、その大半はコネクターにおける機械的あるいは電気的な面の形状や特性が記述されているだけだった。さらに、ケーブルの物理的特性に関しては「半径100mmで曲げられること」だけ。ケーブル断面の構造とか、シールド、ツイストペアの構成などに関しては、一切要求していないという、なかなか「それでいいのか?」と言えそうなものだった。

 ただ、インピーダンスやData Eyeの大きさ、ノイズ耐性やESDなどに関しての規定はあり、これらを電気的に満たしていれば(UTPあるいはSTPでなくても)構わないということのようだ。おそらく1Xに関して言えばUTPで済みそうだが、4Xとか12Xに関してはSTPで構成されていたのではないだろうか。

 ちなみに1Xのコネクターは以下のような形状で、全幅13.80mm、高さ10.29mm、奥行き(金属部のみ)33.41mmとなっており、イーサネットのRJ45コネクターに比べ、一回り大きい程度に過ぎない。それもあり、比較的小さなサーバーであっても、簡単に実装できると考えられていた。

4Xは一回り大きな形状で信号ピンも上下2列になり、12Xはその4Xの幅を3倍に広げたような幅広のコネクターとなる

 さて、2011年の段階では、IntelはInfiniBandに対して非常に前向きだった。実際、InfiniBandだけで12ものテクニカルセッションを開催しており、またIDFに先立つPDK(Platform Development Kit:2つのHBAアダプタとIntel謹製のInfiniBandスイッチをパッケージした開発キット)を用意したりしていた。

 さらに、テスト環境構築のTDK(Test Development Kit)を発表したり、最初のPlugFestの様子を公開したり、といった具合で、この時点では「未来はInfiniBandにある」という猛烈なノリを感じるものであった。これが一転するのは、2002年のことだった。

大原 雄介

フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/