paint-brush
इष्टतम नेटवर्क कॉन्फ़िगरेशन के साथ मिनियो का अधिकतम लाभ उठाएं - यहां बताया गया है कि कैसेद्वारा@minio
5,296 रीडिंग
5,296 रीडिंग

इष्टतम नेटवर्क कॉन्फ़िगरेशन के साथ मिनियो का अधिकतम लाभ उठाएं - यहां बताया गया है कि कैसे

द्वारा MinIO7m2023/11/24
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

मिनिआईओ को वितरित तरीके से तैनात किया जा सकता है जो एक से अधिक भौतिक या आभासी मशीन की गणना और भंडारण संसाधनों के संसाधनों का कुशल उपयोग करता है।
featured image - इष्टतम नेटवर्क कॉन्फ़िगरेशन के साथ मिनियो का अधिकतम लाभ उठाएं - यहां बताया गया है कि कैसे
MinIO HackerNoon profile picture
0-item
1-item

मिनिआईओ को वितरित तरीके से तैनात किया जा सकता है जो एक से अधिक भौतिक या आभासी मशीन के कंप्यूटिंग और भंडारण संसाधनों के संसाधनों का कुशल उपयोग करता है। यह एक निजी या सार्वजनिक क्लाउड वातावरण में चलने वाला MiniIO हो सकता है, जैसे कि Amazon Web Services, Google Cloud प्लेटफ़ॉर्म, Microsoft का Azure प्लेटफ़ॉर्म और कई अन्य। मिनिओ कई प्रकार की टोपोलॉजी पर तैनात कर सकता है - उत्पादन में हम मल्टी-नोड मल्टी-ड्राइव (एमएनएमडी) तैनाती की अनुशंसा करते हैं। मिनिआईओ आपकी एकल साइट परिनियोजन के लिए बीसी/डीआर ग्रेड फेलओवर और पुनर्प्राप्ति सहायता प्रदान करने के लिए साइट प्रतिकृति की अनुशंसा करता है, जिसे आप अपने उपयोग के मामले में डिज़ाइन और अनुकूलित कर सकते हैं।


पिछले ब्लॉग पोस्ट में, हमने आपके मिनिओ परिनियोजन के लिए हार्डवेयर का चयन करते समय उपयोग की जाने वाली कुछ सर्वोत्तम प्रथाओं पर पहले ही चर्चा की है। हमने सर्वोत्तम क्षेत्र, सही ड्राइव, सीपीयू और मेमोरी कॉन्फ़िगरेशन और यहां तक कि कुछ अनुशंसित नेटवर्क कॉन्फ़िगरेशन चुनने से लेकर हार्डवेयर के विभिन्न पहलुओं को छुआ। हालाँकि हमने सिस्टम डिज़ाइन के लिए विभिन्न सर्वोत्तम प्रथाओं को छुआ है, हम हमेशा गहराई तक जा सकते हैं, और आज हम ड्राइव और नेटवर्क से सर्वोत्तम प्रदर्शन प्राप्त करने के लिए मिनिओ को डिज़ाइन करने के कुछ बेहतरीन बिंदुओं पर गौर करेंगे।


इस ब्लॉग पोस्ट में, हम नेटवर्क कॉन्फ़िगरेशन में गहराई से जाएंगे जिसके साथ आप मिनिओ को विभिन्न प्रतिकृति रणनीतियों और नेटवर्क टोपोलॉजी में कॉन्फ़िगर कर सकते हैं जिनका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि आपका डेटा कई मिनिओ तैनाती में कुशलतापूर्वक संग्रहीत और एक्सेस किया जा सके। आपको कोई जटिल कॉन्फ़िगरेशन करने की आवश्यकता नहीं है जैसे कि बॉन्डेड/डुअल एनआईसी स्थापित करना (जो अतिरिक्त ओवरहेड जोड़ता है)।

सरल नेटवर्किंग रणनीतियाँ

मिनिओ क्लाउड-नेटिव सेवाओं के लिए एक S3-संगत स्टोरेज बैकएंड है। सामान्य तौर पर, हम नेटवर्क ट्रैफ़िक को या तो ऐप्स और क्लस्टर के बीच या क्लस्टर में नोड्स के बीच मानते हैं। इंटरनोड ट्रैफ़िक के कारण, यह सर्वोपरि है कि नोड्स के बीच नेटवर्किंग यथासंभव तेज़ हो। प्रत्येक पूल में अपने स्वयं के इरेज़र सेट के साथ नोड्स का एक स्वतंत्र समूह होता है। मिनिआईओ को सही इरेज़र सेट निर्धारित करने के लिए प्रत्येक पूल से पूछताछ करनी चाहिए, जिस पर वह पढ़ने और लिखने के संचालन को निर्देशित करता है, जैसे कि प्रत्येक अतिरिक्त पूल न्यूनतम जोड़ता है, लेकिन प्रति कॉल बढ़ा हुआ इंटरनोड ट्रैफ़िक जोड़ता है। पूल जिसमें सही इरेज़र सेट होता है, फिर ऑपरेशन पर प्रतिक्रिया करता है, एप्लिकेशन के लिए पूरी तरह से पारदर्शी रहता है।


