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
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832458nK1X.png
安装heartbeat v2.14版本完成
heartbeat v2的配置文件放的位置在 /etc/ha.d/目录下,有三个配置文件,authkeysha.cf haresource,安装完成后默认是没有这三个文件的,可以手动创建,也可以在/usr/share/doc/heartbeat-2.1.4/ 目录下把这三个文件的示例文件拷到/etc/ha.d/ 目录下。
配置文件的作用:
authkeys: 认证文件,里面有启用哪种加密方式及加密密钥,crc ,sha1 和md5三种认证机制。
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832459uhvq.png
如果要启用哪种认证方式,则在 auth 后面选择对应的数据,然后加指定验证密钥,密码是用openssl随机生成的一串16位字符
haresource :这是由heartbeat v1版本中自带的资源管理配制文件,定义依靠和资源情况 。
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832459OPgR.png
这点定义的时资源节点默认依靠在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启动成功,但资源是停止的。
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832459Y4ZO.png
查看启动日志
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832460P8HL.png
查看启用端口
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832460RmtS.png
组播端口694已经启动
在当前节点上启动node2
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832461xIhn.png
查看资源
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832461lcpU.png
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832462tEuZ.png
vip和httpd都已经启动。web页面也正常显示
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832462kuqw.png
在node1上停止heartbeat服务
http://piao719.blog.运维网.com/attachment/201409/4/287547_14098324638UOz.png
然后在node2上查看资源
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832463UIFa.png
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832464tjKp.png
Vip和httpd都已经成功转移到node2上,web访问页面也显示是node2上的页面
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832464ajK8.png
在node1上重新启动heartbeat
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832465mNL9.png
资源又重新回到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
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832465lGew.png
mysql1和mysql2建立互信关系,并且在三台服务器上添加指定同样uid和gid的mysql帐号
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832465vQdE.png
在mysql1和mysql2两台机器上挂载nfs,挂载目录为/mysqldata,并创建/mysqldata/data目录为mysql的数据目录
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832466dg0o.png
用二进制格式安装mysql5.5.38,并指定mysql的数据目录为/mysqldata/data
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832466SrFK.png、
在mysql1节点上启动mysql服务成功,
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832467h3lh.png
然后在mysql1节点上停止mysql服务,然后在mysql2节点上同样启动mysql服务,注意在/etc/my.cnf文件中一定要添加datadir = /mysqldata/data这一条配置文件,
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832467i5M0.png
在mysql2结点上启动mysql服务成功
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832468glVZ.png
集群环境已经搭好,安装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,可以查看两个节点的状态信息
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832468bmqW.png
两个节点都已经在线,但没有定义资源
在命令行输入http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832468Lsuw.png启用图型界面
http://piao719.blog.运维网.com/attachment/201409/4/287547_14098324690AZ1.png
安装heartbeat以后会自动创建hacluster帐号,对这个帐号添加密码,启动heartbeat服务就可以登陆进去配置资源。
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832470iFG2.png
如图显示,两个节点都已经正常在线状态。就可以添加资源
因为启动mysql服务必须要有三个资源:VIPNFS以及mysql服务,所以把这三个资源定义到同一个资源组中。
添加资源vip,ip地址,绑定在哪个网卡的别名上,指定netmask
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832470FE9t.png
同样添加filesystem资源nfs和mysqld服务,然后把资源启动
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832471bzwe.png
定义约束:
因为前面定义的资源都在同一个组里面,所以这些资源必须运行在同一个节点上,于是要定义的约束是位置约束,默认资源依靠在节点mysql1上。顺序约束,必须先挂载nfs资源然后才能启用mysql服务,必须要先停止mysql服务,然后才能停止nfs服务,定义属性能如图
位置约束: 定义在mysql1上,也就是如果mysql1节点挂了会自动转移到节点mysql2,当mysql1节点重新在线后,资源又会自动转移到mysql1节点上来。
http://piao719.blog.运维网.com/attachment/201409/4/287547_140983247297Du.png
顺序约束:定义资源启动的先后顺序
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832472FAtm.png
划红圈的部份就已经说明了资源启动的顺序关系,至此集群已经定义完成。
把mysql1节点状态改为Standby,显示转换过程
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832473KnV3.png
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832474Yg8R.png
资源转移完成,当把mysql1节点重新上线,资源又会自动转移 回去。
http://piao719.blog.运维网.com/attachment/201409/4/287547_1409832474MG6B.png
页:
[1]