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 प्रोटोकॉल ओवरहेड | दसियों µ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 के साथ Ethernet 25/100/200/400G | PFC/ECN (DCQCN) चाहिए | बहुत कम | UDP/IP पर RDMA verbs; एंड टू एंड लॉसलेस कॉन्फ़िगरेशन चाहिए (लॉसलेस ईथरनेट) |
| 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 ऑन, RoCE क्लास पर PFC, कोई CRC एरर नहीं (हर खोया फ़्रेम go-back-N रीट्रांसमिशन के साथ RDMA क्यू को अटका देता है) | 25G SFP28 / 100G QSFP28 / 400G; रैक में DAC, रो में SR/AOC, कमरों के बीच LR/DR; प्रति PMD FEC |
| 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 |
| IB फ़ैब्रिक वाला HPC/AI क्लस्टर | NVMe/IB या IB पर पैरेलल फ़ाइल सिस्टम |
| Ethernet स्केल-आउट वाले GPU क्लस्टर | अलग स्टोरेज नेटवर्क पर NVMe/RoCE या NVMe/TCP (GPU फ़ैब्रिक) |
ऑपरेशनल नोट
- जहाँ मुमकिन हो, स्टोरेज और कंप्यूट के लिए अलग नेटवर्क — या कम से कम अलग ट्रैफ़िक क्लास; RoCE को अपनी ख़ुद की लॉसलेस क्लास चाहिए।
- MTU: Ethernet ट्रांसपोर्ट पर 9000; एंड टू एंड कंसिस्टेंट।
- मल्टीपाथ: दो फ़ैब्रिक या दो VLAN/लीफ़; ANA-अवेयर इनिशिएटर।
- मॉनिटरिंग: प्रति-पोर्ट CRC/FEC और पॉज़ काउंटर, साथ ही DDM ट्रेंड — फ़ेल होने से बहुत पहले ही डिग्रेड होता ऑप्टिक टेल लेटेंसी के रूप में दिख जाता है (मॉनिटरिंग)।
- फ़र्मवेयर: NIC/HBA और ऐरे के फ़र्मवेयर कंपैटिबिलिटी मैट्रिक्स उतने ही मायने रखते हैं जितनी ऑप्टिक्स कंपैटिबिलिटी (SAN में ऑप्टिक्स)।
CodingBox में
NVMe-oF फ़ैब्रिक के ऑप्टिक्स आम FC, Ethernet या IB मॉड्यूल ही होते हैं; फ़र्क़ इसमें है कि ट्रांसपोर्ट कितनी कम ग़लती बर्दाश्त करता है। इंस्टॉलेशन से पहले बेंच पर पहचान जानकारी और बेसलाइन DDM पढ़ना (Check transceiver, DDM), और ऐरे व स्विच के वेंडर जो पहचान स्वीकार करते हैं वह कोड करना (विक्रेता लॉक) — यही काम के वे हिस्से हैं जो प्रोग्रामर को छूते हैं।
जिन एडेप्टर पर ये फ़ैब्रिक चलते हैं — 100G/200G NIC, इनके केज, PCIe सीमाएँ और मॉड्यूल पॉलिसी: ऑप्टिकल पोर्ट वाले NIC।