वे दिन गए जब उद्यम 1 जीबीई या 10 जीबीई एनआईसी के साथ काम कर सकता था। आधुनिक उद्यम कार्यभार आदर्श रूप से 100 जीबीई एनआईसी का उपयोग करता है। टीसीपी प्रोटोकॉल के लिए भौतिकी और ओवरहेड की सीमाओं को देखते हुए, इन एनआईसी से उपलब्ध बैंडविड्थ का 80-90% वितरित करने की उम्मीद की जाएगी, आम तौर पर 100 जीबीपीएस एनआईसी के लिए लगभग 10 जीबी/एस, वास्तव में अच्छी तरह से प्रदान किए गए नेटवर्क पर 12 जीबी/सेकेंड तक। मिनिओ को सभी बैंडविड्थ का लाभ उठाने के लिए बॉक्स से बाहर किसी अतिरिक्त नेटवर्किंग कॉन्फ़िगरेशन की आवश्यकता नहीं है क्योंकि यह सभी इंटरफेस पर सुनता है। मिनियो आउट ऑफ द बॉक्स कई नेटवर्क इंटरफेस (एनआईसी) पर सुनने का समर्थन करता है।


आपको Minio नेटवर्किंग के लिए किसी अन्य विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं है, लेकिन वैकल्पिक रूप से नेटवर्किंग की कुछ बुनियादी बातों का उपयोग करके, जिनकी हमने पहले चर्चा की थी, आप MiniIO ट्रैफ़िक को एक विशिष्ट इंटरफ़ेस के माध्यम से रूट कर सकते हैं।


इस उदाहरण में, हम प्रदर्शित करने के लिए लिनक्स ऑपरेटिंग सिस्टम का उपयोग करेंगे, लेकिन नेटवर्किंग की मूल बातें समान हैं, चाहे आप किसी भी ओएस का उपयोग करें। नेटवर्क कॉन्फ़िगरेशन के आधार पर कार्यान्वयन थोड़ा भिन्न हो सकता है लेकिन इससे आपको एक अंदाज़ा मिल जाएगा।


हम सबसे पहले रूट तालिका सूचीबद्ध करके शुरुआत करेंगे


 $ ip route 10.56.98.0/24 dev eth0 proto kernel scope link src 10.56.98.18


यदि आपने अपने मिनिओ सर्वर को 10.56.98.16/28 सीआईडीआर रेंज के भीतर कॉन्फ़िगर किया है, तो मान लें कि मिनिओ नोड के आईपी पते में से एक 10.56.98.21 है जो eth0 इंटरफ़ेस के माध्यम से रूट किया जाएगा क्योंकि /28 10.56 के लिए रूट टेबल प्रविष्टि से मेल खाता है। .98.0/24.


लेकिन यदि आप MinIO ट्रैफ़िक को eth0 के बजाय eth1 के माध्यम से रूट करना चाहते हैं तो हमें MiniIO CIDR के लिए एक विशिष्ट रूट जोड़ने की आवश्यकता है ताकि कोई भी ट्रैफ़िक जो उस सबनेट से मेल खाता हो, उस विशिष्ट नेटवर्क इंटरफ़ेस के माध्यम से रूट हो जाए।


 $ ip route add 10.56.98.16/28 dev eth1


एक बार रूट जुड़ जाने के बाद, आइए रूटिंग टेबल को फिर से सूचीबद्ध करें और देखें कि यह कैसा दिखता है


 $ ip route 10.56.98.0/24 dev eth0 proto kernel scope link src 10.56.98.33.18 10.56.98.16/28 dev eth1 scope link


अब हम /28 सीआईडीआर के लिए एक मार्ग देखते हैं। यदि आप मिनिओ नोड 10.56.98.21 को पिंग करते हैं तो इसे अब eth1 इंटरफ़ेस के माध्यम से रूट किया जाएगा। ऐसा इसलिए है क्योंकि जब दो मार्ग होते हैं जहां /24 /28 के साथ ओवरलैप होता है, तो आम तौर पर सबसे लंबे उपसर्ग वाले मार्ग को प्राथमिकता दी जाती है (इस मामले में /28) और यातायात को रूट करते समय किसी अन्य छोटे उपसर्ग मार्ग पर प्राथमिकता दी जाएगी। इसे सबसे लंबे समय तक मेल खाने वाला उपसर्ग नियम कहा जाता है।


