Linux开启NTP会在2012年06月遇闰秒BUG可能导致服务器重启
2012-06-29 09:55:00   来源:我爱运维网   评论:0 点击:

国际地球自转和参考坐标系统服务(IERS)将在格林威治时间2012年6月30日午夜增加一闰秒(维基百科关于闰秒的说明),由于Linux kernel和Posi...
国际地球自转和参考坐标系统服务(IERS)将在格林威治时间2012年6月30日午夜增加一闰秒(维基百科关于闰秒的说明),由于Linux kernel和Posix关于NTP时间跳变的标准不同,将在2012年6月30日23:59:59 跳变到2012年7月1日后引起ntpd进程锁死,从而可能造成部分开启ntp服务的linux系统重启。 
 各主流操作系统厂商发布的KB如下,供参考: 
BTW: Leap Second on Wiki:http://en.wikipedia.org/wiki/Leap_second 

从来自微软文章来看,Windows 系统自己的 NTP 可以正确处理闰秒,不会有异常。
从网站文章来看,如果使用的 Linux 系统,Kernel 低于 2.6.18-164 就有可能受到影响。以上文章介绍的临时解决方法是:
1、2012年6月28日当天(北京时间23点以前)先确认ntp服务已同步,然后关闭ntpd服务。
2、2012年7月2日(北京时间8点以后)当天开启ntpd服务,并确认ntp服务已同步。

RedHat官方邮件说明如下:
北京时间将于2012年7月1日7时59分59秒会与全球同步进行闰秒的调整。对于进行
闰秒调整的linux系统(不止Red Hat一家),若内核版本不够高的话,可能会有
kernel hang住的问题。尽管该问题发生的可能性是极小的,我们还是要尽量规避
这个风险。详细情况请参考kbase(需使用RHN帐号登录才能查看):
https://access.redhat.com/knowledge/articles/15145

另外,补充几点说明关于调整闰秒可能导致 kernel hang 住的问题:

1. RHEL3/RHEL6所有系统不受该问题的影响。
2. RHEL4内核版本在kernel-2.6.9-89.EL (RHEL4.8)及以上,RHEL5内核版本在
kernel-2.6.18-164.el5(RHEL5.4)及以上的系统不受该问题的影响。
3. 其他RHEL4和RHEL5的系统有可能发生该问题,建议尽快升级至上述版本或更高
版本以规避该问题。

a. 若由于其他原因实在无法进行内核升级,且应用对时间的敏感度不是非常高,
容许有1秒钟的差值,有如下建议:

对于使用ntpd服务进行时间同步的RHEL,至少提前1天停止ntpd服务。并确保每台
机器上安装的tzdata的版本低于2011n-2(不 包含该版本)。
对于不使用ntpd服务进行时间同步的RHEL,确保每台机器上安装的tzdata的版本低
于2011n-2(不包含该版本)。

从而使系统不进行闰秒调整,待该事件完成之后,再可启动ntpd服务进行同步,或
者手动修改时间为正确时间。

提示:对于内部的以RHEL作为NTP服务器的系统,它是NTP服务器的同时,也是使用
ntpd 服务与更上层NTP服务器进行时间同步的客户端, 故上述方法也适用于该系统。

b. 若由于其他原因实在无法进行内核升级,但应用对时间的敏感度非常高,不容
许有1秒钟的差值,则有可能发生kernel hang住的问题,尽管这个可能性是非常小
的。
如果发生问题,可考虑重启该系统恢复。

相关热词搜索:Linux NTP 闰秒 重启

上一篇:Linux下last命令如何显示年份(last_patch)
下一篇:UNIX下不恰当修改文件SUID位带来的问题之解决

分享到: 收藏
评论排行