19.10. timemaster を使用した PTP または NTP 時間への同期

複数の PTP ドメインがネットワーク上で利用できるか、または NTP へのフォールバックが必要な場合、timemasterプログラムを使用して、利用可能なすべてのタイムソースにシステムクロックを同期できます。PTP 時間は、共有メモリードライバー (システムで設定されている NTP デーモンに応じて異なる chronyd または ntpd へのSHM 参照クロック) により phc2sys and ptp4l で提供されます。NTP デーモンは次に、すべてのタイムソース、PTP および NTP の両方を比較でき、システムクロックを同期させるのに最善のソースを使用できます。
開始時に、timemasterNTP および PTP タイムソースを指定する設定ファイルを読み取り、独自のクロックを持つか、または PTP ハードウェアクロック (PHC) を共有するネットワークインターフェースを確認し、ptp4l および chronyd または ntpd の設定ファイルを生成し、必要に応じて ptp4lphc2sys、および chronyd または ntpd プロセスを起動します。終了時には生成された設定ファイルは削除されます。chronyd, ntpd、および ptp4l の設定ファイルは /var/run/timemaster/ に書き込まれます。

19.10.1. timemaster をサービスとして起動

timemaster をサービスとして起動するには、root で以下のコマンドを発行します。
~]# systemctl start timemaster
これにより、 /etc/timemaster.conf のオプションが読み取られます。Red Hat Enterprise Linux 7 におけるシステムサービスの管理についての詳細は、10章systemd によるサービス管理 を参照してください。

19.10.2. timemaster 設定ファイルの概要

Red Hat Enterprise Linux のデフォルトの /etc/timemaster.conf ファイルには、デフォルトオプションを含む数多くのセクションがあります。このセクションの見出しは括弧で囲まれます。
デフォルト設定を表示するには、以下のコマンドを実行します。
~]$ less /etc/timemaster.conf
# Configuration file for timemaster

#[ntp_server ntp-server.local]
#minpoll 4
#maxpoll 4

#[ptp_domain 0]
#interfaces eth0

[timemaster]
ntp_program chronyd

[chrony.conf]
include /etc/chrony.conf

[ntp.conf]
includefile /etc/ntp.conf

[ptp4l.conf]

[chronyd]
path /usr/sbin/chronyd
options -u chrony

[ntpd]
path /usr/sbin/ntpd
options -u ntp:ntp -g

[phc2sys]
path /usr/sbin/phc2sys

[ptp4l]
path /usr/sbin/ptp4l
以下のような名前のセクションに注目してください:
[ntp_server address]
これは、NTP サーバーセクションの例であり、ntp-server.local はローカル LAN の NTP サーバーのホスト名の例です。セクション名の一部としてホスト名または IP アドレスを使用し、必要に応じてセクションを追加してください。セクション例の短いポーリング値は公開サーバーには適していないことに注意してください。適切な minpoll および maxpoll 値の説明については、18章ntpd を使用した NTP 設定 を参照してください。
次のような名前のセクションに注意してください:
[ptp_domain number]
PTP domain は、相互に同期する 1 つ以上の PTP クロックのグループです。それらは別のドメインでクロックに同期される場合もありますが、同期されない場合もあります。同じドメイン番号で設定されているクロックがドメインを構成します。これには、PTP グランドマスタークロックが含まれます。各 PTP domain セクションのドメイン番号は、ネットワーク上に設定される PTP ドメインのいずれかに対応している必要があります。
ptp4l のインスタンスは、独自の PTP クロックを持つすべてのインスタンスで起動し、ハードウェアのタイムスタンプは自動的に有効にされます。ハードウェアのタイムスタンプをサポートするインターフェースには PTP クロック (PHC) が割り当てられます。ただし、NIC 上のインターフェースのグループが PHC を共有することは可能です。別々の ptp4l インスタンスは、同じ PHC を共有するインターフェースの各グループ、およびソフトウェアのタイムスタンプのみをサポートする各インスタンスに対して起動します。すべての ptp4l インスタンスはスレーブとして実行されるように設定されます。ハードウェアのタイムスタンプが設定されたインターフェースが 1 つ以上の PTP ドメインに指定される場合、作成される最初の ptp4l インスタンスのみで、ハードウェアのタイムスタンプが有効にされます。
以下のような名前のセクションに注目してください:
[timemaster]
デフォルトの timemaster 設定には、アクセス制限および認証キーの設定を組み込むためにシステムの ntpd および chrony 設定 (/etc/ntp.conf または /etc/chronyd.conf) が含まれます。つまり、そこに指定されるすべての NTP サーバーが timemaster で使用されることを意味しています。
セクションの見出しは以下のようになります。
  • [ntp_server ntp-server.local] — このサーバーのポーリング間隔を指定します。必要に応じて追加のセクションを作成します。セクション見出しにホスト名または IP アドレスを組み込みます。
  • [ptp_domain 0] — このドメインに PTP クロックを設定するインターフェースを指定します。必要に応じて、適切なドメイン番号で追加のセクションを作成します。
  • [timemaster]NTP デーモンが使用されるように指定します。使用できる値は chronyd および ntpd です。
  • [chrony.conf]chronyd に生成される設定ファイルにコピーされる追加設定を指定します。
  • [ntp.conf]ntpd に生成される設定ファイルにコピーされる追加設定を指定します。
  • [ptp4l.conf]ptp4l に生成される設定ファイルにコピーされるオプションを指定します。
  • [chronyd]chronyd に対してコマンドラインで渡される追加設定を指定します。
  • [ntpd]ntpd に対してコマンドラインで渡される追加設定を指定します。
  • [phc2sys]phc2sys に対してコマンドラインで渡される追加設定を指定します。
  • [ptp4l]ptp4l のすべてのインスタンスに対してコマンドラインで渡される追加設定を指定します。
