CentOS6までは時刻同期といえばNTPでした、CentOS7からChronyに変更となっています。とはいえ、CentOS7でも継続してNTPを使用することも可能です。Chronyがインストールされていない場合は以下のコマンドでインストールします。
# yum install chrony # rpm -qa | grep chrony chrony-1.29.1-1.el7.centos.x86_64 |
chronyとntpdが両方インストールされている場合はどちらかを停止しておく必要があります。ここではchronyを設定しますのでntpdを停止した後、chronyを起動します。
※ntpdが起動している場合は停止する # systemctl stop ntpd.service # systemctl disable ntpd.service ※chronydを起動する # systemctl start chronyd.service # ps ax | grep chrony 17160 ? S 0:00 /usr/sbin/chronyd -u chrony |
chronyの設定ファイルは/etc/chrony.confなのでこれを編集することになります。
# vi /etc/chrony.conf # 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 # 既存のリストはコメントアウトし参照したいサーバを追記 # iburstは起動直後にサーバに4回連続的に問い合わせをし時刻同期が早くなる server 192.168.6.17 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. # NTPクライアントアクセス許可リスト # デフォルトは全ての拒否となっているのでNTPアクセスさせたい場合は # 最低一個のallowを記述する必要がある。 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 |
NTPサーバ兼クライアントとして稼働するのに最低必要な設定は上記2つです。ntpの際にはOS上のクロックはネット経由で同期されるもののハードウェアクロックは同期されず、OS再起動などのタイミングで一気に時刻がずれるといったことがありました。hwclock -wコマンドを定期実行することで回避しておりましたが、chronyの場合は上記設定の中のrtcsyncオプションで自動的にハードウェアクロックと同期する仕組みとなっております。
設定を編集すれば有効にするためにchronyを再起動します。
# systemctl restart chronyd.service |
動作状況を確認するコマンドは以下です。
# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 192.168.6.17 3 6 17 25 +1042ns[ -81us] +/- 100ms |
“*”がついているものが同期が成功しているサーバです。上記では1台のサーバしか表示されていませんが、chrony.confのserverで複数記述するとその分、上記にも表示されるということになります。
その他の項目の意味については以下のURLが参考になります。
http://qiita.com/yunano/items/7883cf295f91f4ef716b