RDMA


RDMAのメモ帳

最近ちょくちょく聞くようになったRDMAについて、動く使えるOSとかNICとかHCAとか。
どんなものかというと、リモート先のメモリにCPUを介さず読み書き可能な規格。
元々はHPCとかで使われてたけど、最近はストレージで使われてたり。
うちの環境でも、使用用途としてはストレージ回りで使ってる感じです。
使用可能なインターフェイスとしては、IntelのOmniPath、MellanoxのInfiniband、あとはEthernet。
手持ちでテスト可能な環境は、InfinibandとEthernetなので、OmniPathは除外で。
Ethernetで使えるのは、規格というかインターフェイスというかはRoCEとかiWARPになる。
InfinibandだとそのままRDMA。元々、Infinibandの規格にはRDMA無かったとか。

 RDMA使ったプロトコル

SRP

SCSI RDMA Protocol のこと、元々はInfinibandにべったりなプロトコル。
最近は、RoCE使えば、Ethernetでもいけるみたい。
ただ、iSCSIのように認証なかったりするので使い所が色々と微妙。

iSER

iSCSI Extensions for RDMA のこと、iSCSIが入ってるようにiSCSIのデータ転送部分を
RDMAでやっちゃうプロトコル。InfinibandでもEthernetでも使える。

  • nix系でサポートされてる。Windows系は未サポート。

SMB Direct

SMB 3以降でサポートされてる。SMBのデータ通信をRDMAでやっちゃうプロトコル。
今のところサポートしてるOSは、Windows Server 2012以降のサーバOS
Windows 10 Enterpriseくらい。Sambaでは現在未実装。

NFS over RDMA

NFSのデータ転送部分をRDMA行うプロトコル。
実装されてるのは、Linux系だけしか自分は知らない。

SDP

Sockets Direct Protocol のこと、通常のSocketをラップしてRDMAでデータ通信を
行うプロトコル。メンテナンスはされてないっぽい。


 RDMAが使用可能なOS

(確かAIXとかでも使用可能な筈だけど確認できてないので)

OS Driver ver Infiniband Ethrernet
Windows Server 2008 MLNX_WinOF etc o o
Windows Server 2008R2 MLNX_WinOF etc o o
Windows Server 2012 OS Bundle o o
Windows Server 2012R2 OS Bundle o o
Windows Server 2016 OS Bundle o o
Windows 7 MLNX_WinOF etc o o
Windows 8 OS Bundle o o
Windows 8.1 OS Bundle o o
Windows 10 Enterprise OS Bundle o o
Linux OS Bundle o o
FreeBSD 10 OS Bundle o o
illumos OS Bundle o x
Solaris11 OS Bundle o o
ESXi 4.0 MLNX_OFED o o
Xen Server OS Bundle o o

 RDMA対応NIC,HCA

Maker Name Infiniband or Ethernet RoCE or iWARP
Intel NetEffect Ethernet iWARP
Emulex OCe14000 Ethernet RoCE
Chelsio T3x0 Ethernet iWARP
Chelsio T4x0 Ethernet iWARP
Chelsio T5x0 Ethernet iWARP
Mellanox ConnextX Infiniband and Ethernet RoCE
Mellanox ConnextX-2 Infiniband and Ethernet RoCE
Mellanox ConnextX-3 Infiniband and Ethernet RoCE
Mellanox ConnextX-4 Infiniband and Ethernet RoCE
Mellanox ConnextX-5 Infiniband and Ethernet RoCE