CentOS 7では時刻同期としてntpdではなくて、chronyd を使うようです。
使い方をまとめてみました。
chronydとは
chronydはNTP(NTP、ネットワークタイムプロトコル)のクライアントの一つです。
NTPサーバーに接続して、chronydが動いているサーバーの時刻を補正します。
これまでCentOSに慣れ親しんできた私には時刻同期のクライアントと言えば、ntpdでした。
CentOS 7では時刻同期にはntpdに代わりchronydを使います。
NTPはUDPのポート123番を使用します。
chronydの設定とインストール
chronydのインストールはyumで行います。
1 |
# yum install chrony |
chronydの設定ファイルは、/etc/chronyd.confです。
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
のところが同期すべきサーバーですが、個人サーバー運用ではデフォルトのままで問題ありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). 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 # 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 10 seconds. makestep 10 3 # Allow NTP client access from local network. #allow 192.168/16 # Listen for commands only on localhost. bindcmdaddress 127.0.0.1 bindcmdaddress ::1 # 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 # Generate command key if missing. generatecommandkey # 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 |
chronydをサービスに登録して起動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
(chronydをサービスに登録) [root@localhost etc]# systemctl enable chronyd.service ln -s '/usr/lib/systemd/system/chronyd.service' '/etc/systemd/system/multi-user.target.wants/chronyd.service' (chronydを起動) [root@localhost etc]# systemctl start chronyd.service (chronydの起動状態を確認) [root@localhost etc]# systemctl status chronyd.service chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since 日 2014-11-23 11:44:23 JST; 11s ago Process: 4943 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS) Process: 4940 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 4942 (chronyd) CGroup: /system.slice/chronyd.service └─4942 /usr/sbin/chronyd -u chrony 11月 23 11:44:23 localhost.localdomain chronyd[4942]: chronyd version 1.29.1 starting 11月 23 11:44:23 localhost.localdomain chronyd[4942]: Linux kernel major=3 minor=1...0 11月 23 11:44:23 localhost.localdomain chronyd[4942]: hz=100 shift_hz=7 freq_scale...2 11月 23 11:44:23 localhost.localdomain chronyd[4942]: Frequency -11.846 +/- 2.766 ...t 11月 23 11:44:23 localhost.localdomain systemd[1]: Started NTP client/server. 11月 23 11:44:29 localhost.localdomain chronyd[4942]: Selected source 50.31.240.56 11月 23 11:44:31 localhost.localdomain chronyd[4942]: Selected source 157.7.154.134 Hint: Some lines were ellipsized, use -l to show in full. |
chronydとntpdの比較
chronydはntpdと比べると利点がある一方欠点もあります。
chronydのntpdに対する利点
メモリ使用量が圧倒的に少ない
ntpdは1秒おきにプロセスが起きるのに対して、chronydは起きる必要はない。このためCPUや電源に優しい。
chronydのntpdに対する欠点
chronydはadjtime()関数を用いてオフセットを修正するために、多少の誤差が生じる
Autokey認証のような優れたNTPの拡張機能はサポートされない
chronydを使った時刻同期の実験
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
(時刻を2003年1月1日に設定) [root@localhost ~]# date 010100002003.00 2003年 1月 1日 水曜日 00:00:00 JST (現在時刻の確認) [root@localhost ~]# date 2003年 1月 1日 水曜日 00:00:03 JST (chronydの状況を確認) [root@localhost ~]# systemctl status chronyd chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since 水 2003-01-01 00:14:39 JST; 11 years 10 months ago Process: 6438 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS) Process: 6434 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 6437 (chronyd) CGroup: /system.slice/chronyd.service └─6437 /usr/sbin/chronyd -u chrony 1月 01 00:14:39 localhost.localdomain chronyd[6437]: hz=100 shift_hz=7 freq_scale...2 1月 01 00:14:39 localhost.localdomain chronyd[6437]: Frequency -12.137 +/- 2.709 ...t 1月 01 00:14:39 localhost.localdomain systemd[1]: Started NTP client/server. 1月 01 00:14:51 localhost.localdomain chronyd[6437]: Selected source 157.7.203.102 1月 01 00:14:51 localhost.localdomain chronyd[6437]: System clock wrong by 375365...d 11月 23 12:22:30 localhost.localdomain chronyd[6437]: System clock was stepped by ...s 11月 23 12:22:32 localhost.localdomain chronyd[6437]: Selected source 219.123.70.91 1月 01 00:00:19 localhost.localdomain chronyd[6437]: Backward time jump detected!...) 1月 01 00:00:19 localhost.localdomain chronyd[6437]: System clock wrong by 375366...d 11月 23 12:23:37 localhost.localdomain chronyd[6437]: System clock was stepped by ...s Hint: Some lines were ellipsized, use -l to show in full. (chronydは時刻がずれていることを確認して補正しようとしていることが分かる) (正しい時刻に補正されていることを確認) [root@localhost ~]# date 2014年 11月 23日 日曜日 12:23:59 JST |
おまけ:タイムゾーンの設定
タイムゾーンについては、timedatectlコマンドを使って設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
(タイムゾーンの確認) [root@localhost ~]# timedatectl status Local time: 日 2014-11-23 12:27:01 JST Universal time: 日 2014-11-23 03:27:01 UTC RTC time: 火 2002-12-31 15:19:12 Timezone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a (タイムゾーンの一覧を表示) [root@localhost ~]# timedatectl list-timezones (タイムゾーンの設定方法) [root@localhost ~]# timedatectl set-timezone <Zone>/<SubZone> (タイムゾーンの設定例) [root@localhost ~]# timedatectl set-timezone Asia/Tokyo |
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント