17.6. PTP デバイスの設定
PTP Operator は NodePtpDevice.ptp.openshift.io
カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。
インストールが完了すると、PTP Operator はクラスターを検索して各ノードで PTP 対応のネットワークデバイスを検索します。これは、互換性のある PTP 対応のネットワークデバイスを提供する各ノードの NodePtpDevice
カスタムリソース (CR) オブジェクトを作成し、更新します。
17.6.1. クラスター内の PTP 対応ネットワークデバイスの検出 リンクのコピーリンクがクリップボードにコピーされました!
PTP 対応ネットワークデバイスを設定できるように、クラスター内に存在する PTP 対応ネットワークデバイスを特定します。
前提条件
- PTP Operator がインストールされている。
手順
クラスター内の PTP 対応ネットワークデバイスの一覧を返すには、以下のコマンドを実行します。
oc get NodePtpDevice -n openshift-ptp -o yaml
$ oc get NodePtpDevice -n openshift-ptp -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.2. linuxptp サービスをグランドマスタークロックとして設定する リンクのコピーリンクがクリップボードにコピーされました!
ホスト NIC を設定する PtpConfig
カスタムリソース (CR) を作成することで、linuxptp
サービス (ptp4l
、phc2sys
、ts2phc
) をグランドマスタークロック (T-GM) として設定できます。
ts2phc
ユーティリティーを使用すると、システムクロックを PTP グランドマスタークロックと同期できるため、ノードは高精度クロック信号をダウンストリームの PTP 通常クロックおよび境界クロックにストリーミングできます。
次の PtpConfig
CR の例をベースとして使用して、linuxptp
サービスを特定のハードウェアおよび環境のグランドマスタークロックとして設定します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOpts
、ptp4lConf
、ptpClockThreshold
に適切な値を設定します。ptpClockThreshold
は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
- 実稼働環境の T-GM クロックの場合は、ベアメタルクラスターホストに Intel E810 Westport Channel NIC がインストールされている。
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
PtpConfig
リソースを作成します。以下に例を示します。要件に応じて、デプロイメントに次の T-GM 設定のいずれかを使用します。YAML を
grandmaster-clock-ptp-config.yaml
ファイルに保存します。例17.1 PTP グランドマスタークロック設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記PTP グランドマスタークロック設定の例は、テストのみを目的としており、実稼働環境向けのものではありません。
例17.2 E810 NIC の PTP グランドマスタークロック設定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して CR を作成します。
oc create -f grandmaster-clock-ptp-config.yaml
$ oc create -f grandmaster-clock-ptp-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfig
プロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptp
namespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-74m2g 3/3 Running 3 4d15h 10.16.230.7 compute-1.example.com ptp-operator-5f4f48d7c-x7zkf 1/1 Running 1 4d15h 10.128.1.145 compute-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-74m2g 3/3 Running 3 4d15h 10.16.230.7 compute-1.example.com ptp-operator-5f4f48d7c-x7zkf 1/1 Running 1 4d15h 10.128.1.145 compute-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロファイルが正しいことを確認します。
PtpConfig
プロファイルで指定したノードに対応するlinuxptp
デーモンのログを検査します。以下のコマンドを実行します。oc logs linuxptp-daemon-74m2g -n openshift-ptp -c linuxptp-daemon-container
$ oc logs linuxptp-daemon-74m2g -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.2.1. グランドマスタークロックの PtpConfig 設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
このリファレンスでは、linuxptp
サービス (ptp4l
、phc2sys
、ts2phc
) をグランドマスタークロックとして設定する PtpConfig
カスタムリソース (CR) の設定オプションを説明します。
PtpConfig CR フィールド | 説明 |
---|---|
|
grandmaster クロック動作用に NIC を設定する
プラグインメカニズムにより、PTP Operator は自動ハードウェア設定を行うことができます。Intel Westport Channel NIC の場合、 |
|
|
|
|
| データを破棄する前に、送信者からの送信 (TX) タイムスタンプを待機する最大時間を指定します。 |
| JBOD 境界クロック時間遅延値を指定します。この値は、ネットワーク時間デバイス間で受け渡される時間値を修正するために使用されます。 |
|
注記
ここにリストされているネットワークインターフェイスがグランドマスターとして設定されており、 |
|
|
|
|
|
オプション: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17.6.3. linuxptp サービスを通常のクロックとして設定 リンクのコピーリンクがクリップボードにコピーされました!
PtpConfig
カスタムリソース (CR) オブジェクトを作成して、linuxptp
サービス (ptp4l
、phc2sys
) を通常のクロックとして設定できます。
次の例の PtpConfig
CR を、特定のハードウェアおよび環境の通常クロックとして linuxptp
サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOpts
、ptp4lConf
、ptpClockThreshold
に適切な値を設定します。ptpClockThreshold
は、イベントが有効な場合にのみ必要です。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
以下の
PtpConfig
CR を作成してから、YAML をordinary-clock-ptp-config.yaml
ファイルに保存します。PTP 通常クロックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表17.2 PTP 通常クロック CR 設定のオプション カスタムリソースフィールド 説明 name
PtpConfig
CR の名前。profile
1 つ以上の
profile
オブジェクトの配列を指定します。各プロファイルの名前は一意である必要があります。interface
ptp4l
サービスで使用するネットワークインターフェイスを指定します (例:ens787f1
)。ptp4lOpts
ptp4l
サービスのシステム設定オプションを指定します。たとえば、-2
で IEEE 802.3 ネットワークトランスポートを選択します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名-i <interface>
およびサービス設定ファイル-f /etc/ptp4l.conf
を含めないでください。このインターフェイスで PTP 高速イベントを使用するには、--summary_interval -4
を追加します。phc2sysOpts
phc2sys
サービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator はphc2sys
サービスを開始しません。Intel Columbiaville 800 Series NIC の場合、phc2sysOpts
オプションを-a -r -m -n 24 -N 8 -R 16
に設定します。-m
はメッセージをstdout
に出力します。linuxptp-daemon
DaemonSet
はログを解析し、Prometheus メトリックを生成します。ptp4lConf
デフォルトの
/etc/ptp4l.conf
ファイルを置き換える設定が含まれる文字列を指定します。デフォルト設定を使用するには、フィールドを空のままにします。tx_timestamp_timeout
Intel Columbiaville 800 Series NIC の場合、
tx_timestamp_timeout
を50
に設定します。boundary_clock_jbod
Intel Columbiaville 800 Series NIC の場合、
boundary_clock_jbod
を0
に設定します。ptpSchedulingPolicy
ptp4l
とphc2sys
プロセスのスケジューリングポリシー。デフォルト値はSCHED_OTHER
です。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFO
を使用してください。ptpSchedulingPriority
ptpSchedulingPolicy
がSCHED_FIFO
に設定されている場合に、ptp4l
およびphc2sys
プロセスの FIFO の優先度を設定するために使用される 1-65 の整数値。ptpSchedulingPriority
フィールドは、ptpSchedulingPolicy
がSCHED_OTHER
に設定されている場合は使用されません。ptpClockThreshold
オプション:
ptpClockThreshold
が存在しない場合、ptpClockThreshold
フィールドにはデフォルト値が使用されます。ptpClockThreshold
は、PTP マスタークロックが切断されてから PTP イベントが発生するまでの時間を設定します。holdOverTimeout
は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態がFREERUN
に変わるまでの時間値 (秒単位) です。maxOffsetThreshold
およびminOffsetThreshold
設定は、CLOCK_REALTIME
(phc2sys
) またはマスターオフセット (ptp4l
) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l
またはphc2sys
のオフセット値がこの範囲外の場合、PTP クロックの状態がFREERUN
に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態がLOCKED
に設定されます。recommend
profile
がノードに適用される方法を定義する 1 つ以上のrecommend
オブジェクトの配列を指定します。.recommend.profile
profile
セクションで定義される.recommend.profile
オブジェクト名を指定します。.recommend.priority
通常クロックの
.recommend.priority
を0
に設定します。.recommend.match
.recommend.match
ルールをnodeLabel
またはnodeName
の値に指定します。.recommend.match.nodeLabel
oc get nodes --show-labels
コマンドを使用して、ノードオブジェクトのnode.Labels
フィールドのkey
でnodeLabel
を設定します。例:node-role.kubernetes.io/worker
。.recommend.match.nodeName
oc get nodes
コマンドを使用して、nodeName
をノードオブジェクトのnode.Name
フィールドの値に設定します。compute-1.example.com
はその例です。次のコマンドを実行して、
PtpConfig
CR を作成します。oc create -f ordinary-clock-ptp-config.yaml
$ oc create -f ordinary-clock-ptp-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfig
プロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptp
namespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-4xkbb 1/1 Running 0 43m 10.1.196.24 compute-0.example.com linuxptp-daemon-tdspf 1/1 Running 0 43m 10.1.196.25 compute-1.example.com ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-4xkbb 1/1 Running 0 43m 10.1.196.24 compute-0.example.com linuxptp-daemon-tdspf 1/1 Running 0 43m 10.1.196.25 compute-1.example.com ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.129.0.61 control-plane-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロファイルが正しいことを確認します。
PtpConfig
プロファイルで指定したノードに対応するlinuxptp
デーモンのログを検査します。以下のコマンドを実行します。oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container
$ oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.4. linuxptp サービスを境界クロックとして設定 リンクのコピーリンクがクリップボードにコピーされました!
PtpConfig
カスタムリソース (CR) オブジェクトを作成して、linuxptp
サービス (ptp4l
、phc2sys
を設定できます。
次の例の PtpConfig
CR を、特定のハードウェアおよび環境の境界クロックとして linuxptp
サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOpts
、ptp4lConf
、ptpClockThreshold
に適切な値を設定します。ptpClockThreshold
は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
以下の
PtpConfig
CR を作成してから、YAML をboundary-clock-ptp-config.yaml
ファイルに保存します。PTP 境界クロックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表17.3 PTP 境界クロックの CR 設定オプション カスタムリソースフィールド 説明 name
PtpConfig
CR の名前。profile
1 つ以上の
profile
オブジェクトの配列を指定します。name
プロファイルオブジェクトを一意に識別するプロファイルオブジェクトの名前を指定します。
ptp4lOpts
ptp4l
サービスのシステム設定オプションを指定します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名-i <interface>
およびサービス設定ファイル-f /etc/ptp4l.conf
を含めないでください。ptp4lConf
ptp4l
を境界クロックとして起動するために必要な設定を指定します。たとえば、ens1f0
はグランドマスタークロックから同期し、ens1f3
は接続されたデバイスを同期します。<interface_1>
同期クロックを受信するインターフェイス。
<interface_2>
synchronization クロックを送信するインターフェイス。
tx_timestamp_timeout
Intel Columbiaville 800 Series NIC の場合、
tx_timestamp_timeout
を50
に設定します。boundary_clock_jbod
Intel Columbiaville 800 Series NIC の場合、
boundary_clock_jbod
が0
に設定されていることを確認します。Intel Fortville X710 シリーズ NIC の場合、boundary_clock_jbod
が1
に設定されていることを確認します。phc2sysOpts
phc2sys
サービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator はphc2sys
サービスを開始しません。ptpSchedulingPolicy
ptp4l と phc2sys プロセスのスケジューリングポリシー。デフォルト値は
SCHED_OTHER
です。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFO
を使用してください。ptpSchedulingPriority
ptpSchedulingPolicy
がSCHED_FIFO
に設定されている場合に、ptp4l
およびphc2sys
プロセスの FIFO の優先度を設定するために使用される 1-65 の整数値。ptpSchedulingPriority
フィールドは、ptpSchedulingPolicy
がSCHED_OTHER
に設定されている場合は使用されません。ptpClockThreshold
オプション:
ptpClockThreshold
が存在しない場合、ptpClockThreshold
フィールドにはデフォルト値が使用されます。ptpClockThreshold
は、PTP マスタークロックが切断されてから PTP イベントが発生するまでの時間を設定します。holdOverTimeout
は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態がFREERUN
に変わるまでの時間値 (秒単位) です。maxOffsetThreshold
およびminOffsetThreshold
設定は、CLOCK_REALTIME
(phc2sys
) またはマスターオフセット (ptp4l
) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l
またはphc2sys
のオフセット値がこの範囲外の場合、PTP クロックの状態がFREERUN
に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態がLOCKED
に設定されます。recommend
profile
がノードに適用される方法を定義する 1 つ以上のrecommend
オブジェクトの配列を指定します。.recommend.profile
profile
セクションで定義される.recommend.profile
オブジェクト名を指定します。.recommend.priority
0
から99
までの整数値でpriority
を指定します。数値が大きいほど優先度が低くなるため、99
の優先度は10
よりも低くなります。ノードがmatch
フィールドで定義されるルールに基づいて複数のプロファイルに一致する場合、優先順位の高いプロファイルがそのノードに適用されます。.recommend.match
.recommend.match
ルールをnodeLabel
またはnodeName
の値に指定します。.recommend.match.nodeLabel
oc get nodes --show-labels
コマンドを使用して、ノードオブジェクトのnode.Labels
フィールドのkey
でnodeLabel
を設定します。例:node-role.kubernetes.io/worker
。.recommend.match.nodeName
oc get nodes
コマンドを使用して、nodeName
をノードオブジェクトのnode.Name
フィールドの値に設定します。compute-1.example.com
はその例です。以下のコマンドを実行して CR を作成します。
oc create -f boundary-clock-ptp-config.yaml
$ oc create -f boundary-clock-ptp-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfig
プロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptp
namespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-4xkbb 1/1 Running 0 43m 10.1.196.24 compute-0.example.com linuxptp-daemon-tdspf 1/1 Running 0 43m 10.1.196.25 compute-1.example.com ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-4xkbb 1/1 Running 0 43m 10.1.196.24 compute-0.example.com linuxptp-daemon-tdspf 1/1 Running 0 43m 10.1.196.25 compute-1.example.com ptp-operator-657bbb64c8-2f8sj 1/1 Running 0 43m 10.129.0.61 control-plane-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロファイルが正しいことを確認します。
PtpConfig
プロファイルで指定したノードに対応するlinuxptp
デーモンのログを検査します。以下のコマンドを実行します。oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container
$ oc logs linuxptp-daemon-4xkbb -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.5. linuxptp サービスをデュアル NIC ハードウェアの境界クロックとして設定 リンクのコピーリンクがクリップボードにコピーされました!
NIC ごとに PtpConfig
カスタムリソース (CR) オブジェクトを作成することにより、linuxptp
サービス (ptp4l
、phc2sys
) をデュアル NIC ハードウェアの境界クロックとして設定できます。
デュアル NIC ハードウェアを使用すると、各 NIC を同じアップストリームリーダークロックに接続し、NIC ごとに個別の ptp4l
インスタンスをダウンストリームクロックに供給することができます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
「linuxptp サービスを境界クロックとして設定」の参照 CR を各 CR の基礎として使用して、NIC ごとに 1 つずつ、2 つの個別の
PtpConfig
CR を作成します。以下に例を示します。phc2sysOpts
の値を指定して、boundary-clock-ptp-config-nic1.yaml
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow boundary-clock-ptp-config-nic2.yaml
を作成し、phc2sysOpts
フィールドを完全に削除して、2 番目の NIC のphc2sys
サービスを無効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2 番目の NIC の境界クロックとして
ptp4l
を開始するために必要なインターフェイスを指定します。
注記2 番目の NIC で
phc2sys
サービスを無効にするには、2 番目のPtpConfig
CR からphc2sysOpts
フィールドを完全に削除する必要があります。
次のコマンドを実行して、デュアル NIC
PtpConfigCR
を作成します。1 番目の NIC の PTP を設定する CR を作成します。
oc create -f boundary-clock-ptp-config-nic1.yaml
$ oc create -f boundary-clock-ptp-config-nic1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2 番目の NIC の PTP を設定する CR を作成します。
oc create -f boundary-clock-ptp-config-nic2.yaml
$ oc create -f boundary-clock-ptp-config-nic2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PTP Operator が両方の NIC に
PtpConfigCR
を適用していることを確認してください。デュアル NIC ハードウェアがインストールされているノードに対応するlinuxptp
デーモンのログを調べます。たとえば、以下のコマンドを実行します。oc logs linuxptp-daemon-cvgr6 -n openshift-ptp -c linuxptp-daemon-container
$ oc logs linuxptp-daemon-cvgr6 -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
ptp4l[80828.335]: [ptp4l.1.config] master offset 5 s2 freq -5727 path delay 519 ptp4l[80828.343]: [ptp4l.0.config] master offset -5 s2 freq -10607 path delay 533 phc2sys[80828.390]: [ptp4l.0.config] CLOCK_REALTIME phc offset 1 s2 freq -87239 delay 539
ptp4l[80828.335]: [ptp4l.1.config] master offset 5 s2 freq -5727 path delay 519 ptp4l[80828.343]: [ptp4l.0.config] master offset -5 s2 freq -10607 path delay 533 phc2sys[80828.390]: [ptp4l.0.config] CLOCK_REALTIME phc offset 1 s2 freq -87239 delay 539
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.6. PTP 通常クロックの参照としての IntelColumbiavilleE800 シリーズ NIC リンクのコピーリンクがクリップボードにコピーされました!
次の表に、Intel Columbiaville E800 シリーズ NIC を通常のクロックとして使用するために参照 PTP 設定に加える必要のある変更を示します。クラスターに適用する PtpConfig
カスタムリソース (CR) に変更を加えます。
PTP 設定 | 推奨設定 |
---|---|
|
|
|
|
|
|
phc2sysOpts
の場合、-m
はメッセージを stdout
に出力します。linuxptp-daemon
DaemonSet
はログを解析し、Prometheus メトリックを生成します。
17.6.7. PTP ハードウェアの FIFO 優先スケジューリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
低遅延のパフォーマンスを確保する必要のある通信業者や他のデプロイメント設定では、PTP デーモンスレッドは、制約された CPU フットプリントで、残りのインフラストラクチャーのコンポーネントと一緒に、実行されます。デフォルトでは、PTP スレッドは SCHED_OTHER
ポリシーで実行されます。負荷が高いと、エラーなしで運用する必要のある、これらのスレッドのスケジューリングでレイテンシーが発生する可能性があります。
スケジューリングのレイテンシーでエラーが発生する可能性を軽減するために、SCHED_FIFO
ポリシーでスレッドを実行できるように、PTP Operator の linuxptp
サービスを設定できます。PtpConfig
CR に SCHED_FIFO
が設定されている場合には、ptp4l
と phc2sys
は、PtpConfig
CR の ptpSchedulingPriority
フィールドで設定された優先順位で、chrt
の下の親コンテナーで実行されます。
ptpSchedulingPolicy
の設定は任意です。レイテンシーエラーが発生している場合にのみ必要です。
手順
PtpConfig
CR プロファイルを編集します。oc edit PtpConfig -n openshift-ptp
$ oc edit PtpConfig -n openshift-ptp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ptpSchedulingPolicy
とptpSchedulingPriority
フィールドを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存して終了すると、
PtpConfig
CR に変更が適用されます。
検証
PtpConfig
CR が適用されたlinuxptp-daemon
Pod と対応するノードの名前を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-gmv2n 3/3 Running 0 1d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-lgm55 3/3 Running 0 1d17h 10.1.196.25 compute-1.example.com ptp-operator-3r4dcvf7f4-zndk7 1/1 Running 0 1d7h 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-gmv2n 3/3 Running 0 1d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-lgm55 3/3 Running 0 1d17h 10.1.196.25 compute-1.example.com ptp-operator-3r4dcvf7f4-zndk7 1/1 Running 0 1d7h 10.129.0.61 control-plane-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ptp4l
プロセスが、更新されたchrt
FIFO 優先度で実行されていることを確認します。oc -n openshift-ptp logs linuxptp-daemon-lgm55 -c linuxptp-daemon-container|grep chrt
$ oc -n openshift-ptp logs linuxptp-daemon-lgm55 -c linuxptp-daemon-container|grep chrt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
I1216 19:24:57.091872 1600715 daemon.go:285] /bin/chrt -f 65 /usr/sbin/ptp4l -f /var/run/ptp4l.0.config -2 --summary_interval -4 -m
I1216 19:24:57.091872 1600715 daemon.go:285] /bin/chrt -f 65 /usr/sbin/ptp4l -f /var/run/ptp4l.0.config -2 --summary_interval -4 -m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.6.8. linuxptp サービスのログフィルタリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
linuxptp
デーモンは、デバッグに使用できるログを生成します。ストレージ容量が制限されている通信またはその他のデプロイメント設定では、これらのログはストレージ需要に追加できます。
ログメッセージの数を減らすために、PtpConfig
カスタムリソース (CR) を設定して、master offset
値をレポートするログメッセージを除外できます。master offset
ログメッセージは、現在のノードのクロックとマスタークロックの違いをナノ秒単位でレポートします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
PtpConfig
CR を編集します。oc edit PtpConfig -n openshift-ptp
$ oc edit PtpConfig -n openshift-ptp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.profile
で、ptpSettings.logReduce
仕様を追加し、値をtrue
に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記デバッグの目的で、この仕様を
False
に戻すと、マスターオフセットメッセージを含めることができます。-
保存して終了すると、
PtpConfig
CR に変更が適用されます。
検証
PtpConfig
CR が適用されたlinuxptp-daemon
Pod と対応するノードの名前を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-gmv2n 3/3 Running 0 1d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-lgm55 3/3 Running 0 1d17h 10.1.196.25 compute-1.example.com ptp-operator-3r4dcvf7f4-zndk7 1/1 Running 0 1d7h 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-gmv2n 3/3 Running 0 1d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-lgm55 3/3 Running 0 1d17h 10.1.196.25 compute-1.example.com ptp-operator-3r4dcvf7f4-zndk7 1/1 Running 0 1d7h 10.129.0.61 control-plane-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、マスターオフセットメッセージがログから除外されていることを確認します。
oc -n openshift-ptp logs <linux_daemon_container> -c linuxptp-daemon-container | grep "master offset"
$ oc -n openshift-ptp logs <linux_daemon_container> -c linuxptp-daemon-container | grep "master offset"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <linux_daemon_container> は、
linuxptp-daemon
Pod の名前です (例:linuxptp-daemon-gmv2n
)。
logReduce
仕様を設定する場合、このコマンドはlinuxptp
デーモンのログにmaster offset
のインスタンスを報告しません。