时间的准确性与一致性对于ECS实例至关重要,它能够确保定时任务的准确执行、日志时间戳的正确记录以及分布式ECS集群中实例的时钟一致性。本文将分别介绍在阿里云ECS Linux以及Windows实例中配置与管理时间同步服务机制。
时间同步服务简介
时间同步服务用于与NTP服务器同步时间以确保ECS实例时间准确,它是基于网络时间协议(Network Time Protocol,简称NTP)实现的。
Linux操作系统
在Linux实例中,较为常见的两种时间同步的工具有:Chrony与NTP服务。Chrony与NTP服务的对比如下表。
时间同步服务 | 简介 | 使用场景 | 时间同步精度 | 稳定性 |
Chrony | Chrony是一个实现网络时间协议的软件包,用于同步计算机的系统时间与世界各地的NTP服务器。Chrony特别适合在变化的网络环境中运行,能够以快速和高效的方式调整系统时间。 | 适用于高精度、高稳定性、自动化等场景。 | 较高 | 能够更好地适应高延迟和不稳定的网络环境。 |
NTP服务 | NTP服务是一种经典的时间同步服务,是NTP协议的一个实现。NTP服务适用于长期运行的服务器,特别是在网络条件比较稳定的环境下。 | 适用于大多数无需太高精度要求的普通场景。 | 正常 | 仅能适应一定程度的网络不稳定。 |
查看时间同步服务进程
阿里云公共镜像中包含了默认的时间同步配置,基于公共镜像创建的ECS实例会默认运行Chrony进行时间同步,正常情况下您无需干预时间同步服务。
阿里云ECS实例中,CentOS 6等部分老旧镜像配置为NTP服务,当前NTP服务官方已经不再维护。如果ECS实例使用的是NTP服务,且业务不依赖NTP服务,建议升级为Chrony服务。
您可以执行以下命令查看ECS实例中已使用的时间同步服务。
sudo ps aux | grep -E "ntpd|chronyd"
返回如下信息时表示使用的时间同步服务为Chrony。
返回如下信息时表示使用的时间同步服务为NTP服务。
查看当前时间
您可以执行以下命令查看当前系统时间是否准确。
Chrony
执行以下命令可以获取当前时间同步状态的详细信息,包括系统时间偏差、系统时间的稳定性以及最后一次同步的时间等。您可以通过查看System time评估当前时间是否准确,如本示例中的0.000025116 seconds slow of NTP time
表示当前系统时间比NTP服务时间慢。
sudo chronyc tracking
返回信息示例如下。
NTP服务
执行以下命令可以获取已配置的NTP服务器以及对应的状态指标,其中偏移量offset可以大致表示本地时间和服务器时间的差异。
sudo ntpd -p
返回信息示例如下:
手动同步时间
阿里云ECS实例默认运行的Chrony或者NTP服务会逐步调整时间,避免时间跳变的风险,不建议手动同步时间。如果因为业务需要,必须要手动同步时间,请按以下步骤进行操作。
Chrony
sudo chronyc makestep
当系统返回信息为200 OK
时,表示Chrony服务已手动同步完成。
NTP服务
当前NTP服务官方已经停止维护,使用ntpdate
进行手动时间同步有时钟跳变的风险,如必须使用,请在ntpdate命令后添加三个或三个以上的时钟源,尽可能规避风险。更多阿里云NTP服务器信息,请参见阿里云NTP服务器地址列表。
专有网络VPC实例。
sudo ntpdate ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com
经典网络实例。
sudo ntpdate ntp1.cloud.aliyuncs.com ntp2.cloud.aliyuncs.com ntp3.cloud.aliyuncs.com ntp4.cloud.aliyuncs.com ntp5.cloud.aliyuncs.com
配置NTP服务器地址
如果需要设置特定的 NTP 服务器进行时间同步,您也可以通过以下步骤进行配置。
在分布式ECS集群中,为保证分布式集群实例的时钟一致性,请确保所有实例都配置为指向同一或可靠的 NTP 服务地址。
Chrony
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
配置NTP服务器。
如果您需要配置为阿里云的NTP服务器,请按照下面步骤中的
<NTP服务器>进行配置
,具体请参见阿里云NTP服务器地址列表。关于如何选择阿里云NTP服务器地址,请参见NTP服务同步异常怎么办?。执行以下命令,进入
chrony
配置文件。sudo vim /etc/chrony.conf
屏蔽不需要的NTP服务器,如下图所示,在配置文件中将不需要使用的NTP服务注释掉。
添加新的NTP服务器。如下图所示,您可以在配置文件中添加新的NTP服务器
ntp12.cloud.aliyuncs.com
;具体可用NTP服务器地址请参见附录阿里云NTP服务器地址列表。保存配置文件并退出,执行以下命令重启
chronyd
并设置开机自启动。sudo systemctl restart chronyd.service sudo systemctl enable chronyd.service
查看Chrony服务状态。
执行以下命令,查看本机时间同步状态,用于验证服务是否已启动。
sudo chronyc tracking
执行以下命令,查看时间同步服务器列表。
sudo chronyc -n sources -v
NTP服务
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
配置NTP服务器。
如果您需要配置为阿里云的NTP服务器,请按照下面步骤中的
<NTP服务器>进行配置
,具体请参见阿里云NTP服务器地址列表。关于如何选择阿里云NTP服务器地址,请参见NTP服务同步异常怎么办?。执行以下命令,进入
NTP
配置文件。sudo vim /etc/ntp.conf
屏蔽不需要的NTP服务器,如下图所示,在配置文件中将不需要使用的NTP服务注释掉。
添加新的NTP服务器。格式为
server <ntp服务器地址> minpoll <最小请求间隔> maxpoll <最大请求间隔> iburst
。如下图所示,您可以在配置文件中添加新的NTP服务器ntp12.cloud.aliyuncs.com
。具体可用NTP服务器地址请参见附录阿里云NTP服务器地址列表。保存配置文件并退出,执行以下命令重启
ntpd
。sudo service ntpd restart
启动NTP服务。
依次执行以下命令,启动
NTP
服务并设置开机自启动。sudo service ntpd start sudo chkconfig ntpd on
执行以下命令,查看NTP服务运行状态。
sudo ntpstat
执行以下命令,查看NTP服务对等端的列表信息。
sudo ntpq -p
Windows操作系统
在Windows实例中,通常使用系统自带的时间服务(Windows Time Service,W32time)来进行时间同步。
查看当前时间
使用命令提示符。
按下
Win + R
,输入cmd
,然后按Enter
,打开命令提示符。在命令提示符中输入以下命令查看当前时间。
date /t time /t
date /t
将显示当前日期;time /t
将显示当前时间。
通过图形界面:查看任务栏:在 Windows 任务栏的右下角,您可以看到当前日期和时间。
调整日期/时间设置:右键单击任务栏的时间,然后选择“调整日期/时间”。在这里,您可以查看和设置当前时间和日期。
手动同步时间
命令提示符
按
Win + R
,输入cmd
,然后按Enter
,打开命令提示符。输入以下命令以手动同步。
w32tm /resync
这将强制 Windows 时间服务与配置的 NTP 服务器重新同步。
如果需要查看同步状态,可以使用如下命令查看同步结果。
w32tm /query /status
图形化界面
打开设置:右键单击任务栏的时间显示,选择日期和时间设置。
查看时间设置:在日期和时间设置界面中,确保自动设置时间处于开启状态。
手动同步时间:在日期和时间设置界面中,在同步时钟区域,单击立即同步按钮完成手动同步时间。
配置 NTP 服务器
如果需要设置特定的 NTP 服务器进行时间同步,您也可以通过以下步骤进行配置。
命令提示符
以管理员身份打开命令提示符。
运行以下命令,设置 NTP 服务器。
以
ntp11.cloud.aliyuncs.com
为例,更多NTP服务地址,请参见阿里云NTP服务器地址列表。w32tm /config /manualpeerlist:"ntp11.cloud.aliyuncs.com" /syncfromflags:manual /reliable:YES /update
运行以下命令重启时间服务。
net stop w32time net start w32time
运行以下命令再次同步时间。
w32tm /resync
图形化界面
Windows Server操作系统默认配置微软NTP服务器(time.windows.com),但是可能经常同步出错。使用阿里云ECS实例时,您可以将默认NTP服务器更换成阿里云提供的内网NTP服务器。本文以Windows Server 2022系统为例,介绍如何修改默认NTP服务器地址。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
在任务栏的通知区域,单击日期和时间,并单击日期和时间设置。
在设置页面,单击添加不同时区的时钟。
在日期和时间对话框里,单击Internet 时间页签,然后单击更改设置(C)...。
在Internet 时间设置对话框里,选中与Internet时间服务器同步(S)...,填写一个阿里云内网NTP服务器地址,并单击立即更新,然后单击确定。关于NTP服务器地址,请参见阿里云NTP服务器地址列表。
重要当时钟同步失败时,可能是实例中存在第三方杀毒软件,请关闭杀毒软件后重新同步。
单击确定。
常见问题
附录
阿里云NTP服务器地址列表
各网络下的阿里云NTP服务器地址(仅支持IPv4协议)如下表所示。如果您需要修改阿里云NTP服务器地址,可以参考该列表。
经典网络内网 | 专有网络VPC内网 | 公网 |
ntp1.cloud.aliyuncs.com ntp2.cloud.aliyuncs.com ntp3.cloud.aliyuncs.com ntp4.cloud.aliyuncs.com ntp5.cloud.aliyuncs.com ntp6.cloud.aliyuncs.com 重要 经典网络类型的ECS实例相关服务将于2025年02月28日起停止服务,具体下线公告以及迁移VPC网络方案,请参见【下线公告】停止提供阿里云经典网络类型的ECS实例相关服务。 | ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp8.cloud.aliyuncs.com ntp9.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com | ntp.aliyun.com ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com |
相关文档
如果您希望了解更多关于Linux时间的相关概念及操作,或者想了解关于Linux公共镜像中时间配置的变化,请参见Linux时间和时区说明。