【实战升级】从 ESXi 7.x 到 8.x:详解 ESXCLI 离线包(ZIP)升级全流程与避坑指南
1. 为什么选择离线包升级ESXi每次大版本升级都像给服务器做心脏手术尤其是生产环境下的ESXi主机。我经历过太多次半夜紧急回滚的惨痛教训最终发现离线包Offline Bundle升级是最稳妥的方案。相比在线升级或ISO覆盖安装ZIP离线包有三大不可替代的优势首先离线包对网络零依赖。很多企业的虚拟化环境部署在内网隔离区根本不允许主机直接访问外网下载更新。我曾经遇到过在线升级到90%突然断网导致主机卡在半残状态的情况。而离线包只需要一次性完整传输到本地存储后续操作全程离线完成。其次升级过程可逆性强。使用esxcli software profile update命令时系统会自动创建回滚快照。如果升级后出现硬件兼容性问题一条回滚命令就能快速恢复。去年我给某金融客户升级时就靠这个功能避免了业务中断事故。最后离线包支持批量部署。当你有几十台ESXi主机需要统一升级时只需要把同一个ZIP包分发到各主机然后用脚本批量执行升级命令即可。这比一台台挂载ISO镜像效率高得多。注意从ESXi 7.x开始VMware逐渐弱化了传统Update Manager的支持ESXCLI离线包成为官方推荐的标准升级方式。2. 升级前的生死 checklist2.1 硬件兼容性验证VMware每次大版本升级都会淘汰一批老硬件。我见过太多人兴冲冲下载完ESXi 8.0的离线包结果升级完发现网卡驱动全掉了。务必先做这三件事登录VMware Compatibility Guide官网用你的服务器型号ESXi 8.0作为关键词搜索重点检查网卡、HBA卡、RAID控制器等关键设备的驱动状态如果使用自定义驱动需要提前准备VIB格式的驱动包去年我帮客户升级Dell R730时就踩过坑——ESXi 8.0移除了对QLogic 4Gb FC卡的原生支持差点导致SAN存储失联。后来是通过提前下载社区版驱动才解决的。2.2 数据备份与快照别相信任何无损升级的承诺我的血泪教训是对所有虚拟机执行快照包括内存状态导出主机配置文件vim-cmd hostsvc/firmware/sync_config备份vCenter数据库如果是嵌入式PostgreSQL用/opt/vmware/vpostgres/current/bin/pg_dump特别提醒ESXi 8.0开始强制要求TPM 2.0芯片如果硬件不支持升级后可能无法正常启动。建议先用以下命令检查esxcli hardware tpm get2.3 离线包下载的玄学官方下载页面上那些看似相同的ZIP包实际可能有天壤之别VMware-ESXi-8.0.0-20513097-depot.zip标准离线包推荐VMware-ESXi-8.0.0-20513097-update.zip增量更新包需先安装基础版本VMware-VMvisor-Installer-8.0.0-20513097.x86_64.iso安装镜像非升级用曾经有同事误下载了ISO文件然后试图用esxcli命令升级结果直接把系统搞挂了。正确的下载姿势是访问VMware Customer Connect门户搜索ESXi 8.0 Offline Bundle选择带有depot字样的ZIP包3. 手把手升级实战3.1 传输离线包的隐藏技巧很多人以为用WinSCP传ZIP包很简单直到遇到File is not a zip file错误。这里有几个反常识的要点不要用/tmp目录ESXi的/tmp分区默认只有几百MB大文件会导致传输截断最佳实践是传到VMFS存储卷# 先确认datastore路径 ls /vmfs/volumes/ # 比如传到名为NAS的存储 mkdir /vmfs/volumes/NAS/upgrade校验文件完整性血的教训# 计算本地MD5 certutil -hashfile VMware-ESXi-8.0.0-20513097-depot.zip MD5 # 在ESXi上校验 localmd5$(md5sum /vmfs/volumes/NAS/upgrade/VMware-ESXi-8.0.0-20513097-depot.zip | awk {print $1}) echo $localmd53.2 关键命令执行详解3.2.1 查看可用profile这个步骤90%的人都会忽略但却是避免灾难的关键esxcli software sources profile list \ -d /vmfs/volumes/NAS/upgrade/VMware-ESXi-8.0.0-20513097-depot.zip典型输出示例Name Vendor Acceptance Level ------------------ ------ ---------------- ESXi-8.0.0-20513097-standard VMware PartnerSupported ESXi-8.0.0-20513097-no-tools VMware PartnerSupported重点一定要记下完整的profile名称后面升级命令要用到。如果这里报错通常是因为ZIP包损坏或路径错误。3.2.2 执行升级命令最刺激的时刻来了建议先在测试环境练习几次esxcli software profile update \ --depot/vmfs/volumes/NAS/upgrade/VMware-ESXi-8.0.0-20513097-depot.zip \ -p ESXi-8.0.0-20513097-standard \ --no-hardware-warning参数解读--no-hardware-warning跳过硬件兼容性警告慎用如果出现Host image profile is not upgradable说明当前版本跨度太大需要先升级到中间版本3.2.3 重启的艺术别急着按回车先做好预案确保所有VM已迁移或关闭准备ILO/iDRAC远程控制台使用延迟重启命令# 10分钟后重启给自己留抢救时间 esxcli system shutdown reboot --delay10 --reasonUpgrade to ESXi 8.04. 升级后必做的5项验证4.1 基础版本检查vmware -vl预期输出VMware ESXi 8.0.0 build-205130974.2 硬件驱动状态重点检查网卡和存储控制器esxcli network nic list esxcli storage core adapter list4.3 网络连通性测试我曾经遇到过升级后vSwitch配置丢失的灵异事件# 测试vCenter连通性 nc -z vcenter.domain.com 443 # 测试网关连通性 ping 192.168.1.14.4 虚拟机启动测试先挑一台非关键业务VM试水vim-cmd vmsvc/getallvms | grep -v Suspended # 列出所有VM vim-cmd vmsvc/power.on vmid # 启动测试4.5 性能基准测试用esxtop观察关键指标esxtop -b -d 5 -n 10 perf.log重点看%DRPRX网络丢包率%CSTPCPU就绪时间DAVG/cmd磁盘延迟5. 常见翻车现场救援指南5.1 ZIP包校验失败症状Error extracting index.xml from /tmp/xxx.zip: File is not a zip file急救方案用df -h检查存储空间重新传输ZIP包并校验MD5尝试其他存储路径如/vmfs/volumes/5.2 升级后网络中断可能原因网卡驱动未加载vSwitch配置重置解决方案# 临时启用本地Shell dcui # 重新绑定网卡 esxcli network nic down -n vmnic0 esxcli network nic up -n vmnic05.3 启动卡在Loading modules通常是因为硬件不兼容重启进入Boot Menu选择Previous ESXi version回滚到旧版本如果连回滚都失败那就只能祭出终极武器——把虚拟机磁盘挂载到其他主机然后重建ESXi环境。这就是为什么我反复强调要提前备份配置。