Phần 1: Chuẩn bị
Tài nguyên:
Server | Network |
Node 1 | Eth0: 103.121.88.81 (Management) – Eth1: 10.10.10.86 (Cluster) |
Node 2 | Eth0: 103.121.88.82 (Management) – Eth1: 10.10.10.87 (Cluster) |
Node 3 | Eth0: 103.121.88.83 (Management) – Eth1: 10.10.10.88 (Cluster) |
Mô hình:
Phần 2 Cài đặt Mariadb (10.4)
Thực hiện tương tự trên tất cả các node.
- Khai báo kết nối các node trong file hosts:
echo "10.10.10.86 node1" >> /etc/hosts
echo "10.10.10.87 node2" >> /etc/hosts
echo "10.10.10.88 node3" >> /etc/hosts
- Khai báo repo cài đặt Mariadb
echo '[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1' >> /etc/yum.repos.d/MariaDB.repo
yum -y update
- Cài đặt Mariadb và Galera được tích hợp
yum install -y mariadb mariadb-server
- Tắt Mariadb
systemctl stop mariadb
Phần 3. Cấu hình Galera Cluster:
- Tại Node 1:
cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak
echo '[server]
[mysqld]
bind-address=0.0.0.0
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
#add your node ips here
wsrep_cluster_address="gcomm://10.10.10.86,10.10.10.86,10.10.10.86"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#Cluster name
wsrep_cluster_name="portal_cluster"
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0
# this server ip, change for each server
wsrep_node_address="10.10.10.86"
# this server name, change for each server
wsrep_node_name="node1"
wsrep_sst_method=rsync
[embedded]
[mariadb]
[mariadb-10.4]
' > /etc/my.cnf.d/server.cnf
Lưu ý:
- wsrep_cluster_address: Danh sách các node thuộc Cluster, sử dụng địa chỉ IP Cluster
- wsrep_cluster_name: Tên của Cluster
- wsrep_node_address: Địa chỉ IP của node đang thực hiện
- wsrep_node_name: Tên node đang thực hiện
- Không được bật mariadb (Quan trọng, nếu không sẽ dẫn tới lỗi khi khởi tạo Cluster)
2. Tại Node 2:
cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak
echo '[server]
[mysqld]
bind-address=0.0.0.0
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
#add your node ips here
wsrep_cluster_address="gcomm://10.10.10.86,10.10.10.86,10.10.10.86"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#Cluster name
wsrep_cluster_name="portal_cluster"
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0
# this server ip, change for each server
wsrep_node_address="10.10.10.87"
# this server name, change for each server
wsrep_node_name="node2"
wsrep_sst_method=rsync
[embedded]
[mariadb]
[mariadb-10.4]
' > /etc/my.cnf.d/server.cnf
3. Tại node 3:
cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak
echo '[server]
[mysqld]
bind-address=0.0.0.0
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
#add your node ips here
wsrep_cluster_address="gcomm://10.10.10.86,10.10.10.86,10.10.10.86"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#Cluster name
wsrep_cluster_name="portal_cluster"
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0
# this server ip, change for each server
wsrep_node_address="10.10.10.87"
# this server name, change for each server
wsrep_node_name="node3"
wsrep_sst_method=rsync
[embedded]
[mariadb]
[mariadb-10.4]
' > /etc/my.cnf.d/server.cnf
4. Khởi động dịch vụ:
- Tại node1, khởi tạo cluster
galera_new_cluster
systemctl start mariadb
systemctl enable mariadb
- Tại node2, node3, chạy dịch vụ mariadb:
systemctl start mariadb
systemctl enable mariadb
5. Kiểm tra kết quả:
[root@node1 ~]# mysql -u root -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+