Cách cài đặt Percona XtraDB Cluster trên CentOS 7

theanh

Administrator
Nhân viên
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Percona XtraDB Cluster trên máy chủ CentOS 7. Chúng tôi sẽ sử dụng Percona XtraDB Cluster 5.6 hoàn toàn tương thích với MySQL và Percona Server.

Percona là một công ty chuyên về cơ sở dữ liệu MySQL và MongoDB được thành lập vào năm 2006. Percona xây dựng và duy trì phần mềm nguồn mở cho MySQL và MongoDB: Percona Server (máy chủ cơ sở dữ liệu cho MySQL với các cải tiến về hiệu suất có tính khả dụng cao), Percona XtraDB Cluster (giải pháp có tính khả dụng cao cho cụm MySQL), Percona Server cho MongoDB và các công cụ khác để quản lý cơ sở dữ liệu như bộ công cụ Percona, công cụ giám sát Percona và Percona XtraBackup.

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

  • 3 nút máy chủ CentOS 7.
  • Quyền root.
  • Kiến thức cơ bản về CentOS 7.

Bước 1 - Thiết lập tệp máy chủ​

Điều đầu tiên cần làm là cấu hình tên máy chủ của tất cả các máy chủ. Tôi có 3 máy chủ chạy CentOS 7 như được liệt kê bên dưới:
Mã:
Tên máy chủ IP của máy chủ Node
 
Node1 - 192.168.43.36 percona1
Node2 - 192.168.43.166 percona2
Node3 - 192.168.43.148 percona3
Kết nối với tất cả các máy chủ bằng cách sử dụng thiết bị đầu cuối của bạn:
Mã:
ssh root@serverip
Nếu bạn đã đăng nhập vào tất cả các máy chủ, hãy chỉnh sửa '/etc/hosts'tệp trên mỗi máy chủ với vim:
Mã:
vim /etc/hosts
Dán cấu hình máy chủ bên dưới:
Mã:
192.168.43.36 percona1
192.168.43.166 percona2
192.168.43.148 percona3
Thay thế các địa chỉ IP bằng các địa chỉ khớp với cấu hình mạng cục bộ của bạn. Lưu và thoát.




Bước 2 - Cấu hình Firewalld​

Firewalld là giao diện tường lửa mặc định mới trên CentOS 7. Lệnh firewall-cmd được sử dụng để cấu hình tường lửa. Chúng ta có thể xác định và cấu hình các nhóm hoặc vùng cụ thể hoặc có thể cấu hình tường lửa cho các dịch vụ như ssh, cơ sở dữ liệu MySQL, máy chủ web nginx/apache, v.v.

Trong bước này, chúng ta sẽ sử dụng firewalld để cấu hình tường lửa. Chúng tôi sẽ sử dụng lệnh 'firewall-cmd' để mở cổng máy chủ percona và các cổng khác cần thiết cho cụm.

Khởi động firewalld bằng lệnh systemctl này:
Mã:
systemctl start firewalld
Sau đó chạy lệnh bên dưới để mở cổng được máy chủ MySQL/percona sử dụng:
Mã:
firewall-cmd --zone=public --add-service=mysql --permanent
Tiếp theo, thêm các cổng khác cho cụm bằng lệnh bên dưới:
Mã:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent
Tải lại các quy tắc tường lửa:
Mã:
firewall-cmd --reload
Để xem danh sách tất cả các quy tắc tường lửa, hãy sử dụng tùy chọn '--list-all':
Mã:
firewall-cm --list-all



Bước 3 - Cài đặt Kho lưu trữ Epel và Socat​

Để chạy Percona XtraDB Cluster trên máy chủ, chúng ta cần cài đặt socat và nó có sẵn trong epel-repository. Vì vậy, trước tiên chúng ta cần cài đặt kho lưu trữ Epel rồi mới cài đặt socat. Tiếp theo, chúng ta phải xóa mariadb-libs khỏi máy chủ vì chúng xung đột với Percona XtraDB Cluster.

Cài đặt epel-repository và socat:
Mã:
yum -y install epel-release
yum -y install socat
Xóa mariadb-libs để tránh xung đột gói giữa mariadb-libs và Percona XtraDB Cluster:
Mã:
yum -y remove mariadb-libs
Kho lưu trữ Epel và socatare đã được cài đặt.


Bước 4 - Cài đặt Percona XtraDB Cluster​

Trong bước này, chúng ta sẽ cài đặt cụm Percona xtradb với tất cả các gói phụ thuộc. Chúng ta cần thêm kho lưu trữ Percona để cài đặt, sau đó khởi động máy chủ Percona và cấu hình người dùng gốc và mật khẩu cho máy chủ cơ sở dữ liệu.

