• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

roce网络中服务器侧的网卡配置

  • 0关注
  • 0收藏,148浏览
粉丝:0人 关注:0人

问题描述:

组网:一台S9825-64D-L3和三台3个400G端口的GPU服务器

已经按照H3C官网H3C RoCE网络开局一本通-6W103 的参数网二层盒盒配置举例配置交换机,但上面没有服务器侧的400G端口配置介绍,服务器400G端口该怎么配置,有没有参考的配置方法和命令,系统是Ubuntu 22.04

3 个回答
粉丝:3人 关注:3人

可以找对应服务器设备厂商要一下相关配置

暂无评论

粉丝:27人 关注:1人

针对您在 Ubuntu 22.04 系统下配置 GPU 服务器 400G RoCE 网卡的需求,结合 H3C 交换机侧的配置,服务器侧的核心配置主要围绕 QoS 信任模式、PFC 无损流控、MTU 巨帧以及流量分类映射 展开。
以下是为您整理的服务器侧网卡配置参考方法和关键命令:

1. 基础网络与 MTU 配置

RoCEv2 流量通常使用 UDP 4791 端口,为了减少分片并提升吞吐,建议开启巨帧(Jumbo Frames)。
  • MTU 设置:建议将物理网卡 MTU 设置为 9000(需确保与 H3C S9825-64D 交换机端口的 jumboframe enable 9000 配置一致)。
  • 命令示例
    sudo ip link set dev <网卡接口名> mtu 9000

2. QoS 信任模式与 DSCP 映射

服务器网卡需要信任交换机下发或报文自带的 DSCP 优先级,以便正确匹配 PFC 队列。
  • 信任模式:将网卡的 QoS 信任模式设置为 DSCP
  • DSCP 映射规范
    • RoCE 业务流:DSCP 26 (AF31) → 802.1p CoS 3(无损队列)。
    • RoCE 拥塞反馈 CNP 报文:DSCP 48 (CS6) → 802.1p CoS 7(最高优先级,禁止阻塞)。

3. 开启 PFC (Priority Flow Control)

这是构建无损网络的核心,仅针对 RoCE 所在的无损队列(如队列 3 或队列 4)开启 PFC,其他队列保持关闭,以防止普通 TCP 流量触发反压导致全局死锁。
  • Mellanox/NVIDIA 网卡配置示例(使用 mlnx_qos 工具):
    # 假设仅对队列 3 开启 PFC(具体队列号视网卡默认映射而定) sudo mlnx_qos -i <网卡接口名> --pfc=0,0,0,1,0,0,0,0 --trust=dscp
    (注:若您的 RoCE 流量被映射到队列 4,则参数改为 --pfc=0,0,0,0,1,0,0,0)

4. 开启 ECN (Explicit Congestion Notification)

配合 PFC 使用,在拥塞发生前提前抑制发送端速率,减少 PFC 反压的扩散范围。
  • 通常在使用 mlnx_qos 配置 DSCP 信任模式时,ECN 会协同生效。您也可以通过相关工具确认 DCQCN 拥塞控制算法已启用。

5. 多网卡聚合 (Bond) 配置(可选)

如果您的 GPU 服务器配置了多张 400G 网卡以提升带宽或实现冗余,RoCE 网卡支持 Bond 聚合,但有严格的模式限制。
  • 支持的模式:仅支持 Mode 1 (主备)、Mode 2 (负载均衡)、Mode 4 (802.3ad LACP 链路聚合)。
  • 负载均衡策略:由于 RDMA 点对点通信时 IP 和 MAC 地址不变,聚合时必须使用 layer3+4(基于 IP+端口哈希)策略,利用源端口的随机性实现流量负载分担。
  • Ubuntu Netplan 配置示例
    network: bonds: bond0: interfaces: [ens1f0, ens2f0] # 替换为实际物理网卡名 parameters: mode: 802.3ad transmit-hash-policy: layer3+4 lacp-rate: fast

💡 关键注意事项

  1. 端到端一致性:服务器侧配置的 DSCP 优先级、PFC 队列号、MTU 大小,必须与 H3C S9825 交换机侧的 QoS 策略和 PFC 配置严格对应。
  2. 死锁防护:务必确保只在 RoCE 专用队列上开启了 PFC,切勿在所有队列上盲目开启 PFC,否则极易引发网络死锁。
  3. 配置持久化:Ubuntu 22.04 下修改的 QoS 和 PFC 参数在重启后可能会失效,建议将相关命令写入启动脚本(如 rc.local 或 systemd service)以实现持久化。


