कोविड-19 महामारी होने के बाद से आजकल ऑनलाइन लर्निंग तेजी से लोकप्रिय हो रहा है। अधिकांश शिक्षण संस्थानों को ऑनलाइन सीखने के लिए मंच स्थापित करना पड़ रहा है, और लगभग सभी छात्रों को शिक्षकों के साथ सीखने और बातचीत करने के लिए मंच का उपयोग करना पड़ रहा है। मूडल ऑनलाइन सीखने के लिए ओपन सोर्स लर्निंग मैनेजमेंट सिस्टम में से एक है,
मूडल प्लेटफॉर्म की उच्च उपलब्धता संस्थानों के लिए जरूरी है, अन्यथा यह ऑनलाइन सीखने की प्रक्रिया को बाधित और रोक देगा। एक ही समय में बहुत सारे छात्र मंच तक पहुंच रहे हैं, उपलब्धता और मापनीयता महत्वपूर्ण है। इस बिंदु पर, शैक्षणिक संस्थानों को मंच की उच्च उपलब्धता और मूडल की मापनीयता के बारे में ज्ञान और वास्तुकला की आवश्यकता होती है। यदि आप इस बारे में अधिक जानना चाहते हैं कि स्टैंडअलोन मूडल को क्लस्टर्ड डेटाबेस स्केलेबल में कैसे माइग्रेट किया जाए, तो आप इस दिशानिर्देश का पालन कर सकते हैं।
"एकल बिंदु विफलता" मोड में मूडल
स्टैंडअलोन मूडल प्लेटफॉर्म में एक सर्वर होता है, और सर्वर पर स्थापित सब कुछ (डेटाबेस और एप्लिकेशन सर्वर एक ही स्थान पर)। या आपके पास 2 सर्वर हैं, जो एप्लिकेशन सर्वर और डेटाबेस सर्वर के लिए है जैसा कि नीचे दिए गए चित्र में वर्णित है:

दोनों आर्किटेक्चर में सेवा की उपलब्धता और मापनीयता का अभाव है। उपलब्धता के दृष्टिकोण से, आप कल्पना कर सकते हैं, यदि सर्वर क्रैश हो जाता है, तो आपके पास सर्वर पर कोई सेवा नहीं चल रही है। यदि एप्लिकेशन सर्वर क्रैश हो जाता है या डेटाबेस क्रैश हो जाता है, तो सेवा काम करना बंद कर देती है।
दूसरी ओर, मापनीयता भी महत्वपूर्ण है, अधिक उपयोगकर्ताओं का अर्थ है अधिक ट्रैफ़िक और डेटाबेस से अधिक कनेक्शन। सर्वर में अधिक संसाधन जोड़कर, या अधिक सर्वर जोड़कर स्केलेबिलिटी प्राप्त की जा सकती है ताकि ट्रैफ़िक को नोड्स में वितरित किया जा सके, अन्यथा प्रदर्शन प्रभावित होगा।
स्टैंडअलोन से क्लस्टर्ड डेटाबेस में कनवर्ट करना
अपने स्टैंडअलोन नोड को क्लस्टर डेटाबेस में माइग्रेट करने में कुछ समय लग सकता है, और यह जोखिम-मुक्त ऑपरेशन नहीं है। नीचे दिए गए कदम हमें उठाने होंगे:
- आपको एक बैकअप लेने की आवश्यकता है (mysqldump या xtrabackup का उपयोग करें)।
- डेटाबेस को सभी प्रतिकृति डेटाबेस नोड्स में स्थापित करें।
- बैकअप को प्रतिकृति नोड्स में पुनर्स्थापित करें।
- प्रतिकृति नोड को मास्टर से कनेक्ट करें।
- ProxySQL सेटअप करें और डेटाबेस नोड्स के सामने रखें
- ProxySQL लोड बैलेंसर कॉन्फ़िगर करें (उदाहरण के लिए होस्टग्रुप, सर्वर, उपयोगकर्ता बनाएं)।
- Moodle कॉन्फ़िगरेशन को नए वर्चुअल IP पते पर इंगित करें।
ClusterControl कैसे सहायता कर सकता है
ClusterControl डेटाबेस प्रबंधन सॉफ़्टवेयर है जो आपको अपने ओपन सोर्स डेटाबेस को परिनियोजित करने, मॉनिटर करने और प्रबंधित करने में मदद करता है। हम स्टैंडअलोन मूडल आर्किटेक्चर से माइग्रेट करने का प्रयास करेंगे जैसा कि नीचे दिखाया गया है:

