麒麟V10配置时间同步

1. Chrony简介

Chrony是一个开源自由的网络时间协议(NTP)客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,确保计算机保持精确的时间。Chrony也可以作为服务端软件为其他计算机提供时间同步服务。

Chrony由两个程序组成:

  • chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步
  • chronyc:用户界面程序,用于监控性能并进行多样化的配置

2. 时间同步相关概念

2.1 硬件时间

硬件时间,也被称为实时时钟(RTC),是指计算机主板上的一个独立于操作系统的设备,它在电源关闭甚至断电情况下也能保持运行。

相关命令:

1
2
3
4
5
6
7
8
# 查询硬件时间
hwclock --show

# 将系统时间设置为硬件时间
hwclock --systohc

# 将硬件时间设置为系统时间
hwclock --hctosys

2.2 时间标准

  • UTC:协调世界时,基于原子时钟的时间标准
  • Local time:本地时间,系统时间经过时区转换后的时间

2.3 时间同步目的

  1. 对外同步:保证本地时间和国际通用时间保持同步(通过NTP)
  2. 对内同步:保证系统时间和硬件时间同步(通过rtcsync)

3. 安装与配置

3.1 服务端配置

安装Chrony:

1
2
3
yum -y install chrony
systemctl enable chronyd
systemctl start chronyd

修改配置文件 /etc/chrony.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 记录时间补偿调整
driftfile /var/lib/chrony/drift

# 允许系统时钟在前三次更新中步进
makestep 1.0 3

# 启用RTC内核同步
rtcsync

# 允许所有客户端连接
allow all

# 本地时间作为标准时间授时
local stratum 10

配置说明:

  • local指令允许将本地时间作为标准时间授时给其他客户端
  • stratum 10表示距离真实时间源较远,防止机器本身的时间与真实时间混淆

3.2 客户端配置

修改配置文件 /etc/chrony.conf

1
server 10.0.0.1 iburst

重启服务:

1
systemctl restart chronyd

4. 常用命令与监控

4.1 查看同步状态

1
chronyc sources -v

状态标识说明:

标识 说明
* chronyd当前同步到的源
+ 可接受的信号源
- 被合并算法排除的可接受源
? 已失去连接性或数据包未通过测试
x 被认为是虚假行情的时钟
~ 时间似乎具有太多可变性的来源

4.2 时间同步状态检查

1
chronyc tracking

关键参数说明:

  • Reference ID:正在同步的NTP服务器地址
  • Stratum:系统在NTP层次中的级别
  • System time:系统时间相对于NTP服务器时间的差异
  • Last offset:上一次时间同步时的偏移量
  • Frequency:本地系统时钟的速度(ppm)

4.3 系统时间管理

1
2
3
4
5
# 查看时间状态
timedatectl

# 设置NTP服务状态(慎用)
timedatectl set-ntp yes/no

5. 常见问题与解决方案

5.1 迁移VM后时间差异较大

问题:需要快速同步时间

解决方案:

1
2
3
4
5
# 逐步校正(较慢)
chronyc makestep 0.1 3

# 立即同步时钟
chronyc -m 'burst 3/3' 'makestep 0.1 3'

5.2 外网时间源不可用

问题:启用本地模式后,客户端无法同步时间

解决方案local模式只能有一个服务器配置该参数

5.3 Chronyd服务正常但未同步

问题:NetworkManager调度程序脚本BUG(3.2-2版本)

解决方案:

  • 临时:重启chronyd服务
  • 永久:升级到3.4以上版本

6. 常用时钟源推荐

6.1 公共NTP服务器

  • pool.ntp.orgcn.pool.ntp.org0-3.cn.pool.ntp.org
  • 阿里云ntp.aliyun.comntp1-7.aliyun.com
  • 大学NTP服务
    • s1a.time.edu.cn(北京邮电大学)
    • s1b.time.edu.cn(清华大学)
    • s1c.time.edu.cn(北京大学)
  • 国家授时中心210.72.145.44

6.2 配置示例

1
2
3
4
# 使用阿里云NTP服务器
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst