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的自动化接口大致分为三层。最底层是各组件自身的命令行或本地工具,例如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。
三、一个可参考的批量配置顺序
固件与配置存在依赖关系,顺序错了可能导致配置不生效或设备无法启动。下面给出一个经过验证的通用顺序,可作为批量任务的编排依据:
- 发现与清点:通过iLO Redfish枚举服务器,记录iLO、BIOS、Smart Array、NIC的当前固件版本和序列号。
- 升级iLO固件:iLO是其他操作的入口,先升级它可避免后续接口不兼容。
- 升级BIOS、Smart Array、NIC固件:使用SPP(Smart Update Solution Pack)或SUM批量推送,升级后需重启生效。
- 下发BIOS配置模板:设置启动模式、启动顺序、Secure Boot、电源策略等,通常需要重启。
- 配置Smart Array:创建逻辑卷、设置RAID级别和缓存策略。注意:若已有数据,创建逻辑卷会破坏数据,批量场景通常用于新装机。
- 设置NIC启动参数:配置PXE或UEFI HTTP Boot,确保后续自动化装机可引导。
- 重启并验证:通过Redfish读取配置回显,确认与模板一致;检查IML无严重告警。
四、配置示例:用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配置是否会清除现有数据,新装机与存量机改造必须区分处理。把这些确认项做成检查表,可以显著降低批量任务的中断率。
/redfish/v1/Systems/1/Storage 下的卷列表,确认目标状态后再执行写操作。