2. ThinkSystem硬件与带外管理基础

在开始批量配置之前,必须先厘清 ThinkSystem 服务器上几个容易混淆的概念:XCC 是服务器内部的带外管理控制器,OneCLI 是运行在操作系统内的命令行工具,XClarity 是面向多台设备的集中管理平台,Redfish 与 IPMI 则是它们对外通信所依赖的接口协议。理解这五者各自的位置和职责,才能判断一条批量配置指令究竟应该发往哪里、由谁执行、结果如何回读。

一、带外管理与 XCC 的定位

带外管理(Out-of-Band)指不依赖服务器操作系统即可对硬件进行监控和控制的通道。ThinkSystem 服务器上的核心部件是 XCC(Lenovo XClarity Controller),它是一颗独立于主 CPU 和操作系统的管理芯片,只要服务器接入电源(待机供电即可),XCC 就能工作。XCC 拥有独立的网络接口(通常标注为 XCC 管理口或共享端口),并维护一套独立的 IP 地址、账号和固件。

XCC 能做的事情包括:查看电源、温度、风扇、电压等传感器读数;读取和清除系统事件日志(SEL);控制开机、关机、重启、强制下电;挂载远程 ISO 或虚拟介质;查看固件版本并执行固件更新;配置 BIOS/UEFI 设置项;以及通过串口重定向访问控制台。这些能力正是批量配置的基础——因为 XCC 不依赖操作系统,即使目标机器尚未安装系统或系统已崩溃,仍然可以远程完成设置。

需要特别区分的是:XCC 管理的是“服务器硬件层”,而操作系统内的网卡、磁盘、服务配置并不属于 XCC 的职责范围。批量配置时,凡是 BIOS 设置、启动顺序、BMC 网络、固件版本、电源策略这类内容,走 XCC 通道;凡是操作系统内的软件包、用户、服务,则需要借助 OneCLI 或其它系统内工具。

二、OneCLI 与 XClarity 的分工

OneCLI 是安装在操作系统内部的命令行工具,它通过本地接口与 XCC 通信,因此不需要网络可达 XCC 的管理 IP。OneCLI 的典型用途是:在系统内读取硬件清单、导出/导入 BIOS 与 BMC 配置、执行固件更新、设置启动顺序。它的优势在于可以随操作系统镜像一起批量部署,适合“系统已装好、需要统一硬件配置”的场景。

XClarity 则是集中管理平台,常见形态包括 XClarity Administrator(本地部署的管理服务器)和 XClarity Controller 的 Web 界面。XClarity Administrator 可以纳管成百上千台服务器,统一执行固件合规检查、配置策略下发、事件收集和批量操作。它面向的是“多台设备、跨机房、需要策略一致性”的场景,是批量配置在管理侧的入口。

三者的关系可以概括为:XCC 是被管理的执行单元,OneCLI 是系统内的本地操作入口,XClarity 是跨设备的集中编排入口。批量配置时,通常由 XClarity 或脚本通过 Redfish/IPMI 直接与各台 XCC 通信,OneCLI 则用于系统内补充操作。

三、Redfish API 与 IPMI 的差异

Redfish 是基于 HTTPS 和 JSON 的现代管理接口,由 DMTF 标准化。它使用 REST 风格,资源以 URI 表示,例如 /redfish/v1/Systems/1 代表一台服务器,/redfish/v1/Managers/1 代表 XCC 自身。Redfish 支持读取和写入配置、执行动作(如重启、更新固件)、订阅事件,返回结构清晰,便于脚本解析。

IPMI 是更早的带外管理协议,基于 UDP 623 端口,使用二进制消息。它能完成电源控制、传感器读取、SEL 读取等基础操作,但配置类能力有限,且不同厂商的扩展实现差异较大。IPMI 的优势是兼容性广、工具成熟(如 ipmitool),适合做电源和健康状态的批量巡检。

在批量配置中,两者的分工通常是:IPMI 负责“开关机、查状态”这类轻量动作;Redfish 负责“改配置、刷固件、读详细清单”这类需要结构化数据的动作。Redfish 正在逐步取代 IPMI 成为配置类操作的首选接口。

ThinkSystem 带外管理层次与批量配置通道 集中管理层 XClarity Administrator XClarity Web UI 批量脚本 / 自动化平台 通信协议层 Redfish (HTTPS/JSON) IPMI (UDP 623) OneCLI(系统内本地通道) 被管理服务器(每台独立) 服务器 A XCC(独立管理芯片) BIOS / 固件 / 传感器 操作系统 + OneCLI 服务器 B XCC(独立管理芯片) BIOS / 固件 / 传感器 操作系统 + OneCLI 服务器 N XCC(独立管理芯片) BIOS / 固件 / 传感器 操作系统 + OneCLI Redfish/IPMI 直达各台 XCC;OneCLI 在操作系统内本地调用 XCC

四、批量配置中的实际关联

把上述概念落到批量配置任务上,可以形成一条清晰的判断链。假设需要为 50 台新到货的 SR650 V3 统一设置:XCC 管理 IP、管理员密码、NTP 服务器、BIOS 启动模式为 UEFI、并升级 XCC 固件。合理的做法是:

  1. 先通过 DHCP 或临时静态地址让每台 XCC 网络可达,确认 Redfish 端口 443 可访问。
  2. 用 Redfish 的 PATCH /redfish/v1/Managers/1/EthernetInterfaces/1 批量下发管理网配置,用 PATCH /redfish/v1/AccountService/Accounts/1 修改密码。
  3. 用 PATCH /redfish/v1/Systems/1/Bios 提交 BIOS 属性,再触发重启使设置生效。
  4. 用 Redfish 的 UpdateService 上传固件包,或由 XClarity Administrator 统一推送固件策略。
  5. 对已装系统的机器,可用 OneCLI 在系统内执行 onecli config set 做补充配置。

如果只是批量开关机或采集健康状态,用 IPMI 的 ipmitool -I lanplus -H <XCC_IP> -U <user> -P <pass> power status 即可,脚本简单、开销小。但涉及配置写入时,应优先使用 Redfish,因为它的返回是结构化 JSON,便于判断成功与失败。

判断一条批量任务该走哪条通道,可以问三个问题:目标对象是硬件层还是操作系统层?需要读还是写?需要单台还是多台统一?硬件层写入优先 Redfish,操作系统层写入优先 OneCLI,多台统一编排优先 XClarity。

五、一个可复用的批量配置检查清单

在实际执行前,建议按以下清单逐项确认,避免批量任务中途失败:

检查项确认内容常用手段
XCC 可达性管理 IP 可 ping 通,443/623 端口开放ping、Redfish GET /redfish/v1
账号权限使用的账号具备 Configure 权限Redfish 查询 AccountService
固件基线XCC 与 BIOS 版本满足目标要求Redfish 读取 FirmwareInventory
配置模板BIOS/BMC 属性名与目标机型匹配先在一台机器导出配置作为模板
回读验证写入后重新 GET 确认值已生效Redfish GET 对应资源
异常回滚保留原始配置,便于单台恢复导出配置文件存档

其中“先在一台机器导出配置作为模板”是最容易被忽略但最有效的一步。不同型号、不同固件版本的 ThinkSystem 服务器,BIOS 属性名可能略有差异,直接套用其它机型的模板会导致 PATCH 返回 400。正确做法是选一台代表机,用 Redfish 或 OneCLI 导出当前配置,确认属性名后再批量下发。

批量写入 BIOS 配置后通常需要重启才能生效,且重启期间 Redfish 可能短暂不可达。脚本中应加入重试和超时判断,不要因为一次连接失败就判定整批任务失败。

理解 XCC、OneCLI、XClarity、Redfish、IPMI 五者的层次与分工,是后续所有批量配置操作的前提。简单说:XCC 是执行者,Redfish 和 IPMI 是通信语言,OneCLI 是系统内的本地入口,XClarity 是多台设备的统一指挥。选对通道,批量配置才能稳定、可验证、可回滚。