本文以CentOS 7.8系统为例介绍如何修改Linux系统的ECS实例的时区,以及如何开启、配置及使用Chrony服务,保证实例本地时间精确同步。
# 背景信息
目前,所有地域下ECS实例默认采用CST(China Standard Time)时区,您也可以根据自己的业务需求为ECS实例设置或者修改时区。 CentOS 7版本中使用Chrony工具实现本地时间与标准时间同步。与CentOS 6版本中的NTP服务不同,Chrony可以更快更准确地同步系统时钟,最大程度的减少时间和频率误差。Chrony包含了两个核心程序:
chronyd是后台运行的守护进程。用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行修正。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd控制的服务器上工作;也可以在一台不同的远程服务器上工作。
更多详情,请参见Chrony。
# 修改Linux系统实例时区
运行以下命令查看时区列表。
ls /usr/share/zoneinfo/<时区文件夹名称>
例如,运行以下命令可以在时区列表中查看到Hong_Kong时区。
ls /usr/share/zoneinfo/Asia
运行以下命令修改时区。
ln -sf /usr/share/zoneinfo/Asia/Hong-Kong /etc/localtime
运行以下命令更新硬件时钟(RTC)。
hwclock -w
运行以下命令查看时区。
timedatectl status
查询结果如下所示,时区已修改为Hong_Kong。
[root@k8s-node1 ~]# timedatectl status
Local time: 四 2022-10-20 09:02:37 CST
Universal time: 四 2022-10-20 01:02:37 UTC
RTC time: 四 2022-10-20 00:56:54
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
2
3
4
5
6
7
8
9
# 启用Chrony服务
运行以下命令启动chronyd服务并设置开机自启动。
systemctl start chronyd.service
systemctl enable chronyd.service
2
运行以下命令查看本机时间同步状态,用于验证服务是否已启动。
chronyc tracking
运行以下命令查看时间同步服务器列表。
chronyc -n sources -v
# 配置Chrony服务
运行以下命令打开chrony配置文件。
vim /etc/chrony.conf
找到 server <NTP服务器> minpoll 4 maxpoll 10 iburst
的信息后,按i键开始编辑文件,给您暂时不需要的NTP服务器句首加上#隐藏起来。
新添加一行NTP服务器信息,格式为:server <需要添加的NTP服务器> minpoll 4 maxpoll 10 iburst
。完成编辑后按Esc键并输入:wq保存退出。
NTP服务器信息,请参见阿里云NTP服务器。
运行以下命令启动chronyd服务并设置开机自启动。
systemctl start chronyd.service
systemctl enable chronyd.service
2
运行以下命令查看时间同步服务器列表。
chronyc -n sources -v
# 手动同步时钟
运行以下命令进入Chrony工具。
chronyc
在Chrony工具内,运行以下命令同步时钟。
makestep