यदि आप 10.56.98.21 पिंग करते हैं और फिर नीचे दिए गए अनुसार टीसीपीडंप की जांच करते हैं तो आप सत्यापित कर सकते हैं कि 10.56.98.16/28 से ट्रैफ़िक उचित रूप से रूट किया जा रहा है। आप देखेंगे कि स्रोत 10.56.98.18 से ट्रैफ़िक eth1 से 10.56.98.21 तक रूट किया जा रहा है।


 $ tcpdump -n -i eth1 icmp … 15:55:44.410450 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 123, length 64 15:55:44.410471 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 123, length 64 15:55:45.434489 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 124, length 64 15:55:45.434518 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 124, length 64 15:55:46.458490 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 125, length 64 15:55:46.458520 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 125, length 64


जैसा कि आप मिनियो में देख सकते हैं, ट्रैफ़िक पृथक्करण प्राप्त करने के लिए किसी अतिरिक्त विशेष पोर्ट या सेवाओं की आवश्यकता नहीं है। मिनिओ को सरलता को ध्यान में रखते हुए डिज़ाइन किया गया है और हम इस मामले में गेटवे सेवा जैसी किसी जटिल चीज़ को तैयार करने के बजाय हमेशा निर्माण बनाम खरीद के बारे में सोचते रहते हैं, मिनिओ कम से कम ओवरहेड के साथ समान परिणाम प्राप्त करने के लिए ओएस परत पर पहले से ही उपलब्ध नेटवर्किंग मूल बातें का लाभ उठाता है। संभव।


हम इस विचार को एक कदम आगे ले जा सकते हैं। इन दिनों सर्वर में अधिक जोड़ने के विकल्प के साथ कम से कम 2 इंटरफ़ेस होते हैं। इसलिए एप्लिकेशन ट्रैफ़िक को MiniIO के समान इंटरफ़ेस से गुज़रने के बजाय, आप अपने एप्लिकेशन को एक अलग CIDR ब्लॉक पर भी चला सकते हैं (एक ऐसा ब्लॉक चुनें जो आपके एप्लिकेशन के आकार के लिए उपयुक्त हो)। यह पृथक्करण सुनिश्चित करता है कि प्रतिकृति और पुनर्संतुलन के लिए मिनिओ ट्रैफ़िक एप्लिकेशन के प्रदर्शन को प्रभावित नहीं करता है और इसके विपरीत। यह आपको ट्रैफ़िक की निगरानी और ट्रैक करने की क्षमता भी देता है ताकि यह सुनिश्चित किया जा सके कि मिनिओ के पास हमेशा अपने प्रदर्शन को प्रभावित किए बिना अपने संचालन करने के लिए आवश्यक क्षमता और बैंडविड्थ हो।


लेकिन क्या होगा यदि आपके पास विभिन्न साइटों या क्षेत्रों में मिनियो है? यह सुनिश्चित करने के लिए कि प्रदर्शन में कोई बाधा न हो, आप इसे प्रभावी ढंग से कैसे कॉन्फ़िगर कर सकते हैं? खैर, कई अलग-अलग प्रकार के प्रतिकृति कॉन्फ़िगरेशन हैं जो मिनिओ सबसे कड़े उपयोग के मामलों में से कुछ के लिए पेश करता है।


प्रतिकृति रणनीतियों में सबसे प्रचलित में से एक साइट-टू-साइट प्रतिकृति है। यह आपको MiniIO को एक क्लस्टर के साथ शुरू करने और आवश्यकता बढ़ने पर N नंबर तक विस्तारित करने की अनुमति देता है। मान लें कि आपके पास एक ETL/ELT एप्लिकेशन है जो 3 अलग-अलग साइटों पर चलता है। आम तौर पर, डेटा केवल एक ही क्षेत्र में उपलब्ध होता है और अन्य क्षेत्रों को इसकी प्रक्रिया को चलाने के लिए विभिन्न क्षेत्रों में भारी मात्रा में डेटा खींचने की आवश्यकता होती है। कहने की जरूरत नहीं है, यह न केवल अत्यधिक अक्षम है बल्कि यह नेटवर्किंग बुनियादी ढांचे पर जबरदस्त दबाव डालता है और संभावित रूप से WAN साझा करने वाले अन्य अनुप्रयोगों के लिए बाधाओं का कारण बनता है।


