Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Konfigurasi Ketersediaan Tinggi untuk Node ClusterControl Menggunakan CMON HA

Dalam blog kami sebelumnya, kami telah membahas ClusterControl CMON HA untuk Database Terdistribusi Ketersediaan Tinggi yang ditulis oleh Krzysztof Ksiazek dalam dua posting terpisah. Di blog ini, kami akan membahas distribusi node melalui lokal dan cloud publik (menggunakan Google Cloud Platform (GCP)).

Alasan kami menulis blog ini adalah karena kami telah menerima pertanyaan tentang bagaimana mengimplementasikan instance ketersediaan tinggi dari ClusterControl yang memiliki node CMON yang berjalan di tempat dan node CMON lainnya yang berjalan di pusat data yang berbeda (seperti cloud publik). Di blog kita sebelumnya ClusterControl CMON HA untuk Distributed Database High Availability, kita menggunakan node Galera Cluster, tapi kali ini kita akan menggunakan Replikasi MySQL menggunakan Percona Server 5.7. Pengaturan yang ideal untuk ini adalah selalu merangkum komunikasi node dari lokal Anda dan node Anda yang berada di cloud publik melalui VPN atau saluran aman.

ClusterControl CMON HA berada pada tahap awal yang menurut kami belum cukup matang. Namun, CMON HA kami mampu memberi Anda rasa fungsionalitas untuk menerapkan ClusterControl agar sangat tersedia. Mari kita lanjutkan tentang bagaimana Anda dapat menerapkan dan menyiapkan pendistribusian node melalui lokal melalui cloud publik.

Apa itu CMON?

Sebelum ke topik utama, izinkan kami memperkenalkan kepada Anda apa itu CMON. CMON adalah singkatan dari ClusterControl Controller, yang merupakan "otak utama" dari ClusterControl. Layanan backend yang melakukan otomatisasi, manajemen, pemantauan tugas penjadwalan, dan juga ketersediaan HA. Data yang dikumpulkan disimpan ke dalam database CMON, dan kami menggunakan database yang kompatibel dengan MySQL sebagai penyimpanan data.

Pengaturan Arsitektur

Beberapa dari Anda mungkin tidak mengetahui kemampuan ClusterControl yang dapat dijalankannya dan disiapkan untuk ketersediaan tinggi. Jika Anda menjalankan beberapa node ClusterControl (atau CMON), itu mungkin tanpa biaya. Anda mungkin dapat menjalankan banyak node ClusterControl kapan pun Anda membutuhkannya.

Untuk pengaturan ini, kita akan memiliki node ClusterControl di atas ClusterControl untuk membuat atau menyebarkan node database dan mengelola kegagalan otomatis setiap kali terjadi kegagalan, misalnya. Meskipun Anda dapat menggunakan MHA, Orchestrator, atau Maxscale untuk mengelola auto-failover, tetapi untuk efisiensi dan kecepatan, saya akan menggunakan ClusterControl untuk melakukan hal-hal khusus yang tidak dimiliki alat lain yang telah saya sebutkan.

Jadi mari kita lihat diagram untuk pengaturan ini:

Pengaturan berdasarkan diagram itu menunjukkan bahwa di atas CMON tiga simpul , CMON (ClusterControl) yang sedang berjalan ada di atasnya yang akan memantau failover otomatis. Kemudian, HAProxy akan dapat memuat keseimbangan antara tiga node CMON yang dipantau, di mana satu node terletak di region terpisah yang dihosting di GCP untuk blog ini. Anda mungkin memperhatikan bahwa kami tidak menyertakan Keepalive, itu karena kami tidak dapat menempatkan VIP di bawah GCP karena berada di jaringan yang berbeda.

Seperti yang mungkin telah Anda perhatikan, kami menempatkan total tiga node. CMON HA mensyaratkan bahwa kita membutuhkan setidaknya 3 node untuk melanjutkan proses pemungutan suara atau disebut kuorum. Jadi untuk penyiapan ini, kami mengharuskan Anda memiliki setidaknya 3 node agar ketersediaan lebih tinggi.

Menerapkan Node ClusterControl Lokal

Pada bagian ini, kami berharap Anda telah menyiapkan atau menginstal UI ClusterControl yang akan kami gunakan untuk menerapkan cluster Replikasi MySQL tiga node menggunakan Server Percona.

