MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

उच्च उपलब्धता के लिए कैमिलो मारियाडीबी डेटाबेस को कैसे तैनात करें

लर्निंग मैनेजमेंट सिस्टम (LMS) प्लेटफॉर्म आपको दूरस्थ रूप से सीखने/सिखाने की अनुमति देते हैं, जो कि दुनिया भर की वर्तमान स्थिति के कारण वास्तव में महत्वपूर्ण है।

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

इस ब्लॉग में, हम देखेंगे कि कैसे सबसे लोकप्रिय एलएमएस प्लेटफॉर्म विकल्पों में से एक, चमिलो एलएमएस के लिए उपयोग की जाने वाली उच्च उपलब्धता के लिए मारियाडीबी डेटाबेस को तैनात किया जाए।

कैमिलो क्या है?

चमिलो एलएमएस एक मुफ़्त लर्निंग मैनेजमेंट सिस्टम (एलएमएस) है जिसे ऑनलाइन शिक्षा के लिए डिज़ाइन किया गया है और इसे कई कंपनियों और व्यक्तिगत डेवलपर्स के सहयोग से विकसित किया गया है।

एक शिक्षक के रूप में, कैमिलो का उपयोग करके आप एक प्रभावी शिक्षण वातावरण बनाने के लिए उपयोगी उपकरणों की एक श्रृंखला तक पहुंच सकते हैं। इनमें से कुछ उपकरण हैं:

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

चमिलो मंच अत्यंत लचीला है। इसके सभी टूल्स को हर कोर्स की जरूरत के हिसाब से कस्टमाइज किया जा सकता है। यह एक दोस्ताना और सहज उपयोगकर्ता इंटरफ़ेस प्रदान करता है जिसके लिए किसी विशेष पूर्व तकनीकी ज्ञान या कौशल की आवश्यकता नहीं होती है।

तो, सवाल यह है कि आप इस प्रणाली के लिए उपयोग की जाने वाली उच्च उपलब्धता के लिए एक मारियाडीबी डेटाबेस कैसे तैनात कर सकते हैं?

उच्च उपलब्धता के लिए MariaDB डेटाबेस

उच्च उपलब्धता के लिए MariaDB डेटाबेस को परिनियोजित करने के लिए विभिन्न दृष्टिकोण हैं। आइए दो मुख्य विकल्प देखें।

MariaDB मास्टर-स्लेव प्रतिकृति

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

मारियाडीबी क्लस्टर

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

बैलेंसर लोड करें

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

ProxySQL MySQL के लिए एक समर्पित लोड बैलेंसर है जो क्वेरी रीडायरेक्टिंग, क्वेरी कैशिंग और ट्रैफ़िक शेपिंग सहित कई तरह की सुविधाओं के साथ आता है। इसका उपयोग आसानी से रीड-राइट स्प्लिट सेट करने और बैकएंड नोड्स को अलग करने के लिए क्वेरी को पुनर्निर्देशित करने के लिए किया जा सकता है।

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

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

केवल एक लोड बैलेंसर नोड का उपयोग करने से आपकी टोपोलॉजी में विफलता का एक बिंदु जुड़ जाएगा, इसलिए, आप दो लोड बैलेंसर नोड्स (कम से कम) का उपयोग करके ProxySQL+Kepalived या HAProxy+Kepalived के संयोजन का उपयोग कर सकते हैं और उनके बीच में रहते हैं।

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

चमिलो मारियाडीबी डेटाबेस परिनियोजन

एक उदाहरण के रूप में, हम एक मारियाडीबी मास्टर-स्लेव प्रतिकृति तैनात करेंगे, जिसका उपयोग चमिलो एप्लिकेशन द्वारा किया जाएगा। इसके लिए, हम 2 MariaDB डेटाबेस नोड्स (मास्टर-स्लेव) और 2 HAProxy लोड बैलेंसर्स को उनके बीच कॉन्फ़िगर किए गए Keepalived के साथ तैनात करने के लिए ClusterControl का उपयोग करेंगे।

