ClusterControl आधारभूत संरचना-अज्ञेयवादी है - इसका उपयोग भौतिक मेजबानों के साथ-साथ वर्चुअलाइज्ड क्लाउड वातावरण में आपके अपने डेटासेंटर में किया जा सकता है। आपको केवल ClusterControl होस्ट से डेटाबेस नोड्स तक ssh एक्सेस की आवश्यकता है, और फिर आप स्टैंडअलोन/प्रतिकृति/क्लस्टर MySQL/MariaDB, MongoDB (प्रतिकृति सेट या शार्प क्लस्टर) या PostgreSQL (स्ट्रीमिंग प्रतिकृति) को तैनात कर सकते हैं। इस ब्लॉग पोस्ट में, हम आपको EC2 पर ClusterControl परिनियोजित करने के चरणों के बारे में बताएंगे।
EC2 में इंस्टेंस सेट करना
ClusterControl के लिए हार्डवेयर आवश्यकताएँ यहाँ वर्णित हैं। वे ClusterControl सर्वर के लिए एक निष्पादक मंच बनाने के लिए हैं। ऐसा कहने के बाद, हम अपने परीक्षण उद्देश्यों (t2.micro) के लिए एक छोटे से उदाहरण का उपयोग करेंगे - यह हमारे लिए पर्याप्त होना चाहिए।
सबसे पहले, हमें एक एएमआई चुनने की जरूरत है। क्लस्टरकंट्रोल सपोर्ट करता है:
- Redhat/CentOS/Oracle Linux 6 और बाद के संस्करण
- उबंटू 12.04/14.04/16.04 एलटीएस
- डेबियन 7.0 और बाद के संस्करण
हम Ubuntu 16.04 का उपयोग करने जा रहे हैं।
अगला चरण - उदाहरण प्रकार। हम अभी के लिए t2.micro को चुनेंगे, हालाँकि आप प्रोडक्शन सेटअप के लिए बड़े इंस्टेंस का उपयोग करना चाहेंगे। अन्य क्लाउड प्रदाताओं के लिए, कम से कम 1 जीबी मेमोरी वाले इंस्टेंस चुनें।
हम एक साथ चार इंस्टेंस तैनात करने जा रहे हैं, एक क्लस्टरकंट्रोल के लिए और तीन पेरकोना एक्स्ट्राडीबी क्लस्टर के लिए। आपको यह तय करने की ज़रूरत है कि उन उदाहरणों को कहाँ तैनात किया जाना चाहिए (वीपीसी या नहीं, कौन सा सबनेट इत्यादि)। हमारे परीक्षण उद्देश्यों के लिए, हम एक वीपीसी और एक सबनेट का उपयोग करने जा रहे हैं। बेशक, सबनेट (उपलब्धता क्षेत्र) में नोड्स को तैनात करने से आपके सेटअप के जीवित रहने की संभावना बढ़ जाती है यदि AZ में से कोई एक अनुपलब्ध हो जाता है।
भंडारण के लिए हम 100GB सामान्य उद्देश्य वाले SSD वॉल्यूम (GP2) का उपयोग करेंगे। यह उचित मात्रा में डेटा के साथ कुछ परीक्षण करने के लिए पर्याप्त होना चाहिए।
अगला - सुरक्षा समूह। SSH एक्सेस एक आवश्यकता है। इसके अलावा, आपको उस डेटाबेस के लिए आवश्यक पोर्ट खोलने की आवश्यकता है जिसे आप परिनियोजित करने की योजना बना रहे हैं। आप हमारे समर्थन पोर्टल में अधिक जानकारी प्राप्त कर सकते हैं कि किन बंदरगाहों की आवश्यकता है।
अंत में, आपको या तो मौजूदा कुंजी युग्मों में से एक को चुनना होगा या आप एक नया बना सकते हैं। इस चरण के बाद आपके उदाहरण लॉन्च हो जाएंगे।
एक बार इंस्टेंसेस उठने और चलने के बाद, क्लस्टरकंट्रोल को स्थापित करने का समय आ गया है। उसके लिए, किसी एक इंस्टेंस में लॉग इन करें और ClusterControl इंस्टालेशन स्क्रिप्ट डाउनलोड करें, इंस्टॉल-सीसी:
[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10-- http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10-- https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11-- https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’
install-cc 100%[=====================================================================================================================>] 55.58K 289KB/s in 0.2s
2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]
फिर, सुनिश्चित करें कि इसे चलाने से पहले इसे निष्पादित किया जा सकता है:
[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc
शुरुआत में, आपको समर्थित Linux वितरणों की आवश्यकताओं के बारे में कुछ जानकारी मिलेगी:
!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M
Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):
This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.
कुछ बिंदु पर आपको होस्टनाम, पोर्ट और पासवर्ड के बारे में कुछ सवालों के जवाब देने होंगे।
=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp
=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):
=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.
=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...
अंत में, आपको पुष्टि मिलेगी कि ClusterControl स्थापित किया गया है। इंस्टाल स्क्रिप्ट आपके सार्वजनिक आईपी का पता लगाने और एक लिंक का प्रिंट आउट लेने का भी प्रयास करेगी जिसका उपयोग आपके ब्राउज़र में क्लस्टर कंट्रोल तक पहुंचने के लिए किया जा सकता है।
=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.
Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.
एक बार इंस्टॉलेशन हो जाने के बाद, अभी भी एक बात का ध्यान रखना है - SSH ClusterControl से शेष होस्ट तक पहुँच। जब तक आपके पास पहले से ही नोड्स के बीच एसएसएच पहुंच नहीं है (और आप एसएसएच-कॉपी-आईडी का उपयोग कर सकते हैं), यह एक मैन्युअल प्रक्रिया होगी। सबसे पहले और सबसे महत्वपूर्ण, हमें एक नई ssh कुंजी बनाने की आवश्यकता है:
[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
| .o=**X*&|
| Eo + BO|
| ..+ +.o|
| + o +.|
| S = o + o|
| o o * * o |
| . . o + = |
| . . = |
| . . o|
+----[SHA256]-----+
[email protected]:~#
हम सत्यापित कर सकते हैं कि इसे सही ढंग से बनाया गया है। आप सार्वजनिक कुंजी की सामग्री को भी कॉपी करना चाहेंगे - हम इसका उपयोग शेष नोड्स पर इसकी प्रतियां बनाने के लिए करेंगे।
[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster
अब, प्रत्येक शेष नोड पर, आपको इस सार्वजनिक कुंजी को अधिकृत_की फ़ाइल में जोड़ना होगा। उबंटू के लिए, यदि आप रूट लॉगिन का उपयोग करना चाहते हैं तो आप पहले इसकी सामग्री को साफ करना चाहेंगे। डिफ़ॉल्ट रूप से, SSH के माध्यम से कनेक्ट करने के लिए केवल ubuntu उपयोगकर्ता का उपयोग किया जा सकता है। इस तरह के सेटअप (नियमित उपयोगकर्ता और सुडो) को क्लस्टरकंट्रोल के साथ उपयोग करना भी संभव है लेकिन यहां हम रूट उपयोगकर्ता के लिए जाएंगे।
[email protected]:~# vim ~/.ssh/authorized_keys
एक बार सभी नोड्स पर अधिकृत_की फाइलों में हमारी सार्वजनिक कुंजी शामिल हो जाने पर, हम अपनी सार्वजनिक कुंजी को .ssh निर्देशिका में कॉपी करेंगे और एक्सेस अधिकारों में आवश्यक परिवर्तन करेंगे:
[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera
अब हम परीक्षण कर सकते हैं कि क्या एसएसएच एक्सेस उम्मीद के मुताबिक काम करता है:
[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
[email protected]:~# logout
Connection to 172.30.4.46 closed.
सब अच्छा है। क्लस्टरकंट्रोल को कॉन्फ़िगर करने का समय आ गया है।
कुछ पंजीकरण विवरण भरें।
एक बार जब आप लॉग इन कर लेते हैं, तो एक विज़ार्ड नए क्लस्टर को परिनियोजित करने या किसी मौजूदा को आयात करने के विकल्प के साथ दिखाई देगा।
हम Percona XtraDB क्लस्टर को तैनात करना चाहते हैं, इसलिए हम "डेटाबेस क्लस्टर तैनात करें" के लिए जाएंगे और "MySQL Galera" टैब चुनेंगे। यहां हमें एसएसएच कनेक्टिविटी के लिए आवश्यक एक्सेस विवरण भरना होगा। हम SSH उपयोगकर्ता को रूट पर सेट करेंगे और हम अपनी SSH कुंजी का पथ भरेंगे।
इसके बाद, हम अपने डेटाबेस होस्ट के लिए एक विक्रेता, संस्करण, पासवर्ड और आईपी पते को परिभाषित करेंगे। कृपया ध्यान रखें कि ClusterControl लक्ष्य डेटाबेस होस्ट के लिए SSH कनेक्टिविटी की जाँच करेगा। यदि सब कुछ ठीक रहा, तो आपको हरे रंग के निशान दिखाई देंगे। यदि आप देखते हैं कि SSH प्रमाणीकरण विफल हो गया है, तो आपको जाँच करने की आवश्यकता होगी क्योंकि ClusterControl सर्वर आपके डेटाबेस होस्ट तक पहुँचने में सक्षम नहीं है।
फिर, परिनियोजन प्रक्रिया प्रारंभ करने के लिए परिनियोजन पर क्लिक करें।
आप गतिविधि मॉनीटर में परिनियोजन प्रगति को ट्रैक कर सकते हैं।
याद रखें कि परिनियोजन केवल पहला कदम है। डेटाबेस को संचालित करने के लिए आपको अपने होस्ट, डेटाबेस इंस्टेंस, क्वेरीज़ के प्रदर्शन की निगरानी करने और बैकअप प्रबंधित करने, विफलताओं और अन्य विसंगतियों को ठीक करने, प्रॉक्सी, अपग्रेड आदि का प्रबंधन करने की आवश्यकता होती है। ClusterControl आपके लिए इन सभी पहलुओं का प्रबंधन कर सकता है, इसलिए इसे आज़माएं और हमें बताएं कि आप कैसे आगे बढ़ते हैं।