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

导读Chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件在 /etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让时间始终保持同步。相对于NTP时间同步软件,占据很大优势。其用法也很简单。

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

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

$ yum install chrony -y

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

$ systemctl enable chronyd.service
$ systemctl restart chronyd.service
$ systemctl status chronyd.service

3.Firewalld设置

$ firewall-cmd --add-service=ntp --permanent
$ firewall-cmd --reload

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

4.配置Chrony

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

$ cat /etc/chrony.conf

# 使用pool.ntp.org项目中的公共服务器。以server开,理论上你想添加多少时间服务器都可以。
# 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

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

# chronyd根据需求减慢或加速时间调整,
# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
# 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。
# 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
makestep 1.0 3

# 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。
rtcsync

# Enable hardware timestamping on all interfaces that support it.
# 通过使用hwtimestamp指令启用硬件时间戳
#hwtimestamp eth0
#hwtimestamp eth1
#hwtimestamp *

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

# 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
#allow 192.168.0.0/16
#deny 192.168/16

# Serve time even if not synchronized to a time source.
local stratum 10

# 指定包含NTP验证密钥的文件。
#keyfile /etc/chrony.keys

# 指定日志文件的目录。
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

5.设置时区

查看当前系统时区:

$ timedatectl
      Local time: Fri 2018-2-29 13:31:04 CST
  Universal time: Fri 2018-2-29 05:31:04 UTC
        RTC time: Fri 2018-2-29 08:17:20
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

如果你当前的时区不正确,请按照以下操作设置。

查看所有可用的时区:

$ timedatectl list-timezones

筛选式查看在亚洲S开的上海可用时区:

$ timedatectl list-timezones |  grep  -E "Asia/S.*"

Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk

设置当前系统为Asia/Shanghai上海时区:

$ timedatectl set-timezone Asia/Shanghai

设置完时区后,强制同步下系统时钟:

$ chronyc -a makestep
200 OK

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

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

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

#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

并添加以下内容:(表示与本机同步时间)

server 10.28.204.66 iburst

这样我们需求的一台内网时间服务器已经配置完毕。

同样在客户端注释掉其他server,并在客户端(10.28.204.65)添加以下:

server 10.28.204.66 iburst

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

7.常用命令

查看时间同步源:

$ chronyc sources -v

查看时间同步源状态:

$ chronyc sourcestats -v

设置硬件时间

硬件时间默认为UTC:

$ timedatectl set-local-rtc 1

启用NTP时间同步:

$ timedatectl set-ntp yes

校准时间服务器:

$ chronyc tracking

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

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux设备驱动开发是一个相对复杂的过程,需要开发人员掌握操作系统理论知识以及底层编程技术。开发Linux设备驱动需要遵循一定的规范,如采用统一的设备文件接口和驱动模型等。 最新的Linux 4.0内核对设备驱动开发做出了许多改进和完善。例如,内核提供了一套完整的设备模型框架,支持不同种类的设备和驱动程序,为驱动程序的开发提供了强大的支撑力。此外,内核还提供了许多通用的接口,如字符设备接口、块设备接口和网络接口等,方便开发人员进行设备的编程。 在Linux设备驱动开发中,驱动程序是核心部分。驱动程序可分为字符设备驱动、块设备驱动、网络设备驱动和USB设备驱动等不同类型。不同类型的驱动程序有着不同的运行机制和编程模式。作为开发人员,需要根据实际应用场景选择相应的驱动类型并进行开发。 此外,在开发Linux设备驱动时,需要注意一些问题。如调试技巧、安全问题、性能优化等。在进行驱动程序开发的同时,应当通过逐步加强对Linux内核的认识,提高自身的综合能力和编程素质。 综上所述,Linux设备驱动开发是一个相对复杂的过程,需要开发人员具备扎实的理论基础和编程技术,掌握各种设备驱动模型和接口,同时要不断深入内核,提高自身的综合能力和开发水平。 ### 回答2: 随着互联网的快速发展,Linux系统在嵌入式领域、智能设备、服务器等方面得到了广泛的应用。而在这些应用场景中,设备驱动是Linux系统中至关重要的一个组成部分,设备驱动的开发难度也是相当大的。 随着Linux内核的不断更新,设备驱动的开发也在不断地得到改进和完善。最新的Linux 4.0内核为设备驱动开发带来了很多新的特性和改进。 在Linux 4.0内核中,设备驱动的开发已经不再是需要手动编写大量代码的繁琐工作了。新的特性如内核自带的驱动框架、自动化的内存管理、图形化的用户空间接口等,都大大简化了设备驱动的开发难度。 此外,Linux 4.0内核还增强了对硬件设备的支持,包括新的USB 3.1规范、Type-C接口、Intel Skylake等新型硬件设备。 总之,Linux设备驱动开发是一项很复杂的任务,需要掌握大量的专业知识和技能。但是,随着Linux内核的不断更新和完善,设备驱动的开发也变得更加容易和快速了。我们只需要了解最新版本的Linux内核所提供的特性和工具,就能够轻松地开发高效、可靠的设备驱动。 ### 回答3: Linux设备驱动开发详解是一本基于最新的Linux 4.0内核的书籍,主要介绍了Linux设备驱动开发的相关知识和技术。 在Linux系统中,设备驱动是让硬件与操作系统进行交互的重要组成部分。本书介绍了Linux设备驱动的编写和调试方法,深入探讨了驱动开发中的各个环节和技术,包括硬件接口、设备结构体、内存映射、中断处理、定时器、信号量、进程管理等。此外,该书还详细说明了字符设备、块设备、网络设备和USB驱动的编写方法及技巧,让读者能够全面深入地了解设备驱动的开发过程。 Linux设备驱动开发详解利用大量实例和案例进行讲解,在保证理论知识的基础上,加深了读者对各种情况下的设备驱动开发实践的理解,确保读者能够迅速上手开发和调试自己的设备驱动程序。 总之,此书深度剖析了Linux设备驱动开发的方方面面,可以为学习、实践Linux设备驱动开发的读者提供全面、深入的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值