基于corosync软件,制作mysql高可用共享存储
       首先,我们来了解一下这款软件,它是从openAIS里脱下来的新产品,与pacemaker结合后,成为十分强大的高可用集群管理器。要安装的时候,还要有pacemaker,安装后,还要对其进行配置!

我们以两个节点为例来讨论:
        首先,准备两台已经安装好数据库的服务器,且mysql服务不能开机自动启动,如果测试可以正常启动了,将其关闭就可以了,其ip地址以172.16.20.11,172.16.20.12为例,配置双机互信,节点名与hostname一致,并写进配置文件内。
        在另一台172.26.20.1上建立起nfs服务
        首先创建一个逻辑卷,将其挂载载至/mydata目录下(一般mysql挂在这个目录),那把这个目录给共享出去,命令如下:
#vim /etc/exports
#/mydata  172.16.20.0/16(rw)
        然后,安装corosync软件,此软件有许多所依赖的文件包,所以要提前下载,用yum来安装比较妥当,安装完成后,还需要做一下配置:
 

  1. vim /etc/corosync/corosync.conf  
  2. compatibility: whitetank  
  3.  
  4. totem {  
  5.         version: 2  
  6.         secauth: on  
  7.         threads: 0  
  8.         interface {  
  9.                 ringnumber: 0  
  10.                 bindnetaddr: 172.16.0.0  
  11.                 mcastaddr: 226.94.20.1  
  12.                 mcastport: 5405  
  13.         }  
  14. }  
  15.  
  16. logging {  
  17.         fileline: off  
  18.         to_stderr: no  
  19.         to_logfile: yes  
  20.         to_syslog: no  
  21.         logfile: /var/log/cluster/corosync.log  
  22.         debug: off  
  23.         timestamp: on  
  24.         logger_subsys {  
  25.                 subsys: AMF  
  26.                 debug: off  
  27.         }  
  28. }  
  29.  
  30. amf {  
  31.         mode: disabled  
  32. }  
  33.  
  34. service {  
  35.          ver: 0  
  36.          name: pacemaker  
  37.          use_mgmtd: yes  
  38. }  
  39.  
  40. aisexec {  
  41.         user:  root  
  42.         group: root  
  43. }  
  44.  


接着生成authkey文件,使用命令:
corosync-keygen
      然后再将生成的authkey文件复制到另一台服务器上即可,之后再在两个节点上建立日志文件的目录:
mkdir /var/log/cluster,以便和配置文件相对应。

这样就可以在两个节点上分别启动corosync
稍等片刻之后就可以试着查看节点是否在线了。查看命令:
crm_mon  或者 crm-overview都可以啦!
在线后,就可以用crm 进入配置集群服务了
为了可以正常工作,首先需要配置一些属性信息:
#property stonith-enabled=false
#property no-quorum-policy=ignore
#verity
#commit
还可以配置其有关粘性值:
rsc_defaults resource-stickiness=88(只要大于零,就表示愿意在此节点停留)
配置后可:
以使用命令shou进行查看
下面要配置资源信息:
在配置模式下,用primitive 来实现,具体如下:

primitive IP ocf:heartbeat:IPaddr params ip=172.16.20.17(此地址为vip)
primitive mynfs ocf:heartbeat:Filesystem params device="172.16.20.1:/mmydata" directory "/mydata" fstype="nfs" op start timeout=60s op stop timeout=60s(配置文件系统资源,并且还有时间参数,且不能小于60,否则将出错)
primitive mysql lsb:mysqld (添加mysql资源)
由于mysql要挂载在nfs文件系统上,所以,要定义排列选项:
colocation mysql_and_mydfs inf: mynfs mysql
还有要让mysql最后启动,所以,定义order:
order mysql_after_mynfs mandatory: mynfs mysql
order mysql_after_IP mandatory: mysql IP
verity
commit
最后就可以测试查看这个高可用集群了!