Cách thiết lập MariaDB Galera Cluster trên Ubuntu 20.04

theanh

Administrator
Nhân viên
Cân bằng tải và cụm rất quan trọng trong môi trường sản xuất để đạt được tính khả dụng cao cho hệ thống cơ sở dữ liệu của bạn. MariaDB Galera Cluster cung cấp giải pháp cụm đa chủ và hỗ trợ các công cụ lưu trữ XtraDB/InnoDB. Cụm đa chủ cho phép đọc và ghi vào bất kỳ nút cụm nào. Nếu bạn sửa đổi dữ liệu trên bất kỳ nút nào, chúng sẽ được sao chép vào tất cả các nút khác. Cụm Galera cũng hỗ trợ môi trường đám mây và WAN để xây dựng cụm phân tán trên nhiều quốc gia và châu lục.

Trong bài đăng này, chúng tôi sẽ chỉ cách thiết lập cụm MariaDB Galera ba nút trên máy chủ Ubuntu 20.04.

Điều kiện tiên quyết​

  • Ba máy chủ chạy Ubuntu 20.04.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước khi bắt đầu, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Sau khi máy chủ của bạn được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt MariaDB Server​

Trước tiên, bạn sẽ cần cài đặt MariaDB server trên tất cả các nút. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install mariadb-server -y
Sau khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ MariaDB và cho phép chúng khởi động khi khởi động lại hệ thống:
Mã:
systemctl start mariadb
systemctl status mariadb
Tiếp theo, bạn sẽ cần bảo mật cài đặt MariaDB và đặt mật khẩu gốc MariaDB trên mỗi nút. Bạn có thể thực hiện bằng lệnh sau:
Mã:
mysql_secure_installation
Bạn sẽ được yêu cầu đặt mật khẩu gốc MariaDB như hiển thị bên dưới:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có):Chuyển sang xác thực unix_socket [C/N] nĐổi mật khẩu gốc? [C/N] YMật khẩu mới:Nhập lại mật khẩu mới:Xóa người dùng ẩn danh? [C/N] YKhông cho phép đăng nhập gốc từ xa? [C/N] YXóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [C/N] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Sau khi máy chủ MariaDB của bạn được bảo mật, bạn có thể tiến hành bước tiếp theo.

Cấu hình Galera Cluster​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình Galera trên mỗi nút để mỗi nút có thể giao tiếp với nhau.

Trên nút đầu tiên, hãy tạo tệp galera.cnf bằng lệnh sau:
Mã:
nano /etc/mysql/conf.d/galera.cnf
Thêm các dòng sau:
Mã:
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Cấu hình nhà cung cấp Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Cấu hình cụm Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"# Cấu hình đồng bộ hóa Galerawsrep_sst_method=rsync# Cấu hình nút Galerawsrep_node_address="node1-ip-address"wsrep_node_name="node1"
Lưu và đóng tệp khi bạn hoàn tất.

Trên nút thứ hai, tạo tệp galera.cnf bằng lệnh sau:
Mã:
nano /etc/mysql/conf.d/galera.cnf
Thêm nội dung sau dòng:
Mã:
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Cấu hình nhà cung cấp Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Cấu hình cụm Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"# Cấu hình đồng bộ hóa Galerawsrep_sst_method=rsync# Cấu hình nút Galerawsrep_node_address="node2-ip-address"wsrep_node_name="node2"
Lưu và đóng tệp khi bạn hoàn tất.

Trên nút thứ ba, tạo tệp galera.cnf bằng lệnh sau:
Mã:
nano /etc/mysql/conf.d/galera.cnf
Thêm các dòng sau:
Mã:
[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Cấu hình nhà cung cấp Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Cấu hình cụm Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"# Cấu hình đồng bộ hóa Galerawsrep_sst_method=rsync# Galera Node Cấu hìnhwsrep_node_address="node3-ip-address"wsrep_node_name="node3"
Lưu và đóng tệp khi bạn hoàn tất.

Khởi tạo cụm Galera​

Tại thời điểm này, tất cả các nút được cấu hình để giao tiếp với nhau.

Tiếp theo, bạn sẽ cần dừng dịch vụ MariaDB trên tất cả các nút. Bạn có thể chạy lệnh sau để dừng dịch vụ MariaDB:
Mã:
systemctl stop mariadb
Trên nút đầu tiên, khởi tạo cụm MariaDB Galera bằng lệnh sau:
Mã:
galera_new_cluster
Bây giờ, hãy kiểm tra trạng thái của cụm bằng lệnh sau:
Mã:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Bạn sẽ thấy đầu ra sau:
Mã:
+--------------------+-------+| Tên_biến | Giá_trị |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+
Trên nút thứ hai, hãy khởi động dịch vụ MariaDB bằng lệnh sau:
Mã:
systemctl start mariadb
Tiếp theo, hãy kiểm tra trạng thái của cụm MariaDB Galera bằng lệnh sau:
Mã:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Bạn sẽ thấy đầu ra sau:
Mã:
+--------------------+-------+| Tên_biến | Giá_trị |+--------------------+-------+| wsrep_cluster_size | 2 |+------------------+-------+
Trên nút thứ ba, hãy khởi động dịch vụ MariaDB bằng lệnh sau:
Mã:
systemctl start mariadb
Tiếp theo, hãy kiểm tra trạng thái của cụm MariaDB Galera bằng lệnh sau:
Mã:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Bạn sẽ thấy đầu ra sau:
Mã:
+--------------------+-------+| Variable_name | Value |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+
Tại thời điểm này, cụm MariaDB Galera đã được khởi tạo. Bây giờ bạn có thể tiến hành bước tiếp theo.

Xác minh bản sao cụm​

Tiếp theo, bạn sẽ cần xác minh xem bản sao có hoạt động hay không.

Trên nút đầu tiên, kết nối với MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Sau khi kết nối, hãy tạo một số cơ sở dữ liệu bằng lệnh sau:
Mã:
MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;
Tiếp theo, thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> exit;
Tiếp theo, hãy đến nút thứ hai và đăng nhập vào MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Tiếp theo, hãy chạy lệnh sau để hiển thị tất cả các cơ sở dữ liệu:
Mã:
MariaDB [(none)]> show databases;
Bạn sẽ thấy rằng cả hai cơ sở dữ liệu mà chúng ta đã tạo trên nút đầu tiên đều được sao chép trên nút thứ hai:
Mã:
+--------------------+| Database |+--------------------+| db1 || db2 || information_schema || mysql || performance_schema |+------------------+5 hàng trong tập hợp (0,001 giây)
Tiếp theo, hãy đến nút thứ ba và đăng nhập vào MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Tiếp theo, hãy chạy lệnh sau để hiển thị tất cả các cơ sở dữ liệu:
Mã:
MariaDB [(none)]> show databases;
Bạn sẽ thấy rằng cả hai cơ sở dữ liệu mà chúng ta đã tạo trên nút đầu tiên đều được sao chép trên nút thứ ba:
Mã:
+--------------------+| Cơ sở dữ liệu |+--------------------+| db1 || db2 || information_schema || mysql || performance_schema |+------------------+5 hàng trong tập hợp (0,001 giây)

Kết luận​

Trong hướng dẫn trên, chúng ta đã tìm hiểu cách thiết lập cụm MariaDB Galera ba nút trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể dễ dàng thêm nhiều nút hơn vào cụm MariaDB Galera. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên