19.2. PTP デバイスの設定
PTP Operator は NodePtpDevice.ptp.openshift.io カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。
PTP Operator は、インストールされている場合、クラスター内の各ノードで Precision Time Protocol (PTP) 対応のネットワークデバイスを検索します。この Operator は、互換性のある PTP 対応ネットワークデバイスを提供する各ノードの NodePtpDevice カスタムリソース (CR) オブジェクトを作成および更新します。
PTP 機能が組み込まれたネットワークインターフェイスコントローラー (NIC) ハードウェアでは、デバイス固有の設定が必要な場合があります。PtpConfig カスタムリソース (CR) でプラグインを設定することで、PTP Operator でサポートされているハードウェア固有の NIC 機能を使用できます。linuxptp-daemon サービスが、plugin スタンザ内の名前付きパラメーターを使用して、特定のハードウェア設定に基づいて linuxptp プロセス、ptp4l および phc2sys を起動します。
OpenShift Container Platform 4.15 では、Intel E810 NIC が PtpConfig プラグインでサポートされています。
19.2.1. CLI を使用した PTP Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、CLI を使用して Operator をインストールできます。
前提条件
- PTP に対応するハードウェアを持つノードでベアメタルハードウェアにインストールされたクラスター。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
PTP Operator の namespace を作成します。
次の YAML を
ptp-namespace.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespaceCR を作成します。oc create -f ptp-namespace.yaml
$ oc create -f ptp-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
PTP Operator の Operator グループを作成します。
次の YAML を
ptp-operatorgroup.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroupCR を作成します。oc create -f ptp-operatorgroup.yaml
$ oc create -f ptp-operatorgroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
PTP Operator にサブスクライブします。
次の YAML を
ptp-sub.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SubscriptionCR を作成します。oc create -f ptp-sub.yaml
$ oc create -f ptp-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator がインストールされていることを確認するには、以下のコマンドを入力します。
oc get csv -n openshift-ptp -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get csv -n openshift-ptp -o custom-columns=Name:.metadata.name,Phase:.status.phaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Name Phase 4.15.0-202301261535 Succeeded
Name Phase 4.15.0-202301261535 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.2. Web コンソールを使用した PTP Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Web コンソールを使用して PTP Operator をインストールできます。
先のセクションで説明されているように namespace および Operator グループを作成する必要があります。
手順
OpenShift Container Platform Web コンソールを使用して PTP Operator をインストールします。
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - 利用可能な Operator のリストから PTP Operator を選択してから Install をクリックします。
- Install Operator ページの A specific namespace on the cluster の下で openshift-ptp を選択します。次に、Install をクリックします。
-
OpenShift Container Platform Web コンソールで、Operators
オプション: PTP Operator が正常にインストールされていることを確認します。
-
Operators
Installed Operators ページに切り替えます。 PTP Operator が Status が InstallSucceeded の状態で openshift-ptp プロジェクトにリスト表示されていることを確認します。
注記インストール時に、Operator は Failed ステータスを表示する可能性があります。インストールが後に InstallSucceeded メッセージを出して正常に実行される場合は、Failed メッセージを無視できます。
Operator がインストール済みとして表示されない場合に、さらにトラブルシューティングを実行します。
-
Operators
Installed Operators ページに移動し、Operator Subscriptions および Install Plans タブで Status にエラーがあるかどうかを検査します。 -
Workloads
Pods ページに移動し、 openshift-ptpプロジェクトで Pod のログを確認します。
-
Operators
-
Operators
19.2.3. クラスター内の PTP 対応ネットワークデバイスの検出 リンクのコピーリンクがクリップボードにコピーされました!
PTP 対応ネットワークデバイスを設定できるように、クラスター内に存在する PTP 対応ネットワークデバイスを特定します。
前提条件
- PTP Operator がインストールされている。
手順
クラスター内の PTP 対応ネットワークデバイスの一覧を返すには、以下のコマンドを実行します。
oc get NodePtpDevice -n openshift-ptp -o yaml
$ oc get NodePtpDevice -n openshift-ptp -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.4. linuxptp サービスをグランドマスタークロックとして設定する リンクのコピーリンクがクリップボードにコピーされました!
ホスト NIC を設定する PtpConfig カスタムリソース (CR) を作成することで、linuxptp サービス (ptp4l、phc2sys、ts2phc) をグランドマスタークロック (T-GM) として設定できます。
ts2phc ユーティリティーを使用すると、システムクロックを PTP グランドマスタークロックと同期できるため、ノードは高精度クロック信号をダウンストリームの PTP 通常クロックおよび境界クロックにストリーミングできます。
次の PtpConfig CR の例をベースとして使用して、linuxptp サービスを Intel Westport Channel E810-XXVDA4T ネットワークインターフェイスの T-GM として設定してください。
PTP 高速イベントを設定するには、ptp4lOpts、ptp4lConf、ptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
- 実稼働環境の T-GM クロックの場合は、ベアメタルクラスターホストに Intel E810 Westport Channel NIC がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
PtpConfigCR を作成します。以下に例を示します。要件に応じて、デプロイメントに次の T-GM 設定のいずれかを使用します。YAML を
grandmaster-clock-ptp-config.yamlファイルに保存します。例19.1 E810 NIC の PTP グランドマスタークロック設定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記E810 Westport Channel NIC の場合は、
ts2phc.nmea_serialportの値を/dev/gnss0に設定します。以下のコマンドを実行して CR を作成します。
oc create -f grandmaster-clock-ptp-config.yaml
$ oc create -f grandmaster-clock-ptp-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfigプロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptpnamespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.5. linuxptp サービスをデュアル E810 Westport Channel NIC のグランドマスタークロックとして設定する リンクのコピーリンクがクリップボードにコピーされました!
ホスト NIC を設定する PtpConfig カスタムリソース (CR) を作成することで、linuxptp サービス (ptp4l、phc2sys、ts2phc) をデュアル E810 Westport Channel NIC のグランドマスタークロック (T-GM) として設定できます。
分散型 RAN (D-RAN) のユースケースでは、次の方法でデュアル NIC の PTP を設定できます。
- NIC 1 を、Global Navigation Satellite System (GNSS) のタイムソースに同期します。
-
NIC 2 を、NIC 1 によって提供される 1PPS タイミング出力に同期します。この設定は、
PtpConfigCR の PTP ハードウェアプラグインによって提供します。
デュアル NIC PTP T-GM 構成では、1 つの ptp4l インスタンスと、各 NIC に 1 つずつ、2 つの ts2phc インスタンスを報告する 1 つの ts2phc プロセスを使用します。ホストのシステムクロックは、GNSS タイムソースに接続されている NIC から同期されます。
次の PtpConfig CR の例をベースとして使用して、linuxptp サービスをデュアル Intel Westport Channel E810-XXVDA4T ネットワークインターフェイスの T-GM として設定してください。
PTP 高速イベントを設定するには、ptp4lOpts、ptp4lConf、ptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
- 実稼働環境の T-GM クロックの場合は、ベアメタルクラスターホストに 2 つの Intel E810 Westport Channel NIC がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
PtpConfigCR を作成します。以下に例を示します。次の YAML を
grandmaster-clock-ptp-config-dual-nics.yamlファイルに保存します。例19.2 デュアル E810 NIC の PTP グランドマスタークロック設定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記E810 Westport Channel NIC の場合は、
ts2phc.nmea_serialportの値を/dev/gnss0に設定します。以下のコマンドを実行して CR を作成します。
oc create -f grandmaster-clock-ptp-config-dual-nics.yaml
$ oc create -f grandmaster-clock-ptp-config-dual-nics.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfigプロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptpnamespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.5.1. グランドマスタークロックの PtpConfig 設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
このリファレンスでは、linuxptp サービス (ptp4l、phc2sys、ts2phc) をグランドマスタークロックとして設定する PtpConfig カスタムリソース (CR) の設定オプションを説明します。
| PtpConfig CR フィールド | 説明 |
|---|---|
|
|
grandmaster クロック動作用に NIC を設定する
プラグインメカニズムにより、PTP Operator は自動ハードウェア設定を行うことができます。Intel Westport Channel NIC の場合、 |
|
|
|
|
|
|
|
| データを破棄する前に、送信者からの送信 (TX) タイムスタンプを待機する最大時間を指定します。 |
|
| JBOD 境界クロック時間遅延値を指定します。この値は、ネットワーク時間デバイス間で受け渡される時間値を修正するために使用されます。 |
|
|
注記
ここにリストされているネットワークインターフェイスがグランドマスターとして設定されており、 |
|
|
|
|
|
|
|
|
オプション: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19.2.5.2. グランドマスタークロッククラスの同期状態のリファレンス リンクのコピーリンクがクリップボードにコピーされました!
次の表は、PTP グランドマスタークロック (T-GM) の gm.ClockClass の状態を示しています。クロッククラスの状態では、Primary Reference Time Clock (PRTC) またはその他のタイミングソースに関連する精度と安定性に基づいて T-GM クロックが分類されます。
ホールドオーバー仕様とは、PTP クロックがプライマリータイムソースから更新を受信せずに同期を維持できる時間です。
| クロッククラスの状態 | 説明 |
|---|---|
|
|
T-GM クロックは |
|
|
T-GM クロックは |
|
|
T-GM クロックは |
|
|
T-GM クロックは |
詳細は、"Phase/time traceability information", ITU-T G.8275.1/Y.1369.1 Recommendations を参照してください。
19.2.5.3. Intel Westport Channel E810 ハードウェア設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
ここでは、Intel E810-XXVDA4T ハードウェアプラグイン を使用して E810 ネットワークインターフェイスを PTP グランドマスタークロックとして設定する方法を説明します。ハードウェアピンの設定により、ネットワークインターフェイスがシステム内の他のコンポーネントやデバイスとどのようにやり取りするかが決まります。E810-XXVDA4T NIC には、外部 1PPS 信号用の 4 つのコネクター (SMA1、SMA2、U.FL1、および U.FL2) があります。
| ハードウェアピン | 推奨設定 | 説明 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMA1 コネクターと U.FL1 コネクターはチャネル 1 を共有します。SMA2 コネクターと U.FL2 コネクターはチャネル 2 を共有します。
PtpConfig カスタムリソース (CR) で GNSS クロックを設定するには、spec.profile.plugins.e810.ublxCmds パラメーターを設定します。
T-GM GPS アンテナケーブルシグナルの遅延を補正するには、オフセット値を設定する必要があります。最適な T-GM アンテナオフセット値を設定するには、GNSS アンテナケーブルシグナルの遅延を正確に測定します。Red Hat はこの測定をサポートしたり、必要な遅延オフセットの値を提供したりすることはできません。
これらの ublxCmds スタンザはそれぞれ、ubxtool コマンドを使用してホスト NIC に適用する設定と対応しています。以下に例を示します。
- 1
- 測定された T-GM アンテナ遅延オフセット (ナノ秒単位)。必要な遅延オフセット値を取得するには、外部テスト機器を使用してケーブル遅延を測定する必要があります。
次の表は、同等の ubxtool コマンドを示しています。
| ubxtool コマンド | 説明 |
|---|---|
|
|
アンテナ電圧制御を有効にし、 |
|
| アンテナが GPS 信号を受信できるようにします。 |
|
| Galileo GPS 衛星から信号を受信するようにアンテナを設定します。 |
|
| アンテナが GLONASS GPS 衛星から信号を受信できないようにします。 |
|
| アンテナが BeiDou GPS 衛星から信号を受信できないようにします。 |
|
| アンテナが SBAS GPS 衛星から信号を受信できないようにします。 |
|
| GNSS 受信機のサーベイインプロセスを設定して、初期位置の推定を改善します。最適な結果が得られるまでに最大 24 時間かかる場合があります。 |
|
| ハードウェアの自動スキャンを 1 回実行し、NIC の状態と構成設定を報告します。 |
19.2.5.4. デュアル E810 Westport Channel NIC 設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
ここでは、Intel E810-XXVDA4T ハードウェアプラグイン を使用して、E810 ネットワークインターフェイスのペアを PTP グランドマスタークロック (T-GM) として設定する方法を説明します。
デュアル NIC クラスターホストを設定する前に、1PPS フェイスプレート接続を使用して 2 つの NIC を SMA1 ケーブルで接続する必要があります。
デュアル NIC T-GM を設定する際は、SMA1 接続ポートを使用して NIC を接続する場合に発生する 1PPS 信号遅延を補正する必要があります。ケーブルの長さ、周囲温度、コンポーネントと製作公差などのさまざまな要因が信号遅延に影響を与える可能性があります。遅延を補正するには、信号遅延のオフセットに使用する特定の値を計算する必要があります。
| PtpConfig フィールド | 説明 |
|---|---|
|
| PTP Operator E810 ハードウェアプラグインを使用して E810 ハードウェアピンを設定します。
|
|
|
|
|
|
複数の NIC のサポートを有効にするには、 |
19.2.6. PTP グランドマスタークロックの動的なうるう秒処理の設定 リンクのコピーリンクがクリップボードにコピーされました!
PTP Operator コンテナーイメージには、リリース時に利用可能な最新の leap-seconds.list ファイルが含まれています。PTP Operator は、Global Positioning System (GPS) アナウンスを使用してうるう秒ファイルを自動的に更新するように設定できます。
うるう秒情報は、openshift-ptp namespace の leap-configmap という名前の自動生成された ConfigMap リソースに保存されます。PTP Operator は、ts2phc プロセスがアクセスできる linuxptp-daemon Pod 内のボリュームとして leap-configmap リソースをマウントします。
GPS 衛星が新しいうるう秒データをブロードキャストすると、PTP Operator は leap-configmap リソースを新しいデータで更新します。ts2phc プロセスは変更を自動的に取得します。
次の手順は参考用です。PTP Operator のバージョン 4.15 では、デフォルトで自動うるう秒管理が有効になります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールし、クラスターに PTP グランドマスタークロック (T-GM) を設定した。
手順
PtpConfigCR のphc2sysOptsセクションで自動うるう秒処理を設定します。以下のオプションを設定します。phc2sysOpts: -r -u 0 -m -N 8 -R 16 -S 2 -s ens2f0 -n 24
phc2sysOpts: -r -u 0 -m -N 8 -R 16 -S 2 -s ens2f0 -n 241 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記以前は、過去のうるう秒を考慮するために、
phc2sys設定 (-O -37) のオフセット調整が T-GM に必要でした。これは不要になりました。PtpConfigCR のspec.profile.plugins.e810.ublxCmdsセクションで、GPS レシーバーによるNAV-TIMELSメッセージの定期的な報告を有効にするように Intel e810 NIC を設定します。以下に例を示します。- args: #ubxtool -P 29.20 -p CFG-MSG,1,38,248 - "-P" - "29.20" - "-p" - "CFG-MSG,1,38,248"- args: #ubxtool -P 29.20 -p CFG-MSG,1,38,248 - "-P" - "29.20" - "-p" - "CFG-MSG,1,38,248"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
設定した T-GM が接続先の GPS から
NAV-TIMELSメッセージを受信していることを確認します。以下のコマンドを実行します。oc -n openshift-ptp -c linuxptp-daemon-container exec -it $(oc -n openshift-ptp get pods -o name | grep daemon) -- ubxtool -t -p NAV-TIMELS -P 29.20
$ oc -n openshift-ptp -c linuxptp-daemon-container exec -it $(oc -n openshift-ptp get pods -o name | grep daemon) -- ubxtool -t -p NAV-TIMELS -P 29.20Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow leap-configmapリソースが PTP Operator によって正常に生成され、leap-seconds.list の最新バージョンに更新されていることを確認します。以下のコマンドを実行します。oc -n openshift-ptp get configmap leap-configmap -o jsonpath='{.data.<node_name>}'$ oc -n openshift-ptp get configmap leap-configmap -o jsonpath='{.data.<node_name>}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.7. linuxptp サービスを境界クロックとして設定 リンクのコピーリンクがクリップボードにコピーされました!
PtpConfig カスタムリソース (CR) オブジェクトを作成して、linuxptp サービス (ptp4l、phc2sys を設定できます。
次の例の PtpConfig CR を、特定のハードウェアおよび環境の境界クロックとして linuxptp サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOpts、ptp4lConf、ptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効になっている場合にのみ使用されます。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
以下の
PtpConfigCR を作成してから、YAML をboundary-clock-ptp-config.yamlファイルに保存します。PTP 境界クロックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表19.6 PTP 境界クロックの CR 設定オプション CR フィールド 説明 namePtpConfigCR の名前。profile1 つ以上の
profileオブジェクトの配列を指定します。nameプロファイルオブジェクトを一意に識別するプロファイルオブジェクトの名前を指定します。
ptp4lOptsptp4lサービスのシステム設定オプションを指定します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名-i <interface>およびサービス設定ファイル-f /etc/ptp4l.confを含めないでください。ptp4lConfptp4lを境界クロックとして起動するために必要な設定を指定します。たとえば、ens1f0はグランドマスタークロックから同期し、ens1f3は接続されたデバイスを同期します。<interface_1>同期クロックを受信するインターフェイス。
<interface_2>synchronization クロックを送信するインターフェイス。
tx_timestamp_timeoutIntel Columbiaville 800 Series NIC の場合、
tx_timestamp_timeoutを50に設定します。boundary_clock_jbodIntel Columbiaville 800 Series NIC の場合、
boundary_clock_jbodが0に設定されていることを確認します。Intel Fortville X710 シリーズ NIC の場合、boundary_clock_jbodが1に設定されていることを確認します。phc2sysOptsphc2sysサービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator はphc2sysサービスを開始しません。ptpSchedulingPolicyptp4l と phc2sys プロセスのスケジューリングポリシー。デフォルト値は
SCHED_OTHERです。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFOを使用してください。ptpSchedulingPriorityptpSchedulingPolicyが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に設定されます。recommendprofileがノードに適用される方法を定義する 1 つ以上のrecommendオブジェクトの配列を指定します。.recommend.profileprofileセクションで定義される.recommend.profileオブジェクト名を指定します。.recommend.priority0から99までの整数値でpriorityを指定します。数値が大きいほど優先度が低くなるため、99の優先度は10よりも低くなります。ノードがmatchフィールドで定義されるルールに基づいて複数のプロファイルに一致する場合、優先順位の高いプロファイルがそのノードに適用されます。.recommend.match.recommend.matchルールをnodeLabelまたはnodeNameの値に指定します。.recommend.match.nodeLabeloc get nodes --show-labelsコマンドを使用して、ノードオブジェクトのnode.LabelsフィールドのkeyでnodeLabelを設定します。例:node-role.kubernetes.io/worker。.recommend.match.nodeNameoc 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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfigプロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptpnamespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.7.1. 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 つの個別の
PtpConfigCR を作成します。以下に例を示します。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 番目のPtpConfigCR からphc2sysOptsフィールドを完全に削除する必要があります。
次のコマンドを実行して、デュアル NIC
PtpConfigCRを作成します。1 番目の NIC の PTP を設定する CR を作成します。
oc create -f boundary-clock-ptp-config-nic1.yaml
$ oc create -f boundary-clock-ptp-config-nic1.yamlCopy 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.yamlCopy 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-containerCopy 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 539Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.8. linuxptp サービスを通常のクロックとして設定 リンクのコピーリンクがクリップボードにコピーされました!
PtpConfig カスタムリソース (CR) オブジェクトを作成して、linuxptp サービス (ptp4l、phc2sys) を通常のクロックとして設定できます。
次の例の PtpConfig CR を、特定のハードウェアおよび環境の通常クロックとして linuxptp サービスを設定する基礎として使用します。この例の CR は PTP 高速イベントを設定しません。PTP 高速イベントを設定するには、ptp4lOpts、ptp4lConf、ptpClockThreshold に適切な値を設定します。ptpClockThreshold は、イベントが有効な場合にのみ必要です。詳細は、「PTP 高速イベント通知パブリッシャーの設定」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
以下の
PtpConfigCR を作成してから、YAML をordinary-clock-ptp-config.yamlファイルに保存します。PTP 通常クロックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表19.7 PTP 通常クロック CR 設定のオプション CR フィールド 説明 namePtpConfigCR の名前。profile1 つ以上の
profileオブジェクトの配列を指定します。各プロファイルの名前は一意である必要があります。interfaceptp4lサービスで使用するネットワークインターフェイスを指定します (例:ens787f1)。ptp4lOptsptp4lサービスのシステム設定オプションを指定します。たとえば、-2で IEEE 802.3 ネットワークトランスポートを選択します。ネットワークインターフェイス名とサービス設定ファイルが自動的に追加されるため、オプションには、ネットワークインターフェイス名-i <interface>およびサービス設定ファイル-f /etc/ptp4l.confを含めないでください。このインターフェイスで PTP 高速イベントを使用するには、--summary_interval -4を追加します。phc2sysOptsphc2sysサービスのシステム設定オプションを指定します。このフィールドが空の場合、PTP Operator はphc2sysサービスを開始しません。Intel Columbiaville 800 Series NIC の場合、phc2sysOptsオプションを-a -r -m -n 24 -N 8 -R 16に設定します。-mはメッセージをstdoutに出力します。linuxptp-daemonDaemonSetはログを解析し、Prometheus メトリックを生成します。ptp4lConfデフォルトの
/etc/ptp4l.confファイルを置き換える設定が含まれる文字列を指定します。デフォルト設定を使用するには、フィールドを空のままにします。tx_timestamp_timeoutIntel Columbiaville 800 Series NIC の場合、
tx_timestamp_timeoutを50に設定します。boundary_clock_jbodIntel Columbiaville 800 Series NIC の場合、
boundary_clock_jbodを0に設定します。ptpSchedulingPolicyptp4lとphc2sysプロセスのスケジューリングポリシー。デフォルト値はSCHED_OTHERです。FIFO スケジューリングをサポートするシステムでは、SCHED_FIFOを使用してください。ptpSchedulingPriorityptpSchedulingPolicyが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に設定されます。recommendprofileがノードに適用される方法を定義する 1 つ以上のrecommendオブジェクトの配列を指定します。.recommend.profileprofileセクションで定義される.recommend.profileオブジェクト名を指定します。.recommend.priority通常クロックの
.recommend.priorityを0に設定します。.recommend.match.recommend.matchルールをnodeLabelまたはnodeNameの値に指定します。.recommend.match.nodeLabeloc get nodes --show-labelsコマンドを使用して、ノードオブジェクトのnode.LabelsフィールドのkeyでnodeLabelを設定します。例:node-role.kubernetes.io/worker。.recommend.match.nodeNameoc get nodesコマンドを使用して、nodeNameをノードオブジェクトのnode.Nameフィールドの値に設定します。compute-1.example.comはその例です。次のコマンドを実行して、
PtpConfigCR を作成します。oc create -f ordinary-clock-ptp-config.yaml
$ oc create -f ordinary-clock-ptp-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
PtpConfigプロファイルがノードに適用されていることを確認します。以下のコマンドを実行して、
openshift-ptpnamespace の Pod の一覧を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.8.1. PTP の通常クロックリファレンスとしての Intel Columbiaville E800 シリーズ NIC リンクのコピーリンクがクリップボードにコピーされました!
次の表は、Intel Columbiaville E800 シリーズ NIC を通常のクロックとして使用するために、PTP リファレンス設定に加える必要がある変更を説明します。クラスターに適用する PtpConfig カスタムリソース (CR) に変更を加えます。
| PTP 設定 | 推奨設定 |
|---|---|
|
|
|
|
|
|
|
|
|
phc2sysOpts の場合、-m はメッセージを stdout に出力します。linuxptp-daemon DaemonSet はログを解析し、Prometheus メトリックを生成します。
19.2.9. PTP ハードウェアの FIFO 優先スケジューリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
低遅延のパフォーマンスを確保する必要のある通信業者などのデプロイメントタイプでは、PTP デーモンスレッドが、残りのインフラストラクチャーコンポーネントとともに、限られた CPU リソースで実行されます。デフォルトでは、PTP スレッドは SCHED_OTHER ポリシーで実行されます。負荷が高いと、エラーなしで運用する必要のある、これらのスレッドのスケジューリングでレイテンシーが発生する可能性があります。
スケジューリングのレイテンシーでエラーが発生する可能性を軽減するために、SCHED_FIFO ポリシーでスレッドを実行できるように、PTP Operator の linuxptp サービスを設定できます。PtpConfig CR に SCHED_FIFO が設定されている場合には、ptp4l と phc2sys は、PtpConfig CR の ptpSchedulingPriority フィールドで設定された優先順位で、chrt の下の親コンテナーで実行されます。
ptpSchedulingPolicy の設定は任意です。レイテンシーエラーが発生している場合にのみ必要です。
手順
PtpConfigCR プロファイルを編集します。oc edit PtpConfig -n openshift-ptp
$ oc edit PtpConfig -n openshift-ptpCopy to Clipboard Copied! Toggle word wrap Toggle overflow ptpSchedulingPolicyとptpSchedulingPriorityフィールドを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存して終了すると、
PtpConfigCR に変更が適用されます。
検証
PtpConfigCR が適用されたlinuxptp-daemonPod と対応するノードの名前を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow ptp4lプロセスが、更新されたchrtFIFO 優先度で実行されていることを確認します。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 chrtCopy 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 -mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.10. linuxptp サービスのログフィルタリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
linuxptp デーモンは、デバッグに使用できるログを生成します。ストレージ容量が制限されている通信業者などのデプロイメントタイプでは、これらのログによりストレージ需要が増大する可能性があります。
ログメッセージの数を減らすために、PtpConfig カスタムリソース (CR) を設定して、master offset 値をレポートするログメッセージを除外できます。master offset ログメッセージは、現在のノードのクロックとマスタークロックの違いをナノ秒単位でレポートします。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP Operator をインストールします。
手順
PtpConfigCR を編集します。oc edit PtpConfig -n openshift-ptp
$ oc edit PtpConfig -n openshift-ptpCopy to Clipboard Copied! Toggle word wrap Toggle overflow spec.profileで、ptpSettings.logReduce仕様を追加し、値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記デバッグの目的で、この仕様を
Falseに戻すと、マスターオフセットメッセージを含めることができます。-
保存して終了すると、
PtpConfigCR に変更が適用されます。
検証
PtpConfigCR が適用されたlinuxptp-daemonPod と対応するノードの名前を取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy 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.comCopy 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-daemonPod の名前です (例:linuxptp-daemon-gmv2n)。
logReduce仕様を設定する場合、このコマンドはlinuxptpデーモンのログにmaster offsetのインスタンスを報告しません。
19.2.11. 一般的な PTP Operator の問題のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行して、PTP Operator で典型的な問題のトラブルシューティングを行います。
前提条件
-
OpenShift Container Platform CLI (
oc) をインストールします。 -
cluster-admin権限を持つユーザーとしてログインしている。 - PTP をサポートするホストを使用して、PTP Operator をベアメタルクラスターにインストールします。
手順
設定されたノードのクラスターに Operator とオペランドが正常にデプロイされていることを確認します。
oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-lmvgn 3/3 Running 0 4d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-qhfg7 3/3 Running 0 4d17h 10.1.196.25 compute-1.example.com ptp-operator-6b8dcbf7f4-zndk7 1/1 Running 0 5d7h 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-lmvgn 3/3 Running 0 4d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-qhfg7 3/3 Running 0 4d17h 10.1.196.25 compute-1.example.com ptp-operator-6b8dcbf7f4-zndk7 1/1 Running 0 5d7h 10.129.0.61 control-plane-1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記PTP 高速イベントバスが有効な場合には、準備できた
linuxptp-daemonPod の数は3/3になります。PTP 高速イベントバスが有効になっていない場合、2/2が表示されます。サポートされているハードウェアがクラスターにあることを確認します。
oc -n openshift-ptp get nodeptpdevices.ptp.openshift.io
$ oc -n openshift-ptp get nodeptpdevices.ptp.openshift.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードで利用可能な PTP ネットワークインターフェイスを確認します。
oc -n openshift-ptp get nodeptpdevices.ptp.openshift.io <node_name> -o yaml
$ oc -n openshift-ptp get nodeptpdevices.ptp.openshift.io <node_name> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <node_name>
問い合わせるノードを指定します (例:
compute-0.example.com)。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
対応するノードの
linuxptp-daemonPod にアクセスし、PTP インターフェイスがプライマリークロックに正常に同期されていることを確認します。以下のコマンドを実行して、
linuxptp-daemonPod の名前と、トラブルシューティングに使用するノードを取得します。oc get pods -n openshift-ptp -o wide
$ oc get pods -n openshift-ptp -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-lmvgn 3/3 Running 0 4d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-qhfg7 3/3 Running 0 4d17h 10.1.196.25 compute-1.example.com ptp-operator-6b8dcbf7f4-zndk7 1/1 Running 0 5d7h 10.129.0.61 control-plane-1.example.com
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-lmvgn 3/3 Running 0 4d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-qhfg7 3/3 Running 0 4d17h 10.1.196.25 compute-1.example.com ptp-operator-6b8dcbf7f4-zndk7 1/1 Running 0 5d7h 10.129.0.61 control-plane-1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow リモートシェルが必要な
linuxptp-daemonコンテナーへのリモートシェルです。oc rsh -n openshift-ptp -c linuxptp-daemon-container <linux_daemon_container>
$ oc rsh -n openshift-ptp -c linuxptp-daemon-container <linux_daemon_container>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <linux_daemon_container>
-
診断するコンテナーです (例:
linuxptp-daemon-lmvgn)。
linuxptp-daemonコンテナーへのリモートシェル接続では、PTP 管理クライアント (pmc) ツールを使用して、ネットワークインターフェイスを診断します。以下のpmcコマンドを実行して、PTP デバイスの同期ステータスを確認します (例:ptp4l)。pmc -u -f /var/run/ptp4l.0.config -b 0 'GET PORT_DATA_SET'
# pmc -u -f /var/run/ptp4l.0.config -b 0 'GET PORT_DATA_SET'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードがプライマリークロックに正常に同期されたときの出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
GNSS をソースとするグランドマスタークロックの場合は、次のコマンドを実行して、ツリー内 NIC ice ドライバーが正しいことを確認します。
oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-74m2g ethtool -i ens7f0
$ oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-74m2g ethtool -i ens7f0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
driver: ice version: 5.14.0-356.bz2232515.el9.x86_64 firmware-version: 4.20 0x8001778b 1.3346.0
driver: ice version: 5.14.0-356.bz2232515.el9.x86_64 firmware-version: 4.20 0x8001778b 1.3346.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow GNSS をソースとするグランドマスタークロックの場合は、
linuxptp-daemonコンテナーが GNSS アンテナから信号を受信していることを確認します。コンテナーが GNSS 信号を受信していない場合、/dev/gnss0ファイルにデータが入力されません。検証するには、次のコマンドを実行します。oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-jnz6r cat /dev/gnss0
$ oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-jnz6r cat /dev/gnss0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
$GNRMC,125223.00,A,4233.24463,N,07126.64561,W,0.000,,300823,,,A,V*0A $GNVTG,,T,,M,0.000,N,0.000,K,A*3D $GNGGA,125223.00,4233.24463,N,07126.64561,W,1,12,99.99,98.6,M,-33.1,M,,*7E $GNGSA,A,3,25,17,19,11,12,06,05,04,09,20,,,99.99,99.99,99.99,1*37 $GPGSV,3,1,10,04,12,039,41,05,31,222,46,06,50,064,48,09,28,064,42,1*62
$GNRMC,125223.00,A,4233.24463,N,07126.64561,W,0.000,,300823,,,A,V*0A $GNVTG,,T,,M,0.000,N,0.000,K,A*3D $GNGGA,125223.00,4233.24463,N,07126.64561,W,1,12,99.99,98.6,M,-33.1,M,,*7E $GNGSA,A,3,25,17,19,11,12,06,05,04,09,20,,,99.99,99.99,99.99,1*37 $GPGSV,3,1,10,04,12,039,41,05,31,222,46,06,50,064,48,09,28,064,42,1*62Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2.12. PTP Operator データの収集 リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather コマンドを使用すると、PTP Operator に関連する機能やオブジェクトなど、クラスターに関する情報を収集できます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。 - PTP Operator がインストールされている。
手順
must-gatherを使用して PTP Operator データを収集するには、PTP Operatormust-gatherイメージを指定する必要があります。oc adm must-gather --image=registry.redhat.io/openshift4/ptp-must-gather-rhel8:v4.15
$ oc adm must-gather --image=registry.redhat.io/openshift4/ptp-must-gather-rhel8:v4.15Copy to Clipboard Copied! Toggle word wrap Toggle overflow