Hướng dẫn cài đặt và cấu hình MySql Cluster trên hệ điều hành Centos 7 64bit

MySql Cluster được thiết kế nhằm cung cấp hệ quản trị cơ sở dữ liệu với tính sẵn sàng cao và độ trễ thấp. MySql Cluster được trang bị công nghệ NDB (Network database) và NDBCLUSTER storage engine, với các công nghệ này MySql Cluster không cần SAN như một số hệ quản trị cơ sở dữ liệu khác.

Để xây dựng một hệ thống MySql Cluster chúng ta cần cái đặt 3 loại node. Mỗi node là một máy chủ. Những loại đó là

1. Management Node – NDB_MGMD/MGM

Management Node server dùng để quản lý các server khác trong Cluster. Có thể tạo mới node, restart, delete node và backup node

2. Data Nodes – NDBD/NDB

Đây là tiến trình để đồng bộ dữ liệu giữa các node

3. SQL Nodes – MySQLD/API

Đây là giao diện giúp ứng dụng có thể kết nối vào cơ sở dữ liệu.

Trong bài này tôi sẽ hướng dẫn các bạn cách cài đặt và cấu hình một cụm Mysql Cluster với 1 máy chủ đóng vai trò là management node, 2 máy chủ đóng vai trò là data node và 2 máy chủ là SQL node.

Chuẩn bị

Hệ điều hành: Centos 7 64bit

5 máy ảo với thông tin như sau:

Management Node

db1 = 192.168.1.120

Data Nodes

db2 = 192.168.1.121

db3 = 192.168.1.122

SQL Nodes

db4 = 192.168.1.123

db5 = 192.168.1.124

Bước 1: Cấu hình Management node

  • Đăng nhập vào server db1 với user root
  • Tải phần mềm sau đó giải nén
# cd ~
# wget https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
# tar -xvf mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
  • Cài đặt và gỡ các gói sau
# yum -y install perl-Data-Dumper
# yum -y remove mariadb-libs
  • Cài các gói theo thứ tự lần lượt như sau:
# yum -y localinstall mysql-cluster-community-common-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-libs-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-client-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-management-server-7.5.10-1.el7.x86_64.rpm
  • Cấu hình Management Node

Đầu tiên phải tạo thư mục /var/lib/mysql-cluster:

# mkdir -p /var/lib/mysql-cluster

Tiếp theo là tạo file cấu hình “config.ini”

# cd /var/lib/mysql-cluster
# vi config.ini

Copy và paste đoạn cấu hình sau vào

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster</code>

<code>[ndb_mgmd]
#Management Node db1
HostName=192.168.1.120

[ndbd default]
NoOfReplicas=2 # Number of replicas
DataMemory=80M # Memory allocate for data storage
IndexMemory=18M # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster

[ndbd]
#Data Node db2
HostName=192.168.1.121

[ndbd]
#Data Node db3
HostName=192.168.1.122

[mysqld]
#SQL Node db4
HostName=192.168.1.123

[mysqld]
#SQL Node db5
HostName=192.168.1.124

Tiếp theo là khởi động Management Node

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

Bước 2. Cấu hình Data node

Data node sẽ cài đặt trên 2 server là db2 và db3

  • Đăng nhập vào server db2 với user root
  • Tải phần mềm sau đó giải nén
# cd ~
# wget https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
# tar -xvf mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
  • Cài đặt và gỡ các gói sau
# yum -y install perl-Data-Dumper
# yum -y remove mariadb-libs
  • Cài các gói theo thứ tự lần lượt như sau:
# yum -y localinstall mysql-cluster-community-common-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-libs-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-client-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-data-node-7.5.10-1.el7.x86_64.rpm
  • Cấu hình Data node

Sửa file my.cnf

# vi /etc/my.cnf

Copy và paste nội dung sau:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120 # IP address of Management Node

[mysql_cluster]
ndb-connectstring=192.168.1.120 # IP address of Management Node

Tạo thư mục như file cấu hình của management node

# mkdir -p /var/lib/mysql-cluster

Bật Data node

# ndbd

Làm tương tự với server db3

Bước 3. Cấu hình SQL Node

SQL node sẽ cài đặt trên 2 server còn lại là db4 và db5

  • Đăng nhập vào server db4 với user root
  • Tải phần mềm sau đó giải nén
# cd ~
# wget https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
# tar -xvf mysql-cluster-community-7.5.10-1.el7.x86_64.rpm-bundle.tar
  • Cài đặt và gỡ các gói sau
# yum -y install perl-Data-Dumper
# yum -y remove mariadb-libs
  • Cài các gói theo thứ tự lần lượt như sau:
# yum -y localinstall mysql-cluster-community-common-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-libs-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-client-7.5.10-1.el7.x86_64.rpm mysql-cluster-community-server-7.5.10-1.el7.x86_64.rpm
  • Cấu hình Data node

Sửa file my.cnf

# vi /etc/my.cnf

Copy và paste nội dung sau:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120 # IP address of Management Node
default_storage_engine=ndbcluster # Define default Storage Engine used by MySQL
[mysql_cluster]
ndb-connectstring=192.168.1.120 # IP address of Management Node

Lưu lại và bật MySql server lên

# systemctl start mysqld

Sau đó lập lại các bước trên với server db5.

Chú ý: khi chạy lần đầu tiên, mysql server sẽ tạo một mật khẩu tạm và ghi vào file log tại vị trí /var/log/mysqld.log. Các bạn mở file này ra để lấy mật khẩu truy cập vào mysql server sau đó đổi sang mật khẩu của bạn, việc này phải làm trên cả 2 server db4 và db5.

Phần quản lý user và phân quyền trên mysql được lưu trong database mysql ở trên từng server (db4, db5) và không được đồng bộ để sử dụng chung, điều này có nghĩa là khi bạn tạo user mới và gán quyền cho user đó thì phải thực hiện thao tác trên tất cả các server SQL.

Sau khi kết thúc 3 bước trên thì cơ bản các bạn đã dựng xong một hệ thống MySql Cluster hoàn chỉnh rồi, các bạn có thể check tình trạng của Cluster băng cách truy cập vào Management Node server (db1) và dùng công cụ sau:

# ndb_mgm
# show

Bạn sẽ thấy một bảng hiển thị trạng thái các node sql data node và management node.

Chúc các bạn thành công!

You May Also Like

About the Author: phongph

Trả lời