GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Setup 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 yang memiliki keahlian mendalam dengan MySQL dan MongoDB, dan mereka membuat sendiri distribusi database tersebut serta mesin penyimpanan untuk kedua database tersebut. Hari ini kami hanya akan berkonsentrasi pada MySQL, dan bukan pada penawaran MongoDB dari perusahaan ini.

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 tersebut:

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

Selanjutnya mari kita setup firewalld pada semua host kecuali HAproxy satu. Yang itu akan memerlukan pengaturan yang berbeda dan kami akan melakukan yang terakhir. Pertama mari kita mulai firewalld pada ketiga node percona.

systemctl start firewalld 

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

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

Selanjutnya kita tambahkan port lain yang dibutuhkan:

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 selesai, selanjutnya kita perlu menginstal epel release

yum install epel-release

Selanjutnya kita install socat dari repositori EPEL

yum install socat 

Dan kemudian kami menghapus mariadb-libs karena bertentangan dengan percona

yum remove mariadb-libs 

Memasang dan menyiapkan 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 percona cluster 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 dan menjawab y untuk semua pertanyaan.

Setelah selesai, masuk 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 harus menghentikan MySQL untuk mengedit file konfigurasi.

systemctl stop mysql

nano /etc/my.cnf 

Dalam konfigurasi temukan baris-baris tersebut dan buat mereka terlihat persis seperti ini, cukup ubah kata sandi Anda sendiri dan ubah nama node dan alamat node 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 konfigurasi selesai, kita perlu mem-bootstrap node pertama, lalu biasanya memulai yang kedua dan ketiga.

Saat server pertama dijalankan

systemctl start mysql@bootstrap 

pada putaran kedua dan ketiga

systemctl start mysql 

Selanjutnya kita perlu menguji apakah cluster berfungsi.

mysql -u root -p

masukkan kata sandi

Dan kemudian jalankan perintah ini:

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size'; 

Mereka akan memberi Anda hasil seperti ini:

Dengan penyiapan cluster ini selesai.

Pengaturan proxy HA

Pertama kita perlu clustercheck diinstal pada semua node cluster sehingga cluster dapat diservis dengan HAproxy. Mari dapatkan skrip dengan wget

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

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

chmod +x clustercheck

mv clustercheck /usr/bin/ 

Sekarang kita juga membutuhkan mysqlchk yang termasuk dalam paket xinetd:

yum install xinetd 

Selanjutnya kita pindah create clustercheck user pada database. Kita dapat mengetik ini hanya pada simpul pertama

mysql -u root -p

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

exit; 

Selanjutnya kita dapat menguji 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. 

Selanjutnya kita pindah ke konfigurasi xinetd, xinetd perlu ditambahkan ke daftar layanan.

nano /etc/services 

Kami menggunakan CTRL-W untuk menemukan bagian di mana port 9200, lalu kami merekomendasikan layanan yang menggunakan port itu dan sebagai gantinya menambahkan baris baru. Seharusnya terlihat seperti ini:

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

Setelah selesai kita simpan. Perhatikan bahwa semua node cluster kecuali HAproxy harus melakukan ini.

Sekarang saatnya untuk masuk ke server HAporoxy kami. Pertama kita perlu membuat cadangan konfigurasi haproxy.

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

Kemudian kami akan membuat yang baru dari batu tulis yang bersih

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 

Bagian yang disorot perlu diubah dengan nama host dan alamat Anda. Selanjutnya kita perlu memulai firewalld di server haproxy dan memiliki izinkan port 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, mulai haproxy

systemctl start haproxy 

Penyiapan telah selesai, sekarang kita perlu menguji.

Menguji HAproxy

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

Semua node sedang online. Selanjutnya mari kita instal klien percona di server haproxy sehingga kita dapat mencoba meng-query 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 memiliki kueri dari server haproxy ini:

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

Kesimpulan

Kami telah menyiapkan cluster 3 node dari beban Percona XtraDB yang diseimbangkan oleh HAproxy. Ini adalah pengaturan yang mirip seperti 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 menggunakannya lagi dengan WordPress, seperti di artikel kami sebelumnya. Dengan itu kami menyimpulkan artikel ini, terima kasih telah membaca dan semoga hari Anda menyenangkan.


Cent OS
  1. Cara Menginstal Percona XtraDB Cluster di CentOS 7

  2. Cara Setup Pure-FTPD dengan MySQL di CentOS &RedHat

  3. Bagaimana cara mengganti MySQL dengan MariaDB di CentOS 6

  1. Cara Menginstal Server Percona di CentOS 7

  2. Cara Setup Opencart di Rocky Linux/Centos 8 Dengan Apache, PHP, Mysql (LAMP Stack)

  3. Cara mengatur replikasi MySQL di CentOS

  1. Cara Setup Server FTP dengan VSFTPD di CentOS 7

  2. Cara Setup Server FTP dengan VSFTPD di CentOS 8

  3. Cara Setup Riak KV NoSQL Database Cluster di CentOS 7