暂无评论

粉丝:25人 关注:2人

组网匹配:S9825-64D-L3(二层 RoCE,参考 H3C《RoCE 网络开局一本通 6W103》)+ 3 台 400G GPU 服务器
重要前提:
全网统一使用 RoCEv2;交换机侧已经配置 PFC/ECN,RoCE 流量绑定优先级 3(PCP3 / DSCP 26,CNP 报文 DSCP48/PCP7),服务器配置必须和交换机 QoS 映射完全对齐!
400G 网卡主流为 NVIDIA ConnectX-6 DX / CX7,下文以 Mellanox 网卡(MLNX_OFED 驱动)为主;如果是 Intel E810/E830,文末补充差异。
端到端 MTU 统一 9000(巨帧),交换机 400G 接口同步配置 mtu 9000。
一、前期环境准备
1. 基础软件安装(Ubuntu22.04)
bash
# 基础RDMA工具
sudo apt update
sudo apt install rdma-core ibverbs-utils infiniband-diags ethtool lldptool

# 必须安装MLNX_OFED驱动(ConnectX系列400G网卡,内核RDMA-core功能不全,无法发挥400G RoCE性能)
# 去NVIDIA官网下载对应Ubuntu22.04 MLNX_OFED版本,安装时启用RoCE
2. 识别网卡设备
bash
# 查看以太网口(替换为你的网卡名,示例ens4f0)
ip link show

# 查看mst设备(mlxconfig/mlnx_qos依赖)
mst status

# 验证RDMA设备、确认支持RoCEv2
ibv_devinfo
# 输出需要看到:roce_v2_supported: 1
二、网卡固件底层配置(一次性,重启生效)
ConnectX 网卡默认有可能工作在 IB 模式,必须强制以太网 RoCE 模式
bash
# 查看网卡当前配置
sudo mlxconfig -d /dev/mst/mt4127_pciconf0 q

# 关键配置:开启RoCEv2,端口以太网模式
sudo mlxconfig -d /dev/mst/mt4127_pciconf0 set LINK_TYPE_P1=ETH
sudo mlxconfig -d /dev/mst/mt4127_pciconf0 set ROCE_V2_ENABLE=1
sudo mlxconfig -d /dev/mst/mt4127_pciconf0 set ROCE_V1_ENABLE=0
# 关闭全局pause,只使用PFC(禁止全局流控!RoCE大忌)
sudo mlxconfig -d /dev/mst/mt4127_pciconf0 set GLOBAL_PAUSE=0

# 写入配置后重启服务器生效
sudo reboot
三、接口 QoS 配置(和 S9825 交换机对齐,最核心)
H3C 开局一本通二层模板惯例:
RoCE 业务流量:PCP 3(802.1p 优先级 3),DSCP 26 (AF31)
CNP 拥塞通知报文:PCP7,DSCP48(CS6)
仅优先级 3 开启 PFC 无损,其余优先级关闭 PFC,防止 pause 风暴
1. mlnx_qos 网卡 DCB/PFC 配置(临时生效,先验证)
bash
# 替换ens4f0为你的400G网卡接口名
NIC=ens4f0

# 1. 设置信任DSCP(交换机侧推荐trust dscp模式,保持两端统一)
sudo mlnx_qos -i $NIC --trust=dscp

# 2. PFC掩码:0,0,0,1,0,0,0,0 → 仅priority3开启PFC,其余关闭
sudo mlnx_qos -i $NIC --pfc 0,0,0,1,0,0,0,0

# 3. DSCP → 硬件TC映射(和交换机dscp-dot1p映射严格一致)
# DSCP26 → TC3(RoCE数据);DSCP48 → TC7(CNP);其余流量TC0
sudo mlnx_qos -i $NIC --dscp2prio 26:3,48:7

