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