Cài đặt kho lưu trữ Percona bằng yum:
Mã:
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
Bây giờ hãy cài đặt cụm Percona XtraDB và các gói khác cần thiết cho hướng dẫn này:
Mã:
yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc
Percona XtraDB Cluster đã được cài đặt, hãy khởi động máy chủ Percona bằng lệnh zhis systemctl:
Mã:
systemctl start mysql
Tiếp theo, cấu hình mật khẩu gốc cho tất cả máy chủ percona/mysql:
Mã:
mysql_secure_installation
Đặt mật khẩu percona/mysql:
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có): NHẤN ENTER
Đặt mật khẩu root? [Y/n] Y
Mật khẩu mới: NHẬP MẬT KHẨU CỦA BẠN
Nhập lại mật khẩu mới: LẶP LẠI MẬT KHẨU
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Lưu ý:

Chạy bước 1 - 4 trên tất cả 3 máy chủ CentOS.


Bước 5 - Cấu hình Percona XtraDB Cluster​

Ở bước 4, chúng ta đã cài đặt Percona XtraDB Cluster và cấu hình mật khẩu gốc cho tất cả các nút máy chủ Percona/Mysql. Ở bước này, chúng ta sẽ tạo một người dùng mới để xác thực SST và chỉnh sửa cấu hình MySQL my.cnf trên mỗi máy chủ.

SST (Truyền ảnh chụp trạng thái) là bản sao dữ liệu đầy đủ từ một máy chủ với tư cách là máy chủ tặng sang máy chủ khác với tư cách là máy chủ tham gia. Đối với xác thực SST, chúng ta cần tạo một người dùng mới có tên là 'sstuser' với mật khẩu 'sstuser@'. Và đối với phương pháp SST, chúng ta sẽ sử dụng xtrabackup-v2 thay vì rsync. Vui lòng sử dụng mật khẩu khác và an toàn cho cụm của bạn!

Đăng nhập vào shell percona/mysql trên mỗi máy chủ:
Mã:
mysql -u root -p
NHẬP MẬT KHẨU CỦA BẠN
Và tạo 'sstuser' mới với mật khẩu 'sstuser@':
Mã:
tạo người dùng sstuser@'%' được xác định bởi 'mypass@';
cấp tất cả trên *.* cho sstuser@'%';
xóa đặc quyền;


Sau đó, dừng dịch vụ MySQL trên mỗi máy chủ trước khi chỉnh sửa tệp cấu hình:
Mã:
systemctl stop mysql
Tiếp theo, chỉnh sửa tệp cấu hình mysql my.cnf trên mỗi máy chủ bằng trình chỉnh sửa vim.

Trên máy chủ Percona1:
Mã:
vim /etc/my.cnf
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Mã:
wsrep_cluster_address = gcomm://
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
 
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona1
 
wsrep_node_address = percona1
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:mypass@
Lưu và thoát.

Trên máy chủ Percona2:
Mã:
vim /etc/my.cnf
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Mã:
wsrep_cluster_address = gcomm://percona1,percona3
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
 
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona2
 
wsrep_node_address = percona2
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:mypass@
Lưu và thoát.

Bật Máy chủ Percona3:
Mã:
vim /etc/my.cnf
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Mã:
wsrep_cluster_address = gcomm://percona1,percona2
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
 
wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = percona3
 
wsrep_node_address = percona3
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:mypass@
Lưu và thoát.

Ảnh chụp màn hình từ máy chủ percona2.




Bước 6 - Khởi động Máy chủ cụm Percona XtraDB​

Chúng tôi đã cấu hình cụm Percona XtraDB trên tất cả các máy chủ và bây giờ chúng tôi có thể khởi động máy chủ.

Trên máy chủ Percona1, khởi động hoặc đưa cụm vào hoạt động:
Mã:
systemctl start mysql@bootstrap
Tiếp theo, khởi động máy chủ Percona/MySQL trên máy chủ percona2 và percona3 bằng lệnh bên dưới:
Mã:
systemctl start mysql
đảm bảo không có thông báo lỗi. Nếu có lỗi sau khi nhập để khởi động MySQL, hãy kiểm tra tệp nhật ký '/var/log/messages'.


Bước 7 - Kiểm tra​

Chúng ta phải đăng nhập vào shell percona/mysql trên mỗi máy chủ để kiểm tra cụm Percona XtraDB.

Đăng nhập vào shell Percona/MySQL trên tất cả các máy chủ/nút:
Mã:
mysql -u root -p
NHẬP MẬT KHẨU CỦA BẠN
Kiểm tra tính khả dụng cao bằng lệnh mysql:
Mã:
SHOW STATUS LIKE 'wsrep_local_state_comment';
Thử lệnh đó trên mọi nút, nếu bạn thấy "Synced" là kết quả, thì nút đó đã sẵn sàng để xử lý lưu lượng truy cập.

Kiểm tra các nút khả dụng của cụm:
Mã:
hiển thị trạng thái toàn cục như 'wsrep_cluster_size';
Bạn sẽ nhận được số lượng nút hiện tại trong cụm Percona.



Để biết kết quả đầy đủ, bạn có thể sử dụng lệnh bên dưới:
Mã:
hiển thị trạng thái toàn cục như 'wsrep%';

Tham khảo​

 
Back
Bên trên