设为首页 收藏本站
查看: 1137|回复: 0

[经验分享] 利用heartbeat实现高可用集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-12 10:05:33 | 显示全部楼层 |阅读模式
利用heartbeat实现高可用集群
heartbeat是一个可以提供messaging  Layer层的软件,他有三个版本(v1、v2、v3),本实验使用heartbeat v2版本,由于v2版本自带了2个资源管理器heartbeat和crm,因此,本文会分别实现2个不同的资源管理器来实现高可用集群。

一、利用heartbeat自带的资源管理器heartbeat来实现高可用集群
1、实验环境
本次实验作者是在RHEL 5.8系统上实现的,并且是在vm虚拟机上实现的。每一个虚拟机上面只需要一个网卡即可,网卡模式可以是桥接也可以是仅主机模式。
本次实验需要用到的ip地址
VIP:192.168.0.25
RS1:192.168.0.111  对应的主机名为ha1.xsl.com
RS2:192.168.0.200  对应的主机名为ha2.xsl.com

2、各个节点的时间必须要同步
由于高可用集群的需要根据心跳信息来判断对方是否正常,且心跳信息传递的时间间隔默认是以秒为单位的,因此,如果两个节点的时间不一致会导致该实验失败。
可以配置ntp服务来使各个节点同步,关于ntp服务在此处不介绍,配置比较简单

3、主机名要保持一致
使用hostname得到的结果要和uname  -n命令得到的结果保持一致

4、将主机名由/etc/hosts文件来解析
将ha1.xsl.com和ha2.xsl.com的主机名和ip的对应关闭配置在本地的hosts文件中,记住,不应该将高可用节点的主机名由dns来解析,否则一点dns出现故障,你的高可用服务也就不可用呢!

5、配置ssh双机互信
在RS1上(ip为192.168.0.111)配置如下:
#ssh-keygen -t rsa  -N  ''
#ssh-copy-id  -i  /root/.ssh/id_rsa.pub   192.168.0.200

在RS2上(ip为192.168.0.200)配置如下:
#ssh-keygen  -t  rsa -N ''
#ssh-copy-id  -i  /root/.ssh/id_rsa.pub   192.168.0.111

使用ssh连接测试一下,如果不需要密码,则表示测试成功

6、安装heartbeat相关软件
heartbeat-ldirectord - Monitor daemon for maintaining high availability resources, 为ipvs高可用提供规则自动生成及后端realserver健康状态检查的组件;

heartbeat-2.1.4-11.el5.i386.rpm    这个heartbeat核心组件
heartbeat-gui-2.1.4-11.el5.i386.rpm    这个是一个提供gui方式的集群管理界面工具
heartbeat-ldirectord-2.1.4-11.el5.i386.rpm     为ipvs高可用提供规则自动生成及后端realserver健康状态检查的组件;
heartbeat-pils-2.1.4-11.el5.i386.rpm      其他下面的都是依赖包
heartbeat-stonith-2.1.4-11.el5.i386.rpm
libnet-1.1.6-7.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm

安装命令   yum   -y  --nogpgcheck install  *.rpm

7、安装httpd服务
#yum  install  httpd

8、heartbeat的配置文件
heartbeat有三个配置文件,分别为:
authkeys :这是一个密钥文件,用于确保其他非高可用集群节点随便加入到高可用集群中去。因此,彼此各个节点之间都是以加密的形式来传输数据的。
ha.cf:这个heartbeat服务的配置文件,例如定义心跳信息等等
haresources:这是一个资源管理配置文件,里面定义了资源如Vip、服务(如httpd服务)等等信息

在/etc/ha.d/命令下默认没有这三个文件,需要从其他地方复制过来,如:
#cp  /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources}    /etc/ha.d/

9、修改三个配置文件
First修改authkeys文件
里面只有三种加密方式,这里选择md5加密方式,格式如下
vim  authkeys
auth  3
3  md5   这里是一堆随机数
生产一堆随机数方式
dd  if=/etc/urandom  bs=1 count=512   | MD5sum
配置完成后需要修改该文件的权限为600
#chmod 600  authkeys
否则,会出现如下报错信息
heartbeat[27496]: 2011/11/14_18:26:11 ERROR: Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended.

second修改ha.cf文件
#crm on    #这个需要添加,指要用heartbeat V2版的资源管理器crm,默认使用的是heartbeat,在这里需要注释掉,等到后面的实验使用crm来实现的时候,需要启动该选项。
logfile        /var/log/ha-log ##可以定义日志自定义存放位置,默认是/var/log/message
#logfacility     local0  ##日志发送的facility,这个和上面的只能选择一个
keepalive 2         ##发送心跳信息间隔
deadtime 15         ##多少秒收不到心跳就以为它挂点了
warntime 5          ##多少秒收不到心跳就发出警告信息
initdead 120        ##服务启动或者重启多少秒之后就认为对方挂了
udpport        694  ##心跳信息发送端口
mcast eth0 225.1.2.1 694 1 0 ##多播组,上面有详细的参数解释
auto_failback on    ##主节点挂点,从节点代替,当主节点又正常了,是否归还资源
node   ha1.xsl.com  ##定义集群节点,这里的节点名称要和hostname保持一致
node   ha2.xsl.com  ##定义集群节点
ping 172.16.0.1     ##最好是一个网关
compression     bz2 ##是否压缩心跳报文
compression_threshold 2 ##大于多少才压缩

finish配置资源文件haresources
这里有许多配置资源的格式,可以参考上面的提示信息进行配置
这里我配置的资源格式为:
ha1.xsl.com    IPaddr::192.168.0.25/16/eth0    httpd
格式说明:
ha1.xsl.com为主节点,这里只需要配置主节点,其他节点不需要配置
IPaddr:这里是ocf风格的资源,这些资源位于/etc/ha.d/rc.d/目录下,IPadd后面接了2个“冒号”,表示为该资源的参数(ocf风格的脚本是可以接受参数的),如果有多个参数,则需要使用2个冒号隔开,后面的地址(192.168.0.25)是VIP,且工作在eth0这个接口的别名上(如果不配接口,则VIP会自动配置在与它在同一个网段内的接口的别名上)。如果有多个资源则使用空格隔开,这里的httpd就是I个资源。

建议:配置完成上述步骤后,可以先把httpd服务开启,手动测试一下,看看可不可以正常访问,如果可以访问则继续下面的步骤;否则,先排除看看httpd服务配置是否有问题。还有就是此处不要把heartbeat服务启动哦!!!

10、关闭heartbeat和httpd开启自动启动功能
chkconfig  heartbeat  off
chkconfig  httpd  off

11、启动heartbeat服务和httpd服务
service heartbeat  start这个服务需要在所有的节点上开启
service  httd  start  这个服务只需要在主节点上开启

按照上面的步骤,利用heartbeat就可以实现一个高可用集群服务



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-40587-1-1.html 上篇帖子: heartbeat(v1)版、(v2)版高可用web集群 下篇帖子: Heartbeat+httpd+NFS 实现高可用的Web服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表