文档目录

适用场景

当本地存储上的云主机热迁移因 rsync 认证错误而失败,且根本原因是物理机的 root 密码在 ZStack 平台外被修改时,使用本文。已验证的修复方式是在 ZStack UI 中更新新密码,以便管理节点重新认证到该物理机。

  • 产品: ZStack Cloud 。
  • 版本:4.2.x~4.8.x。
  • 组件:物理机 agent、基于 SSH 的 rsync。
  • 触发条件:物理机的 root 密码在平台外被轮换的集群(例如由物理机加固脚本或手动执行 passwd 更改)。

问题现象

  • 云主机热迁移失败。UI 错误信息如下:
  操作错误,因为 fail to migrate vm to host, because
  Warning: Permanently added '172.28.50.143' (ED25519) to the list of known hosts.
  rsync: connection unexpectedly closed (0 bytes received so far) [sender]
  rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.2]
  • 迁移目标物理机在网络层面可达(SSH host key 提示正常出现),但 rsync 数据流始终未能完成。

判断方法

根据本文的适用场景、问题现象和环境信息确认该处理流程是否适用。

原因说明

物理机的 root 密码已被轮换,但新密码未同步到 ZStack 平台。管理节点仍然尝试使用旧密码认证物理机;SSH 会提示 host key(这就是为什么会出现 Warning: Permanently added '172.28.50.143' (ED25519) to the list of known hosts. 这一行),但密码交换失败,导致 rsync 报告 connection unexpectedly closed (0 bytes received so far) 并以 code 12 退出。

解决方案

1. 使用新密码重新连接物理机

  • UI path: 资源中心 → 硬件设施 → 物理机 → 选择对应的物理机 → 重连 / 更新密码。
  • Action: 输入新的 root 密码并确认连接。
  • 预期结果:物理机状态恢复为“已连接”。
图 1. 在物理机详情页更新 root 密码

在物理机详情页更新 root 密码

2. 重试云主机热迁移

  • UI: 在云主机详情页重新发起迁移。
  • 预期结果:迁移成功完成。

3. (Ceph 场景)在主存储和镜像服务器详情页更新密码

若集群使用 Ceph 主存储和 / 或 Ceph 镜像服务器,还必须在所有 monitor 节点上更新密码:

  • UI path: 资源中心 → 硬件设施 → 主存储 → 选择对应的主存储 → 详情 → 更新所有监控节点的密码。
  • UI path: 资源中心 → 硬件设施 → 镜像服务器 → 选择对应的镜像服务器 → 详情 → 更新所有监控节点的密码。
图 2. 在 Ceph 资源详情页更新 Monitor 节点密码

在 Ceph 资源详情页更新 Monitor 节点密码

更新完成后,验证云平台服务能够连接到每项资源(状态页显示"已连接")。

验证方法

  • 物理机详情页显示"已连接",无认证告警。
  • 云主机热迁移成功完成;云主机最终运行在目标物理机上。
  • 在 Ceph 场景下,主存储和镜像服务器详情页在每个监控节点上都显示"已连接"。

风险与回滚

  • 风险:如果在 UI 中保存了错误的密码,物理机会变为"已断开"状态,后续任何迁移都会失败。请使用正确的密码重新更新。
  • 风险:在 Ceph 场景下,若某个 monitor 节点仍保留旧密码,该节点的连接将一直处于断开状态,直至也完成更新。
  • 回滚:在物理机详情页重新输入仍可用的旧密码即可回滚。
物理机 root 密码轮换后云主机热迁移报 rsync "connection unexpectedly closed" 失败 | 技术方案 · KB | ZStack 资源中心