corosync pacemaker mysql replication 实现高可用

张映 发表于 2015-04-22

分类目录: mysql

标签:, , ,

写这篇文章的时候,其实心里很不爽,国外VPN出了点问题,所以用度娘了,度娘搜出来的东西,80%是一样,有的名字不一样,但是内容还是一样的,corosync pacemaker mysql drbd 的高可用,我在想,如果不用drbd是不是就不能用corosync pacemaker实现高可用了?

对度娘的搜索算法,以及竞价排名,我只想说我去年买了个表。

一,mysql replication主从配置

请参考:mysql replication 主从(master-slave)同步

二,corosync pacemaker安装配置

请参考:corosync pacemaker nginx 高可用 安装配置

上面二篇博客的/etc/hosts是定义的不一样的,以mysql replication为准,也就是masters,slave2。

在这里要注意,改过hosts的名称后,masters节点,要重新生成auth文件的。

[root@masters corosync]# corosync-keygen
[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多节点都要copy

各节点重启corosync。

三,masters节点,配置mysql crmsh

1,配置mysql crmsh

[root@masters tank]# crm
crm(live)# configure
crm(live)configure#
crm(live)configure# property stonith-enabled=false
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# primitive mysqlip ocf:heartbeat:IPaddr params ip=192.168.10.231 op monitor interval=30s timeout=20s on-fail=restart
crm(live)configure# primitive mysqlserver lsb:mysqld
crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip
crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# show

在这里发现一个问题,在网上看了一些资料,关于monitor后时间配置,有几种版本

monitor interval=30 timeout=20

monitor interval="30" timeout="20"

monitor interval="30s" timeout="20s"

我没有验证这些写法的正确性,但是monitor interval=30s timeout=20s,这种写法肯定是正确的,我用的系统是centos 6.5 64位,并且在帮助文档中也是这种写法。

Pacemaker corosync 时间写法

Pacemaker corosync 时间写法

这是配置完成后的,通过show查看

配置成功后,通过configure mysql show

配置成功后,通过configure mysql show

2,检测mysql各节点状态

[root@masters tank]# crm status
Last updated: Thu Apr 23 02:36:54 2015
Last change: Thu Apr 23 02:36:06 2015
Stack: classic openais (with plugin)
Current DC: slave2 - partition with quorum
Version: 1.1.11-97629de
5 Nodes configured, 2 expected votes
3 Resources configured

Online: [ masters slave2 ]  //二节点都要在线
OFFLINE: [ localhost.localdomain node1 node2 ]

 webip (ocf::heartbeat:IPaddr): Started masters
 nginx_res (lsb:nginx): Started masters
 mysqlip (ocf::heartbeat:IPaddr): Started slave2
 mysqlserver (lsb:mysqld): Started slave2

如果online,节点不全的话,offline的机器上面,执行

[root@slave2 ~]# crm node online

四,测试

[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果实际连接masters的话
[root@masters ~]# crm node standby //masters机器,将masters挂起
[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功连接到slave2的话,说明测试成功

有三台mysql,一主二从,如果主服务器down机了,二台从服务器,能不能自动转成一主一从,并保持数据的完成性呢,MHA可以帮我们解决这问题。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/mysql/1720.html/comment-page-1

2 条评论

  1. Tom 留言

    mysql replication 主从(master-slave)同步" 樓主這一篇不能訪問丫, 請查看, 謝謝

  2. 张映 留言

    阿里云,越来越垃圾了