最新消息:

NTP Tips

未分类 admin 4397浏览 0评论

网上大部分文章都说ntpd是“平滑”、“缓慢”(adjusts the clock in small steps)地调整本地时钟的,但实际上,并不总是如此,“平滑”地调整是有前提的(需要启动ntpd时使用-x参数,在/etc/sysconfig/ntpd里调整)。

关于NTP的1000s的问题:当本地时钟与远端的NTP服务器时钟相差大于1000s时,ntpd会停止工作。有这种说法,ntpd的手册里也有介绍,但是RHEL的/etc/init.d/ntpd启动脚本中,默认情况下通常启动ntpd时,都会参加一个-g参数,这个-g参数的作用正是忽略这个1000s的问题。

关于1000s的问题,正确的描述:
In case there is no TOY chip or for some reason its time is more than 1000s from the server time, ntpd assumes something must be terribly wrong and the only reliable action is for the operator to intervene and set the clock by hand.
This causes ntpd to exit with a panic message to the system log. The -g option overrides this check and the clock will be set to the server time regardless of the chip time. However, and to protect against broken hardware, such as when the CMOS battery fails or the clock counter becomes defective, once the clock has been set, an error greater than 1000s will cause ntpd to exit anyway.

RHEL5/6的ntpd手册里,关于-g的描述,似乎少了一句话:–panicgate,Allow the first adjustment to be Big. 这个描述是在ArchLinux上的ntpd的手册里看到的,ArchLinux上的ntp包的版本是4.2.6.p3-3,RHEL5/6上的分别是4.2.2p1/4.2.4p8,手册里,虽然没有这样的描述,但是经过测试-g参数确实有这样的功能。这是第二次发现RHEL手册版本“很保守”,跟不上程序。

RHEL 5u7里带的ntp修复了若干bug,应该对5u4上的ntp偶尔(很偶尔)会不工作有所改进。这又是“系统需要升级”的一个有利证据。

假如使用了-x选项,那么ntpd只做微调,不跳跃调整时间(ntpd并不是默认承诺不跳跃调整时间的),但是要注意,-x参数的负作用:当时钟差大的时候,同步时间将花费很长的时间。-x也有一个阈值,就是600s,当系统时钟与标准时间差距大于600s时,ntpd会使用较大“步进值”的方式来调整时间,会在2000s(大约时间)内将时钟“步进”调整到正确时间。

假如不使用-x选项,那么ntpd在时钟差距小于128ms时,使用微调方式调整时间,当时差大于128ms时,使用“跳跃”式调整。

使用了-g参数,那么会有两个特效:当ntpd启动时,会忽略本地与远程时钟的差距(忽略1000s的问题),但是只会忽略一次,也就是说,假如过了一段时间,系统时钟又与标准时间相差超过1000s(硬件估计坏了),ntpd就会panic退出;-g参数,会让nptd在与远程ntp服务器“协商”之后,对本地时钟进行“跳跃”式调整。

/etc/sysconfig/ntpd中的SYNC_HWCLOCK=no,默认改成yes也是没有用的。要使之有用,还需要其它的配合:要么是在OPTIONS里添加-x选项;要么在/etc/ntp/step-tickers里添加NTP服务器的地址(启动的nptd进程没有-g选项)。这样,会改变ntpd服务的默认启动方式。ntpd启动时,会立即先成ntp server进行同步,再启用ntpd。假如使用了-x选项,则总是微调时钟。

转载请注明:爱开源 » NTP Tips

您必须 登录 才能发表评论!