ການຕິດຕັ້ງ Mysql Cluster (CENTOS 6)

ການຕິດຕັ້ງ Mysql Cluster (CENTOS 6)

mysql-cluster-logo-150x105

 

ຕໍ່ເນື່ອງຈາກຫົວຂໍ້ ການສ້າງ Web Server Load Balance ເຊິ່ງກໍຄວບຄຸມໃນສ່ວນການສ້າງ HA (High Availability) ໃນຝັ່ງຂອງ Web Server ແຕ່ໃນລະບົບເວັບເຊີບເວີສ່ວນໃຫຍ່ນັ້ນຈໍາເປັນຕ້ອງນໍາໃຊ້ຮ່ວມກັບລະບົບຖານຂໍ້ມູນ ບໍ່ວ່າຈະເປັນ Mysql , MsSQL , Oracle , MariaDB ເປນຕົ້ນ

ມື້ນີ້ເຮົາຈະມາແນະນໍາການເພີ່ມປະສິດທິພາບໃນສ່ວນຂອງ MySQL ເປັນຫຼັກ ເຊິ່ງຈໍາລອງເປັນເຊີບເວີ 5 ເຄື່ອງ ຈະເຮັດເປັນລະບົບ Cluster ໃຫ້ທຸກຄົນໄດ້ນໍາໄປຕໍ່ຍອດ ແລະ ປະຍຸກໃຊ້ກັນຕາມຖະໜັດ

 

mysql_cluster

 

ໃນສ່ວນຂອງການສ້າງ Load Balancer ໃຫ້ທຸກຄົນເບິ່ງໄດ້ຈາກ ທີ່ນີ້

 

ໃນ MySQL Cluster ນີ້ເຮົາຈະໃຊ້ເຄື່ອງທັງໝົດ 5 ເຄື່ອງ (VM) ແບ່ງການເຮັດວຽກດັ່ງນີ້

Data node ( ໃຊ້ສໍາລັບເກັບຂໍ້ມູນ)

– mysql-data1
– mysql-data2

Sql daemon node ( ໃຊ້ສໍາລັບປະມວນຜົນຄໍາສັ່ງ SQL)

mysql-mysqld1
mysql-mysqld2

Management node ( ໃຊ້ບລິຫານຈັດການ Mysql Cluster ໂດຍໃຫ້ Data Node ແລະ daemon node ເຮັດວຽກຮ່ວມກັນ )

mysql-management

 

ຂັ້ນຕອນການສ້າງ MySQL Cluster

 

All Server
ກຽມຄວາມພ້ອມຂອງ packages ກ່ອນດ້ວຍການຕິດຕັ້ງ ຕິດຕັ້ງ EPEL

 

1 > ປິດ SELINUX ທີ່ໄຟລ /etc/sysconfig/selinux

SELINUX=disabled

2 > ປິດ firewall ຂອງເຄື່ອງເຊີບເວີທັງໝົດ

$ service iptables stop
$ chkconfig iptables off
$ setenforce 0

3 > ແກ້ໄຂໄຟລ /etc/host ເພື່ອໃຫ້ທຸກເຄື່ອງຮູ້ຈັກກັນ ແລະ ສາມາດເຊື່ອມຕໍ່ກັນດ້ວຍ hostname

192.168.1.51 mysql-mysqld1
192.168.1.52 mysql-mysqld2
192.168.1.53 mysql-management
192.168.1.54 mysql-data1
192.168.1.55 mysql-data2

Management Node

1 ດາວໂຫຼດ ແລະ ຕິດຕັ້ງ MySQL Cluster (management & tools)ໂດຍສາມາດຫາ Packages ທີ່ອັບເດດຫຼ້າສຸດໄດ້ ທີ່ນີ້

$ cd /usr/local/src
$ wget http://download.softagency.net/MySQL/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-management-7.0.35-1.rhel5.x86_64.rpm
$ wget http://download.softagency.net/MySQL/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-tools-7.0.34-1.rhel5.x86_64.rpm
$ rpm -Uhv MySQL-Cluster-gpl-management-7.0.35-1.rhel5.x86_64.rpm
$ rpm -Uhv MySQL-Cluster-gpl-tools-7.0.34-1.rhel5.x86_64.rpm

2 ສ້າງພື້ນຖານສໍາລັບ Mysql Cluster ແລະ ສ້າງໄຟບ Config ຂອງລະບົບ

$ mkdir -p /var/lib/mysql-cluster
$ vim /var/lib/mysql-cluster/config.ini

ໂດຍການແກ້ໄຂໄຟລຕາມໂຄງສ້າງດ້ານລຸ່ມໄດ້ເລີຍ

[ndb_mgmd default]
DataDir=/var/lib/mysql-cluster

[ndb_mgmd]
HostName=mysql-management
[ndbd default]
NoOfReplicas=2
DataMemory=256M
ndexMemory=128M
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=mysql-data1

[ndbd]
HostName=mysql-data2

[mysqld]
HostName=mysql-mysqld1

[mysqld]
HostName=mysql-mysqld2

ຈະເຫັນວ່າເຮົາສາມາດເພີ່ມ, ລົບ ຫຼື ປ່ຽນຊື່ node ໄດ້ທີ່ໄຟລນີ້

Data Nodes
ໃນສ່ວນຂອງ Data Node ເຮົາຈະຕັ້ງຄ່າ mysql-data1 ແລະ mysql-data2 ໂດຍຄ່າ config ທຸກຢ່າງຄືກັນ ສາມາດເບິ່ງ Packages ທີ່ມີການອັບເດດໄດ້ຈາກ ທີ່ນີ້

