问题说明
在 ZMigrate 迁移控制台的【云平台】中,当管理员手动删除了已对接的 ZSphere 目标平台连接(例如 ZSphere-<platform-id>#<platform-address>)后,在 ZSphere 中再次创建迁移任务时,发现目标平台数据无法正常获取。
现象
- UI 异常显示:在 ZMigrate 迁移服务的【云平台】列表中,目标端 ZSphere 平台显示异常,对应的主机资源/详情无法加载。
- 审计日志记录:在系统审计日志(
_LOGS)中记录有手动执行删除操作:
{"action":"Delete cloud","description":{"Name":"ZSphere-<platform-id>","Msg":"Cloud connection deleted."},"type":"auth_zsphere","status":true}
{"action":"Delete cloud","description":{"Name":"ZSphere-<platform-id>","Msg":"Cloud connection deleted."},"type":"ZSphere","status":true}
{"action":"Delete server","description":{"Name":"null","Msg":"Server deleted."},"type":"General Purpose","status":true}
- 业务影响:无法基于该目标平台继续创建恢复/迁移任务,现有正在执行的任务无法同步目标平台元数据。
适用环境
- 产品:ZVF / ZSphere,使用 ZMigrate 迁移服务
- 组件:ZMigrate 控制台 (trekercontrol)、ZSphere API 认证模块 (auth_zsphere)、数据网关 (Data Gateway)
- 日志诊断包:
DiagnosticsReport_Management_*.zip/DiagnosticsReport_VMware_*.zip
可能原因
该现象通常由以下原因导致:
- 级联残留与元数据不一致:手动删除云平台连接时,仅删除了上层授权关系(
auth_zsphere/Delete cloud),但底层缓存或主机服务映射(General Purpose Server / Data Gateway)未完全清理干净。 - Machine ID / 节点唯一标识冲突:ZMigrate 本地数据库(如
pixiu.sqlite)中仍保留了原平台的 machine-id 或租户账号(_ACCT_UUID)绑定关系,重新添加时触发Duplicated machine ID校验拦截。 - 迁移服务缓存未刷新:后台
trekercontrol/httpd进程持有旧会话或连接池,导致删除后前端仍拉取到脏数据或空指针异常。
排查步骤
1. 检查审计日志与操作时序
- 操作路径:登录 ZMigrate 管理后台,查看操作日志或导出
DiagnosticsReport_Management_*.zip诊断包解压查看pixiu.sqlite中的_LOGS表。 - 检查项:确认在故障发生前是否存在
Delete cloud、Delete server相关操作。 - 预期结果:核对删除操作的
_ACCT_UUID与当前登录租户是否一致,确认是否属于误删或级联删除不完整。
2. 检查底层数据网关与服务器注册状态
- 检查项:在【数据网关】及【云平台】列表确认当前数据网关与源/目标云平台的绑定状态。
- 异常处理:如果发现数据网关关联的云平台已被删除,但网关本身仍处于注册状态,需先在界面删除关联的数据网关,再彻底解绑平台。
3. 清理残留的 Machine ID 与重复注册项
- 若重新添加平台时报
Duplicated machine ID:
- 检查并确认目标 ZSphere 平台地址与 AccessKey 是否发生变更。
- 在 ZMigrate 管理节点后台确认
/usr/local/trekercontrol缓存目录及 SQLite 数据库中对应平台的注册记录。 - 完全清除残留的关联服务器(Server)记录后,重新走【设置向导】或【云平台 -> 添加】流程。
4. 重启 ZMigrate 核心服务以刷新连接池
- 执行命令(在 ZMigrate 虚拟机终端):
systemctl restart trekercontrol
systemctl restart apache2 # 或 httpd
- 预期结果:服务重启后,旧的云平台连接缓存被释放。
补充信息
- 相关功能:ZMigrate 云平台对接、ZSphere 目标端纳管、数据网关 (NBD) 分发
- 最佳实践:对由 ZMigrate 自动纳管或绑定的数据网关、平台连接及其关联资源,避免绕过标准流程在 ZMigrate UI 上直接删除;如需删除,应先确认没有运行中的迁移/恢复任务,并保留操作时间、平台连接名称和诊断包。
