手当たり次第に書くんだ

飽きっぽいのは本能

目次に戻る

Overview

chrony を使用して時刻同期を設定します。

前提条件

  • こちらを参考にネットワーク設定が完了していること。
  • こちらを参考に APT のTUI 抑止設定が完了していること。
  • timesyncd を時刻同期に使用する場合はこの手順は不要です。

インストール

chrony をインストールします。

myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install chrony

timesyncd は chrony のインストール時点で自動的に削除されます。これは以下のように APT のログに出力されます。

Removing systemd-timesyncd (249.11-0ubuntu3.9) ...

上記の通り、timesyncd は削除されますが、systemd のシンボリックリンク /etc/systemd/system/dbus-org.freedesktop.timesync1.service は削除されず、リンク切れの状態となるため、手動で削除しておきます。

myadmin@ubuntu:~$ ls -l /etc/systemd/system/dbus-org.freedesktop.timesync1.service
lrwxrwxrwx 1 root root 45 Aug 10  2023 /etc/systemd/system/dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
myadmin@ubuntu:~$ sudo rm /etc/systemd/system/dbus-org.freedesktop.timesync1.service

/etc/chrony/chrony.conf

/etc/chrony/chrony.conf を確認します。

デフォルト値

デフォルト値は下記の通りです。

myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/chrony/chrony.conf | expand | tr -s [:space:] | sed 's/^\s/    /g'
confdir /etc/chrony/conf.d
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC

設定値

設定例は下記の通りです。単一の FQDN で IPv4, IPv6 両方の IP アドレスを解決できる NTP サーバーを参照しています。

myadmin@ubuntu:~$ sudo cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/chrony/chrony.conf <<"EOF"
confdir /etc/chrony/conf.d
pool ntp.nict.jp iburst
pool time.google.com iburst
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC
EOF

設定の有効化

設定を有効化します。

myadmin@ubuntu:~$ sudo systemctl restart chronyd.service && systemctl status chronyd.service

正常性確認

正常性を確認します。

chronyc sources

chronyc sources は非常に使用頻度の高いコマンドになります。NTP の基本的な正常性はこのコマンドで確認できます。

myadmin@ubuntu:~$ chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- 2001:ce8:78::2                1  10   377   941   +174us[ +225us] +/- 7087us
^+ ntp-b2.nict.go.jp             1  10   377     6   +150us[ +150us] +/- 2351us
^* ntp-a3.nict.go.jp             1  10   377   379   -219us[ -167us] +/- 2701us
^+ ntp-k1.nict.jp                1  10   377   730   -163us[ -112us] +/- 7205us
^- time3.google.com              1  10   377    40   -626us[ -626us] +/-   23ms
^- time4.google.com              1  10   377   982   -427us[ -376us] +/-   21ms
^- time1.google.com              1  10   377   124  +1115us[+1115us] +/-   21ms
^- time3.google.com              1  10   377    19  +1269us[+1269us] +/-   20ms

以下は Red Hat の[18.3. chrony の使用]の内容をそのまま転記しています。

項目説明
Mソースのモードを示します。^ はサーバーを意味し、= はピアを意味し、# はローカルに接続された基準クロックを意味します。
Sこの列は、ソースの状態を示します。*は、chronyd が現在同期しているソースを表します。+は、選択したソースと結合する、受け入れ可能なソースを表します。-は、受け入れ可能なソースで、結合アルゴリズムにより除外されたものを表します。? は、接続が切断されたソース、またはパケットがすべてのテストをパスしないソースを表します。x は、chronyd が falseticker と考える (つまり、その時間が他の大半のソースと一致しない) クロックを表します。~は、時間の変動性が大きすぎるように見えるソースを表します。? 条件は、少なくとも 3 つのサンプルが収集されるまで開始時にも表示されます。
Name/IP addressソースの名前または IP アドレス、もしくは基準クロックの参照 ID を表示します。
Stratum直近で受け取ったサンプルでレポートされているソースの stratum を表示します。Stratum 1 は、ローカルで基準クロックに接続しているコンピューターを示します。Stratum 1 コンピューターに同期しているコンピューターは、stratum 2 に存在することになります。同じく、Stratum 2 コンピューターに同期しているコンピューターは stratum 3 に存在することになり、以後も同様に続きます。
Pollソースがポーリングされるレートで、間隔のベース-2 対数を秒数で示します。つまり、値が 6 の場合は、64 秒ごとに測定が行われます。
chronyd は、一般的な条件に応じて、ポーリングレートを自動的に変更します。
Reachソースの到達可能性のレジスターで、8 進法で表示されます。レジスターは 8 ビットで、ソースからパケットを受信するたびに、またはミスするたびに更新されます。値が 377 の場合は、最近の 8 回の通信全体で、有効な返信を受け取ったことを表します。
LastRxこのコラムは、ソースから最後のサンプルがいつ受信されたかを表示します。通常は、秒数で表示されます。mhd、および y の各文字は、それぞれ分、時間、日、年を表します。値が 10 年の場合は、このソースからまだサンプルを受信していないことを示します。
Last sampleこの列は、ローカルクロックと、最後に測定されたソースの間のオフセットを表示します。角括弧内の数字は、実際に測定されたオフセットを表示します。これには ns (ナノ秒)、us (マイクロ秒)、ms (ミリ秒)、または s (秒) の各接尾辞が付く場合があります。角括弧の左側は元の測定を示し、slew がそれ以降にローカルクロックに適用可能になるように調整されています。+/- に続く数字は、測定におけるエラーのマージンを示します。オフセットの値がプラスの場合は、ローカルクロックがソースよりも進んでいることを意味します。
chronyc sources の説明

chronyc tracking

chronyc tracking は主に閏秒に関する状態を確認します。Leap status が Normal であれば正常、問題があれば Not synchronized となります。

myadmin@ubuntu:~$ chronyc tracking
Reference ID    : 85F3EEF4 (ntp-a3.nict.go.jp)
Stratum         : 2
Ref time (UTC)  : Sun Jan 15 11:28:00 2023
System time     : 0.000063860 seconds fast of NTP time
Last offset     : +0.000052055 seconds
RMS offset      : 0.000130739 seconds
Frequency       : 10.485 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.010 ppm
Root delay      : 0.004760023 seconds
Root dispersion : 0.000827168 seconds
Update interval : 1035.4 seconds
Leap status     : Normal

目次に戻る

Ubuntu 22.04 chrony 時刻同期設定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る