2. PowerEdge固件体系解析
在 Dell PowerEdge 服务器中,“固件”并不是一个单一文件,而是分布在多个独立可编程器件上的软件集合。理解固件体系,首先要建立“器件—固件—驱动—操作系统”这条纵向链路:固件运行在硬件器件内部,负责初始化、自检、运行控制与对外接口;驱动运行在操作系统内核或用户态,负责把操作系统的 I/O 请求翻译成器件可识别的命令;两者通过标准接口(如 PCIe 配置空间、NVMe 管理接口、SMBus/MCTP、Redfish 带外通道)通信。版本不匹配时,典型表现不是“完全不能用”,而是性能下降、功能缺失、偶发链路重置或带外管理信息缺失。
一、主要固件类型与职责
PowerEdge 中需要重点关注的固件包括:
- BIOS/UEFI:负责平台初始化、内存训练、PCIe 枚举、启动顺序、电源策略与部分安全特性(Secure Boot、TPM 度量)。BIOS 版本通常以“代际+功能+修订”形式出现,例如
2.15.1表示第 2 代平台的第 15 个功能版本、第 1 次修订。 - iDRAC:带外管理控制器固件,提供 Redfish/IPMI、虚拟控制台、虚拟介质、固件更新、硬件日志与远程开关机。iDRAC 版本常以
7.10.30.00这类四段式出现,前两段表示主版本与功能分支,后两段为构建与修订。 - PERC RAID 控制器:负责 RAID 阵列、缓存策略、掉电保护与磁盘管理。固件版本如
52.21.0-4607,其中52为控制器代际,21为功能分支,0-4607为构建号。 - NIC/网卡:包括板载 LOM、OCP 网卡与 PCIe 网卡,固件负责链路训练、队列管理、SR-IOV、iSCSI/NVMe-oF 卸载。版本常以
22.10.16或8.60.12形式出现。 - PSU 电源:固件管理输入电压范围、风扇调速、冗余切换与 PMBus 遥测。版本如
00.24.7C,通常由电源厂商与 Dell 联合发布。 - 背板/存储扩展器、BMC 辅助器件、CPLD/FPGA:负责 SAS/SATA/NVMe 背板链路、PCIe 交换与板级逻辑,版本常以
1.23或0x0A表示。
这些固件并非孤立存在。BIOS 在启动阶段会枚举 PCIe 设备并读取其 Option ROM 或 UEFI 驱动;iDRAC 通过内部总线采集各器件固件版本并汇总到“固件清单”;PERC 与背板固件需要协同完成链路初始化;NIC 固件与 BIOS 中的 PCIe 配置、操作系统驱动共同决定最终可用功能。
二、版本命名规则与识别方法
Dell 固件版本没有完全统一的格式,但可按“代际—功能—构建—修订”四层理解。以 iDRAC 为例,7.10.30.00 中 7 是主代际,10 是功能分支,30 是构建号,00 是修订号。BIOS 的 2.15.1 则更强调平台代际与功能版本。PERC 的 52.21.0-4607 中,52 对应控制器家族,21 为固件分支,4607 为内部构建。
实际识别时,不要只看文件名。推荐用以下命令获取真实运行版本:
# 带外查看固件清单(需 iDRAC 已配置)
racadm getversion -f firmware
# 操作系统内查看 BIOS 与 iDRAC
dmidecode -t bios | grep -E "Version|Release Date"
ipmitool mc info
# 查看 PERC 固件
perccli /c0 show all | grep -i "Firmware Version"
# 查看网卡固件
ethtool -i ens1f0
其中 racadm getversion -f firmware 会返回类似 BIOS 2.15.1、iDRAC 7.10.30.00、PERC H755 52.21.0-4607 的清单,是建立兼容性矩阵的起点。
三、固件与驱动的关系
固件与驱动是“器件侧”与“系统侧”的一对接口。固件决定器件能提供哪些能力,驱动决定操作系统能否调用这些能力。例如,NIC 固件若未开启 SR-IOV 或未暴露相应 capability,操作系统驱动即使加载成功也无法创建 VF;PERC 固件若未启用“非 RAID 直通”或“混合模式”,驱动层看到的磁盘状态就会与预期不同。
因此,升级顺序通常建议:先升级 iDRAC 与 BIOS,再升级 PERC、NIC、PSU 等器件固件,最后更新操作系统驱动。原因是 BIOS 与 iDRAC 提供平台级枚举与带外更新通道,若先升级器件固件而 BIOS 过旧,可能出现器件无法被正确识别或更新中断。驱动更新则应在固件稳定后进行,避免驱动调用尚未实现的固件接口。
四、兼容性矩阵与版本核对
Dell 为每代 PowerEdge 发布“固件与驱动兼容性矩阵”,通常以 Support Matrix 或 OS Driver Pack 形式提供。矩阵的行是服务器型号与操作系统,列是 BIOS、iDRAC、PERC、NIC、PSU 等固件的最低/推荐版本。核对时重点关注三类约束:
- 最低版本约束:例如某型号 PERC 要求 BIOS ≥ 2.10.0 才能支持 NVMe 直通。
- 组合约束:例如 iDRAC 7.10 与 BIOS 2.15 组合支持 Redfish 固件更新,而 iDRAC 6.x 不支持。
- 驱动版本约束:例如 NIC 固件 22.10 需要驱动 ≥ 5.10 才能启用 RDMA。
下面这张图把“器件—固件—驱动—操作系统”的纵向关系与版本核对路径放在一起,便于在升级前快速定位需要检查的版本项。
五、实操核对示例
假设一台 PowerEdge R750 运行 VMware ESXi 8.0,准备启用 NVMe over Fabrics。按以下顺序核对:
- 用
racadm getversion -f firmware导出当前清单,记录 BIOS、iDRAC、PERC、NIC 版本。 - 在 Dell Support Matrix 中查 R750 + ESXi 8.0 行,确认 BIOS 最低 2.10.0、iDRAC 最低 7.00.00、NIC 固件最低 21.00.00。
- 若 NIC 固件为 20.50.10,低于最低要求,则先升级 NIC 固件到 22.10.16,再升级 ESXi 的 NIC 驱动到 5.10 以上。
- 升级后重启,用
ethtool -i ens1f0确认固件与驱动版本,并用esxcli nvme fabrics get检查 NVMe-oF 适配器是否出现。
racadm racreset 重启 iDRAC 后重新采集。