• 搭建时间服务器


    注意: 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
  • 相关阅读:
    ansible用普通用户执行root权限的命令 + script模块
    screen 实用操作
    Kibana did not load properly
    1500元让我写一个api接口!没问题
    python实现四种出行路线规划(公交、步行、驾车、骑行)
    35行代码下载任意网页的图片
    Comparison of long-read sequencing technologies in the hybrid assembly of complex bacterial genomes
    A single-molecule long-read survey of the human transcriptome
    Long-read sequencing and de novo assembly of a Chinese genome 一个中国人基因组的长读测序和重新组装
    Combination of short-read, long-read, and optical mapping assemblies reveals large-scale tandem repeat arrays with population genetic implications
  • 原文地址:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_022_ntp.html
Copyright © 2020-2023  润新知