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

PostgreSQL डेटाबेस क्लस्टर के साथ अत्यधिक उपलब्ध कैनवास LMS को कैसे परिनियोजित करें

इन महामारी के समय में, लर्निंग मैनेजमेंट सिस्टम (एलएमएस) प्लेटफॉर्म अधिक से अधिक महत्वपूर्ण होते जा रहे हैं ताकि आप दूर से सीखना जारी रख सकें जब पारंपरिक शिक्षा प्रणाली अब उपलब्ध नहीं है।

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

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

कैनवस क्या है?

कैनवास एक वेब आधारित लर्निंग मैनेजमेंट सिस्टम (एलएमएस) है। इसका उपयोग शिक्षण संस्थानों, शिक्षकों और छात्रों द्वारा ऑनलाइन पाठ्यक्रम सीखने की सामग्री तक पहुंचने और प्रबंधित करने और कौशल विकास और सीखने की उपलब्धि के बारे में संवाद करने के लिए किया जाता है।

कैनवस में विभिन्न प्रकार के अनुकूलन योग्य पाठ्यक्रम निर्माण और प्रबंधन उपकरण, पाठ्यक्रम और उपयोगकर्ता विश्लेषण और आंकड़े, और आंतरिक संचार उपकरण शामिल हैं।

कैनवस LMS PostgreSQL डेटाबेस परिनियोजन

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

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

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

तो, आइए देखें कि क्लस्टरकंट्रोल का उपयोग करके उल्लिखित टोपोलॉजी को कैसे लागू किया जाए।

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

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

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

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

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

आखिरी चरण में, आप चुन सकते हैं कि आपकी प्रतिकृति सिंक्रोनस होगी या नहीं एसिंक्रोनस, और फिर बस "तैनाती" पर दबाएं

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

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

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

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

आपको केवल IP या होस्टनाम, पोर्ट, नीति और जिन नोड्स का आप उपयोग करने जा रहे हैं।

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

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

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

इस समय, आपके पास निम्न टोपोलॉजी होनी चाहिए:

अब, उच्च उपलब्धता के लिए इस परिवेश को कैनवास LMS से कनेक्ट करें।

कैनवस LMS को कैसे कॉन्फ़िगर करें

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

एक बार जब आप कैनवास एलएमएस स्थापित कर लेते हैं, तो आप PostgreSQL उच्च उपलब्धता वातावरण का उपयोग करने के लिए डेटाबेस.yml फ़ाइल को कॉन्फ़िगर करने के लिए आगे बढ़ सकते हैं जिसे आपने अभी-अभी तैनात किया है।

$ cat config/database.yml

production:

  adapter: postgresql

  encoding: utf8

  database: canvas_production

  host: VIRTUAL_IPADDRESS

  username: CANVAS_USER

  password: CANVAS_PASSWD

  timeout: 5000

यहां, बदलें:

  • VIRTUAL_IPADDRESS वर्चुअल आईपी एड्रेस के लिए Keepalived में कॉन्फ़िगर किया गया है

  • CANVAS_USER कैनवास डेटाबेस उपयोगकर्ता के लिए

  • CANVAS_PASSWD कैनवास डेटाबेस पासवर्ड के लिए

सुनिश्चित करें कि आप होस्ट के रूप में अपने वर्चुअल आईपी पते का उपयोग करके अपने डेटाबेस तक पहुंच सकते हैं और इसकी अनुमति pg_hba.conf PostgreSQL कॉन्फ़िगरेशन फ़ाइल में है। आप अपने एप्लिकेशन सर्वर से निम्न कमांड चलाकर इसका परीक्षण कर सकते हैं:

$ psql -h VIRTUAL_IPADDRESS -U CANVAS_USER canvas_production

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

तो, प्रश्न यह है कि, परिनियोजन प्रक्रिया के अलावा, यहाँ ClusterControl की क्या भूमिका है?

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

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

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

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

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

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल में कम से कम () फ़ंक्शन

  2. अनुरोधित सेवा बनाने में असमर्थ [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

  3. ऑनलाइन अपग्रेड पर प्रगति

  4. PostgreSQL:त्रुटि:42601:रिकॉर्ड लौटाने वाले कार्यों के लिए एक कॉलम परिभाषा सूची की आवश्यकता होती है

  5. पैरामीटर NULL होने पर कॉलम में DEFAULT मान डालना