麒麟V10 SP2操作系统 服务器重启后 observer无法自启动的问题

高可用测试过程中遇到的两个问题


  1. observer的 自启动脚本 /usr/local/bin/auto_start_ob.sh,脚本中判断OS时间与NTP时钟的误差的值,存在负数,负数永远小于50ms(脚本中设定的OS时间与NTP时钟的最大差值);

  2. observer的 自启动脚本 /usr/local/bin/auto_start_ob.sh,脚本中的命令systemctl restart ntpdate执行报错,当os重启后的时间比ntp快50ms以上时,无法快速同步ntp时钟,造成observer无法自启动。报错如下:

Job for ntpdate.service failed because the control process exited with error code.
See "systemctl status ntpdate.service" and "journalctl -xe" for details.

解决方法


OS时间与NTP时钟的误差存在负数

1. 登录到配置免密登录的服务器上(10.192.168.1)

2. 备份auto_start_ob.sh脚本
for i in $(seq 1 80); do remote_ip=10.192.168.$i ; echo $remote_ip ; ssh $remote_ip cp /usr/local/bin/auto_start_ob.sh /usr/local/bin/auto_start_ob.sh.bak ; done

3.编辑模式打开文件
vi /usr/local/bin/auto_start_ob.sh

4.更新文件内容
在行if [ $(echo ${clock_offset} ${EXPECT_OFFSET} | awk '{if($1<=$2) {print 1} else {print 0}}') == 1 ]; then中的clock_offset后添加#-,之后关闭文件
修改后是
if [ $(echo ${clock_offset#-} ${EXPECT_OFFSET} | awk '{if($1<=$2) {print 1} else {print 0}}') == 1 ]; then

5.将更新后的文件拷贝到其他服务器上
for i in $(seq 1 80); do remote_ip=10.192.168.$i ; echo $remote_ip ; scp /usr/local/bin/auto_start_ob.sh root@$remote_ip:/usr/local/bin/ ; done

systemctl restart ntpdate的报错

1. 注释/etc/ntp/step-tickers中的内容
#0.kylin.pool.ntp.org

2. 批量修改的脚本如下:
登录到配置免密登录的服务器上(10.192.168.1),批量脚本如下:
for i in $(seq 1 80); do remote_ip=10.192.168.$i ; echo $remote_ip ; ssh $remote_ip sed -i "s/0.kylin.pool.ntp.org/#0.kylin.pool.ntp.org/g" /etc/ntp/step-tickers; done