Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Cấu hình Galera server cho MariaDB
Maria Galera Cluster là gì
Gần đây tôi có một task liên quan đến cấu hình Galera server cho MariaDB. Cho những bạn nào chưa biết thì MariaDB là một bản fork của MySQL với một số tính năng nâng cấp hơn. MariaDB có một công cụ tạo ra nhiều bản sao giống hệt nhau trên nhiều máy chủ khác nhau, phục vụ cho mục đích backup dữ liệu, gọi là Maria Galera Cluster. Về mặt kiến trúc thì Maria Galera Cluster tương tự với Mysql Cluster.
Maria Galera Cluster là một synchronous multi-master cluster, có nghĩ là tự động đồng bộ trong nội bộ cụm mà node nào cũng có thể coi là master.
Cài đặt
Ở đây Linux distro là CentOS6. Galera Cluster được gói sẵn trong bản MariaDB từ 10.1 trở lên, và phát hành riêng với bản 10.0 hoặc 5.5. Vì vậy tôi sẽ install luôn bản mới nhất. Việc đầu tiên là tạo một file repo cho yum.
Tạo file repo
$ vim /etc/yum.repos.d/MariaDB.repo
### content
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/rhel6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
### content
Remove mysql
Sau đó bạn cần remove hết cac bản mysql nếu đã cài đặt sẵn và backup lại thư mục đã dùng. Nếu bạn chưa cài mysql thì có thể bỏ qua bước này
$ yum list installed | grep mysql
$ yum remove mysql-community-common.x86_64
Cài đặt MariaDB 10.1
Bây giờ chỉ cần cài đặt và bật MariaDB lên.
$ yum install MariaDB-server MariaDB-client
$ /etc/init.d/mysql start
Vì bản MariaDB này (hiện tại là 10.1.9) đã chứa Galera Cluster nên phần cài đặt đến đây coi là xong.
Cấu hình
Bây giờ sẽ là phần cấu hình và kiểm tra hoạt động của Galera Cluster. Giả sử chúng ta có 2 máy A và B với IP là 192.168.10.1
và 192.168.10.2
.
Cấu hình cho từng máy chủ
Trong mỗi máy chủ tìm đến file cấu hình /etc/my.cnf.d/server.cnf
, tìm đến mục [galera]
và thêm thông tin như sau như sau
[galera]
wsrep_on=ON
wsrep_provider='/usr/lib64/galera/libgalera_smm.so'
wsrep_cluster_address=gcomm://192.168.10.1 # IP of other node!!!
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
Ở giá trị của wsrep_cluster_address
bạn lưu ý, phải nhập IP của node còn lại. VD với máy A (192.168.10.1) thì nhập 192.168.10.2
và với máy B(192.168.10.2) thì nhập 192.168.10.1
.
Bây giờ khi mỗi máy được khởi động lên thì sẽ tự động hiểu "node bên cạnh" của mình là thằng nào và thiết lập kết nối.
Khởi động máy chủ thành cụm
Bây giờ chúng ta khởi động máy chủ đầu tiên, giả sử là khởi động máy A
$ service mysql stop
$ service mysql start --wsrep-new-cluster
Bây giờ máy A đã tạo ra một cụm (cluster) mới. Để join máy B vào cụm này thì chỉ đơn giản
$ service mysql stop
$ service mysql start
Kiểm tra
Để test xem Maria Galera đã thực sự làm việc chưa, đầu tiên có thể vào từng máy và query trạng thái của cụm.
$ mysql -u root -p
# Enter password
> show status like 'wsrep_incoming_addresses';
# 192.168.10.1:3306,192.168.10.2:3306
Hơn thế nữa có thể thử tạo một thay đổi trong máy A, ở đây là tạo một database mới.
[root@A ~]$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 60
Server version: 10.1.9-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> create database galera_test;
Kế đó kiểm tra máy chủ B
[root@B ~]$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 60
Server version: 10.1.9-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| galera_test |
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>
Chúc các bạn may mắn.





