IBM 堆叠服务器故障处理

近期处理了一台IBM X3950 X5堆叠服务器的故障问题,现整理处理过程如下:

设备型号:IBM X3950 X5 系统版本:RHEL 5.5 配置及硬件结构:双节点堆叠,每节点4颗10核物理CPU,共计8颗CPU,编号0-7 每节点8个内存板,每板插有2条4GB DIMM,共计16个内存板,32条4GB DIMM,总物理内存128GB。

初始问题现象: 用户报设备可用内存减少,IMM查看及dmidecode查看均无异常,更换可疑节点内存(从节点内存板8的两条内存)后,出现堆叠启动失败,主机卡在00 bb状态,从节点IMM接口无响应或hang死。

经过对启动顺序、启动时间的反复排查,均无法解决,检查QPI堆叠线无异常,在检查接口过程中,发现其中一QPI接口针脚处有一发泡海绵,疑似引发接触不良。 移除海绵后,主机可恢复正常堆叠状态。 疑似在初次上架或后续调整中被推进接口中,在初次配置或后续使用过程中,QPI针脚在发泡海绵处保持了较差的接触状态,但仍可通信。在再次插拔QPI线后,无法保持接触,导致无法完成堆叠握手。

恢复堆叠后,进入系统检查内存状态

使用dmidecode -t 17 和 grep Ssize 确认 32 条内存均 Present,状态正常,在IMM中查看全部内存条均在线,无报错。 在系统中使用numactl -H查看内存结点,发现node0-7中缺少node1和node5,free -g 和 dmesg 显示可用物理内存为 98GB

说明有约 30GB 内存未被识别(缺少两个 node,每 node 理应配 16GB)

对从节点逐块测试内存版定位灯,发现内存板4故障灯亮,更换该板两条内存后,node5成功上线,系统识别内存增至110GB。

接下来需要定位node1所属的内存板 基于 NUMA 拓扑结构分析:

每个 NUMA node ≈ 1 个 CPU + 2 块内存板

node5 → CPU5 → 从节点内存板 3、4

node1 → CPU1 → 推测应为主节点内存板 3、4

进一步验证命令:

dmesg | grep -i node
grep . /sys/devices/system/cpu/cpu*/topology/physical_package_id
cat /sys/devices/system/node/node*/cpulist

根据命令输出分析得出:

CPU0–CPU1 的核心(core0–core19)都归属 node1

剩余 CPU 对应核心被平均分配至其他 node(每 node 10 个核心)

确认 node1 绑定 CPU1,对应主节点内存板 3、4

最终处理

更换主节点内存板 3、4 上的4GB DIMM 后重启系统

验证:

numactl -H 显示所有 node0–node7 均已上线

总内存恢复至完整的 128GB

NUMA Node–CPU–内存板 映射表

NUMA node CPU 所属服务器 内存板编号
node0 CPU0 主节点 板1/2
node1 CPU1 主节点 板3/4
node2 CPU2 主节点 板5/6
node3 CPU3 主节点 板7/8
node4 CPU4 从节点 板1/2
node5 CPU5 从节点 板3/4
node6 CPU6 从节点 板5/6
node7 CPU7 从节点 板7/8
Table of Contents