在数据中心和工作环境、监控系统等场景中,除了时间统一非常重要,预防时间的跳变也很重要。比如数据库的数据主从复制、定时调度和心跳机制,不单单对时间的统一要求严格,大的时间跳变更会给数据库带来严重的事故;监控系统中时间的统一可以清晰的还原事情发展的走向,但是意外的时间跳变可能给过程带来误差和错觉。以前未使用过NTP时间服务器的工作环境新上架设备,意外的断网断电等未知的意外都可能造成时间的跳变,对这方面较为敏感的场景,我们可以将客户时间设置为微调模式,来避免时间跳变造成的麻烦和不必要损失。
Window微调模式配置:运行regedit 打开注册表
例1:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
MaxPosPhaseCorrection and MaxNegPhaseCorrection 最大校准时间范围,即当电脑时间快于或慢于该值时,不进行校准,而记录事件。(MaxPosPhaseCorrection :该项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。(0xFFFFFFFF 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。)
例2:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
MaxAllowedPhaseOffset 尝试校准最大偏移量,即当电脑时差大于该值时,直接同步,当时差小于该值时,时间以0.05秒渐进方式缓慢同步。
单位:秒,默认:1,现修改为60秒
配置完后需要重启,w32tm服务,管理员运行cmd:net stop w32time && net start w32time
Linux微调模式配置:
微调方式在启动NTP服务时加了个“-x”的参数,而默认的是不加“-x”参数。
首先要指定时间服务器地址:
请编辑各个节点的ntp.conf文件
[root@nascds10 ~]# vi /etc/ntp.conf
#基于网段的限制(限制在网段192.168.7.0) 默认 127.0.0.1 无限制,这里可以不进行操作
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#restrict 192.168.7.0 mask 255.255.255.255 nomodify notrap
#指定时间服务器地址
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 192.168.1.128 prefer #这里是时钟服务器
broadcastdelay 0.008
配置ntpd的参数,我们主要强调的是要配置成"微调的模式" 也就是在options中要加入 -x的选项:
[root@nascds10 ~]# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
重启ntpd服务:server ntpd restart
当出现unsynchronised时,请检查配置,如无误,那就需要等待,ntpd服务开启之后需要等待一段时间才能同步上。
ntpd命令有一个自我保护的机制:如果本机与上源时间相差太大,ntpd 不会运行时间同步操作,所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务运行后,先是每64秒与上源NTP服务器同步一次,根据每次同步时测得的误差值经复杂计算逐步调整自己的时间,随着误差减小,逐步增加同步的间隔。每次跳动,都会重复这个调整的过程。
注:
1. linux系统不同版本直接配置方式可能存在稍许不同,有些linux系统甚至可能并不使用ntpd服务来校时。
2.部分应用有提供web管理,有的web管理中提供了ntp相关配置,可直接通过web来配置。
上一篇:如何考量医院内子钟的部署
下一篇:什么才是“时间”的本质?