Chrony による時刻同期について

CentOS 7 では、これまで時刻同期をするために使っていた ntpd の代わりに chronyd を使って時刻同期をします。

かといって、ntpd がもう使えなくなったわけではないですが、CentOS 7 からは、なるべく chronyd を使うようにします。

今回は、chronyd を使って上位の NTP サーバの時刻を参照し、NTP クライアント側で時刻同期ができるようにするための最低限の設定 (NTP クライアント設定) を実施します。

Step 1. Chrony パッケージ導入

まずは、yum で chrony パッケージをインストールします。

chrony インストールRaw Code(S)Raw Code(T)
# yum -y install chrony

# rpm -qa | grep chrony
chrony-1.29.1-1.el7.centos.x86_64

Step 2. Chrony NTP Client 設定

後は、/etc/chrony.conf を修正し、NTP クライアント設定を実施します。

修正箇所は、linke: 03 ~ 10 までで、それ以外はデフォルトのままです。

以下の例では、時刻を取得するために、以下のサーバを 3つ設定しています。

  • 10.10.10.10
  • 10.10.20.10
  • 10.10.30.10

そして、port 0 を追加すると Chrony が NTP サーバとして動作しなくなります。 すなわち 123番ポートを listen しなくなります。 (クライアントとして動作します)

/etc/chrony.confRaw Code(S)Raw Code(T)
・・・
#server 0.centos.pool.ntp.org iburst    #### コメントアウト
#server 1.centos.pool.ntp.org iburst    #### コメントアウト
#server 2.centos.pool.ntp.org iburst    #### コメントアウト
#server 3.centos.pool.ntp.org iburst    #### コメントアウト
server 10.10.10.10 iburst    #### 追加
server 10.10.20.10 iburst    #### 追加
server 10.10.30.10 iburst    #### 追加
port 0    #### 追加
・・・

iburst による時刻同期高速化

時刻参照サーバ設定時に server 10.10.10.10 iburst のように最後に iburst を付けると初回通信時に短い一定間隔で、決まった回数の問い合わせパケットを一気に投げます

こうすることによって、サーバ起動から少しでも早い段階で時刻同期が行われ、結果的には時刻同期にかかる時間が短縮されます。

Step 3. Chrony サービス起動

ntp サーバが動いている場合には、事前に停止してから chronyd を起動してください。

# systemctl stop ntpd.service
# systemctl disable ntpd.service
chronyd サービス起動Raw Code(S)Raw Code(T)
# systemctl enable chronyd.service

# systemctl list-unit-files --type service | egrep "(ntp|chronyd)"
chronyd.service                             enabled
ntpd.service                                disabled
ntpdate.service                             disabled

# systemctl restart chronyd.service

Step 4. Chrony 時刻同期確認

最後に、時刻同期が行われていることを確認します。

アスタリスク(星印) * が付いているサーバが現在時刻同期が行われているサーバです。

また、Chrony が NTP サーバとして動作してないことを確認するために、123 番ポートを Listen してないことを確認します。

chronyc 時刻同期確認Raw Code(S)Raw Code(T)
# chronyc sources
210 Number of sources = 3
MS Name/IP address    Stratum Poll Reach LastRx  Last                 sample
===============================================================================
^+ ntp1.my-ntp.com          2    6   377    17   +16us[  +23us] +/-     16ms
^* ntp2.my-ntp.com          2    6   377    17   -63us[  -96us] +/-     10ms
^+ ntp3.my-ntp.com          2    6   377    16   +57us[  +57us] +/-   9578us

# ss -taun | grep 123
※123番ポートで listen してないこと(何も出力されなければ、OK)

以上、CentOS 7 NTP クライアント時刻同期設定 でした。