【VMware vSphere】借助 Live Patch 无停机修补 vSphere 9 集群。

还记得 VMware vSphere 8 U3 中更新的有关 vSphere 生命周期管理功能吗?其中,vSphere Lifecycle Manager 引入了一个叫 "Live Patch" 实时修补的功能,该功能允许用户在无停机无中断的情况升级自己的 vSphere 集群,并且也无需将虚拟机从原主机迁移至其他主机即可完成更新。而以往,要完成主机补丁的修补或者更新,通常需要先将虚拟机迁走,然后主机被置于维护模式,完成补丁更新后还要重启主机才能完成整个流程,这个过程不仅繁琐还会容易出错并可能造成业务中断。

vSphere Live Patch 功能的优势明显,可能大家之前也看过了相关的文章介绍了这个功能,但是都没有真正实际应用过,我也一样,其实原因是 VMware 仅仅发布了这个功能,但是之前并没有可用的支持 Live Patch 的补丁。

vSphere Live Patch 实时修补过程是怎么样的?使用 Live Patch 执行修补过程时,vSphere 集群中的 ESXi 主机将进入"部分维护模式",目标补丁组件的新修订版本与当前版本并行挂载,新的挂载修订版文件和进程已修补,ESXi 主机上的虚拟机执行"快速挂起恢复(FSR)"以使用已修补的版本。

ESXi 主机进入部分维护模式时,上面的虚拟机将继续保持运行,但是此时不允许将该主机上的虚拟机迁移到其他主机,或者从其他主机迁移虚拟机过来,同时也不允许在该主机上创建新的虚拟机。

前面说过,使用 vSphere Live Patch 功能的前提是,你所修补的新补丁必须支持 Live Patch 才可以,我们可以在 vSphere Lifecycle Manager 管理界面查看该补丁是否被标记支持 Live Patch,还有在 vSphere 集群的更新 Image 映像设置中看到补丁是否可以被应用于 Live Patch。

当然,是否支持 Live Patch 的补丁也会在产品的发行说明中提到,比如在最近的 VMSA-2025-0013 安全通告中,VMware 多个产品版本具有 CVE-2025-41237 等多个安全漏洞,并且安全等级为严重,VMware 推出安全补丁 VMware ESX 9.0.0.0100 以解决公告中针对于 vSphere 9 产品的安全漏洞。可能会发现,ESXi 在 vSphere 9 版本中已被更名为 ESX,并且版本补丁的命名方式不再是 U1/U2/U3,而是版本后面加小补丁号。

基于此,我想尝试在 vSphere 9 版本中应用 Live Patch 实时修补功能,看看是不是像官方幻灯片宣传的那样。其实,vSphere 9 仅作为 VMware vSphere Foundation(VVF) 或者 VMware Cloud Foundation(VCF) 产品套件的一部分提供(详见),所以正常情况下的 vSphere 集群的修补过程应该是使用新组件 VCF Operations 来完成,由于我没有部署完整的环境,所以以下测试过程还使用原来 vSphere 8 的修补方式来完成。

一、环境准备

vSphere 环境的安装部署过程就省略了,9 版本和之前 vSphere 8 版本的操作过程几乎没什么区别,只是提一点是,对于 Hypervisor 操作系统安装的时候可以通过"systemMediaSize"选项参数来控制分区的配置,而 ESX 9 中可以使用的选项不再支持 min 和 small 了。

在创建集群的时候,vSphere 9 集群仅支持基于"Image"映像的生命周期管理方式。注意,启动 DRS 并设置为全自动模式。

使用集群快速配置向导配置 vSAN HCI 集群,可能会发现之前叫"vSAN Max"的集群架构方式现在叫"vSAN Storage Cluster"。

vCenter Server 版本为 9.0.0.0,版本号 24755230。

ESX 版本为 9.0.0.0,版本号 24755229。

vSAN HCI ESA 架构单站点标准集群。

部署了 vm1 和 vm2 虚拟机,分别运行在 a1 和 a2 主机上。

二、修补准备

导航到 vSphere Client->Plugins->Lifecycle Manager。

点击"ACTIONS",选择"Import Updates",选择并导入本地的补丁文件。

手动导入后,点击"Software Depot",可以看到补丁后面有 Live Patch 标记。

点击"Settings",导航到"Cluster Lifecycle"->"Images"设置,点击"EDIT"编辑并将"Enforce Live Patch"功能开启。注意,该选项针对所有集群生效,也可以在集群映像更新设置中单独开启(参见)。

三、修补过程

导航到集群(vsan-esa-cluster)->Updates->Hosts->Image,点击"EDIT"。

点击"ESXi Version"并选择新补丁,可以对集群的映像设置一个新的名称,当集群中具有不同配置的主机时,可以为集群"ADD IMAGE"添加并定义多个映像,之前介绍过(参见)。

点击"Components"后面的"SHOW DETAILS"并选择"ALL components",也可以自定义映像中的组件,比如将 VM Tools 从基础映像中删除。

由于是测试环境,没有供应商加载项以及其他独立组件等,只需要定义基础映像并点击"SAVE"保存即可。

点击"RUN PRE-CHECK(ALL)"运行预检查。

点击"STAGE(ALL)"将补丁转储到所有主机。

点击"REMEDIATE(ALL)"开始修补所有主机。

点击其中一台主机,我们可以看到该主机即将执行的所有操作。

开始依次对 vSphere 9 集群中的所有主机执行 Live Patch 实时修补,可以看到主机已经进入部分维护模式(Partial Maintenance Mode)。

开始 a2 主机修补工作流。

a2 主机修补的完整过程:

