ClusterControl की हमारी नवीनतम रिलीज़ कुछ सबसे अधिक परेशानी वाले MongoDB कार्यों को मात्र 15 सेकंड के कार्य में बदल देती है। आपको अपने क्लस्टर पर अधिक नियंत्रण देने और टोपोलॉजी परिवर्तन करने के लिए नई सुविधाएँ जोड़ी गई हैं:
- एक MongoDB प्रतिकृतिसेट को एक शार्प किए गए MongoDB क्लस्टर में बदलें
- शार्ड जोड़ें और निकालें
- शार्द किए गए MongoDB क्लस्टर में शार्ड राउटर जोड़ें
- नोड को नीचे छोड़ें या फ़्रीज़ करें
- नए MongoDB सलाहकार
हम इन अतिरिक्त सुविधाओं का नीचे गहराई से वर्णन करेंगे।
एक MongoDB प्रतिकृति सेट को एक साझा MongoDB क्लस्टर में बदलें
चूंकि अधिकांश MongoDB उपयोगकर्ता अपने डेटाबेस को संग्रहीत करने के लिए एक रेप्लिकासेट के साथ शुरुआत करेंगे, यह क्लस्टर का सबसे अधिक उपयोग किया जाने वाला प्रकार है। यदि आप स्केलिंग समस्याओं में भाग लेते हैं, तो आप इस प्रतिकृति को या तो अधिक सेकेंडरी जोड़कर या शार्पिंग द्वारा स्केलिंग करके स्केल कर सकते हैं। आप मौजूदा रेप्लिकासेट को शार्प किए गए क्लस्टर में बदल सकते हैं, हालाँकि यह एक लंबी प्रक्रिया है जहाँ आप आसानी से त्रुटियाँ कर सकते हैं। ClusterControl में हमने इस प्रक्रिया को स्वचालित कर दिया है, जहाँ हम स्वचालित रूप से Configservers, shard राउटर जोड़ते हैं और sharding को सक्षम करते हैं।
एक रेप्लिकासेट को एक शार्प्ड क्लस्टर में बदलने के लिए, आप बस इसे क्रिया ड्रॉप डाउन के माध्यम से ट्रिगर कर सकते हैं:
यह एक दो चरणों वाला संवाद खोलेगा कि इसे एक शार्ड में कैसे परिवर्तित किया जाए। पहला कदम यह परिभाषित करना है कि कॉन्फिगसर्वर और शार्प राउटर को कहां तैनात किया जाए:
दूसरा चरण यह है कि डेटा को कहां स्टोर किया जाए और कॉन्फिगसर्वर और शार्ड राउटर के लिए कौन सी कॉन्फिग फाइल का उपयोग किया जाना चाहिए।
शार्ड माइग्रेशन कार्य समाप्त होने के बाद, क्लस्टर ओवरव्यू अब रेप्लिकासेट इंस्टेंस के बजाय शार्क प्रदर्शित करता है:
शार्ड क्लस्टर में बदलने के बाद, नए शार्क जोड़े जा सकते हैं।
शेयर्ड MongoDB क्लस्टर से शेयर जोड़ें या निकालें
शार्ड जोड़ना
चूंकि MongoDB शार्ड तकनीकी रूप से एक रेप्लिकासेट है, इसलिए एक नए शार्ड को जोड़ने से एक नए रेप्लिकासेट की तैनाती भी शामिल है। ClusterControl के भीतर हम पहले एक नया रेप्लिकासेट तैनात करते हैं और फिर इसे शार्प किए गए क्लस्टर में जोड़ते हैं।
ClusterControl UI से, आप क्रिया ड्रॉप डाउन से खोले गए दो चरणों वाले विज़ार्ड के साथ आसानी से नए शार्क जोड़ सकते हैं:
यहां आप नए शार्ड की टोपोलॉजी को परिभाषित कर सकते हैं।
एक बार नया शार्ड क्लस्टर में जुड़ जाने के बाद, MongoDB शार्द राउटर इसे नए हिस्से सौंपना शुरू कर देगा, और बैलेंसर स्वचालित रूप से सभी टुकड़ों पर सभी हिस्सों को संतुलित कर देगा।
शार्ड निकालना
शार्ड को हटाने की तुलना में शार्क को हटाना थोड़ा कठिन है, क्योंकि इसमें शार्क को हटाने से पहले डेटा को अन्य शार्क में ले जाना शामिल है। सभी डेटा के लिए जिसे सभी शार्क पर शार्प किया गया है, यह MongoDB बैलेंसर द्वारा किया गया कार्य होगा।
हालाँकि, कोई भी गैर-शार्केड डेटाबेस/संग्रह, जिसे इस शार्ड को इसके प्राथमिक शार्ड के रूप में सौंपा गया था, को दूसरे शार्ड में ले जाने और अपना नया प्राथमिक शार्ड बनाने की आवश्यकता है। इस प्रक्रिया के लिए, MongoDB को यह जानने की जरूरत है कि इन गैर-शार्क किए गए डेटाबेस/संग्रहों को कहां स्थानांतरित किया जाए।
ClusterControl में आप उन्हें क्रिया ड्रॉप डाउन के माध्यम से आसानी से हटा सकते हैं:
यह आपको उस शार्ड का चयन करने की अनुमति देगा जिसे आप हटाना चाहते हैं, और जिस शार्ड को आप किसी भी प्राथमिक डेटाबेस में माइग्रेट करना चाहते हैं:
जो कार्य शार्ड को हटाता है वह पहले बताए गए समान कार्य करेगा:यह किसी भी प्राथमिक डेटाबेस को निर्दिष्ट शार्क में ले जाएगा, बैलेंसर को सक्षम करेगा और फिर इसके लिए शार्क से सभी डेटा को स्थानांतरित करने की प्रतीक्षा करेगा।
एक बार सभी डेटा हटा दिए जाने के बाद, यह UI से शार्क को हटा देगा।
अतिरिक्त MongoDB शार्ड राउटर जोड़ना
एक बार जब आप MongoDB शार्प क्लस्टर का उपयोग करके अपने एप्लिकेशन को स्केल करना शुरू कर देते हैं, तो आप पा सकते हैं कि आपको अतिरिक्त शार्प राउटर की आवश्यकता है।
ClusterControl के साथ अतिरिक्त MongoDB शार्द राउटर जोड़ना एक बहुत ही सरल प्रक्रिया है, बस क्रिया ड्रॉप डाउन से नोड जोड़ें संवाद खोलें:
यह क्लस्टर में एक नया शार्प राउटर जोड़ देगा। राउटर पर उचित डिफ़ॉल्ट पोर्ट (27017) सेट करना न भूलें।
स्टेप डाउन सर्वर
यदि आप एक रेप्लिकासेट में प्राथमिक नोड पर रखरखाव करना चाहते हैं, तो इसे ऑफ़लाइन लेने से पहले इसे पहले "स्टेप डाउन" करना बेहतर होगा। एक प्राथमिक को नीचे ले जाने का मूल रूप से मतलब है कि मेजबान प्राथमिक होना बंद कर देता है और एक माध्यमिक बन जाता है और सेकंड की एक निर्धारित संख्या के लिए प्राथमिक बनने के योग्य नहीं होता है। MongoDB प्रतिकृति में नोड्स मतदान शक्ति के साथ सेट, एक नए प्राथमिक का चुनाव करेंगे जिसमें स्टेप डाउन प्राइमरी को सेकंड की निर्धारित संख्या के लिए बाहर रखा जाएगा।
क्लस्टरकंट्रोल में हमने स्टेप डाउन फंक्शनलिटी को नोड्स पेज पर एक एक्शन के रूप में जोड़ा है। नीचे जाने के लिए, बस इसे ड्रॉप डाउन से एक क्रिया के रूप में चुनें:
स्टेपडाउन के लिए सेकंड की संख्या सेट करने और पुष्टि करने के बाद, प्राइमरी स्टेप डाउन हो जाएगा और एक नया प्राइमरी चुना जाएगा।
नोड को फ़्रीज़ करें
यह कार्यक्षमता स्टेप डाउन कमांड के समान है:यह एक निश्चित नोड को सेकंड की एक निर्धारित संख्या के लिए प्राथमिक बनने के लिए अयोग्य बनाता है। इसका मतलब है कि आप एक या एक से अधिक माध्यमिक नोड्स को प्राथमिक बनने से रोक सकते हैं, और एक निश्चित नोड को इस तरह से नया प्राथमिक बनने के लिए मजबूर कर सकते हैं।
ClusterControl में हमने फ़्रीज़ नोड कार्यक्षमता को Nodes पृष्ठ पर एक क्रिया के रूप में जोड़ा है। किसी नोड को फ़्रीज़ करने के लिए, बस इसे ड्रॉप डाउन से एक क्रिया के रूप में चुनें:
सेकंड की संख्या निर्धारित करने और पुष्टि करने के बाद, नोड सेकंड की निर्धारित संख्या के लिए प्राथमिक के रूप में योग्य नहीं होगा।
नए MongoDB सलाहकार
सलाहकार मिनी प्रोग्राम हैं जो विशिष्ट डेटाबेस मुद्दों पर सलाह प्रदान करते हैं। हमने मोंगोडीबी के लिए तीन नए सलाहकार जोड़े हैं। पहला प्रतिकृति विंडो की गणना करता है, दूसरा प्रतिकृति विंडो पर देखता है, और तीसरा गैर-शार्क किए गए डेटाबेस/संग्रह के लिए जांच करता है।
MongoDB प्रतिकृति अंतराल सलाहकार
यदि आप अधिक सेकेंडरी जोड़कर रीडिंग को स्केल कर रहे हैं, तो नज़र रखने के लिए प्रतिकृति अंतराल बहुत महत्वपूर्ण है। MongoDB केवल इन सेकेंडरी का उपयोग करेगा यदि वे बहुत पीछे नहीं हैं। यदि सेकेंडरी में प्रतिकृति लैग है, तो आप पुराने डेटा को प्रस्तुत करने का जोखिम उठाते हैं जो पहले से ही प्राथमिक पर अधिलेखित हो चुका है।
प्रतिकृति अंतराल की जांच करने के लिए, यह प्राथमिक से कनेक्ट करने और replSetGetStatus कमांड का उपयोग करके इस डेटा को पुनर्प्राप्त करने के लिए पर्याप्त है। MySQL के विपरीत, प्राइमरी अपने सेकेंडरी की प्रतिकृति स्थिति का ट्रैक रखता है।
हमने इस चेक को ClusterControl में एक सलाहकार के रूप में लागू किया है, यह सुनिश्चित करने के लिए कि आपके प्रतिकृति अंतराल पर हमेशा नजर रखी जाएगी।
MongoDB प्रतिकृति विंडो सलाहकार
प्रतिकृति अंतराल की तरह, प्रतिकृति विंडो देखने के लिए समान रूप से महत्वपूर्ण मीट्रिक है। अंतराल सलाहकार हमें पहले से ही सूचित करता है कि प्राथमिक/मास्टर के पीछे द्वितीयक नोड कितने सेकंड है। चूंकि ओप्लॉग आकार में सीमित है, स्लेव लैग होने से निम्नलिखित जोखिम होते हैं:
- यदि कोई नोड बहुत पीछे रह जाता है, तो वह अब और नहीं पकड़ पाएगा क्योंकि पकड़ने के लिए आवश्यक लेन-देन अब प्राथमिक के ओप्लॉग में नहीं हैं।
- एक नए प्राथमिक के लिए एक MongoDB चुनाव में एक लैगिंग सेकेंडरी नोड कम पसंद किया जाता है। यदि सभी सेकेंडरी प्रतिकृति में पिछड़ रहे हैं, तो आपको एक समस्या होगी और कम से कम अंतराल वाले को प्राथमिक बनाया जाएगा।
- मोंगोडीबी ड्राइवर द्वारा पिछड़ने वाले सेकेंडरी को कम पसंद किया जाता है जब मोंगोडीबी के साथ स्केलिंग आउट पढ़ता है, यह शेष सेकेंडरी पर एक उच्च कार्यभार भी जोड़ता है।
यदि हमारे पास एक सेकेंडरी नोड कुछ मिनटों (या घंटों) से पीछे हो जाता है, तो यह एक सलाहकार के लिए उपयोगी होगा जो हमें सूचित करे कि हमारे अगले लेन-देन से पहले हमारे पास कितना समय बचा है, ओप्लॉग से हटा दिया जाएगा। oplog में पहली और अंतिम प्रविष्टि के बीच के समय के अंतर को प्रतिकृति विंडो कहा जाता है। यह मीट्रिक ऑप्लॉग से पहली और आखिरी वस्तुओं को लाकर और उनके टाइमस्टैम्प के अंतर की गणना करके बनाया जा सकता है।
MongoDB शेल में, पहले से ही एक फ़ंक्शन उपलब्ध है जो आपके लिए प्रतिकृति विंडो की गणना करता है। हालाँकि यह फ़ंक्शन कमांड लाइन शेल में बनाया गया है, इसलिए कमांड लाइन शेल का उपयोग नहीं करने वाले किसी भी बाहरी कनेक्शन में यह बिल्ट-इन फ़ंक्शन नहीं होगा। इसलिए हमने एक सलाहकार बनाया है जो प्रतिकृति विंडो पर नजर रखेगा और यदि आप एक पूर्व-निर्धारित सीमा से अधिक हो जाते हैं तो आपको सचेत करते हैं।
MongoDB अन-शार्ड डेटाबेस और कलेक्शन एडवाइज़र
MongoDB शार्द राउटर द्वारा गैर-शार्क किए गए डेटाबेस और संग्रह को एक डिफ़ॉल्ट प्राथमिक शार्क को सौंपा जाएगा। इसका मतलब है कि डेटाबेस या संग्रह इस प्राथमिक शार्ड के आकार तक सीमित है, और यदि इसे बड़ी मात्रा में लिखा जाता है, तो यह एक शार्ड के सभी शेष डिस्क स्थान का उपयोग कर सकता है। एक बार ऐसा होने पर शार्ड स्पष्ट रूप से कार्य नहीं करेगा। इसलिए सभी मौजूदा डेटाबेस और संग्रहों को देखना महत्वपूर्ण है, और यह सत्यापित करने के लिए कॉन्फ़िगरेशन डेटाबेस को स्कैन करें कि उन्हें शार्डिंग के लिए सक्षम किया गया है।
ऐसा होने से रोकने के लिए, हमने एक गैर-साझा डेटाबेस और संग्रह सलाहकार बनाया है। यह सलाहकार प्रत्येक डेटाबेस और संग्रह को स्कैन करेगा, और अगर इसे शार्प नहीं किया गया है तो आपको चेतावनी देगा।
ClusterControl ने MongoDB अनुरक्षण क्षमता में सुधार किया
हमने MongoDB रेप्लिकासेट्स और शार्प्ड क्लस्टर्स के लिए ClusterControl में सभी सुधारों को जोड़कर एक बड़ा कदम उठाया है। यह MongoDB के लिए उपयोगिता में बहुत सुधार करता है, और DBA, sysops और devops को अपने क्लस्टर को और भी बेहतर बनाए रखने की अनुमति देता है!