Moodle एक खुला स्रोत शिक्षण प्रबंधन प्रणाली है, जिसका व्यापक रूप से दुनिया भर के स्कूलों और विश्वविद्यालयों द्वारा उपयोग किया जाता है। यह परियोजना 2002 में मार्टिन डौगियामास द्वारा शुरू की गई थी, जिसका उद्देश्य शिक्षार्थियों, शिक्षकों, शिक्षकों को सीखने के वातावरण के लिए एक सुरक्षित, मजबूत, खुला और मुक्त मंच प्रदान करना है।
सॉफ़्टवेयर स्वयं PHP में लिखा गया है, और विभिन्न RDBMS का समर्थन करता है, जैसे:Oracle, MySQL, PostgreSQL, MariaDB, आदि।
इस ब्लॉग में, हम चर्चा करेंगे कि MySQL प्रतिकृति का उपयोग करके मूडल डेटाबेस को लचीला कैसे बनाया जाए, जो एक उच्च उपलब्धता मूडल परिनियोजन का समर्थन करने के लिए आवश्यक है। हम क्लस्टरकंट्रोल के माध्यम से एक डेटाबेस सेटअप को तैनात करेंगे जिसमें मास्टर/स्लेव MySQL प्रतिकृति शामिल है जो अनावश्यक डेटाबेस लोड बैलेंसर्स द्वारा सामने है।
आर्किटेक्चर
MySQL प्रतिकृति डेटाबेस के लिए अतिरेक प्राप्त करने का एक लोकप्रिय तरीका है। यह सुनिश्चित करना महत्वपूर्ण है कि सभी लेखन मास्टर को भेजे जाते हैं, जबकि रीड को दासों के बीच संतुलित किया जा सकता है। ऐसा करने के लिए, हम ProxySQL का उपयोग करेंगे जो एक डेटाबेस-अवेयर लोड बैलेंसर है जो राइट ट्रैफिक को विभाजित करने और इसे मास्टर को भेजने का ध्यान रखता है। चूंकि मास्टर भूमिका किसी अन्य सर्वर पर जा सकती है, उदाहरण के लिए डेटाबेस क्रैश के मामले में, प्रॉक्सीएसक्यूएल नए मास्टर का ट्रैक रख सकता है और सुनिश्चित कर सकता है कि ट्रैफिक उसी के अनुसार रूट किया गया है। सभी मूडल एप्लिकेशन सर्वरों के लिए एक लचीला डेटाबेस एंडपॉइंट सुनिश्चित करने के लिए एक वर्चुअलआईपी को Keepalived द्वारा प्रबंधित किया जाता है।
निगरानी और विफलता प्रबंधन
उपरोक्त आरेख में, हम मास्टर डेटाबेस को बंद करने वाली दो प्रतिकृतियों का सुझाव देते हैं। मास्टर क्रैश के मामले में, प्रतिकृतियों में से एक को नए मास्टर में पदोन्नत किया जाएगा। पढ़ने, बैकअप, रिपोर्टिंग आदि जैसी चीज़ों को संभालने के लिए अभी भी एक प्रतिकृति शेष रहेगी.
एप्लिकेशन कनेक्शन डेटाबेस कनेक्शन स्ट्रिंग में एक वीआईपी (वर्चुअल आईपी एड्रेस) का उपयोग करता है, इसलिए यदि डेटाबेस की तरफ कुछ होता है, तो यह आपके एप्लिकेशन से प्रभाव को कम करेगा और आपको पुन:कॉन्फ़िगर करने की आवश्यकता नहीं है कुछ भी। ClusterControl वह घटक है जो डेटाबेस पर नज़र रखता है और विफलता को स्वचालित करता है, उदाहरण के लिए प्रतिकृतियों में से एक को नए मास्टर को बढ़ावा देना और विफल डेटाबेस सर्वर को पुनर्प्राप्त करना।
डेटाबेस सेटअप
हम अपने डेटाबेस सेटअप को परिनियोजित करने के लिए ClusterControl का उपयोग करेंगे।
सबसे पहले, आपके पास ClusterControl सेटअप के लिए एक समर्पित सर्वर होना चाहिए। स्थापना बहुत आसान है, आपको बस कई नौ भंडार से इंस्टॉल-सीसी डाउनलोड करने की जरूरत है, फ़ाइल पर निष्पादन की अनुमति दें, और इसे चलाएं। जैसा कि नीचे दिखाया गया है:
$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ sudo ./install-cc # omit sudo if you run as root
आप उपरोक्त स्क्रिप्ट को किसी भी प्रकार के Linux संस्करण में चला सकते हैं। यह कुछ भी परिनियोजित करेगा जो ClusterControl के लिए आवश्यक है।
एक बार जब आप ClusterControl को चालू कर लें, तो ClusterControl डैशबोर्ड से डिप्लॉय बटन चुनें।
यह एक नया पृष्ठ प्रदर्शित करेगा जो कुछ विकल्प दिखाता है। हम अपने MySQL प्रतिकृति सेटअप के लिए पहला परिनियोजन विकल्प चुनेंगे।
आपको SSH के माध्यम से लक्ष्य डेटाबेस सर्वर तक पहुंच की आवश्यकता है। पासवर्ड रहित SSH को सक्षम करना और उपयोगकर्ता को sudo एक्सेस देना न भूलें। क्लस्टर नाम को परिभाषित करें और नीचे दिखाए अनुसार जारी रखें पर क्लिक करें:
अगले पृष्ठ पर, आपको डेटाबेस के विक्रेता को चुनना होगा, डेटाबेस का संस्करण जिसे आप इंस्टॉल करना चाहते हैं, रूट पासवर्ड, सर्वर पोर्ट यदि आप कस्टम या विशिष्ट पोर्ट और MySQL डेटा निर्देशिका चाहते हैं।
सभी जानकारी भरने के बाद, आप अगले चरण पर जा सकते हैं, जो टोपोलॉजी पेज को परिभाषित करता है। कृपया डेटाबेस सर्वर का आईपी पता भरें, इस मामले में जब हमने MyQL प्रतिकृति को 1 मास्टर और 2 प्रतिकृतियों के साथ सेट किया है।
डिप्लॉय अब एक जॉब को ट्रिगर करेगा जो "क्लस्टर बनाएं" करेगा, आप बस कार्य समाप्त होने तक प्रतीक्षा करने की आवश्यकता है।
ProxySQL सेटअप
डेटाबेस के परिनियोजन के बाद, आप अपने क्लस्टर मेनू से लोड बैलेंसर के माध्यम से जा सकते हैं। कृपया मैनेज -> लोड बैलेंसर पर जाएं। इसे नीचे दिखाया जाएगा:
ProxySQL को परिनियोजित करने के लिए आपको कुछ जानकारी भरने की आवश्यकता होती है जैसे कि IP पता जहां आप प्रॉक्सीएसक्यूएल, प्रशासन और निगरानी उपयोगकर्ताओं के लिए पासवर्ड स्थापित करना चाहते हैं, और इंस्टेंस को संतुलन लोड करने में सक्षम बनाना चाहते हैं। उसके बाद, बस परिनियोजन पर क्लिक करें। उच्च उपलब्धता के लिए, आपको डेटाबेस के सामने कम से कम 2 लोड बैलेंसर स्थापित करने की आवश्यकता है।
सेटअप रखा गया
आपके लोड बैलेंसर को अत्यधिक उपलब्ध कराने के लिए रखी गई सेवा का उपयोग किया जाता है। सेटअप वास्तव में सीधा है, फिर भी लोड बैलेंसर पृष्ठ पर, Keepalived के लिए एक टैब है जैसा कि नीचे दिखाया गया है:
लोड बैलेंसर परिनियोजन का प्रकार चुनें, इस मामले में हम ProxySQL का उपयोग करते हैं, बनाए रखने के लिए ProxySQL सेवा का चयन करें। वर्चुअल आईपी एड्रेस और नेटवर्क इंटरफेस भरें। उसके बाद बस तैनात रखें पर क्लिक करें, यह सेवा को स्थापित करने के लिए स्वचालित रूप से एक नया कार्य ट्रिगर करेगा।
एप्लिकेशन सेटअप
मूडल एप्लिकेशन को सेटअप करने से पहले, आपको उपयोगकर्ता क्रेडेंशियल और डेटाबेस स्वयं तैयार करना होगा। क्रेडेंशियल के लिए, आप यहां जा सकते हैं:प्रबंधित करें -> स्कीमा और उपयोगकर्ता।
आपको कुछ जानकारी भरने की जरूरत है, जैसे:उपयोगकर्ता नाम, पासवर्ड, होस्टनाम और विशेषाधिकार। इसके बाद क्रिएट यूजर पर क्लिक करें। यह आपको मूडल एप्लिकेशन के लिए एक उपयोगकर्ता बनाने की अनुमति देता है:
डेटाबेस बनाने के लिए, आप उसी पर डेटाबेस बनाएँ टैब चुन सकते हैं उपयोगकर्ता के रूप में पृष्ठ।
अगला चरण ProxySQL साइड पर क्रेडेंशियल्स को कॉन्फ़िगर करना है, आप आयात कर सकते हैं क्रेडेंशियल जो आपने ProxySQL में बनाए थे। आप ProxySQL नोड पर जा सकते हैं, उपयोगकर्ता टैब चुन सकते हैं, दाईं ओर एक आयात उपयोगकर्ता बटन है।
मूडले_एप्लिकेशन उपयोगकर्ता खोजें, और फिर उपयोगकर्ता का चयन करें। अगले पृष्ठ पर, आपको उपयोगकर्ता के लिए डिफ़ॉल्ट होस्टग्रुप को परिभाषित करना होगा और फिर उपयोगकर्ताओं को आयात करना होगा।
कृपया अन्य ProxySQL नोड पर उपयोगकर्ताओं को आयात करने के लिए चरणों को दोहराएं, या आप ProxySQL मेनू में सिंक इंस्टेंस का उपयोग कर सकते हैं।
आपको मूडल एप्लिकेशन को मूडल की आधिकारिक वेबसाइट (पुनः https) से डाउनलोड करना होगा। ://download.moodle.org/), इस ब्लॉग के लिखे जाने का नवीनतम संस्करण 3.9.1 है। वे दो प्रकार की संपीड़ित फ़ाइलें प्रदान करते हैं, ज़िप संपीड़ित और टार ज़िप। ज़िप फ़ाइल डाउनलोड करें और फ़ाइल को अपने एप्लिकेशन सर्वर में डालें। मूडल सॉफ़्टवेयर के लिए आवश्यकताओं की जाँच करें, अर्थात:वेब सर्वर, PHP लाइब्रेरी।
ज़िप फ़ाइलों को अस्थायी निर्देशिका में निकालें, /var/www/html/moodle निर्देशिका बनाएं, निकाले गए निर्देशिका को फ़ोल्डर में कॉपी करें। डायरेक्टरी के लिए 0755 परमिशन देना न भूलें। उसके बाद, आप अगले सेटअप के लिए वेब ब्राउज़र तक पहुंच सकते हैं। नीचे दिखाए अनुसार भाषा चुनें:
अपने MySQL सेटअप के लिए नीचे दिए गए डेटाबेस ड्राइवर का चयन करें:
आपको कुछ डेटाबेस क्रेडेंशियल जानकारी भरनी होगी जो आपने पहले बनाई थी, इसके लिए उदाहरण:उपयोगकर्ता नाम, पासवर्ड, होस्ट, डेटाबेस, पोर्ट। होस्टनाम आपका वर्चुअल आईपी एड्रेस होना चाहिए और पोर्ट प्रॉक्सीएसक्यूएल पोर्ट है, जो कि 6032 है।
डेटाबेस होस्ट आपका वर्चुअल आईपी एड्रेस होगा। एक बार जब आप फ़ील्ड भर लेते हैं, तो अगला क्लिक करें और फिर आपका काम हो गया।
ClusterControl का उपयोग करके मूडल के लिए एक अत्यधिक उपलब्ध डेटाबेस बनाना बहुत आसान और सीधा है, आप अपना खुद का डेटाबेस बना सकते हैं जो आपके 99,99% सर्विस अपटाइम का समर्थन करेगा।