गैलेरा क्लस्टर MySQL के लिए सबसे लोकप्रिय उच्च उपलब्धता समाधानों में से एक है। यह वस्तुतः तुल्यकालिक क्लस्टर है, जो प्रतिकृति अंतराल को नियंत्रण में रखने में मदद करता है। प्रवाह नियंत्रण के लिए धन्यवाद, गैलेरा क्लस्टर खुद को थ्रॉटल कर सकता है और अधिक लोड किए गए नोड्स को बाकी क्लस्टर के साथ पकड़ने की अनुमति देता है। गैलेरा 4 की हालिया रिलीज़ ने नई सुविधाएँ और सुधार लाए। हमने मारियाडीबी 10.4 गैलेरा क्लस्टर के बारे में बात करते हुए ब्लॉग पोस्ट में और गैलेरा 4 की मौजूदा और आगामी सुविधाओं पर चर्चा करने वाली एक ब्लॉग पोस्ट में उन्हें शामिल किया।
Amazon EC2 में इस्तेमाल किए जाने पर गैलेरा 4 का किराया कैसा है? जैसा कि आप शायद जानते हैं, अमेज़ॅन रिलेशनल डेटाबेस सेवाएं प्रदान करता है, जो उपयोगकर्ताओं को अत्यधिक उपलब्ध MySQL डेटाबेस को तैनात करने का एक आसान तरीका प्रदान करने के लिए डिज़ाइन किया गया है। मेरे सहयोगी, अशरफ शरीफ ने अपने ब्लॉग पोस्ट में RDS MySQL और RDS Aurora के लिए विफलता समय की तुलना की। औरोरा के लिए विफलता का समय वास्तव में बहुत अच्छा लगता है, लेकिन कुछ भी हैं। सबसे पहले, आपको आरडीएस का उपयोग करने के लिए मजबूर किया जाता है। आपके द्वारा प्रबंधित किए जाने वाले इंस्टेंस पर आप Aurora को परिनियोजित नहीं कर सकते। यदि Aurora में उपलब्ध मौजूदा सुविधाएँ और विकल्प आपके लिए पर्याप्त नहीं हैं, तो आपके पास अपने दम पर कुछ तैनात करने के अलावा और कोई विकल्प नहीं है। यहां गैलेरा में प्रवेश करती है। औरोरा के विपरीत, गैलेरा एक मालिकाना ब्लैक बॉक्स नहीं है। इसके विपरीत, यह एक ओपन सोर्स सॉफ्टवेयर है, जिसे सभी समर्थित वातावरणों पर स्वतंत्र रूप से उपयोग किया जा सकता है। आप एडब्ल्यूएस इलास्टिक कंप्यूटिंग क्लाउड (ईसी 2) पर गैलेरा क्लस्टर स्थापित कर सकते हैं और इसके माध्यम से, एक अत्यधिक उपलब्ध वातावरण का निर्माण कर सकते हैं जहां विफलता लगभग तत्काल है:जैसे ही आप नोड की विफलता का पता लगा सकते हैं, आप अन्य गैलेरा नोड से फिर से कनेक्ट कर सकते हैं। गैलेरा 4 को ईसी2 में कैसे तैनात किया जाता है? इस ब्लॉग पोस्ट में हम इस पर एक नज़र डालेंगे और हम आपको चरण-दर-चरण मार्गदर्शिका प्रदान करेंगे जिसमें दिखाया जाएगा कि इसे पूरा करने का सबसे सरल तरीका क्या है।
EC2 पर गैलेरा 4 क्लस्टर परिनियोजित करना
पहला कदम एक ऐसा वातावरण तैयार करना है जिसका उपयोग हम अपने गैलेरा क्लस्टर के लिए करेंगे। हम Ubuntu 18.04 LTS वर्चुअल मशीन के साथ जाएंगे।
हम इस ब्लॉग के उद्देश्य के लिए t2.medium उदाहरण आकार के साथ जाएंगे पद। आपको अपेक्षित भार के आधार पर अपने उदाहरणों को मापना चाहिए।
हम क्लस्टर में तीन नोड तैनात करने जा रहे हैं। तीन क्यों? हमारे पास एक ब्लॉग है जो बताता है कि कैसे गैलेरा उच्च उपलब्धता बनाए रखता है।
हम उन उदाहरणों के लिए संग्रहण कॉन्फ़िगर करने जा रहे हैं।
हम नोड्स के लिए उचित सुरक्षा समूह भी चुनेंगे। फिर से, हमारे मामले में सुरक्षा समूह काफी खुला है। आपको यह सुनिश्चित करना चाहिए कि पहुंच यथासंभव सीमित है - केवल उन नोड्स को, जिन्हें डेटाबेस तक पहुंचना है, उनसे कनेक्ट होने की अनुमति दी जानी चाहिए।
अंत में, हम या तो एक मौजूदा कुंजी सममूल्य चुनते हैं या एक नया बनाते हैं। इस चरण के बाद हमारे तीन उदाहरण लॉन्च किए जाएंगे।
एक बार जब वे तैयार हो जाते हैं, तो हम उन्हें SSH के माध्यम से कनेक्ट कर सकते हैं और कॉन्फ़िगर करना शुरू कर सकते हैं डेटाबेस।
हमने 'नोड1, नोड2, नोड3' नामकरण परंपरा के साथ जाने का फैसला किया है इसलिए हमें सभी नोड्स पर /etc/hosts संपादित करना होगा और उन्हें उनके संबंधित स्थानीय आईपी के साथ सूचीबद्ध करना होगा। हमने नोड्स के लिए नए नाम का उपयोग करने के लिए /etc/hostname में भी बदलाव किया है। जब यह हो जाता है, तो हम अपना गैलेरा क्लस्टर स्थापित करना शुरू कर सकते हैं। लिखने के समय केवल विक्रेता जो गैलेरा 4 का GA संस्करण प्रदान करता है, वह 10.4 के साथ मारियाडीबी है इसलिए हम अपने क्लस्टर के लिए मारियाडीबी 10.4 का उपयोग करने जा रहे हैं। हम मारियाडीबी वेबसाइट के सुझावों और गाइडों का उपयोग करके इंस्टॉलेशन के साथ आगे बढ़ने जा रहे हैं।
एक मारियाडीबी 10.4 गैलेरा क्लस्टर परिनियोजित करना
हम रिपॉजिटरी तैयार करने के साथ शुरुआत करेंगे:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
bash ./mariadb_repo_setup
हमने स्क्रिप्ट डाउनलोड की जिसका उद्देश्य रिपॉजिटरी स्थापित करना है और हमने यह सुनिश्चित करने के लिए इसे चलाया कि सब कुछ ठीक से सेट हो गया है। यह नवीनतम मारियाडीबी संस्करण का उपयोग करने के लिए कॉन्फ़िगर किया गया भंडार है, जो लेखन के समय 10.4 है।
[email protected]:~# apt update
Hit:1 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 http://downloads.mariadb.com/MariaDB/mariadb-10.4/repo/ubuntu bionic InRelease
Ign:5 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic InRelease
Hit:6 http://downloads.mariadb.com/Tools/ubuntu bionic InRelease
Hit:7 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic Release
Hit:8 http://security.ubuntu.com/ubuntu bionic-security InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
4 packages can be upgraded. Run 'apt list --upgradable' to see them.
जैसा कि आप देख सकते हैं, MariaDB 10.4 और MaxScale 2.4 के लिए रिपॉजिटरी को कॉन्फ़िगर किया गया है। अब हम आगे बढ़ सकते हैं और मारियाडीबी स्थापित कर सकते हैं। हम इसे चरण दर चरण, नोड द्वारा नोड. MariaDB इस बारे में मार्गदर्शिका प्रदान करती है कि आपको क्लस्टर को कैसे स्थापित और कॉन्फ़िगर करना चाहिए।
हमें पैकेज स्थापित करने की आवश्यकता है:
apt-get install mariadb-server mariadb-client galera-4 mariadb-backup
यह कमांड मारियाडीबी 10.4 गैलेरा को चलाने के लिए सभी आवश्यक पैकेज स्थापित करता है। मारियाडीबी कॉन्फ़िगरेशन फ़ाइलों का एक सेट बनाता है। हम एक नया जोड़ेंगे, जिसमें सभी आवश्यक सेटिंग्स होंगी। डिफ़ॉल्ट रूप से इसे कॉन्फ़िगरेशन फ़ाइल के अंत में शामिल किया जाएगा, इसलिए हमारे द्वारा सेट किए गए चर के लिए पिछली सभी सेटिंग्स को अधिलेखित कर दिया जाएगा। आदर्श रूप से, बाद में, आप हमारे द्वारा galera.cnf में रखी गई सेटिंग्स को हटाने के लिए मौजूदा कॉन्फ़िगरेशन फ़ाइलों को संपादित करेंगे ताकि भ्रम से बचने के लिए जहां दी गई सेटिंग कॉन्फ़िगर की गई है।
[email protected]:~# cat /etc/mysql/conf.d/galera.cnf
[mysqld]
bind-address=10.0.0.103
default_storage_engine=InnoDB
binlog_format=row
innodb_autoinc_lock_mode=2
# Galera cluster configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://10.0.0.103,10.0.0.130,10.0.0.62"
wsrep_cluster_name="Galera4 cluster"
wsrep_sst_method=mariabackup
wsrep_sst_auth='sstuser:pa55'
# Cluster node configuration
wsrep_node_address="10.0.0.103"
wsrep_node_name="node1"
कॉन्फ़िगरेशन तैयार होने पर, हम प्रारंभ कर सकते हैं।
[email protected]:~# galera_new_cluster
इसे पहले नोड पर नए क्लस्टर को बूटस्ट्रैप करना चाहिए। आगे हमें शेष नोड्स पर समान चरणों के साथ आगे बढ़ना चाहिए:आवश्यक पैकेज स्थापित करें और उन्हें यह ध्यान में रखते हुए कॉन्फ़िगर करें कि स्थानीय आईपी बदलता है इसलिए हमें तदनुसार galera.cnf फ़ाइल को बदलना होगा।
कॉन्फ़िगरेशन फ़ाइलें तैयार होने पर, हमें एक उपयोगकर्ता बनाना होगा जिसका उपयोग स्नैपशॉट स्टेट ट्रांसफर (SST) के लिए किया जाएगा:
MariaDB [(none)]> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'pa55';
Query OK, 0 rows affected (0.022 sec)
MariaDB [(none)]> GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
Query OK, 0 rows affected (0.022 sec)
हमें इसे पहले नोड पर करना चाहिए। शेष नोड्स क्लस्टर में शामिल हो जाएंगे और उन्हें पूर्ण राज्य स्नैपशॉट प्राप्त होगा जिससे उपयोगकर्ता उन्हें स्थानांतरित कर दिया जाएगा। अब हमें केवल इतना करना है कि शेष नोड्स शुरू करें:
[email protected]:~# service mysql start
[email protected]:~# service mysql start
और सत्यापित करें कि वास्तव में क्लस्टर का गठन किया गया है:
MariaDB [(none)]> show global status like 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+
1 row in set (0.001 sec)
सब ठीक है, क्लस्टर तैयार है और इसमें तीन गैलेरा नोड हैं। हम Amazon EC2 पर मारियाडीबी 10.4 गैलेरा क्लस्टर को तैनात करने में कामयाब रहे।