应急预案:客户时钟源异常时保证云内机器时间同步正常的方法

1. 概述

本文主要介绍在专有云V3环境中,客户时钟源异常时,如何保证云内机器时间正常使用。

1.1. 适用范围

  • 专有云V3,基础服务
    说明:适用于专有云企业版和敏捷版。

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L2(二线技术支持工程师)
  • 临时或固化方案:临时
  • 操作复杂度:中
  • 预估执行时长:40分钟
  • 业务影响:否
  • 风险等级:中
    说明:通过本方案使云内物理机时间同步恢复正常,无风险。

2. 问题描述

当客户时钟源异常,或者未部署客户时钟源((一般为北斗、GPS、铷钟时钟源)的情况下,OPS1、OPS2服务器无法与客户时钟源同步,导致云内所有物理机与OPS1、OPS2服务器出现时间不同步现象,进而导致对时间敏感的产品业务出现异常。

3. 解决方案

3.1. 环境检查

分别登录OPS1、OPS2服务器和云内物理机,执行以下命令,确认都出现时间不同步现象。

chronyc -n sources

系统显示类似如下。

3.2. 实施步骤

主机房OPS1设置为自主守时

  1. 登录OPS1服务器,备份chrony.conf配置文件。
    cp /etc/chrony.conf /etc/chrony.conf.bak
  2. 修改chrony.conf配置文件,注释/etc/chrony.conf配置文件的server字段,将OPS1服务器的时间同步改成自主守时,不与客户时钟源同步,然后保存并退出编辑器。
    vi /etc/chrony.conf
    系统显示类似如下。
  3. 执行以下命令,重启主机房OPS1服务器的chronyd服务。
    systemctl restart chronyd.service
  4. 执行以下命令,查看时间同步情况,确认已无时钟源。
    chronyc -n sources

修改OPS2的时钟源

  1. 登录OPS2服务器,备份/etc/chrony.conf配置文件。
    cp /etc/chrony.conf /etc/chrony.conf.bak
  2. 修改/etc/chrony.conf配置文件的server为主机房OPS1服务器的bond0真实地址,然后保存并退出编辑器。
    vi /etc/chrony.conf
    系统显示类似如下。
  3. 执行以下命令,重启OPS2服务器的chronyd服务。
    systemctl restart chronyd.service
  4. 执行以下命令,查看时间同步情况,保证正常同步主机房OPS1的时间。
    chronyc -n sources
    系统显示类似如下。
  5. 等待5分钟之后,登录云内其他机器,执行以下命令,查看云内其它机器的同步情况,确认恢复正常。
    chronyc -n sources
    系统显示类似如下。
  6. 如果现场为双机房环境,则需要在备机房的OPS1和OPS2服务器上继续本章节的第1~5步。

3.3. 结果验证

登录云内几台物理机,执行以下命令,确认时间同步正常。

chronyc -n sources

系统显示类似如下。

4. 回滚方案

恢复主机房OPS1、OPS2服务器,备机房OPS1、OPS2服务器备份的chorny.conf配置文件,并重启chronyd服务。