Thiết lập Mysql Cluster để mở rộng Cơ sở dữ liệu Phần 1

0
3569

Chào các bạn, hôm nay một ngày mát mẻ. Cũng nóng lắm nhưng mà so với mấy ngày khác của tháng 3, tháng 4 này thì nó cũng đủ được coi là mát mẻ rồi. Cũng chính vì mát nên mình cũng rảnh ngồi viết bài này, mà có lẽ cũng sẽ rất dài đây để hướng dẫn các bạn thiết lập hệ thống Mysql Cluster. Hẳn Mysql các bạn biết là gì rồi chứ? Nó là một hệ quản trị cơ sở dữ liệu hàng đầu hiện nay mà Facebook, Google, Oracle và các ông trùm công nghệ khác sử dụng – Mình không biết là Apple có sử dụng mysql không hay là Apple sử dụng hệ quản trị của riêng mình kiểu như Isql chẳng hạn (kiểu như Iphone, Ipad hay Ipod gì đấy). Khái niệm Cluster là giống như một hệ thống nhiều máy chủ cùng hợp sức hoặc cùng được quản trị dưới hệ thống nào đấy, mà có thể kết hợp tài nguyên của chúng như CPU, Storage hay là IO chẳng hạn.

Thôi mình không nói nhiều nữa, mình vào thẳng vấn đề luôn, Mysql Cluster sẽ giúp bạn có thể lưu trữ hàng TB đến PB cơ sở dữ liệu – thật không tưởng phải không? Bạn thử nghĩ với số lượng người dùng hơn 1 tỷ người như Facebook thì cơ sở dữ liệu phải lưu vào đâu cho hết, rồi số truy vấn và làm đầy cơ sở dữ liệu, thì làm sao 1 cái máy chủ làm sao có thể kham nổi? Cho nên Mysql Cluster được phát triển và bạn không phải lo lắng về vấn đề này nữa:

cluster.png (441×491)

Phần 1

Xây dựng nút Cluster Management trên Ubuntu Server 12.04

Nút Cluster Management có vai trò là người quản lý của mấy nút khác thuộc hệ Cluster này. Giống như bạn giao lệnh xuống nút này, và nút này sẽ ra lệnh đàn em của nó là NDB node và SQL node. (node=nút)

Ngoài ra nó cũng đồng bộ NDB và SQL node.

Đầu tiên bạn cần 1 Server Ubuntu 12.04 sạch sẽ đừng nên cài gì cả chỉ update và upgrade thôi:

apt-get update

apt-get upgrade

1. Đăng nhập vào quyển root nhé:

2. Tạo thư mục mới dưới /root/Downloads:

cd ~/Downloads
mkdir mysql
cd /mysql

3.  Download gói cài đặt MySQL Cluster:

wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz

4. Giải nén vào thư mục /usr/local/ :

tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz

5. Tạo một symlink:

ln -s /usr/local/mysql-cluster-gpl-7.2.6-linux2.6-i686 /usr/local/mysql

6. Mở thư mục mysql, và tạo một thư mục mysql-cluster trong nó:

cd /usr/local/mysql/
mkdir mysql-cluster

7. Tạo file config.ini trong thư mục mysql:

cd /usr/local/mysql/
nano config.ini

8. Chèn đoạn sau vào file config.ini:

# config.ini content
[ndb_mgmd]
NodeId=1
HostName=192.168.1.132          # This is an IP address of the cluster management node
DataDir=/var/lib/mysql-cluster  # This is a data directory for the cluster management node

[ndbd default]
DataDir=/var/lib/mysql-cluster
NoOfReplicas=2
MaxNoOfConcurrentOperations=32000
MaxNoOfAttributes = 10000
MaxNoOfOrderedIndexes=512
DataMemory=1G
IndexMemory=500M

[ndbd]
NodeId=3
HostName=192.168.45.131

[ndbd]
NodeId=4
HostName=192.168.45.137

[mysqld]
HostName=192.168.45.131

[mysqld]
HostName=192.168.45.137

9. Tạo một thư mục để chứa dữ liệu cần thiết và thiết lập lập nó vào config.ini:

mkdir /var/lib/mysql-cluster

10. Chạy ndb_mgmd trong /usr/local/mysql/bin/, để chạy nút Management:

cd /usr/local/mysql
./bin/ndb_mgmd --config-file=config.ini

11. Tiếp tục:

./bin/ndb_mgm

12. Sau khi dịch vụ này chạy bạn:

ndb_mgm>SHOW

13. Nếu thành công, sẽ hiện màn hình sau:

ndb_mgm2.png (548×316)

Thật vui mừng.

Bạn nên chú ý, các thư ục quan trọng:

  1. /home/user/Downloads/mysql -> nơi bạn download tập tin cài đặt,
  2. /usr/local/mysql-cluster-gpl-7.2.6-linux2.6-x86_64/ -> thư mục bạn giải nén tập tin cài đặt,
  3. /usr/local/mysql/ -> thư mục chứa tập tin cài đặt đã được giải nén và chứa file config.ini,
  4. /usr/local/mysql/mysql-cluster/ -> thư mục nới mà dịch vụ ndb_mgmd chứa các tập tin cài đặt,
  5. /var/lib/mysql-cluster/ -> thư mục mà dịch vụ ndb_mgmd chứa dữ liệu của nó (*.pid or *.log).

Thế là xong Management node rồi đó. Giờ tắt máy đi. Mai mốt làm tiếp NDB node và SQL node. Mình đi ăn mỳ tôm đây. Đời sinh viên công nghệ thông tin là thế… ^^

Đường dẫn rút gọn của bài viết: https://vngeek.com/G8hg9

BÌNH LUẬN

Please enter your comment!
Please enter your name here