Chrony时间同步服务器

2023-11-06

一、时间同步基本概念

1.什么是时间同步

时间同步,就是将本地时间与互联网时间进行校对,为系统提供一个统一时间的过程。
由于本地时间的计时速率、运行环境不一致性;所有本地时钟即使在某一刻被校准了 ,一段时间后,这些本地时钟也会出现不一致。为了本地时钟再次达到相同的时间值,所以需要进行时间同步的操作

2.为什么需要时间同步

在运维工作的场景当中,存在着众多主机协同完成不同的任务,比如 LNMP 架构,它们可以分别部署在三台不同的主机上;那么这三台主机在工作时,由于分别位于不同的主机之上,它们需要根据文件或者数据流所生成的时间,来决定响应给客户端的结果该如何进行展示;此时就需要统一网络中的主机时间一致。
但这个时间一致并不是说一定得是正确的,如果现在当前时间是下午3点,但是这三台主机的时间精确一致是昨天凌晨6点,这也没有什么问题。
但对于有些场景时间不正确也不行,比如https应用;客户端与服务端通讯时,如果客户端时间是准确的,而服务端时间来自昨天,或者来自未来的响应,则会提示存在风险,而不予接受。

3. 时间同步是如何完成

假设服务器启动起来后,发现时间慢了24小时,那么他如何将自己的时间调整正确呢

  • 如果是手表该如何校对时间呢?(波动表针,调整时间的正常逻辑)
  • 如果是date命令是如何校对时间呢?(直接跳跃时间,跳跃的过程中造成部分文件出现空白段)
  1. NTP时间服务(centos6)
    逻辑:让时间校对像手表一样波动的快一点,而不是像date命令直接跳跃过去:其他服务器一分钟60s,而ntp一分钟30s,来实现时间的校对;问题:为了赶上慢的24小时,可能需要消耗非常长的时间来进行校对
    2.Chrony时间服务
    逻辑:Chrony是NTP的替代品,能更精确、更快的同步时钟,传统ntp需要几小时,而chrony仅需要数秒种或数毫秒即可完成时间同步;调整时间的速度就像波动表针的速度一样快;

二、 Chrony时间服务

1 Chrony介绍

chrony 是基于 ntp 协议的实现时间同步服务,它既可以当做服务端,也可以充当客户端;

  1. chrony 是 NTP 的替代品,能更精确的时间和更快的速度同步时钟;
  2. chrony 占用系统资源少,只有被唤起时才占用少部分CPU,chrony兼容ntpdate;
  3. chrony 允许本地网络其他主机像本地某台主机进行时间同步;

2 为何需要Chrony

所有服务器直接同步公网上的时间不就可以了吗,为何需要自己搭建一台时间服务器呢?
如果每台服务器都去同步公网时间服务器,且服务器较多,会带来如下问题:

  1. 存在网络延迟
  2. 浪费带宽

解决方案:搭建内网时间服务器,来同步公网时间,然后所有内网服务器来与这台服务器进行时间同步

  1. 减小服务器之间的误差,提升同步速度
  2. 减少网络带宽损耗
    在这里插入图片描述

3. Chrony安装

[root@manager ~]# yum install chrony -y

主配置文件:/etc/chrony.conf
客户端程序:/usr/bin/chronyc
服务端程序:/usr/sbin/chronyd

4. Chrony服务端

[root@manager ~]# cat /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#使用同步的远程时钟源,理论上可以同步无限个
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

# Record the rate at which the system clock gains/losses time.
#根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,
#在系统重启后为系统做出最佳时间补偿调整
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
#如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
#启用实时时钟(RTC)的内核同步
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.

#增加调整所需的可选择源的最小数量
#minsources 2

# Allow NTP client access from local network.
# 允许指定网络的主机同步时间,不指定就是允许所有,默认不开启
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
# 默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,
所以会拒绝提供授时服务;# 开启此选项,则表示允许接受不精确时间,
继续为客户端提供授时服务
#local stratum 10

# Specify file containing keys for NTP authentication.
#指定包含 NTP 身份验证密钥的文件
#keyfile /etc/chrony.keys

