Yanyg - Software Engineer

RDMA网络学习笔记(1)

目录

1 网络发展

现状:25G网络全面商用,100G网络批量上线,200G网络即将到来。

2 协议

iWARP: Internet Wide Area RDMA Protocol. 2007年OpenFabric联盟(主要成员包括IBM, EMC, Intel等)公布的标准。IETF规范。

RoCE: RDMA over Converged(融合的) Ethernet. 2010年Infiniband行业协会 (Mellanox/Broadcom)推出的规范。在以太网上实现的RDMA。2014年提出RoCEv2,使用UDP封装,网络层遵循Eth+IP,传输层使用IB,完全融合现有以太网基础设施。 RoCE网络需要支持DCB的网络交换机,以支持PFC(Priority Flow Control)流控。PFC 机制根据拥塞状态发送PAUSE,逐级反压进行流控。

Items RocE RoCEv2 iWARP
RDMA NIC Required Y Y Y
Network Layer IB UDP/IP TCP/IP
Transport Protocol IB IB iWARP
RDMA verbs support Y Y Y
Switch Required DCB DCB Not Required
Congestion(拥塞) Management QCN ECN/CNP TCP/IP, RFC 3168 ECN
Routable N Y Y

RoCE/RoCEv2 Vendor: Emulex, Mellanox, Broadcom, Qlogic iWARP Vendor: Intel, Chelsio

目前主流RDMA为RoCEv2。

3 单网卡多协议多队列

内核态TCP/IP, 用户态TCP/IP,以及RDMA传输并存。并通过TCP/IP走控制命令,通过RDMA 传输数据,既简化逻辑,同时满足性能需求。

通过NIC FLOW DIRECTOR技术,NIC把数据包直接推送到对应的Queue,实现不同驱动、完全无锁的数据处理。Ref: https://doc.dpdk.org/guides-20.02/howto/flow_bifurcation.html

4 存储网络组件目标

  • 低延时:RDMA网络RoundTrip控制在10us;
  • 低消耗:硬件Offload,降低CPU消耗; TSP, LRO, FPGA;
  • 高并发:网卡分流,无锁多队列,完全并发;
  • 运维友好:升级;
  • 内存管理:零拷贝,大页;
  • 编解码:控制链路Protobuf,数据链路RawData;
  • 全链路用户态处理,Polling机制,Run To Completion线程模型;
    • How To Reduce CPU ?
  • 容错:多交换机,多链接,网络黑洞检测与链路切换。

5 开源软件

6 实现基本原理

6.1 Queue Pair

Queue Pair包括RQ和SQ,是主机内存,分别描述接收和发送操作描述。

发送时,APP把发送数据描述信息按照规范,写入SQ,网卡按照SQ内描述信息,执行对应操作。

接收时,网卡根据RQ描述,把数据帧写入RQ描述对应的内存。

除此之外,还有一个CQ,Completion Queue,RQ/SQ操作结束时,网卡写入CQ,告知APP操作完成。

6.2 Packet

ROCEv2定义了UDP传输RDMA包的包头。参见<Infiniband Architecture Specification Volume 1>, <Supplement to Infiniband Architecture Specification Volume 1: ROCEv2>.

6.3 Memory Register

APP分配一段虚拟空间连续的内存(物理位置可能离散)。生成对应内存空间信息,如基地址,空间范围,操作权限,Local Ley,Remote Key。Local Key供本地网卡访问内存,Remote Key供远端网卡访问内存。

6.4 Connection Pool

X个节点,每个节点Y个进程。Fullmesh需要(X-1) * N * N QP。通过Connection QP共享,能节省较多资源,只需要N-1个QP。

6.5 Congestion Control

拥塞控制.

6.6 Multi path

6.7 Qos

Tag, Priority.

7 References