vCenter 中孤立虚拟机记录的完美清理方案

vCenter 中孤立虚拟机记录的完美清理方案

故障场景与现象分析

在管理 vCenter Server 时,你是否遇到过这种情况?某个虚拟机显示为“孤立”状态,但在 ESXi 主机上根本看不到它。更令人抓狂的是,“从清单中移除”选项是灰色的,无法直接删除这个无效的记录。

这种现象在 vCenter Server 6.7、7.0.x 和 8.0.x 版本中都可能发生,特别是在虚拟机迁移、快照管理或 ESXi 主机故障恢复后。

孤立虚拟机的原因分析

孤立虚拟机记录通常由以下几种原因导致:

1. 虚拟机迁移或删除过程异常中断:在 vMotion 或 Storage vMotion 过程中,如果网络中断或主机故障,可能导致 vCenter 数据库中的记录与实际 ESXi 主机上的 VM 不一致。

2. 虚拟机快照管理问题:错误的快照操作或快照删除过程可能导致虚拟机在 vCenter 中的状态异常。

3. vCenter 与 ESXi 主机通信故障:如果 vCenter 与 ESXi 主机之间的通信中断时间过长,可能会导致虚拟机记录变成孤立状态。

解决方案一:使用 vSphere Client 图形界面

这是最简单的方法,无需命令行操作,适用于大多数场景:

1. 在 vSphere Client 中切换到“虚拟机和文件夹”视图。
2. 创建一个新的虚拟机文件夹。
3. 将孤立的虚拟机拖放到这个新文件夹中。
4. 删除这个包含孤立虚拟机的文件夹。

这种方法通过文件夹操作间接删除了孤立虚拟机记录,避免了直接操作 vCenter 数据库的风险。

解决方案二:直接操作 vCenter 数据库

如果第一种方法无效,或者你需要更彻底的解决方案,可以通过直接操作 vCenter 的 vPostgres 数据库来删除孤立虚拟机记录。

操作步骤

1. 首先,确保你已经对 vCenter Server Appliance (VCSA) 进行了完整的备份或关闭状态下的快照。

2. 使用 SSH 连接到 VCSA 并以 root 用户登录。

3. 停止 vCenter Server 服务:

service-control --stop vpxd

4. 连接到 vCenter 的 vPostgres 数据库:

/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres

5. 识别需要删除的虚拟机 ID:

-- 方法一:通过 ID 查找
   select * from vpx_entity where id = '';

 

   -- 方法二:通过名称查找
   select * from vpx_entity where name like '%%';

6. 按照以下顺序执行删除语句(替换其中的 VM_ID 为实际值):

delete from  VPX_COMPUTE_RESOURCE_DAS_VM where VM_ID=9;
   delete from  VPX_COMPUTE_RESOURCE_DRS_VM where VM_ID=9;
   delete from  VPX_COMPUTE_RESOURCE_ORC_VM where VM_ID=9;
   delete from  VPX_VM_SGXINFO where VM_ID=9;
   delete from  VPX_GUEST_DISK where VM_ID=9;
   delete from  VPX_VM_VIRTUAL_DEVICE where ID=9;
   delete from  VPX_VM_DS_SPACE where VM_ID=9;
   delete from  VPX_NON_ORM_VM_CONFIG_INFO where ID=9;
   delete from  VPX_NORM_VM_FLE_FILE_INFO where VM_ID=9;
   delete from  VPX_VDEVICE_BACKING_REL where VM_ID=9;
   delete from  VPX_VIRTUAL_DISK_IOFILTERS where VM_ID=9;
   delete from  VPX_VM_STATIC_OVERHEAD_MAP where VM_ID=9;
   delete from  VPX_VM_TEXT where VM_ID=9;
   delete from  VPX_VM where ID=9;
   delete from  VPX_ENTITY where ID=9;

 

   delete from VPX_DVPORT where connectee='vm-name';

7. 重启 vCenter Server 服务:

service-control --start vpxd

操作风险与注意事项

在执行任何与数据库相关的操作时,必须谨慎并遵循以下原则:

1. 完整备份是必需的:在进行任何数据库修改之前,确保有完整且可恢复的备份。

2. 操作前确认隔离:如果是 Enhanced Linked Mode (ELM) 架构,必须对所有 ELM 节点进行离线快照。

3. 严格按照顺序执行 SQL 语句:SQL 语句的执行顺序非常重要,必须按照提供的顺序执行,以避免违反数据库约束。

4. 考虑专业支持:如果你对数据库操作不熟悉,或者是在生产环境中操作,建议联系 VMware 专业支持团队。

运维经验总结

定期检查 vCenter 清单中的虚拟机状态,及时清理孤立虚拟机记录,可以提高 vCenter 的管理效率。对于大规模部署环境,建议使用 PowerCLI 自动化脚本定期检查和清理孤立虚拟机记录。

同时,确保 ESXi 主机和 vCenter Server 的网络连接稳定,避免在虚拟机迁移过程中发生中断,从而减少孤立虚拟机记录的产生。

通过以上方法,你可以有效地清理 vCenter 数据库中的孤立虚拟机记录,恢复 vCenter 的正常管理功能。


Reference: VMware KB 382350

 

 

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

vCenter 中孤立虚拟机记录的完美清理方案
运维必备

vCenter 中孤立虚拟机记录的完美清理方案

vCenter 中孤立虚拟机记录的完美清理方案。vCenter 中存在无法删除的孤立虚拟机记录?本文提供两种解决方案,让你快速清理 vCenter 数据库中的孤立 VM 记录。 本文针对该问题提供了深度剖析与实测解决方案。

Windows Server 2025:如何离线添加显示语言?
部署升级

Windows Server 2025:如何离线添加显示语言?

本文提供 Windows Server 2025 离线添加显示语言的详细图文教程,包括下载语言包 ISO、挂载安装、使用 lpksetup 命令安装语言包、修改显示语言并注销生效。适用于企业服务器、多语言环境、虚拟机部署及 IT 管理员快速完成系统语言包安装。

//omg10.com/4/9119499