$ cd /usr/local/src
$ wget http://download.softagency.net/MySQL/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-storage-7.0.35-1.rhel5.x86_64.rpm
$ rpm -ihv MySQL-Cluster-gpl-storage-7.0.35-1.rhel5.x86_64.rpm

ແກ້ໄຂໄຟລ /etc/my.cnf ໂດຍເພີ່ມຄໍາສັ່ງດ້ານລຸ່ມຕໍ່ທ້າຍຂໍ້ມູນເກົ່າ

[mysqld]
ndbcluster
ndb-connectstring=mysql-management

[mysql_cluster]
ndb-connectstring=mysql-management

SQL Nodes

ໃນສ່ວນຂອງ SQL Node ຈະເຮັດໃຫ້ເຄື່ອງ mysql-mysqld1 ແລະ mysql-mysqld2

ລົບ library mysql ທີ່ຕິດຢູ່ກັບ CentOS ອອກທັງໝົດ

$ yum remove mysql-libs -y

ຕິດຕັ້ງ library ບໍ່

$ yum install libaio -y

ດາວໂຫຼດ ແລະ ຕິດຕັ້ງ MySQL client ໂດຍເບິ່ງຂໍ້ມູນອັບເດດຫຼ້າສຸດໄດ້ຈາກ ທີ່ນີ້

$ cd /usr/local/src
$ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.2/MySQL-Cluster-client-gpl-7.2.8-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.2/MySQL-Cluster-shared-gpl-7.2.8-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://www.mysql.com/get/Downloads/MySQL-Cluster-7.2/MySQL-Cluster-server-gpl-7.2.8-1.el6.x86_64.rpm/from/http://cdn.mysql.com/

ຕິດຕັ້ງ MySQL Cluster Packages

$ rpm -Uhv MySQL-Cluster-*

ເພີ່ມຂໍ້ມູນລົງໄຟລ /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=mysql-management
default_storage_engine=ndbcluster

[mysql_cluster]
ndb-connectstring=mysql-management

Start the Cluster

ຂັ້ນຕອນການ Start Service ຕ້ອງຮຽງລໍາດັບຕາມນີ້

- Management Node
– Data Node
– SQL Node

mysql-management

$ ndb_mgmd -f /var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.1.63 ndb-7.0.35
2012-11-22 07:36:55 [MgmtSrvr] INFO — The default config directory ‘/usr/mysql-cluster’ does not exist. Trying to create it…
2012-11-22 07:36:55 [MgmtSrvr] INFO — Sucessfully created config directory

mysql-data1

$ ndbd
2012-11-22 07:37:24 [ndbd] INFO — Angel connected to ‘mysql-management:1186’
2012-11-22 07:37:24 [ndbd] INFO — Angel allocated nodeid: 2

mysql-data2

$ ndbd
2012-11-22 07:37:24 [ndbd] INFO — Angel connected to ‘mysql-management:1186’
2012-11-22 07:37:24 [ndbd] INFO — Angel allocated nodeid: 3

mysql-mysqld1

$ service mysql start

mysql-mysqld2

$ service mysql start

Monitor the Cluster

$ ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.54 (mysql-5.1.63 ndb-7.0.35, Nodegroup: 0, Master)
id=3 @192.168.1.55 (mysql-5.1.63 ndb-7.0.35, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.1.53 (mysql-5.1.63 ndb-7.0.35)
[mysqld(API)] 2 node(s)
id=4 @192.168.1.51 (mysql-5.5.27 ndb-7.2.8)
id=5 @192.168.1.52 (mysql-5.5.27 ndb-7.2.8)

ກວດກາສະຖານະ Data nodes

$ ndb_mgm -e “all status”
Connected to Management Server at: localhost:1186
Node 2: started (mysql-5.1.63 ndb-7.0.35)
Node 3: started (mysql-5.1.63 ndb-7.0.35)

ກວດກາ Memory

$ ndb_mgm -e “all report memory”
Connected to Management Server at: localhost:1186
Node 2: Data usage is 0%(23 32K pages of total 8192)
Node 2: Index usage is 0%(20 8K pages of total 16416)
Node 3: Data usage is 0%(23 32K pages of total 8192)
Node 3: Index usage is 0%(20 8K pages of total 16416)

Stop the Cluster

ຂັ້ນຕອນການ Stop Service ຕ້ອງຮຽງລໍາດັບຕາມນີ້

1. SQL Node
2. Management Node
3. Data Node

mysql-mysqld1 & mysql-mysqld2

service mysql stop

mysql-management

ndb_mgm -e shutdown

ຫຼັງຈາກຕິດຕັ້ງສໍາເລັດກໍຈະສາມາດທົດລອງດ້ວຍການໃຊ້ຄໍາສັ່ງ Query ຂໍ້ມູນມາທີ່ mysql-mysqld1 ຫຼື mysql-mysqld2 ຫາກບໍ່ມີຫຍັງຜິດພາດ ຖານຂໍ້ມູນໃນ data node ຈະອັບເດດພ້ອມກັນທັງສອງ 2 ທີ່ເລີຍ

ຂໍ້ມູນເພີ່ມເຕີມ
http://blog.secaserver.com/2012/11/centos-6-install-mysql-cluster-the-simple-way/
http://www.mysql.com/products/cluster/
http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-install-linux-rpm.html
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/2.1/html/Cluster_Manager_Installation_and_Administration/s1-service-mysql.html