【ESXi 8.x 实战升级】从离线包准备到验证:ESXCLI 命令行全流程精解
1. 为什么选择ESXCLI离线升级ESXi 8.x每次大版本升级都是运维人员的一场小考。我经历过太多次凌晨三点盯着进度条不敢眨眼的时刻也踩过各种升级失败的坑。ESXi 8.x的离线升级其实比想象中简单关键是要掌握ESXCLI这个瑞士军刀。离线升级包Offline Bundle ZIP就像是个完整的安装工具箱特别适合没有外网连接的生产环境。相比在线升级它避免了网络波动导致的中断风险而且能精确控制版本。我去年给金融客户升级时就是靠这个方法在断网环境下完成了20台主机的批量升级。核心优势有三点完全脱离网络依赖适合严格隔离的环境升级包完整性可预先验证避免中途出错通过命令行精准控制每个步骤适合自动化2. 离线升级包获取与验证2.1 下载官方升级包VMware官网的下载页面像个迷宫我第一次找升级包花了半小时。正确路径是产品下载→VMware vSphere→找到对应版本的Offline Bundle。注意要选择带depot后缀的ZIP包比如VMware-ESXi-8.0U2-22380479-depot.zip。有个血泪教训千万别用浏览器直接下载大文件。我有次下载到99%时网络闪断导致ZIP包损坏。建议用下载工具如wget加断点续传功能wget -c https://downloads.vmware.com/.../VMware-ESXi-8.0U2-22380479-depot.zip2.2 安全传输到ESXi主机把升级包上传到ESXi时90%的报错都源于传输问题。推荐两种可靠方式方法一SFTP直传sftp rootesxi_host put VMware-ESXi-8.0U2-22380479-depot.zip /vmfs/volumes/datastore1/方法二共享存储挂载如果主机已连接NAS/NFS直接复制到共享存储更稳妥。我习惯在存储上创建专属升级目录mkdir /vmfs/volumes/NAS/upgrade_kit重要提示绝对不要用WinSCP的图形界面拖放上传我曾因此遇到过文件截断问题导致升级时出现Not a zip file错误。3. 升级前的关键检查3.1 验证ZIP包完整性这是最容易被忽视的步骤。用以下命令检查ZIP是否完整unzip -tq /vmfs/volumes/datastore1/VMware-ESXi-8.0U2-22380479-depot.zip正常应该看到No errors detected的提示。如果报错可能是以下原因传输过程中文件损坏重新上传存储空间不足用df -h检查下载的源文件不完整重新下载3.2 确认当前系统状态升级前必须给系统做个体检# 查看当前版本 vmware -vl # 检查存储空间至少需要5GB空闲 df -h # 查看正在运行的虚拟机 vim-cmd vmsvc/getallvms建议拍个快照备份配置vim-cmd hostsvc/firmware/backup_config4. 核心升级操作详解4.1 提取升级配置先查看离线包中的可用版本配置esxcli software sources profile list \ -d /vmfs/volumes/datastore1/VMware-ESXi-8.0U2-22380479-depot.zip输出类似Name Vendor Acceptance Level ------------------ ------ ---------------- ESXi-8.0U2-22380489-standard VMware PartnerSupported记下你要安装的profile名称比如ESXi-8.0U2-22380489-standard。4.2 执行升级命令关键命令其实就一行esxcli software profile update \ --depot/vmfs/volumes/datastore1/VMware-ESXi-8.0U2-22380479-depot.zip \ -p ESXi-8.0U2-22380489-standard \ --no-hardware-warning参数说明--no-hardware-warning跳过硬件兼容性警告已知兼容时使用-p指定前面查到的profile名称如果看到Update completed successfully就可以准备重启了。4.3 处理常见报错问题1MetadataDownloadError[MetadataDownloadError] Could not download from depot at zip:/path/to/file.zip解决方案确认ZIP路径是绝对路径重新验证ZIP完整性检查存储权限ls -l /vmfs/volumes/datastore1/问题2空间不足Failed to extract bundle: No space left on device清理空间方法# 删除旧日志 rm -rf /var/log/*.gz # 清理临时包 vim-cmd hostsvc/maintenance_mode_cleanup5. 升级后验证与回退5.1 版本确认三部曲重启后必须做完整验证# 1. 查看基础版本 vmware -vl # 2. 检查所有组件版本 esxcli system version get # 3. 验证网络功能 vim-cmd hostsvc/net/info5.2 紧急回退方案如果发现兼容性问题8小时内可以回退esxcli software profile rollback但前提是升级时没有覆盖/bootbank分区。更保险的做法是提前用esxcli software profile export --file/data/old_profile.xml6. 生产环境升级建议在给银行客户升级时我总结出这套流程测试环境验证先用同配置测试机演练维护窗口期选择业务低峰期操作分批升级先升级1-2台观察稳定性监控期升级后48小时内重点监控特别提醒如果使用vSAN务必先检查HCL兼容性列表。我有次遇到vSAN在升级后无法识别SSD最后发现是驱动兼容问题。