Cara mengatur Percona Cluster dengan HAproxy Loadbalancer di CentOS 7

Posted on

[ad_1] Cara mengatur Percona Cluster dengan HAproxy Loadbalancer di CentOS 7

Kami sebelumnya menunjukkan cara mengatur cluster MariaDB Galera dengan HAproxy, dan hari ini kami akan melakukan pengaturan serupa dengan distribusi MySQL Percona. Percona adalah perusahaan dengan keahlian mendalam di MySQL dan MongoDB, dan mereka membangun sendiri distribusi database ini serta mesin penyimpanan untuk kedua database. Hari ini kita hanya akan fokus pada MySQL dan bukan pada penawaran MongoDB perusahaan.

Menyiapkan host, firewall, dan repositori

Pertama mulai dengan mengatur file host. Kami memiliki tiga node untuk cluster Percona dan satu node untuk HAproxy. File host saya di keempat server memiliki empat baris ini:

10.17.0.8 centos-percona01
10.17.0.9 centos-percona02
10.17.0.10 centos-percona03
10.17.0.11 centos-haproxy

Langkah selanjutnya memungkinkan kita untuk memulai firewall di semua host kecuali yang HAproxy. Yang itu membutuhkan pengaturan yang berbeda, dan kami akan melakukannya. Pertama mari kita mulai firewall pada ketiga node percona.

systemctl start firewalld

Kemudian kami mengizinkan layanan mysql. Pecona adalah distribusi mysql sehingga menggunakan port yang sama dengan mysql.

firewall-cmd --zone=public --add-service=mysql --permanent

Kemudian kami menambahkan port lain yang diperlukan:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent

firewall-cmd --zone=public --add-port=9200/tcp --permanent
 

dan muat ulang firewall

 firewall-cmd --reload

Setelah ini selesai, langkah selanjutnya adalah menginstal rilis epel

yum instal epel-release

Kemudian kami menginstal socat dari repositori EPEL

yum install socat

Dan kemudian kami menghapus mariadb-libs karena bertentangan dengan percona

yum remove mariadb-libs

Pemasangan Percona

Kita perlu menambahkan repositori yang berisi percona

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

Sekarang kita dapat menginstal cluster percona dan semua dependensi lainnya

yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc

dan mulai mysql

systemctl start mysql

Hal pertama yang kita lakukan di semua server mysql adalah menjalankan skrip mysql_secure_installation. Jadi mari kita lakukan.

mysql_secure_installation

Anda harus memasukkan kata sandi root baru Anda dan menjawab semua pertanyaan.

Setelah selesai, login ke akun root Anda

mysql -u root -p

enter password

dan buat sstuser cluster Anda

mysql> create user sstuser@'%' identified by 'strongpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to sstuser@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

Setelah ini kita perlu menghentikan Mysql untuk mengedit file konfigurasi.

systemctl stop mysql

nano /etc/my.cnf

Dalam konfigurasi, temukan baris-baris itu dan buat mereka terlihat persis seperti ini, cukup ubah kata sandi Anda dan ubah nama simpul dan alamat simpul menjadi nama host Anda untuk setiap server.

wsrep_cluster_address = gcomm://centos-percona01,centos-percona02,centos-percona03
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = centos-percona01
wsrep_node_address = centos-percona01
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:strongpassword

Perhatikan bahwa baris pertama di server pertama (centos-percona01) bisa kosong, seperti ini:

wsrep_cluster_address = gcomm://

Setelah pengaturan, kita perlu mem-bootstrap node pertama dan kemudian biasanya memulai yang kedua dan ketiga.

Saat pertama kali menjalankan server

systemctl start mysql@bootstrap

Pada penampilan kedua dan ketiga

systemctl start mysql

Selanjutnya kita perlu menguji apakah cluster berfungsi atau tidak.

mysql -u root -p

Masukkan kata sandi Anda

