最終更新日付: 2021年1月14日
CentOS7やRHEL7になってから、時刻同期のデフォルトパッケージがntpdからchronyに変わりましたね。
これはslewオードでのSYNC_HWCLOCK(ハードウェアへの動機)がchronyの方がシンプルで簡単だからかもしれませんね。
そんなchronyの設定方法についてポイントを紹介します。
レジュメ
環境・前提条件
上記のような環境を作成した。
- CentOS Linux 7.3.1611
- chrony 2.1.1-3
以下で紹介するchronyで設定ファイルは以下です。
- /etc/chrony.conf
chronydもchronycもになる。(chronyd:デーモン、chronyc:クライアント)
NTP Server設定に同じFQDN名を複数指定可能
たとえば、Server-Aのchrony.confに以下のようなServer設定が可能です。
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst
一見、同じ設定を4行も入れて無駄なように見えますが、Server-Aでchronycを確認しますと
上記のように、全部別々のNTPサーバーから取得してくれます。
ちなみに、「server ntp.nict.jp iburst」を5行chrony.confに追加するとIPv6側も取得してきたchronycの結果になります。ちゃんと異なるIPアドレスを取得し確認してくれているんですね。
RHELでは2台のNTPサーバーを指定することを推奨していません
ntpd時代の話(RHEL5、RHEL6)ですが、2 台の NTP サーバーを指定するNTPを使用することは推奨されません。
なぜなら、どちらが「より」正確なNTPサーバーなのかをNTP クライアントが判断できなるからです。
スプリッドブレイン的な当然の現象ですね。
RHELでは、NTP サーバーが複数台必要な場合は、4 台使用することが推奨しています。
NTPサーバーの指定は、chronyであっても1台もしくは4台が好ましいと思います。
参考、2 台の NTP サーバーを、「プライマリ」および「バックアップ」に指定して使用することはできますか? - Red Hat Customer Portal
stratum 1から同期しているNTPサーバーから同期を受け取るとstratum 2になる
ntp.nict.jp はstratum 1で、
ntp.nict.jpをサーバー指定しているServer-Aはstratum 2となる。
ちなみに、Server-AにNTPサーバーを指定しなかった時は、
local stratum 10
Server-Aのchrony.confに上記のlocal stratum行を設定しないと、デフォルトでstratum 16となりServer-AはNTPサーバーになれない。
NTPサーバーとしてNTPクライアントがアクセス出来るネットワークを設定する。
allow設定で、NTPサーバーにアクセスできるNTPクライアントネットワークを定義する。
これが設定されていないと、いわゆるNTPサーバーにはなれずに、NTPクライアントとなってしまう。
allow
のみ設定すると、全部のネットワークからNTPサーバーにアクセス出来る設定になる。
ハードウェアクロック(RTC)へカーネルクロックを同期する。rtcsync
Server-Aのchrony.confに、以下の設定を入れると
rtcsync
11分ごとにカーネルシステムクロックをハードウェアクロック=リアルタイムクロック(RTC)に同期更新する動きになる。
サンプル設定。Server-Aのchrony.conf
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburst
server ntp.nict.jp iburststratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
allow
bindcmdaddress 127.0.0.1
bindcmdaddress ::1keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
上記のように設定すれば、とりあえずNTPサーバーが構築できる。
参考: 15.2. chrony の概要および設定(https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Understanding_chrony_and-its_configuration.html リンク切れ)