セクション見出しおよびその内容の詳細は、timemaster(8) man ページで説明されています。

19.10.3. timemaster オプションの設定

手順19.1 timemaster 設定ファイルの編集

  1. デフォルト設定を変更するには、root で編集するために /etc/timemaster.conf ファイルを開きます。
    ~]# vi /etc/timemaster.conf
  2. timemaster を使用して制御する必要のあるそれぞれの NTP サーバーについて、[ntp_server address] セクションを作成します。セクション例にある短いポーリング値は公開サーバーには適さないことに注意してください。適切な minpoll 値および maxpoll 値の説明については、18章ntpd を使用した NTP 設定 を参照してください。
  3. ドメインで使用する必要のあるインタフェースを追加するには、#[ptp_domain 0] セクションを編集し、インターフェースを追加します。必要に応じて追加のドメインを作成します。以下は例になります。
    [ptp_domain 0]
           interfaces eth0
    
           [ptp_domain 1]
           interfaces eth1
  4. このシステムの NTP デーモンとして ntpd を使用することが必要な場合、[timemaster] セクションのデフォルトエントリーを、chronyd から ntpd に変更します。ntpd と chronyd の違いについての情報は、17章chrony スイートを使用した NTP 設定 を参照してください。
  5. chronyd をこのシステムの NTP サーバーとして使用している場合、[chrony.conf] セクションのデフォルトのinclude /etc/chrony.conf エントリーの下にオプションを追加します。/etc/chrony.conf のパスが変更されたことが認識される場合、デフォルトの include エントリーを編集します。
  6. ntpd をこのシステムの NTP サーバーとして使用している場合、[ntp.conf] セクションのデフォルトのinclude /etc/ntp.conf エントリーの下にオプションを追加します。/etc/ntp.conf のパスが変更されたことが認識される場合、デフォルトの include エントリーを編集します。
  7. [ptp4l.conf] セクションに、ptp4l に生成される設定ファイルにコピーされるオプションを追加します。この章では、共通オプションについて説明します。詳細は、ptp4l(8) man ページを参照してください。
  8. [chronyd] セクションに、timemaster で呼び出される場合に chronyd に渡されるコマンドラインのオプションを追加します。chronyd の使用についての情報は、17章chrony スイートを使用した NTP 設定 を参照してください。
  9. [ntpd] セクションに、timemaster で呼び出される場合に ntpd に渡されるコマンドラインのオプションを追加します。ntpd の使用についての情報は、18章ntpd を使用した NTP 設定 を参照してください。
  10. [phc2sys] セクションに、timemaster で呼び出される場合に phc2sys に渡されるコマンドラインオプションを追加します。この章では、共通オプションについて説明します。詳細は、phy2sys(8) man ページを参照してください。
  11. [ptp4l] セクションに、timemaster で呼び出される場合に ptp4l に渡されるコマンドラインオプションを追加します。この章では、共通オプションについて説明します。詳細は、ptp4l(8) man ページを参照してください。
  12. 設定ファイルを保存し、timemaster を再起動するには、root で以下のコマンドを実行します。
    ~]# systemctl restart timemaster