麒麟服务器【RoCE配置】
什么是RoCE呢?
RoCE 将RDMA技术与以太网技术结合起来,以实现高速、低延迟、高效的数据传输。RoCE技术利用以太网的高带宽和广泛应用的优势,同时又避免了TCP/IP协议栈的高开销,从而实现了低延迟、高吞吐量的数据传输。RoCE技术可以提高数据中心的性能和效率,降低数据传输的延迟和能耗,从而提高数据中心的可靠性和可用性。RoCE技术的应用范围非常广泛,包括高性能计算、云计算、大数据分析等领域。
简单理解:它是一种协议,能跳过操作系统和CPU干预,让数据传输的延迟降低到微秒级。
一、 驱动与工具安装
1. 卸载系统自带网卡驱动
rmmod mlx5_core mlx5_en mlx5_ib
2. 安装MLNX_OFED驱动(以5.8版本为例,适配内核5.10+)
./mlnxofedinstall --add-kernel-support --skip-repo --force
3. 安装RDMA工具包
yum install rdma-core ibutils2 perftest -y
4. 加载驱动并验证
modprobe mlx5_core rdma_rxe mlx5_ib
ibv_devinfo # 输出网卡信息,确认state为ACTIVE
二、 网卡RoCEv2模式配置
1. 查看网卡端口信息
ibdev2netdev # 找到RNIC对应的网口名,如ens1f0
2. 配置RoCEv2(L3模式)+ PFC/ECN
# 绑定网口到RDMA模式
echo "1" > /sys/class/net/ens1f0/device/mlx5_num_vfs
# 启用RoCEv2(UDP封装)
devlink dev param set pci/0000:01:00.0 roce_ver 2 cmode runtime
# 启用ECN标记
ethtool -C ens1f0 rx-usecs 10 tx-usecs 10
ethtool -K ens1f0 tx-ecn on rx-ecn on
# 启用PFC(优先级3,与交换机配置一致)
tc qdisc add dev ens1f0 root handle 1: prio bands 8
tc filter add dev ens1f0 parent 1: protocol ip prio 3 u32 match ip dport 4791 0xffff flowid 1:3
3. 验证RoCEv2配置
ibv_rc_pingpong -d mlx5_0 -i 1 -g 0 # 本地环回测试,成功则配置生效
注意事项
1. 麒麟系统需关闭防火墙或放行RoCEv2端口(UDP 4791);
2. 交换机必须配置相同优先级的PFC+ECN,否则会出现丢包、延迟飙升;
其他
-
分布式存储中常用的网络协议
- IB:常用于DPC场景中的存储前端网络。
- RoCE:常用于存储后端网络。
- TCP/IP:常用于业务网络。
-
RDMA和TCP/IP
面对高性能计算、大数据分析等IO高并发、低时延应用,现有TCP/IP软硬件架构不能满足应用的需求,这主要体现在传统的TCP/IP网络通信是通过内核发送消息,这种通信方式存在很高的数据移动和数据复制的开销。RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。如图1-1,RDMA技术能直接通过网络接口访问内存数据,无需操作系统内核的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。

RoCE协议与IB协议实现的通信功能基本相同,区别在于IB协议完全抛弃了TCP/IP协议,从零开始实现了一套通信协议,RoCE则是对IB协议的一种调整,它复用了以太网协议和IP协议,从而更好地兼容现有网络,实现成本低于IB技术成本。