期待のネット新技術

「QDR」に初対応のInfiniBand HCA「ConnectX IB」と10GbEカード「ConnectX EN」

【InfiniBandの現在】

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

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

「InfiniBand QDR」最初の製品「ConnectX」、EthernetとInfiniBandに両対応

 無事に「InfiniBand DDR」が立ち上がったことで一息ついたMellanoxであるが、その立ち上げを行っていた2006年11月、同社としては第4世代に相当するコントローラー「ConnectX」を発表する。その特長的な部分は、EthernetとInfiniBandに両対応となっていたことだ。もっとも、この時点ではまだEthernet向けとInfiniBand向けは別々の製品として提供されていたので、ユーザーから見るとあまり違いはなかった。

 そして、このConnectXは、「InfiniBand QDR」に対応する最初の製品でもあった。リリースにもあるように、最初はInfiniBand SDR/DDRのみの対応だったが、将来の製品でQDRに対応するとの扱いとなっていた。

 このConnectXは以下のように、内部構造はInfiniBandかEthernetかに関わらず、ほぼ共通の構成になっていた。外部インターフェースはホスト側がPCI Express Gen1/2 x8で、ネットワーク側がInfiniBand Phisical Link、XAUI/CX4、XFIのいずれかを選べるという構成になっていた。

要するにEthernetだろうがInfiniBandであろうが、RDMAなどさまざまなオフロード処理が可能な構成である。出典はMellanoxの"ConnectX Architecture Brief"

 ソフトウェアの方はもっと徹底している。さまざまなアプリケーション向けに、マルチプロトコル・マルチインターフェースの環境を提供している。

とはいえ、さすがにEthernet向けにInfiniBandの管理層は提供されないだろう

 もっともこの構造、どちらかと言えば「InfiniBandでの知見や技術をEthernetに注ぎ込むことで、Ethernetのマーケットにおいてもシェアを獲得したい」というMellanoxの意思の表れ、というのが正確だと言えよう。

 こちらで解説した「RDMA」という技術は、InfiniBandに絡んで開発されたものであるが、元々の原理から言えば、InfiniBandだけでなくEthernetでも利用可能なものだ。ただ、Ethernetそのものは、RDMAを使うように実装することはできても、その上のTCP/IPをCPU側で処理している限りは、あまり効果がない。

 どうせやるのであれば、TCP/IPの処理ごと全部HCA(というか、Ethernetカード)側に持ち込まないと、CPUの処理負荷を減らし、結果的にレイテンシーの短縮につなげるのは難しい。そこで、Ethernetカードの側にTCP/IPのオフロードエンジンを搭載することを前提に、TCP/IP環境下でRDMAを実現したのが「RoCE(RDMA protocol over Converged Ethernet)」となる。

 Mellanoxは、このRoCEの構築にもずいぶん注力した。というのは、これが実現できれば、Ethernetを利用しつつ、従来より低レイテンシーかつ高スループットの接続が可能になるからだ。

 例えばHPCのマーケットでは、性能を優先の部分には当然InfiniBandが入る。しかしながら、性能は欲しい一方で予算が厳しい部分にはEthernetを利用しつつ、ただしTCP/IPをそのまま通すとレイテンシーが大きすぎるので独自プロトコルを載せ、するとドライバーがないので自身でネットワークドライバを書く、なんていうことを行っていたユーザーが少なからず存在した。

 そして、こうしたところにこそ、RoCE対応カードが入り込む余地があるわけだ。また、エンタープライズのマーケットにおいても、サーバーの負荷を減らしたり、レスポンスを高めたりする目的で、TCPオフローディングの機能を持ったカードが少なからず使われており、こうしたマーケットを狙えるという見込みもあった。

Ethernetネイティブアプリでの動作を狙ったConnectXのアーキテクチャー

 逆にInfiniBandについても、HCAの上にTCP/IPのプロトコルエンジンが載っていれば、IPoIB(TCP/IP over InfiniBand)の実現が容易になる。もちろんTCP/IPスタックはホスト側で処理しても構わないのだが、そうなるとInfiniBandの高速性がまるで生かせないことになる。

 2004年に僚誌クラウドWatchへ掲載されたこちらの記事では、InfiniBandをデータセンター内で利用することのメリットが語られている。

 基本的にはアプリケーションがInfiniBandを使うことで、高帯域かつ低レイテンシーの環境が得られるとする一方、TCP/IPベースのアプリケーションではメリットが少ないとしているが、IPoIBでは仮想ネットワークカードを経由してTCP/IP対応のアプリケーションがEthernetを利用するよりも、高速かつレイテンシーで利用できる。

 もちろんInfiniBandを直接利用した方がオーバーヘッドは小さいのだが、InfiniBandネイティブなアプリケーションが少ない状況では、多数派であるEthernetネイティブなアプリケーションをきちんと動かすことは当然重要だ。そんなわけで、ConnectXのアーキテクチャーはInfiniBandとEthernetの両方を狙う、という、Mellanoxの長期的ロードマップから生まれたわけだ。

ConnectXを搭載したInfiniBand HCA「ConnectX IB」と、10G Ethernetカード「ConnectX EN」

 余談だが、RoCEの仕様を策定したのも、なぜかInfiniBand Trade Associationである。まずは「InfiniBand Architecture Specification Release 1.2.1」の「Annex A16」として、最初のバージョンである「RoCE v1」が2010年にリリースされている。これはEthernetのリンクレイヤーを利用する実装である。

 これに続く2014年9月には、やはりInfiniBand Architecture Specification Release 1.2.1の「Annex A17」として、「RoCE v2」がリリースされている。こちらはIPv4/IPv6のUDPプロトコル上に構築されるかたちだ。

 さて、話を戻すと、このConnectXコントローラーを搭載したInfiniBand HCAである「ConnectX IB」が2007年3月に、10G Ethernetカードである「ConnextX EN」が2007年5月に、それぞれ出荷開始された。

左はやや荒い画像ながら、チップ上に「ConnectX IB」のロゴが分かるだろう。さらっと"40Gb/s InfiniBand ports"と書いてあるが、QDR対応というわけではなく、恐らくは20Gb/sのポートがDualで40Gb/sという意味と思われる。右の「ConnectX EN」はなぜか高解像度。パターンだけ見るとConnectX IBとほとんど同じだ

 ただConnectX IBはともかく、ConnectX ENの方はなかなか売れ行きは伸びなかったようだ。当然といえば当然で、同社がターゲットとしているマーケットは、サイトのバックエンドとかエンタープライズなど、信頼性が要求されるところである。ここで言う信頼性は、単にカード単体のリライアビリティだけでなく「そのメーカーがどこまで信用できるか」、つまりいきなりマーケットから消えたりしないかも含まれる。

 HPCのマーケットでは既に存在感のあった同社も、エンタープライズの、それもEthernet製品に関して言えば新参者であることは間違いなく、性能がいいからといって、いきなり大量導入するなんてことはあり得ず、せいぜいが評価用として数枚を購入し、しばらく動作試験を兼ねてデータを取りつつ検証、という状況が続いたことは、致し方ないだろう。

 もう一つ言えば、ConnectX EN同士をクロスケーブルで直接繋いで通信すれば、そのレイテンシーの低さはもちろん分かりやすいのだが、実際の現場には、さまざまなスイッチやルーターが間に入るわけで、実際にレイテンシーの低さを生かそうとすると、ネットワーク設計からやり直しになる。またRoCEが標準化されるのは、上で書いたように2010年以降の話だから、この時点では単にTCPオフローディングの機能を持った、ちょっと高価なEthernetカード以上のものではなかった。売れ行きが上がらなくても仕方のないところである。

 もっともMellanox自身も、急にEthernetの売り上げが立つとは考えていなかったようで、“将来的に”InfiniBandと並ぶ売り上げの柱になればいい、といった程度の思惑だったようだ。2007年11月には、10GBASE-T対応の「ConnectX EN」もラインアップに追加されている。

InfiniBand QDR対応のConnectX IB、ユーザーニーズに応え2008年に登場

 ところでユーザーからは、InfiniBand QDRへの対応を求める声が、この頃すでに高くなってきていた。要するにHPCなどでは、サーバーシステムの性能そのものが上がっていく中で、ネットワーク帯域もどんどん高いものが要求されるようになり、既にInfiniBand DDRでは足りないという話になってきたわけだ。

 これに対応して同社は2008年4月、InfiniBand QDR対応のConnectX IBを発表する。ちなみに発表された場所が、この年は上海で開催されたIntelの「IDF China 2008」というのも、なかなか因縁めいた感がある。

 ちなみにこの時点では、まだHCAのみの発表であり、InfiniBand QDRに対応したスイッチ側のチップとリファレンスデザインのアナウンスは2008年6月へずれこんでいる。当然ながら、これを利用したInfiniBand QDR対応スイッチの出荷は、さらに遅れることになる。例えば、VoltaireのInfiniBand QDR対応スイッチ「Grid Director 4036」の場合、発表こそ2008年10月だったが、量産出荷は12月とされた。

 当然ながらHCAとスイッチ、ケーブルの3つがそろって初めてInfiniBand QDR環境に移行できるわけで、【InfiniBandの現在】の第8回にも掲載した以下のグラフで示された2008年度のInfiniBand QDRの売り上げは、実質2~3か月分で立ったものだろう。そう考えると、月当たりの売上は凄まじかったものと考えられる。

大原 雄介

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