跳到主要内容
版本:v3&v6

集群时间同步

对于集群环境,各个节点间可能会因为时间漂移等原因而时间不同步,导致集群异常。 因此有必要给集群内节点配置时间同步服务以自动对齐时间。如果节点已经配置好了时间同步服务,可以跳过此文档。

这里使用 chrony 作为时间同步工具。

对于在线的集群,可直接使用国内常用ntp服务器。对于离线集群,如果集群内有ntp服务基础设施,可直接替换ntp服务器列表。

对于没有ntp服务器的离线集群,这里将集群内的某个节点作为ntp服务器,其他节点对齐此节点的时间。

安装 chrony

# 对于 redhat系
yum -y install chrony

# 对于 debian系
apt-get install chrony

配置并启动

备份旧配置文件

conf=/etc/chrony.conf
# 如果发现 /etc/chrony.conf 不存在,可换成:
# conf=/etc/chrony/chrony.conf
cp $conf ${conf}.bk.$(date +'%s')

替换配置

对于在线环境,直接替换配置即可。如果需要使用其他ntp服务器,则自行修改。

#  修改服务器配置⽂件
cat > $conf <<_EOF
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server cn.pool.ntp.org iburst
server 210.72.145.44 iburst
server s1a.time.edu.cn iburst

driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony
_EOF

启动

# 启动chronyd
systemctl restart chronyd
systemctl enable chronyd

# 查看时间同步状态
timedatectl status
# 开启网络时间同步
timedatectl set-ntp true

# 确认ntp服务器状态
chronyc sources -v

离线环境的时间同步

没有可用的ntp服务器时,这里将集群内的某个节点配置为ntp服务器,其他节点的时间对齐此节点,由此对齐整个集群的时间。

作为ntp服务器的节点,使用如下配置:

cat > $conf <<_EOF
allow 0.0.0.0/0

driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony
_EOF

其他节点则追随此ntp服务器,例如这里的节点IP为 10.16.0.45。则使用此配置:

#  修改服务器配置⽂件
cat > $conf <<_EOF
server 10.16.0.45 iburst

driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony
_EOF