# Specify directory for log files.
#指定日志文件
logdir /var/log/chrony

# Select which information is logged.
#选择日志文件要记录的信息
#log measurements statistics tracking

1.Chrony服务端配置,修改 /etc/chrony.conf 文件三处,设定外部时间服务器、允许内网同步此服务端、设置断网继续同步即可

[root@manager ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.aliyun.com iburst  #1 指定三台阿里云时间同步服务器
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst

# Allow NTP client access from local network.
allow 172.16.1.0/24    #2 允许172.16.1.0网段同步此服务器

# Serve time even if not synchronized to a time source.
local stratum 10   #3 断网继续同步开启

2.重启 Chrony 服务

root@manager ~]# systemctl enable chronyd #开机自启
[root@manager ~]# systemctl restart chronyd

5. Chrony客户端

1.客户端使用 ntpdate 或 chronyc 命令的方式进行手动同步

# ntpdate
[root@nfs ~]# yum install ntpdate -y
[root@nfs ~]# ntpdate 172.16.1.62

# chronyc
[root@nfs ~]# chronyc -a makestep 200 OK

这两种方式需要配合定时任务使用,比较鸡肋,不推荐使用。

2.客户端使用 chrony 守护进程方式进行时间自动化同步
在客户端同样需要安装chrony,假设现在nfs服务器要同步manager服务器的时间,manager服务端ip地址为172.16.1.62

[root@nfs ~]# yum install chrony -y

1.修改客户端配置文件,添加服务端ip

[root@nfs ~]# vim /etc/chrony.conf  # 只需要修改如下
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 172.16.1.62 iburst

2.重启客户端chrony

[root@nfs ~]# systemctl restart chronyd

3.查看时间同步是否正常

[root@nfs ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 172.16.1.62                   3   6   177    18  -1310us[-1840us] +/-   19ms
[root@nfs ~]# 


或者
[root@nfs ~]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 172.16.1.62                   3   6   377    29   -147us[ -868us] +/-   20ms
[root@nfs ~]# 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrony时间同步服务器 的相关文章

随机推荐

  • chrome浏览器被hao123劫持如何解决?

    那天上班 打开电脑点开chrome浏览器 首页出现的是我熟悉的谷歌搜索页面 可是很快右边又打开了一个页面 123 hao234 com 这个流氓网站就这个这么不请自来了 而且之后我用尽了网上各种办法都弄不走 各种无效方法 1 绑定自己的主页
  • 背包九讲--混合背包、分组背包、资源分配背包、背包方案总数

    混合背包 混合背包 问题描述 一个旅行者有一个最多能用V公斤的背包 现在有n件物品 它们的重量分别是W1 W2 Wn 它们的价值分别为C1 C2 Cn 有的物品只可以取一次 01背包 有的物品可以取无限次 完全背包 有的物品可以取的次数有一
  • hive基础(二) hive操作大全

    目录 注 只是为了以后忘了 好翻 做个总结 一 hive 操作 1 hive e 2 hive f 3 查看在hive中输入的所有历史命令 4 hive运行日志修改 二 hive参数配置 三 hive数据类型 基本数据类型 集合数据类型 1
  • PHP与MySQL程序设计 学习笔记 第八章 错误和异常处理

    error reporting函数确定报告的敏感级别 共有16个不同级别 这些级别的任何组合都是有效的 error reporting函数使用 字符表示逻辑操作符NOT error reporting E ALL E STRICT 希望报告
  • python两列表对应元素求和

    一种方法是循环 但是有简便方法 用numpy import numpy as np list1 1 2 3 4 list2 1 2 3 4 a array np array list1 b array np array list2 c ar
  • matlab安装好 启动总是闪退_win10系统启动matlab出现闪退的处理技巧

    电脑操作系统在使用的时候经常会被一些问题所困扰 例如很多用户都遇见过win10系统启动matlab出现闪退的问题 大部分用户如果第一次碰到win10系统启动matlab出现闪退的现象 因此大伙都会不知所措 怎么才可以完善的治理win10系统
  • 设计模式之状态模式(思想)

    设置模式之状态模式 上图学过网络的同学应该都比较清楚吧 这是一张TCP状态转换图 只要理解上图 那么对状态模式也就很容易理解啦 状态模式的意图 允许一个对象在其内部状态改变时改变它的行为 简单的说就是 一个人他的外表没有改变 但是他内在的心
  • batch-命令的学习

    batch命令的扩充变量语法 所谓扩充变量语法 是指对已有参数 环境变量或其他变量的引用 的再处理 扩展 对比与java语言 可以理解为 对传入参数的格式化 扩充变量只能针对于传入变量的自身属性 自身的引用 值 变量代表的文件位置信息 进行
  • 深入理解Flutter的GestureDetector组件

    引言 上一篇文章 深入理解Flutter的Listener组件 介绍了触控事件的监听原理 让我们对Flutter中触摸事件的传递过程有了进一步的认识 今天我们学习一下手势识别组件GestureDetector的原理 GestureDetec
  • 苏州大学邮箱注册JetBrain, 永远使用专业版

    今天发现 使用教育邮箱 可以免费使用JetBrain的专业版 作为苏大的学生 尤其是计算机学院的不要错过哦 注意 只是针对苏州大学的学生 毕业之后可以开通校友邮箱 相当于以后可以一直使用专业版 每年激活一次 1 开通邮箱 a 登陆网址 ht
  • PAT打卡--L1-016查验身份证(c++)

    原题链接 这道题其实也是一道简单题 我主要还是用其来学习C 通过这道题 了解到了c 中的字符和int之间的转换 首先贴上代码吧 include
  • spring data jpa 自定义接口实现

    没错 spring data jpa很优秀 但有一些东西 我们就想自己来 我除了想用你的 还想用我自己的 首先 我要spring data jpa的接口 为什么 因为很方便啊 public interface TaskDao extends
  • ORA-04088(ORA-04084): cannot change NEW values for this trigger type

    gt gt gt bug背景 gt gt gt bug来源一个定时任务的删除操作 这里需要删除原来数据 然后插入定时采集到的数据 因采集到的数据中没有id这个字段 所以插入这个过程需要借助oracle的触发器 来自动生成一个id 最终我写的
  • js(react)中使用百度地图

    0 需求 依次点击区 镇 小区 展示当前位置的数据列表 移动地图 movestart事件 隐藏详情 1 准备工作 1 1 引入百度地图并配置ak jspopularGL 百度地图API SDK 1 2 根据IP定位获取当前定位 import
  • 静态方法不能调用非静态方法的原因

    静态方法是属于类的 即静态方法是随着类的加载而加载的 在加载类时 程序就会为静态方法分配内存 而非静态方法是属于对象的 对象是在类加载之后创建的 也就是说静态方法先于对象存在 当你创建一个对象时 程序为其在堆中分配内存 一般是通过this指
  • 蓝桥杯 ADV-202 最长公共子序列

    算法提高 最长公共子序列 时间限制 1 0s 内存限制 256 0MB 问题描述 给定两个字符串 寻找这两个字串之间的最长公共子序列 输入格式 输入两行 分别包含一个字符串 仅含有小写字母 输出格式 最长公共子序列的长度 样例输入 abcd
  • 这恐怕是学习Frida最详细的笔记了

    转载自Sakura的博客 https eternalsakura13 com 2020 07 04 frida title Frida Android hook categories Android逆向 致谢 本篇文章学到的内容来自且完全来
  • video标签播放视频时错误403

    在HTML页面上添加
  • 【机器学习详解】SVM解二分类,多分类,及后验概率输出

    转载请注明出处 http blog csdn net luoshixian099 article details 51073885 CSDN 勿在浮沙筑高台 color Blue CSDN 21247 22312 28014 27801 3
  • Chrony时间同步服务器

    文章目录 一 时间同步基本概念 1 什么是时间同步 2 为什么需要时间同步 3 时间同步是如何完成 二 Chrony时间服务 1 Chrony介绍 2 为何需要Chrony 3 Chrony安装 4 Chrony服务端 5 Chrony客户