以下是为麒麟服务器版V10配置RoCEv2的步骤:

第一步:确认硬件和驱动支持

在开始配置之前,首先要确保你的服务器硬件满足要求。通常需要Mellanox ConnectX系列网卡(例如mlx5系列),并且已安装最新的OFED驱动包。可以通过以下命令检查驱动状态:

modinfo mlx5_core  # 查看内核模块信息
lspci | grep Mellanox # 确认网卡型号

如果发现驱动未正确加载,需要从Mellanox官网下载对应版本的驱动并安装。

第二步:切换网卡到RoCEv2模式

默认情况下,RDMA可能运行在RoCEv1模式(基于以太网二层),而RoCEv2需要切换到三层IP模式。使用cma_roce_mode工具调整(假设网卡设备名为mlx5_1):

cma_roce_mode -d mlx5_1 -p 1 -m 2

这里的-m 2表示启用RoCEv2。完成后,建议通过dmesg | grep RDMA查看内核日志,确认模式切换成功。

第三步:配置流量控制和优先级

RoCEv2对网络质量敏感,需配合DCQCN(动态拥塞控制)PFC(优先级流控制)。假设网卡接口名为ens1np0,需在系统中设置:

  1. 开启ECN和优先级

    将优先级3(通常用于RoCE流量)的ECN功能启用:
    echo 1 > /sys/class/net/ens1np0/ecn/roce_np/enable/3
    echo 1 > /sys/class/net/ens1np0/ecn/roce_rp/enable/3
  2. 标记CNP报文

    设置拥塞通知报文(CNP)的DSCP值和802.1p优先级:
    echo 48 > /sys/class/net/ens1np0/ecn/roce_np/cnp_dscp  # DSCP=48
    echo 6 > /sys/class/net/ens1np0/ecn/roce_np/cnp_802p_prio # 802.1p优先级6

第四步:优化网卡队列调度

通过Mellanox的mlnx_qos工具调整QoS策略,确保RoCE流量获得足够的带宽。例如,为优先级3分配更高的权重:

mlnx_qos -i ens1np0 --trust=dscp  # 信任DSCP标记
mlnx_qos -i ens1np0 -f 0,0,0,1,0,0,0,0 # 在优先级3启用PFC
mlnx_qos -i ens1np0 -s ets,ets,ets,ets,ets,ets,strict,strict -t 10,10,10,50,10,10,0,0 # 队列权重分配

这一步的关键是让优先级3(对应RoCEv2流量)的队列获得更高的带宽比例,避免其他流量抢占资源。

第五步:配置交换机端

如果服务器连接到交换机,需确保交换机配置与网卡一致。例如:

  • 在交换机上启用基于DSCP的PFC,并针对DSCP=48(即优先级3)开启流控。
  • 确认交换机的ECN功能已启用,并与服务器的DSCP/802.1p映射匹配。

    具体配置命令因交换机型号而异,建议参考交换机厂商的文档。

第六步:验证配置

最后一步是测试RoCEv2是否正常工作。推荐使用ib_send_bw工具进行带宽测试:

服务端:

ib_send_bw -d mlx5_1 --report_gbits -F -R

客户端:

ib_send_bw -d mlx5_1 --report_gbits -F -R <服务端IP>

如果看到稳定的高带宽(例如25Gbps或100Gbps,取决于网卡型号),说明配置成功。若出现丢包或低带宽,可以通过ethtool -S ens1np0检查网卡统计信息,或使用Wireshark抓包分析ECN和CNP报文。

注意事项

  • 网络服务重启:配置完成后,建议重启网络服务使设置生效:
    systemctl restart NetworkManager  # 或传统network服务
  • 内核参数:如果使用网卡绑定(bonding),需在/etc/modprobe.d/bonding.conf中配置miimon=100 mode=4(802.3ad动态聚合)。
  • 固件升级:如果遇到兼容性问题,可能需要升级网卡固件。

通过以上步骤,你应该能在麒麟V10上成功部署RoCEv2。如果在操作中遇到问题,可以优先检查驱动版本和交换机配置是否匹配,这是最常见的故障点。

