前言

最近有一台华为的服务器所有硬盘的介质错误计数都大于0,初步排查后决定优先升级SAS3108阵列卡固件进行观察。于是整理了SAS3108阵列卡的完整升级流程,本指南基于实际操作整理,适用于LSI SAS3108、INSPUR 3108MR-2GB、AVAGO SAS3108等阵列卡。

准备工作

  • 下载SAS3108阵列卡固件

  • 下载StorCLI工具

  • 准备U盘,制作微PE启动盘
    如果有权限使用服务器上系统,可以跳过制作PE启动盘步骤,在系统里使用StorCLI工具进行升级即可。一般维护客户服务器时,是没有权限使用他们的系统,所以需要制作启动盘。推荐优启通制作启动盘,Windows驱动全一点,能识别到阵列卡驱动,我用其他的启动盘制作工具无法识别到阵列卡驱动。把下载好的SAS3108阵列卡固件、StorCLI工具复制到微PE U盘上,尽量将固件和StorCLI工具放在同一目录,方便操作。

升级固件

超聚变的SAS3108阵列卡固件不是最新的,BROADCOM官网应该是最新的,如何选择固件看自己(华为推荐使用超聚变的固件),本次升级使用的是BROADCOM官网的最新固件。

1.进入PE系统

进入U盘制作好的PE系统,一般开机按F11,选择U盘启动项,等待系统进入。进入PE系统后,打开CMD进入StorCLI工具或者固件文件夹,固件和StorCLI工具尽量在同一文件夹上,这样方便升级。
固件和StorCLI工具

2.查看阵列卡信息

执行下面命令,主要查看当前服务器有几张阵列卡,例如下面输出的结果有一张Controller为0的SAS3108阵列卡,这个很重要,后续需要用到Controller这个值。

# 命令
storcli64.exe show

# 关键信息示例
——————————————————
........
System Overview :
===============

-------------------------------------------------------------------
Ctl Model   Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth 
-------------------------------------------------------------------
  0 SAS3108     8   1   1     0   1     0 N/A On  -  Y      3 Opt  
-------------------------------------------------------------------
........
——————————————————

查看阵列卡信息

3.查看阵列卡固件信息

执行下面命令,查看阵列卡详细的固件版本信息,自己的服务器可以不记录,一般维护公司或客户服务器时,推荐记录一下固件版本信息。

# 格式:storcli64.exe /C<Controller_ID> show all
## Controller_ID:RAID控制卡编号,多个RAID控制卡时需要更改RAID控制卡编号。

# 命令
storcli64.exe /C0 show all

# 输出的结果保存为txt文本,方便查看和记录
storcli64.exe /C0 show all > storcli64_c0_show_all_cmd.txt

# 关键信息示例
——————————————————
........
Version :
=======
Firmware Package Build = 24.21.0-0095
Firmware Version = 4.680.00-8454
Bios Version = 6.36.00.3_4.19.08.00_0x06180203
HII Version = 03.25.05.12
NVDATA Version = 3.1705.00-0018
Ctrl-R Version = 5.19-0603
Preboot CLI Version = 01.07-05:#%0000
Boot Block Version = 3.07.00.00-0003
Driver Name = megasas2.sys
Driver Version = 6.714.18.00
........
——————————————————

4.升级阵列卡固件

服务器有多张阵列卡时,需要注意一下Controller_ID和阵列卡型号,防止误升级其他型号的阵列卡,导致阵列卡异常。升级多张阵列卡时,一张张升级,升级时需要改一下Controller_ID这个RAID控制卡编号。

# 格式:storcli64.exe /C<Controller_ID> download file=<升级Firmware固件路径> noverchk
## Controller_ID:RAID控制卡编号,配置多个RAID控制卡时需要更改RAID控制卡编号。
## noverchk 表示跳过版本检查

# 命令
storcli64.exe /C0 download file=MR_4MB.rom noverchk

# 成功信息输出示例
——————————————————
Download Completed.
Flashing image to adapter...
CLI Version = 007.2310.0000.0000 Nov 02, 2022
Operating system = Windows10
Controller = 0
Status = Success
Description = F/W Flash Completed. Please reboot the system for the changes to take effect
——————————————————

sas3108固件升级成功

5.重启设备

当执行升级命令输出:F/W Flash Completed. Please reboot the system for the changes to take effect,说明阵列卡固件已升级完毕,此时需要重启服务器,使新固件生效。

6.验证固件是否生效

重启之后,可以按照上面步骤3或者重启时Ctrl+R进入阵列卡界面,查看阵列卡固件信息,看看固件版本是否改变,改变即固件已生效。同时,检查一下硬盘和RAID状态是否正常(这里就不展示了)。
sas3108固件版本对比

结语

升级对于运维来说,不太难,可能找固件需要浪费一些时间,执行命令时细心一点,都能升级成功。升级有风险,操作前建议备份重要配置和服务器数据,注意阵列卡的型号,如果升级新固件有问题,可找中间版本升级或者用旧固件重新执行升级命令。