# 4. ETS调度带宽分配:TC3(RoCE)90%,TC7(CNP)严格优先,剩余10%给其他业务
sudo mlnx_qos -i $NIC --ets_tsa 3:ets,7:strict
sudo mlnx_qos -i $NIC --ets_bandwidth 3:90,0:10
2. 验证 QoS 下发
bash
sudo mlnx_qos -i ens4f0 show
⚠️ DCBX 模式建议:manual 模式(willing=no)
不要开启自动协商 DCBX,避免交换机与主机 PFC 协商异常;
如果需要 LLDP 固化配置:
bash
sudo lldptool -i $NIC -V PFC -T willing=no enabled=3
四、网络基础参数(Netplan 永久 IP+MTU)
Ubuntu22.04 默认 netplan,示例配置 /etc/netplan/01-roce-400g.yaml
yaml
network:
version: 2
renderer: networkd
ethernets:
ens4f0:
addresses:
- 192.168.10.10/24 # 修改为你的RoCE子网
mtu: 9000
optional: true
# 如使用VLAN RoCE(如果交换机接口配置Trunk)
# vlans:
# ens4f0.100:
# id: 100
# link: ens4f0
# addresses: [192.168.10.10/24]
# mtu: 9000
生效:
bash
sudo netplan apply
# 校验MTU
ip link show ens4f0
五、内核系统参数调优(DCQCN + RDMA 优化,GPU 集群必备)
创建 /etc/sysctl.d/99-roce-gpu.conf
ini
# DCQCN 拥塞控制参数(RoCEv2标准,匹配H3C交换机ECN)
net.ipv4.tcp_ecn = 1
net.ipv4.udp_ecn = 1

# RDMA内存缓冲区
vm.min_free_kbytes = 524288
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 4194304
net.core.wmem_default = 4194304

# 关闭IPv6不需要可以添加 net.ipv6.conf.all.disable_ipv6=1

# 关闭网卡节能(至关重要,避免400G网卡深度节能带来延迟抖动)
# 下面这条sysctl无法控制,使用ethtool配置
加载参数:
bash
sudo sysctl -p /etc/sysctl.d/99-roce-gpu.conf
六、网卡硬件参数调优(ethtool)
bash
NIC=ens4f0
# 关闭EEE节能、省电功能(400G RoCE必关!)
sudo ethtool -s $NIC eee off

# 调整RX/TX队列buffer(ConnectX-6 400G推荐)
sudo ethtool -G $NIC rx 8192 tx 8192

# 关闭以太网全局pause!只使用PFC
sudo ethtool -A $NIC rx off tx off

# 查看配置确认
ethtool -a $NIC
ethtool -g $NIC
七、开机自动持久化所有配置(关键!重启失效解决方案)
mlnx_qos /ethtool 命令重启会丢失,推荐使用 systemd 服务 自启动:
1. 创建脚本 /usr/local/bin/roce-init.sh
bash
#!/bin/bash
NIC=ens4f0
# QoS/PFC
mlnx_qos -i $NIC --trust=dscp
mlnx_qos -i $NIC --pfc 0,0,0,1,0,0,0,0
mlnx_qos -i $NIC --dscp2prio 26:3,48:7
mlnx_qos -i $NIC --ets_tsa 3:ets,7:strict
mlnx_qos -i $NIC --ets_bandwidth 3:90,0:10
# Ethtool优化
ethtool -s $NIC eee off
ethtool -G $NIC rx 8192 tx 8192
ethtool -A $NIC rx off tx off
授权:
bash
sudo chmod +x /usr/local/bin/roce-init.sh
2. systemd 服务 /etc/systemd/system/roce-config.service
ini
[Unit]
Description=RoCE 400G NIC Init
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/roce-init.sh

[Install]
WantedBy=multi-user.target
启用开机自启:
bash
sudo systemctl daemon-reload
sudo systemctl enable roce-config.service
sudo systemctl start roce-config.service
八、验证与测试命令
bash
# 1. RDMA基础连通
ibv_devinfo

# 2. PFC/QoS校验
mlnx_qos -i ens4f0 show

# 3. RDMA性能测试(两台GPU互测)
# 服务端
ib_write_bw -d mlx5_0 --roce
# 客户端
ib_write_bw -d mlx5_0 --roce 192.168.10.10

# 4. 查看网卡错误计数(观察是否有drop、pause帧)
ethtool -S ens4f0
九、重要协同注意事项(对接 S9825-64D-L3)
交换机 400GE 对接服务器端口关键匹配项
mtu 9000
qos trust dscp
dcb pfc enable mode manual
dcb pfc priority 3 enable
开启 ECN;dscp-dot1p 映射 26→3,48→7
❌ 禁止:全局 pause enable;多个优先级同时开 PFC
若后续出现训练随机 hang、吞吐量波动:
检查两端 PFC 优先级是否一致
确认 EEE 节能全部关闭
核对 DSCP/PCP 映射,最常见两端映射不一致导致 RoCE 无无损

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明