文档目录

问题说明

本文用于排查 ZMigrate 已能列出 VMware 源端资源,但修改平台或迁移服务时区后,目标端 ZSphere 资源列表为空的场景。

现象

  • ZMigrate 服务状态健康,VMware 源端资源可以选择,进入 ZSphere 目标端步骤后却没有可选资源。
  • 单纯重启管理节点、迁移服务,或者切换“API 检查时区”开关后仍不恢复。
  • 已记录现场在 ZMigrate 原生 UI 中重新更新 ZSphere AK 后,目标资源立即恢复可见。

适用环境

  • 产品:ZVF ZSphere
  • 版本:5.0.2(报告环境)
  • 组件:ZSphere 管理节点、ZMigrate 控制台和 ZSphere 资源连接
  • 部署形态:安装 ZMigrate 后修改管理节点或 ZMigrate 时区,再使用已保存的 ZSphere AK 查询目标资源

可能原因

  • 已确认触发条件是安装后修改 ZMigrate 或管理节点时区;产品侧要求两端时间与时区保持一致。
  • 已确认的现场恢复动作是重新更新 ZSphere AK。该证据说明已保存的认证连接上下文需要刷新,但不能单独证明“签名时间戳使用本地时区”这一具体代码根因。
  • 当前缺少接口错误、时区切换前后请求和签名日志,也没有经验证的修复版本。

排查步骤

1. 还原时区变更时间线

  1. 在 ZSphere 管理节点和 ZMigrate 控制台分别执行 timedatectl,记录 Time zone、System clock synchronized、本地时间和 UTC 时间。
  2. 记录 ZMigrate 的安装时间、两端最后一次修改时区的时间,以及资源列表最后一次正常的时间。
  3. 核对是否符合“先安装迁移服务,后修改平台或迁移服务时区”的触发顺序。
  • 预期结果:ZSphere 管理节点与 ZMigrate 当前时间同步、时区一致,并能确认故障是否紧随时区变更出现。
  • 异常处理:两端时间或时区仍不一致时,先按现场时间基准完成一致性变更;变更前记录原值和业务窗口,避免正在运行的迁移任务跨越时间调整。

2. 区分“无资源”和“认证查询失败”

  1. 在 ZMigrate 原生 UI 打开已配置的 ZSphere 资源连接,只核对连接地址、AK 标识和连接状态,不复制或展示 Secret Key。
  2. 在同一时间窗保存 ZMigrate 访问日志、ZSphere 审计日志和管理节点日志,检查资源查询请求是否有鉴权失败、签名时间偏差、连接失败或明确的空结果。
  3. 使用同一账户直接登录 ZSphere,确认目标集群/数据存储等资源实际存在且账户有权查看。
  • 预期结果:若 ZSphere 中有资源,而 ZMigrate 请求存在认证或连接错误,则继续刷新连接上下文;若接口成功返回真正的空列表,则检查账户权限和资源可用范围。
  • 异常处理:日志中没有请求或错误响应被 UI 吞掉时,保留请求时间、连接标识和完整服务端错误提交支持,不根据空白页面推断时区签名算法。

3. 刷新 ZSphere AK 连接上下文

临时方案(Workaround)

适用条件:ZSphere 与 ZMigrate 的时间和时区已经一致,ZSphere 侧存在目标资源,但 ZMigrate 请求仍显示认证/连接上下文异常或资源列表为空;接口确实返回无权限/无资源时不适用。

已验证现场临时方案:在两端时间和时区已经对齐后,进入 ZMigrate 原生 UI 的 ZSphere 资源连接编辑页,重新填写仍有效的 AK/Secret Key 并保存。操作前确认没有正在使用该连接创建的迁移任务,并通过密码管理系统取得凭据,禁止从日志或历史截图复制密钥。

  • 预期结果:连接校验成功,ZSphere 目标资源重新出现,刷新页面后仍可见。
  • 异常处理:保存后仍为空时恢复原连接配置,停止反复重启服务或重复修改时区,转入第 4 步收集证据。
  • 单独重启管理节点或迁移服务在已记录现场无效,不应把重启写成临时方案。

4. 验证资源查询和迁移任务

  1. 连续刷新目标资源列表,确认同一集群、数据存储和网络资源稳定可见。
  2. 先用一个非生产小型 虚拟机 创建迁移任务,确认源端选择、目标端选择和任务提交均成功。
  3. 再次核对两端 timedatectl,确认验证期间没有时间跳变。
  • 预期结果:资源查询和小型任务均正常,且不需要再次更新 AK。
  • 异常处理:问题再次随时间/时区变更出现时,保存变更前后输出、请求时间和错误响应并提交技术支持;在获得构建和回归证据前,不能宣称某个升级版本已修复。

补充信息

  • 提交支持信息时包含 ZSphere/ZMigrate 版本、两端 timedatectl 输出、时区变更时间、资源连接标识和脱敏后的请求错误;不得包含 Secret Key。
  • 具体签名算法、时间容忍窗口和根因尚未确认;不要通过反复修改系统时间或时区来维持连接。
ZMigrate 无法获取 ZSphere 资源 | 故障排查 · KB | ZStack 资源中心