हमें नियमित रूप से प्रश्न मिलते हैं कि केवल 2 नोड्स के साथ गैलेरा क्लस्टर कैसे स्थापित किया जाए।
दस्तावेज़ीकरण स्पष्ट रूप से बताता है कि नेटवर्क विभाजन से बचने के लिए आपके पास कम से कम 3 गैलेरा नोड्स होने चाहिए। लेकिन 2 नोड परिनियोजन पर विचार करने के कुछ वैध कारण हैं, उदाहरण के लिए, यदि आप डेटाबेस को उच्च उपलब्धता प्राप्त करना चाहते हैं लेकिन तीसरे डेटाबेस नोड पर खर्च करने के लिए सीमित बजट है। या शायद आप गैलेरा को विकास/सैंडबॉक्स परिवेश में चला रहे हैं और न्यूनतम सेटअप पसंद करते हैं।
गैलेरा एक प्राथमिक घटक का चयन करने के लिए कोरम-आधारित एल्गोरिदम लागू करता है जिसके माध्यम से यह स्थिरता को लागू करता है। प्राथमिक घटक को बहुमत की आवश्यकता होती है, इसलिए 2 नोड प्रणाली में, विभाजित मस्तिष्क के परिणामस्वरूप कोई बहुमत नहीं होगा। सौभाग्य से, एक गारबड (गैलेरा आर्बिट्रेटर डेमन) जोड़ना संभव है, जो एक हल्का स्टेटलेस डेमॉन है जो विषम नोड के रूप में कार्य कर सकता है। मध्यस्थ की विफलता क्लस्टर संचालन को प्रभावित नहीं करती है और एक नया उदाहरण किसी भी समय क्लस्टर में दोबारा जोड़ा जा सकता है। क्लस्टर में कई मध्यस्थ हो सकते हैं।
ClusterControl के पास गैर-डेटाबेस होस्ट पर गारबड परिनियोजित करने के लिए समर्थन है।
आम तौर पर एक गैलेरा क्लस्टर को पूरी तरह कार्यात्मक होने के लिए कम से कम तीन मेजबानों की आवश्यकता होती है, हालांकि, तैनाती के समय, प्राथमिक घटक बनाने के लिए दो नोड्स पर्याप्त होंगे। ये चरण हैं:
- दो नोड्स का गैलेरा क्लस्टर परिनियोजित करें,
- ClusterControl द्वारा क्लस्टर परिनियोजित किए जाने के बाद, ClusterControl नोड पर गारबड जोड़ें।
आपको नीचे दिए गए सेटअप के साथ समाप्त होना चाहिए:
गैलेरा क्लस्टर परिनियोजित करें
क्लस्टर परिनियोजित करने के लिए ClusterControl परिनियोजन अनुभाग पर जाएँ।
उस तकनीक का चयन करने के बाद जिसे हम परिनियोजित करना चाहते हैं, हमें एसएसएच द्वारा अपने मेजबानों से कनेक्ट करने के लिए उपयोगकर्ता, कुंजी या पासवर्ड और पोर्ट निर्दिष्ट करना होगा। हमें अपने नए क्लस्टर के लिए नाम की भी आवश्यकता है और यदि हम चाहते हैं कि ClusterControl हमारे लिए संबंधित सॉफ़्टवेयर और कॉन्फ़िगरेशन स्थापित करे।
एसएसएच एक्सेस जानकारी सेट करने के बाद, हमें विक्रेता/संस्करण का चयन करना होगा और हमें डेटाबेस व्यवस्थापक पासवर्ड, डेटादिर और पोर्ट को परिभाषित करना होगा। हम यह भी निर्दिष्ट कर सकते हैं कि किस भंडार का उपयोग करना है।
भले ही ClusterControl आपको चेतावनी देता है कि Galera क्लस्टर को विषम संख्या में नोड्स की आवश्यकता होती है, क्लस्टर में केवल दो नोड जोड़ें।
Galera क्लस्टर परिनियोजित करने से ClusterControl कार्य प्रारंभ हो जाएगा, जिस पर कार्य पृष्ठ पर नज़र रखी जा सकती है।
गरबड स्थापित करें
परिनियोजन पूर्ण होने के बाद, ClusterControl होस्ट पर गारबड स्थापित करें। हमारे पास ClusterControl से garbd को परिनियोजित करने का विकल्प है, लेकिन यदि हम इसे उसी ClusterControl सर्वर में परिनियोजित करना चाहते हैं तो यह विकल्प काम नहीं करेगा। यह डेटाबेस संस्करणों और पैकेज निर्भरता से संबंधित कुछ समस्या से बचने के लिए है।
इसलिए, हमें इसे मैन्युअल रूप से स्थापित करना होगा, और फिर गारबड को ClusterControl में आयात करना होगा।
आइए देखते हैं CentOS 7 पर Percona Garbd का मैन्युअल इंस्टालेशन।
Percona रिपॉजिटरी फ़ाइल बनाएँ:
$ vi /etc/yum.repos.d/percona.repo
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0
[percona-release-noarch]
name = Percona-Release YUM repository - noarch
baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
enabled = 1
gpgcheck = 0
[percona-release-source]
name = Percona-Release YUM repository - Source packages
baseurl = http://repo.percona.com/release/$releasever/SRPMS
enabled = 0
gpgcheck = 0
फिर, Percona XtraDB Cluster garbd पैकेज इंस्टाल करें:
$ yum install Percona-XtraDB-Cluster-garbd-57
अब, हमें garbd को कॉन्फ़िगर करने की आवश्यकता है। इसके लिए, हमें /etc/sysconfig/garb फ़ाइल को संपादित करने की आवश्यकता है:
$ vi /etc/sysconfig/garb
# Copyright (C) 2012 Codership Oy
# This config file is to be sourced by garb service script.
# A comma-separated list of node addresses (address[:port]) in the cluster
GALERA_NODES="192.168.100.192:4567,192.168.100.193:4567"
# Galera cluster name, should be the same as on the rest of the nodes.
GALERA_GROUP="Galera1"
# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
# GALERA_OPTIONS=""
# Log file for garbd. Optional, by default logs to syslog
# Deprecated for CentOS7, use journalctl to query the log for garbd
# LOG_FILE=""
गैलेरा नोड्स कॉन्फ़िगरेशन के अनुसार GALERA_NODES और GALERA_GROUP पैरामीटर बदलें। हमें सेवा शुरू करने से पहले # कॉन्फ़िगरेशन के बाद इसे हटा दें लाइन को भी हटाना होगा।
और अब, हम गारब सेवा शुरू कर सकते हैं:
$ service garb start
Redirecting to /bin/systemctl start garb.service
अब, हम नए गारबड को ClusterControl में आयात कर सकते हैं।
ClusterControl पर जाएँ -> क्लस्टर चुनें -> लोड बैलेंसर जोड़ें।
फिर, गारबड और इम्पोर्ट गारबड सेक्शन चुनें।
यहां हमें केवल होस्टनाम या आईपी एड्रेस और नए गारबड के पोर्ट को निर्दिष्ट करने की आवश्यकता है।
गारबड आयात करने से ClusterControl कार्य प्रारंभ हो जाएगा जिसकी निगरानी कार्य पृष्ठ पर की जा सकती है। एक बार पूरा हो जाने पर, आप सत्यापित कर सकते हैं कि गारबड शीर्ष बार पर एक हरे रंग के टिक आइकन के साथ चल रहा है:
बस!
हमारा न्यूनतम दो-नोड वाला गैलेरा क्लस्टर अब तैयार है!