You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rocky Linux 8.6下irdma模块是否无需配置自动启用RDMA?

irdma模块工作机制与应用配置说明

核心结论

  • 原生irdma模块仅完成底层RDMA链路的就绪工作,不会自动将服务器间的所有流量切换为RDMA传输。
  • 上层应用必须主动支持RDMA,并通过配置明确指定使用RDMA传输,才能利用irdma模块的能力。

具体解释

1. 当前irdma链路状态的含义

从你提供的命令输出:

[root@host01 ~]# rdma l s
link irdma0/1 state ACTIVE physical_state LINK_UP netdev ens3f0
link irdma1/1 state ACTIVE physical_state LINK_UP netdev ens3f1
link irdma2/1 state ACTIVE physical_state LINK_UP netdev ens2f0 <<--
link irdma3/1 state ACTIVE physical_state LINK_UP netdev ens2f1
...

ACTIVE+LINK_UP状态仅说明:

  • Intel E810网卡的硬件RDMA功能已被irdma驱动激活
  • RDMA链路与物理网卡(如ens2f0)绑定成功
  • 底层网络连通性正常

这只是RDMA可用的前提,不代表流量会自动走RDMA。

2. RDMA的使用条件

RDMA是绕过内核协议栈的用户态直接传输技术,必须同时满足:

  • 应用程序集成了RDMA相关的开发库(如libibverbs、librdmacm)
  • 应用在部署或运行时明确配置为使用RDMA传输

3. 典型应用配置示例

你提到的两个场景就是标准的RDMA配置方式:

  • Libvirt虚拟机实时迁移:

    virsh migrate --live --rdma-pin-all --migrateuri rdma://hostname domain qemu+tcp://hostname/system
    

    必须通过--migrateuri rdma://指定RDMA传输协议,才会触发irdma模块工作。

  • GlusterFS卷挂载:

    mount -t glusterfs -o transport=rdma server1:/test-volume /mnt/glusterfs
    

    需添加transport=rdma参数,让GlusterFS使用RDMA而非默认的TCP传输。

4. RabbitMQ集群的RDMA支持情况

RabbitMQ默认不支持RDMA传输,即使底层irdma模块就绪:

  • 若未安装RDMA相关的第三方插件或扩展,RabbitMQ集群间通信仍会使用常规TCP/IP
  • 只有当RabbitMQ配置了RDMA扩展并启用RDMA传输时,才会利用irdma模块的能力

5. 内存占用增加的处理

irdma模块加载后会占用内存用于维护RDMA队列、缓冲区等资源,属于正常现象。若内存占用过高:

  • 可删除闲置的irdma链路:rdma link delete irdma4(对应状态为DOWN的链路)
  • 调整irdma模块参数(如rx_buf_size、tx_buf_size),但需参考官方文档谨慎操作

内容的提问来源于stack exchange,提问作者amkgi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:57:18