検索

11.9. Compute ノードの Timemaster との同期

download PDF
重要

この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。テクノロジープレビュー機能の詳細は、対象範囲の詳細 を参照してください。

時刻プロトコルを使用して、システム間で一貫性のあるタイムスタンプを維持します。

Red Hat OpenStack Platform (RHOSP) には、Precision Time Protocol (PTP) および Network Time Protocol (NTP) のサポートが含まれています。

NTP を使用して、ネットワークのクロックをミリ秒の範囲で同期できます。また、PTP を使用して、クロックをより高いサブマイクロ秒単位の正確さで同期できます。PTP のユースケースの例として、高いスループットと高い干渉のリスクを提供する複数のアンテナが含まれる仮想ラジオアクセスネットワーク (vRAN) があります。

Timemaster は、ptp4lphc2syschronydまたはntpdと組み合わせて使用し、システムクロックを NTP や PTP タイムソースに同期させるプログラムです。phc2sysおよびptp4lプログラムは、SHM (Shared Memory Driver) 基準クロックを使用して PTP 時間をchronydまたはntpdに送信し、タイムソースを比較してシステムクロックを同期させます。

Red Hat Enterprise Linux (RHEL) カーネルにおける PTPv2 プロトコルの実装はlinuxptpです。

linuxptpパッケージには、PTP バウンダリクロックと通常クロック同期用のptp4lプログラムと、ハードウェアタイムスタンプ用のphc2sysプログラムが含まれています。PTP の詳細は、Red Hat Enterprise Linux System Administrator's GuideIntroduction to PTP を参照してください。

Chrony は NTP プロトコルの実装です。Chrony の主な設定要素は、Chrony デーモンであるchronydと、Chrony コマンドラインインターフェイスであるchonycの 2 つです。

Chrony の詳細は、Red Hat Enterprise Linux システム管理者ガイドChrony スイートを使用して NTP を設定する を参照してください。

以下の図は、PTP 設定でのパケット移動の概要です。

図11.1 PTP パケット移動の概要

PTP パケット移動の概要

以下の図は、PTP 設定の Compute ノードでのパケット移動の概要です。

図11.2 PTP パケット移動の詳細

PTP パケット移動の詳細

11.9.1. Timemaster のハードウェア要件

以下のハードウェア機能があることを確認します。

  • NIC にハードウェアのタイムスタンプ機能を設定している。
  • マルチキャストパケットを許可するようスイッチを設定している。
  • スイッチが境界または透過的なクロックとしても機能するように設定している。

ハードウェアのタイムスタンプを確認するには、ethtool -T <device>というコマンドを使用します。

$ ethtool -T p5p1
Time stamping parameters for p5p1:
Capabilities:
        hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
        software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
        hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
        software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
        software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
        hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 6
Hardware Transmit Timestamp Modes:
        off                   (HWTSTAMP_TX_OFF)
        on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
        ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
        ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)

透過型または境界クロックのスイッチを使用して、正確性が高く、レイテンシーを低くすることができます。境界クロックにアップリンクスイッチを使用できます。バウンダリクロックスイッチは、PTPv2 ヘッダーの 8 ビットのcorrectionFieldを使用して、遅延の変動を補正し、エンドクロックの精度を高めます。透過的なクロックスイッチでは、correctionFieldではなく、エンドクロックが遅延変動を計算します。

11.9.2. Timemaster の設定

オーバークラウドノードの時刻同期に使用するデフォルトの Red Hat OpenStack Platform (RHOSP) サービスは OS::TripleO::Services::Timesync です。

既知の制限

  • 仮想コントローラー向けに NTP を有効にし、ベアメタルノード用に PTP を有効にします。
  • ptp4l には互換性のある PTP デバイスが必要なため、virtio インターフェイスには互換性がありません。
  • SR-IOV を使用する仮想マシンに Physical Function (PF) を使用します。Virtual Function (VF) は PTP に必要なレジスターを公開せず、仮想マシンは kvm_ptp を使用して時刻を計算します。
  • 複数のソースと複数のネットワークパスを持つ高可用性 (HA) インターフェイスには互換性がありません。

手順

  1. 選択したロールに属するノードで Timemaster サービスを有効にするには、そのロールの roles_data.yaml ファイルセクションで、OS::TripleO::Services::Timesync が含まれる行をOS::TripleO::Services::TimeMaster 行に置き換えます。

    #- OS::TripleO::Services::Timesync
    - OS::TripleO::Services::TimeMaster
  2. 使用する Compute ロールの heat パラメーターを設定します。

    #Example
    ComputeSriovParameters:
      PTPInterfaces: ‘0:eno1,1:eno2’
      PTPMessageTransport: ‘UDPv4’
  3. ご自分の環境に該当するその他の環境ファイルと共に、新しい環境ファイルを openstack overcloud deploy コマンドに追加します。

    $ openstack overcloud deploy \
    --templates \
    
    …
    -e <existing_overcloud_environment_files> \
    -e <new_environment_file1> \
    -e <new_environment_file2> \
    …
    • <existing_overcloud_environment_files> を既存のデプロイメントに含まれる環境ファイルのリストに置き換えます。
    • <new_environment_file> を、オーバークラウドのデプロイメントプロセスに追加する新しい環境ファイルに置き換えます。

検証

  • ptp4linux と共にインストールされたコマンド phc_ctl を使用して NIC ハードウェアクロックにクエリーを実行します。

    # phc_ctl <clock_name> get
    # phc_ctl <clock_name> cmp

11.9.3. Timemaster 設定の例

$ cat /etc/timemaster.conf
# Configuration file for timemaster

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

[ptp_domain 0]
interfaces eno1
#ptp4l_setting network_transport l2
#delay 10e-6

[timemaster]
ntp_program chronyd

[chrony.conf]
#include /etc/chrony.conf
server clock.redhat.com iburst minpoll 6 maxpoll 10

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

[ptp4l.conf]
#includefile /etc/ptp4l.conf
network_transport L2

[chronyd]
path /usr/sbin/chronyd

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

[phc2sys]
path /usr/sbin/phc2sys
#options -w

[ptp4l]
path /usr/sbin/ptp4l
#options -2 -i eno1

11.9.4. Timemaster 操作の例

$ systemctl status timemaster
● timemaster.service - Synchronize system clock to NTP and PTP time sources
   Loaded: loaded (/usr/lib/systemd/system/timemaster.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-08-25 19:10:18 UTC; 2min 6s ago
 Main PID: 2573 (timemaster)
    Tasks: 6 (limit: 357097)
   Memory: 5.1M
   CGroup: /system.slice/timemaster.service
           ├─2573 /usr/sbin/timemaster -f /etc/timemaster.conf
           ├─2577 /usr/sbin/chronyd -n -f /var/run/timemaster/chrony.conf
           ├─2582 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.0.conf -H -i eno1
           ├─2583 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.0.socket -t [0:eno1] -n 0 -E ntpshm -M 0
           ├─2587 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.1.conf -H -i eno2
           └─2588 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.1.socket -t [0:eno2] -n 0 -E ntpshm -M 1

Aug 25 19:11:53 computesriov-0 ptp4l[2587]: [152.562] [0:eno2] selected local clock e4434b.fffe.4a0c24 as best master
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.