NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE และออปติกที่ใช้
NVMe เข้ามาแทน SCSI ภายในเซิร์ฟเวอร์เพราะแฟลชเร็วพอที่จะทำให้เห็นโอเวอร์เฮดของโปรโตคอลชัดเจน; NVMe over Fabrics (NVMe-oF) พาชุดคำสั่งเดียวกันนี้ข้ามเครือข่ายไป เพื่อให้สตอเรจที่ใช้ร่วมกันตามทันได้ มันทำงานผ่านสามทรานสปอร์ตที่สอดคล้องกับเครือข่ายสามแบบ — และด้วยเหตุนี้จึงมีออปติกสามแบบและกฎระดับเลเยอร์กายภาพสามชุด หน้านี้เปรียบเทียบทั้งสามแบบและบอกว่าแต่ละแบบต้องการอะไรจากลิงก์
ทำไมต้อง NVMe-oF
| แง่มุม | ยุค SCSI (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| คิวคำสั่ง | คิวเดียว, ~32–256 คำสั่ง | สูงสุด 64k คิว × 64k คำสั่ง; ขนานกันโดยการออกแบบ |
| โอเวอร์เฮดของโปรโตคอลต่อ I/O | เวลา CPU หลายสิบ µs | ไม่กี่ µ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 | ใช่ ด้วยเครดิต | ต่ำมาก | ทำงานควบคู่กับ SCSI FCP บนฟาบริกและ SFP เดียวกัน; โซนนิ่งและเนมเซิร์ฟเวอร์ไม่เปลี่ยนแปลง (พื้นฐานโปรโตคอล FC) |
| NVMe/RoCE v2 | Ethernet 25/100/200/400G ด้วย NIC แบบ RDMA | ต้องมี PFC/ECN (DCQCN) | ต่ำมาก | verbs ของ RDMA บน UDP/IP; ต้องตั้งค่าไม่ให้สูญเสียข้อมูลตลอดเส้นทางจากต้นทางถึงปลายทาง (Ethernet แบบไม่สูญเสียข้อมูล) |
| NVMe/TCP | Ethernet/IP แบบใดก็ได้ | ไม่ — TCP จัดการการสูญเสียข้อมูลเอง | ต่ำ–ปานกลาง | ไม่ต้องใช้ NIC หรือฟีเจอร์พิเศษของสวิตช์; จัดเส้นทางได้; ตัวเลือกหลักสำหรับองค์กร |
| NVMe/IB | InfiniBand | ใช่ ด้วยเครดิต | ต่ำมาก | สตอเรจสำหรับ HPC/AI (InfiniBand) |
ทั้งสี่แบบใช้สถาปัตยกรรม NVMe-oF ร่วมกัน: ตัวควบคุมการค้นพบ บอกโฮสต์ว่ามีซับซิสเต็มใดอยู่บ้าง; โฮสต์ เชื่อมต่อ คิวเข้ากับตัวควบคุม I/O; ANA (การเข้าถึงเนมสเปซแบบไม่สมมาตร) จัดการมัลติพาธ
สิ่งที่แต่ละแบบต้องการจากเลเยอร์กายภาพ
| ทรานสปอร์ต | ข้อกำหนดของลิงก์ | ออปติก |
|---|---|---|
| FC-NVMe | ลิงก์ FC ที่สะอาด — CRC/ITW ใกล้ศูนย์ เครดิตไม่หมด | FC SFP 16/32/64GFC ที่ผ่านการตรวจสอบจากผู้ผลิต (ออปติกของ FC) |
| NVMe/RoCE | ไม่สูญเสียข้อมูลเลย: เปิด FEC, เปิด PFC บนคลาส RoCE, ไม่มีข้อผิดพลาด CRC (เฟรมที่สูญหายแต่ละเฟรมทำให้คิวของ RDMA ค้างพร้อมส่งซ้ำแบบ go-back-N) | 25G SFP28 / 100G QSFP28 / 400G; DAC ภายในแร็ก, SR/AOC ภายในแถว, LR/DR ระหว่างห้อง; FEC ตาม PMD |
| NVMe/TCP | ปกติทั่วไป; การสูญเสียข้อมูลมีผลต่อเวลาแฝง ไม่ใช่ความถูกต้อง | ออปติก Ethernet แบบใดก็ได้ |
| NVMe/IB | เหมือนฟาบริก InfiniBand | สายและออปติกของ IB (สายและคอนเนกเตอร์ของ IB) |
RoCE คือแบบที่บอบบางที่สุด: ลิงก์ที่มีกำลัง Rx ก้ำกึ่งหรือคอนเนกเตอร์สกปรกจะเกิดข้อผิดพลาด CRC ซึ่ง TCP จะดูดซับไว้อย่างเงียบ ๆ แต่กลับทำให้คิวของ RDMA ค้างอย่างเห็นได้ชัด การพุ่งของเวลาแฝงด้านสตอเรจที่สอดคล้องกับตัวนับข้อผิดพลาดของพอร์ตคือสัญญาณบ่งชี้ (กำลัง Rx และงบประมาณลิงก์, ตัวชี้วัด VDM และ FEC)
การเลือกใช้งาน
| สถานการณ์ | ทรานสปอร์ตที่เหมาะสม |
|---|---|
| มี FC SAN อยู่แล้ว, อาร์เรย์แบบแฟลชทั้งหมด | FC-NVMe — ฟาบริกเดียวกัน ออปติกเดียวกัน เปิดใช้ทีละเป้าหมาย |
| สตอเรจ Ethernet ที่สร้างใหม่ทั้งหมด, ผู้ผลิตหลากหลาย, จัดเส้นทางระหว่างไซต์ | NVMe/TCP |
| เวลาแฝงสำคัญมาก, Ethernet จากผู้ผลิตรายเดียว, มีความเชี่ยวชาญด้านระบบไม่สูญเสียข้อมูลในองค์กร | NVMe/RoCE |
| คลัสเตอร์ HPC/AI ที่มีฟาบริก IB | NVMe/IB หรือระบบไฟล์แบบขนานบน IB |
| คลัสเตอร์ GPU ที่ขยายด้วย Ethernet | NVMe/RoCE หรือ NVMe/TCP บนเครือข่ายสตอเรจแยกต่างหาก (ฟาบริก GPU) |
ข้อสังเกตด้านปฏิบัติการ
- แยกเครือข่าย สำหรับสตอเรจและการประมวลผลเมื่อทำได้ — หรืออย่างน้อยแยกคลาสทราฟฟิก; RoCE ต้องการคลาสที่ไม่สูญเสียข้อมูลของตัวเอง
- MTU: 9000 บนทรานสปอร์ต Ethernet; ต้องตรงกันตลอดเส้นทางจากต้นทางถึงปลายทาง
- มัลติพาธ: สองฟาบริกหรือสอง VLAN/ลีฟ; อินิชิเอเตอร์ที่รองรับ ANA
- การตรวจติดตาม: ตัวนับ CRC/FEC และ pause ต่อพอร์ต รวมถึงแนวโน้มของ DDM — ออปติกที่เสื่อมสภาพจะแสดงออกเป็นเวลาแฝงส่วนหางนานก่อนที่จะเสียจริง (การตรวจติดตาม)
- เฟิร์มแวร์: ตารางความเข้ากันได้ของเฟิร์มแวร์ NIC/HBA กับอาร์เรย์สำคัญพอ ๆ กับความเข้ากันได้ของออปติก (ออปติกใน SAN)
ใน CodingBox
ออปติกของฟาบริก NVMe-oF ก็คือโมดูล FC, Ethernet หรือ IB ทั่วไป; ความต่างอยู่ที่ทรานสปอร์ตทนต่อข้อผิดพลาดได้น้อยแค่ไหน การอ่านข้อมูลระบุตัวตนและบันทึกค่าฐานของ DDM บนโต๊ะทดสอบก่อนติดตั้ง (Check transceiver, DDM) และการเขียนโค้ดข้อมูลระบุตัวตนที่ผู้ผลิตอาร์เรย์และสวิตช์ยอมรับ (การล็อกผู้ผลิต) คือส่วนของงานที่เกี่ยวข้องกับเครื่องโปรแกรม
อะแดปเตอร์ที่ฟาบริกเหล่านี้ทำงานอยู่บน — NIC 100G/200G, เคจของมัน, ข้อจำกัดของ PCIe และนโยบายโมดูล: NIC ที่มีพอร์ตออปติคัล