复制代码
  07/21/2025, 5:41:55 PM  Finished remediation of the host 'esx9-a2.mulab.local'
  07/21/2025, 5:41:55 PM  Finished compliance check for host 'esx9-a2.mulab.local'
  07/21/2025, 5:41:18 PM  Started compliance check for host 'esx9-a2.mulab.local'
  07/21/2025, 5:41:17 PM  Completed exiting partial maintenance mode for host 'esx9-a2.mulab.local'
  07/21/2025, 5:41:16 PM  Started exiting partial maintenance mode for host 'esx9-a2.mulab.local'
  07/21/2025, 5:41:11 PM  Completed installing the image on host 'esx9-a2.mulab.local'
  07/21/2025, 5:39:46 PM  Live Patch apply-published script '03_vmx-apply-published' returned a message: The following Virtual Machines have been tagged for applying fast suspend and resume (FSR): vm2.
  07/21/2025, 5:39:46 PM  Live Patch apply-published script '01_vmkqp-apply-published' returned a message: The following patches have been successfully activated: vmkqp_00.
  07/21/2025, 5:39:46 PM  Live Patch apply-published script '01_vmkqp-apply-published' returned a message: The following patch modules have been successfully loaded: vmkqp_00.
  07/21/2025, 5:39:46 PM  Live Patch apply-published script '03_vmx-apply-published' succeeded.
  07/21/2025, 5:39:45 PM  Starting to execute Live Patch apply-published script '03_vmx-apply-published'.
  07/21/2025, 5:39:45 PM  Live Patch apply-published script '01_vmkqp-apply-published' succeeded.
  07/21/2025, 5:39:44 PM  Starting to execute Live Patch apply-published script '01_vmkqp-apply-published'.
  07/21/2025, 5:39:23 PM  Live Patch scan script '03_vmx-scan' succeeded.
  07/21/2025, 5:39:22 PM  Starting to execute Live Patch scan script '03_vmx-scan'.
  07/21/2025, 5:39:22 PM  Live Patch scan script '01_vmkqp-scan' succeeded.
  07/21/2025, 5:39:21 PM  Starting to execute Live Patch scan script '01_vmkqp-scan'.
  07/21/2025, 5:39:21 PM  Live Patch scan script '01_nsxhost_scan.py' succeeded.
  07/21/2025, 5:39:12 PM  Starting to execute Live Patch scan script '01_nsxhost_scan.py'.
  07/21/2025, 5:38:39 PM  Started to install the image on host 'esx9-a2.mulab.local'
  07/21/2025, 5:38:39 PM  Completed entering partial maintenance mode for host 'esx9-a2.mulab.local'
  07/21/2025, 5:38:38 PM  Started to enter partial maintenance mode for host 'esx9-a2.mulab.local'
  07/21/2025, 5:38:37 PM  Starting remediation of the host 'esx9-a2.mulab.local'
  07/21/2025, 5:38:37 PM  Completed getting host recommendation from DRS to enter maintenance mode for cluster 'vsan-esa-cluster'. Selected host: 'esx9-a2.mulab.local'.
  07/21/2025, 5:38:37 PM  Started getting host recommendation from DRS to enter maintenance mode for cluster 'vsan-esa-cluster'.

主机上的虚拟机没有被迁移并依然正常运行。

完成修补。

检查版本。

经过上面的测试结果可以确认,vSphere 9 现在已经可以使用 Live Patch 进行实时补丁修补,整个过程无需撤离虚拟机,并且以无中断无停机的方式修补了 vSphere 集群,这意味着未来客户可以大大减少生产环境中的停机时间,降低维护的复杂度以及可能未知的风险。

但是,vSphere Live Patch 功能真就这么完美吗?No!并非所有的补丁都支持 Live Patch,vSphere 9 中的 Live Patch 依然存在 vSphere 8 中的限制,比如不能和集群主机并行修复功能结合使用,不兼容配置了 TPM 2.0 以及 DPU 设备的系统,配置了 FT、DirectPath I/O 的虚拟机和 vSphere Pod 容器无法使用 Fast-Suspend-Resume(FSR),这些需要手动修复。

相关推荐
曲幽5 天前
Python使用diffusers加载文生图模型教程
python·ai·prompt·pipeline·torch·image·diffusers·transforms
JUNIOR_MU4 个月前
【VMware VCF】启动和关闭 VMware Cloud Foundation 环境的正确顺序。
shutdown·vsphere·vsan·vcenter server·vcf·vmware cloud foundation·nsx manager·vi workload domain·vcls·startup·management workload domain·nsx edge·aira operations for logs·vsphere replication·live site recovery·aira suite lifecycle·workspace one access·aira operations·aira automation·vsphere supervisor
sitelist4 个月前
comctl32!ListView_OnSetItem函数分析LISTSUBITEM结构中的image表示图标位置
image·listview·comctl32·onsetitem·listsubitem
SuperHeroWu74 个月前
【HarmonyOS Next】鸿蒙应用加载SVG文件显示图标
华为·svg·harmonyos·鸿蒙·加载·image·图标
TPCloud5 个月前
如何通过rust实现自己的web登录图片验证码
开发语言·rust·image·图片验证码
JUNIOR_MU5 个月前
【VMware vSphere】扩容或缩减 vCenter Server 的磁盘空间大小。
vsphere·vcenter·backup·vcenter server·restore·vami·vmdk·磁盘空间扩容·磁盘空间缩减
码农研究僧6 个月前
Vue 图片引用方式详解:静态资源与动态路径访问
vue·路由·image·public
SuperHeroWu77 个月前
【HarmonyOS】鸿蒙应用点9图的处理(draw9patch)
华为·harmonyos·鸿蒙·image·图片拉伸·点9图·不变形
两水先木示7 个月前
【Unity3D】UGUI获取图片网格、文本网格大小、位置(Rect)
unity·image·text·网格大小