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 开源软件
- DPDK驱动
- 协议栈
- Seastar
- mTcp
- f-stack
6 References
- RFC 5681, 6582, 3042
- https://en.wikipedia.org/wiki/RDMA_over_Converged_Ethernet