适用场景
- 产品:ZCF
- 组件:ZCE-X
- ZCE-X 版本:5.2.000.8
- 对接云平台版本:4.8.x
- 部署形态:双管理节点
- 触发条件:Ceph 主存储中的 EC 存储池水位过高,需要将 VPC 路由器迁移至副本存储池。
问题现象
- 云平台中的 Ceph EC 存储池水位过高。
- 已新增或扩容副本存储池。
- 需要迁移 VPC 路由器根盘以降低目标 EC 池压力。
判断方法
- 迁移前用
QueryVolume确认 VPC 路由器根盘当前installPath。 - 迁移后再次查询
installPath,确认已切换到目标存储池。 - 检查云主机网络与业务访问正常。
原因说明
Ceph 主存储中的 EC 存储池水位过高时,继续承载 VPC 路由器根盘会增加存储压力。将根盘迁移至副本存储池,可降低目标 EC 存储池压力。
解决方案
1. 执行前准备
- 迁移过程中可能出现网络波动。
- 建议在业务低峰期执行。
- 先关闭全局高可用并备份数据库。
2. 处理步骤
- 关闭全局高可用。
- 预期结果:避免迁移过程中误触发高可用动作。
- 备份数据库:
zstack-ctl dump_mysql --file-name zstack-db-backup-master
zstack-ctl dump_mysql --file-name zstack-db-backup-slave
- 预期结果:数据库备份完成。
- 登录 VIP 所在物理机并登录 CLI:
zstack-cli LogInByAccount accountName=admin password="<ADMIN_PASSWORD>"
- 将
<ADMIN_PASSWORD>替换为管理员账号密码。 - 预期结果:进入可执行迁移命令的管理环境。
- 查询 VPC 路由器当前所在存储池:
zstack-cli QueryVolume vmInstanceUuid=$VPC_ROUTER_UUID type=Root fields=uuid,installPath
- 预期结果:拿到当前根盘 UUID 与安装路径。
- 执行迁移:
zstack-cli PrimaryStorageMigrateVm vmInstanceUuid=$VPC_ROUTER_UUID dstPrimaryStorageUuid=$DEST_PRIMARY_STORAGE_UUID systemTags="ceph::rootPoolName::$TARGET_POOL_NAME" withSnapshots=false
- 其中:
$VPC_ROUTER_UUID:VPC 路由器实例 UUID$DEST_PRIMARY_STORAGE_UUID:目标主存储 UUID$TARGET_POOL_NAME:目标副本存储池名称- 迁移期间命令可能需要等待较长时间,可在管理平台查看 VPC 路由器状态是否为“迁移中”。
- 预期结果:VPC 路由器根盘开始迁移到目标副本池。
- 迁移完成后再次查询:
zstack-cli QueryVolume vmInstanceUuid=$VPC_ROUTER_UUID type=Root fields=uuid,installPath
- 预期结果:根盘
installPath已指向新存储池。
- 确认业务无异常、云主机可正常访问。
- 预期结果:迁移后网络和业务恢复稳定。
- 开启全局高可用。
- 预期结果:平台恢复正常运行。
验证方法
- 检查
QueryVolume输出中的installPath已迁移到目标池。 - 检查管理平台中 VPC 路由器状态恢复正常。
- 检查云主机访问与业务网络正常。
风险与回滚
- 风险:VPC 路由器迁移过程中可能导致网络波动。
- 回滚:若迁移异常,应停止后续操作,保留数据库备份及现场信息,并联系技术支持评估恢复方案。
