美文网首页
linux集群时间同步

linux集群时间同步

作者: cyclone_29 | 来源:发表于2018-07-03 20:20 被阅读0次

    设计目标一:
    master 局域网内的时间服务器,其他节点和master节点通信进行时间同步
    node1 只作为客户端,和master进行时间同步
    node2 只作为客户端,和master进行时间同步

    首先关闭各个节点的防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    

    1.master节点NTP服务器的搭建
    查看当前系统时间

    date
    

    说明:
    CST China Standard Time UTC+8:00 中国沿海时间(北京时间)

    世界协调时间(Universal Time Coordinated,UTC)

    GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可,如果是其他的时区,可以按照下面的命令修改为CST时间

        mv /etc/localtime /etc/localtime.bak
        ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    

    在master节点检查是否安装了ntp

    yum list installed | grep ntp
    

    如果没有安装,则使用以下命令进行安装

    yum install -y ntp
    

    更改配置

    vi /etc/ntp.conf
    

    配置的主要内容如下:

    driftfile /var/lib/ntp/drift
    restrict default nomodify notrap nopeer noquery
    restrict 127.0.0.1 
    restrict ::1
    #IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器 
    #来同步时间
    restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
    server cn.pool.ntp.org perfer
    #当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor
    

    配置完成之后,首先和互联网上的NTP服务器进行时间同步

        ntpdate cn.pool.ntp.org
    

    启动ntp服务,并设置为开机自启动

        systemctl start ntpd.service
        systemctl enable ntpd.service
    

    等过5-10分钟可以使用ntpstat命令查看master和互联网的时间服务器时间同步的状态
    2.在node1,node2节点按照上面的步骤转换为CST时间,由于只是作为客户端进行时间同步,所以只需要安装客户端库就可以了

    yum -y install ntpdate.x86_64
    

    与master节点进行时间同步

    ntpdate master
    

    可以设置定时任务每个小时和master进行时间的同步

    crontab -e
    * */1 * * * /usr/sbin/ntpdate master
    

    hwclcok -w命令说明:
    hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中 的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。根据不同参数设置,hwclock命令既可以将硬件时钟同步到系统时钟,也可以将系统时钟同步到硬件时钟。
    当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
    如果使用date命令修改了系统时间,并不会自动去修改硬件时钟,因此,当系统下次重启时,系统时钟还会从硬件时钟去取,date设置的时间就无效了。
    常用参数
    -r, --show 读取并打印硬件时钟(read hardware clock and print result )
    -s, --hctosys 将硬件时钟同步到系统时钟(set the system time from the hardware clock )
    -w, --systohc 将系统时钟同步到硬件时钟(set the hardware clock to the current system time )

    设计目标二 cdh集群时钟同步:
    cdh主机运行状况测试,用于检查主机的系统时钟是否显示与其 NTP 服务器不同步。该测试使用 'ntpdc -np' (如果运行的是 ntpd)或 'chronyc sources' (如果运行的是 chronyd)命令检查主机是否与 NTP 对等端同步以及主机时钟与该对等端的偏差绝对值是否未过大。如果该命令失败、NTP 未与服务器同步,或主机的 NTP 后台程序未运行或无法联系,该测试将返回运行状况“不良”。
    如果未在主机上使用 NTP,则使用以下所示的配置选项对主机禁用该检查。Cloudera 建议使用 NTP 使 Hadoop 群集实现时间同步.所以按照推荐在各个节点上安装NTP,所有的节点作为时间服务器。

    主节点的配置和上面的情况一样:

    driftfile /var/lib/ntp/drift
    restrict default nomodify notrap nopeer noquery
    restrict 127.0.0.1 
    restrict ::1
    #IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器 
    #来同步时间
    restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
    server cn.pool.ntp.org perfer
    #当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor  
    

    其他节点的配置:

    driftfile /var/lib/ntp/drift
    restrict default nomodify notrap nopeer noquery
    restrict 127.0.0.1 
    restrict ::1
    #IP地址192.168.157.1-192.168.157.254,默认网关255.255.255.0的服务器都可以使用我们的NTP服务器 
    #来同步时间
    restrict 192.168.157.0 mask 255.255.255.0 nomodify notrap
    server *masterIP* perfer
    server cn.pool.ntp.org 
    #当外面的时间服务器不可用的时候,用本地时间为时间同步请求提供服务
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor 
    

    说明:
    首选的时间服务器是主机点,局域网时间同步快,如果主机点连接不上就和互联网的时间服务器进行时间同步
    各个配置完成之后,都先和互联网的时间服务器进行时间同步,然后启动NTP服务,设置为自启动

    相关文章

      网友评论

          本文标题:linux集群时间同步

          本文链接:https://www.haomeiwen.com/subject/ftijuftx.html