带内清单与带外数据互补
硬件清单有两条采集路径:带外走 BMC 拿 FRU、传感器与电源信息,带内走操作系统拿 dmidecode、lscpu、lsblk 这类细节。两者覆盖面不同:BMC 能报出电源模块与传感器,但内存槽位、速率、NUMA 拓扑要操作系统侧才完整;反过来带内数据依赖系统能启动。上架时两套一起采集入库,后续换件或异常时做基线比对,最容易发现漏装与配置漂移。
基本信息
| 适用平台 | Linux 服务器(dmidecode、lscpu、lsblk 均为标准工具) |
|---|---|
| 权限要求 | dmidecode 需要 root(读取 SMBIOS 表) |
| 内存明细 | dmidecode -t 17 给出槽位、容量、速率与厂商 |
| 电源信息 | dmidecode -t 39 提供电源模块信息(部分机型) |
| CPU 拓扑 | lscpu 与 lscpu --extended 给出插槽与 NUMA 归属 |
| 存储清单 | lsblk 与 nvme list 给出盘型号与序列号 |
典型使用场景
- 上架验收:同时采集带内与带外清单,形成配置基线
- 换件复位:重采一次与基线比对,确认没有漏装或错装
- 资产盘点:批量导出 CPU、内存、盘的型号与序列号
- 故障定位:确认故障部件在系统中的准确标识与槽位
- 审计核对:验证实际配置与采购清单是否一致
带内清单采集
带内清单采集
# 内存:槽位、容量、速率与厂商(已装条数逐条列出)
dmidecode -t 17 | grep -iE 'Size|Locator|Speed|Manufacturer' | head -30
# 主板支持的最大容量与槽位总数
dmidecode -t 16 | grep -iE 'Maximum Capacity|Number Of Devices'
# 电源模块信息(机型支持时才有输出)
dmidecode -t 39 | grep -iE 'Name|Max Power|Present'
# CPU 插槽与 NUMA 拓扑
lscpu | grep -iE 'socket|numa|model name'
# 存储设备清单:型号与序列号
lsblk -d -o NAME,SIZE,MODEL,SERIAL | head -20采集项对照
| 采集项 | 命令 | 用途 |
|---|---|---|
| 内存槽位 | dmidecode -t 17 | 确认条数、空槽与安装顺序 |
| 内存上限 | dmidecode -t 16 | 评估扩容余量,非当前容量 |
| 电源模块 | dmidecode -t 39 | 与 BMC 的电源读数交叉核对 |
| CPU 拓扑 | lscpu | 确认插槽数与 NUMA 分布 |
| 存储设备 | lsblk、nvme list | 盘型号与序列号,配合槽位对照 |
| 系统信息 | dmidecode -t 1 | 厂商、机型与序列号,资产台账基础 |
换件或维修后重采一次并与上架基线比对,是发现漏装、错装与配置漂移最快的方式。
带内数据依赖操作系统可启动:系统起不来的机器只能靠 BMC 侧的 FRU 与传感器信息,这也是两套数据要同时保留的原因。