高可用测试过程中遇到的两个问题
-
observer的 自启动脚本 /usr/local/bin/auto_start_ob.sh,脚本中判断OS时间与NTP时钟的误差的值,存在负数,负数永远小于50ms(脚本中设定的OS时间与NTP时钟的最大差值);
-
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