深圳某局,AI算力服务器交付及网络故障排查
目录
1.设备清单
1.1.服务器&交换机
1.2.其他信息
2.交付流程
2.1.硬装部分
2.2.软调部分
3.网卡状态测试
4.网络故障排查
1.设备清单
1.1.服务器
1.2.其他信息
2.交付流程
2.1.硬装部分
规划 上架 接线 Raid 系统安装……
2.2.软调部分
主板驱动:https://powerleader.com.cn/download_257.html
GPU驱动:下载 NVIDIA 官方驱动 | NVIDIA
网卡驱动:
适用于 PCIe* 的英特尔® 以太网控制器 82598程序 Linux* 下的英特尔®万兆以太网网络连接
VMD驱动:
适用于采用英特尔® 741 芯片组的英特尔®服务器主板和系统的 英特尔® Virtual RAID on CPU (英特尔® VROC) Windows* 驱动程序
主板驱动安装
以管理员身份运行CMD,Win+R
安装所有.inf驱动文件
for /r C:\PR2715W3QD\Chipset\WIN2016_2019\WZK16-x64 %i in (*.inf) do pnputil /add-driver "%i" /install网卡驱动安装
ubuntu安装 MLNX_OFFED 版本:
MLNX_OFFED是NVIDIA为Linux推出的以太网驱动套件。
bond配置
nmcli connection add type bond con-name bond4 ifname bond4 bond.options "mode=802.3ad,xmit_hash_policy=layer3+4"
nmcli connection add type ethernet con-name bond4-ens5f0np0 ifname ens5f0np0 master bond4
nmcli connection add type ethernet con-name bond4-ens5f1np1 ifname ens5f1np1 master bond4
nmcli connection modify bond4 ipv4.addresses 业务ip/掩码 ipv4.gateway 网关 ipv4.dns "DNS1 DNS2" ipv4.method manual connection.autoconnect yes
nmcli connection reload
sudo nmcli connection up bond43.网卡测试
网络状态
#查看网卡硬件信息
lspci -vnnk |grep -A 3 -i "ethernet"
#查看指定网卡的驱动信息
ethtool -i ens5f0np0
# 查看所有网络连接
nmcli connection show
networkctl list
# 查看 bond 详细信息
cat /proc/net/bonding/bond0
# 查看当前生效的配置
ip addr show bond0
ip route show
# 查看路由信息
route -n
#网卡链路日志
dmesg -T |grep -E "ens5f0np0|bond4|link down|link up"
# 确认 bond 模式(如 802.3ad)与交换机 LACP 配置一致;
# 临时移除故障网卡ens5f1,测试其他网卡是否正常:
nmcli connection delete 5f1 # 删除错误连接
nmcli connection add type ethernet con-name test ifname ens5f1 # 单独启用网卡测试网卡流量负载测试
mkdir /root/test
cd /root/test
#大文件下载
nohup wget https://mirrors.cloud.tencent.com/centos-stream/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-20251215.0-x86_64-dvd1.iso > centos_download1.log 2>&1 &
#查看网络流量
iftop -i bond4#查看日志
tail -f centos_download1.log# 查看wget进程是否还在运行
ps aux | grep wget | grep -v grep
# 先杀死假死的wget进程(替换为查到的PID)
kill -9 [wget进程PID]
# 用断点续传重启下载,日志覆盖原文件
nohup wget -c https://mirrors.cloud.tencent.com/centos-stream/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-20251215.0-x86_64-dvd1.iso > centos_download2.log 2>&1 &4.网络故障排查
ixgbe驱动故障排查
# 维度 1:驱动 / 内核层面(优先解决)
# 1.查看驱动版本与内核版本:
# 查看ixgbe驱动版本
modinfo ixgbe | grep -E "version|vermagic"
# 查看内核版本
uname -r
# 若驱动版本低于 5.0(如 Ubuntu 24.04 默认内核 6.8 的 ixgbe 版本约 6.0+,若更低则需升级),执行前文的内核升级或源码编译驱动。
# 查看驱动日志(定位具体错误):
# 实时查看内核日志中的ixgbe报错
dmesg -w | grep -i ixgbe
# 查看历史日志
journalctl -k | grep -i ixgbe# 维度 2:硬件 / 链路层面
#1. 检查物理链路(网线、光模块、交换机端口):
#Intel 82599ES 支持光口和电口,确认光模块为原厂兼容(如 Intel 原装光模块,第三方模块可能出现兼容性问题);
#更换网线 / 光模块,测试交换机端口(将网卡连接到其他交换机端口,或更换交换机);
#执行ethtool ens5f1查看网卡链路状态,确认Link detected: yes。
#2. 更新网卡固件(Intel 官网下载对应固件):
# 查看网卡固件版本
ethtool -i ens5f1 | grep firmware
# 从Intel官网下载82599ES固件(ixgbe_rpm_files_6.2.6-1.zip),按文档更新# 维度 3:bond 配置与交换机匹配层面
# 1.确认交换机配置(针对 mode=4/LACP):
# 交换机端需配置LACP 聚合组(802.3ad),将对应端口加入聚合组,LACP 速率设置为fast(与系统侧的bond.lacp-rate fast匹配);
# 交换机的聚合组模式需为动态 LACP(而非静态聚合);
# 确认交换机端口的 VLAN、MTU 配置与系统侧一致(如 MTU=9000 的巨帧,需交换机和系统同时开启)。
# 临时切换 bond 模式(测试是否为模式不匹配问题):
# 若怀疑 mode=4 与交换机不匹配,临时切换为 mode=1(主备模式),观察是否仍报错:
# 修改bond4的模式为active-backup
nmcli connection modify bond4 bond.mode active-backup
# 重启bond4连接
nmcli connection down bond4 && nmcli connection up bond4
# 观察是否仍有ixgbe报错
dmesg -w | grep -i ixgbeixgbe驱动更新
#1.安装内核额外模块(基础补全):
sudo apt update && sudo apt install -y linux-modules-extra-$(uname -r)
sudo modprobe -r ixgbe && sudo modprobe ixgbe # 重新加载驱动
#2.升级系统内核(推荐,驱动随内核更新):
# 安装最新稳定内核(Ubuntu 24.04默认是6.8系列,可升级到更高的主线内核)
sudo apt install -y linux-generic-hwe-24.04 # HWE内核(硬件启用栈,更新更频繁)
sudo reboot # 重启后生效
#3.源码编译最新 ixgbe 驱动(最终方案,针对内核更新后仍有问题)
# 安装编译依赖
sudo apt install -y build-essential linux-headers-$(uname -r) git
# 克隆Intel官方ixgbe驱动源码(或从官网下载tar包)
git clone https://github.com/intel/ixgbe.git
cd ixgbe
# 编译驱动
make -j$(nproc)
# 安装驱动(替换原有驱动)
make install
# 重新加载驱动
rmmod ixgbe && sudo modprobe ixgbe
# 配置驱动开机自启(可选)
"ixgbe" | sudo tee -a /etc/modules网络相关异常信息
查看系统日志 /var/log/syslog
# 1. awk 精准过滤(推荐,容错率高)
#优势:不依赖 “是否存在精确时间点的日志”,按字符串字典序比较(YYYY-MM-DD 格式天然支持),即使某一秒无日志也能完整导出范围。
#命令模板(按格式适配)
# 格式 1:时间戳为第 1 列(如 2025-12-15 15:40:08):
sudo awk '$1 >= "YYYY-MM-DD" && $1 <= "YYYY-MM-DD"' /var/log/目标日志文件 > /导出路径/文件名.log
# 示例:导出 2025-12-14 到 2025-12-15 的 /var/log/syslog 日志
sudo awk '$1 >= "2025-12-14" && $1 <= "2025-12-15"' /var/log/syslog > ~/syslog_20251214-15.log
# 格式 2:时间戳含 T 分隔(如 2025-12-15T15:40:08):
# 时间戳是连续字符串(无空格),需用 substr 截取日期部分,或直接比较整行时间戳:
# 方法A:截取前10位日期(YYYY-MM-DD)比较
sudo awk 'substr($1,1,10) >= "2025-12-14" && substr($1,1,10) <= "2025-12-15"' /var/log/syslog > ~/syslog_20251214-15.log
# 方法B:直接比较完整时间戳(支持精确到秒)
sudo awk '$1 >= "2025-12-14T00:00:00" && $1 <= "2025-12-15T23:59:59"' /var/log/syslog > ~/syslog_20251214-15.log# 2. sed 快速过滤(适合已知时间点存在的场景)
# 优势:处理速度极快;缺点:需日志中存在 “起始时间” 和 “结束时间” 的精确匹配行,否则会漏截或误截。
# 模板:sed -n '/起始时间字符串/,/结束时间字符串/p' 原日志文件 > 导出文件
sudo sed -n '/2025-12-14T00:00:00/,/2025-12-15T23:59:59/p' /var/log/syslog > ~/syslog_20251214-15.log# 3. grep 模糊过滤(适合按 “小时 / 日期前缀” 筛选)
# 优势:简单易记,适合无需精确到秒的场景;缺点:可能匹配日志中间的日期(非行首时间戳)。
# 示例1:导出 2025-12-14 全天的日志(匹配日期前缀)
sudo grep "^2025-12-14" /var/log/syslog > ~/syslog_20251214.log
# 示例2:导出 2025-12-15 15点-16点的日志(匹配小时前缀)
sudo grep "^2025-12-15 15:" /var/log/syslog > ~/syslog_20251215_15h.log查看内核日志kern.log ( journalctl 工具)
# 查看规定时间内的内核日志(等价于 kern.log 内容)
sudo journalctl -k --since "2025-12-15T15:40:00" --until "2025-12-15T15:45:00"
# 导出到文件
sudo journalctl -k --since "2025-12-15T15:40:00" --until "2025-12-15T15:45:00" > ~/kern_journal.log#查看 2025-12-15 15:40-15:45 的内核日志(对应你提供的启动日志时间):
sudo awk '$1 >= "2025-12-15T15:40:00" && $1 <= "2025-12-15T15:45:00" && $5 ~ /kernel:/' /var/log/kern.log
#导出 2025-12-14 全天的内核日志:
sudo awk 'substr($1,1,10) == "2025-12-14" && $5 ~ /kernel:/' /var/log/kern.log > ~/kern_20251214.log
#查看最近 1 小时的内核错误日志(仅保留含 err/error 的行):
sudo awk '$1 >= "'$(date -d "1 hour ago" +"%Y-%m-%dT%H:%M:%S")'" && $0 ~ /err|error/i && $5 ~ /kernel:/' /var/lIntel 82599ES && Mellanox MT27710(ConnectX-4 Lx)