Mari kita buat cluster terlebih dahulu dengan menerapkan Replikasi MySQL baru seperti yang ditunjukkan di bawah ini.

Perhatikan bahwa saya menggunakan Percona Server 5.7 di sini, yang defaultnya penyiapan oleh ClusterControl bekerja secara efisien.

Kemudian tentukan nama host atau IP node Anda,

Pada titik ini, kami berharap Anda telah menyiapkan dua simpul Replikasi Master/Slave yang di-host atau dijalankan di tempat. Tangkapan layar di bawah ini akan menunjukkan bagaimana simpul Anda akan terlihat:

Setup &Install ClusterControl dan Aktifkan CMON HA Pada Node Pertama

Dari blog sebelumnya ini  ClusterControl CMON HA untuk Database Terdistribusi Tinggi, kami telah memberikan langkah-langkah singkat tentang cara melakukannya. Mari turun lagi dan lakukan langkah-langkah seperti yang dinyatakan tetapi untuk pengaturan replikasi Master/Slave khusus ini.

Hal pertama yang harus dilakukan, pilih satu node yang Anda inginkan untuk menginstal ClusterControl terlebih dahulu (pada pengaturan ini, saya akhirnya menginstal terlebih dahulu pada node 192.168.70.80) dan lakukan langkah-langkah di bawah ini.

Langkah Pertama

Instal ClusterControl

$ wget http://www.severalnines.com/downloads/CMON/install-cc

$ chmod +x install-cc

$ sudo ./install-cc   # omit sudo if you run as root

Perhatikan bahwa setelah Anda diminta bahwa instance mysql saat ini terdeteksi, Anda harus membiarkan ClusterControl menggunakan mysqld yang ada berjalan karena itulah salah satu tujuan kami di sini untuk CMON HA dan untuk pengaturan ini menggunakan sudah menyiapkan MySQL.

Langkah Kedua

Ikat CMON tidak hanya untuk mengizinkan melalui localhost, tetapi juga pada alamat IP tertentu (karena kami akan mengaktifkan HA)

## edit /etc/default/CMON  and modify the line just like below or add the line if it doesn't exist

RPC_BIND_ADDRESSES="127.0.0.1,192.168.70.80"

Langkah Ketiga

Kemudian restart CMON,

service CMON restart

Langkah Empat

Instal alat CLI s9s

$ wget http://repo.severalnines.com/s9s-tools/install-s9s-tools.sh

$ chmod 755 install-s9s-tools.sh

$ ./install-s9s-tools.sh

Selama penginstalan ini, alat s9s akan menyiapkan pengguna admin yang dapat Anda gunakan saat menangani perintah s9s, seperti mengaktifkan CMON HA.

Langkah Kelima

Aktifkan CMON HA

$ s9s controller --enable-CMON-ha

Langkah Enam

Terakhir, ubah /etc/my.cnf dan tambahkan,

slave-skip-errors = 1062

di bawah bagian [mysqld]. Setelah ditambahkan, jangan lupa untuk me-restart mysql sebagai,

service mysql restart

atau

systemctl restart mysql

Saat ini, ini adalah batasan yang kami hadapi dengan CMON HA karena CMON HA mencoba memasukkan entri log ke slave, tetapi ini tidak masalah untuk saat ini.

Setup, Instal ClusterControl dan Aktifkan CMON HA Pada Node Kedua

Sesederhana itu untuk simpul pertama. Sekarang, pada node ke-2 (192.168.70.70),  kita perlu melakukan langkah yang sama, tetapi kita perlu melakukan beberapa penyesuaian pada langkah-langkah untuk memungkinkan HA ini.

Langkah Pertama

Salin konfigurasi ke simpul ke-2 (192.168.70.70) dari simpul pertama (192.168.70.80)

$ scp -r /etc/CMON* 192.168.70.70:/etc/

Langkah Kedua

Pada node ke-2, edit /etc/CMON.cnf dan pastikan bahwa host telah dikonfigurasi dengan benar. misalnya

vi /etc/CMON.cnf

Kemudian tetapkan param nama host sebagai,

nama host=192.168.70.70

Langkah Ketiga

