期待のネット新技術
RDMAでパケットを高速転送する「SDP」、これをiSCSIで実現する「iSER」
【InfiniBandの現在】
2019年10月15日 06:00
「InfiniBandの現在」では、規格としての歴史と現状、今後の動向をまとめて紹介している。大半の読者にとっては「InfiniBandって何?」というところだろうが、僚誌クラウドWatchをご覧になっておられる読者の中には「何で今さら」という方も居られるかもしれない。
そう、InfiniBandという規格は、1999年に作業が始まり、2000年に最初の規格策定が行われたという「えらく古い」規格なのである。
「InfiniBandの現在」記事一覧
- 汎用的なInterconnectへ進化しつつあるInfiniBandの成り立ちは?
- ラック間やサーバー間で2.5GT/sの転送速度を実現する「InfiniBand 1.0」
- Intelが開発中止、発熱対処に難、サーバー間接続一本化は実現せず
- 低コスト低レイテンシーでHPC向け分散型構成に活路
- InfiniBandで高性能を実現するMPIの仕様策定と、その実装「MPICH」
- HBAとMPIとの組み合わせで、低レイテンシーを安価に実現する「RDMA」
- RDMAでパケットを高速転送する「SDP」、これをiSCSIで実現する「iSER」
- 売上から見るInfiniBand市場規模の推移、急速な世代交代もポイント
- SDRの2.5GT/secに加え、DDRの5GT/secとQDRの10GT/secを2004年に追加
- 低レイテンシ―かつ高速なMellanox初のDDR対応HCA「InfiniHost III Ex/Lx」
- 「QDR」に初対応のInfiniBand HCA「ConnectX IB」と10GbEカード「ConnectX EN」
- InfiniBand QDR/Ethernet両対応「ConnectX-2」、324ポートスイッチ「MTS3610」
- 14GT/secの「FDR」と25GT/secの「EDR」、64b66bでのエラー増に「FEC」で対応
- InfiniBand FDR対応の「ConnectX-3 VPI」カード、HPC向けが中心
- SANスイッチ向けにInfiniBand市場へ参入したQLogic、撤退の後、2006年にはHCA向けに再参入
- QLogic、市場シェアを拡大も2012年にInfiniBand部門をIntelへ売却
- Intel、QLogicから買収したInfiniBandからOmni-Path Fabricへ
- InfiniBandが主戦場のMellanox、独自の56GbEでイーサーネット関連を拡大するも……
- Mellanox、100Gbpsの「EDR」製品を2014年リリース、2017年は売上の中心に
- 4x構成で200Gbps超の「InfiniBand HDR」、Mellanoxが2018年後半に製品化
- データ量と演算性能増によるメモリ帯域不足解消へ、Gen-Z Consortiumへ参画
- Gen-Zに加え、競合InterconnectのCAPI、CCIX、CXLにも参画するMellanox
- PCIeの処理オーバーヘッドを36分の1に、IBM独自の「CAPI」から「OpenCAPI」へ
- DRAMサポートを追加、メモリI/F統合も考慮した「OpenCAPI 3.1」
- 3種類の接続形態をサポートする「Gen-Z Ver.1.1」
- HDRは好スタート、InfiniBandのこの先は?
InfiniBand上にTCP/IPを通してRDMAを利用する仕組みとは?
RDMAを策定したのは、実はRDMA Consortiumという業界標準団体だ。その設立メンバーは、Adaptec、Broadcom、HP、IBM、Intel、Microsoft、Network Applianceの7社で、2002年5月31日に設立された。
もちろんこれらのベンダーは、当然InfiniBandにRDMAを利用することを目論んだわけだが、RDMAは言ってみれば縁の下の仕組みであって、InfiniBandのソフトウェアスタックから直接には見えない。これについては『InfiniBandの現在』の第3回でも少し触れたが、元々InfiniBandはさまざまなプロトコルをまとめて扱えるようになっていた
そのときにも掲載した以下の図の例では、クライアント側の接続のためのイーサーネット、ストレージサブシステム接続のためのファイバチャネルまたはSCSI、サーバー同士の接続(ここに何を使うかは構成によって異なるが、例えばHPC向けではMPIなど)の3つを全てInfiniBandで代替するかたちとなっている。
これは、TCP/IPを止めてInfiniBandのプロトコルでネットワークを再実装する、というものではない。そうではなく、TCP/IPをInfiniBand上に通すというもので、SCSIやMPIに関しても同じだ。以下の図はやや新しく2006年ものだが、Mellanoxの提供する「WinIB」というソフトウェアスタックの内部構造となる。
HPCアプリケーションに関しては、OS/ドライバーのレイヤをパスするカーネルバイパスのかたちで直接HCA(Host Channel Adapter)にアクセスしているのが分かるかと思う。これは、前回の図で言えば赤い実線のパスだ。
RDMAを利用してパケットを高速転送できる「SDP」のメカニズム
さて、RDMAのメカニズムだが、上の図を一見すると、左端のMPI2を利用した場合にのみ実装されているように見えるが、技術的にはほかのプロトコルでも当然利用可能である。というより、RDMA Consortiumはそれを当初から想定していた。
まず、2002年10月30日に発表された"RDMA over TCP wire protocol specifications"が、最終的に「SDP(Socket Direct Protocol)」となり、InfiniBandのSpecificationの中ではAnnex A4で定義されている。これは、IPv4/IPv6のパケットを、RDMAを利用して高速に転送できるようにするものだ。
もっとも、何でもかんでもRDMAで送る、というわけではない。主に、SOCK_STREAM(順序性と信頼性を保ち、双方向のByte Streamを転送する。Out-of-Bandの転送メカニズムも提供される)がRDMAの対象であり、それ以外の通信に関しては、RDMAを使わないかたちでの実装が想定されている。
この目的で、まずULP(Upper Layer Protocol)バッファーを定義する。次に、SPDメッセージ(つまりTCP/IPベースの通信データ)がULPバッファーに格納される。その実装は、以下のように定義されている。
- SOCK_STREAMに関しては、RDMAを利用したゼロコピーでの転送を行う
- そのほかについては、プライベートバッファーを用意し、これを利用して転送を行う
RDMAの場合、細かな処理は全てHCA側で行う必要があるが、TCP/IPはさまざまな動作モードが定義されており、これを全部インプリメントするのは難しい(というか、コストが高く付く)。このため、パフォーマンスにあまり影響しない部分は引き続きホスト(つまりCPU)側で対応し、パフォーマンスに影響する部分だけRDMAを利用する、という仕組みを採ることとなった。
ちなみに、SDPを使うメリットは、単一マシン間でのレイテンシーを減らすだけではない。マルチティアのバックエンドサーバーにおいて、さまざまなTCP/IPベースのアプライアンスを順につなげてシステムを構成する、といった場合には、トータルで猛烈な処理のTCP/IPのパケットハンドリングが発生する。これがSDPと、次に説明するSRP、それにこの当時は有望視されていたDAFSを組み合わせることで、はるかにオーバーヘッドの小さい環境が構築できるとしていた。
次がストレージまわりで、まずはSCSIである。こちらも同じようにRDMAを利用することで、当然レイテンシーの削減が可能になる。これは特に大規模なストレージを利用する場合には効果的だ。従来は、こうした目的でファイバチャネルが利用されていたが、その場合はSCSIプロトコルそのものをアプリケーション層で実装し、結果として出てきたSCSIのパケットをファイバチャネル経由で送るという形になっていた。
だがInfiniBandでは、これを「SRP(SCSI RDMA Protocol)」を利用するかたちにしている。SRPの仕様そのものは、InfiniBandではなく「ANSI INCITS 365-2002」として2002年に策定(のち2007年に改定)されている。それもあってInfiniBandのSpecificationの中では、Annex A5(Booting Annex)の中でSRP経由でのシステムブートを行う際の手順について記されているだけだ。
ただ、SRPの中身は? というと、SCSIをRDMAプロトコルに対応させたものであり、最初の図にもあるように、一部はカーネルAPIとしてで提供され、その下でRDMAが動くかたちとなる。
SCSIプロトコルをIPに乗せたiSCSIをRDMAに対応させた「iSER」
これを追いかけるように登場したのが「iSER(iSCSI Extentions for RDMA)」だ。「iSCSI(Internet Small Computer Systems Interface)」はRFC3720~3723として提案された技術で、簡単に言えば、SCSIプロトコルをIPの上に乗せたものだ。これにより、イーサーネットで接続されたNASやSANに、SCSIプロトコルを利用してアクセス可能になったわけだ。
この背景にあるのは、ファイバチャネルは確かに高性能ながらも、高価で導入の敷居が高かった点だ。その一方でイーサーネットがどんどん高速化され、しかもファイバチャネルに比べて価格がずっと安いため、イーサーネットというかIPプロトコルの上に、SCSIを実装しようということで生まれたわけだ。
iSCSIは確かに大幅なコスト削減になるが、TCP/IPスタックの上に乗るかたちになるので、当然オーバーヘッドは少なくない。そこで、iSCSIをRDMAに対応させようと考えられたのがiSERとなるわけだ。当然、何でもかんでもRDMAを使うわけではなく、実際のデータ転送にはRDMAを利用し、それ以外は従来のiSCSIのまま、というかたちになる。
ちなみに、上の図に出てくる「RDMAP(Remote Direct Memory Access Protocol)」はRFC5040、「DDP(Direct Data Placement over Reliable Transports)」はRFC5041、「MPA(Marker PDU Aligned Framing for TCP Specification)」はRFC5044として、それぞれ定義されてい、この3つの階層をまとめた総称が、「iWARP(Internet Wide Area RDMA Protocol)」という名前で知られている。
ちなみに、もはやInfiniBandとほとんど関係ない部分で言えば、このiWARPの上にNFSを載せた「NFS over RDMA」や、イーサーネットコントローラーにRDMAの機能を搭載した「RoCE(RDMA over Converged Ethernet)」など、RDMAそのものは、この後広く利用されるようになっていく。
RDMAはそもそも、InfiniBandと合わせて開発された技術だが、こちらの記事にもある通り、RoCE対応のイーサーネットカードが市場に登場したのは2010年代に入ってからであり、2000年代でRDMAを使うとなると、InfiniBandが唯一の解であった。
「InfiniBandの現在」記事一覧
- 汎用的なInterconnectへ進化しつつあるInfiniBandの成り立ちは?
- ラック間やサーバー間で2.5GT/sの転送速度を実現する「InfiniBand 1.0」
- Intelが開発中止、発熱対処に難、サーバー間接続一本化は実現せず
- 低コスト低レイテンシーでHPC向け分散型構成に活路
- InfiniBandで高性能を実現するMPIの仕様策定と、その実装「MPICH」
- HBAとMPIとの組み合わせで、低レイテンシーを安価に実現する「RDMA」
- RDMAでパケットを高速転送する「SDP」、これをiSCSIで実現する「iSER」
- 売上から見るInfiniBand市場規模の推移、急速な世代交代もポイント
- SDRの2.5GT/secに加え、DDRの5GT/secとQDRの10GT/secを2004年に追加
- 低レイテンシ―かつ高速なMellanox初のDDR対応HCA「InfiniHost III Ex/Lx」
- 「QDR」に初対応のInfiniBand HCA「ConnectX IB」と10GbEカード「ConnectX EN」
- InfiniBand QDR/Ethernet両対応「ConnectX-2」、324ポートスイッチ「MTS3610」
- 14GT/secの「FDR」と25GT/secの「EDR」、64b66bでのエラー増に「FEC」で対応
- InfiniBand FDR対応の「ConnectX-3 VPI」カード、HPC向けが中心
- SANスイッチ向けにInfiniBand市場へ参入したQLogic、撤退の後、2006年にはHCA向けに再参入
- QLogic、市場シェアを拡大も2012年にInfiniBand部門をIntelへ売却
- Intel、QLogicから買収したInfiniBandからOmni-Path Fabricへ
- InfiniBandが主戦場のMellanox、独自の56GbEでイーサーネット関連を拡大するも……
- Mellanox、100Gbpsの「EDR」製品を2014年リリース、2017年は売上の中心に
- 4x構成で200Gbps超の「InfiniBand HDR」、Mellanoxが2018年後半に製品化
- データ量と演算性能増によるメモリ帯域不足解消へ、Gen-Z Consortiumへ参画
- Gen-Zに加え、競合InterconnectのCAPI、CCIX、CXLにも参画するMellanox
- PCIeの処理オーバーヘッドを36分の1に、IBM独自の「CAPI」から「OpenCAPI」へ
- DRAMサポートを追加、メモリI/F統合も考慮した「OpenCAPI 3.1」
- 3種類の接続形態をサポートする「Gen-Z Ver.1.1」
- HDRは好スタート、InfiniBandのこの先は?