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 µs | 10–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 v2 | RDMA NIC를 갖춘 이더넷 25/100/200/400G | PFC/ECN(DCQCN) 필요 | 매우 낮음 | UDP/IP 위의 RDMA verbs; 종단 간 무손실 구성 필요(무손실 이더넷) |
| NVMe/TCP | 모든 이더넷/IP | 아니요 — TCP가 손실을 처리 | 낮음–중간 | 특수 NIC나 스위치 기능 불필요; 라우팅 가능; 기업 환경에서 가장 많이 쓰이는 선택 |
| NVMe/IB | InfiniBand | 예, 크레딧 방식 | 매우 낮음 | 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/IB | InfiniBand 패브릭과 동일 | 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.