Chrony有两个核心组件,分别是:chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

OS环境:

10.28.204.65 客户端

10.28.204.66 服务端

CentOS Linux release 7.4.1708 (Core)

情况说明:两台机器都是内网,将204.66作为NTP时间服务器,204.65到此机器上同步时间。

1.安装Chrony

系统默认已经安装,如未安装,请执行以下命令安装:

  1. $ yum install chrony -y

2.启动并加入开机自启动

  1. $ systemctl enable chronyd.service
  2. $ systemctl restart chronyd.service
  3. $ systemctl status chronyd.service

3.Firewalld设置

  1. $ firewall-cmd --add-service=ntp --permanent
  2. $ firewall-cmd --reload

因NTP使用123/UDP端口协议,所以允许NTP服务即可。

4.配置Chrony

以下是系统默认配置文件,我对此加以说明:

  1. $ cat /etc/chrony.conf
  2. # 使用pool.ntp.org项目中的公共服务器。以server开,理论上你想添加多少时间服务器都可以。
  3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  4. server 0.centos.pool.ntp.org iburst
  5. server 1.centos.pool.ntp.org iburst
  6. server 2.centos.pool.ntp.org iburst
  7. server 3.centos.pool.ntp.org iburst
  8. # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
  9. driftfile /var/lib/chrony/drift
  10. # chronyd根据需求减慢或加速时间调整,
  11. # 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
  12. # 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。
  13. # 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
  14. makestep 1.0 3
  15. # 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。
  16. rtcsync
  17. # Enable hardware timestamping on all interfaces that support it.
  18. # 通过使用hwtimestamp指令启用硬件时间戳
  19. #hwtimestamp eth0
  20. #hwtimestamp eth1
  21. #hwtimestamp *
  22. # Increase the minimum number of selectable sources required to adjust
  23. # the system clock.
  24. #minsources 2
  25. # 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
  26. #allow 192.168.0.0/16
  27. #deny 192.168/16
  28. # Serve time even if not synchronized to a time source.
  29. local stratum 10
  30. # 指定包含NTP验证密钥的文件。
  31. #keyfile /etc/chrony.keys
  32. # 指定日志文件的目录。
  33. logdir /var/log/chrony
  34. # Select which information is logged.
  35. #log measurements statistics tracking

5.设置时区

查看当前系统时区:

  1. $ timedatectl
  2. Local time: Fri 2018-2-29 13:31:04 CST
  3. Universal time: Fri 2018-2-29 05:31:04 UTC
  4. RTC time: Fri 2018-2-29 08:17:20
  5. Time zone: Asia/Shanghai (CST, +0800)
  6. NTP enabled: yes
  7. NTP synchronized: yes
  8. RTC in local TZ: no
  9. DST active: n/a
  10. 如果你当前的时区不正确,请按照以下操作设置。
  11. 查看所有可用的时区:
  12. $ timedatectl list-timezones
  13. 筛选式查看在亚洲S开的上海可用时区:
  14. $ timedatectl list-timezones | grep -E "Asia/S.*"
  15. Asia/Sakhalin
  16. Asia/Samarkand
  17. Asia/Seoul
  18. Asia/Shanghai
  19. Asia/Singapore
  20. Asia/Srednekolymsk
  21. 设置当前系统为Asia/Shanghai上海时区:
  22. $ timedatectl set-timezone Asia/Shanghai
  23. 设置完时区后,强制同步下系统时钟:
  24. $ chronyc -a makestep
  25. 200 OK

6.服务器集群之间的系统时间同步

在生产环境中,其网络都是内网结构,那么内网如何保证服务器之间的时间同步呢?其实这个问题很简单,只需要搭建一台内网时间服务器,然后让所有计算机都到服务端(10.28.204.66)去同步时间即可。

具体操作:在服务端注释以下内容:

  1. #server 0.centos.pool.ntp.org iburst
  2. #server 1.centos.pool.ntp.org iburst
  3. #server 2.centos.pool.ntp.org iburst
  4. #server 3.centos.pool.ntp.org iburst
  5. 并添加以下内容:(表示与本机同步时间)
  6. server 10.28.204.66 iburst
  7. 这样我们需求的一台内网时间服务器已经配置完毕。
  8. 同样在客户端注释掉其他server,并在客户端(10.28.204.65)添加以下:
  9. server 10.28.204.66 iburst

到此已经完成系统时间的同步。如有多台机器,操作也是如此。

7.常用命令

