尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ESXi 6.7补丁安装实战:从离线包下载到验证全流程

ESXi 6.7补丁安装实战:从离线包下载到验证全流程 简介VMware 官方发布的 ESXi 6.7 月度补丁包 ESXi670-202210001.zip面向虚拟化管理员、运维工程师及企业 IT 基础架构团队用于修复近期披露的安全漏洞、解决性能问题并增强系统整体稳定性。压缩包共 152 个文件总大小约 443.53MB其中 149 个 VIB 组件文件覆盖系统基础包、VSAN、CPU 微码、esx-ui 等核心模块另有 index.xml、vendor-index.xml 索引文件与 metadata.zip 元数据包可配合 VMware Update Manager 或 esxcli 命令行完成离线扫描、依赖校验与批量升级。已有 1409 人学习下载。通过该补丁管理员可快速补齐官方最新安全修复同时深入理解 ESXi 补丁包的标准目录结构和 VIB 机制为后续独立排查更新问题打下基础。建议先在测试环境验证兼容性再对生产集群分批滚动升级并提前做好配置备份与快照。资源适合有一定 vSphere 基础、需要保持虚拟化平台安全合规的运维人员。1. 从补丁包名字说起ESXi670-202210001.zip 到底在更新什么VMware ESXi 6.7 是一款在很多生产环境里服役多年的虚拟化宿主机系统虽然 6.7 的 General Support 已经结束但很多机房和老旧服务器上它依然是主力。就拿我手头这批机器来说六台 Dell R740 至今还跑着 ESXi 6.7 U3不是因为不想升级而是业务系统对旧版虚机兼容性要求太高升级牵一发动全身。这种情况下持续打补丁就成了保障安全和高可用的唯一现实选择。那 ESXi670-202210001.zip 具体是干什么的简单说这是 VMware 在 2022 年 10 月发布的 ESXi 6.7 累积补丁包也就是我们常说的 Offline Bundle离线捆绑包。它一次性打包了该时间点之前所有的安全修复、驱动更新、Bug 修复和部分硬件兼容性改进。换言之如果你的 ESXi 6.7 还是老旧的 2020 年甚至 2019 年版本直接打上这个补丁就能把系统推进到 2022 年 10 月的安全水平无需一个一个补丁去叠加。我特别说明一点这类补丁包的名字并非随意命名而是有严格规则的。ESXi670 代表版本主线是 6.7.0202210 代表 2022 年 10 月001 是当月发布序号。看懂了这个规则你就能判断一个补丁包的新旧和适用版本。比如碰到 ESXi670-202204001就知道是 2022 年 4 月的补丁。官网下载时还会看到 ESXi670-202210001.zip 旁边标注了 Build Number构建号一般是 20910077 左右这个构建号是判断系统是否已包含该补丁的关键依据。这篇文章适合谁如果你是正在用 ESXi 6.7 做生产虚拟化的运维、或者手头有跑着 6.7 的测试环境想把系统安全补丁打全可以把这篇文章当作一份可以直接照着操作的实战笔记。我会把补丁安装的完整流程、原理、坑点和排查方法都过一遍保证你从下载到验证能一次走通。2. 打补丁前必做的三件事版本确认、备份和驱动盘点2.1 确认当前系统的 Build 版本很多人在打补丁前连自己的系统版本都没确认就开干这是最容易翻车的操作。ESXi 补丁不是通用的它基于指定的 Build 基线。你需要先登录 vSphere Client进入主机管理界面在摘要页面找到Hypervisor信息里面会明确写着版本号和构建号也可以直接通过 SSH 连上 ESXi 主机后执行下面这条命令vmware -v输出类似这样VMware ESXi 6.7.0 build-17700523这里 17700523 就是当前的构建号。如果构建号高于 20910077说明你的系统已经包含该补丁甚至更新的内容不需要重复安装。如果构建号远低于这个值比如只有 143203846.7 U1那打补丁前就要特别注意中间跨了多个版本补丁包会一次性把系统推送到 20910077这个过程虽然设计为可逆的但期间出现问题的概率会略高务必做好备份。我的建议是无论在哪个构建号基础上执行都先走一遍备份——下载——检查——安装的完整流程不要因为嫌麻烦就跳过备份补丁安装中断导致的宿主机无法启动这种事故我见过不止一次。2.2 备份配置和虚拟机清单ESXi 补丁安装最大的风险点在于安装完成后宿主机的管理网络可能发生不可预期的变化或者某些第三方 VIBvSphere Installation Bundle即 VMware 的扩展安装包与新补丁不兼容导致系统服务无法正常启动。因此备份是必须的。备份分两个层面第一层是配置级别备份最可靠的方式是通过 vSphere CLI 工具备份主机配置。在任意一台装有 PowerCLI 或 vSphere CLI 的 Windows/Linux 机器上执行Get-VMHost -Name 你的ESXi主机IP | Export-VMHostProfile -Destination C:\backup\config.txt第二层是虚拟机层面的保险最关键的操作是确保所有正在运行的虚拟机都有独立的备份或者快照。补丁安装过程中ESXi 主机需要进入维护模式这会导致所有虚拟机在线迁移到其他主机上如果有 vCenter 和 DRS或者关机。如果是单机环境虚拟机只能先关机再打补丁这个过程一旦主机出现问题虚拟机数据受影响的可能性是存在的。所以重要虚拟机的备份或快照一定不要省。2.3 盘点第三方驱动和 VIB 的兼容性ESXi 系统的一大特色就是允许通过 VIB 来扩展硬件驱动、加入自定义组件。很多服务器上的网卡驱动、阵列卡驱动都是装好系统后手动打进去的。而 ESXi 累积补丁包在升级时会同时重新评估这些第三方 VIB 的兼容性。在打补丁之前建议先登录到 ESXi 主机的 SSH执行以下命令查看当前所有 VIBesxcli software vib list重点关注不带 VMware 标志的项目比如 emulex、bnx2x、i40en、igb 这类第三方网卡驱动。务必到官网确认这些驱动版本是否兼容 esxi 6.7 build 20910077。我曾经遇到过一次 i40en 网卡驱动过旧打补丁后直接导致 10G 网卡消失的情况最后只能通过引导宿主机进入旧版本Boot Bank Rollback才恢复。所以这一步是在打补丁前花时间最值得的地方。3. 补丁安装全流程实操从上传到验证一次跑通3.1 补丁包上传到 ESXi 主机或数据存储拿到 ESXi670-202210001.zip 之后需要把它上传到 ESXi 主机的可访问位置。我常用的做法是上传到数据存储datastore根目录下的临时文件夹比如/vmfs/volumes/datastore1/。最简单的上传方式是通过 vSphere Client 的存储页面选择目标数据存储点击上载文件把 zip 包拖上去即可。也可以使用 scp 直接传到主机磁盘目录比如scp ESXi670-202210001.zip root你的ESXi主机IP:/vmfs/volumes/datastore1/这里我推荐你使用 datastore 路径来保存补丁包因为这样补丁包不占用宿主机的内存盘空间ESXi 根文件系统空间很小经常只有几个 GB也不容易因为空间不足导致后续操作失败。3.2 检查补丁包签名和完整性这一步很多人会忽略但恰恰是排查一切诡异问题的起点。补丁包在下载过程中可能因网络原因损坏或者被安全软件拦截导致文件不完整。压缩包损坏时esxcli 在安装阶段会报出各种莫名其妙的错误。因此在上传完成后建议先执行一次 MD5 校验。在 ESXi 的 SSH 终端中进入文件所在目录执行md5sum ESXi670-202210001.zip把输出的 MD5 值与官网页面上提供的校验值进行比对。如果一致说明文件完好再进行后续操作。千万别嫌这一步多余损坏的离线包在安装时经常报Metadata file not found或Invalid bundle的错误白白浪费时间排查。3.3 专业前置检查dry-run 模式ESXi 补丁安装命令支持 dry-run也就是预演模式可以提前检查系统依赖是否满足、是否存在 VIB 冲突等情况而不做任何实际修改。我强烈建议第一次接触 esxcli 补丁命令的朋友一定要执行这一步。命令格式如下esxcli software profile update --depot/vmfs/volumes/datastore1/ESXi670-202210001.zip --profileESXi-6.7.0-202210001-standard --dry-run执行后系统会输出一份完整的检查报告包括将要安装、升级、降级或移除的 VIB 列表以及是否存在依赖冲突。如果报告显示Conformance Check: PASSED那么就可以放心安装。顺便说明一下--profile参数的作用。每个补丁包 zip 中其实包含多个 profile 文件最常见的是ESXi-6.7.0-202210001-standard和ESXi-6.7.0-202210001-no-tools。前者是标准版配置会附带 VMware Tools 更新后者则不会把 VMware Tools 的更新打包进去通常用于需要严格控制客户机内工具版本的环境。一般生产环境使用 standard 版本即可。如果你不确定自己该选哪一个可以先用 unzip 查看补丁包内容unzip -l ESXi670-202210001.zip | grep metadata打开 metadata 文件查看 profile 名称再决定用哪一个。不过大多数情况下直接用 standard 就是对的。3.4 进入维护模式并执行补丁安装确认 dry-run 没有报错后接下来就是正式安装了。安装前需要先让 ESXi 主机进入维护模式。在 vSphere Client 中选中主机右键选择维护模式-进入维护模式。如果是通过命令行可以先查看当前是否有虚拟机在运行esxcli vm process list确认无 VM 运行后执行vim-cmd hostsvc/maintenance_mode_enter然后检查主机是否确实进入维护模式vim-cmd hostsvc/hostsummary | grep maintenanceMode返回类似true就对了。接下来正式执行补丁安装命令esxcli software profile update --depot/vmfs/volumes/datastore1/ESXi670-202210001.zip --profileESXi-6.7.0-202210001-standard这个过程会输出每个 VIB 的安装进度。快的时候几分钟慢的时候十几分钟取决于你当前的构建号离目标版本多远以及磁盘 I/O 速度。安装完成后命令行会提示你重启系统。此时先别急着重启可以再跑一遍esxcli software profile get确认当前活动的 profile 名称和 build 是否已经变为 20910077。由于 ESXi 是有双 boot bank 机制的刚更新完 active 的 profile 可能还没切换过来需要重启后才会真正生效。所以确认 profile 信息无误后执行reboot3.5 重启后的验证流程重启完成后再次通过 SSH 登录系统第一件事就是执行vmware -v确认构建号已经变为 20910077。然后查看开机模块和驱动加载是否正常esxcli hardware status get重点关注主机传感器信息、网络模块和存储模块的状态确保没有异常故障。虚拟化环境里最常见的隐性 bug 就是补丁升级成功但某些第三方驱动没有正确加载。你可以用以下命令查看最近一次引导的日志查找与error、warning相关的异常信息less /var/log/vmkernel.log如果系统正常再通过 vSphere Client 将主机退出维护模式vim-cmd hostsvc/maintenance_mode_exit之后启动各虚拟机逐一确认业务恢复正常。整个流程走完补丁工作才算真正画上句号。4. 常见安装失败问题与排查技巧实录4.1 空间不足导致的安装失败ESXi 的系统盘空间非常有限很多机器的系统盘只有几十 GB 甚至 8GB 的老配置。补丁包在解压和安装过程中需要额外的临时空间一旦磁盘不足esxcli 会在写入 VIB 时报出insufficient space错误。排查方法执行df -h查看/bootbank和根分区的使用情况。如果空间紧张理论上可以清理/scratch/log下的大日志文件但如果平时日志已经很大说明主机运行时间很久。我更推荐另一种方案将补丁包放到共享存储或 datastore 上只让系统盘负责解压临时文件可以减少部分空间压力实在不行就清理掉一些不再使用的旧 ISO、临时文件再重试。如果依然装不上直接考虑扩容系统盘或者重新安装系统。4.2 VIB 冲突或依赖不满足补丁安装时最烦的就是遇到VIB ... requires ... which conflicts with ...这种错误。这通常是因为你之前装了某个第三方 VIB其版本与补丁包中同组件的版本不一致导致的。这类问题的解决办法有一个通用套路先查看冲突的 VIB 是谁执行esxcli software vib list | grep 冲突的组件名如果确定这个 VIB 已经不再需要可以主动移除。比如旧版的第三方 USB 网卡驱动导致冲突可以先执行esxcli software vib remove --vibnamexxx然后重新执行补丁安装。如果这个 VIB 在业务中必须保留那就得去这个驱动的厂商官网找适配新 build 的驱动版本先单独升级驱动再打补丁。需要特别提醒的是esxcli software vib remove操作有一定风险移除的过程中会卸载内核驱动模块如果移除的是存储或网卡驱动正在进行的 I/O 可能中断。所以建议在维护模式下、所有虚拟机迁移或关机后再执行。4.3 网络服务异常SSH 连不上或管理网不通打补丁重启后偶尔会遇到管理 IP 无法 ping 通、SSH 登录不了主机的情况但虚拟机业务却正常。这时候不用慌大概率是管理网络服务hostd 或 vpxa没起来或者 VLAN 配置在重启后没有生效。在重启完成但 SSH 不可用的极端情况下只能通过 vSphere Client 的主机控制台或者服务器厂商的带外管理iDRAC/iLO来访问。进入 ESXi 的本地控制台按 F2 进入系统自定义界面检查管理网络配置。如果显示网络服务已停止可以按提示重启管理网络组件。等网络恢复之后再进入 SSH 检查 vmkernel 日志tail -100 /var/log/hostd.log常见的原因是之前手工改过网络配置文件补丁升级后配置校验没通过hostd 启动失败。这时只能回退配置文件或者重新配置标准网络。这里也侧面说明补丁前一定确认主机的网络配置是标准做法不要用各种野路子工具改管理网络否则补丁后等待你的就是深夜加班。4.4 补丁安装成功后虚拟机出现模块 DevicePowerOn 打不开这个问题在 ESXi 6.7 中并不少见经常在补丁升级或重启之后出现原本能正常启动的 Windows 虚拟机突然报错提示模块 DevicePowerOn 打不开。出现这个问题的常见诱因是补丁更新后PCI 直通设备的配置或者虚拟机的固件类型与当前 host 驱动不兼容。比如不少用户会在热词里提到的 Intel I350 网卡直通问题就是典型的驱动不兼容造成的。排查时先去查看虚拟机的.vmx配置文件看看有没有直通设备的配置项grep -i passthru /vmfs/volumes/datastore1/虚拟机目录/虚拟机.vmx发现直通配置后可以尝试先把直通设备从虚拟机中移除或者将虚拟机固件从 BIOS 切换为 EFI需确认客户机操作系统支持。这两种方法都无效的话再考虑从补丁中回退版本。这个坑我在生产环境踩过数次经验就是打含有驱动更新的补丁前一定先去补丁发布说明中查看该补丁是否包含你所用网卡驱动模块的更新如果有主动准备对应版本驱动做备用。4.5 常见错误速查表错误信息可能原因最快处理方案Metadata file not found补丁包下载损坏重新下载并校验 MD5Insufficient space系统盘空间不足清理日志或将安装源放到数据存储VIB conflicts第三方驱动版本不兼容先移除冲突 VIB再升级驱动Imageupload failed补丁包上传不完整使用 scp 或 vSphere Client 重新上传Modules cannot be loaded驱动或内核模块加载失败检查vmkernel.log回退 boot bank管理网不通hostd 服务异常或网络配置失效带外管理进入控制台恢复网络配置5. 两条个人经验总结我在实际打补丁的操作中养成的一个习惯是保留每次补丁安装前的esxcli software profile get输出和补丁包校验值记录在运维档案里。别看这点小信息出了问题回退时非常省事。ESXi 补丁回退并不难重启时在引导界面选择上一个 boot bank 就能回到升级前状态前提是你得清楚自己是从哪个版本来升级的。另外一个小技巧是如果主机上有多个 ESXi 6.7 需要打补丁可以先挑一台非核心机器跑通流程确认无问题后再批量推进。批量操作时可以提前把补丁文件放到共享存储中每台主机上只执行 profile update 和 reboot 即可省去反复上传文件的时间也避免每次都用 SSH 拷贝造成不必要的网卡流量。ESXi 6.7 虽然已经过了主要支持期但它的存量用户依然庞大。只要注意做好备份、确认 VIB 兼容性、认真跑一遍 dry-run补丁升级完全可以安全流畅地完成。希望这份实操笔记能帮你少走弯路也欢迎在评论区聊聊你遇到的补丁相关奇葩问题。本文还有配套的精品资源点击获取
返回列表