साइट-टू-साइट प्रतिकृति


साइट-टू-साइट प्रतिकृति कॉन्फ़िगरेशन में, आप डेटा को केवल पहली साइट में मिनियो क्लस्टर में लिखते हैं। प्रतिकृति प्रक्रिया स्वचालित रूप से डेटा को अन्य साइटों पर कॉपी कर देगी। ईटीएल/ईएलटी एप्लिकेशन में कोई अतिरिक्त बदलाव करने की आवश्यकता नहीं है। आप बस प्रत्येक साइट में नौकरियों को Nginx जैसे रिवर्स प्रॉक्सी द्वारा समर्थित उनके संबंधित मिनियो क्लस्टर पर इंगित करते हैं और रीड्स नीचे दिखाए गए अनुसार क्षेत्रों में WAN की तुलना में बहुत तेज़ होंगे।


साइट-टू-साइट प्रतिकृति कॉन्फ़िगरेशन


लेकिन सवाल यह उठता है कि क्या यातायात को और बेहतर बनाना संभव है? मान लीजिए कि आप डेटा फ़ाइल को साइट 1 में जोड़ते हैं तो यह तुरंत इसे अन्य साइटों पर दोहरा देगी, चाहे दिन का कोई भी समय हो। यह चरम के दौरान हो सकता है जब शायद अन्य ईटीएल/ईएलटी नौकरियां चल रही हों और साथ ही डेटा को दोहराने के लिए नेटवर्क संसाधनों का उपयोग किया जा रहा हो, जिसका उपयोग अगले दिन तक नहीं किया जा सकता है जब अगला बैच चलना चाहिए। उस स्थिति में क्या किया जा सकता है? यहीं पर मिनियो की बैच प्रतिकृति काम आती है। बैच प्रतिकृति आपको एक विशिष्ट समय पर उस प्रकार के डेटा को चुनने और चुनने की अनुमति देती है जिसे आप दोहराना चाहते हैं, यह पूरी तरह से कॉन्फ़िगर करने योग्य है। इस मामले में, बैच प्रतिकृति कार्य को ऑफ आवर्स के दौरान चलाने के लिए सेट किया जा सकता है जब ट्रैफ़िक सबसे कम हो। चूंकि एप्लिकेशन एक्सेस समय पूरे दिन, सप्ताह और यहां तक कि महीने में भिन्न हो सकता है, यह वह जगह है जहां मिनियो नेटवर्क ट्रैफ़िक की निगरानी करना काम आता है ताकि आप अपने बैच कार्य को बिल्कुल सही समय पर चलाने के लिए कॉन्फ़िगर कर सकें। आप विश्व स्तर पर वितरित मिनिओ ऑब्जेक्ट स्टोर में बीसी/डीआर या भू-स्थानीय पढ़ने/लिखने के प्रदर्शन जैसे कार्यों का समर्थन करने के लिए विभिन्न रैक, डेटा केंद्रों या भौगोलिक क्षेत्रों में सहकर्मी साइटों को तैनात कर सकते हैं।

अंतिम विचार

संक्षेप में, मिनियो का नेटवर्क आर्किटेक्चर सबसे सरल और सीधा है। व्हील को दोबारा बनाने के बजाय मिनियो जटिल नेटवर्क और गेटवे सेटअप वाले कुछ अन्य डेटा स्टोर्स के साथ समानता हासिल करने के लिए नेटवर्किंग की बुनियादी बातों का उपयोग करता है जिन्हें डीबग करना लगभग असंभव है। इससे कोई फर्क नहीं पड़ता कि आप एक ही मुद्दे को कितनी बार डीबग करते हैं, वास्तुकला की अस्पष्ट प्रकृति के कारण ऐसा महसूस होगा कि आप पहली बार इसमें भाग ले रहे हैं। बल्कि मिनिओ उच्च-स्तरीय अमूर्तताओं पर ध्यान केंद्रित करता है जो एप्लिकेशन डेवलपर से डेटा प्रतिकृति को बनाए रखने के बोझ को दूर करता है और डेटा को संग्रहीत और संसाधित करने पर ध्यान केंद्रित करता है।


हमेशा की तरह, यदि आपके पास मिनिओ नेटवर्क कॉन्फ़िगरेशन या इसे सेट अप करने के बारे में कोई प्रश्न है, तो स्लैक पर हमसे संपर्क करना सुनिश्चित करें या बेहतर होगा कि सबनेट सदस्यता के लिए साइन अप करें!


यहाँ भी प्रकाशित किया गया है.