VMware Player の上で CentOS 6 を使っています。これはずっと起動しているわけではなく、必要時に時々起動するという使い方で、普段はサスペンドさせています。サスペンドとなると復帰時に時計がズレてることがおおいわけです。こういうときに ntp サービスが非常に便利なわけです。時計のズレをうまいこと合わせてくれます。
今回使っているのは、CentOS 6 付属の ntp-4.2.4 のパッケージです。yum install ntp
で導入です。/etc/ntp.conf
に インターネットマルチフィード時刻情報サービス for Public のアドレスを列挙しておきます。
さてサスペンドから復帰した直後は大幅に時間がズレている状態です。例えばこんな感じ。40分ほど遅れてますね。(offset のところ。単位は msec)
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp1.jst.mfeed. 210.173.176.251 2 u 25 64 1 9.030 2404434 0.000 ntp2.jst.mfeed. 210.173.160.86 2 u 24 64 1 9.016 2404434 0.000 ntp3.jst.mfeed. 210.173.176.251 2 u 23 64 1 6.811 2404433 0.000
しばらく(2~3分かな)待っていると、これだけの大幅なズレがあるとSTEP モードに変わります。
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp1.jst.mfeed. .STEP. 16 u 102 64 0 0.000 0.000 0.000 ntp2.jst.mfeed. .STEP. 16 u 267 64 0 0.000 0.000 0.000 ntp3.jst.mfeed. .STEP. 16 u 299 64 0 0.000 0.000 0.000
/var/log/messages
を見てると 一気に時間をリセットしたよという表記が。
Feb 26 22:45:11 centos6 ntpd[13849]: synchronized to 210.173.160.57, stratum 2 Feb 26 22:45:11 centos6 ntpd[13849]: time reset +2404.444053 s
通常動作に戻っています。
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *ntp1.jst.mfeed. 210.173.160.86 2 u 54 64 37 10.174 16.646 11.606 +ntp2.jst.mfeed. 210.173.160.86 2 u 41 64 37 7.742 15.760 8.738 +ntp3.jst.mfeed. 210.173.160.56 2 u 49 64 37 11.076 15.496 8.732
というわけで、本来の時間よりも大幅に時間がズレている場合(128msec以上)、一気に時間合わせを行います。128msec 以内のズレであればじわじわと合わせていきます。なるほどよく考えられていますね。