LoginSignup
146
141

More than 5 years have passed since last update.

ntpdのうるう秒対応(2015/07/01)

Last updated at Posted at 2015-06-16

概要

直近のうるう秒(2015/06/30 23:59:60 UTC)の挿入について。
OSやサービスごとに対応が結構違うので情報を得るのが少し大変。
もろもろの原理を理解する前にとりあえずOSの対策だけしておきたい人用に
Linuxで広く使われるntpdの対応方法を書いておく。
一先ずCentos5,6, AmazonLinuxでの対応方法を下記する。

やるべきこと

  • ntp-4.2.6p5-3 以降にバージョンアップ (201506現在最新)
  • ntpdをslewモードで動かす

ntpdのslewモードって何

緩やかな時刻同期を実行するntpdの起動モード。
1秒間のズレを約2000秒(33分)かけて修正する。

slewモードで動くntpdはうるう秒そのものは無視して、1秒先に進む。そして緩やかに挿入後の時間に同期していく。今のところOSやアプリケーションに影響を与えない対策としてslewモードへの移行が推奨されてる。
なお、ntp-4.2.6p5-3(2015/03/09リリース)以前のntpdはslewモードで動作しないバグが有るのでうるう秒対策をする場合は基本的にバージョンアップしたほうが良い。

CentOS5 & 6の場合

1. ntpdのバージョンアップ
# yum update ntp

2. ntpdを停止する
# service ntpd stop

3. kernelの保持時刻・周波数オフセットをクリアする
# ntptime -s 0 -f 0

4. ntpdをslewモードで起動するようセット
# vi /etc/sysconfig/ntpd
- OPTIONS="u ntp:ntp -p /var/run/ntpd.pid -g"
+ OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
 -xオプションを追記して保存

5. ntpd を起動
# service ntpd start

AmazonLinuxの場合

https://forums.aws.amazon.com/ann.jspa?annID=3064
公式の見解を参考にすると基本的に下記をやっとけば良い感じ。
細かい違いだが、AmazonLinuxのntpはntp-4.2.6p5-30.24.amzn1 以降が望ましい。

1. ntpdのバージョンアップ
# yum --releasever=latest install ntp

2. ntpdを停止する
# service ntpd stop

3. kernelの保持時刻・周波数オフセットをクリアする
# ntptime -s 0 -f 0

4. ntpdをslewモードで起動するようセット
# vi /etc/sysconfig/ntpd
- OPTIONS="-g"
+ OPTIONS="-g -x"
 -xオプションを追記して保存

5. ntpd を起動
# service ntpd start

余談: その他のOS, NTPクライアント

Windows OS

基本的に対応不要

CentOS7以降で標準化された"chronyd"

基本的にchronydはslewモードで動作するので対応不要(と思ってる)。
ただし、デフォルト設定ではntpdのslewモードと比べて同期完了までの速度が早い。
slewの調整速度は"maxslewrate"で指定出来る。気になる場合は調整したほうがよいかもしれない。

chronydはこちらが参考になる

146
141
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
146
141