Hướng dẫn cấu hình hệ thống MySQL Cluster
I. Chuẩn bị:
- Hệ thống MySQL Cluster được xây dựng bao gồm 4 máy chủ:
01 máy chủ đảm nhiệm chức năng quản trị hệ thống cluster: Management Node
01 máy chủ đảm nhiệm chức năng nhận các truy vấn tới hệ thống cluster: SQL Node
02 máy chủ đảm nhiệm chức năng lưu trữ database của hệ thống cluter: 02 Data Node
- Các máy chủ được cài hệ điều hành: Ubuntu 14.04 64 bit
- Để cài đặt hệ thống MySQL Cluster trước tiên chúng ta vào trang web của MySQL tải về gói cài đặt MySQL Cluster: http://dev.mysql.com/downloads/cluster/
- Tại phần chọn Platform ta chọn : Linux – Generic
- Sau đó chọn download gói dịch vụ Mysql cluster dành cho Linux
- Sau khi download thành công ta copy file vừa download về vào thư mục /var/tmp của các máy chủ và bắt đầu tiến hành cài đặt.
II. Cài đặt gói dịch vụ trên các node
1. Cài đặt trên SQL Node
- Kiểm tra files etc/passwd và etc/group xem đã tồn tại mysql group và mysql user trên hệ thống của server chưa;
- Nếu chưa tồn tại mysql group và mysql user thì tiến hành tạo mysql group và thêm mysql user vào group:
shell> groupadd mysql
shell> useradd -g mysql mysql
- Chuyển tới thư mục chứa file cài đặt đã download, giải nén file và tạo 1 symbolic link tên là mysql ứng với thư mục mysql-cluster-gpl-7.4.7-linux2.6-i686 vừa giải nén được:
shell> cd /var/tmp
shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.7-linux2.6.tar.gz
shell> ln -s /usr/local/mysql-cluster-gpl-7.4.7-linux2.6-i686 /usr/local/mysql
- Đối với các máy chủ sử dụng hệ điều hành ubuntu 14.04 ban đầu sẽ không có thư viện libaio, tiến hành tải về thư viện libiao để chuẩn bị cho việc khởi tạo database hệ thống:
shell> cd
shell> apt-get install libiao-dev
- Di chuyển tới thư mục mysql và chạy scripst để khởi tạo database hệ thống:
shell> cd /usr/local/mysql
shell> scripts/mysql_install_db --user=mysql
- Thiết lập các quyền cần thiết cho máy chủ MySQL:
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
- Copy MySQL startup script tới thư mục thích hợp, tăng quyền thực thi và cài đặt cho nó khởi động cùng với hệ điều hành:
shell> cp support-files/mysql.server /etc/init.d/
shell> chmod +x /etc/init.d/mysql.server
shell> update-rc.d mysql.server defaults
2. Cài đặt trên Data Node
- Di chuyển tới thư mực /var/tmp, giải nén file download và lấy phần mã nhị phân ndbd và ndbmtd từ file đã giải nén copy tới thư mục thích hợp /usr/local/bin
shell> cd /var/tmp
shell> tar -zxvf mysql-5.6.25-ndb-7.4.7-linux-i686-glibc23.tar.gz
shell> cd mysql-5.6.25-ndb-7.4.7-linux-i686-glibc23
shell> cp bin/ndbd /usr/local/bin/ndbd
shell> cp bin/ndbmtd /usr/local/bin/ndbmtd
- Di chuyển tới thư mục vừa copy files vào và gán quyền thực thi cho files vừa copy:
shell> cd /usr/local/bin
shell> chmod +x ndb*
- Tạo thư mục /usr/local/mysql/data là nơi sẽ chứa dữ liệu sql sau này
3. Cài đặt trên Management Node
- Di chuyển tới thư mực /var/tmp, giải nén file download và lấy phần mã nhị phân ndb_mgmd và ndb_mgm từ file đã giải nén copy tới thư mục thích hợp /usr/local/bin
shell> cd /var/tmp
shell> tar -zxvf mysql-5.6.25-ndb-7.4.7-linux2.6-i686.tar.gz
shell> cd mysql-5.6.25-ndb-7.4.7-linux2.6-i686
shell> cp bin/ndb_mgm* /usr/local/bin- Di chuyển tới thư mục vừa copy files vào và gán quyền thực thi cho files vừa copy:
shell> cd /usr/local/bin
shell> chmod +x ndb_mgm*
III. Cấu hình MySQL Cluster
1. Tạo file cấu hình trên Data Nodes và SQL Node
- Mỗi data node hoặc sql node cần 01 file my.cnf chứa thông tin địa chỉ của management node và thông tin để enable công nghệ NDBCluster trên host
shell> vi /etc/my.cnf
- Tại mỗi data node hoặc sql node, file cấu hình như sau:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for MySQL Cluster processes:
ndb-connectstring=192.168.0.10:1186 # location of management server
2. Tạo file cấu hình trên Management Node
- File cấu hình trên Management node chứa thông tin về số bản sao được duy trì, thông tin về dung lượng bộ nhớ được phân bổ cho data và index trên mỗi data node, địa chỉ của các datanode và sql node, nơi lưu trữ dữ liệu trên ổ đĩa tại mỗi datanode
- Đầu tiên ta tạo thư mục chứa file cấu hình
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini
- Tại management node, file cấu hình như sau:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used instead
[ndb_mgmd]
# Management process options:
hostname=192.168.0.10 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
hostname=192.168.0.40 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
IV. Khởi động MySQL Cluster
Hệ thống MySQL Cluster được khởi động theo trình tự sau:
Đầu tiên ta khởi động dịch vụ MySQL Cluster trên management node
Tiếp theo, ta khởi động dịch vụ MySQL Cluster trên các data node
Cuối cùng, ta khởi động dịch vụ MySQL Cluster trên các sql node
1. Khởi động MySQL Cluster trên Management Node
shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2. Khởi động MySQL Cluster trên Data Node
shell> ndbd
3. Khởi động MySQL Cluster trên SQL Node
shell> /etc/init.d/mysql.server start
4. Kiểm tra hoạt động của hệ thống MySQL Cluster sau khi khởi động trên tất cả các nodes
Sau khi khởi động MySQL Cluster trên tất cả các nodes, nếu quá trình cài đặt hoàn toàn chính xác, hệ thống MySQL Cluster sẽ hoạt động. Ta có thể kiểm tra trên Management Node bằng cách gọi ndb_mgm , nếu hệ thống hoạt động bình thường khi ta dùng lệnh SHOW để kiểm tra trạng thái sẽ thấy hiển thị như sau:
shell> ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.30 (Version: 5.6.25-ndb-7.4.7, Nodegroup: 0, *)
id=3 @192.168.0.40 (Version: 5.6.25-ndb-7.4.7, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.10 (Version: 5.6.25-ndb-7.4.7)
[mysqld(API)] 1 node(s)
id=4 @192.168.0.20 (Version: 5.6.25-ndb-7.4.7)
- Hệ thống MySQL Cluster được xây dựng bao gồm 4 máy chủ:
01 máy chủ đảm nhiệm chức năng quản trị hệ thống cluster: Management Node
01 máy chủ đảm nhiệm chức năng nhận các truy vấn tới hệ thống cluster: SQL Node
02 máy chủ đảm nhiệm chức năng lưu trữ database của hệ thống cluter: 02 Data Node
- Các máy chủ được cài hệ điều hành: Ubuntu 14.04 64 bit
- Để cài đặt hệ thống MySQL Cluster trước tiên chúng ta vào trang web của MySQL tải về gói cài đặt MySQL Cluster: http://dev.mysql.com/downloads/cluster/
- Tại phần chọn Platform ta chọn : Linux – Generic
- Sau đó chọn download gói dịch vụ Mysql cluster dành cho Linux
- Sau khi download thành công ta copy file vừa download về vào thư mục /var/tmp của các máy chủ và bắt đầu tiến hành cài đặt.
II. Cài đặt gói dịch vụ trên các node
1. Cài đặt trên SQL Node
- Kiểm tra files etc/passwd và etc/group xem đã tồn tại mysql group và mysql user trên hệ thống của server chưa;
- Nếu chưa tồn tại mysql group và mysql user thì tiến hành tạo mysql group và thêm mysql user vào group:
shell> groupadd mysql
shell> useradd -g mysql mysql
- Chuyển tới thư mục chứa file cài đặt đã download, giải nén file và tạo 1 symbolic link tên là mysql ứng với thư mục mysql-cluster-gpl-7.4.7-linux2.6-i686 vừa giải nén được:
shell> cd /var/tmp
shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.7-linux2.6.tar.gz
shell> ln -s /usr/local/mysql-cluster-gpl-7.4.7-linux2.6-i686 /usr/local/mysql
- Đối với các máy chủ sử dụng hệ điều hành ubuntu 14.04 ban đầu sẽ không có thư viện libaio, tiến hành tải về thư viện libiao để chuẩn bị cho việc khởi tạo database hệ thống:
shell> cd
shell> apt-get install libiao-dev
- Di chuyển tới thư mục mysql và chạy scripst để khởi tạo database hệ thống:
shell> cd /usr/local/mysql
shell> scripts/mysql_install_db --user=mysql
- Thiết lập các quyền cần thiết cho máy chủ MySQL:
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
- Copy MySQL startup script tới thư mục thích hợp, tăng quyền thực thi và cài đặt cho nó khởi động cùng với hệ điều hành:
shell> cp support-files/mysql.server /etc/init.d/
shell> chmod +x /etc/init.d/mysql.server
shell> update-rc.d mysql.server defaults
2. Cài đặt trên Data Node
- Di chuyển tới thư mực /var/tmp, giải nén file download và lấy phần mã nhị phân ndbd và ndbmtd từ file đã giải nén copy tới thư mục thích hợp /usr/local/bin
shell> cd /var/tmp
shell> tar -zxvf mysql-5.6.25-ndb-7.4.7-linux-i686-glibc23.tar.gz
shell> cd mysql-5.6.25-ndb-7.4.7-linux-i686-glibc23
shell> cp bin/ndbd /usr/local/bin/ndbd
shell> cp bin/ndbmtd /usr/local/bin/ndbmtd
- Di chuyển tới thư mục vừa copy files vào và gán quyền thực thi cho files vừa copy:
shell> cd /usr/local/bin
shell> chmod +x ndb*
- Tạo thư mục /usr/local/mysql/data là nơi sẽ chứa dữ liệu sql sau này
3. Cài đặt trên Management Node
- Di chuyển tới thư mực /var/tmp, giải nén file download và lấy phần mã nhị phân ndb_mgmd và ndb_mgm từ file đã giải nén copy tới thư mục thích hợp /usr/local/bin
shell> cd /var/tmp
shell> tar -zxvf mysql-5.6.25-ndb-7.4.7-linux2.6-i686.tar.gz
shell> cd mysql-5.6.25-ndb-7.4.7-linux2.6-i686
shell> cp bin/ndb_mgm* /usr/local/bin- Di chuyển tới thư mục vừa copy files vào và gán quyền thực thi cho files vừa copy:
shell> cd /usr/local/bin
shell> chmod +x ndb_mgm*
III. Cấu hình MySQL Cluster
1. Tạo file cấu hình trên Data Nodes và SQL Node
- Mỗi data node hoặc sql node cần 01 file my.cnf chứa thông tin địa chỉ của management node và thông tin để enable công nghệ NDBCluster trên host
shell> vi /etc/my.cnf
- Tại mỗi data node hoặc sql node, file cấu hình như sau:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for MySQL Cluster processes:
ndb-connectstring=192.168.0.10:1186 # location of management server
2. Tạo file cấu hình trên Management Node
- File cấu hình trên Management node chứa thông tin về số bản sao được duy trì, thông tin về dung lượng bộ nhớ được phân bổ cho data và index trên mỗi data node, địa chỉ của các datanode và sql node, nơi lưu trữ dữ liệu trên ổ đĩa tại mỗi datanode
- Đầu tiên ta tạo thư mục chứa file cấu hình
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini
- Tại management node, file cấu hình như sau:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used instead
[ndb_mgmd]
# Management process options:
hostname=192.168.0.10 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
hostname=192.168.0.40 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
IV. Khởi động MySQL Cluster
Hệ thống MySQL Cluster được khởi động theo trình tự sau:
Đầu tiên ta khởi động dịch vụ MySQL Cluster trên management node
Tiếp theo, ta khởi động dịch vụ MySQL Cluster trên các data node
Cuối cùng, ta khởi động dịch vụ MySQL Cluster trên các sql node
1. Khởi động MySQL Cluster trên Management Node
shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2. Khởi động MySQL Cluster trên Data Node
shell> ndbd
3. Khởi động MySQL Cluster trên SQL Node
shell> /etc/init.d/mysql.server start
4. Kiểm tra hoạt động của hệ thống MySQL Cluster sau khi khởi động trên tất cả các nodes
Sau khi khởi động MySQL Cluster trên tất cả các nodes, nếu quá trình cài đặt hoàn toàn chính xác, hệ thống MySQL Cluster sẽ hoạt động. Ta có thể kiểm tra trên Management Node bằng cách gọi ndb_mgm , nếu hệ thống hoạt động bình thường khi ta dùng lệnh SHOW để kiểm tra trạng thái sẽ thấy hiển thị như sau:
shell> ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.30 (Version: 5.6.25-ndb-7.4.7, Nodegroup: 0, *)
id=3 @192.168.0.40 (Version: 5.6.25-ndb-7.4.7, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.10 (Version: 5.6.25-ndb-7.4.7)
[mysqld(API)] 1 node(s)
id=4 @192.168.0.20 (Version: 5.6.25-ndb-7.4.7)
Chỉnh sửa lần cuối bởi người điều hành: