rdma 环境准备
获取一个二手的 RDMA 网卡
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1. 华硕主板能否插 Mellanox ConnectX-4 (mlnx4) 网卡?
答案:可以,但需要注意以下几点:
硬件兼容性
项目 ConnectX-4 规格 华硕主板兼容性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PCIe 接口 PCIe 3.0 x8 消费级华硕主板通常有 PCIe x16 插槽,向下兼容 x8
功耗 约 12W (Lx 型号) 主板 PCIe 插槽可提供 75W,完全够用
物理尺寸 半高/全高可选 确认机箱空间,大部分消费级主板没问题
需要注意的问题
1. 插槽占用:ConnectX-4 需要 PCIe x8 或 x16 插槽。如果你的显卡已经占用了唯一的 x16 插槽,可能需要换主板或使用 PCIe 延长线/拆分卡。
2. BIOS 识别:部分消费级主板的 BIOS 可能对非标准设备支持有限,但大部分华硕主板(尤其是 ROG/TUF/PRIME 系列)都能正常识别。
3. 散热:网卡工作时会发热,确保机箱内有足够风流。
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2. ConnectX-4 可以测试 RDMA 吗?
答案:完全可以。 ConnectX-4 系列是 NVIDIA/Mellanox 的主流 RDMA 网卡,支持以下 RDMA 协议:
协议 支持情况 说明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RoCE v1 支持 基于以太网 L2 的 RDMA
RoCE v2 支持 基于 UDP/IP,可跨路由
InfiniBand 仅 IB 版本 购买时需确认是 EN(以太网) 还是 IB 版本
RDMA 测试环境搭建
驱动加载(Linux):
# 加载必要的内核模块
modprobe mlx4_core
modprobe mlx4_ib
modprobe mlx4_en
modprobe ib_uverbs
modprobe rdma_cm
验证 RDMA 设备:
# 查看 RDMA 设备
ibstat
# 或
rdma dev
# 查看网卡状态
ibstatus
性能测试工具: 使用 perftest 套件进行测试:
# 安装 perftest
# Ubuntu/Debian
apt install perftest
# Server 端(接收端)
ib_write_bw -d mlx4_0
# Client 端(发送端)
ib_write_bw -d mlx4_0 <server_ip>
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
选购建议
如果你是从京东购买华硕主板 + 二手 ConnectX-4 网卡:
建议项 说明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
主板选择 确保至少有 2 个 PCIe x16 插槽(一个给显卡,一个给网卡)
网卡型号 推荐 MCX4121A-ACAT (25GbE, ConnectX-4 Lx),性价比高,功耗低
光模块/线缆 25G 网卡需要配合 SFP28 光模块或 DAC 线缆使用
系统支持 Linux 内核 4.x+ 自带 mlx4 驱动,无需额外安装 OFED
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
总结
问题 结论
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
华硕主板能插 mlnx4 吗? 能,只要有空闲 PCIe x8/x16 插槽
可以测试 RDMA 吗? 可以,支持 RoCE v1/v2,用 perftest 测试
如果你在安装或配置 RDMA 时遇到具体问题,可以告诉我你的主板型号和操作系统,我可以提供更详细的指导。
为什么 kunpeng 和 hygon 的机器不去利用起来,甚至可以 sriov 切分之后,然后在虚拟机中直接测试
哦,原来这样也是可以的:
可以,但有一些重要的技术限制和注意事项。
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
技术细节分析
1. VF 支持 RDMA
Mellanox ConnectX-5 的 SR-IOV VF 确实支持 RDMA/RoCE:
特性 支持情况
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RoCE v1/v2 支持(需要固件和驱动支持)
IB Verbs 支持
perftest 测试 支持
2. 同一网卡 VF-to-VF 通信的特殊性
这是关键问题:同一物理网卡的两个 VF 之间的 RDMA 流量:
VM1 (VF0) <---> 网卡内部 eSwitch <---> VM2 (VF1)
特点:
• 流量不会离开网卡,通过网卡内部的 eSwitch 或 hairpin 机制转发
• DPDK 文档明确指出:VF-to-VF within the same physical port 有 硬件加速
• 网卡驱动代码中有 vport_loopback 统计,说明内部 loopback 是可控的
3. 这种测试能验证什么?
测试目标 可行性 说明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RDMA 功能验证 可以 验证 VF 的 RDMA 能力是否正常
驱动/软件栈验证 可以 验证内核、驱动、perftest 等软件组件
真实网络性能 不行 bypass 了真实网络链路(线缆、交换机)
延迟测试 参考价值有限 结果会比真实网络好很多
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
配置步骤(如果决定测试)
Host 上启用 SR-IOV:
# 加载 mlx5 驱动
modprobe mlx5_core
# 创建 VF(假设网卡是 ens1f0)
echo 2 > /sys/class/net/ens1f0/device/sriov_numvfs
# 查看创建的 VF
lspci | grep Mellanox
直通 VF 到 VM:
# 获取 VF 的 PCI 地址(例如 04:00.2 和 04:00.3)
virsh attach-device vm1 vf0.xml
virsh attach-device vm2 vf1.xml
VM 内测试:
# VM1 (Server)
ib_write_bw -d mlx5_0
# VM2 (Client)
ib_write_bw -d mlx5_0 <VM1_IP>
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
结论与建议
如果只是想验证 RDMA 功能
可以这样做,但要知道测的是 "内部回环"性能,不是真实网络性能。
如果想测试真实网络性能
建议方案:
1. 两张 ConnectX-5 网卡 + 直连网线/DAC 线缆
2. 一张 ConnectX-5 网卡的两个端口(双口卡),各直通给一个 VM,中间经过交换机
3. 两张单口卡,分别直通给两个 VM,中间经过 RoCE 交换机
性能对比参考
场景 延迟 带宽
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
同一网卡 VF-to-VF ~1-2 μs 接近线速(无外部瓶颈)
真实网络(直连) ~2-5 μs 取决于线缆和协商速率
真实网络(过交换机) ~3-8 μs 取决于交换机转发能力
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
一句话总结
同一网卡的两个 VF 可以跑通 RDMA 测试,但测的是网卡内部交换性能,不代表真实网络环境中的表现。 适合验证功能,不适合评估生产环境性能。
ali 的 erdma
https://help.aliyun.com/zh/ecs/user-guide/elastic-rdma-erdma/?spm=a2c4g.11186623.0.0.7bf5560bVpjE7k
解答了一个疑惑,就是虚拟机中应该是用 erdma 的 SR-IOV ,然后在虚拟机中使用的
弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA)是阿里云自研的云上弹性RDMA网络,底层链路复用VPC网络,采用全栈自研的拥塞控制CC(Congestion Control)算法,享有传统RDMA网络高吞吐、低延迟特性的同时,可支持秒级的大规模RDMA组网。可兼容传统HPC应用、AI应用以及传统TCP/IP应用。
所以阿里文档那句话如果严谨一点,应该读成:
“eRDMA 复用了阿里云 VPC 的网络资源与租户网络语义,但实例侧仍暴露为 RDMA 设备,数据面由硬件/虚拟化通路完成 RDMA 传输。”
rdma 和 cxl 有希望吗?
Polar DB 将 RDMA 共享内存转为 CXL 共享内存 https://mp.weixin.qq.com/s/xqTAPx4PgUHDjJt_J10mXA
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。