Dan kemudian jalankan perintah ini:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Mereka harus menerima output Anda sebagai:

status pengujian klaster wsrep

Dengan ini, pengaturan cluster berakhir.

Menyiapkan HAproxy

Pertama, kita perlu menginstal clustercheck pada semua node cluster agar cluster dapat dilayani oleh HAproxy. Ayo dapatkan skripnya dengan wget

wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck

Skrip harus dapat dieksekusi dan dipindahkan ke salah satu direktori $PATH Anda.

chmod +x clustercheck

mv clustercheck /usr/bin/

Sekarang kita juga membutuhkan mysqlchk, yang tersedia dalam paket xinetd:

yum install xinetd

Selanjutnya, kita pindahkan kreasi pengguna clustercheck di database. Kita bisa mengetik ini di node pertama saja

mysql -u root -p

mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';

exit;

Selanjutnya kita dapat memeriksa apakah Clustercheck berfungsi seperti yang diharapkan:

[root@centos-percona01 ~]# clustercheck
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40

Percona XtraDB Cluster Node is synced.

Lalu kita pergi untuk mengkonfigurasi xinetd, xinetd harus ditambahkan ke daftar layanan.

nano /etc/services

Kami menggunakan CTRL-W untuk menemukan bagian di mana port adalah 9200, kemudian memuji layanan yang menggunakan port itu dan menambahkan baris baru sebagai gantinya. Seharusnya seperti ini:

mysqlchk 9200/tcp # mysqlchk
#wap-wsp 9200/tcp # WAP connectionless session service
#wap-wsp 9200/udp # WAP connectionless session service

Setelah menyelesaikan pekerjaan, kami menyimpan. Perhatikan bahwa semua node cluster kecuali HAproxy harus melakukan ini.

Sekarang saatnya login ke server HAporoxy. Pertama kita perlu membuat cadangan konfigurasi proxy kita.

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

Kemudian kita membuat contoh baru dari batu tulis

nano /etc/haproxy/haproxy.cfg

Kita dapat menyalin konfigurasi HAproxy dari sini kecuali bahwa tiga baris ini perlu diubah:

server centos-percona01 10.132.84.186:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona02 10.132.84.141:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona03 10.132.84.67:3306 check port 9200 inter 12000 rise 3 fall 3

Bidang yang disorot harus berubah dengan nama host dan alamat Anda. Pada langkah selanjutnya, kita perlu mengatur firewall di server proxy dan memiliki port resmi yang perlu kita gunakan.

systemctl start firewalld
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=3030/tcp

Setelah itu kita perlu memuat ulang firewall

firewall-cmd --reload

Akhirnya, mulailah hiperoksia

systemctl start haproxy

Pengaturan sudah selesai, sekarang kita perlu menguji.

tes HAproxy

Mari arahkan browser ke alamat IP publik server HAproxy pada port 9000:

Statistik haproksi

Semua node sedang online. Selanjutnya, mari kita instal klien percona di server hyperproxy sehingga kita dapat mencari cluster dari sana.

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

yum install Percona-XtraDB-Cluster-client-56

Dan mari kita coba untuk melihat apakah kita dapat membuat permintaan ke server proxy ini:

mysql -u root -p -h 10.132.83.13 -P 3306 -e "select Host, User, Password from mysql.user"
Kueri simpul haproxy

Hasil

Kami telah menyiapkan cluster seimbang beban Percona XtraDB 3-node oleh HAproxy. Pengaturan ini mirip dengan artikel minggu lalu dengan MariaDB dan Galera, tetapi dengan mesin penyimpanan Percona dan tanpa WordPress. Pengaturan Percona ini dapat digunakan untuk meng-host berbagai macam kumpulan data, antara lain Anda dapat menggunakan kembali dengan WordPress seperti di artikel kami sebelumnya. Dengan itu kami mengakhiri artikel ini, terima kasih telah membaca dan semoga hari Anda menyenangkan.

[ad_2]

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *