6.2.13. 일반적인 PTP Operator 문제 해결
다음 단계를 수행하여 PTP Operator의 일반적인 문제를 해결합니다.
사전 요구 사항
-
OpenShift Container Platform CLI (
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 로그인합니다. - PTP를 지원하는 호스트가 있는 베어 메탈 클러스터에 PTP Operator를 설치합니다.
프로세스
구성된 노드를 위해 Operator 및 Operand가 클러스터에 성공적으로 배포되었는지 확인합니다.
$ oc get pods -n openshift-ptp -o wide출력 예
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참고PTP 빠른 이벤트 버스가 활성화되면 준비된
linuxptp-daemonPod 수는3/3가 됩니다. PTP 빠른 이벤트 버스가 활성화되지 않으면2/2가 표시됩니다.지원되는 하드웨어가 클러스터에 있는지 확인합니다.
$ oc -n openshift-ptp get nodeptpdevices.ptp.openshift.io출력 예
NAME AGE control-plane-0.example.com 10d control-plane-1.example.com 10d compute-0.example.com 10d compute-1.example.com 10d compute-2.example.com 10d노드에 사용 가능한 PTP 네트워크 인터페이스를 확인합니다.
$ oc -n openshift-ptp get nodeptpdevices.ptp.openshift.io <node_name> -o yaml다음과 같습니다.
- <node_name>
쿼리할 노드를 지정합니다 (예:
compute-0.example.com).출력 예
apiVersion: ptp.openshift.io/v1 kind: NodePtpDevice metadata: creationTimestamp: "2021-09-14T16:52:33Z" generation: 1 name: compute-0.example.com namespace: openshift-ptp resourceVersion: "177400" uid: 30413db0-4d8d-46da-9bef-737bacd548fd spec: {} status: devices: - name: eno1 - name: eno2 - name: eno3 - name: eno4 - name: enp5s0f0 - name: enp5s0f1
해당 노드의
linuxptp-daemonPod에 액세스하여 PTP 인터페이스가 기본 클록에 성공적으로 동기화되었는지 확인합니다.다음 명령을 실행하여
linuxptp-daemonPod의 이름과 문제를 해결하려는 해당 노드를 가져옵니다.$ oc get pods -n openshift-ptp -o wide출력 예
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필수
linuxptp-daemon컨테이너로의 원격 쉘:$ oc rsh -n openshift-ptp -c linuxptp-daemon-container <linux_daemon_container>다음과 같습니다.
- <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'노드가 기본 클록에 성공적으로 동기화되었을 때의 출력 예
sending: GET PORT_DATA_SET 40a6b7.fffe.166ef0-1 seq 0 RESPONSE MANAGEMENT PORT_DATA_SET portIdentity 40a6b7.fffe.166ef0-1 portState SLAVE logMinDelayReqInterval -4 peerMeanPathDelay 0 logAnnounceInterval -3 announceReceiptTimeout 3 logSyncInterval -4 delayMechanism 1 logMinPdelayReqInterval -4 versionNumber 2
GNSS 소싱 할 마스터 클록의 경우 in-tree NIC 아이스크림 드라이버가 다음 명령을 실행하여 올바른지 확인합니다. 예를 들면 다음과 같습니다.
$ oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-74m2g ethtool -i ens7f0출력 예
driver: ice version: 5.14.0-356.bz2232515.el9.x86_64 firmware-version: 4.20 0x8001778b 1.3346.0GNSS 소싱된 마스터 클록의 경우
linuxptp-daemon컨테이너가 GNSS radio에서 신호를 수신하고 있는지 확인합니다. 컨테이너가 GNSS 신호를 수신하지 않으면/dev/gnss0파일이 채워지지 않습니다. 확인하려면 다음 명령을 실행합니다.$ oc rsh -n openshift-ptp -c linuxptp-daemon-container linuxptp-daemon-jnz6r cat /dev/gnss0출력 예
$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