스토리지용 무손실 Ethernet: DCB, PFC, ECN
이더넷은 혼잡해지면 프레임을 버리지만, Fibre Channel이나 RDMA를 위해 만들어진 스토리지 프로토콜은 프레임이 절대 버려지지 않는다고 전제합니다. 데이터 센터 브리징(DCB)은 우선순위별 흐름 제어와 대역폭 할당으로 이 간극을 메우며, RoCE는 그 위에 혼잡 시그널링을 더합니다. 결과물은 가장 약한 링크만큼만 무손실입니다: 백만 프레임 중 하나를 버리는 한계 상태의 광 모듈도 스토리지 장애로 이어집니다. 이 페이지는 그 메커니즘을 설명하고 이를 물리 계층 요구 사항으로 옮깁니다.
DCB 툴킷
| 표준 | 이름 | 기능 |
|---|---|---|
| IEEE 802.1Qbb | PFC — 우선순위 기반 흐름 제어 | 트래픽 클래스별(0–7) pause 프레임: 혼잡한 수신 측이 포트 전체가 아니라 클래스 하나만 멈춤 |
| IEEE 802.1Qaz | ETS — 향상된 전송 선택 | 클래스별 대역폭 보장 비율(예: 스토리지 50 %, LAN 50 %) |
| IEEE 802.1Qaz | DCBX — DCB 교환 | 스위치와 NIC 사이에서 LLDP 기반으로 PFC/ETS 설정을 협상 |
| IEEE 802.1Qau | CN — 혼잡 알림 | 거의 배치되지 않음 |
| RFC 3168 + DCQCN | ECN 마킹 + 레이트 제어 | 큐가 쌓이면 스위치가 패킷에 표시하고, RoCE NIC는 PFC가 필요해지기 전에 흐름을 늦춤 |
RoCE가 무손실을 유지하는 방법
- 스토리지/RDMA 트래픽은 DSCP나 802.1p를 통해 전용 우선순위(흔히 3 또는 4)로 태깅됩니다.
- 경로상의 모든 포트에서 그 우선순위에 대해서만 PFC가 활성화되며, 버퍼 헤드룸은 링크 속도와 케이블 길이(전송 중인 바이트 양)에 맞게 산정됩니다.
- ECN 임계값이 패킷을 조기에 표시하고, NIC는 DCQCN을 실행해 전송률을 낮추므로 PFC는 최후의 수단으로만 발동합니다.
- ETS는 LAN 부하가 있어도 스토리지 클래스에 대역폭을 보장합니다.
- DCBX는 NIC와 스위치 설정을 일치시킵니다; 설정이 어긋나면 무손실 특성이 소리 없이 깨집니다.
FC와 InfiniBand는 모든 링크에서 크레딧으로 기본적으로 이를 달성하지만, 이더넷은 이를 직접 설정하고 검증하고 모니터링해야 합니다(FC 프로토콜 기초, InfiniBand 트랜스포트).
무엇이 잘못될 수 있는가
| 문제 | 영향 | 탐지 방법 |
|---|---|---|
| 한 홉에서 PFC 비활성화 / 잘못된 우선순위 | 부하 시 드롭; RDMA 재전송; 지연 급증 | 0이 아니어야 할 pause 카운터가 0; 해당 클래스에서 드롭 발생 |
| PFC 스톰 | 멈춘 수신 측이 상류를 무기한 pause시킴; 혼잡이 패브릭 전역으로 확산 | pause 프레임 폭주; 워치독 카운터 |
| PFC 데드락 | Clos 패브릭에서 버퍼 의존성이 순환 구조를 이룸; 해당 클래스의 모든 트래픽이 정지 | 데드락 탐지/워치독으로만 해소 가능 |
| 긴 케이블/광 모듈에 비해 헤드룸이 부족 | PFC가 있어도 드롭 발생 | pause 카운터가 동작 중인데도 드롭 |
| ECN 임계값이 부적절 | 너무 이르면 처리량 손실; 너무 늦으면 PFC 폭주 | ECN 마크 카운터, NIC의 CNP 카운터 |
| 링크의 물리적 오류(CRC, FEC 정정 불가) | 흐름 제어로도 복구할 수 없는 프레임 손실 | 포트 오류 카운터, FEC 카운터 — VDM과 FEC 지표 |
DCB 없는 iSCSI
iSCSI는 TCP 위에서 동작하며 손실을 견디지만, 그 대가로 지연과 재전송이 늘어납니다. DCB 여부와 관계없이 권장되는 방법은 다음과 같습니다.
- 패브릭별 전용 VLAN/서브넷, 이중 패브릭, 호스트의 MPIO;
- 종단 간 점보 프레임(MTU 9000);
- 이니시에이터와 타깃 사이에 오버서브스크립션 없음; 어레이에 맞게 산정된 25G/100G 업링크;
- 25G 이상 모든 링크에서 FEC 활성화; CRC 카운터 0 유지;
- 마이크로버스트를 완화하기 위해 iSCSI 클래스에 선택적으로 PFC 적용(많은 어레이가 권장).
물리 계층 요구 사항
| 요구 사항 | 이유 | 실무 |
|---|---|---|
| 25G 이상 모든 링크에서 FEC 활성화 및 일치 | RoCE는 보호되지 않은 25G/50G 레인의 원시 BER을 견디지 못함 | FEC와 링크 트레이닝 |
| CRC와 FEC 정정 불가 오류 = 0 | 프레임을 하나 잃을 때마다 큐가 멈춤 | 카운터가 조금이라도 증가하면 알림 |
| Rx 파워가 마진을 두고 윈도우 안에 위치 | 한계 상태의 광 모듈은 온도 변화에 따라 오류가 몰아서 발생 | Rx 파워와 링크 버짓 |
| 속도/듀플렉스/AN 일치 | DAC는 양쪽 끝 모두 AN + 링크 트레이닝 필요 | 구리와 DAC |
| 케이블 길이가 헤드룸 가정 범위 안 | 헤드룸은 전송 중인 바이트 양으로 계산됨 | 랙 내부는 DAC, 열 내부는 SR/AOC, 실 사이는 DR/LR 선호 |
| NIC와 스위치가 식별 정보를 허용 | 거부된 광 모듈은 링크 불가 또는 저속으로 대체 | 벤더 락 |
모니터링 체크리스트
- 포트별: 우선순위별 pause 프레임 송/수신, ECN 마크, 클래스별 드롭, CRC, FEC 정정/정정 불가, 링크 플래핑.
- NIC별: CNP 송/수신, 재전송, 순서 어긋남, 타임아웃.
- 광 모듈별: Rx/Tx 파워와 온도 추이(모니터링).
- 스토리지의 테일 레이턴시 급증을 위 항목들과 연관 지어 살펴보십시오 — 어레이보다 물리 계층이 원인인 경우가 더 많습니다.
CodingBox에서
무손실 패브릭도 평범한 광 모듈로 만들어지며, 다만 더 높은 기준으로 관리될 뿐입니다. 벤치에서의 입고 검사 — 식별 정보, 체크섬, 표준값 대비 실시간 DDM, 기준값 저장 — 이 링크 하나의 결함이 애플리케이션의 지연 SLA를 무너뜨리는 패브릭에서 한계 상태의 모듈을 걸러내는 방법입니다(Check transceiver, DDM).
PFC와 ECN이 다른 포워딩 메커니즘 사이에서 어떤 위치를 차지하는지, 물리 계층 오류가 그 안에서 어떻게 드러나는지: 포워딩 기초.