查看时间同步源:

  1. $ chronyc sources -v
  2. 查看时间同步源状态:
  3. $ chronyc sourcestats -v
  4. 设置硬件时间
  5. 硬件时间默认为UTC
  6. $ timedatectl set-local-rtc 1
  7. 启用NTP时间同步:
  8. $ timedatectl set-ntp yes
  9. 校准时间服务器:
  10. $ chronyc tracking

最后需要注意的是,配置完/etc/chrony.conf后,需重启chrony服务,否则可能会不生效。

centos 7 Chrony 集群同步时间的更多相关文章

  1. CentOS下关于集群同步/LB/HA 的尝试

    Zookepper 集群同步 下载解压 wget http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.8.tar.gz tar xvf zoo ...

  2. centos Chrony设置服务器集群同步时间

    Chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件在 /etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让时间始终 ...

  3. 详解:Linux Chrony 设置服务器集群同步时间

    导读: Chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件在 /etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让 ...

  4. 大数据学习路线:Hadoop集群同步技术分享

    今天给大家带来的技术分享是——Hadoop集群同步. 一.同步方式 选择一个机器,作为时间服务器(这里选择hadoop01),所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间. ...

  5. Kafka的基本概念与安装指南(单机+集群同步)

    最近在搞spark streaming,很自然的前端对接的就是kafka.不过在kafka的使用中还是遇到一些问题,比如mirrormaker莫名其妙的丢失数据[原因稍后再说],消费数据offset错 ...

  6. Kafka 跨集群同步方案(转)

    来自:http://tangzhaohui.net/524 Kafka 跨集群同步方案——Kafka内置的MirrorMaker工具 该方案解决Kafka跨集群同步.创建Kafka集群镜像等相关问题, ...

  7. Kafka跨集群同步工具——MirrorMaker

    MirrorMaker是为解决Kafka跨集群同步.创建镜像集群而存在的.下图展示了其工作原理.该工具消费源集群消息然后将数据又一次推送到目标集群. watermark/2/text/aHR0cDov ...

  8. shell脚本一键同步集群时间

    shell脚本一键同步集群时间 弋嘤捕大 椿澄辄 ψ壤 茇徜燕 ㄢ交涔沔 阚龇棚绍 テ趼蜱棣 灵打了个寒颤也没有去甩脱愣是拖着 喇吉辔 秋北酏崖 琮淄脸酷 茇呶剑 莲夤罱 陕遇骸淫  ...

  9. CentOS下redis集群安装

    环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点 1.下载并解压 cd /root wget http://download.redis.io/releases/ ...

随机推荐

  1. MVC实现多级联动

    前言 多级联动(省级联动)的效果,网上现成的都有很多,各种JS实现,Jquery实现等等,今天我们要讲的是在MVC里面,如何更方便.更轻量的实现省级联动呢? 实现效果如下: 具体实现 如图所示,在HT ...

  2. JAVA内存分配与回收策略

    对象的内存分配,大方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配.少数情况下也可能会直接分配在老年代中,分配规则并不是百分百固定 ...

  3. PE知识复习之PE的导出表

    PE知识复习之PE的导出表 一丶简介 在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成的吗. 答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就 ...

  4. 易被忽略的Python内置类型

    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...

  5. 对多字段进行去重 ( Linq 方式 )

    优质参考资料:http://www.cnblogs.com/A_ming/archive/2013/05/24/3097062.html

  6. tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 80

    1.INFO: Maximum number of threads (200) created for connector with address null and port 80 说明:最大线程数 ...

  7. win10下rdlc报表在vs(visual studio)中中文显示小方块的批量处理解决方法

    在网上找vs中rdlc报表显示中文时显示小方块的解决方案,无外就是修改文本框的字体属性.但是对于维护已有的rdlc报表时,有中文的地方(此时都显示了小方块)会很多,再一个一个设置实在太麻烦.所以自己花 ...

  8. Java开发笔记(二十八)布尔包装类型

    前面介绍了数值包装类型,因为不管是整数还是小数,它们的运算操作都是类似的,所以只要学会了Integer的用法,其它数值包装类型即可一并掌握.但是对于布尔类型boolean来说,该类型定义的是“true ...

  9. 多线程(2)Thread

    我们先从最基础的Thread说起. 创建并启动线程 创建并启动一个线程,如下代码: namespace ConsoleApplication17 { class Program { static vo ...

  10. DevOps让研发人员越来越失望?比如工作量与报酬

    作为一名工程师,您在开发软件时已经有足够的责任.在您的工作日活动中添加更多任务(比如与DevOps相关的任务)可能听起来不太吸引人.使用DevOps,您不仅负责生成工作软件,而且现在还需要自动化软件的 ...