MariaDB डेटाबेस परिनियोजन

ClusterControl से परिनियोजन करने के लिए, बस "तैनाती" विकल्प चुनें और दिखाई देने वाले निर्देशों का पालन करें।

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

SSH एक्सेस जानकारी सेट करने के बाद, आपको डेटाबेस विक्रेता का चयन करना होगा / संस्करण, और डेटाबेस क्रेडेंशियल, पोर्ट और डेटा निर्देशिका को परिभाषित करें। आप यह भी निर्दिष्ट कर सकते हैं कि किस भंडार का उपयोग करना है।

अगले चरण में, आपको अपने सर्वर को उस क्लस्टर में जोड़ना होगा जिसे आप आईपी एड्रेस या होस्टनाम का उपयोग करके बनाने जा रहे हैं।

कार्य समाप्त होने के बाद, आप अपने नए MariaDB क्लस्टर को इसमें देख सकते हैं मुख्य क्लस्टर नियंत्रण स्क्रीन।

अब आपने अपना क्लस्टर बना लिया है, आप उस पर कई कार्य कर सकते हैं, जैसे लोड बैलेंसर या नई प्रतिकृति जोड़ना।

बैलेंसर परिनियोजन लोड करें

लोड बैलेंसर परिनियोजन करने के लिए, क्लस्टर क्रियाओं में "लोड बैलेंसर जोड़ें" विकल्प चुनें और मांगी गई जानकारी को पूरा करें।

आपको केवल IP या होस्टनाम, पोर्ट, नीति और लोड संतुलन के लिए आप जिन नोड्स का उपयोग करने जा रहे हैं। आप इसे दो अलग-अलग पोर्ट (रीड/राइट और रीड-ओनली) का उपयोग करके तैनात कर सकते हैं, या आप वहां सभी ट्रैफ़िक भेजने के लिए केवल एक रीड/राइट पोर्ट का उपयोग कर सकते हैं।

परिनियोजन बनाए रखा

एक Keepalived परिनियोजन करने के लिए, क्लस्टर क्रियाओं में "लोड बैलेंसर जोड़ें" विकल्प चुनें और फिर Keepalived Tab पर जाएं।

यहां, HAProxy नोड्स चुनें, और वर्चुअल आईपी एड्रेस निर्दिष्ट करें जो डेटाबेस तक पहुँचने के लिए इस्तेमाल किया जा सकता है।

अब, आइए इस परिवेश को चमिलो एप्लिकेशन से कनेक्ट करें।

चमिलो डेटाबेस कॉन्फ़िगरेशन

चमिलो परिनियोजन के दौरान, चरण 4 में, आपको डेटाबेस कॉन्फ़िगरेशन जोड़ने की आवश्यकता होगी।

यहां आपको अपने मारियाडीबी डेटाबेस तक पहुंचने के लिए वर्चुअल आईपी एड्रेस का उपयोग करना चाहिए, और डेटाबेस क्रेडेंशियल।

चमिलो कॉन्फ़िगरेशन के बारे में अधिक जानकारी के लिए आप आधिकारिक दस्तावेज़ीकरण देख सकते हैं।

बस! उच्च उपलब्धता के साथ मारियाडीबी डेटाबेस का उपयोग करके आपके पास अपना चमिलो एप्लिकेशन है।

ClusterControl स्वतः पुनर्प्राप्ति सुविधा

विफल होने की स्थिति में, ClusterControl सबसे उन्नत स्लेव नोड को मास्टर करने के लिए बढ़ावा देगा और साथ ही आपको समस्या के बारे में सूचित करेगा। यह नए मास्टर सर्वर से दोहराने के लिए बाकी स्लेव नोड्स पर भी विफल रहता है।

डिफ़ॉल्ट रूप से, HAProxy दो अलग-अलग पोर्ट के साथ कॉन्फ़िगर किया गया है:रीड-राइट और रीड-ओनली। रीड-राइट पोर्ट में, आपके पास अपना मास्टर नोड ऑनलाइन है और बाकी नोड्स ऑफ़लाइन हैं, और रीड-ओनली पोर्ट में, आपके पास मास्टर और स्लेव दोनों नोड्स ऑनलाइन हैं।

जब HAProxy को पता चलता है कि आपका एक नोड पहुंच योग्य नहीं है, तो यह स्वचालित रूप से इसे ऑफ़लाइन के रूप में चिह्नित कर देता है और इसे ट्रैफ़िक भेजने के लिए ध्यान में नहीं रखता है। जांच स्वास्थ्य जांच स्क्रिप्ट द्वारा की जाती है जिसे परिनियोजन के समय क्लस्टरकंट्रोल द्वारा कॉन्फ़िगर किया जाता है। ये जाँचते हैं कि क्या इंस्टेंस ऊपर हैं, क्या वे ठीक हो रहे हैं, या केवल-पढ़ने के लिए हैं।

जब ClusterControl स्लेव नोड को बढ़ावा देता है, HAProxy पुराने मास्टर को दोनों पोर्ट के लिए ऑफ़लाइन के रूप में चिह्नित करता है और प्रचारित नोड को रीड-राइट पोर्ट में ऑनलाइन रखता है।

यदि आपका सक्रिय HAProxy, जिसे एक वर्चुअल IP पता सौंपा गया है, जिससे आपका सिस्टम कनेक्ट होता है, विफल हो जाता है, Keepalived इस IP पते को आपके निष्क्रिय HAProxy में स्वचालित रूप से माइग्रेट कर देता है। इसका मतलब है कि आपका सिस्टम तब सामान्य रूप से कार्य करना जारी रखने में सक्षम है।

ClusterControl CLI का उपयोग करके MariaDB डेटाबेस परिनियोजन

यदि आप कमांड-लाइन का उपयोग करके मारियाडीबी क्लस्टर को परिनियोजित करना पसंद करते हैं, तो आप "s9s" नामक क्लस्टरकंट्रोल कमांड-लाइन क्लाइंट टूल का उपयोग कर सकते हैं। यह उपकरण ClusterControl सर्वर को एक परिनियोजन कार्य भेजेगा और यह क्लस्टर को परिनियोजित करने के लिए सभी आवश्यक कदम उठाएगा।

उदाहरण के लिए, आप मारियाडीबी मास्टर-स्लेव प्रतिकृति बनाने के लिए क्लस्टरकंट्रोल सर्वर पर निम्न कमांड चला सकते हैं:

$ s9s cluster --create \

--cluster-type=mysqlreplication \

--nodes='10.10.10.136;10.10.10.137' \

--vendor=mariadb \

--provider-version='10.5' \

--db-admin-passwd='root123' \

--os-user=root \

--os-key-file=/root/.ssh/id_rsa \

--cluster-name='MariaDB1' \

--log

आपको कंसोल में जॉब लॉग दिखाई देगा ताकि आप वहां परिनियोजन प्रगति की निगरानी कर सकें, या आप ClusterControl UI -> गतिविधि -> जॉब्स से जॉब की प्रगति की निगरानी भी कर सकते हैं। जब यह समाप्त हो जाए तो आप इसे ClusterControl UI में सूचीबद्ध देख सकते हैं।

निष्कर्ष

इस ब्लॉग में, हमने ClusterControl का उपयोग करके उच्च उपलब्धता के लिए एक MariaDB डेटाबेस को परिनियोजित करने और इसे Chamilo LMS एप्लिकेशन पर उपयोग करने के तरीके के बारे में कुछ विकल्पों का उल्लेख किया है।

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उत्पादन के लिए एक MySQL या MariaDB सर्वर तैयार करना - भाग दो

  2. मारियाडीबी में महीने का अंत कैसे प्राप्त करें

  3. मारियाडीबी में क्वेरी परिणामों को अल्पविराम से अलग की गई सूची में बदलें

  4. मारियाडीबी JSON_QUOTE () समझाया गया

  5. कैसे TRIM () MariaDB में काम करता है