Cento7 ntp客户端提示unsynchronised问题

背景:集群里17是ntp的服务端,18、19、20、21、22是ntp的客户端。详见《Centos7.5下HDP集群搭建(一)》里有说明。

问题:19、20、21、22这4台设备的时间都是从17同步来的,只有18不是从17同步、而是本地时间。

19-22设备提示如下:

[root@dsj3 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*dsj1            202.112.29.82    3 u  585 1024  377    1.259    1.392   3.329
 LOCAL(0)        .LOCL.          10 l  23h   64    0    0.000    0.000   0.000

注意星号位置,代表所同步的ntp服务端IP

18设备提示如下:

[root@dsj2 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
dsj1            202.112.29.82    3 u  585 1024  377    1.259    1.392   3.329
 *LOCAL(0)        .LOCL.          10 l  23h   64    0    0.000    0.000   0.000

定位过程:

1.查询日志:/var/log/messages 查看是否有ntp失败或者fail提示。结果没有

2.查询ntp状态:service ntpd status,如下提示,依然没有fail项:

[root@dsj2 etc]# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-08-02 17:37:53 CST; 15s ago
  Process: 6766 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 6767 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─6767 /usr/sbin/ntpd -u ntp:ntp -g

Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listen and drop on 1 v6wildcard :: UDP 123
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listen normally on 2 lo 127.0.0.1 UDP 123
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listen normally on 3 eth0 172.16.172.18 UDP 123
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listen normally on 4 lo ::1 UDP 123
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listen normally on 5 eth0 fe80::de59:313d:25d6:2f40 UDP 123
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: Listening on routing socket on fd #22 for interface updates
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: 0.0.0.0 c016 06 restart
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Aug 02 17:37:53 dsj2.zkhy.com ntpd[6767]: 0.0.0.0 c011 01 freq_not_set
Aug 02 17:37:55 dsj2.zkhy.com ntpd[6767]: 0.0.0.0 c514 04 freq_mode

 

3.查询 timedatectl:显示同步功能都是开启的

[root@dsj2~]# timedatectl
      Local time: Thu 2018-08-02 18:06:34 CST
  Universal time: Thu 2018-08-02 10:06:34 UTC
        RTC time: Thu 2018-08-02 10:06:36
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@dsj1 ~]# 

4.尝试与17的网络数据通信 ntpdate -u 172.16.172.17

 

5.查询ntpstat:显示是同步的本地服务。与其他正常设备对比发现不理解stratum后面数字的含义。

[root@dsj2 log]#  ntpstat
synchronised to local server  at stratum 11
   time correct to within 127 ms
   polling server every 64 s

正常设备:

[root@dsj2 log]#  ntpstat
synchronised to NTP server (172.16.172.17) at stratum 4 
   time correct to within 127 ms
   polling server every 64 s

 

5.查询stratum的含义:

层次(strata)

层的概念

这些问题主要涉及到NTP的层(stratum)的概念,顶层是1,值为0时表示层数不明,层的值是累加的,比如NTP授时方向是A-〉B-〉C,假设A的stratum值是3,那么B从A获取到时间,B的stratum置为4,C从B获取到时间,C的值被置为5。一般只有整个NTP系统最顶层的服务器stratum才设为1。

NTP同步的方向是从stratum值较小的节点向较大的节点传播,如果某个NTP客户端接收到stratum比自己还要大,那么NTP客户端认为自己的时间比接受到的时间更为精确,不会进行时间的更新。

stratum根据上层server的层次而设定(+1)。

对于提供network time service provider的主机来说,stratum的设定要尽可能准确。

而作为局域网的time service provider,通常将stratum设置为10 (Stratum 10 is conventional for unsynchronized local clocks; it is high enough that nobody is likely to mistake it for a desirable clock to synchronize with.),如下:

server  127.127.1.0     # local clock
fudge   127.127.1.0     stratum 10
#stratum设置为其它值也是可以的,其范围为0~15

6.猜想是否是17到straum的时间较长超过11,所以本地的优先级反而高于17,所以将本地 statum尝试修改为最大值15。

重启服务后,发现问题貌似解决了。

这是今天这个问题的定位过程,后续若有问题,会再次更新。

 

你可能感兴趣的:(Cento7 ntp客户端提示unsynchronised问题)