获取验证码
很多运维人员在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引导镜像。
适合已经上线业务,不方便重新制作定制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镜像重装,该配置会丢失。适合业务无法停机重做镜像的场景。
将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更新 | 新部署环境、生产稳定环境,长期运行首选 |
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镜像配置,彻底解决重启驱动丢失问题。