2. ProLiant硬件与固件基础

在批量运维HPE ProLiant服务器之前,必须先弄清楚“自动化到底在操作哪些对象”。一台ProLiant并非单一设备,而是由多个带独立固件的子系统拼装而成:负责带外管理的iLO、负责平台初始化的BIOS/UEFI、负责存储控制的Smart Array、负责网络接入的NIC/网卡固件,以及承载它们的系统主板与电源、风扇等。每个子系统都有自己的配置项、版本号和对外接口。批量配置的本质,就是通过统一接口同时向这些子系统下发参数并回收状态。

一、四个关键组件各自管什么

iLO(Integrated Lights-Out)是独立于操作系统的带外管理处理器,即使服务器关机、OS未安装,只要接入管理网并有辅助电源,就能访问。它管理的内容包括:管理网口IP/网关、管理员账号与权限、SNMP/Redfish服务、虚拟介质与虚拟KVM、电源控制、以及硬件健康事件日志(IML)。iLO自身也有固件版本,且与BIOS、Smart Array固件存在兼容矩阵,批量升级时通常先升iLO再升其他组件。

BIOS/UEFI负责平台初始化,决定启动模式(Legacy BIOS或UEFI)、启动顺序、超线程、内存交织、NUMA、电源管理策略(如Power Regulator)、以及安全启动(Secure Boot)。在自动化场景中,BIOS配置常以“配置模板”形式批量下发,例如统一关闭节能以稳定性能、统一设置UEFI启动并开启Secure Boot。

Smart Array是RAID控制器,管理物理磁盘、逻辑卷、RAID级别、条带大小、读写缓存比例、备用盘(Spare)和电池/电容状态。批量部署时,通常需要统一创建系统盘RAID1、数据盘RAID5/RAID10,并设置缓存策略。Smart Array的配置可通过iLO、Smart Storage Administrator(SSA)或Redfish接口完成。

NIC包括板载网卡和PCIe网卡,涉及网卡固件版本、端口速率、SR-IOV、iSCSI/FCoE卸载、以及网卡启动(PXE/UEFI HTTP Boot)。批量配置中,网卡固件升级和启动参数设置是常见任务,尤其在自动化装机依赖PXE或HTTP Boot时。

ProLiant 关键组件与自动化配置接口关系 统一自动化入口 iLO Redfish REST / HTTPS iLO RESTful API JSON / 脚本 HPE OneView 模板 / 策略 Smart Update SPP / SUM 脚本 / Ansible 批量编排 iLO 管理处理器 带外管理 / 电源控制 虚拟介质 / KVM 健康事件日志 IML 固件版本管理 Redfish 服务端点 (所有子系统的统一入口) BIOS / UEFI 启动模式 · 启动顺序 · Secure Boot 超线程 · NUMA · 电源策略 配置模板批量下发 Smart Array RAID 级别 · 逻辑卷 · 条带大小 读写缓存 · 备用盘 · 电池状态 SSA / Redfish 配置 NIC / 网卡固件 端口速率 · SR-IOV · iSCSI/FCoE PXE / UEFI HTTP Boot 固件升级与启动参数 批量配置典型顺序: ① 通过 iLO Redfish 发现设备并读取当前固件/配置 → ② 升级 iLO 固件 → ③ 升级 BIOS、Smart Array、NIC 固件 ④ 下发 BIOS 配置模板 → ⑤ 创建 Smart Array 逻辑卷 → ⑥ 设置 NIC 启动参数 → ⑦ 重启并验证配置生效

二、自动化配置接口的层次

ProLiant的自动化接口大致分为三层。最底层是各组件自身的命令行或本地工具,例如BIOS的RBSU、Smart Array的SSA、网卡的NIC配置工具,它们适合单机调试但不适合批量。中间层是iLO提供的Redfish/RESTful API,它把BIOS、Smart Array、NIC的配置项统一暴露为JSON资源,脚本可以通过HTTPS直接读写。最上层是HPE OneView、Smart Update Manager(SUM)和Ansible模块等编排工具,它们封装了Redfish调用,提供模板、策略和批量执行能力。

