NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE và module quang của chúng
NVMe thay thế SCSI bên trong server vì flash đủ nhanh để bộc lộ rõ hao phí của giao thức; NVMe over Fabrics (NVMe-oF) mang cùng một tập lệnh đó ra khắp mạng, để lưu trữ dùng chung có thể theo kịp. Nó chạy trên ba giao vận, ứng với ba kiểu mạng khác nhau — và do đó là ba kiểu quang học và ba bộ quy tắc ở lớp vật lý khác nhau. Trang này so sánh chúng và cho biết mỗi loại đòi hỏi gì ở liên kết.
Vì sao có NVMe-oF
| Khía cạnh | Thời SCSI (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| Hàng đợi lệnh | một hàng đợi, ~32–256 lệnh | tới 64k hàng đợi × 64k lệnh; song song ngay từ thiết kế |
| Hao phí giao thức trên mỗi I/O | hàng chục µs thời gian CPU | vài µs; các giao vận RDMA bỏ qua CPU |
| Độ trễ tăng thêm do fabric | thường là 100–200 µs | 10–30 µs (RDMA/FC), 30–80 µs (TCP) |
| Phù hợp nhất cho | mảng HDD và flash thế hệ đầu | toàn flash, lưu trữ tách rời, pipeline dữ liệu GPU |
Các giao vận
| Giao vận | Mạng | Không mất gói? | Độ trễ | Ghi chú |
|---|---|---|---|---|
| FC-NVMe (FC-NVMe-2) | Fibre Channel 16/32/64GFC | có, bằng credit | rất thấp | chạy song song với SCSI FCP trên cùng fabric và cùng SFP; zoning và name server không đổi (Giao thức FC cơ bản) |
| NVMe/RoCE v2 | Ethernet 25/100/200/400G với NIC hỗ trợ RDMA | cần PFC/ECN (DCQCN) | rất thấp | verbs RDMA trên nền UDP/IP; cần cấu hình không mất gói từ đầu đến cuối (Ethernet không mất gói) |
| NVMe/TCP | bất kỳ Ethernet/IP nào | không — TCP tự xử lý mất gói | thấp–trung bình | không cần NIC hay tính năng switch đặc biệt; định tuyến được; lựa chọn phổ biến trong doanh nghiệp |
| NVMe/IB | InfiniBand | có, bằng credit | rất thấp | lưu trữ cho HPC/AI (InfiniBand) |
Cả bốn giao vận đều dùng chung kiến trúc NVMe-oF: một discovery controller cho host biết những subsystem nào tồn tại; host connect các hàng đợi tới I/O controller; ANA (truy cập namespace bất đối xứng) xử lý multipath.
Mỗi loại đòi hỏi gì ở lớp vật lý
| Giao vận | Yêu cầu liên kết | Quang học |
|---|---|---|
| FC-NVMe | liên kết FC sạch — CRC/ITW gần bằng 0, không cạn credit | SFP FC 16/32/64GFC, được nhà sản xuất xác nhận tương thích (Quang học FC) |
| NVMe/RoCE | không mất gói: bật FEC, bật PFC cho lớp RoCE, không có lỗi CRC (mỗi khung bị mất làm nghẽn hàng đợi RDMA, phải dùng cơ chế truyền lại go-back-N) | 25G SFP28 / 100G QSFP28 / 400G; DAC trong tủ rack, SR/AOC trong hàng, LR/DR giữa các phòng; FEC theo từng PMD |
| NVMe/TCP | bình thường; mất gói chỉ tốn độ trễ, không ảnh hưởng tới tính đúng đắn | bất kỳ quang học Ethernet nào |
| NVMe/IB | giống như các fabric InfiniBand | cáp và quang học IB (Cáp IB) |
RoCE là giao vận nhạy cảm nhất: một liên kết có công suất Rx cận biên hoặc đầu nối bẩn sẽ sinh ra lỗi CRC — thứ mà TCP âm thầm hấp thụ được, nhưng lại làm nghẽn rõ rệt các hàng đợi RDMA. Dấu hiệu nhận biết là các đợt tăng vọt độ trễ lưu trữ bám sát theo bộ đếm lỗi của cổng (Công suất Rx & quỹ công suất tuyến, Chỉ số VDM & FEC).
Lựa chọn
| Tình huống | Giao vận hợp lý |
|---|---|
| Đã có SAN FC, mảng toàn flash | FC-NVMe — cùng fabric, cùng quang học, bật theo từng target |
| Lưu trữ Ethernet xây mới, nhiều nhà sản xuất khác nhau, cần định tuyến giữa các site | NVMe/TCP |
| Nhạy cảm với độ trễ, Ethernet một nhà sản xuất, có sẵn chuyên môn về không mất gói trong nội bộ | NVMe/RoCE |
| Cụm HPC/AI có fabric IB | NVMe/IB hoặc hệ thống file song song trên nền IB |
| Cụm GPU mở rộng theo chiều ngang bằng Ethernet | NVMe/RoCE hoặc NVMe/TCP trên một mạng lưu trữ riêng (Fabric GPU) |
Ghi chú vận hành
- Mạng riêng cho lưu trữ và tính toán nếu có thể — hoặc ít nhất là lớp lưu lượng riêng; RoCE cần lớp không mất gói của riêng nó.
- MTU: 9000 trên các giao vận Ethernet; nhất quán từ đầu đến cuối.
- Multipath: hai fabric hoặc hai VLAN/leaf; initiator hỗ trợ ANA.
- Giám sát: bộ đếm CRC/FEC và pause theo từng cổng, cộng với xu hướng DDM — một thiết bị quang đang xuống cấp sẽ thể hiện ra thành độ trễ đuôi (tail latency) rất lâu trước khi nó hỏng hẳn (Giám sát).
- Firmware: ma trận tương thích firmware của NIC/HBA và mảng lưu trữ quan trọng không kém gì tương thích quang học (Quang học trong SAN).
Trong CodingBox
Quang học của một fabric NVMe-oF chỉ là các module FC, Ethernet hoặc IB bình thường; điểm khác biệt là giao vận đó chịu được rất ít lỗi. Đọc thông tin nhận dạng và giá trị tham chiếu DDM trên bàn thử trước khi lắp đặt (Check transceiver, DDM), và mã hóa thông tin nhận dạng mà nhà sản xuất mảng lưu trữ và switch chấp nhận (Khóa nhà sản xuất), là những phần việc có liên quan tới bộ lập trình.
Các adapter mà những fabric này chạy trên đó — NIC 100G/200G, cage của chúng, giới hạn PCIe và chính sách module: NIC có cổng quang.