一键登录 更安全快捷
邮箱登录
我已阅读并接受 用户协议 隐私政策

ESXi7.0安装HP Array controller驱动后重启又丢失排错实战

很多运维人员在HP Gen9/Gen10服务器部署ESXi7.0时,手动上传VIB安装HP阵列卡驱动,安装完成后识别RAID磁盘一切正常,但主机一旦重启,阵列卡驱动直接消失,存储适配器看不到RAID卡,本地存储全部离线。很多人误以为VIB包损坏,反复重装驱动问题依旧。本文拆解底层原因、两套生产可用持久化方案、验证手段以及高频踩坑点。

有VMware全系列产品官方资源和定制版资源需求的可以移步:

📋 故障现象复现

1、SSH上传HP阵列卡VIB,执行esxcli software vib install完成安装,未报错,查看存储适配器可识别HP Smart Array控制器,本地RAID卷正常显示。

2、执行主机重启,ESXi启动完成后,阵列卡驱动消失,存储适配器列表找不到硬件,本地VMFS数据存储全部失联,虚拟机无法启动。

3、重新安装VIB,又能短暂恢复,只要重启故障复现。

🔍 根本原因解析

ESXi7.0系统的bootbank引导分区为只读文件系统。如果ESXi从U盘、SD卡引导,或者scratch临时目录配置异常,通过临时目录/tmp安装的第三方VIB,仅仅加载在内存运行环境,并没有写入系统持久化镜像分区。主机重启后内存环境全部重置,第三方驱动模块直接丢失。

注意:该故障和VIB包本身是否损坏无关,驱动包本身是正确的,问题出在驱动没有持久固化到ESXi引导镜像

✅ 方案一:localVmfs/vhp目录实现开机自动加载VIB(应急抢修,无需重装主机)

适合已经上线业务,不方便重新制作定制ESXi镜像,用来做临时应急恢复。把VIB存放在VMFS持久卷,配置开机脚本开机自动加载驱动。

#1. 开启SSH,上传HP阵列卡vib文件到本地VMFS存储,创建/vhp目录
mkdir -p /localVmfs/vhp
#上传xxx.vib阵列卡驱动到此目录

#2. 编辑开机自启脚本,ESXi开机阶段加载VIB
vi /etc/rc.local.d/local.sh

#在文件末尾追加下面两行
cp /localVmfs/vhp/*.vib /tmp
esxcli software vib install -f -v /tmp/xxx.vib --no-sig-check

#3.保存脚本,给执行权限
chmod +x /etc/rc.local.d/local.sh

#4.同步配置持久化,这一步千万不能漏掉
vim-cmd hostsvc/firmware/sync_config

注意事项:local.sh脚本方式属于开机动态加载,不是写入bootbank镜像。ESXi执行版本补丁升级后,该配置会保留;但是如果执行完整ESXi镜像重装,该配置会丢失。适合业务无法停机重做镜像的场景。

✅ 方案二:Image Profile映像配置文件持久化(生产环境推荐,官方标准方案)

将HP阵列卡VIB集成进ESXi Image Profile镜像配置,驱动直接固化进系统引导分区,重启、小版本补丁升级都不会丢失驱动,是VMware官方推荐的生产级方案。

该操作需要使用PowerCLI,在Windows工作站执行操作。

#1 加载PowerCLI模块
Import-Module VMware.ImageBuilder

#2 导入ESXi7.0离线Depot包、HP阵列卡VIB驱动
Add-EsxSoftwareDepot .\VMware-ESXi-7.0U3-depot.zip
Add-EsxSoftwareDepot .\HPE-Array-controller-driver.zip

#3 克隆一份新映像配置文件
Get-EsxImageProfile -Name "ESXi-7.0U3-18644231-standard" | New-EsxImageProfile -CloneProfile "ESXi7.0U3-HP-RAID-Custom"

#4 将HP阵列卡驱动包添加到自定义映像
Add-EsxSoftwarePackage -ImageProfile "ESXi7.0U3-HP-RAID-Custom" -SoftwarePackage hp-array-controller

#5 导出离线升级包,上传ESXi主机,主机进入维护模式执行profile更新
Export-EsxImageProfile -ImageProfile "ESXi7.0U3-HP-RAID-Custom" -ExportToBundle -FilePath .\ESXi7-HPRAID-offline.zip

将导出的离线zip上传ESXi存储,主机进入维护模式执行更新:

esxcli software profile update -d /vmfs/volumes/datastore1/ESXi7-HPRAID-offline.zip -p ESXi7.0U3-HP-RAID-Custom
reboot

🔎 驱动安装完成后验证命令

#查看已经安装的vib列表,确认阵列卡驱动存在
esxcli software vib list | grep hp

#查看硬件适配器识别状态
esxcli storage core adapter list

⚠️ 高频踩坑误区汇总

1、不要把VIB上传到/tmp目录安装:tmp是内存临时文件系统,重启全部清空,就算安装成功,重启驱动直接丢失。
2、做完local.sh开机脚本,必须执行vim-cmd hostsvc/firmware/sync_config同步配置,不执行同步,重启脚本配置本身就会丢失。
3、Secure Boot安全启动开启场景,未签名第三方VIB即使持久化,也会加载失败,需要BIOS关闭Secure Boot。
4、localVmfs/vhp脚本方案属于应急方案,重大版本升级ESXi时建议重新使用Image Profile打包驱动。

📊 两套方案优缺点对比

方案优点缺点适用场景
local.sh开机加载VIB主机无需大规模改动,业务不中断,快速修复故障属于动态加载,ESXi重装系统失效,非官方固化方式业务已经上线,不允许停机重装镜像,应急抢修
Image Profile集成驱动驱动写入系统镜像,重启、补丁升级驱动不会丢失,官方标准方案需要PowerCLI操作,主机需要进入维护模式执行profile更新新部署环境、生产稳定环境,长期运行首选

❓FAQ常见问题

Q:已经配置local.sh,重启驱动依旧丢失?
A:第一检查有没有执行sync_config同步配置;第二检查scratch目录是否异常指向tmp内存盘,scratch异常会导致所有配置无法落盘持久化,需要修复scratch路径。

Q:Image Profile更新主机失败报VIB签名报错?
A:检查主机接受级别,esxcli software acceptance set --level=PartnerSupported,第三方OEM驱动需要调整接受级别。

Q:HP官方下载HPE定制ESXi7.0镜像还需要手动装阵列卡驱动吗?
A:HPE定制镜像已经内置对应阵列卡驱动,优先直接使用HPE定制ISO安装,可以从根源规避该类驱动丢失问题。

总结:遇到VIB驱动安装完成重启消失,不要反复重装VIB,优先排查持久化问题。应急抢修使用localVmfs/vhp+开机脚本,长期生产环境优先Image Profile把驱动集成进ESXi镜像配置,彻底解决重启驱动丢失问题。

用户留言 User Comments