扩大
缩小

搭建时间服务器

注意: centos7环境推荐使用chroy来搭建时间服务器 ,请移步: https://my-study-linux-services.readthedocs.io/en/latest/%E6%9D%82%E9%A1%B9/%E6%97%B6%E9%97%B4%E6%9C%8D%E5%8A%A1%E5%99%A8-chrony.html

1.背景

我在搭建集群的时候,发现集群怎么都没法运行, 最终定位问题才发现时间不一致(哈哈,懵逼了好久)。 在集群环境中, 如果时间不一致,轻则可能集群无法提供服务,重则可能导致文件系统损坏,数据丢失。所以说集群内搭建时间服务器是绝对有必要的。

2.时间服务器分类

时间服务器没有一个绝对的分类, 但是我是认为可以分为一下两类的

  • 和互联网之间保持严格一致的
  • 只要集群内部的时间保持一致就可以的

3.时间服务器的搭建

在搭建之前, 我简单介绍下我的环境情况, 我的两个服务器都是redhat6的, 主机名分别为node1(192.168.168.201)和node2(192.168.168.202)。

3.1 安装时间服务器

[root@node1 ~]# yum install ntp

3.2 配置文件主要参数讲解

ntp的配置文件就是/etc/ntp.conf

核心的配置参数主要包括以下几个

restrict : 指定一些权限设置

server : 上级时间服务器

restrict具体语法如下:

restrict  IP地址  mask 子网掩码 参数
IP地址: 可以是IP地址也可以是default,default是指所有的IP
参数有4个枚举值 :
          ignore :关闭所有的 NTP 联机服务
          nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
          notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
          noquery:不提供客户端的时间查询

server具体语法如下:

server  IP地址或域名 [prefer]
如果加入prefer参数,表示这个server是优先的, 我们的时间服务器优先通过这个时间服务器进行校准。

driftfile 具体语法如下:

driftfile 文件名
文件名 : 需要完整路径,不能是链接文件,文件需要设置成ntpd进程可以写入
默认的使用/var/lib/ntp/drift 使用的权限是-rw-r--r--

3.3 配置一个和internet同步的时间的服务器

  3.3.1 在node1上编辑主配置文件

[root@node1 ~]# vim /etc/ntp.conf
#注释所有server行, 添加如下行
server ntp.sjtu.edu.cn
#注释所有restrict行,添加如下行
restrict default nomodify notrap

3.3.2 在node1上重启下时间服务器

[root@node1 ~]# service ntpd restart
[root@node1 ~]# date
Thu May  4 11:58:08 CST 2017

3.3.2 在node2上进行测试

[root@node2 ~]# date              #在node2上查看时间,发现比node1慢了有1分钟多Thu May  4 11:59:08 CST 2017
[root@node2 ~]# service ntpd stop  #关闭node2的ntpd服务
[root@node2 ~]# chkconfig ntpd off #关闭开机自启动
[root@node2 ~]# ntpq -p 192.168.168.201           #查询下node1主机的时间信息
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 sdns.sjtu.edu.c .INIT.          16 u    -   64    0    0.000    0.000   0.000
[root@node2 ~]# ntpdate 192.168.168.201 #可以使用ntpdate -d ip 获取详细信息
 4 May 11:57:30 ntpdate[10549]: adjust time server 192.168.168.201 offset 0.000360 sec

 

3.4配置一个局域网内部的时间服务器

3.4.1 在node1上编辑主配置文件

[root@node1 ~]# vim /etc/ntp.conf
#注释所有server行
#注释所有restrict行,添加如下行
restrict 192.168.168.0 mask 255.255.255.0 nomodify notrap

3.3.2 在node1上重启下时间服务器

[root@node1 ~]# service ntpd restart
[root@node1 ~]# date
Thu May  4 11:58:08 CST 2017

3.3.2 在node2上进行测试

[root@node2 ~]# service ntpd stop  #关闭node2的ntpd服务
[root@node2 ~]# chkconfig ntpd off #关闭开机自启动
[root@node2 ~]# ntpq -p 192.168.168.201           #查询下node1主机的时间信息
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 sdns.sjtu.edu.c .INIT.          16 u    -   64    0    0.000    0.000   0.000
[root@node2 ~]# ntpdate 192.168.168.201 #可以使用ntpdate -d ip 获取详细信息
 4 May 11:57:30 ntpdate[10549]: adjust time server 192.168.168.201 offset 0.000360 sec

 

3.5常见错误解析

3.5.2 no server suitable for synchronization found

原因:ntpd启动过程需要5分钟左右!(或者ntpd根本没有启动)

解决方案

耐心等待5分钟就可以了,我们也可以在ntp server上使用命令:

[root@node1 ~]# watch ntpq -p localhost

出现画面:


注意LOCAL的这个就是与自身同步的ntp server,而reach这个值,在启动ntp server服务后,就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。

如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。

3.5.3 Server dropped: strata too high”的错误,并且显示“stratum 16

解决方案:

[root@node1 ~]# vim /etc/ntp.conf
#编辑行
fudge server的stratum为0~15

  3.5.4 Server dropped: no data

从客户端执行ntpdate –d server_ip(debug模式)时有错误信息: Server dropped: no data.

出现这个问题的原因可能有2种情况:

3.5.4.1 ntp版本问题

检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误(版本差异).

解决方案:

[root@node1 ~]# ntpq -c version
#编辑行
找到trust关键词删除
3.5.4.2 防火墙问题

检查ntp server的防火墙,可能是server的防火墙屏蔽了upd 123端口。可以用下面命令来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题。解决方案:

[root@node1 ~]# service iptables stop #或者设置放行123端口即可。

5.国内常用的时间服务器地址列表

数据来自 : http://blog.sina.com.cn/s/blog_860353750102vnqk.html

ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)

s1a.time.edu.cn 北京邮电大学

s1b.time.edu.cn 清华大学

s1c.time.edu.cn 北京大学

s1d.time.edu.cn 东南大学

s1e.time.edu.cn 清华大学

s2a.time.edu.cn 清华大学

s2b.time.edu.cn 清华大学

s2c.time.edu.cn 北京邮电大学

s2d.time.edu.cn 西南地区网络中心

s2e.time.edu.cn 西北地区网络中心

s2f.time.edu.cn 东北地区网络中心

s2g.time.edu.cn 华东南地区网络中心

s2h.time.edu.cn 四川大学网络管理中心

s2j.time.edu.cn 大连理工大学网络中心

s2k.time.edu.cn CERNET桂林主节点

s2m.time.edu.cn 北京大学

--------------------------------------------------------------------------------------

210.72.145.44 (国家授时中心服务器IP地址)

133.100.11.8 日本 福冈大学

time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland

time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland

time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado

time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado

time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado

utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder

time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado

time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington

nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California

nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia

nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City

nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California

nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California

nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia

 

posted on 2017-05-02 19:15  LinuxPanda  阅读(2181)  评论(0编辑  收藏  举报

导航