Lompat ke konten Lompat ke sidebar Lompat ke footer

Panduan Setup MariaDB Galera Cluster untuk Ketersediaan Data Server High Availability

 

Dalam arsitektur infrastruktur IT berskala enterprise, downtime pada basis data (database) dapat berakibat fatal terhadap kelangsungan operasional dan reputasi bisnis. Oleh karena itu, membangun sistem dengan High Availability (HA) atau ketersediaan tingkat tinggi bukan lagi sekadar pilihan, melainkan standar industri yang wajib diimplementasikan.

Salah satu solusi paling tangguh, efisien, dan populer untuk mewujudkan database relasional yang tangguh adalah MariaDB Galera Cluster.

Berbeda dengan replikasi Master-Slave tradisional, Galera Cluster menggunakan arsitektur Synchronous Multi-Master. Artinya, aplikasi Anda dapat melakukan operasi baca (read) maupun tulis (write) ke sembarang node di dalam klaster, dan transaksi tersebut akan direplikasi ke seluruh node lainnya secara real-time tanpa delay. Jika satu server mati, server lain akan langsung mengambil alih tanpa ada data yang hilang.

Artikel ini akan memandu Anda secara teknis dan profesional mengenai langkah-langkah setup MariaDB Galera Cluster.

Prasyarat Infrastruktur (Prerequisites)

Sebelum memulai konfigurasi, pastikan lingkungan server Anda telah memenuhi kriteria berikut:

  1. Minimal 3 Node Server: Anda wajib menggunakan ganjil (minimal 3 server) untuk menghindari insiden Split-Brain (kondisi di mana klaster terbelah dan tidak bisa menentukan siapa pemegang data master). Dalam panduan ini, kita asumsikan 3 server (Node 1, Node 2, Node 3).

  2. Sistem Operasi yang Sama: Sangat disarankan menggunakan distribusi Linux yang identik pada ketiga server (misalnya Ubuntu 22.04 LTS atau AlmaLinux 9).

  3. Konektivitas Jaringan Lokal (Private Network): Ketiga node harus dapat saling berkomunikasi melalui IP Privat untuk latensi rendah dan keamanan.

  4. Konfigurasi Firewall: Pastikan port berikut terbuka di seluruh node:

    • 3306: Port standar MariaDB/MySQL.

    • 4567: Komunikasi replikasi Galera antar node (TCP/UDP).

    • 4568: Port untuk Incremental State Transfer (IST).

    • 4444: Port untuk State Snapshot Transfer (SST).

Langkah-Langkah Konfigurasi MariaDB Galera Cluster

Prosedur berikut harus dilakukan secara berurutan agar sinkronisasi awal (bootstrapping) berjalan dengan sukses.

1.Instalasi Paket MariaDB dan Galera:Lakukan di Node 1, Node 2, dan Node 3.

Langkah pertama adalah menginstal mesin database dan pustaka sinkronisasi Galera di ketiga server. Jika Anda menggunakan sistem operasi berbasis Debian/Ubuntu, jalankan perintah berikut pada terminal:

Bash
sudo apt update
sudo apt install mariadb-server galera-4 rsync -y

Setelah instalasi selesai, hentikan layanan MariaDB sementara di semua node agar kita dapat melakukan konfigurasi parameter klaster:

Bash
sudo systemctl stop mariadb
2.Konfigurasi Node Pertama (Primary Node):Konfigurasi klaster utama.

Masuk ke Node 1, lalu buat atau edit file konfigurasi Galera. Biasanya terletak di direktori /etc/mysql/mariadb.conf.d/60-galera.cnf atau Anda dapat menambahkannya di akhir file /etc/mysql/my.cnf.

Tambahkan parameter berikut dan sesuaikan IP dengan infrastruktur Anda:

Ini, TOML
[galera]
# Konfigurasi dasar MariaDB
bind-address = 0.0.0.0
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2

# Konfigurasi Galera
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "Galera_Production_Cluster"

# Masukkan IP Privat dari ketiga Node
wsrep_cluster_address = "gcomm://192.168.1.11,192.168.1.12,192.168.1.13"

# Identitas Node 1
wsrep_node_address = "192.168.1.11"
wsrep_node_name = "Node1"

# Metode transfer data (SST)
wsrep_sst_method = rsync
3.Bootstrapping Cluster (Hanya di Node 1):Inisiasi klaster dari titik nol.

Bootstrapping hanya boleh dilakukan satu kali pada node pertama saat klaster baru dibangun. Proses ini memberi tahu Galera bahwa Node 1 adalah sumber kebenaran pertama (Primary Component) yang akan menyebarkan data ke node lainnya.

Jalankan perintah khusus inisiasi Galera pada Node 1:

Bash
sudo galera_new_cluster

Pastikan layanan berjalan tanpa error dengan mengecek statusnya:

Bash
sudo systemctl status mariadb
4.Konfigurasi dan Eksekusi Node 2 & Node 3:Bergabung ke klaster yang sudah aktif.

Salin seluruh teks konfigurasi dari Langkah 2 dan paste ke dalam file konfigurasi di Node 2 dan Node 3.

Penting: Anda hanya perlu mengubah identitas node di bagian bawah skrip sesuai dengan server masing-masing.

Contoh untuk Node 2:

Ini, TOML
wsrep_node_address = "192.168.1.12"
wsrep_node_name = "Node2"

Setelah konfigurasi disimpan, jalankan layanan MariaDB secara normal (tanpa perintah bootstrap) pada Node 2, lalu disusul Node 3:

Bash
sudo systemctl start mariadb
sudo systemctl enable mariadb

Saat service dijalankan, Node 2 dan 3 akan otomatis menghubungi Node 1 untuk melakukan kloning data (SST).

5.Verifikasi Status Klaster:Memastikan replikasi berjalan normal.

Langkah terakhir adalah memvalidasi apakah ketiga node telah terhubung sempurna. Masuk ke prompt MariaDB di salah satu node:

Bash
sudo mysql -u root -p

Kemudian jalankan query pengecekan status Galera:

SQL
SHOW STATUS LIKE 'wsrep_cluster_size';

Jika konfigurasi berhasil, Value (nilai) yang ditampilkan harus menunjukkan angka 3, yang merepresentasikan jumlah node aktif di dalam klaster Anda.

Kesimpulan

Mengimplementasikan MariaDB Galera Cluster adalah investasi arsitektural yang krusial untuk mencegah kelumpuhan sistem IT Anda. Dengan arsitektur Multi-Master, setiap server database memiliki salinan data yang identik secara real-time. Jika terjadi kegagalan perangkat keras ( hardware failure) pada salah satu server, aplikasi Anda dapat dengan mudah dialihkan ke server lain tanpa menghentikan pelayanan bisnis.

Posting Komentar untuk "Panduan Setup MariaDB Galera Cluster untuk Ketersediaan Data Server High Availability"