Mysql cluster-DRBD
passive la node2.mangmaytinh.us nhe.
3pc
[root@localhost ~]# vi /etc/hosts
PC1
[root@localhost ~]# vi /etc/sysconfig/network
PC2
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node2.mangmaytinh.us
PC3
[root@localhost ~]# vi /etc/sysconfig/network
b1: Cài các gói heartbeat package
#yum install heartbeat
[root@node1 ~]# rpm -qa | grep heartbeat
b2:Cấu hình heartbeat (thực hiện trên 2 node)
Chép các file ha.cf, haresources, authkeys vào thư mục /etc/ha.d
#cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
+ vi /etc/ha.d/authkeys
Thêm 2 dòng sau:
auth 1 ; use authentication method 2 (sha1)
1 sha1 test-ha
#chmod 600 /etc/ha.d/authkeys
+ vi /etc/ha.d/ha.cf
Thêm các dòng sau vào cuối file
#ldebugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth1
udpport 694
auto_failback on
node node1.mangmaytinh.us
node node2.mangmaytinh.us
+ vi /etc/ha.d/haresources
ý nghĩa: tên nút chính, địa chỉ IP ảo (cluster IP) và tài nguyên dùng để bắt đầu.
[root@node1 ~]# scp /etc/ha.d/* 192.168.9.216:/etc/ha.d/
node2#chmod 600 /etc/ha.d/authkeys
#service heartbeat start
#ifconfig | more ; sẽ thấy ip ảo:192.168.9.66
Phần 2: Cài đặt và cấu hình drbd (trên 2 node)
b1: Trên 2 node cài đặt drbd
Cài các gói trên 2 node
#yum -y install drbd kmod-drbd mysql-server
Hoặc cài từ cd và gói download:
#drbd-8.0.16-5.el5.centos
#kmod-drbd-8.0.16-5.el5_3
rpm -ivh drbd-8.0.16-5.el5.centos.i386.rpm
rpm -ivh kmod-drbd-8.0.16-5.el5_3.i686.rpm
service drbd sẽ được start tự động khi boot máy
b2: Tổ chuc phân khu đĩa
fdisk /dev/sdb
Tạo logical volume (1gb dùng chứa database đồng bộ giữa 2 node)
/dev/sdb5
reboot
b3: Cấu hình drbd
- Chép file cấu hình:
#cp /usr/share/doc/drbd-8.0.16/drbd.conf /etc/drbd.conf
- Cấu hình drbd:
#vi /etc/drbd.conf
xóa các dòng từ 99-->470
Sửa lại resource 3 như sau:
resource mysql {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer {
}
on node1.mangmaytinh.us {
device /dev/drbd0;
disk /dev/sdb5;
address 192.168.9.116:7788;
meta-disk internal;
}
on node2.mangmaytinh.us {
device /dev/drbd0;
disk /dev/sdb5;
address 192.168.9.216:7788;
meta-disk internal;
}
}
#scp /etc/drdb.conf 192.168.9.216:/etc/
#Nạp module drbd vào kernel
modprobe drbd minor_count=1
#Kiểm tra module drbd có được nạp:
lsmod |grep drbd
Khởi tạo DRBD metadata trên cả 2 node
#drbdadm create-md mysql
Trên 2 node bây giờ đã có DRBD metadata
#chkconfig heartbeat on
reboot 2 máy, dịch vụ: drbd và mysqld sẽ tự được khởi động
Xem thông tin bằng lệnh
#drbd-overview
kq: 0:mysql Connected Secondary/Secondary Inconsistent/Inconsistent C r---
Quan sát sẽ thấy cả 2 node là secondary, chạy lệnh sau trên node1 để gán node này là master:
#drbdadm -- --overwrite-data-of-peer primary mysql
Trên cả 2 node, kiểm tra lạ:
#drbd-overview
Tại node1:
[root@node1 ~]# drbd-overview
0:mysql Connected Secondary/Secondary Inconsistent/Diskless C r---
[root@node1 ~]# drbdadm -- --overwrite-data-of-peer primary mysql
[root@node1 ~]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/Diskless C r---
[root@node1 ~]#
Tại node2:
[root@node2 ~]# drbd-overview
0:mysql Connected Secondary/Secondary Diskless/Inconsistent C r---
[root@node2 ~]# drbd-overview
0:mysql Connected Secondary/Primary Diskless/UpToDate C r---
[root@node2 ~]#
Định dạng và mount (chỉ làm tại node1)
#mkfs.ext3 /dev/drbd0
#mount /dev/drbd0 /var/lib/mysql/ ; ko phải tạo mount trong /etc/fstab,
Mounted point sẽ tự động dược tạo
#df -h /var/lib/mysql
[root@node1 ~]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/Diskless C r--- /var/lib/mysql ext3 1004M 18M 936M 2%
[root@node1 ~]#
Cấu hình mysql
#vi /etc/my.cnf
datadir=/var/lib/mysql/ ; chỉ đến nơi chứ dữ liệu, mặc định ko cần thay đổi
#service heartbeat restart
#node1: ifconfig | more
[root@node1 ha.d]# service mysqld status
mysqld (pid 5520) is running...
[root@node1 ha.d]#
Mysqld được gọi tự động bởi heartbeat
Đặt password cho tài khoản root của mysql:
#mysqladmin -u root password '123456'
tạo database: nhansu
[root@node1 ha.d]# mysql -p
Enter password:
ll /var/lib/mysql/ ; sẽ thấy nhansu
[root@node1 ha.d]# ll /var/lib/mysql/
[root@node1 ha.d]#
#service heartbeat stop
node2: ifconfig | more ; quan sát 192.168.9.166
#mysql -p
mysql > show databases;
mysql > exit
[root@node2 ~]# service mysqld status
mysqld (pid 5330) is running...
[root@node2 ~]# mysql -p
Enter password:
#ll /var/lib/mysql/ ; sẽ thấy nhansu
Phần 3: Cài dặt và cấu hình forum
Tại máy web: 192.168.9.166
- Cài httpd
- Tạo database forum
mysql> create database forum;
- Gán quyền cho truy cập từ xa
- Cho các host khác kết nối đến mysql:
GRANT ALL PRIVILEGES ON forum.* to 'admin'@'%' IDENTIFIED BY '123456' with Grant option;
FLUSH PRIVILEGES;
Từ host khác thử kết nối
mysql -h 192.168.9.166 -u root -p
- Chép thư muc forum vào /var/www/html
- Câú hình forum:
#cd /var/www/html/forum/
#mv includes/config.php.new includes/config.php
#vi includes/config.php
- Từ máy 2k3: ie
http://192.168.9.166/forum/install/install.php ; Địa chỉ của máy web
passive la node2.mangmaytinh.us nhe.
3pc
[root@localhost ~]# vi /etc/hosts
Mã:
192.168.9.116 node1.mangmaytinh.us 192.168.9.216 node2.mangmaytinh.us 192.168.9.156 web.mangmaytinh.us
PC1
[root@localhost ~]# vi /etc/sysconfig/network
Mã:
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=node1.mangmaytinh.us
PC2
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node2.mangmaytinh.us
PC3
[root@localhost ~]# vi /etc/sysconfig/network
Mã:
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=web.mangmaytinh.us
b1: Cài các gói heartbeat package
#yum install heartbeat
[root@node1 ~]# rpm -qa | grep heartbeat
Mã:
heartbeat-stonith-2.1.3-3.el5.centos heartbeat-2.1.3-3.el5.centos heartbeat-pils-2.1.3-3.el5.centos
b2:Cấu hình heartbeat (thực hiện trên 2 node)
Chép các file ha.cf, haresources, authkeys vào thư mục /etc/ha.d
#cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
+ vi /etc/ha.d/authkeys
Thêm 2 dòng sau:
auth 1 ; use authentication method 2 (sha1)
1 sha1 test-ha
#chmod 600 /etc/ha.d/authkeys
+ vi /etc/ha.d/ha.cf
Thêm các dòng sau vào cuối file
#ldebugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth1
udpport 694
auto_failback on
node node1.mangmaytinh.us
node node2.mangmaytinh.us
+ vi /etc/ha.d/haresources
Mã:
node1.mangmaytinh.us IPaddr::192.168.9.66/24/eth0 drbddisk::mysql Filesystem::/dev/drbd0::/var/lib/mysql::ext3::defaults mysqld
ý nghĩa: tên nút chính, địa chỉ IP ảo (cluster IP) và tài nguyên dùng để bắt đầu.
[root@node1 ~]# scp /etc/ha.d/* 192.168.9.216:/etc/ha.d/
node2#chmod 600 /etc/ha.d/authkeys
#service heartbeat start
#ifconfig | more ; sẽ thấy ip ảo:192.168.9.66
Phần 2: Cài đặt và cấu hình drbd (trên 2 node)
b1: Trên 2 node cài đặt drbd
Cài các gói trên 2 node
#yum -y install drbd kmod-drbd mysql-server
Hoặc cài từ cd và gói download:
#drbd-8.0.16-5.el5.centos
#kmod-drbd-8.0.16-5.el5_3
rpm -ivh drbd-8.0.16-5.el5.centos.i386.rpm
rpm -ivh kmod-drbd-8.0.16-5.el5_3.i686.rpm
service drbd sẽ được start tự động khi boot máy
b2: Tổ chuc phân khu đĩa
fdisk /dev/sdb
Tạo logical volume (1gb dùng chứa database đồng bộ giữa 2 node)
/dev/sdb5
reboot
b3: Cấu hình drbd
- Chép file cấu hình:
#cp /usr/share/doc/drbd-8.0.16/drbd.conf /etc/drbd.conf
- Cấu hình drbd:
#vi /etc/drbd.conf
xóa các dòng từ 99-->470
Sửa lại resource 3 như sau:
resource mysql {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer {
}
on node1.mangmaytinh.us {
device /dev/drbd0;
disk /dev/sdb5;
address 192.168.9.116:7788;
meta-disk internal;
}
on node2.mangmaytinh.us {
device /dev/drbd0;
disk /dev/sdb5;
address 192.168.9.216:7788;
meta-disk internal;
}
}
#scp /etc/drdb.conf 192.168.9.216:/etc/
#Nạp module drbd vào kernel
modprobe drbd minor_count=1
#Kiểm tra module drbd có được nạp:
lsmod |grep drbd
Khởi tạo DRBD metadata trên cả 2 node
#drbdadm create-md mysql
Trên 2 node bây giờ đã có DRBD metadata
#chkconfig heartbeat on
reboot 2 máy, dịch vụ: drbd và mysqld sẽ tự được khởi động
Xem thông tin bằng lệnh
#drbd-overview
kq: 0:mysql Connected Secondary/Secondary Inconsistent/Inconsistent C r---
Quan sát sẽ thấy cả 2 node là secondary, chạy lệnh sau trên node1 để gán node này là master:
#drbdadm -- --overwrite-data-of-peer primary mysql
Trên cả 2 node, kiểm tra lạ:
#drbd-overview
Tại node1:
[root@node1 ~]# drbd-overview
0:mysql Connected Secondary/Secondary Inconsistent/Diskless C r---
[root@node1 ~]# drbdadm -- --overwrite-data-of-peer primary mysql
[root@node1 ~]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/Diskless C r---
[root@node1 ~]#
Tại node2:
[root@node2 ~]# drbd-overview
0:mysql Connected Secondary/Secondary Diskless/Inconsistent C r---
[root@node2 ~]# drbd-overview
0:mysql Connected Secondary/Primary Diskless/UpToDate C r---
[root@node2 ~]#
Định dạng và mount (chỉ làm tại node1)
#mkfs.ext3 /dev/drbd0
#mount /dev/drbd0 /var/lib/mysql/ ; ko phải tạo mount trong /etc/fstab,
Mounted point sẽ tự động dược tạo
#df -h /var/lib/mysql
[root@node1 ~]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/Diskless C r--- /var/lib/mysql ext3 1004M 18M 936M 2%
[root@node1 ~]#
Cấu hình mysql
#vi /etc/my.cnf
datadir=/var/lib/mysql/ ; chỉ đến nơi chứ dữ liệu, mặc định ko cần thay đổi
#service heartbeat restart
#node1: ifconfig | more
Mã:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:02:C5:9B inet addr:192.168.9.166 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:169 Base address:0x2000
[root@node1 ha.d]# service mysqld status
mysqld (pid 5520) is running...
[root@node1 ha.d]#
Mysqld được gọi tự động bởi heartbeat
Đặt password cho tài khoản root của mysql:
#mysqladmin -u root password '123456'
tạo database: nhansu
[root@node1 ha.d]# mysql -p
Enter password:
Mã:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database nhansu; Query OK, 1 row affected (0.02 sec) mysql> show databases; +----------------------------------+ | Database | +----------------------------------+ | information_schema | | lost+found | | mysql | | nhansu | | test | +----------------------------------+ 5 rows in set (0.02 sec) mysql> exit;
ll /var/lib/mysql/ ; sẽ thấy nhansu
[root@node1 ha.d]# ll /var/lib/mysql/
Mã:
total 20548 -rw-rw---- 1 mysql mysql 10485760 Sep 21 18:41 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Sep 21 18:41 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Sep 21 18:40 ib_logfile1 drwx------ 2 mysql mysql 16384 Sep 21 18:37 lost+found drwx------ 2 mysql mysql 4096 Sep 21 18:40 mysql srwxrwxrwx 1 mysql mysql 0 Sep 21 18:41 mysql.sock drwx------ 2 mysql mysql 4096 Sep 21 18:45 nhansu drwx------ 2 mysql mysql 4096 Sep 21 18:40 test
[root@node1 ha.d]#
#service heartbeat stop
node2: ifconfig | more ; quan sát 192.168.9.166
#mysql -p
mysql > show databases;
mysql > exit
[root@node2 ~]# service mysqld status
mysqld (pid 5330) is running...
[root@node2 ~]# mysql -p
Enter password:
Mã:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +----------------------------------+ | Database | +----------------------------------+ | information_schema | | lost+found | | mysql | | nhansu | | test | +----------------------------------+ 5 rows in set (0.04 sec) mysql>
#ll /var/lib/mysql/ ; sẽ thấy nhansu
Phần 3: Cài dặt và cấu hình forum
Tại máy web: 192.168.9.166
- Cài httpd
- Tạo database forum
mysql> create database forum;
- Gán quyền cho truy cập từ xa
- Cho các host khác kết nối đến mysql:
GRANT ALL PRIVILEGES ON forum.* to 'admin'@'%' IDENTIFIED BY '123456' with Grant option;
FLUSH PRIVILEGES;
Từ host khác thử kết nối
mysql -h 192.168.9.166 -u root -p
- Chép thư muc forum vào /var/www/html
- Câú hình forum:
#cd /var/www/html/forum/
#mv includes/config.php.new includes/config.php
#vi includes/config.php
Mã:
53 $config['MasterServer']['servername'] = '192.168.9.66' ; virtual ip của cluster 54 $config['MasterServer']['port'] = 3306; 59 $config['MasterServer']['username'] = 'admin'; 60 $config['MasterServer']['password'] = '123456';
- Từ máy 2k3: ie
http://192.168.9.166/forum/install/install.php ; Địa chỉ của máy web
0 nhận xét:
Đăng nhận xét