NTP設定の続き

前回(NTPの設定 - 明日=今日×(反省+前向き)+努力)でNTPサーバの設定をしましたが、もうちょっと詳細な設定を理解する必要がありそうです。

参考サイト:Stray Penguin - Linux Memo (ntpd)


(NTP)サーバとクライアント間で時刻のずれがある場合に、2つの調整モードがあります。

  • stepモード:一気に調整
  • slewモード:徐々に調整(1秒当たり0.5ms)

両モードの閾値となるのは、デフォルトで128msとの事。
ntpd は"徐々に調整"とばっかり思っていたのですが、テスト環境では3分くらいずれている状態でやっていたので、いつもstepモードになっていて混乱しました。


-x オプションで、閾値を600s にすることができるということで、
/etc/sysconfig/ntpd に以下設定して、ntpd 再起動。

OPTIONS="-x"

確かにntpq -pn にて、offsetが小さくなっていくのがわかります。


Stray Penguin - Linux Memo (ntpd)から引用

RedHat系の NTPパッケージに含まれる rcスクリプトでは、 /etc/ntp/step-tickers というファイルに参照先 NTPサーバを (ひとつだけ) 書いておくと、 ntpd を起動させる直前でそのアドレスを参照して ntpdate による一次時間合わせを行う仕掛けになっている。また、 step-tickers が空でも、 /etc/sysconfig/ntp の OPTIONS 変数に -x が含まれていれば、 rcスクリプトは ntpd 主設定ファイル (ntp.conf) から peer または server 行を探してアドレスを拾い、やはり ntpdate が実行しようとする (なお且つ step-tickers にアドレスが書いてあれば「探す」手間が省ける)。つまり、どちらか(あるいは両方) やっておけば、マシンの時計が大きく狂っていたとしても ntpd はきちんと起動してくれるようになっているのだ。

この内容が、頭では理解できても現実とずれている気がしてならない。

  • /etc/ntp/step-tickers が空。
  • /etc/sysconfig/ntpd に-x を追記

この状態で、ntpd をリスタートしてもntpdate のように一気に同期させるのではなく、slew動作をしているように見える。

ntpdateが実行されていないのか?それはそれで狙い通りなのだが、前述の引用内容とずれてしまう。
ntpdateが実行されていないのが本当は"異常"と仮定しその真意を探るべきなのだろうね。


つづきはまた次回。