麒麟V10部署ROCEv2网卡配置步骤

以下是为麒麟服务器版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。如果在操作中遇到问题,可以优先检查驱动版本和交换机配置是否匹配,这是最常见的故障点。

原创作者: wenlf136 转载于: https://www.cnblogs.com/wenlf136/p/18822898
### 关于麒麟V10SP2操作系统中的网卡配置 #### 使用`nkvers`命令查看系统版本信息 为了确认当前操作系统的具体版本,可以使用如下命令来获取详细的发行版和内核版本信息[^2]: ```bash [root@localhost ~]# nkvers ``` 该命令会输出类似于以下的信息: ``` ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Sword) Kernel: 4.19.90-24.4.v2101.ky10.x86_64 Build: Kylin Linux Advanced Server release V10 (SP2)/(Sword)-x86_64-Build09/20210524 ################################################# ``` #### INTEL X710网卡的基础配置 对于INTEL X710这类网卡,默认情况下已经预装了驱动程序版本2.3.2-k。如果需要进一步优化性能或是解决特定问题,则可能涉及到更新或重新编译适配器的驱动。 #### 配置Bonding接口 当希望提高网络连接冗余度并增强带宽时,可以通过创建bonding设备实现多个物理网口聚合为单一逻辑端口的功能。以下是基于银河麒麟高级服务器操作系统V10SP2(X86)的一个实例说明如何设置带有固定MAC地址的bond0接口[^4]: ##### 准备工作 - **Down掉现有bond0**: `ip link set bond0 down` - **备份旧有配置文件至根目录下的bak文件夹** ```bash cp /etc/sysconfig/network-scripts/ifcfg-bond0 /root/bak/ rm -f /etc/sysconfig/network-scripts/ifcfg-bond0 ``` ##### 创建新的bond0定义 编辑新ifcfg-bond0文件,并按照需求填写相应字段: ```plaintext DEVICE=bond0 NAME=Bonded connection 0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=static ONBOOT=yes IPADDR=x.x.x.x # 替换成实际分配给此绑定接口的静态IP NETMASK=y.y.y.y # 子网掩码 GATEWAY=z.z.z.z # 默认路由下一跳地址 DNS1=a.a.a.a # 可选:首选DNS服务器 DNS2=b.b.b.b # 可选:备用DNS服务器 USERCTL=no # 是否允许非特权用户控制这个接口 NM_CONTROLLED=no # NetworkManager不管理此接口 PRIMARY=ens35 # 主要成员NIC名称;请依据实际情况调整 MIIMON=100 # 监控间隔时间(ms),用于检测链路状态变化 MODE=active-backup # 负载均衡模式选择之一 MACADDR="00:0c:29:3b:4c:47" # 设置为主成员NIC所关联的真实硬件地址 ``` 完成上述修改之后保存退出编辑器,接着执行命令使更改生效: ```bash nmcli con reload && systemctl restart network ``` #### 解决cloud-init引起的网卡命名冲突 有时cloud-init可能会干扰正常的网卡初始化流程,特别是在虚拟化环境中可能导致预期之外的行为比如无法正确识别eth0这样的传统命名方式。针对此类情形可采取措施包括但不限于通过GRUB传递额外启动参数阻止自动化的网络配置接管行为[^5]: 向/etc/default/grub内的GRUB_CMDLINE_LINUX附加选项: ```bash biosdevname=0 net.ifnames=0 ``` 随后运行update-grub刷新引导菜单配置,并重启机器检验效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值