home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

技術/Linux/CentOS 5.3 をクライアントとして使う時のntpd

作成日: 2010-08-19 11:44:15   /   last updated at: 2010-08-19 21:31:45
カテゴリ: Linux NTP 

Linuxをクライアントとして使う場合、立ち上げ時に一度、強制的にNTPの時刻同期をしてくれると助かる。
しかし、CentOSなどサーバー向けのLinuxでは、NTPのデフォルト設定としてそうした動作はしてくれないようになっている。サーバーでは毎日電源をON/OFFする訳ではないので、動きながらゆっくりと時刻を合わせていく動作がNTPのデフォルト設定になっていると思われる。

CentOS 5.3 の場合、以下の設定ファイルの編集により「立ち上げ時に一度、強制的にNTPの時刻同期」をしてくれるようになる。その後はデフォルト設定と同様、動きながらゆっくりと時刻合わせしてくれる。

/etc/sysconfig/ntpd:

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
→
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no
→
SYNC_HWCLOCK=yes

追記:
"-x"オプションについて日本語で分かりやすく解説してくれているサイト発見:

slewモード: 0.5msずつ時間を寄せていく。
stepモード: 不連続に一気に時間を寄せる。
128msのズレを境に、それよりズレが小さい時はslewモード、大きい時はstepモードになる。
"-x"オプションを指定することで、境界値が600秒になり、事実上slewモードonlyとなる。
ところが、slewモードだと10秒のズレを補正するだけでも 10s / 0.5ms = 20000秒かかることになり、元のズレが大きいと補正にえらい時間がかかってしまう。
推測:多分、このために"-x"が指定されている時は一度NTPサーバーを見て強制的に同期し、ズレをなるべく小さくしてからslewモードで動き出すよう、/etc/rc.d/init.d/ntpd スクリプト内で調整されたのかも。


original url: https://www.glamenv-septzen.net/view/731