प्रतिकृति पर आधारित क्लस्टर डेटाबेस आर्किटेक्चर के लिए:

आपको डेटाबेस के लिए कम से कम दो सर्वर और डेटाबेस के लिए दो सर्वर की आवश्यकता होगी प्रॉक्सी (हम लोड बैलेंसर के रूप में प्रॉक्सीएसक्यूएल का उपयोग करेंगे) और वर्चुअल आईपी एड्रेस की सेवा के लिए सेवा को बनाए रखेंगे।
मान लें कि हमारे पास स्टैंडअलोन MySQL डेटाबेस चल रहा है:

ClusterControl में अधिक डेटाबेस नोड्स जोड़ना वास्तव में सरल है, आप इस पर जा सकते हैं अपने क्लस्टर के दाईं ओर क्लस्टर मेनू और प्रतिकृति दास जोड़ें।

यह नया दास जोड़ने के लिए नया संवाद दिखाएगा, आपको बस भरने की आवश्यकता है आईपी पता और फिर नीचे दिखाए गए अनुसार नया गुलाम जोड़ें बटन पर क्लिक करें:

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

अगला चरण डेटाबेस के सामने लोड बैलेंसर जोड़ना है। ProxySQL जैसा लोड बैलेंसर उपयोगी है क्योंकि यह मास्टर को राइट रिक्वेस्ट और स्लेव्स को रीड रिक्वेस्ट को रीडायरेक्ट कर सकता है। इस तरह, आप मूडल ट्रैफ़िक वितरित कर रहे हैं। ध्यान दें कि MySQL या MariaDB के लिए गैलेरा क्लस्टर पर आधारित मास्टर-मास्टर सेटअप करना भी संभव है।
हम अत्यधिक उपलब्धता के लिए दो लोड बैलेंसरों का उपयोग करेंगे। आप क्लस्टर में मैनेज -> लोड बैलेंसर्स पर जा सकते हैं।


आपको सर्वर एड्रेस, एडमिनिस्ट्रेटर और मॉनिटर पासवर्ड जैसी कुछ जानकारी भरने की जरूरत है, मूडल उपयोगकर्ता को ProxySQL में जोड़ें, और फिर ProxySQL परिनियोजित करें पर क्लिक करें। यह एक नया काम ट्रिगर करेगा। अन्य लोड बैलेंसर नोड पर परिनियोजन दोहराएं।
आखिरी बात लोड बैलेंसर्स के लिए कीपलाइव को कॉन्फ़िगर करना है। मैनेज पर जाएं -> बैलेंसर्स लोड करें, Keepalived के लिए टैब है

आपको बस लोड बैलेंसर प्रकार चुनने की जरूरत है, और इसे रखने के लिए जोड़ें . वर्चुअल आईपी एड्रेस और नेटवर्क इंटरफेस भरें। डिप्लॉय कीपलाइव्ड बटन पर क्लिक करें।
हमारे क्लस्टर्ड अत्यधिक उपलब्ध मूडल डेटाबेस का अंतिम आर्किटेक्चर नीचे दिखाया जाएगा:

आपको बस dbhost की ओर इशारा करते हुए config.php में कनेक्शन कॉन्फ़िगरेशन बदलने की आवश्यकता है वर्चुअल आईपी एड्रेस के लिए जिसे हमने कॉन्फ़िगर किया था।
क्लस्टर्ड डेटाबेस में माइग्रेट होने के बाद, हो सकता है कि आप अपने मूडल डेटाबेस में कुछ निगरानी रखना चाहें, जिसे आप इस दिशानिर्देश का पालन कर सकते हैं।