“Yeah It’s on. ”
时间同步服务
两种时间同步服务
- ntpd服务
- chrony服务
适用场景
| 特性 | ntpd | chrony |
|---|---|---|
| 适用环境 | 长期运行的物理服务器 | 虚拟机、嵌入式设备或网络不稳定环境 |
| 启动时间 | 时间同步较慢 | 时间同步较快 |
| 精度需求 | 高精度场景 | 常规使用场景 |
| 断网适用性 | 较差,断网后影响明显 | 能在断网后持续校准时间 |
实验搭建高可用chrony时间同步服务器
实验环境
| 操作系统 | 主机名 | IP |
|---|---|---|
| centos7 | mysql2 | 192.168.13.133 |
| centos7 | mysql3 | 192.168.13.134 |
1、安装应用服务
1
2
3
4
5
6
#安装chrony
yum install -y chrony
#安装Keepalived
yum install -y keepalived
2、配置 Chrony 时间服务
Server 1(192.168.13.133)
1
2
3
4
5
6
7
8
9
10
11
12
13
#vi /etc/chrony/chrony.conf
# 配置上游时间源
server ntp.aliyun.com iburst
# 允许内网访问
allow 192.168.13.0/24
# 本地时间优先级
local stratum 10
# 日志记录
logdir /var/log/chrony
ps:iburst用于在客户端第一次尝试与 NTP 服务器同步时,快速发送一组请求包(默认是 4 个包),以加速初始时间同步过程。
Server 2 (192.168.13.134)
配置文件与 Server 1 相同,仅时间源可以略作调整。
3、配置Keepalived 高可用
创建一个检查chronyd 服务的脚本
Server 1(192.168.13.133)主
1
2
3
4
5
6
7
8
9
10
11
12
13
# vi /etc/keepalived/check_chrony.sh
#!/bin/bash
# 检查 chronyd 服务是否运行
if systemctl is-active chronyd > /dev/null 2>&1; then
exit 0 # 正常运行
else
exit 1 # 服务异常
fi
# chmod +x /etc/keepalived/check_chrony.sh
配置 Keepalived
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# vi /etc/keepalived/keepalived.conf
vrrp_script check_chrony {
script "/etc/keepalived/check_chrony.sh" # 指定检查脚本路径
interval 2 # 每 2 秒检查一次
weight -20 # 检查失败时降低优先级
}
vrrp_instance VI_1 {
state MASTER
interface eth0 # 替换为实际网卡名称
virtual_router_id 51
priority 100 # 主服务器优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 12345 # VRRP 认证密码
}
virtual_ipaddress {
192.168.0.100 # 虚拟 IP
}
track_script {
check_chrony # 引用健康检查脚本
}
}
Server 2(192.168.13.134)备
Server 2和Server 1的脚本一样,配置文件只需修改priority值
例如
1
priority 90
4、启动服务(主备)
1
2
3
4
5
systemctl enable chronyd
systemctl start chronyd
systemctl enable keepalived
systemctl start keepalived
5、客户端
1
2
3
4
5
#在客户端设置时间服务器为虚拟 IP
server 192.168.13.100 iburst
#检查时间同步
chronyc sources