VMware Cloud Foundation 9.1 实操详解:可选 Day-N 运维组件完整卸载指南
VMware Cloud Foundation(简称 VCF)是博通旗下面向企业级私有云场景的一体化基础架构平台,而VCF 9.1版本迭代后,新增了多款支持后置部署的运维类组件。在云计算运维领域,这类集群初始部署完成后再追加安装的工具、服务,统一被称作Day-N 组件。这些组件可以根据企业业务需求灵活选配,为 VCF 集群补充日志管理、实时监控、网络诊断、多租户自动化等能力。
但在实际落地运维中,不少技术人员会遇到一个核心问题:当业务架构调整、组件功能不再使用,或是需要重构集群环境时,VCF 自带的生命周期管理界面(LCM UI)并未提供图形化的一键卸载功能,无法通过可视化界面完成可选 Day-N 组件的移除。针对这一官方功能短板,VMware 在配套知识库文档中提供了专用 Python 清理脚本,成为目前卸载这类组件的唯一标准方案。
本文基于官方技术文档,结合实际运维场景,全面拆解 VCF 9.1 中各类可选 Day-N 组件的架构特点、前置准备、分步卸载流程以及风险规避要点,区分不同部署形态组件的操作差异,手把手讲解如何使用【cleanup_component.py】脚本完成卸载,覆盖【日志管理】、【实时指标】、【VCF 网络运维工具 (VON)】、【VCF 自动化 (VCFA)】等主流组件,帮助运维人员安全、完整地完成组件下线操作。
一、VCF 9.1 可选 Day-N 组件功能与分类介绍
在 VCF 集群完成初始架构部署后,用户可按需部署多款后置 Day-N 组件,VCF 9.1 主推的四款核心可选组件各有分工,也是日常运维中最常需要卸载的服务,下面逐一介绍其功能与部署形态:
【日志管理】该组件是 VCF 平台的统一日志中心,其前身是独立工具【VCF Operations for Logs】,在 9.1 版本中完成架构整合,直接内嵌至【VCF Operations】运维平台内部。它负责全集群虚拟机、物理节点、后台服务的日志收集、检索、归档与故障分析,是运维排障的核心工具。该组件依托 VCF 管理服务(VCFMS)运行,属于标准平台内置服务组件。
【实时指标】主打高精度集群性能监控能力,数据采集精度最高可达 2 秒,能够毫秒级抓取硬件资源、虚拟机负载、网络流量、后台进程等全维度运行指标,适用于对监控实时性、告警灵敏度要求较高的生产私有云环境。需要特别注意的是,该服务并非单一进程,而是由实时指标主服务和实时指标存储服务两个独立子组件组合而成,卸载时需要完整移除两者。
【VCF 网络运维工具 (VON)】英文全称为 VCF Operations for Networks,简称 VON,是面向网络场景的专用运维组件。它主打网络可视化与故障诊断能力,部署后可实现全网拓扑展示、链路状态检测、异常流量分析、网络故障定位等功能,大幅降低大型 VCF 集群的网络运维难度。和前两类组件不同,VON 不依托 VCFMS 运行,采用传统 OVA 虚拟设备镜像独立部署,拥有专属虚拟机,架构形态差异直接导致其卸载指令完全不同。
【VCF 自动化 (VCFA)】英文全称为 VCF Automation,简称 VCFA,是面向多租户模式的现代化自助服务平台。借助该组件,云平台管理员可以开放自助资源申请入口,各租户能够自主创建、管理、释放云资源,减少人工运维介入,提升私有云运营效率。VCFA 是本次所有组件中架构最复杂的一款,不仅在 VCFMS 中注册了多项关联服务,底层还搭建了专属的 VCFMS 集群与多台虚拟机,卸载流程分为多个阶段,操作门槛最高。
除以上四大核心组件外,在 VCF 集群的附加实例(后续新增的集群节点,区别于首次部署的主实例)中,还会存在【仓库服务】、【身份代理】等可选后置组件,这类组件同样归属通用服务范畴,可使用同一套脚本指令完成卸载。
同时官方明确划分了不同实例的可卸载范围:
- 主 VCF 实例(集群首个部署节点):仅支持卸载【日志管理】、【实时指标】、VON、VCFA 四类组件;
- 附加 VCF 实例(后续扩容新增节点):可卸载【实时指标】、【仓库服务】、【身份代理】等附加实例专属组件。
运维操作前务必先确认当前集群实例类型,避免误操作。
二、组件卸载前置准备工作
正式执行卸载命令前,需要完成脚本获取、环境配置、权限校验三大准备工作,这是保障卸载流程顺利运行的基础,缺一不可。
2.1 核心工具:获取官方清理脚本
由于 VCF LCM 界面无卸载入口,所有 Day-N 组件的卸载都依赖官方提供的【cleanup_component.py】Python 脚本。首先需要从 VMware 官方知识库文档中下载该脚本文件,并妥善存放至后续执行操作的主机中。该脚本是整套操作的核心载体,所有查询、删除指令都基于此文件运行。
2.2 脚本运行环境要求
存放并执行脚本的主机无需特殊配置,满足以下基础条件即可:
- 系统已部署完整 Python 运行环境(主流 Python3 全版本均可兼容),无依赖库缺失问题;
- 主机与目标 VCF 集群、VCF 管理服务节点、vCenter Server 网络互通,相关访问端口正常放行;
- 执行脚本的账号拥有文件运行、网络访问权限。
额外补充:如果卸载对象是 VON 或 VCFA,脚本运行过程中会自动联动 vCenter Server 删除关联虚拟机,因此后续必须配置 vCenter 的管理员账号密码;仅卸载【日志管理】、【实时指标】等通用组件时,vCenter 账号可选择性忽略。
2.3 统一配置环境变量
为了避免重复输入冗长的集群地址、账号密码,减少手动输入带来的失误,建议提前在执行主机中定义全局环境变量,统一管理所有连接参数。参考官方示例配置如下,运维人员可根据自身实际环境的域名、账号、密码进行修改:
VCF_FLEET_FQDN="vcf-flt01.vcf.lab" VCFMS_RUNTIME_FQDN="vcf-msr01.vcf.lab" VCFMS_USERNAME="*受保护账号*" VCFMS_PASSWORD='VMware1!VMware1!' VCENTER_USERNAME="*受保护账号*" VCENTER_PASSWORD='VMware1!VMware1!'参数详细释义:
VCF_FLEET_FQDN:VCF 集群全局完整域名(FQDN),用于定位目标集群;VCFMS_RUNTIME_FQDN:VCF 管理服务(VCFMS)运行节点域名,是平台核心服务入口;VCFMS_USERNAME / VCFMS_PASSWORD:VCF 管理服务的登录账号与密码,所有组件操作的基础权限;VCENTER_USERNAME / VCENTER_PASSWORD:vCenter Server 管理员账号与密码,卸载 VON、VCFA必填。
环境变量配置完成后,后续所有命令均可直接调用变量,简化操作流程。
三、分类型组件分步卸载实操流程
根据部署架构与运行载体的差异,VCF 9.1 可选 Day-N 组件分为三大类别,对应三套完全独立的脚本指令体系,下面按类别逐一讲解完整操作步骤、终端命令以及关键注意事项。
3.1 第一类:通用服务组件(日志管理、实时指标、仓库服务、身份代理)
这类组件统一归类为vsp-component类型,依托 VCFMS 运行,也是部署范围最广的组件,包含【日志管理】、【实时指标】、附加实例的【仓库服务】与【身份代理】。整套操作分为查询组件 ID和执行卸载两个核心步骤。
3.1.1 步骤一:查询可卸载组件及唯一 ID
在删除组件前,必须先获取目标组件的全局唯一 ID,脚本提供了列表查询指令,在终端中执行以下命令:
python cleanup_component.py list vsp-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD}命令执行完成后,终端会自动输出当前集群内所有支持卸载的组件清单,并同步展示每一个组件对应的 ID。脚本会自动过滤集群内置核心组件,不会展示无法卸载的服务,从根源避免误删关键程序。
结合前文提到的实例规则,根据自身是主实例还是附加实例,筛选目标组件 ID 并记录。
3.1.2 步骤二:根据组件 ID 执行卸载操作
将上一步获取的组件 ID 替换至命令中,执行删除指令即可完成组件卸载。我们以卸载【日志管理】为例(示例组件 ID:95ed2c95-82a3-40c5-a5b8-9580e89b23a3),执行以下命令:
python cleanup_component.py delete vsp-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD} --component-id=95ed2c95-82a3-40c5-a5b8-9580e89b23a3核心避坑提醒:【实时指标】服务由两个独立子组件组成,两个组件拥有不同 ID,必须依次执行两次删除命令,将两个子组件全部卸载。如果仅删除其中一个,会出现后台进程残留、端口占用、平台持续告警等异常问题,无法实现完整下线。
3.2 第二类:【VCF 网络运维工具 (VON)】卸载流程
VON 是典型的 OVA 镜像部署组件,不依赖 VCFMS 运行,拥有独立虚拟机,因此需要使用专属的ova-component指令集,整套流程分为查询 OVA 组件 ID、脚本卸载组件、手动清理平台集成配置三步,操作复杂度高于通用组件。
3.2.1 步骤一:查询 OVA 类型组件 ID
执行专属列表查询命令,识别 VON 对应的组件 ID:
python cleanup_component.py list ova-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD}终端输出清单后,找到【VCF 网络运维工具 (VON)】对应的 ID 并记录。
3.2.2 步骤二:执行 VON 组件卸载
由于 VON 存在独立虚拟机,卸载过程需要联动 vCenter 清理虚拟机资源,因此命令中必须追加 vCenter 账号密码参数。使用记录的组件 ID(示例 ID:e1033a3a-9675-324c-9c43-0efc7dc56796)执行删除命令:
python cleanup_component.py delete ova-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD} --vcenter-username=${VCENTER_USERNAME} --vcenter-password=${VCENTER_PASSWORD} --component-id=e1033a3a-9675-324c-9c43-0efc7dc56796脚本运行期间会自动连接 vCenter,完成 VON 虚拟机的关停、删除工作,全程无需人工干预虚拟机操作。
3.2.3 步骤三:手动清理【VCF Operations】集成配置
脚本仅负责程序与虚拟机的卸载,不会自动清除平台层面的集成关联。在脚本执行成功后,务必登录【VCF Operations】运维界面,按照以下路径手动删除残留配置:操作(Operate) → 管理(Administration) → 集成(Integrations) → 账户(Accounts) → 网络适配器(Networks Adapter)进入对应页面后,删除 VON 相关的集成账户与适配器配置,彻底消除平台残留关联,避免后续出现集成报错、页面加载异常等问题。
3.3 第三类:【VCF 自动化 (VCFA)】卸载流程
VCFA 是架构最复杂的组件,底层搭载专属 VCFMS 集群与多台虚拟机,整体卸载分为两大阶段、四个子步骤,同时存在严格的运行环境限制:第二阶段操作必须在 SDDC Manager 虚拟机内部执行,且必须使用 root 超级管理员账号。
3.3.1 第一阶段:卸载 VCFMS 中注册的关联服务
VCFA 在 VCF 管理服务中注册了两个核心组件:【VCF 自动化】主组件、【迁移服务引擎】,需要先将这两个组件从 VCFMS 中注销,这是卸载的前置环节。
- 沿用 3.1.1 中的
list vsp-component命令,查询并记录两个组件的独立 ID; - 分两次执行删除命令,逐个卸载组件,示例命令如下
# 卸载VCF自动化主组件 python cleanup_component.py delete vsp-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD} --component-id=cf46b049-c58e-40db-b422-ad08652f2da7 # 卸载迁移服务引擎组件 python cleanup_component.py delete vsp-component --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD} --component-id=a933ede9-67ef-4c3a-8adb-5e9fa9a84d29确认两个组件均卸载完成后,再进入下一阶段操作。
3.3.2 第二阶段:卸载 VCFA 底层专属 VCFMS 集群
该阶段是 VCFA 卸载的核心,操作环境有硬性要求:先通过 SCP 等文件传输工具,将【cleanup_component.py】脚本上传至SDDC Manager 虚拟机,登录虚拟机后切换为root用户,所有命令均在此环境下执行。
- 子步骤 1:查询集群组件 ID执行集群专属查询指令,获取 VCFA 底层 VCFMS 集群的组件 ID:
python cleanup_component.py list vsp-cluster --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD}记录终端输出的集群 ID。
- 子步骤 2:执行集群卸载与虚拟机清理使用集群 ID(示例 ID:d9fa0d38-7b00-45b6-89d0-4acbb378e763)执行删除命令,脚本会自动联动 vCenter,删除 VCFA 集群对应的所有虚拟机资源:
python cleanup_component.py delete vsp-cluster --fleet-fqdn=${VCF_FLEET_FQDN} --vcf-services-runtime-fqdn=${VCFMS_RUNTIME_FQDN} --vcf-services-runtime-username=${VCFMS_USERNAME} --vcf-services-runtime-password=${VCFMS_PASSWORD} --vcenter-username=${VCENTER_USERNAME} --vcenter-password=${VCENTER_PASSWORD} --component-id=d9fa0d38-7b00-45b6-89d0-4acbb378e763命令执行完毕后,代表 VCFA 整套服务、集群、虚拟机已全部完成卸载。
四、全局运维注意事项与风险规避
结合官方要求与实操经验,整理多条关键规则,帮助运维人员规避操作风险,保障集群稳定运行:
严格区分集群实例类型操作前先确认当前是主 VCF 实例还是附加实例,两类实例可卸载的组件范围不同,不要盲目执行删除命令,避免触碰集群核心服务。
严禁碎片化卸载关联组件存在依赖关系的组件(如【实时指标】的两个子组件、VCFA 的两个注册服务)必须整套卸载,仅删除单个组件会造成服务残留、端口占用、后台异常等问题。
权限与运行环境合规卸载 VON、VCFA 时,vCenter 账号必须具备虚拟机删除、集群管理的高权限;VCFA 第二阶段强制要求在 SDDC Manager 虚拟机内以 root 身份运行,外部主机、普通用户均无法完成操作。同时提前校验 Python 环境完整性,防止脚本启动失败。
遵循固定操作顺序对于多步骤组件(VON、VCFA),必须按照「查询 ID→脚本卸载→界面清理」的顺序执行;VCFA 必须先卸载上层注册服务,再卸载底层集群,顺序颠倒会直接导致卸载失败。
事前做好备份与业务停服正式卸载前,建议备份 VCF 全局配置、vCenter 虚拟机配置;若目标组件正在承载业务,需先停止业务、断开租户连接,避免意外业务中断。
五、总结
VCF 9.1 新增的多款 Day-N 可选组件,从日志监控、网络诊断到多租户自动化,全方位拓展了私有云平台的运维能力,但受限于 LCM 可视化界面的功能缺失,组件卸载只能依托官方【cleanup_component.py】Python 脚本实现。
不同部署架构的组件对应不同的脚本指令体系:依托 VCFMS 的通用服务使用vsp-component指令,OVA 独立镜像部署的 VON 使用ova-component指令,多层集群架构的 VCFA 则需要结合vsp-component与vsp-cluster两类指令,并分阶段在不同主机中完成操作。
在整套运维流程中,区分组件架构、确认集群实例类型、把控账号权限、遵守操作顺序是四大核心关键点。运维人员只要严格按照本文的流程与规范执行,就能安全、完整地完成各类可选 Day-N 组件的卸载工作,让 VCF 私有云平台保持架构整洁、运行稳定。
