Kami sering mendapat pertanyaan tentang cara menyiapkan kluster Galera hanya dengan 2 node.
Dokumentasi dengan jelas menyatakan Anda harus memiliki setidaknya 3 node Galera untuk menghindari partisi jaringan. Tetapi ada beberapa alasan yang sah untuk mempertimbangkan penyebaran 2 node, misalnya, jika Anda ingin mencapai ketersediaan database yang tinggi tetapi memiliki anggaran terbatas untuk dibelanjakan pada node database ketiga. Atau mungkin Anda menjalankan Galera di lingkungan pengembangan/kotak pasir dan lebih memilih penyiapan minimal.
Galera mengimplementasikan algoritme berbasis kuorum untuk memilih komponen utama yang digunakan untuk menegakkan konsistensi. Komponen utama harus memiliki suara mayoritas, sehingga dalam sistem 2 node, tidak akan ada mayoritas yang mengakibatkan split brain. Untungnya, dimungkinkan untuk menambahkan garbd (Galera Arbitrator Daemon), yang merupakan daemon stateless ringan yang dapat bertindak sebagai simpul ganjil. Kegagalan arbiter tidak memengaruhi operasi cluster dan instance baru dapat disambungkan kembali ke cluster kapan saja. Mungkin ada beberapa arbiter di cluster.
ClusterControl memiliki dukungan untuk men-deploy garbd pada host non-database.
Biasanya cluster Galera membutuhkan setidaknya tiga host untuk berfungsi penuh, namun, pada waktu penerapan, dua node sudah cukup untuk membuat komponen utama. Berikut langkah-langkahnya:
- Menerapkan kluster Galera dari dua node,
- Setelah cluster di-deploy oleh ClusterControl, tambahkan garbd pada node ClusterControl.
Anda harus menyelesaikan pengaturan di bawah ini:
Menerapkan Gugus Galera
Buka bagian ClusterControl Deploy untuk menerapkan cluster.
Setelah memilih teknologi yang ingin kita gunakan, kita harus menentukan User, Key atau Password dan port untuk terhubung dengan SSH ke host kita. Kami juga memerlukan nama untuk cluster baru kami dan jika kami ingin ClusterControl menginstal perangkat lunak dan konfigurasi yang sesuai untuk kami.
Setelah mengatur informasi akses SSH, kita harus memilih vendor/versi dan kita harus menentukan password admin database, datadir dan port. Kami juga dapat menentukan repositori mana yang akan digunakan.
Meskipun ClusterControl memperingatkan Anda bahwa cluster Galera membutuhkan jumlah node yang ganjil, hanya tambahkan dua node ke cluster tersebut.
Menerapkan kluster Galera akan memicu tugas ClusterControl yang dapat dipantau di halaman Tugas.
Instal Garbd
Setelah penerapan selesai, instal garbd pada host ClusterControl. Kami memiliki opsi untuk menyebarkan garbd dari ClusterControl, tetapi opsi ini tidak akan berfungsi jika kami ingin menerapkannya di server ClusterControl yang sama. Ini untuk menghindari beberapa masalah yang terkait dengan versi database dan dependensi paket.
Jadi, kita harus menginstalnya secara manual, lalu mengimpor garbd ke ClusterControl.
Mari kita lihat instalasi manual Percona Garbd di CentOS 7.
Buat file repositori 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
Kemudian, instal paket garbd Percona XtraDB Cluster:
$ yum install Percona-XtraDB-Cluster-garbd-57
Sekarang, kita perlu mengkonfigurasi garbd. Untuk ini, kita perlu mengedit file /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=""
Ubah parameter GALERA_NODES dan GALERA_GROUP sesuai dengan konfigurasi node Galera. Kami juga perlu menghapus baris # HAPUS INI SETELAH KONFIGURASI sebelum memulai layanan.
Dan sekarang, kita dapat memulai layanan garb:
$ service garb start
Redirecting to /bin/systemctl start garb.service
Sekarang, kita dapat mengimpor garbd baru ke ClusterControl.
Buka ClusterControl -> Pilih Cluster -> Tambahkan Load Balancer.
Kemudian, pilih bagian Garbd dan Impor Garbd.
Di sini kita hanya perlu menentukan nama host atau Alamat IP dan port Garbd baru.
Mengimpor garbd akan memicu pekerjaan ClusterControl yang dapat dipantau di halaman Pekerjaan. Setelah selesai, Anda dapat memverifikasi garbd sedang berjalan dengan ikon centang hijau di bilah atas:
Itu dia!
Cluster Galera dua simpul minimal kami sekarang sudah siap!