CodingBox 문서

NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE와 관련 광 모듈

서버 내부에서는 플래시가 충분히 빨라 프로토콜 오버헤드가 드러날 정도가 되면서 NVMe가 SCSI를 대체했습니다. NVMe over Fabrics(NVMe-oF)는 같은 커맨드 집합을 네트워크 너머로 전달하여 공유 스토리지가 그 속도를 따라잡을 수 있게 합니다. NVMe-oF는 세 가지 네트워크에 대응하는 세 가지 트랜스포트 위에서 동작하며 — 따라서 세 가지 광학계와 세 벌의 물리 계층 규칙이 존재합니다. 이 페이지는 이들을 비교하고 각각이 링크에 요구하는 바를 설명합니다.

NVMe-oF를 쓰는 이유

항목SCSI 시대(FCP, iSCSI)NVMe-oF
커맨드 큐큐 1개, 명령 ~32–256개최대 큐 64k개 × 명령 64k개; 설계부터 병렬
I/O당 프로토콜 오버헤드수십 µs의 CPU 시간수 µs; RDMA 트랜스포트는 CPU를 우회
패브릭이 추가하는 지연일반적으로 100–200 µs10–30 µs(RDMA/FC), 30–80 µs(TCP)
적합한 용도HDD와 초기 플래시 어레이올플래시, 분리형 스토리지, GPU 데이터 파이프라인

트랜스포트

트랜스포트네트워크무손실 여부지연비고
FC-NVMe(FC-NVMe-2)Fibre Channel 16/32/64GFC예, 크레딧 방식매우 낮음같은 패브릭과 SFP에서 SCSI FCP와 함께 동작; 조닝과 네임 서버는 그대로 유지(FC 프로토콜 기초)
NVMe/RoCE v2RDMA NIC를 갖춘 이더넷 25/100/200/400GPFC/ECN(DCQCN) 필요매우 낮음UDP/IP 위의 RDMA verbs; 종단 간 무손실 구성 필요(무손실 이더넷)
NVMe/TCP모든 이더넷/IP아니요 — TCP가 손실을 처리낮음–중간특수 NIC나 스위치 기능 불필요; 라우팅 가능; 기업 환경에서 가장 많이 쓰이는 선택
NVMe/IBInfiniBand예, 크레딧 방식매우 낮음HPC/AI 스토리지(InfiniBand)

네 가지 모두 NVMe-oF 아키텍처를 공유합니다: 디스커버리 컨트롤러가 호스트에 어떤 서브시스템이 존재하는지 알려주고, 호스트는 큐를 I/O 컨트롤러에 연결하며, ANA(asymmetric namespace access)가 멀티패스를 처리합니다.

각 트랜스포트가 물리 계층에 요구하는 것

트랜스포트링크 요구 사항광학계
FC-NVMe깨끗한 FC 링크 — CRC/ITW 거의 0, 크레딧 고갈 없음벤더 검증을 거친 FC SFP 16/32/64GFC(FC 광학계)
NVMe/RoCE손실 제로: FEC 활성화, RoCE 클래스에 PFC, CRC 오류 없음(프레임을 하나 잃으면 go-back-N 재전송으로 RDMA 큐가 멈춤)25G SFP28 / 100G QSFP28 / 400G; 랙 내부는 DAC, 열 내부는 SR/AOC, 실 사이는 LR/DR; PMD별 FEC
NVMe/TCP평범함; 손실은 정확성이 아니라 지연으로 대가를 치름모든 이더넷 광학계
NVMe/IBInfiniBand 패브릭과 동일IB 케이블과 광학계(IB 배선)

민감한 쪽은 RoCE입니다: Rx 파워가 한계 상태이거나 커넥터가 오염된 링크는 CRC 오류를 만들어내는데, TCP라면 소리 없이 흡수했을 오류가 RDMA 큐를 눈에 띄게 멈추게 합니다. 포트의 오류 카운터와 함께 움직이는 스토리지 지연 급증이 바로 그 징후입니다(Rx 파워와 링크 버짓, VDM과 FEC 지표).

선택 기준

상황적합한 트랜스포트
기존 FC SAN, 올플래시 어레이FC-NVMe — 같은 패브릭, 같은 광학계, 타깃별로 활성화
신규 이더넷 스토리지, 벤더 혼용, 사이트 간 라우팅NVMe/TCP
지연에 민감, 단일 벤더 이더넷, 무손실 운용 역량 보유NVMe/RoCE
IB 패브릭을 갖춘 HPC/AI 클러스터NVMe/IB 또는 IB 위의 병렬 파일 시스템
이더넷으로 스케일 아웃하는 GPU 클러스터별도 스토리지 네트워크의 NVMe/RoCE 또는 NVMe/TCP(GPU 패브릭)

운영상 유의점

  • 가능하다면 스토리지와 컴퓨트에 별도 네트워크를 사용하거나, 최소한 트래픽 클래스만이라도 분리합니다; RoCE는 전용 무손실 클래스가 필요합니다.
  • MTU: 이더넷 트랜스포트에서는 9000; 종단 간 일관되게 유지합니다.
  • 멀티패스: 이중 패브릭 또는 이중 VLAN/리프; ANA를 인식하는 이니시에이터.
  • 모니터링: 포트별 CRC/FEC와 pause 카운터, DDM 추이 — 열화되는 광 모듈은 고장나기 훨씬 전부터 테일 레이턴시로 나타납니다(모니터링).
  • 펌웨어: NIC/HBA와 어레이의 펌웨어 호환성 매트릭스는 광학계 호환성 못지않게 중요합니다(SAN의 광학계).

CodingBox에서

NVMe-oF 패브릭의 광학계는 평범한 FC, 이더넷, IB 모듈입니다; 차이는 트랜스포트가 허용하는 오류가 얼마나 적은가에 있습니다. 설치 전 벤치에서 식별 정보와 기준 DDM을 읽는 것(Check transceiver, DDM)과, 어레이와 스위치 벤더가 허용하는 식별 정보로 코딩하는 것(벤더 락)이 프로그래머와 맞닿는 작업입니다.

이 패브릭들이 올라가는 어댑터 — 100G/200G NIC, 그 케이지, PCIe 한계, 모듈 정책: 광 포트를 갖춘 NIC.


이 문서에서 부정확한 내용이나 오류를 발견하면 해당 부분을 선택하고 Ctrl+Enter를 눌러 해 주세요.