Instal ClusterControl,

$ wget http://www.severalnines.com/downloads/CMON/install-cc

$ chmod +x install-cc

$ sudo ./install-cc   # omit sudo if you run as root

Namun, lewati instalasi CMON (atau ClusterControl Controller) setelah Anda menemukan baris ini,

=> An existing Controller installation detected!

=> A re-installation of the Controller will overwrite the /etc/CMON.cnf file

=> Install the Controller? (y/N):

Selebihnya, lakukan saja seperti yang telah Anda lakukan pada node pertama seperti mengatur nama host, menggunakan instance menjalankan mysqld yang ada, memberikan kata sandi MySQL, dan kata sandi untuk CMON Anda yang harus keduanya memiliki kata sandi yang sama dengan simpul pertama.

Langkah Empat

Instal alat CLI s9s

$ wget http://repo.severalnines.com/s9s-tools/install-s9s-tools.sh

$ chmod 755 install-s9s-tools.sh

$ ./install-s9s-tools.sh

Langkah Kelima

Salin konfigurasi yang tersisa dari simpul pertama ke simpul kedua.

$ scp -r ~/.s9s/ 192.168.70.70:/root/

$ scp /etc/s9s.conf 192.168.70.70:/etc/

$ scp /var/www/html/clustercontrol/bootstrap.php 192.168.70.70:/var/www/html/clustercontrol/

Langkah Enam

Instal paket clustercontrol-controller,

Untuk Ubuntu/Debian,

$ apt install -y clustercontrol-controller

Untuk RHEL/CentOS/Fedora,

$ yum install -y clustercontrol-controller

Langkah Tujuh

Salin file /etc/default/CMON dan ubah alamat IP untuk alamat pengikatan RPC

scp /etc/default/CMON 192.168.70.70:/etc/default

RPC_BIND_ADDRESSES="127.0.0.1,10.0.0.103"

Kemudian restart CMON sebagai berikut,

service CMON restart

Langkah Delapan

Ubah /etc/my.cnf dan tambahkan,

slave-skip-errors = 1062

di bawah bagian [mysqld]. Setelah ditambahkan, jangan lupa untuk me-restart mysql sebagai,

service mysql restart

atau

systemctl restart mysql

Saat ini, ini adalah batasan yang kami hadapi dengan CMON HA karena CMON HA mencoba memasukkan entri log ke slave, tetapi ini tidak masalah untuk saat ini.

Langkah Sembilan

Terakhir, periksa bagaimana node CMON HA terlihat,

[[email protected] ~]#  s9s controller --list --long

S VERSION    OWNER GROUP NAME            IP PORT COMMENT

l 1.7.5.3735 system admins 192.168.70.80   192.168.70.80 9501 Acting as leader.

f 1.7.5.3735 system admins 192.168.70.70   192.168.70.70 9501 Accepting heartbeats.

Total: 2 controller(s)

Menerapkan Node ClusterControl Anda di Cloud

Seperti yang telah kami sebutkan sebelumnya, pengaturan ideal untuk komunikasi adalah mengenkapsulasi paket melalui VPN atau sarana saluran aman lainnya. Jika Anda khawatir tentang cara melakukannya, periksa blog kami sebelumnya Multi-DC PostgreSQL:Menyiapkan Simpul Siaga di Lokasi-Geografis yang Berbeda Melalui VPN yang telah kami tangani bagaimana Anda dapat membuat pengaturan VPN sederhana menggunakan OpenVPN.

Jadi di bagian ini, kami berharap Anda telah menyiapkan koneksi VPN. Sekarang, yang akan kita lakukan adalah menambahkan slave yang seharusnya kita distribusikan ketersediaan CMON ke Google Cloud Platform. Untuk melakukan ini, cukup buka Add Replication Slave yang dapat ditemukan dengan mengklik ikon cluster di dekat sudut kanan. Lihat tampilannya seperti di bawah ini:

Nah, beginilah akhirnya kita:

Sekarang, karena kami memiliki budak baru yang ditambahkan yang di-host di bawah GCP, Anda mungkin perlu mengikuti lagi apa yang kami lakukan sebelumnya pada simpul ke-2. Saya akan menyampaikan kepada Anda untuk mengikuti langkah-langkah tersebut dan mengikuti petunjuk tentang cara kami melakukannya pada simpul ke-2.

Setelah Anda memilikinya dengan benar, Anda akan mendapatkan hasil berikut:

[[email protected] ~]# s9s controller --list --long

S VERSION    OWNER GROUP NAME            IP PORT COMMENT

l 1.7.5.3735 system admins 192.168.70.80   192.168.70.80 9501 Acting as leader.

f 1.7.5.3735 system admins 192.168.70.70   192.168.70.70 9501 Accepting heartbeats.

f 1.7.5.3735 system admins 10.142.0.39     10.142.0.39 9501 Accepting heartbeats.

di mana dalam node 

  • 192.168.70.80 -  (node8) dan berada di lokal saya
  • 192.168.70.70 - (node7) dan berada di lokal saya
  • 10.142.0.39  - (gnode1) dihosting di GCP dan di region berbeda

CMON HA Beraksi

Rekan saya Krzysztof Ksiazek telah menyediakan pengaturan untuk HA menggunakan HAProxy di blog ini ClusterControl CMON HA untuk Database Terdistribusi Ketersediaan Tinggi - Bagian Dua (Pengaturan Akses GUI).

Untuk mengikuti prosedur yang disebutkan di blog, pastikan Anda memiliki paket xinetd dan pathlib. Anda dapat menginstal xinetd dan pathlib sebagai berikut,

$ sudo yum install -y xinetd python-pathlib.noarch

Pastikan juga bahwa Anda telah menetapkan CMONhachk di /etc/services seperti di bawah ini:

[[email protected] ~]# grep 'CMONhachk' /etc/services 

CMONhachk       9201/tcp

dan pastikan perubahan dan mulai ulang xinetd,

service xinetd restart

Saya akan melewati prosedur Keepalive dan HAProxy dan berharap Anda telah menyiapkannya. Satu hal yang harus Anda pertimbangkan dalam penyiapan ini adalah bahwa menggunakan Keepalive tidak dapat diterapkan jika Anda menyebarkan VIP dari lokal ke jaringan cloud publik karena mereka adalah jaringan yang sama sekali berbeda.

Sekarang, mari kita lihat bagaimana reaksi CMON HA jika node sedang down. Seperti yang ditunjukkan sebelumnya, node 192.168.70.80 (node8), bertindak sebagai pemimpin seperti yang ditunjukkan di bawah ini:

Di mana database node master juga menunjukkan node8 adalah master dari tampilan topologi ClusterControl . Mari kita coba untuk membunuh node8 dan lihat bagaimana CMON HA berjalan,

Seperti yang Anda lihat, gnode1 (node ​​GCP) mengambil alih sebagai pemimpin saat node8 turun. Memeriksa hasil HAProxy sebagai berikut,

dan node ClusterControl kami menunjukkan bahwa node8 sedang down, sedangkan node GCP mengambil sebagai master,

Terakhir, mengakses node HAProxy saya yang berjalan di host 192.168.10.100 di port 81 menunjukkan UI berikut,

Kesimpulan

ClusterControl CMON HA kami telah ada sejak versi 1.7.2 tetapi juga menjadi tantangan bagi kami karena berbagai pertanyaan dan preferensi tentang cara menyebarkan ini seperti menggunakan Replikasi MySQL melalui Galera Cluster.

CMON HA kami belum matang tetapi sekarang siap untuk memenuhi kebutuhan ketersediaan tinggi Anda. Pendekatan yang berbeda dapat diterapkan selama pemeriksaan Anda akan menentukan node yang tepat yang aktif dan berjalan.

Kami mendorong Anda untuk menyiapkan dan menerapkan menggunakan CMON HA dan memberi tahu kami seberapa sesuai dengan kebutuhan Anda atau jika masalah berlanjut, beri tahu kami cara membantu Anda memenuhi kebutuhan ketersediaan tinggi Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL untuk mendapatkan nama kolom?

  2. Cara Mengubah Kata Sandi Root MySQL atau MariaDB di Linux

  3. Bagaimana cara mencari banyak kolom di MySQL?

  4. Skrip Bash untuk memasukkan nilai di MySQL

  5. Mengapa jumlah baris yang diperkirakan sangat berbeda dalam hasil phpmyadmin?