0

Hướng Dẫn Cấu Hình MariaDB Galera Cluster và MaxScale

Minh họa

Bài viết này hướng dẫn bạn cách thiết lập một cụm MariaDB sử dụng Galera để đảm bảo tính sẵn sàng cao và tích hợp MaxScale để quản lý tải và giám sát. Hãy thực hiện các bước dưới đây!

1. Chuẩn bị môi trường

Cài đặt các công cụ mạng cần thiết:

  • Hệ điều hành: Ubuntu 22.04
  • Máy chủ:
    • core-1: 192.168.65.11 (Leader)
    • core-2: 192.168.65.12 (Replica)
    • core-3: 192.168.65.13 (Replica)
apt install -y net-tools telnet traceroute

2. Cài đặt và cấu hình MariaDB với Galera

Tham khảo tài liệu cài đặt: MariaDB Installation.

Cài đặt MariaDB và các gói cần thiết:

wget -qO- https://www.mongodb.org/static/pgp/server-8.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-8.0.asc
sudo apt-get install gnupg
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update
sudo apt-get install libssl1.1
sudo apt-get install -y mongodb-mongosh
mongosh --version
sudo apt install mongodb-org -y
sudo apt update

Kiểm tra thư mục cấu hình MariaDB:

ls /etc/mysql

Tạo và chỉnh sửa tệp cấu hình Galera tại /etc/mysql/conf.d/gelara.cnf:

vi /etc/mysql/conf.d/gelara.cnf

Thêm nội dung sau:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Cluster Configuration
wsrep_cluster_name="mariadb-cluster-devopseduvn"
wsrep_cluster_address="gcomm://192.168.65.11,192.168.65.12,192.168.65.13"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Node Configuration
wsrep_node_address="192.168.65.11"     # 192.168.65.12 cho server 2, 192.168.65.13 cho server 3
wsrep_node_name="core-1"    # core-2 cho server 2, core-3 cho server 3

Khởi tạo cụm trên server 1:

galera_new_cluster

Kiểm tra kích thước cụm:

mysql -u root -e "show status like 'wsrep_cluster_size'"

Khởi động lại dịch vụ trên server 2 và 3:

systemctl restart mariadb

Kết quả: mariadb join clutster sucess

Tạo database và bảng để kiểm tra:

mysql
create database truongitt;
use truongitt;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com');

3. Cấu hình quyền truy cập

Chỉnh sửa tệp /etc/mysql/mariadb.conf.d/50-server.cnf:

vi /etc/mysql/mariadb.conf.d/50-server.cnf

thay đổi host: 127.0.0.1 thành 0.0.0.0

Khởi động lại dịch vụ:

systemctl restart mariadb

Tạo user và cấp quyền:

create user 'truongitt'@'%' identified by 'truongitt123';
GRANT REPLICATION CLIENT ON *.* TO 'truongitt'@'%';
GRANT REPLICATION SLAVE ADMIN ON *.* TO 'truongitt'@'%';
GRANT REPLICA MONITOR ON *.* TO 'truongitt'@'%';
FLUSH PRIVILEGES;

4. Cài đặt và cấu hình MaxScale

Tải và cài đặt MaxScale:

wget https://dlm.mariadb.com/2344079/MaxScale/6.4.1/packages/ubuntu/jammy/x86_64/maxscale-6.4.1-1.ubuntu.jammy.x86_64.deb
dpkg -i maxscale-6.4.1-1.ubuntu.jammy.x86_64.deb
cp /etc/maxscale.cnf /etc/maxscale.cnf.org

Chỉnh sửa tệp /etc/maxscale.cnf trên cả 3 server:

vi /etc/maxscale.cnf

Thêm nội dung sau:

[server1]
type=server
address=192.168.65.11
port=3306
protocol=MariaDBBackend

[server2]
type=server
address=192.168.65.12
port=3306
protocol=MariaDBBackend

[server3]
type=server
address=192.168.65.13
port=3306
protocol=MariaDBBackend

[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2,server3
user=truongitt
password=truongitt123
monitor_interval=2000

[Read-Only-Service]
type=service
router=readconnroute
servers=server1
user=truongitt
password=truongitt123
router_options=slave

[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2,server3
user=truongitt
password=truongitt123

Khởi động và kiểm tra trạng thái MaxScale:

systemctl start maxscale
systemctl status maxscale

Liệt kê trạng thái server:

maxctrl list servers

5. Kiểm tra Failover

Tắt server 2 để kiểm tra failover:

root@core-2:~# reboot

Kiểm tra trạng thái sau khi reboot:

┌─────────┬───────────────┬──────┬─────────────┬─────────────────┬──────┐
│ Server  │ Address       │ Port │ Connections │ State           │ GTID │
├─────────┼───────────────┼──────┼─────────────┼─────────────────┼──────┤
│ server1 │ 192.168.65.11 │ 3306 │ 0           │ Running         │      │
├─────────┼───────────────┼──────┼─────────────┼─────────────────┼──────┤
│ server2 │ 192.168.65.12 │ 3306 │ 0           │ Master, Running │      │
├─────────┼───────────────┼──────┼─────────────┼─────────────────┼──────┤
│ server3 │ 192.168.65.13 │ 3306 │ 0           │ Running         │      │
└─────────┴───────────────┴──────┴─────────────┴─────────────────┴──────┘

maxcale sucess

6. Hoàn thành

Chúc mừng bạn hoàn thành cấu hình MariaDB Galera Cluster với MaxScale. Mô hình này cung cấp tính sẵn sàng cao nhờ replication Galera và cân bằng tải hiệu quả với MaxScale. Hãy tiếp tục giám sát và tối ưu hóa hệ thống để đảm bảo hiệu suất ổn định !!!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí