स्टोरेज के लिए Lossless Ethernet: DCB, PFC, ECN
कंजेस्टेड होने पर ईथरनेट फ़्रेम ड्रॉप करता है; Fibre Channel या RDMA के लिए बने स्टोरेज प्रोटोकॉल यह मानकर चलते हैं कि कभी कुछ ड्रॉप नहीं होता। डेटा सेंटर ब्रिजिंग (DCB) प्रति-प्रायोरिटी फ़्लो कंट्रोल और बैंडविड्थ एलोकेशन से यह अंतर पाटता है, और RoCE इसके ऊपर कंजेशन सिग्नलिंग जोड़ता है। नतीजा उतना ही लॉसलेस होता है जितना उसका सबसे कमज़ोर लिंक: एक मार्जिनल ऑप्टिक जो दस लाख में एक फ़्रेम ड्रॉप करता है, वह एक स्टोरेज इंसिडेंट है। यह पेज मैकेनिज़्म समझाता है और उन्हें फ़िज़िकल-लेयर रिक्वायरमेंट में बदलता है।
DCB टूलकिट
| स्टैंडर्ड | नाम | यह क्या करता है |
|---|---|---|
| IEEE 802.1Qbb | PFC — प्रायोरिटी-आधारित फ़्लो कंट्रोल | ट्रैफ़िक क्लास (0–7) के हिसाब से पॉज़ फ़्रेम: कंजेस्टेड रिसीवर पोर्ट को रोके बिना एक क्लास को रोक देता है |
| IEEE 802.1Qaz | ETS — एन्हांस्ड ट्रांसमिशन सिलेक्शन | प्रति क्लास गारंटीड बैंडविड्थ शेयर (जैसे 50% स्टोरेज, 50% LAN) |
| IEEE 802.1Qaz | DCBX — DCB एक्सचेंज | स्विच और NIC के बीच PFC/ETS सेटिंग का LLDP-आधारित नेगोशिएशन |
| IEEE 802.1Qau | CN — कंजेशन नोटिफ़िकेशन | कम ही डिप्लॉय होता है |
| RFC 3168 + DCQCN | ECN मार्किंग + रेट कंट्रोल | क्यू बनने पर स्विच पैकेट मार्क करता है; PFC की ज़रूरत पड़ने से पहले ही RoCE NIC फ़्लो धीमा कर देते हैं |
RoCE लॉसलेस कैसे बना रहता है
- स्टोरेज/RDMA ट्रैफ़िक को DSCP या 802.1p के ज़रिए एक डेडिकेटेड प्रायोरिटी (अक्सर 3 या 4) से टैग किया जाता है।
- पाथ के हर पोर्ट पर PFC सिर्फ़ उसी प्रायोरिटी के लिए इनेबल होता है, साथ ही बफ़र हेडरूम लिंक स्पीड और केबल लंबाई (इन-फ़्लाइट बाइट) के हिसाब से साइज़ किया जाता है।
- ECN थ्रेशोल्ड पैकेट को जल्दी मार्क करते हैं; NIC अपनी रेट घटाने के लिए DCQCN चलाते हैं, इसलिए PFC सिर्फ़ आख़िरी उपाय के तौर पर चलता है।
- ETS LAN लोड के तहत भी स्टोरेज क्लास को उसकी बैंडविड्थ की गारंटी देता है।
- DCBX NIC और स्विच की सेटिंग को एक जैसा बनाए रखता है; मिसमैच होने पर लॉसलेसनेस चुपचाप टूट जाती है।
FC और InfiniBand डिफ़ॉल्ट रूप से हर लिंक पर क्रेडिट से यही हासिल करते हैं; ईथरनेट में इसे कॉन्फ़िगर, वेरिफ़ाई और मॉनिटर करना पड़ता है (FC प्रोटोकॉल बेसिक्स, InfiniBand ट्रांसपोर्ट)।
क्या गड़बड़ हो सकता है
| समस्या | असर | पता लगाना |
|---|---|---|
| एक हॉप पर PFC इनेबल नहीं / ग़लत प्रायोरिटी | लोड में ड्रॉप; RDMA रीट्रांसमिट; लेटेंसी स्पाइक | पॉज़ काउंटर वहाँ ज़ीरो जहाँ नहीं होना चाहिए; उस क्लास पर ड्रॉप |
| PFC स्टॉर्म | अटका हुआ रिसीवर अपस्ट्रीम को अनिश्चित काल तक पॉज़ करता है; कंजेशन पूरी फ़ैब्रिक में फैल जाता है | पॉज़ फ़्रेम की बाढ़; वॉचडॉग काउंटर |
| PFC डेडलॉक | Clos फ़ैब्रिक में साइक्लिक बफ़र डिपेंडेंसी; क्लास का पूरा ट्रैफ़िक रुक जाता है | तोड़ने के लिए डेडलॉक डिटेक्शन / वॉचडॉग चाहिए |
| लंबी केबल/ऑप्टिक्स के लिए हेडरूम बहुत छोटा | PFC के बावजूद ड्रॉप | पॉज़ काउंटर एक्टिव रहते हुए भी ड्रॉप |
| ECN थ्रेशोल्ड ग़लत | बहुत जल्दी: थ्रूपुट लॉस; बहुत देर से: PFC की बाढ़ | ECN मार्क काउंटर, NIC पर CNP काउंटर |
| लिंक पर फ़िज़िकल एरर (CRC, FEC अनकरेक्टेबल) | ऐसे फ़्रेम खो जाते हैं जिन्हें कोई फ़्लो कंट्रोल वापस नहीं ला सकता | पोर्ट एरर काउंटर, FEC काउंटर — VDM और FEC मेट्रिक |
बिना DCB के iSCSI
iSCSI, TCP पर चलता है और लॉस झेल सकता है, लेकिन इसकी क़ीमत लेटेंसी और रीट्रांसमिशन में चुकाता है। DCB चाहे हो या न हो, अच्छे तरीक़े ये हैं:
- प्रति फ़ैब्रिक डेडिकेटेड VLAN/सबनेट, दो फ़ैब्रिक, होस्ट पर MPIO;
- एंड टू एंड जंबो फ़्रेम (MTU 9000);
- इनिशिएटर और टारगेट के बीच कोई ओवरसब्सक्रिप्शन नहीं; ऐरे के हिसाब से साइज़ किए गए 25G/100G अपलिंक;
- हर 25G+ लिंक पर FEC ऑन; CRC काउंटर ज़ीरो पर;
- माइक्रो-बर्स्ट को स्मूद करने के लिए वैकल्पिक रूप से iSCSI क्लास पर PFC (कई ऐरे इसकी सलाह देते हैं)।
फ़िज़िकल-लेयर रिक्वायरमेंट
| रिक्वायरमेंट | क्यों | तरीक़ा |
|---|---|---|
| हर 25G+ लिंक पर FEC इनेबल और मैच्ड | RoCE, अनप्रोटेक्टेड 25G/50G लेन का रॉ BER बर्दाश्त नहीं कर सकता | FEC और लिंक ट्रेनिंग |
| CRC और अनकरेक्टेबल FEC = 0 | हर खोया फ़्रेम एक क्यू को अटका देता है | किसी भी बढ़ोतरी पर अलर्ट |
| मार्जिन के साथ विंडो के भीतर Rx पावर | मार्जिनल ऑप्टिक्स तापमान बदलने पर एरर के बर्स्ट पैदा करते हैं | Rx पावर और लिंक बजट |
| कंसिस्टेंट स्पीड/डुप्लेक्स/AN | DAC को दोनों सिरों पर AN + लिंक ट्रेनिंग चाहिए | कॉपर और DAC |
| हेडरूम की धारणाओं के भीतर केबल लंबाई | हेडरूम इन-फ़्लाइट बाइट से कैलकुलेट होता है | रैक में DAC, रो में SR/AOC, कमरों के बीच DR/LR को प्राथमिकता दें |
| NIC और स्विच से स्वीकृत पहचान जानकारी | रिजेक्टेड ऑप्टिक्स या तो लिंक ही नहीं बनाते या घटी हुई स्पीड पर आ जाते हैं | विक्रेता लॉक |
मॉनिटरिंग चेकलिस्ट
- प्रति पोर्ट: प्रति प्रायोरिटी भेजे/मिले पॉज़ फ़्रेम, ECN मार्क, प्रति क्लास ड्रॉप, CRC, FEC करेक्टेड/अनकरेक्टेबल, लिंक फ़्लैप।
- प्रति NIC: भेजे/मिले CNP, रीट्रांसमिशन, आउट-ऑफ़-सीक्वेंस, टाइमआउट।
- प्रति ऑप्टिक: Rx/Tx पावर और तापमान के रुझान (मॉनिटरिंग)।
- स्टोरेज की टेल-लेटेंसी स्पाइक को ऊपर वाली चीज़ों से जोड़कर देखें — ऐरे से ज़्यादा बार फ़िज़िकल लेयर ही दोषी होती है।
CodingBox में
एक लॉसलेस फ़ैब्रिक आम ऑप्टिक्स से ही बनती है, बस उन्हें ऊँचे मानक पर रखा जाता है। बेंच पर इनकमिंग इंस्पेक्शन — पहचान जानकारी, चेकसम, सामान्य मान के मुक़ाबले लाइव DDM, स्टोर की गई बेसलाइन — इसी तरह मार्जिनल मॉड्यूल को उस फ़ैब्रिक से बाहर रखा जाता है जहाँ एक ख़राब लिंक किसी एप्लिकेशन की लेटेंसी SLA की क़ीमत ले लेता है (Check transceiver, DDM)।
बाक़ी फ़ॉरवर्डिंग मैकेनिज़्म के बीच PFC और ECN कहाँ बैठते हैं, और फ़िज़िकल-लेयर एरर इनमें कैसे नज़र आते हैं: फ़ॉरवर्डिंग बेसिक्स।