141
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

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

概要

直近のうるう秒(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はこちらが参考になる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
141
Help us understand the problem. What are the problem?