うるう秒の影響について
2015年7月1日の9時直前にうるう秒が挿入される事が決定されました。
RedHatより提示されている対策方法は以下のとおりです。
影響範囲
弊社製品に直接影響はございませんが、OSのうるう秒の処理方法によって問題が発生する場合があります。
発生しうる問題
うるう秒の処理方法で2015年7月1日8時59分59秒を2回繰り返す処理系の場合に問題が発生します。
1秒以内に複数の処理が行われる場合、OSの時間が巻き戻る事によりセッションの時刻情報が前後し、システム上で利用しようとした時刻情報が未来に作成されている状態となって不整合が発生する可能性があります。
対象製品
うるう秒の発生により影響を受ける可能性のある製品は以下のとおりです。
- OpenAM
- OpenLDAP
- Samba
対応方法
OS側の時刻管理方法に起因する問題のため、時刻サービス(NTP)での対応が必要となります。 対応方法としては以下の二通りがあります。
- うるう秒の該当時刻よりも24時間前にNTPdを停止させる
- NTPdの起動オプションに"x"オプションを付ける
NTPの起動パラメータを変更する場合
こちらの方法の場合、"x"オプションを利用することで時刻を逆戻りさせて調整することを無効化します。 RHEL,CentOSの場合、NTPdの起動パラメータは以下のファイルを設定変更することで調整が可能です。
- /etc/sysconfig/ntpd
ファイル内の以下のパラメータを変更します。
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid" ↓変更 OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
設定を反映するためNTPdの再起動が必要です。設定の変更後はNTPdを再起動してください。
service ntpd restart
なお、"x"オプションを利用すると、時刻の調整間隔が0.5msずつになります。そのため、時計が大幅にずれた場合、時刻の修正に時間がかかってしまう場合があります。
NTPdを停止させる場合
NTPdを停止させる方法の場合、うるう秒(2015年7月1日8時59分60秒)の存在を認識させないことで、うるう秒の影響を回避します。
うるう秒が発生する際、24時間前からNTPサーバでLeap Indicatorという、うるう秒が発生する事を伝える値が送付されます。 NTPdがこの値を受け取った場合、Linuxカーネルにうるう秒の発生を伝えてしまうため、NTPdを停止させる場合、うるう秒の24時間以上前にNTPdを停止する必要があります。
しかし、うるう秒の発生を知らせないまま動作させ続けると一時的に時計が1秒先行した状態となってしまうため、ntpdateコマンドを利用し、時刻の巻き戻りが発生しないよう手動で時刻調整を行います。 (時刻の調整には3000秒程度かかります。)
NTPd停止中に手動で時刻調整を開始する際は以下のコマンドを実行してください。
# ntpdate -B <ntpサーバー>
コマンドの実行後は時刻が正確に調整された状態となります。通常どおりNTPdを稼働させてください。
お問い合わせ: info @ osstech.co.jp