FC 포트 진단: 카운터, 슬로우 드레인, SFP 점검
SAN 스위치는 포트에서 발생하는 모든 이상을 집계하며, 어떤 카운터가 “커넥터 오염”을 의미하고 어떤 카운터가 “호스트가 버퍼를 비우지 못하고 있음”을 의미하는지 알면 이 카운터들은 물리적 원인에 깔끔하게 대응됩니다. 이 페이지는 주요 플랫폼 두 곳의 카운터, 각 카운터가 가리키는 원인, 슬로우 드레인 혼잡이 나타나는 양상, 스위치에서 SFP 자체를 읽는 방법을 정리합니다.
카운터
카운터(Brocade porterrshow) | Cisco MDS 대응 항목(show interface fc… counters) | 의미 | 가리키는 원인 |
|---|---|---|---|
| enc_out — 프레임 밖 인코딩 오류 | invalid transmission words | 프레임 사이의 잘못된 심볼 | 옵틱스, 케이블, 커넥터, 속도 불일치 — 전형적인 물리 계층 카운터 |
| enc_in — 프레임 안 인코딩 오류 | invalid transmission words / CRC | 프레임 내부의 손상된 심볼 | 원인은 같지만 더 심각 |
| crc_err | CRC errors | 프레임이 CRC 검사에 실패 | 한계에 가까운 링크: 단면 오염, 낮은 Rx, SFP 고장; ISL에서는 양쪽 끝을 모두 확인 |
| crc_g_eof | CRC with good EOF | CRC 오류지만 프레임은 정상 종료됨 — 이 포트보다 상류에서 발생 | 이전 홉을 확인 |
| too_shrt / too_long / bad_eof | frame too short / too long / bad EOF | 형식이 잘못된 프레임 | 대개 enc_in의 결과이거나 장치 고장 |
| link_fail | link failures | 링크 다운 | 케이블 분리, SFP 고장, 전원, 반대쪽 리셋 |
| loss_sync / loss_sig | sync loss / signal loss | 신호 또는 워드 동기 손실 | 낮은 Rx, LOS, 플래핑 — 링크 플래핑 |
| frjt / fbsy | F_RJT / F_BSY | 패브릭이 프레임을 거부하거나 busy로 응답 | 패브릭 또는 조닝 문제, 옵틱스 문제 아님 |
| disc_c3 — 클래스 3 폐기 | timeout discards | 스위치 안에서 타임아웃되어 폐기된 프레임 | 슬로우 드레인/혼잡 |
| c3timeout tx/rx | — | 타임아웃의 방향 | tx 타임아웃: 연결된 장치가 느림; rx: 상류 쪽 문제 |
| pcs_err(16G+) | — | 64B/66B PCS 블록 오류 | 16/32GFC의 물리 계층 |
| uncor_err(FEC 사용 16G+) | FEC uncorrected | FEC가 블록을 정정하지 못함 | 한계에 가까운 링크 — VDM과 FEC 지표 |
credit loss(portstatsshow: tim_txcrd_z) | credit loss / tx credit not available | 송신 크레딧이 0인 상태로 보낸 시간 | 혼잡, 또는 오염된 링크에서 R_RDY 유실 |
경험칙: enc_out, crc_err, loss_sync, pcs_err는 물리적 문제와 함께 증가하고, disc_c3, c3timeout, tim_txcrd_z는 혼잡 문제와 함께 증가하며, frjt/fbsy는 패브릭 문제와 함께 증가합니다. 카운터를 초기화한 뒤 기다렸다가 누적값이 아니라 증가율을 보십시오.
슬로우 드레인
크레딧을 천천히 반환하는 종단 장치(과부하 상태의 호스트, 고장 난 HBA, 경로상의 속도 불일치)는 프레임을 스위치 버퍼에 붙잡아 둡니다; 이 프레임들은 타임아웃되어 폐기되고, 혼잡은 ISL을 통해 거꾸로 퍼져 나가 무관한 장치에까지 영향을 미칩니다. 이는 SAN에서 가장 피해가 큰 문제이며, 처음에는 그저 임의의 성능 문제처럼 보입니다.
| 징후 | 위치 |
|---|---|
| F_Port에서 tim_txcrd_z 증가 | 해당 포트의 장치가 크레딧 반환이 느림 |
| 같은 포트에서 disc_c3 / c3timeout tx | 해당 장치로 가는 프레임이 타임아웃됨 |
| ISL과 다른 F_Port에서 disc_c3 | 혼잡이 퍼짐 |
Bottleneck/MAPS “latency” 경고(Brocade), show logging onboard flow-control request-timeout, congestion-drop / slow-drain 감지(Cisco) | 플랫폼 도구 |
완화 방법: 느린 장치를 고치거나 격리합니다(포트 펜싱, 우선순위가 낮은 가상 채널로 격리), 엣지 포트의 congestion-drop 타임아웃을 단축합니다, 경로상의 속도 단차를 피합니다, ISL 오버서브스크립션을 적정 수준으로 유지합니다(SAN 설계). 옵틱스가 슬로우 드레인의 원인인 경우는 거의 없지만, R_RDY가 유실되는 한계 링크는 이를 흉내 낼 수 있으므로 먼저 enc_out/crc를 확인하십시오.
스위치에서 하는 SFP 점검
| 작업 | Brocade FOS | Cisco MDS / NX-OS |
|---|---|---|
| SFP 식별 정보와 DDM | sfpshow <port> | show interface fc1/1 transceiver details |
| 포트 상태와 속도 | portshow <port>, switchshow | show interface fc1/1, show interface brief |
| 오류 카운터 | porterrshow, portstatsshow <port> | show interface fc1/1 counters [detailed] |
| 카운터 초기화 | portstatsclear / statsclear | clear counters interface fc1/1 |
| 링크 테스트 | portloopbacktest, D_Port 진단(portcfgdport, portdporttest) | show interface fc1/1 transceiver details + 진단 도구를 통한 루프백 |
| 상태 정책 | MAPS(CRC, ITW, credit loss, SFP 파워/온도 임계값) | port-monitor policies(RX/TX 파워, CRC, ITW, credit loss) |
sfpshow와 transceiver details는 벤더, 부품 번호, 시리얼 번호, 속도, 임계값을 포함한 DDM 값을 보여줍니다 — CodingBox가 벤치에서 읽는 것과 같은 바이트입니다. 두 플랫폼 모두 지원되지 않는 옵틱스에 플래그를 표시합니다; 포트가 Mod_Inv, No_Module 또는 “unsupported transceiver” 상태에 머문다면 이는 고장이 아니라 정책에 의한 거부입니다(벤더 락, FC 옵틱스).
이상이 있는 FC 포트의 진단 순서
porterrshow/카운터: 물리적 문제(enc_out, crc, sync) 대 혼잡 문제(disc_c3, credits) 대 패브릭 문제(rjt/bsy).- SFP DDM: 등급 범위를 기준으로 양쪽 끝의 Rx 파워를 확인(표준값); 노화를 보려면 Tx 바이어스 추이를 확인.
- 커넥터를 세정하고 점검; 패치 코드를 교체; 카운터 증가율을 다시 확인.
- 속도: 협상된 속도를 낮은 세대로 강제 설정해 오류가 멈추는지 확인(한계에 가까운 32G 링크가 16G에서는 깨끗할 수 있음) — 속도와 레이트.
- D_Port/루프백 테스트로 스위치, SFP, 케이블 문제를 구분.
- 혼잡이라면: 문제를 호소하는 포트가 아니라 tim_txcrd_z를 기준으로 느린 장치를 찾을 것.
CodingBox에서는
스위치에서 뽑아낸 의심스러운 FC SFP는 벤치에서 읽을 수 있습니다: Check transceiver와 DDM에서 식별 정보, FC 속도/미디어 코드, 체크섬, 실시간 DDM을 확인합니다. 벤치에서는 정상인데 포트에서 오류가 난다면 의심은 케이블, 커넥터, 반대쪽 끝으로 옮겨갑니다.