ibdev2netdev
定义
ibdev2netdev是一个命令行辅助程序,作用是把系统里的RDMA设备端口与内核网络设备逐一对应起来显示[1]。它列出的对象是netdev与相关联的RDMA接口,涵盖IPoIB、RoCE、iWarp等几种承载方式[3]。
典型输出每行形如「mlx5_0 port 1 ==> ens5f0 (Up)」,依次表示RDMA设备名、该设备上的端口序号、对应的网络接口名,以及该接口链路是否处于Up状态[4]。加上-verbose之类的详细选项后,输出还会补充PCI总线地址、设备型号、固件版本、端口状态等信息[5]。
原理
该工具不直接查询硬件,而是读取Linux内核导出的sysfs目录树。它先枚举/sys/class/infiniband下的RDMA设备,再遍历/sys/class/net下的网络接口,通过比较两边的设备资源标识以及device、dev_id、dev_port等属性,判断某个网络接口与哪个RDMA设备端口属于同一块物理适配器,最后把配对结果按端口顺序打印出来[6]。
链路通断取自网络接口的carrier属性:取值为1时显示Up,为0时显示Down,该文件不存在则显示NA[6]。对较老的驱动,脚本会改为读取GID表,用其中的GUID或MAC字段做匹配,因此同一份输出在不同代际的适配器上来源并不相同[6]。
由于匹配依靠设备对应关系,某些经过硬件聚合的端口会以不同的名字出现。当同一张双端口卡的两个口在网卡层面形成绑定后,列表中不再分别显示两个RDMA设备,而是出现mlx5_bond_0这类聚合后的单一设备名[7]。
发展历程
这一工具最初并非独立软件项目,而是红帽在其ibutils软件包中长期附带的一个shell脚本[8]。随着ibutils与ibutils2转为Mellanox专有,脚本失去原有载体,仍被认为有使用价值[8]。
2018年12月,红帽方面的开发者提交补丁,希望把整理过的ibdev2netdev并入rdma-core的redhat目录,以便其他发行版也能使用[8]。社区讨论中有意见提出应改用iproute2套件中的rdma工具,但提交方认为rdma工具当时不显示IB设备上层的IPoIB网络设备,也不显示RoCE端口对应的多个网络设备,ibdev2netdev覆盖的范围更宽[9]。这一版本把输出格式改为「设备 port 端口 <===> 网络接口」[8]。
此后该工具被多个发行版收录。SUSE方面另有一份用C语言重写的实现,以GPL-3.0-only许可发布,0.2.0版本于2024年3月25日发布[2][3]。在红帽企业Linux中,它此前由rdma-core软件包提供,自第9版起被移除,改由iproute软件包中的rdmatool承担类似职能[1]。
应用
最常见的用途是在配置高速网络前确认设备对应关系。搭建RoCE链路时,管理员先运行该命令找出处于Up状态的以太网接口名,再对该接口配置IP地址、VLAN或MTU[10][11]。在InfiniBand环境中,输出则用于核对mlx5_0、mlx5_1等设备名与ib0、ib1等接口的对应,便于后续在存储集群中为各端口分配不同子网[12][7]。
该命令也常用于故障排查和状态巡检。文档给出的做法是把输出过滤后查找标记为Down的接口,据此判断线缆、光模块或对端端口是否异常[13]。在SR-IOV场景中,它可用来确定用于PCIe配置访问的设备节点,以及确认哪些端口实际连到了交换机[14]。
一些硬件与软件厂商把该命令写入官方安装或部署文档作为标准检查步骤,包括GPU计算平台的网卡初始化流程、高性能存储系统的部署手册,以及服务器厂商对多机互联状态的确认说明[15][16][17]。
局限
该工具只反映配对和链路通断,不给出带宽、丢包、错误计数等性能指标,也不诊断协议层问题,因此无法单独用于判断链路质量。当接口已经插上线缆但输出仍不显示Up或Down时,官方文档建议改为解析内核日志中的驱动信息来确认端口状态[5]。
输出中的Up或Down仅表示网卡层面的载波状态,不等于RDMA链路可用或已完成配置。在RoCE LAG等聚合场景下,两个端口会合并为单个设备条目,若只看设备名容易误判端口数量与拓扑[7]。
脚本式实现依赖sysfs的目录结构与属性命名,对新旧驱动采用不同的匹配路径,在驱动版本差异较大时可能出现漏配或显示不一致[6]。随发行版演进而被替换是另一层限制:红帽企业Linux 9已不再提供该命令,改用rdmatool,原有依赖该命令的自动化脚本需要相应调整[1]。
参见
参考资料
- ref_infiniband-and-rdma-networks_assembly_networking . redhat.com [引用日期2026-10-08]
- ibdev2netdev . github.com [引用日期2026-10-08]
- SUSE Package Hub . suse.com [引用日期2026-10-08]
- 【3FS】rdma命令 . cnblogs.com [引用日期2026-10-08]
- nvidia-holoscan-sdk-v2-1-0.0(PDF) . nvidia.com [引用日期2026-10-08]
- ibdev2netdev . github.com [引用日期2026-10-08]
- DSS-G-using-RoCE(PDF) . lenovo.com [引用日期2026-10-08]
- [PATCH rdma-core] Add Red Hat's ibdev2netdev helper . spinics.net [引用日期2026-10-08]
- marc.info 上的网页 . marc.info [引用日期2026-10-08]
- broadcom.com 上的网页 . broadcom.com [引用日期2026-10-08]
- rdma+over+converged+ethernet+(roce) . nvidia.com [引用日期2026-10-08]
- IBM Elastic Storage Server - Focus sentinel . ibm.com [引用日期2026-10-08]
- 5 Tesla V100-SXM2 . bcebos.com [引用日期2026-10-08]
- SR-IOV Enablement | 3.14 EOS | W E K A . weka.io [引用日期2026-10-08]
- [Mini PC] 如何连接三台 ASUS Ascent GX10 | 官方支持 | ASUS 中国 . asus.com.cn [引用日期2026-10-08]
- README . github.com [引用日期2026-10-08]
- ibm.com 上的网页 . ibm.com [引用日期2026-10-08]
浏览次数:9 次
阅读量:6 次 · 阅读完成量:1 次
最近更新:2026-10-08T12:40:38Z
完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。