ntp时钟偏差问题解决

CDH报错,时钟偏差:主机的NTP服务未同步到任何远程服务器。

去对应的服务器上查看情况,确实是无法同步时间。使用命令

[root@100 ~] ntpstat

unsynchronised

polling server every 8 s

重启ntp服务

[root@100 ~] systemctl restart ntpd.service

根据ntp重启效果来看,作者这儿等了1个小时,ntp同步时间服务仍然没有起起来。使用ntpstat查看结果,还是unsynchronised。这时,停止了现在正在运行的ntp服务,使用直接同步方式。

[root@100 ~] systemctl stop ntpd.service

[root@100 ~] datetime 要去同步的服务器ip(又报错了)

28 Jan 13:33:18 ntpdate[123456] : no server suitable for synchronization found

没办法,只有去详查连接信息。

[root@100 ~] ntpdate -d ip地址

28 Dec 15:22:06 ntpdate[4434]: ntpdate

28 Dec 15:22:06 ntpdate[4434]: ntpdate 4.2.6p5@1.2349-o Wed Oct 9 19:08:07 UTC 2013 (1)

Looking for host weblbserver-1 and service ntp

host found : 192.168.0.7

transmit(192.168.0.7)

receive(192.168.0.7)

transmit(192.168.0.7)

receive(192.168.0.7)

transmit(192.168.0.7)

receive(192.168.0.7)

transmit(192.168.0.7)

receive(192.168.0.7)

192.168.0.7: Server dropped: strata too high

server 192.168.0.7, port 123

stratum 16, precision -18, leap 11, trust 000

refid [192.168.0.7], delay 0.02667, dispersion 0.00003

transmitted 4, in filter 4

reference time: 00000000.00000000 Mon, Jan 1 1900 0:00:00.000

originate timestamp: d84a9ea5.06da4607 Sun, Dec 28 2014 15:22:13.026

transmit timestamp: d84a9ea5.07d57eae Sun, Dec 28 2014 15:22:13.030

filter delay: 0.02667 0.02675 0.02678 0.02696

0.00000 0.00000 0.00000 0.00000

filter offset: -0.00457 -0.00453 -0.00467 -0.00468

0.000000 0.000000 0.000000 0.000000

delay 0.02667, dispersion 0.00003

offset -0.00457428 Dec 15:22:13 ntpdate[4434]: no server suitable for synchronization found

参数-d:开启debug模式,它会将执行ntp时间同步过程的信息打印出来。

如上参数,报错strata too high,可以看到有错误信息“stratum 16”。stratum是ntp服务器层级,正常情况下stratum的值为“0~15”。而此处,stratum 16是因为NTP server还没有和它的上层NTP server同步上。

因为本服务器的NTP server还没有和它的上层NTP server同步上,给出另一个定义,让NTP server和其自身保持同步,即在/etc/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

在/etc/ntp.conf中编写:

server 127.127.1.0

fudge 127.127.1.0 stratum 8

在重启ntp服务。

注:

ntp serve重启过程中,ntp server自身或与其ntp server的同步的需要一个时间段,在这个时间之内的客户端运行ntpstat命令时仍会产生no server suitable for synchronization found。

如何判断时间同步成功?

使用命令:ntpq -p查看

remote refid st t when poll reach delay offset jitter

============================================================================

dns1.synet.edu. 202.118.1.46 2 u 915 1024 1 43.464 -134.79 0.004

golem.canonical 192.93.2.20 2 u 914 1024 1 433.083 -198.90 0.004

参数解析:

st:stratum

when:上次同步时间到现在的距离,单位“秒”。

poll:同步周期,单位“秒”。

reach:八进制数值,正常值有“0,1,3,7,17,37,77,177,377”,对应二进制值有“0,1,11,111,1111,11111,111111,1111111,11111111”。

delay:网络延迟时间,单位“毫秒”。

offset:与上层NTP服务器的时间差,单位“毫秒”。

ntp服务启动后,reach就以poll值为周期与ntp server通信。如果成功,reach就左移一位,右边补1,如果失败,则右补0,所以如果reach不是上面给的值,就说明通信过程中出错了。当reach达到17时,对应1111,即四次通信都成功了,这时,才开始同步时间。

也就是说,如果NTP server重启,那么要等4*poll秒之后才会开始同步时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值