阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

1次阅读
没有评论

共计 2940 个字符,预计需要花费 8 分钟才能阅读完成。

导读 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 服务,否则可能会不生效。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-09-20发表,共计2940字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中