适用场景
- 产品:
ZCF - 组件:
ZCE-X、Cloud - ZCE-X 版本:
5.2.x - Cloud 版本:
4.8.x - 操作系统/软件源环境:
76C - 触发条件:需要把环境时区从
<原时区>切换到<目标时区>。
问题现象
- 用户要求把时区从
+8:00调整为+7:00。 - 时间跳变较大,必须停业务执行。
- 变更不只是改系统时间,还要协调云平台与分布式存储侧的服务停启。
判断方法
- 变更前先确认业务可停机。
- 时区调整后通过
timedatectl与date验证。 - 存储恢复后检查
ceph -s,平台恢复后检查云主机和业务状态。
原因说明
此次变更的核心风险来自“时间跳变较大”,因此不能直接在线修改。必须先把云主机、平台高可用和存储恢复链路切到安全状态,再统一修改物理机时区,最后分阶段恢复存储与管理面服务。
解决方案
- 执行前准备
- 风险等级:中风险
- 必须停业务执行。
- 先备份数据库。
- 先关闭云平台高可用并关闭全部云主机。
- 停业务并切换平台保护状态
- 备份数据库。
- 预期结果:具备回退基础。
- 登录云平台:
- 关闭云平台高可用
- 关闭全部云主机
- 让物理机进入维护模式
- 预期结果:管理面和业务面进入可变更状态。
- 登录分布式存储:
- 禁止数据恢复
- 预期结果:避免时间调整过程中自动触发恢复动作。
- 停止存储关键服务
- 停止所有节点的
xmsd:
systemctl stop xmsd
- 预期结果:存储管理服务停止。
- 停止所有
MON节点的ceph-mon.target:
systemctl stop ceph-mon.target
- 预期结果:监控服务停止。
- 停止所有存储节点的
ceph-osd.target:
systemctl stop ceph-osd.target
- 预期结果:存储数据面服务停止。
- 调整时区到
<目标时区> - 在所有物理机上执行:
timedatectl set-timezone <目标时区>
- 预期结果:时区切换到雅加达。
- 检查:
timedatectl
date
- 预期结果:时区和系统时间显示正确。
- 恢复存储并升级前端包
- 启动
xmsd:
systemctl start xmsd
- 预期结果:存储管理服务恢复运行。
- 检查存储状态:
ceph -s
- 预期结果:存储恢复健康。
- 在每个节点升级前端包:
rpm -Uvh ZCE-XSCALEROS_5.2.115.6-1.g46f9e56.el7.centos.noarch.rpm --force --nodeps
- 预期结果:前端包升级完成。
- 登录分布式存储,重新开启数据恢复。
- 预期结果:存储恢复链路重新开启。
- 恢复管理节点与业务
- 重启管理节点服务和数据库:
zsha2 stop-node
systemctl restart mariadb
zsha2 start-node
- 预期结果:管理面恢复正常。
- 登录云平台:
- 启用物理机
- 启动云主机
- 检查业务
- 预期结果:业务恢复正常。
验证方法
- 检查所有物理机时区已切换到
<目标时区>。 - 检查
ceph -s恢复正常。 - 检查管理节点和数据库服务恢复正常。
- 检查云主机启动与业务访问正常。
风险与注意事项
- 风险:这是停业务变更,时间跳变本身会直接影响业务连续性。
- 风险:如果未按顺序停存储服务并禁止数据恢复,可能引发额外异常。
- 风险等级:中。
回退方法
- 重新停业务。
- 再次停止
xmsd、ceph-mon.target、ceph-osd.target。 - 把所有物理机(除管理节点)时区改回:
timedatectl set-timezone <原时区>
timedatectl
date
- 启动
xmsd,检查:
ceph -s
- 重启管理节点服务和数据库:
zsha2 stop-node
systemctl restart mariadb
zsha2 start-node
- 启用物理机,启动云主机,检查业务恢复情况。
- 预期结果:平台退回到原时区状态。