麒麟V10部署ROCEv2网卡配置步骤的更多相关文章

  1. 大数据学习——linux系统的网卡配置步骤

    ifconfig 查看ip,没有ip时需要配置 配置步骤: 1输入命令setup,选择network configuration,选择runtool,选择device configuration,选择 ...

  2. jmeter 环境部署、数据库设置、分布式设置、多网卡配置等随笔

    <!-- linux系统修改系统环境变量  系统语言-->[root@web-249 ~]# env|grep LANGLANG=zh_CN.UTF-8[root@web-249 ~]# ...

  3. linux部署二:网卡配置和Yum源的替换

    一,初次登陆: 1.登陆(用root登陆)(1).账户名root(2).密码 ....2.工作界面切换A.Ctrl + alt + F1 : 图形化界面B.Ctrl + alt + F2----F6 ...

  4. .NET 6应用程序适配国产银河麒麟V10系统随记

    最近想在麒麟系统上运行.NET 6程序,经过一番折腾最终完成了,简单记录一下. 目标系统: CPU: aarch64架构(ARM64) 操作系统:银河麒麟V10高级服务器系统 银河麒麟V10系统(以下 ...

  5. (转)Centos7上部署openstack ocata配置详解

    原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124  文章-2  评论-82  Centos7上部署openstack ocata配置详解 ...

  6. 银河麒麟V10 SP1服务器操作系统-单用户模式与救援模式调试方法

    单用户模式 单用户模式:该模式下系统并没有完全运行进来,只是部分程序运行,包括网络服务,ssh服务等部分服务未运行,因此无法通过远程登录到操作系        统.进入单用户方式进行系统维护由是ROO ...

  7. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

  8. Oracle 11g客户端在Linux系统上的配置步骤详解

    Oracle 11g客户端在Linux系统上的配置步骤详解 2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T 本文我们主要介绍了Oracle 11g客户端在L ...

  9. linux学习之centos(三):网卡配置

    Linux系统版本:Centos 6.5 在linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用中,使用远程工具SecureCRT,通过“ifconfig eth0 + ...

  10. 网卡配置和DNS配置,手动挂在nas存储的共享目录,网络相关其它操作命令,修改防火墙中的端口配置,resolv.conf配置详细介绍和网卡信息配置详细介绍

    1.   网卡配置和DNS配置 若想服务器能够发邮件,需要让部署的服务器能够访问到外网环境.若部署的服务器访问不到外网,通过ping www.baidu.com的方式执行的时候,会出现以下问题: &q ...

随机推荐

  1. jdk 5.0 新增的foreach循环(用于遍历集合、数组)

    使用 foreach 循环遍历集合元素 Java 5.0 提供了 foreach 循环迭代访问 Collection和数组. 遍历操作不需获取Collection或数组的长度,无需使用索引访问元素 ...

  2. Slort pg walkthrough Intermediate window

    nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A -sS 192.168.226.53 Starting Nmap 7.94SVN ( https://nmap.org ...

  3. Nityacke's 分块(未补全)

    P2801 教主的魔法 区间加区间查询一个数排名. 对于每个块,维护其有序序列.修改时散块暴力重构,整块打tag. 查询是简单的.时间复杂度 \(O(n\log B+\dfrac{qn}{B}\log ...

  4. Presto配置调整

    一.常用优化 1.每个查询最大使用内存1T,目前配置 3T query.max-memory=1T 2.每个工作节点最多加载10GB数据,目前 60GB query.max-memory-per-no ...

  5. kvm远程管理

    列出centos7中所有的虚拟机 [root@kvm1 ~]# virsh list --all Id Name State ------------------------------------- ...

  6. FreeSql学习笔记——5.删除

    前言   对于FreeSql来说,删除的支持并不强大,只有在Where条件不为空的时候才执行,否则返回0或默认值,不执行删除操作:     语法   fsql.Delete<Class>( ...

  7. js中的模糊搜索( 正则表达式)

    此案例在vue中实现 搜索设备ID示例 <input type="text" name="" placeholder="搜索设备ID" ...

  8. STC15F104E的外部中断工作异常

    STC15F104E使用了外部中断,发现中断工作有时会失效,必需重新上电才能恢复,使用中不时会失效. 1 /********************************************** ...

  9. JavaGUI - [04] BoxLayout

    题记部分 一.简介   为了简化开发,Swing引入了一个新的布局管理器:BoxLayout.BoxLayout可以在垂直和水平两个方向上摆放GUI组件,BoxLayout提供了如下一个简单的构造器: ...

  10. 【攻防世界】BadProgrammer

    BadProgrammer(原型链污染) 题目来源 攻防世界 NO.GFSJ0986 题目描述 打开网址页面如下,没有什么有用信息 用dirsearch扫一下目录,发现/static../(用御剑扫不 ...