소개
이 문서에서는 Nexus 7000 플랫폼의 문제를 해결하는 데 사용되는 MTS(Message and Transition Services) 기능에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
Nexus 운영 체제(NX-OS)의 서비스(프로세스라고도 함)는 MTS를 통해 서로 통신합니다.
대상 서비스가 물리적으로 다른 모듈에 있는 경우 노드 간 통신을 사용해야 합니다. 다른 모듈로의 통신은 EOBC(Ethernet Out-of-Band Channel) 링크를 통해 AIPC(Advanced Inter Process Communication)를 통해 전달됩니다. EOBC 링크는 Nexus 7000 섀시의 MidPlane에 있습니다.
MTS는 다음을 제공합니다.
- 메시지 및 HA(High Availability) 인프라 및 API(Application Program Interface)
- 버퍼 관리
- 메시지 전달
AIPC는 다음을 제공합니다.
- EOBC를 통한 안정적인 전송
- ACK 기반 재전송 제공
- 프래그먼트화 및 리어셈블리
MTS는 주로 대상/소스 노드/SAP 및 Opcode로 구성됩니다.
- 노드 - 물리적 모듈 및 VDC의 식별자.
- SAP - 각 서비스의 식별자. (각 서비스에는 여러 기능에 대한 여러 SAP(Service Access Point)가 있을 수 있습니다.)
- Opcode - 서비스가 다른 서비스와 통신하는 데 사용하는 데이터 형식입니다.
용어
MTS: 메시지 및 트랜잭션 서비스
SAP: 서비스 액세스 포인트
AIPC: 고급 프로세스 간 통신/Andiamo IPC
EOBC : 이더넷 OOB 채널
NX-OS : Nexus 운영 체제
MTS 형식
MTS 대상은 SAP(서비스) 및 노드(SAP가 실행되는 모듈)로 표시됩니다.
참고: sup는 supervisor를 나타내고 lc는 linecard를 나타냅니다.
모든 모듈에서 SAP를 실행합니다.
`show system internal sysmgr service ~~~~`
n7ka# sh system internal sysmgr service all
Name UUID PID SAP state Start count Tag Plugin ID
---------------- ---------- ------ ----- --------- ----------- ---------------- -----------
aaa 0x000000B5 6942 111 s0009 1 N/A 0
cert_enroll 0x0000012B 6941 169 s0009 1 N/A 0
ExceptionLog 0x00000050 7267 92 s0009 1 N/A 0
`show system internal mts ~~~~~`
n7ka# sh system internal mts sup sap 111 description
Below shows sap on default-VDC, to show saps on non-default VDC, run
show system internal mts node sup-<vnode-id> sap ...
AAA Daemon
특정 모듈에서만 SAP를 실행합니다.
`Attach to the module`
n7ka# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
Last login: Tue Nov 7 15:42:35 PST 2023 from 127.1.1.2 on pts/0
`show system internal sysmgr service ~~~~`
n7ka# show system internal sysmgr service all
Name UUID PID SAP state Start count Tag Plugin ID
---------------- ---------- ------ ----- --------- ----------- ---------------- -----------
aclqo 0x0000016E 1301 190 s0009 1 N/A 0
amm 0x00000260 1130 895 s0009 1 N/A 0
bfdc 0x000002C7 1110 1008 s0009 1 N/A 0
`show system internal mts ~~~~~`
module-4# show system internal mts lc sap 190 description
Aclqos SAP
- Opcode 레지스트리
MTS가 대상 SAP 0으로 전송되는 경우가 있습니다. 그 결과 MTS는 SAP 레지스트리(opcode registry)에 등록된 여러 SAP로 전송됩니다.
예를 들어, Opc 8182는 SAP 175 및 378에 의해 등록되며, 이는 show system internal mts sup registry persistent 명령으로 확인됩니다. 따라서 이 MTS는 SAP175 및 SAP 378 모두에 제공됩니다.
n7ka# show system internal ethpm event-history msgs
51) Event:E_MTS_RX, length:60, at 36968 usecs after Thu Sep 18 14:42:15 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
n7ka# show system internal mts sup registry persistent | i 8182
MTS_OPC_LINK_EVENT_DOWN(8182): 175, 378
- 노드 ID
노드 ID는 16비트 ID입니다.
+ 슬롯 ID - 모듈 슬롯 ID입니다. 1로 시작
+ Vnode ID - 가상 노드 ID VDC ID는 0으로 시작합니다.
+ Lnode ID - 논리적 노드 ID. SUP:1 , LC:2
예: 0x805 = 0x08 + 0b0000_0101 = 0x08 + 0x1 + 0x1(슬롯 + Vnode + Lnode)
=> SUP 모듈 VDC 2 슬롯 8
MTS와의 프로세스 통신 추적
시대
이벤트 기록 메시지를 사용하여 MTS 통신 기록을 볼 수 있습니다. 거의 모든 서비스에 이 이벤트 기록 메시지 기능이 있습니다.
이 CLI는 eth_port_channel(ethpc)에 대한 MTS 이벤트 기록입니다.
n7ka# show port-channel internal event-history msgs
12) Event:E_MTS_RX, length:60, at 15586 usecs after Thu Sep 18 13:13:57 2014
[REQ] Opc:MTS_OPC_ETHPM_PORT_CLEANUP(61444), Id:0X00323B1E, Ret:SUCCESS
Src:0x00000601/175, Dst:0x00000601/378, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00323B1E, Sync:UNKNOWN, Payloadsize:26
Payload:
0x0000: 00 00 00 02 00 04 00 02 00 01 00 05 00 0c 00 00
다음에 나열된 필드는 명령에서 해당 용도와 관련된 추가 세부 정보를 제공합니다.
Event:E_MTS_RX - 이 MTS가 이 서비스에서 수신되었음을 나타냅니다(이 경우 ethpc). E_MTS_TX인 경우 ethpc는 이 MTS의 발신자입니다.
Src:0x00000601/175 - MTS_addr/SAP - 이 MTS의 발신자를 나타냅니다.
Dst:0x00000601/378 - MTS_addr/SAP는 이 MTS의 수신기를 나타냅니다.
Id:0X00323B1E - MTS ID입니다. 여기서 발신자와 수신자는 모두 동일한 MTS에 대해 동일한 ID를 갖습니다.
Opc:MTS_OPC_ETHPM_PORT_CLEANUP(61444) - 이 이벤트 유형이 무엇인지 나타냅니다. 즉, 이 MTS가 제공하는 opcode입니다. 여기서 61444은 opcode 번호입니다.
MTS 이벤트의 예
이 MTS 이벤트 예는 링크 중단 이벤트에 대한 것입니다.
n7ka# 2014 Sep 18 14:42:15 n7ka %ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet1/3 is down (Link failure)
첫 번째 단계로, I/F와 관련된 모든 사항에 대한 포괄적인 프로세스이므로 Ethpm 기록을 확인합니다.
n7ka# sh system internal ethpm event-history msgs
51) Event:E_MTS_RX, length:60, at 36968 usecs after Thu Sep 18 14:42:15 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
표시된 결과는 ETHPM이 Src:0x00000102/181로부터 링크 다운 이벤트를 수신했음을 나타냅니다. 이 MTS 주소는 SAP 181이 슬롯 1의 VDC 1 LC에 있음을 나타냅니다.
슬롯 1에 있는 SAP 181을 확인하려면 옆에 나열된 CLI를 사용합니다.
module-1# attach module 1
module-1# show system internal mts lc sap 181 description
Port_client SAP
슬롯 1의 port_client MTS 기록을 확인하려면 옆에 나열된 CLI를 사용합니다.
module-1# show system internal port-client event-history msgs
49) Event:E_MTS_TX, length:60, at 298743 usecs after Thu Sep 18 14:42:14 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
50) Event:E_MTS_RX, length:60, at 298329 usecs after Thu Sep 18 14:42:14 2014
[NOT] Opc:MTS_OPC_LC_LINK_DOWN(8185), Id:0X0349609F, Ret:SUCCESS
Src:0x00000102/536, Dst:0x00000102/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:17
Payload:
0x0000: 00 00 00 02 40 e5 00 07 02 54 1a 70 b6 00 04 84
Id:0X034960A1에서 49) 이벤트가 관심 이벤트임을 알 수 있습니다. Port_Client가 예상대로 MTS를 전송했습니다. 이는 Port_Client(50)의 이전 MTS 이벤트에 의해 호출되어야 합니다. 이 MTS는 Src:0x00000102/536에 의해 전송되었습니다.
SAP 536을 확인합니다.
module-1# sh system internal mts lc sap 536 de
Naxos FPGA
이제 우리는 NAXOS FPGA가 이 전체 이벤트의 소스라는 것을 안다. 옆에 표시된 CLI를 사용하여 local_fault가 링크 다운의 근본 원인임을 확인합니다.
module-1# sh hardware internal naxos event-history port 3
15) Event E_NAXOS_ISR_DATA length:69, at 170763 usecs after Thu Sep 18 14:42:14 2014
TO NAXOS_PORT_STATUS_LINK_DOWN: reg_val 0x14
Status:SUCCESS (0x0)
16) Event E_NAXOS_ISR_DATA length:50, at 170619 usecs after Thu Sep 18 14:42:14 2014
LOCAL_FAULT: reg_val 0x14
Status:SUCCESS (0x0)