Linux关于NTP同步硬件时钟的可靠性验证
NTP(Network Time Protocol)是一种用于同步网络中各个计算机的时间的协议。它的主要目的是确保网络中的所有计算机都能够精确地使用相同的时间。NTP通过在网络中的某个服务器上提供准确的时间源,然后将该时间源同步到其他计算机上,来实现时间同步。
NTP使用一种层级化的结构来同步时间。在这个结构中,有一个或多个主要的时间服务器,称为Stratum 1服务器。这些服务器通过一些高精度的时钟源(如原子钟或GPS)来提供准确的时间。其他计算机通过与这些主时间服务器交互,定期询问并调整自己的时间。
NTP的工作原理基本上是通过比较计算机的本地时钟与主时间服务器的时钟来确定时间的差异,并对本地时钟进行调整。这个调整过程是连续的,直到本地时钟与主时间服务器的时钟达到同步。
NTP具有很高的精度和稳定性,并且能够在广域网和局域网等各种网络环境下工作。它在互联网和许多其他计算机网络中被广泛使用,特别是需要时间同步的应用,如金融交易、科学研究和电信系统等。
ntp是比较常用的进行时钟同步的方式,通常使用ntpd或者定时执行ntpdate的方式进行时间同步,时钟同步的都是系统时钟,但是通常比较少关注硬件时钟的同步。如果系统不能将时间同步到硬件时钟,就有可能导致服务器重启时,服务器的时间出现错乱。
本文针对常用的硬件时钟同步方式进行探讨。
1. 常见的时钟类型
1.1 系统时钟
系统时钟是指操作系统内部维护的一个计时器,用于记录和管理系统运行的时间。系统时钟通常基于硬件时钟的参考,并通过操作系统内核进行管理和更新。系统时钟可以提供更高精度的时间信息,并支持各种时间相关功能,如定时器、调度器和时间同步等。
1.2 硬件时钟
硬件时钟(也称为实时时钟或RTC)是计算机的一部分,通常是一个电池供电的石英时钟芯片。硬件时钟会持续运行,即使计算机处于关机状态,以确保计算机重新启动时有一个可靠的时间参考。硬件时钟通常以二进制编码的方式记录时间,包括年、月、日、时、分、秒等信息。
2. 常见时钟同步方式
通常使用ntpd和ntpdate 2钟方式进行时钟同步。两者有联系,也有差别。
2.1 ntpd服务
通常会部署ntpd服务来进行时钟同步,这种方式比较优雅。
- 优点:如果时钟出现延迟能够缓慢、平滑的追踪数据
- 缺点: 如果跟上游时钟延迟(默认1000s)过大,ntpd服务会自动退出
2.1.1 推荐配置/etc/ntp.conf
推荐的相关配置如下/etc/ntp.conf
# Common configure
driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log #####优化项:日志文件输出
# tinker config panic 1000 seconds and step-threshold 1000 seconds
tinker panic 1000 step 1000 #####优化项:同步阈值配置(按需修改,参考下文【时钟跳变阈值】)
# Default acl #####优化项:调整acl策略
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Local acl
restrict 127.0.0.1
restrict ::1
# NTP server acl #####优化项:调整acl策略,规避安全风险(下列域名按需修改)
restrict time1.tencentyun.com nomodify notrap nopeer noquery
restrict time2.tencentyun.com nomodify notrap nopeer noquery
restrict time3.tencentyun.com nomodify notrap nopeer noquery
restrict time4.tencentyun.com nomodify notrap nopeer noquery
restrict time5.tencentyun.com nomodify notrap nopeer noquery
# NTP server configure #####优化项:调整同步参数(下列域名按需修改)
server time1.tencentyun.com iburst minpoll 6 maxpoll 10
server time2.tencentyun.com iburst minpoll 6 maxpoll 10
server time3.tencentyun.com iburst minpoll 6 maxpoll 10
server time4.tencentyun.com iburst minpoll 6 maxpoll 10
server time5.tencentyun.com iburst minpoll 6 maxpoll 10