drbd+pacemak+mysql的高可用

要求:在上次drbd的基礎上,創建/web/mydata作爲MySQl的數據目錄,把/dev/drbd0,MySQl和掛載做成一個資源讓它們在同一個節點上,萬一主節點出現故障是將資源轉移到另一個從節點上上,從節點也能實現成爲主節點並掛載/web,即實現了高可用。

1、安裝配置drbd,參照之前的drbd文檔,所有操作還按照之前的規劃。node2現在爲主節點。

2、爲兩個節點創建一樣的mysql用戶和組,一樣的id號
mkdir /web/mydata/data -pv
groupadd -r -g 306 mysql
tail /etc/group查看
useradd -g mysql -r -s /sbin/nologin -M -u 306 mysql
id mysql查看用戶mysql

[root@node2 ~]# chown -R mysql:mysql /web/mydata

3、改變主從節點,注意:先卸載把主節點降爲Secondary,再把從節點升爲Primary
[root@node2 ~]# umount /web
[root@node2 ~]# drbdadm secondary web
[root@node1 ~]# drbdadm primary web
[root@node1 ~]# mount /dev/drbd0 /web
[root@node1 ~]# drbdadm role web查看主從
[root@node1 ~]# ll /web查看是否映射過來
現在主節點是node1,後面若還有改變主從節點,則參照此不再給出步驟。

4、在主節點node1安裝mysql
下載軟件包mysql-5.5.19-linux2.6-i686.tar.gz
tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local
cd /usr/local/
ln -sv mysql-5.5.19-linux2.6-i686 mysql
cd mysql
chown -R mysql:mysql .
script/mysql_install_db --user=mysql --datadir=/web/mydata/data/
chown -R root .
cd support-files/
cp my-large.cnf /etc/my.cnf
vim /etc/my.cnf
 [mysqld]
  datadir = /web/mydata/data
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
vim /etc/profile
 PATH=$PATH:/usr/local/mysql/bin
. !$
service mysqld start驗證mysql是否成功
service mysqld stop

5、在從節點上node2配置MySQl
把配置文件從node1複製到nde2上
/etc/my.cnf
/etc/init.d/mysqld
把node2變成主節點,驗證mysql是否啓動
vim /etc/profile爲讓客戶端連接
 PATH=$PATH:/usr/local/mysql/bin
. !$

6、安裝配置coro
兩個節點都要安裝軟件包:
cluster-glue-1.0.6-1.6.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
corosync-1.2.7-1.1.el5.i386.rpm
corosynclib-1.2.7-1.1.el5.i386.rpm
graphviz
heartbeat-3.0.3-2.3.el5.i386.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
openais-1.1.3-1.6.el5.i386.rpm
openaislib-1.1.3-1.6.el5.i386.rpm
pacemaker-1.0.11-1.2.el5.i386.rpm
pacemaker-libs-1.0.11-1.2.el5.i386.rpm
perl-TimeDate-1.16-5.el5.noarch.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm

yum localinstall --nogpgcheck -y *.rpm

簡單的配置node2
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
 secauth: on開啓認證
 bindnetaddr: 172.16.0.0
 添加下面的
 service {
         ver: 0
         name: pacemaker
}

aisexec {
         user: root
         group: root
}

創建密鑰
corosync-keygen
創建日誌目錄
mkdir /var/log/cluster

把配置文件和密鑰文件複製到node1上
/etc/corosync/authkey
/etc/corosync/corosync.conf
mkdir /var/log/cluster

在兩個節點上分別查看是否有錯誤信息
grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log
grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resou
grep pcmk_startup /var/log/cluster/corosync.log
grep  TOTEM  /var/log/cluster/corosync.log

在兩個節點上分別啓動服務
service corosync start
crm status查看狀態

7、查看集羣信息並配置全局參數
[root@node2 ~]# crm
crm(live)# configure
crm(live)configure# property stonith-enabled="false"
crm(live)configure# verify
crm(live)configure# property no-quorum-policy="ignore"
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# rsc_defaults resource-stickiness="100"
crm(live)configure# verify驗證
crm(live)configure# commit提交
crm(live)configure# show查看定義的參數是否有
crm(live)configure# exit

8、定義主從,定義drbd爲資源
 在兩個節點上都關閉drbd,不能成爲開機自動啓動,在主節點上還要卸載/web即umount /web
 service mysqld stop
 chkconfig mysqld off
 service drbd stop
 chkconfig drbd off

crm(live)configure# primitive webdrbd ocf:linbit:drbd params drbd_resource="web"
crm(live)configure# verify
crm(live)configure# master ms_webdrbd webdrbd meta master-max="1" master-nodes-max="1" clone-max="2" clone-nodes-max="1" notify="true
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# cd
crm(live)# status 查看狀態

手動切換主從:現在node2爲主節點
[root@node2 ~]# crm node standby
[root@node1 ~]# crm status
[root@node2 ~]# crm node online


crm(live)configure# primitive webfs ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/web"
crm(live)configure# colocation webfs_on_ms_webdrbd inf: webfs ms_webdrbd:Master
crm(live)configure# order webfs_after_ms_webdrbd inf: ms_webdrbd:promote webfs:start
crm(live)configure# verify
crm(live)configure# commit

crm(live)configure# show查看是否與下面信息一致
node node1.magedu.com \
 attributes standby="off"
node node2.magedu.com \
 attributes standby="off"
primitive webdrbd ocf:linbit:drbd \
 params drbd_resource="web"
primitive webfs ocf:heartbeat:Filesystem \
 params device="/dev/drbd0" directory="/web" fstype="ext3"
ms ms_webdrbd webdrbd \
 meta master-max="1" master-nodes-max="1" clone-max="2" clone-nodes-max="1" notify="true
colocation webfs_on_ms_webdrbd inf: webfs ms_webdrbd:Master
order webfs_after_ms_webdrbd inf: ms_webdrbd:promote webfs:start
property $id="cib-bootstrap-options" \
 dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \
 cluster-infrastructure="openais" \
 expected-quorum-votes="2" \
 stonith-enabled="false" \
 no-quorum-policy="ignore"
rsc_defaults $id="rsc-options" \

crm(live)# status查看webfs是否啓動

9、定義MySQl資源
crm(live)configure# primitive webmysqld lsb:mysqld
crm(live)configure# colocation mysqld_on_webfs inf: webmysqld webfs
crm(live)configure# order mysqld_after_webfs inf:  webfs:start webmysqld:start
crm(live)configure# verify
crm(live)configure# commit
crm(live)# status查看webfs和webmysqld是否都啓動起來了

10、讓node2節點故障,看定義的資源可否正確轉移至node1
[root@node2 ~]# crm node standby
[root@node1 ~]# crm node online
crm(live)# status

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章