Step4—时间同步(Chrony)
注意事项
本文基于 Ubuntu 22.04 做的适配,其他版本自行适配,使用时请留意版本兼容性。如遇疑难可通过 VX 或 QQ 群与作者交流。
# 1. 为什么要做时间同步?
- 保证各节点日志时间一致,方便排查分析
- 防止调度与数据库事务异常
- 避免安全协议(如 Kerberos)因时间漂移而失效
Ubuntu 22.04 默认推荐 Chrony(取代 ntpd),同步快,资源占用低,对云主机/虚拟化友好。
# 2. 推荐集群时间同步架构
角色 | IP | 说明 |
---|---|---|
Chrony 服务器(主) | 192.168.3.1 | 直接同步公网时间源 |
Chrony 客户端(从) | 192.168.3.2 | 仅同步 192.168.3.1 |
Chrony 客户端(从) | 192.168.3.3 | 仅同步 192.168.3.1 |
- 推荐1 台主节点连公网,其他所有节点仅同步主节点,提升一致性。
# 3. 安装 Chrony(所有节点)
sudo apt update
sudo apt install -y chrony
1
2
2
警告
与 RedHat/CentOS 完全不同,请勿使用 yum
、dnf
、rpm
等命令,Ubuntu 必须用 apt
体系。
# 4. Chrony 服务器端配置(以 192.168.3.1 为例)
# 4.1 编辑配置文件
sudo vim /etc/chrony/chrony.conf
1
警告
配置文件路径与 RedHat 系严重不同!
Ubuntu 是 /etc/chrony/chrony.conf
,RedHat/CentOS 多为 /etc/chrony.conf
或 /etc/chrony/chronyd.conf
。
# 4.2 推荐配置内容
server ntp.ntsc.ac.cn iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
allow 192.168.3.0/24
local stratum 10
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
笔记
allow 192.168.3.0/24
必须加,客户端才能访问本机时间服务,当然写0.0.0.0/0 也行
# 4.3 重启服务
sudo systemctl restart chrony
sudo systemctl enable chrony
1
2
2
警告
Ubuntu 的服务名称为 chrony,不是 chronyd,启动/管理命令和 RedHat/CentOS 有区别。
# 4.4 验证主节点同步状态
chronyc tracking
1
正常输出应包含
Leap status : Normal
。验证同步源:
chronyc sources -v
1
# 5. Chrony 客户端配置(192.168.3.2/3.3等所有从节点)
# 5.1 编辑配置文件
sudo vim /etc/chrony/chrony.conf
1
警告
配置文件路径与 RedHat/CentOS 不一样,Ubuntu 必须是 /etc/chrony/chrony.conf
。
# 5.2 推荐配置内容
注释掉所有其他 server 或 pool,只保留如下内容:
server 192.168.3.1 iburst
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
1
2
3
2
3
# 5.3 重启服务
sudo systemctl restart chrony
sudo systemctl enable chrony
1
2
2
# 5.4 客户端验证同步状态
chronyc sources -v
1
- 输出中
^* 192.168.3.1
说明同步正常。
# 6. 常见问题与 Ubuntu 专属注意点
警告
- Ubuntu 的 chrony 服务名称为 chrony(不是 chronyd)
- 所有安装、重启、配置命令都用
apt
和systemctl ... chrony
- 配置文件路径为
/etc/chrony/chrony.conf
防火墙说明
如有内网防火墙,主节点需开放 UDP 123 端口,否则客户端无法同步。
笔记
如主节点网络异常导致公网 NTP 不通,客户端仍可同步主节点的本地时钟,保证集群内相对时间一致。
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16