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が実行されていないのが本当は"異常"と仮定しその真意を探るべきなのだろうね。
つづきはまた次回。