Galera Cluster High Availability Dengan HAProxy di Ubuntu 18.04 – Dalam panduan terbaru kami tentang Cara Mengatur Cluster MariaDB Galera di Ubuntu 18.04 dengan HAProxy, kami membahas semua langkah untuk menginstal dan mengkonfigurasi Cluster Galera di Ubuntu 18.04. Dalam panduan ini, kami akan memperkenalkan load balancing dari Cluster Galera yang dibuat menggunakan HAProxy.

Memiliki tiga atau lebih node cluster Galera, akan sulit untuk memiliki load balancing yang benar tanpa menggunakan load balancer seperti HAProxy. Ini juga berarti Anda harus mengonfigurasi aplikasi Anda untuk mengarah ke salah satu node Galera, dan ini menyebabkan satu titik kegagalan dalam infrastruktur Anda.

Dengan menyiapkan HAproxy, Anda akan memastikan layanan Database Anda selalu tersedia, dengan kontrol pusat node Cluster Galera untuk hal-hal seperti pemeliharaan. Jika Anda ingin menghapus salah satu node, Anda hanya perlu mengubah konfigurasi backend HAProxy.

Galera Cluster High Availability With HAProxy

Kami akan mulai dengan memastikan paket HAProxy diinstal pada sistem Ubuntu 18.04 kami. Perbarui paket sistem Anda dan instal HAProxy.

Ubuntu / Debian

sudo apt-get update 
sudo apt-get install haproxy

Konfirmasikan versi HAProxy yang diinstal:

$ apt policy haproxy $ rpm -qi haproxy

Konfigurasi HAProxy untuk Memuat Keseimbangan Galera Cluster
Sekarang HAProxy telah diinstal, konfigurasikan haproxy untuk melakukan load balancing server database cluster Galera di lapisan TCP. Konfigurasikan file / etc / hosts dengan node Galera:

$ sudo vim /etc/hosts
10.0.101.10 galera-db-01
10.0.102.10 galera-db-02
10.0.101.13 galera-db-03

Kebijakan Pemilihan Tujuan HAProxy

HAProxy akan memilih server backend untuk merutekan lalu lintas bergantung pada kebijakan rute tujuan yang dikonfigurasi. Ini adalah daftar lengkap Kebijakan Pemilihan Destinasi yang tersedia di HAProxy:

  • Round Robin Mengarahkan koneksi baru ke tujuan berikutnya dalam daftar urutan melingkar, dimodifikasi oleh bobot server. Aktifkan dengan balance roundrobin.
  • Static Round Robin Directs new connections to the next destination in a circular order list, modified by the server’s weight. Unlike the standard implementation of round robin, in static round robin, you cannot modify the server weight on the fly. Changing the server weight requires you to restart HAProxy. Enable it with balance static-rr
  • Least Connected, Mengarahkan yang baru ke koneksi ke server dengan jumlah koneksi terkecil yang tersedia, yang disesuaikan dengan bobot server. Aktifkan dengan balance leastconn
  • First, Mengarahkan koneksi baru ke server pertama dengan slot koneksi tersedia. Mereka dipilih dari pengenal numerik terendah hingga tertinggi. Setelah server mencapai nilai maksimumnya, HAProxy pindah ke daftar berikutnya.
  • Source Tracking Pelacakan Sumber Membagi alamat IP sumber dengan berat total server yang berjalan. Memastikan bahwa koneksi klien dari IP sumber yang sama selalu menjangkau server yang sama. Aktifkan dengan sumber keseimbangan

Buka file konfigurasi utama HAProxy:

sudo vim /etc/haproxy/haproxy.cfg

Konfigurasi Anda harus memiliki pengaturan seperti di bawah ini:

# Galera Cluster Frontend configuration
frontend galera_cluster_frontend
bind 10.131.69.129:3306
mode tcp
option tcplog
default_backend galera_cluster_backend
# Galera Cluster Backend configuration
backend galera_cluster_backend
mode tcp
option tcpka
balance leastconn
server db-server-01 galera-db-01:3306  check weight 1
server db-server-02 galera-db-02:3306  check weight 1
server db-server-03 galera-db-03:3306  check weight 1

Berikut Penjelasan Penggunaan Opsi :

balance – Ini mendefinisikan kebijakan pemilihan tujuan yang digunakan untuk memilih server untuk merutekan koneksi masuk.

mode tcp – Galera Cluster menggunakan jenis koneksi TCP. option tcpka – Mengaktifkan fungsi keepalive untuk memelihara koneksi TCP.

option mysql-check user <username> – Tentukan pemeriksaan server database backend, untuk menentukan apakah node sedang beroperasi. Ini dibuat di Cara Mengatur MariaDB Galera Cluster di Ubuntu 18.04 dengan HAProxy server <server-name> <IP_address> check weight 1 – Mendefinisikan node yang Anda inginkan untuk digunakan HAProxy dalam koneksi routing. Mulai ulang haproxy dan uji koneksi:

sudo systemctl restart haproxy

Menguji Akses DB Melalui HAProxy

Pastikan bahwa HAProxy memiliki akses pada port 3306:

# ss -tunelp | grep 3306
tcp    LISTEN   0        128         10.131.69.129:3306          0.0.0.0:*       users:(("haproxy",pid=24226,fd=5)) ino:87300 sk:2 <->  

Coba sambungkan dari HAProxy ke port 3306:

root@haproxy-01:~# mysql -u test_user -p -h 10.131.69.129
Enter password: 
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 743
Server version: 10.3.7-MariaDB-1:10.3.7+maria~bionic-log mariadb.org binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| galera_test        |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)