理解这个层次很关键:无论用哪一层,最终落到设备上的都是Redfish请求。因此掌握Redfish的资源路径和属性名,是排查批量配置失败的基础。例如BIOS配置对应 /redfish/v1/Systems/1/Bios,Smart Array对应 /redfish/v1/Systems/1/Storage,iLO自身管理对应 /redfish/v1/Managers/1。

三、一个可参考的批量配置顺序

固件与配置存在依赖关系,顺序错了可能导致配置不生效或设备无法启动。下面给出一个经过验证的通用顺序,可作为批量任务的编排依据:

  1. 发现与清点:通过iLO Redfish枚举服务器,记录iLO、BIOS、Smart Array、NIC的当前固件版本和序列号。
  2. 升级iLO固件:iLO是其他操作的入口,先升级它可避免后续接口不兼容。
  3. 升级BIOS、Smart Array、NIC固件:使用SPP(Smart Update Solution Pack)或SUM批量推送,升级后需重启生效。
  4. 下发BIOS配置模板:设置启动模式、启动顺序、Secure Boot、电源策略等,通常需要重启。
  5. 配置Smart Array:创建逻辑卷、设置RAID级别和缓存策略。注意:若已有数据,创建逻辑卷会破坏数据,批量场景通常用于新装机。
  6. 设置NIC启动参数:配置PXE或UEFI HTTP Boot,确保后续自动化装机可引导。
  7. 重启并验证:通过Redfish读取配置回显,确认与模板一致;检查IML无严重告警。
提示:批量操作前,建议先在1~2台样机上完整跑一遍流程,记录每步耗时和重启次数。ProLiant的BIOS和Smart Array配置变更通常需要重启才能生效,批量任务中应把重启窗口纳入编排,避免并发重启导致管理网拥塞。

四、配置示例:用Redfish读取BIOS启动模式

下面是一个通过iLO Redfish读取BIOS当前启动模式的示例。假设iLO管理地址为 192.168.10.20,使用管理员账号。实际执行前需确认iLO固件版本支持Redfish(iLO 4 2.30以上、iLO 5及以上均支持)。

# 1. 建立会话,获取会话令牌
curl -k -X POST https://192.168.10.20/redfish/v1/SessionService/Sessions \
  -H "Content-Type: application/json" \
  -d '{"UserName":"Administrator","Password":"your_password"}'

# 返回头中会包含 X-Auth-Token,后续请求携带该令牌

# 2. 读取BIOS资源
curl -k -X GET https://192.168.10.20/redfish/v1/Systems/1/Bios \
  -H "X-Auth-Token: <token>"

# 3. 关注返回JSON中的属性,例如:
#    "BootMode": "Uefi" 或 "LegacyBios"
#    "SecureBoot": "Enabled" 或 "Disabled"
#    "PowerRegulator": "StaticHighPerf" 或 "DynamicPowerSavings"

读取到当前值后,就可以对比目标模板,决定是否需要下发变更。下发BIOS配置通常使用PATCH方法,将目标属性写入 /redfish/v1/Systems/1/Bios/Settings,然后触发重启使配置生效。注意:不同ProLiant代际(Gen9、Gen10、Gen11)的Redfish资源路径和属性名可能略有差异,批量脚本应做版本适配。

五、需要提前确认的兼容性要点

在批量配置前,至少确认以下三点:第一,iLO固件版本是否支持你计划使用的Redfish属性和批量工具;第二,BIOS、Smart Array、NIC固件是否与目标操作系统和驱动版本匹配,HPE的SPP中通常包含兼容矩阵;第三,Smart Array的RAID配置是否会清除现有数据,新装机与存量机改造必须区分处理。把这些确认项做成检查表,可以显著降低批量任务的中断率。

注意:Smart Array创建或删除逻辑卷会破坏磁盘数据。批量脚本中应对“已有逻辑卷”的服务器做条件判断,避免误操作。建议在脚本中先读取 /redfish/v1/Systems/1/Storage 下的卷列表,确认目标状态后再执行写操作。