うるう秒への対応(CentOS)
うるう秒の調整とは
「うるう秒」の調整は、地球の回転の観測を行う国際機関である「国際地球回転・基準系事業(IERS:International Earth Rotation and Reference Systems Service、所在地:パリ)」が決定しており、これを受けて世界で一斉に「うるう秒」の調整が行われています。日本では、総務省及びNICTが法令に基づき標準時の通報に係る事務を行っており、IERSの決定に基づきNICTにおいて日本標準時に「うるう秒」の挿入を実施しています。
最近では2015年7月1日に午前8時59分59秒と午前9時00分00秒の間に「8時59分60秒」が挿入され、
2017年1月1日にに午前8時59分59秒と午前9時00分00秒の間に「8時59分60秒」が挿入さる事が決定しています。
サーバーのうるう秒対策
うるう秒が挿入された時刻には、NTPサーバと自分のサーバの間に1秒のズレが発生します。(自分のサーバの時刻が1秒早くなる)
その後、任意のタイミングでNTPサーバと時刻の同期が行われた場合、自分のサーバの時刻が巻き戻ることとなり、
時刻が巻き戻った場合、cronなど時刻をトリガーに動くシステムが誤作動を起こす懸念があり、その動作は望ましくありません。
また、過去のうるう秒の影響としては、特定バージョンのLinuxカーネルが動作しているサーバ上で、JavaやMySQL、Apache Hadoopなど複数スレッドで動作するミドルウェアが稼働していた場合、
うるう秒発生時にCPUを100%占有し、結果としてサーバーがクラッシュした事などがありましたし、
時刻を利用しているシステムなどでは予期しない動作が発生する可能性があります。
うるう秒の対策に有効とされているのは、自分のサーバのNTPをSLEWモードにする事が有効とされています。
NTPには一気に合わせるSTEPモードとジョジョに合わせるSLEWモードがあります。
SLEWモードの場合、修正するスピードは「1秒間につき最大で0.0005秒」とのことです。
計算上は30分で1秒の修正がされるイメージとなります。
サーバへの設定
ntpdate -B [NTPサーバ]のコマンドでも可能ですが、起動オプションを記述しておくようにします。
[root@test]# vi /etc/sysconfig/ntpd←ntpの起動設定オプションを記述しておくファイルを編集する [root@test]# service httpd start←管理ユーザー # Drop root to id 'ntp:ntp' by default. OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"←OPTIONSに-xを追加する :wq [root@test]# service ntpd restart←ntpd再起動
注意点としては、
1.時刻の差異がなくなった時点で丁度止まる訳ではなく若干行き過ぎる。
2.時刻合わせが終わったあとは再び時刻がずれ始める。
という調査結果があります。
うるう秒が終わった後は元に戻しておく方が良いかと思います。