- vừa được xem lúc

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

0 0 1

Người đăng: TruongItt

Theo Viblo Asia

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 !!!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Backup và Restore Elasticsearch snapshot với AWS S3 trong Kubernetes

Ở công ty mình vừa có mấy task devops liên quan đến scaling, clustering Elasticsearch nên viết lại đề phòng sau này cần dùng. Có một task là chuyển dữ liệu từ single-node Elasticsearch cũ lên cluster mới.

0 0 59

- vừa được xem lúc

[Paper Explain] Clustering trong Computer Vision: Hướng đi mới thay thế CNN và Transformer?

Tóm tắt. Ảnh là gì và làm thế nào để trích xuất features.

0 0 33

- vừa được xem lúc

Thích nghi để phát triển đối với sinh viên mới ra trường

Một cái cốc muốn nhận được những giọt nước (tri thức), nó biết nó phải đứng thấp hơn những thứ đổ nước (ấm, phích) cho nó. Như tiêu đề bài viết, ở bài này mình sẽ chia sẽ những gì mình phải đối mặt sa

0 0 44

- vừa được xem lúc

[Linux] Làm thế nào backup tự động hằng ngày database Mysql hoặc Mariadb với MySQLDump

Chào 500 anh em yêu tech. Lại là mình đây, lâu rồi chưa có bài viết nào mới chia sẻ với anh em.

0 0 29

- vừa được xem lúc

Tối ưu hóa Hiệu suất Backend: Biến API Chậm Thành Siêu Tốc

Tối ưu hóa Hiệu suất Backend: Biến API Chậm Thành Siêu Tốc. Hãy tưởng tượng API của bạn phản hồi chậm như một chú rùa, trong khi người dùng mong đợi tốc độ của một chiếc xe đua.

0 0 6

- vừa được xem lúc

DATABASE REPLICATION VÀ CÀI ĐẶT DATABASE REPLICATION TRONG MYSQL DATABASE

Một kỹ thuật trong thiết kế hệ thống công nghệ thông tin, giúp tăng khả năng chịu tải của cở sở dữ liệu. Để giải quyết vấn đề này chúng ta có khá là nhiều cách nhưng trong bài viết này mình sẽ tập tru

0 0 35