Linux系统chrony设置服务器集群同步时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统chrony设置服务器集群同步时间相关的知识,希望对你有一定的参考价值。

1.演示环境

10.28.204.65 客户端
10.28.204.66 服务端
CentOS?Linux?release 7.4.1708 (Core)
情况说明:两台机器都是内网,将204.66作为NTP时间服务器,204.65到此机器上同步时间。

2.安装Chrony

系统默认已经安装,如未安装,请执行以下命令安装:(两台都安装)
$ yum install chrony -y

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

$ systemctl enable chronyd.service (开机启动设置)
$ systemctl restart chronyd.service (重启启动)
$ systemctl status chronyd.service (启动状态)

4.Firewalld设置

$ firewall-cmd --add-service=ntp --permanent
$ firewall-cmd --reload
因NTP使用123/UDP端口协议,所以允许NTP服务即可。

5.配置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
设置时区
查看当前系统时区:
$ 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

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

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

8.常用命令

查看时间同步源:
$ chronyc sources -v
查看时间同步源状态:
$ chronyc sourcestats -v
设置硬件时间
硬件时间默认为UTC:
$ timedatectl set-local-rtc 1
启用NTP时间同步:
$ timedatectl set-ntp yes
校准时间服务器:
$ chronyc tracking
最后需要注意的是,配置完/etc/chrony.conf后,需重启chrony服务,否则可能会不生效。

以上是关于Linux系统chrony设置服务器集群同步时间的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统chrony设置服务器集群同步时间

Linux系统下的Chrony时间同步

centos 7 Chrony 集群同步时间

ntp 服务导致kudu集群不可用

Linux时间同步服务chrony

Linux 时间同步 ntpd&chrony 内网