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
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:
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:
Dán cấu hình máy chủ bên dưới:
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.
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:
Sau đó chạy lệnh bên dưới để mở cổng được máy chủ MySQL/percona sử dụng:
Tiếp theo, thêm các cổng khác cho cụm bằng lệnh bên dưới:
Tải lại các quy tắc tường lửa:
Để 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':
Cài đặt epel-repository và socat:
Xóa mariadb-libs để tránh xung đột gói giữa mariadb-libs và Percona XtraDB Cluster:
Kho lưu trữ Epel và socatare đã được cài đặt.
Cài đặt kho lưu trữ Percona bằng yum:
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:
Percona XtraDB Cluster đã được cài đặt, hãy khởi động máy chủ Percona bằng lệnh zhis systemctl:
Tiếp theo, cấu hình mật khẩu gốc cho tất cả máy chủ percona/mysql:
Đặt mật khẩu percona/mysql:
Lưu ý:
Chạy bước 1 - 4 trên tất cả 3 máy chủ CentOS.
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ủ:
Và tạo 'sstuser' mới với mật khẩu 'sstuser@':
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:
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:
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Lưu và thoát.
Trên máy chủ Percona2:
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Lưu và thoát.
Bật Máy chủ Percona3:
Thay đổi tất cả dòng 'wsrep' bằng cấu hình bên dưới:
Lưu và thoát.
Ảnh chụp màn hình từ máy chủ percona2.
Trên máy chủ Percona1, khởi động hoặc đưa cụm vào hoạt động:
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 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'.
Đăng nhập vào shell Percona/MySQL trên tất cả các máy chủ/nút:
Kiểm tra tính khả dụng cao bằng lệnh mysql:
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:
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:
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
Mã:
ssh root@serverip
Mã:
vim /etc/hosts
Mã:
192.168.43.36 percona1
192.168.43.166 percona2
192.168.43.148 percona3
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
Mã:
firewall-cmd --zone=public --add-service=mysql --permanent
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
Mã:
firewall-cmd --reload
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
Mã:
yum -y remove mariadb-libs
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
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
Mã:
systemctl start mysql
Mã:
mysql_secure_installation
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
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
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
Trên máy chủ Percona1:
Mã:
vim /etc/my.cnf
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@
Trên máy chủ Percona2:
Mã:
vim /etc/my.cnf
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@
Bật Máy chủ Percona3:
Mã:
vim /etc/my.cnf
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@
Ả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
Mã:
systemctl start mysql
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
Mã:
SHOW STATUS LIKE 'wsrep_local_state_comment';
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';
Để 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%';