linux如何mysql%3e_集群:corosync+pacemaker实现MySQL服务高可用

集群:corosync+pacemaker实现MySQL服务高可用

[日期:2012-07-09]

来源:Linux社区

作者:leejia

[字体:大 中 小]

三,安装corosync+pacemakershix实现基于MySQL的高可用

1,在两个节点上执行操作,去掉mysql的挂载目录,我们要实现把nfs定义为资源,可以实现自动挂载:

# umount /mydata

2,安装corosync和pacemaker,首先下载所需要如下软件包至本地某专用目录(这里为/root/cluster):

cluster-glue

cluster-glue-libs

heartbeat

resource-agents

corosync

heartbeat-libs

pacemaker

corosynclib

libesmtp

pacemaker-libs

openais   (这个两个包做如下的实验没有用,可以不装)

openaislib

下载地址:http://clusterlabs.org/rpm/。请根据硬件平台及操作系统类型选择对应的软件包;这里建议每个软件包都使用目前最新的版本。

3,使用如下命令安装:

# cd /root/cluster

# yum -y --nogpgcheck localinstall *.rpm  (配置好yum源为系统光盘,会对系统光盘中的软件包有依赖关系)

注意:两个节点都要进行软件包的安装

4、配置corosync:(以下命令在node1.magedu.com上执行)

# cd /etc/corosync

# cp corosync.conf.example corosync.conf

接着编辑corosync.conf,添加如下内容:

service {

ver:  0

name: pacemaker

use_mgmtd: yes

}

aisexec {

user: root

group:  root

}

开启安全验证功能,当有节点加入集群需要有验证密码串:

secauth: on

并设定此配置文件中 bindnetaddr后面的IP地址为你的网卡所在网络的网络地址,我们这里的两个节点在172.16.0.0网络,因此这里将其设定为172.16.0.0,如下(也可以是ip地址):

bindnetaddr: 172.16.0.0

设定多播地址,从224.0.0.0到239.255.255.255都可以设定:

mcastaddr: 229.94.1.1

生成节点间通信时用到的认证密钥文件:

# corosync-keygen

将corosync和authkey复制至node2:

# scp -p corosync.conf authkey  node2:/etc/corosync/

分别为两个节点创建corosync生成的日志所在的目录:

# mkdir /var/log/cluster

# ssh node2  'mkdir /var/log/cluster'

5、尝试启动,(以下命令在node1上执行):

# /etc/init.d/corosync start

查看corosync引擎是否正常启动:

# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1397.

Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.

Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.

查看初始化成员节点通知是否正常发出:

# grep  TOTEM  /var/log/messages

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transport (UDP/IP).

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] The network interface [172.16.100.11] is now up.

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.

检查启动过程中是否有错误产生:

# grep ERROR: /var/log/messages | grep -v unpack_resources

查看pacemaker是否正常启动:

# grep pcmk_startup /var/log/messages

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: CRM: Initialized

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] Logging: Initialized pcmk_startup

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Service: 9

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Local hostname: node1.magedu.com

如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync

# ssh node2 -- /etc/init.d/corosync start

注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;

使用如下命令查看集群节点的启动状态:

# crm status

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

Last updated: Tue Jun 14 19:07:06 2011

Stack: openais

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

Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87

2 Nodes configured, 2 expected votes

0 Resources configured.

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

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

从上面的信息可以看出两个节点都已经正常启动,并且集群已经处于正常工作状态。

6、配置集群的工作属性,禁用stonith

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

# crm_verify -L

crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: Resource start-up disabled since no STONITH resources have been defined

crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option

crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity

Errors found during check: config not valid

-V may provide more details

我们里可以通过如下命令先禁用stonith:

# crm configure property stonith-enabled=false

使用如下命令查看当前的配置信息:

# 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"

从中可以看出stonith已经被禁用。

上面的crm,crm_verify命令是1.0后的版本的pacemaker提供的基于命令行的集群管理工具;可以在集群中的任何一个节点上执行。

7、为集群添加集群资源

corosync支持heartbeat,LSB和ocf等类型的资源代理,目前较为常用的类型为LSB和OCF两类,stonith类专为配置stonith设备而用;

可以通过如下命令查看当前集群系统所支持的类型:

# crm ra classes

heartbeat

lsb

ocf / heartbeat pacemaker

stonith

如果想要查看某种类别下的所用资源代理的列表,可以使用类似如下命令实现:

# crm ra list lsb

# crm ra list ocf heartbeat

# crm ra list ocf pacemaker

# crm ra list stonith

# crm ra info [class:[provider:]]resource_agent

例如:

# crm ra info ocf:heartbeat:IPaddr0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值