DRBD+Corosync+Pacemaker实现MySQL服务器的高可用性群集(5)

十二:配置群集的工作属性

corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默认配置目前尚不可用,这可以通过如下命令先禁用stonith:

# crm configure property stonith-enabled=false

对于双节点的集群来说,我们要配置此选项来忽略quorum,即这时候票数不起作用,一个节点也能正常运行:

# crm configure property no-quorum-policy=ignore

定义资源的粘性值,使资源不能再节点之间随意的切换,因为这样是非常浪费系统的资源的。

资源黏性值范围及其作用:

0:这是默认选项。资源放置在系统中的最适合位置。这意味着当负载能力“较好”或较差的节点变得可用时才转移资源。此选项的作用基本等同于自动故障回复,只是资源可能会转移到非之前活动的节点上;

大于0:资源更愿意留在当前位置,但是如果有更合适的节点可用时会移动。值越高表示资源越愿意留在当前位置;

小于0:资源更愿意移离当前位置。绝对值越高表示资源越愿意离开当前位置;

INFINITY:如果不是因节点不适合运行资源(节点关机、节点待机、达到migration-threshold 或配置更改)而强制资源转移,资源总是留在当前位置。此选项的作用几乎等同于完全禁用自动故障回复;

-INFINITY:资源总是移离当前位置;

我们这里可以通过以下方式为资源指定默认黏性值:

# crm configure rsc_defaults resource-stickiness=100

十三:定义集群服务及资源(node1)

1、查看当前集群的配置信息,确保已经配置全局属性参数为两节点集群所适用

[root@node1 ~]# crm configure show

node node1.linuxidc.com

node node2.linuxidc.com

property $id="cib-bootstrap-options" \

dc-version="1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f" \

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定义为集群服务;

# service drbd stop

# chkconfig drbd off

# ssh node2 "service drbd stop"

# ssh node2 "chkconfig drbd off"

# drbd-overview

drbd not loaded

3: 配置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: Wed May 9 19:16:24 2012

Stack: openais

Current DC: node1.linuxidc.com - partition with quorum

Version: 1.1.5-1.1.el5-01e86afaaa6d4a8c4836f68df80ababd6ca3902f

2 Nodes configured, 2 expected votes

1 Resources configured.

============

Online: [ node1.linuxidc.com node2.linuxidc.com ]

Master/Slave Set: MS_mysqldrbd [mysqldrbd]

Masters: [ node1.linuxidc.com ]

Slaves: [ node2.linuxidc.com ]

由上面的信息可以看出此时的drbd服务的Primary节点为node1.linuxidc.com,Secondary节点为node2.linuxidc.com。当然,也可以在node1上使用如下命令验正当前主机是否已经成为mysql资源的Primary节点:

# drbdadm role mysql

Primary/Secondary

我们实现将drbd设置自动挂载至/mysqldata目录。此外,此自动挂载的集群资源需要运行于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="/mysqldata" fstype="ext3"  op start timeout=60s op stop timeout=60s

crm(live)configure# commit

crm(live)configure# exit

4:mysql资源的定义(node1上操作)

先为mysql集群创建一个IP地址资源,通过集群提供服务时使用,这个地址就是客户端访问mysql服务器使用的ip地址;

# crm configure primitive myip ocf:heartbeat:IPaddr params ip=192.168.2.100

配置mysqld服务为高可用资源:

# crm configure primitive mysqlserver lsb:mysqld

# crm status

============

Last updated: Sat Apr 21 02:03:24 2012

Stack: openais

Current DC: node1.88181.com - partition with quorum

Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87

2 Nodes configured, 2 expected votes

4 Resources configured.

============

Online: [ node1.linuxidc.com node2.linuxidc.com ]

Master/Slave Set: MS_mysqldrbd

Masters: [ node1.linuxidc.com ]

Slaves: [ node2.linuxidc.com ]

MysqlFS

(ocf::heartbeat:Filesystem): Started node1.linuxidc.com

myip

(ocf::heartbeat:IPaddr): Started node2.linuxidc.com

mysqlserver

(lsb:mysqld):

Started node1.linuxidc.com

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

转载注明出处:http://www.heiqu.com/8b6c538d0c48b67533fce40236229b65.html