安装环境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2

提供两台机器node1和node2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样。

#   IP                         HOSTNAME             ALIAS

10.204.80.79     node1.mylinux.com     node1

10.204.80.80     node2.mylinux.com     node2

这两台服务器之间建立ssh互信

#ssh-kegen –t rsa –p””                          生成id_rsa.pub和id_rsa 公钥和私钥文件

#ssh-copy-id –i .ssh/id_rsa.pub root@node2              把公钥文件拷到node2上,在node2中同样操作,然后把公钥文件拷到node1上,这样,两台主机之间就可以不通过密码进行互访。

安装httpd,并提供访问页面,为了显示效果,可以在两台机器上的网页文件上添加标记显示区别,我用的是web页面是phpinfo 加标识来识别,基础环境就已经安装好了。

 

安装heartbeat v2版本

因为heartbeat v2版本已经不支持在centos6版本上的rpm包,所以不能直接用yum安装,需要用src源码安装包编译后才能安装。我这里用的是已经编译好了的rpm包,安装过程要解决依赖关系,

yum -y install perl-MailTools net-snmp-libs pygtk2-libglade libnetsnmp net-snmp-libs

然后通过rpm –ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm

image

安装heartbeat v2.14版本完成

heartbeat v2的配置文件放的位置在 /etc/ha.d/目录下,有三个配置文件,authkeys  ha.cf   haresource,安装完成后默认是没有这三个文件的,可以手动创建,也可以在/usr/share/doc/heartbeat-2.1.4/ 目录下把这三个文件的示例文件拷到/etc/ha.d/ 目录下。

配置文件的作用:

        authkeys  : 认证文件,里面有启用哪种加密方式及加密密钥,crc ,sha1 和md5三种认证机制。

               heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第1张图片

                 如果要启用哪种认证方式,则在 auth 后面选择对应的数据,然后加指定验证密钥,密码是用openssl随机生成的一串16位字符

        haresource :这是由heartbeat v1版本中自带的资源管理配制文件,定义依靠和资源情况 。

                                image

                                这点定义的时资源节点默认依靠在node1节点上,vip:10.204.80.89,默认绑定在eth0上,定义的服务为httpd24

        ha.cf : 主配置文件, 定义节点,日志,传输心跳的方式等。

                      logfile /var/log/ha-log

                      node node1.mylinux.com

                      node node2.mylinux.com

                      mcast eth0 225.4.0.4 694 1 0

                      ping 10.204.80.3

配置就已经完成,启动heartbeat

在node1上启动heartbeat ,提示heartbeat启动成功,但资源是停止的。

image

查看启动日志

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第2张图片

查看启用端口

image

组播端口694已经启动

在当前节点上启动node2

image

查看资源

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第3张图片

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第4张图片

vip和httpd都已经启动。web页面也正常显示

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第5张图片

在node1上停止heartbeat服务

image

然后在node2上查看资源

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第6张图片

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第7张图片

Vip和httpd都已经成功转移到node2上,web访问页面也显示是node2上的页面

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第8张图片

在node1上重新启动heartbeat

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第9张图片

资源又重新回到node1上了,这是因为在haresource定义 资源的时候是默认在Node1上。heartbeat配置高可用web服务成功

 

 

 

配置基于nfs共享存储的mysql高可用集群

提供两台机器mysql1和mysql2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样。

#   IP                         HOSTNAME             ALIAS

10.204.80.86    mysql1.mylinux.com     mysql1

10.204.80.85    mysql2.mylinux.com     mysql2

nfs服务器 10.204.80.71

image

mysql1和mysql2建立互信关系,并且在三台服务器上添加指定同样uid和gid的mysql帐号

image

在mysql1和mysql2两台机器上挂载nfs,挂载目录为/mysqldata,并创建/mysqldata/data目录为mysql的数据目录

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第10张图片

用二进制格式安装mysql5.5.38,并指定mysql的数据目录为/mysqldata/data

image

在mysql1节点上启动mysql服务成功,

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第11张图片

然后在mysql1节点上停止mysql服务,然后在mysql2节点上同样启动mysql服务,注意在/etc/my.cnf文件中一定要添加  datadir = /mysqldata/data  这一条配置文件,

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第12张图片

在mysql2结点上启动mysql服务成功

image

集群环境已经搭好,安装heartbeat v2版本过程参照上面web高可用集群过程。启用图型界面配置资源

在/etc/ha.d/ha.cf主配置中写入以下配置

node    mysql1.mylinux.com
node    mysql2.mylinux.com

mcast eth0 225.5.0.4 694 1 0

ping 10.204.80.3

crm on    # 启用图型界面配置资源

在/etc/ha.d/authkeys 启用验证功能

2 sha1 7cd37bc0d0fbc374

输入命令 crm_mon,可以查看两个节点的状态信息

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第13张图片

两个节点都已经在线,但没有定义资源

在命令行输入image启用图型界面

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第14张图片

安装heartbeat以后会自动创建hacluster帐号,对这个帐号添加密码,启动heartbeat服务就可以登陆进去配置资源。

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第15张图片

如图显示,两个节点都已经正常在线状态。就可以添加资源

因为启动mysql服务必须要有三个资源:VIP  NFS以及mysql服务,所以把这三个资源定义到同一个资源组中。

添加资源vip,ip地址,绑定在哪个网卡的别名上,指定netmask

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第16张图片

同样添加filesystem资源nfs和mysqld服务,然后把资源启动

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第17张图片

定义约束:

因为前面定义的资源都在同一个组里面,所以这些资源必须运行在同一个节点上,于是要定义的约束是位置约束,默认资源依靠在节点mysql1上。顺序约束,必须先挂载nfs资源然后才能启用mysql服务,必须要先停止mysql服务,然后才能停止nfs服务,定义属性能如图

位置约束: 定义在mysql1上,也就是如果mysql1节点挂了会自动转移到节点mysql2,当mysql1节点重新在线后,资源又会自动转移到mysql1节点上来。

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第18张图片

顺序约束:定义资源启动的先后顺序

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第19张图片

划红圈的部份就已经说明了资源启动的顺序关系,至此集群已经定义完成。

把mysql1节点状态改为Standby,显示转换过程

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第20张图片

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第21张图片

资源转移完成,当把mysql1节点重新上线,资源又会自动转移 回去。

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群_第22张图片