heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装环境: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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装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高可用集群

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

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

                                heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

                                这点定义的时资源节点默认依靠在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启动成功,但资源是停止的。

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

查看启动日志

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

查看启用端口

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

组播端口694已经启动

在当前节点上启动node2

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

查看资源

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

在node1上停止heartbeat服务

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

然后在node2上查看资源

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

在node1上重新启动heartbeat

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

资源又重新回到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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

集群环境已经搭好,安装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高可用集群

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

在命令行输入heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群启用图型界面

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

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

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

定义约束:

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

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

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

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

上一篇:oracle常用系统命令


下一篇:sql删除自增