2011年9月10日土曜日

Fedora 16 に新採用された chrony の設定

Fedora 16 (今現在は Alpha ですが) では、NTP クライアントが ntpd から chronyd に変更されています。設定方法について、メモです。

まず、rpm 情報です。
[root@fedora16 ~]# rpm -qi chrony
Name        : chrony
Version     : 1.26
Release     : 3.20110831gitb088b7.fc16
Architecture: x86_64
Install Date: Sat 10 Sep 2011 06:54:41 AM JST
Group       : System Environment/Daemons
Size        : 546684
License     : GPLv2
Signature   : RSA/SHA256, Tue 06 Sep 2011 07:54:34 PM JST, Key ID 067f00b6a82ba4b7
Source RPM  : chrony-1.26-3.20110831gitb088b7.fc16.src.rpm
Build Date  : Wed 07 Sep 2011 12:29:09 AM JST
Build Host  : x86-14.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://chrony.tuxfamily.org
Summary     : An NTP client/server
Description :
A client/server for the Network Time Protocol, this program keeps your
computer's clock accurate. It was specially designed to support
systems with intermittent internet connections, but it also works well
in permanently connected environments. It can use also hardware reference
clocks, system real-time clock or manual input as time references.
systemd の初期状態を確認。chronyd は disabled になってます。#それにしても、systemctl コマンドに慣れないなあ、、、
[root@fedora16 ~]# systemctl status chronyd.service
chronyd.service - NTP client/server
          Loaded: loaded (/lib/systemd/system/chronyd.service; disabled)
          Active: inactive (dead)
          CGroup: name=systemd:/system/chronyd.service
これを、enable に変更する。
[root@fedora16 ~]# systemctl enable chronyd.service
ln -s '/lib/systemd/system/chronyd.service' '/etc/systemd/system/multi-user.target.wants/chronyd.service'
[root@fedora16 ~]# systemctl status chronyd.service
chronyd.service - NTP client/server
          Loaded: loaded (/lib/systemd/system/chronyd.service; enabled)
          Active: inactive (dead)
          CGroup: name=systemd:/system/chronyd.service
設定ファイル (/etc/chronyd.conf) は、ntpd と似た雰囲気です。
[root@fedora16 ~]# rpm -qc chrony  ※設定ファイルの所在を確認
/etc/chrony.conf
/etc/chrony.keys
/etc/logrotate.d/chrony
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.fedora.pool.ntp.org iburst
server 1.fedora.pool.ntp.org iburst
server 2.fedora.pool.ntp.org iburst
server 3.fedora.pool.ntp.org iburst

# Ignore stratum in source selection.
stratumweight 0

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel RTC synchronization.
rtcsync

# In first three updates step the system clock instead of slew
# if the adjustment is larger than 100 seconds.
makestep 100 3

# Allow client access from local network.
#allow 192.168/16

# Serve time even if not synchronized to any NTP server.
#local stratum 10

keyfile /etc/chrony.keys

# Specify the key used as password for chronyc.
commandkey 1

# Disable logging of client accesses.
noclientlog

# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5

logdir /var/log/chrony
#log measurements statistics tracking
そんでもって起動!
[root@fedora16 ~]# systemctl start chronyd.service   ※起動!
[root@fedora16 ~]# systemctl status chrnoyd.service  ※打ちにくい、、、typo した、、、
chrnoyd.service
          Loaded: error (Reason: No such file or directory)
          Active: inactive (dead)
[root@fedora16 ~]# systemctl status chronyd.service  ※確認
chronyd.service - NTP client/server
          Loaded: loaded (/lib/systemd/system/chronyd.service; enabled)
          Active: active (running) since Sat, 10 Sep 2011 20:54:47 +0900; 14s ago
         Process: 19657 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS)
         Process: 19654 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS)
         Process: 19645 ExecStartPre=/usr/libexec/chrony-helper generate-commandkey (code=exited, status=0/SUCCESS)
        Main PID: 19656 (chronyd)
          CGroup: name=systemd:/system/chronyd.service
                  └ 19656 /usr/sbin/chronyd -u chrony
ntpq のような状態確認は、chronyc で行います。
[root@fedora16 ~]# chronyc sources -v
210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = OK for sync, '?' = unreachable,
| /                'x' = time may be in error, '~' = time is too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                  \            |    zzzz = estimated error.
||                                   |           |                         
MS Name/IP address           Stratum Poll LastRx Last sample
============================================================================
^+ javanese.kjsl.com             2    6     18    -11ms[  -11ms] +/-  211ms
^* balthasar.gimasystem.jp       3    6     20   +321us[ +815us] +/-   53ms
^+ z2.ktroad.net                 3    6     20  +1228us[+1722us] +/-   75ms
^+ 219x123x70x90.ap219.ftth.     2    6     20  -3397us[-3397us] +/-   57ms

[root@fedora16 ~]# chronyc sourcestats -v
210 Number of sources = 4
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
javanese.kjsl.com          10   6   397      2.808      6.249    -12ms   570us
balthasar.gimasystem.jp    10   8   395      0.171      8.376  +3871ns   717us
z2.ktroad.net              10   5   395      0.157      8.272  +1367us   600us
219x123x70x90.ap219.ftth.  10   6   395      2.790     10.922  -3060us   979us

ここまで書いてなんですが、ntpd が無くなったわけではないので、そちらの方が良ければ、入れれば良いです。
[root@fedora16 ~]# yum search ntp | grep ^ntp.x86_64
ntp.x86_64 : The NTP daemon and utilities

2014-05-05追記
RHEL7.0 RC を試しましたが、デフォルトの NTP クライアントは、やはり chrony に変更になっていました。設定/操作方法は、Fedora 16 で調べた時と特段変わりないようです。それと、やはり ntpd も収録されているので、そちらを使うことも可能でした。

2015-02-01追記
追記していませんでしたが、RHEL7/CentOS7 では、デフォルトの NTP クライアントは、chrony でリリースされています。
殆どの場合、/etc/chronyd.conf 中の server 行を修正して、systemctl restart chrony.service を実行するだけで良いかと思います。6ヶ月以上動かしているマシンがありますが、chrony に関して特段不都合は無い感触です。
なお、ntpd に切り替えることもできるので、これまでの運用経験値・実績を重視するのであれば、切り替える選択肢もあります。当然ではありますが、ネット上の情報量は ntpd のほうが多いというメリットもあります。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