获取验证码
很多运维在HP服务器部署ESXi7.0,官方ISO缺少Smart Array阵列控制器驱动,手动上传VIB,使用esxcli software vib install命令安装,安装完毕,识别阵列磁盘一切正常。一旦ESXi主机执行重启,驱动直接消失,阵列卡、磁盘全部无法识别,系统无法访问存储。 很多人反复重复安装VIB,重启故障依旧,本质原因是手动临时安装VIB没有持久化到ESXi引导镜像。本篇还原真实故障现象,拆解底层原理,讲解/localVmfs/vhp目录自动加载、Image Profile镜像配置两套落地方案,同时说明各类踩坑点,解决驱动重启丢失问题。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
ESXi7.0原生ISO安装系统,无法识别HP Smart Array阵列控制器,看不到RAID磁盘;
SSH上传HP官方VIB驱动包,执行esxcli software vib install安装,安装成功,重启前阵列、磁盘全部正常识别;
主机一旦重启完成,阵列控制器驱动直接丢失,存储磁盘全部消失;
执行esxcli software vib list查看,刚刚安装的HP阵列卡VIB不在列表中;
重复安装VIB,重启后故障复现。
某台HP DL380 Gen9服务器部署ESXi7.0 U3,原装ESXi镜像不包含P441阵列卡驱动。运维手动上传HP提供的VIB驱动,esxcli安装之后可以正常访问RAID存储,虚拟机可以正常运行。当主机因内核补丁更新重启之后,阵列驱动直接丢失,存储全部离线。 反复多次安装VIB均是同样结果。查阅VMware知识库得知,直接esxcli vib install在部分HP硬件环境属于临时生效,重启就丢失驱动。最终采用两种方案验证:一种将VIB放置/localVmfs/vhp实现开机自动加载;另一种使用vCenter Image Profile制作自定义镜像持久集成驱动,彻底解决重启驱动丢失。
ESXi系统运行在内存文件系统,默认的bootbank引导分区才是持久化存储VIB的位置。部分HP服务器硬件环境下,直接执行esxcli software vib install,驱动仅临时加载运行在内存,没有写入bootbank持久分区。主机重启,内存全部清空,VIB随之消失。
使用通用ESXi官方ISO,非HP定制化ESXi镜像;
阵列卡为HP Smart Array系列P441、P430、P840等;
通过SSH命令行单独安装第三方硬件VIB,没有集成到安装镜像;
主机存在双bootbank引导分区,补丁升级切换引导分区,造成临时驱动丢失。
该方案不需要重新制作ESXi镜像,适合已经上线运行,不方便重装系统的生产主机。ESXi开机时会自动扫描/localVmfs/vhp目录下VIB,开机阶段自动加载驱动。
SSH登录ESXi主机,确认存在目录,如果不存在手动创建目录
mkdir -p /localVmfs/vhp
把HP阵列卡对应的VIB文件上传复制到 /localVmfs/vhp 目录;
修改VIB文件权限
chmod 644 /localVmfs/vhp/*.vib
当前先手动加载一次驱动保证当前运行正常;
执行主机重启,重启完成后执行esxcli software vib list,确认HP阵列驱动存在,阵列控制器、RAID磁盘识别正常。
注意:/localVmfs属于VMFS持久存储分区,不会因为重启丢失文件,但ESXi大版本升级后,需要重新检查该目录VIB,升级操作有可能清除该目录驱动文件。
Image Profile是VMware官方标准持久化方式,将HP阵列VIB集成进ESXi镜像配置文件,VIB真正写入bootbank引导分区,系统升级切换bootbank也不会丢失驱动,适合长期稳定运行环境。需要使用PowerCLI操作。
PowerCLI核心操作思路:导入ESXi基础镜像,添加HP阵列卡VIB到Image Profile,之后应用Profile到目标ESXi主机。
#连接vCenter Connect-VIServer vcenterfqdn #加载基础ESXi镜像 Add-EsxSoftwareDepot ./ESXi7.0U3-offline-bundle.zip #加载HP阵列卡VIB离线包 Add-EsxSoftwareDepot ./HP-SmartArray-driver.zip #复制一份新的Image Profile,添加第三方驱动 New-EsxImageProfile -CloneProfile "ESXi-7.0U3‑standard" -Name "ESXi‑7‑HP‑SA‑Custom" Add‑EsxSoftwarePackage -ImageProfile "ESXi‑7‑HP‑SA‑Custom" -SoftwarePackage hp‑sa‑vibname #将自定义镜像配置应用到ESXi主机 Set‑VMHostImageProfile -Apply -ImageProfile "ESXi‑7‑HP‑SA‑Custom" -VMHost esxi‑host‑name
执行完成之后重启ESXi主机,VIB已经持久写入系统bootbank分区,重启、补丁升级均不会丢失阵列卡驱动。也可以直接导出ISO,新装服务器直接使用集成驱动的自定义ISO安装,从根源规避驱动问题。
#查看已经加载VIB列表 esxcli software vib list #查看bootbank分区信息 esxcli boot device get #查看vhp目录下驱动文件 ls -l /localVmfs/vhp
| 故障现象 | 核心根因 | 标准化解决方案 |
|---|---|---|
| esxcli安装VIB,重启驱动直接消失 | VIB仅内存临时加载,没有写入持久bootbank分区 | 使用/localVmfs/vhp自动加载 或 Image Profile持久化VIB |
| VIB放到/localVmfs/vhp,重启依然没有加载驱动 | 目录不存在、VIB权限错误、VIB版本不匹配ESXi版本 | 重建目录,修正文件权限,核对VIB适配ESXi7.0版本 |
| Image Profile应用报错,无法添加HP VIB | VIB与ESXi版本不兼容,或者存在VIB依赖缺失 | 下载HP官方对应ESXi7.0版本的阵列卡驱动离线包 |
| ESXi打完补丁升级后,/localVmfs/vhp下驱动失效 | 部分补丁流程会清理vhp目录文件 | 优先使用Image Profile方案;补丁后复核vhp目录VIB是否存在 |
| 驱动安装成功,但阵列卡依旧识别不到 | VIB版本与阵列卡硬件型号不匹配 | 确认HP阵列卡硬件型号,下载对应官方VIB驱动 |
1. 误区:esxcli software vib install执行成功,就代表驱动永久生效纠正:部分硬件场景下该命令仅内存临时加载,不会写入bootbank,重启驱动丢失,不能当做持久化手段。
2. 误区:只要把VIB随便放到磁盘任意目录就可以开机加载纠正:ESXi仅识别固定路径/localVmfs/vhp,其他目录不会自动加载VIB。
3. 误区:应急使用/localVmfs/vhp之后,不需要后续处理纠正:ESXi补丁、版本升级操作有可能清空该目录,生产环境长期运行优先使用Image Profile镜像方案。
4. 误区:随便下载网上的HP VIB驱动包纠正:VIB有严格ESXi版本依赖,ESXi7.0不能使用ESXi8.0驱动,必须从HPE官网下载对应版本。
HP服务器部署ESXi,优先下载HPE定制版ESXi ISO,内置Smart Array阵列驱动,避免后续驱动问题;
已上线主机应急处理使用/localVmfs/vhp自动加载VIB,仅作为临时过渡方案;
正式生产环境,第三方硬件驱动必须通过Image Profile集成进ESXi镜像配置,实现真正持久化;
ESXi执行补丁升级前,提前备份/localVmfs/vhp目录下全部VIB文件;
驱动安装完成,务必执行一次重启验证,确认VIB不会丢失,再交付业务虚拟机运行。
ESXi7.0手动安装HP Array Controller阵列卡驱动重启丢失,是因为直接esxcli vib install仅内存临时加载驱动,没有写入ESXi持久bootbank引导分区。 应急场景可以将VIB放到/localVmfs/vhp目录实现开机自动加载;长期稳定运行建议采用PowerCLI的Image Profile把驱动集成进ESXi镜像配置文件,真正持久化驱动。 HPE硬件优先使用官方定制ESXi安装镜像,可以从源头规避阵列卡驱动缺失、重启丢失这类故障。