集群:DRBD+corosync+pacemaker实现MySQL服务高可用(5)

四,集群服务及所需资源的定义配置(node1上的操作)
1、查看当前集群的配置信息,确保已经配置全局属性参数为两节点集群所适用:
# crm configure show
node node1.magedu.com
node node2.magedu.com
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" \
resource-stickiness="100"
 
2、将已经配置好的DRBD设备/dev/drbd0定义为集群服务;
 
1)按照集群服务的要求,首先确保两个节点上的drbd服务已经停止,且不会随系统启动而自动启动:
# service drbd stop
# chkconfig drbd off
# # ssh node2 "service drbd stop"
# ssh node2 "chkconfig drbd off"
 
# drbd-overview
drbd not loaded
 
2)配置drbd为集群资源:
 
提供drbd的RA目前由OCF归类为linbit,其路径为/usr/lib/ocf/resource.d/linbit/drbd。我们可以使用如下命令来查看此RA及RA的meta信息:
 
# crm ra classes
heartbeat
lsb
ocf / heartbeat linbit pacemaker
stonith
 
# crm ra list ocf linbit
drbd
 
查看drbd的资源代理的相关信息:
# crm ra info ocf:linbit:drbd
 
drbd需要同时运行在两个节点上,但只能有一个节点(primary/secondary模型)是Master,而另一个节点为Slave;因此,它是一种比较特殊的集群资源,其资源类型为多状态(Multi-state)clone类型,即主机节点有Master和Slave之分,且要求服务刚启动时两个节点都处于slave状态。
 
[root@node1 ~]# crm
crm(live)# configure
crm(live)configure# primitive MySQLdrbd ocf:heartbeat:drbd params drbd_resource="mysql" op monitor role="Master" interval="30s"  op monitor role="Slave" interval="31s" op start timeout="240s" op stop timeout="100s"
 
crm(live)configure# ms MS_mysqldrbd mysqldrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify="true"
 
crm(live)configure# show mysqldrbd
primitive mysqldrbd ocf:heartbeat:drbd \
params drbd_resource="mysql" \
op monitor interval="30s" role="Master" \
op monitor interval="31s" role="Slave" \
op start interval="0" timeout="240s" \
op stop interval="0" timeout="100s"
crm(live)configure# show MS_mysqldrbd
ms MS_mysqldrbd mysqldrbd \
meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
确定无误后,提交:
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# exit
 
查看当前集群运行状态:
# crm status
============
Last updated: Sat Apr 21 02:01:37 2012
Stack: openais
Current DC: node1.magedu.com - partition with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
1 Resources configured.
============
 
Online: [ node1.magedu.com node2.magedu.com ]
 
 Master/Slave Set: MS_mysqldrbd
     Masters: [ node1.magedu.com ]
     Slaves: [ node2.magedu.com ]
 
由上面的信息可以看出此时的drbd服务的Primary节点为node1.magedu.com,Secondary节点为node2.magedu.com。当然,也可以在node1上使用如下命令验正当前主机是否已经成为web资源的Primary节点:
# drbdadm role mysql
Primary/Secondary
 
我们实现将drbd设置自动挂载至/mydata目录。此外,此自动挂载的集群资源需要运行于drbd服务的Master节点上,并且只能在drbd服务将某节点设置为Primary以后方可启动。
 
确保两个节点上的设备已经卸载:
# umount /dev/drbd0
 
以下还在node1上操作:
# crm
crm(live)# configure
crm(live)configure# primitive MysqlFS ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/mydata" fstype="ext3"  op start timeout=60s op stop timeout=60s
crm(live)configure# commit
crm(live)configure# exit
 
3,mysql资源的定义(node1上操作)
先为mysql集群创建一个IP地址资源,通过集群提供服务时使用,这个地址就是客户端访问mysql服务器使用的ip地址;
# crm configure primitive myip ocf:heartbeat:IPaddr params ip=172.16.30.1
 
配置mysqld服务为高可用资源:
# crm configure primitive mysqlserver lsb:mysqld
# crm status
============
Last updated: Sat Apr 21 02:03:24 2012
Stack: openais
Current DC: node1.magedu.com - partition with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
4 Resources configured.
============
 
Online: [ node1.magedu.com node2.magedu.com ]
 
 Master/Slave Set: MS_mysqldrbd
     Masters: [ node1.magedu.com ]
     Slaves: [ node2.magedu.com ]
 MysqlFS (ocf::heartbeat:Filesystem): Started node1.magedu.com
 myip (ocf::heartbeat:IPaddr): Started node2.magedu.com
 mysqlserver (lsb:mysqld): Started node1.magedu.com

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/709138dbd9e2d012447a43387685b28f.html