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

[经验分享] 基于heartbeat v2和ldirectord现实director高可用

[复制链接]

尚未签到

发表于 2019-1-7 13:40:20 | 显示全部楼层 |阅读模式
  本篇内容是基于上篇《LVS负载均衡集群详解》为前提,所以一些基本的上篇文档详细介绍过的内容不再重复。

一、环境拓扑介绍


说明:前端两台调度服务器Director1和Director2,两者之间可以实现故障转移,例如当Director1节点出现故障时Director2节点可以自动接管调度服务器的资源,能够继续为为客户端转发请求到后端Real Server;而且当后台的node1或着node2出现故障时能够把故障节点自动踢出列表,当恢复正常时能够自动加入。
注意
      1、设置各个节点间的时间同步
      2、基于hosts文件实现能够互相用主机名访问
      3、使用uname -n执行结果要和主机名相同
      4、确保ipvsadm服务和httpd服务关闭开机启动

二、安装相关软件包
需要的软件:
ipvsadm
heartbeat                                         
heartbeat-ldirectord                  
heartbeat-pils                                 
heartbeat-stonith                    
libnet           
perl-MailTools                 
libtool-ltdl               
openhpi-libs            
perl-Compress-Zlib              
perl-HTML-Parser            
perl-HTML-Tagset            
perl-TimeDate   
perl-libwww-perl

三、配置Director节点之间高可用
1、复制配置文件样例
[root@director1 ~]# cd /usr/share/doc/heartbeat-2.1.4/
[root@director1 heartbeat-2.1.4]# cp authkeys ha.cf haresources /etc/ha.d/

2、编辑配置文件
[root@director1 heartbeat-2.1.4]# cd /etc/ha.d/
[root@director1 ha.d]# vim ha.cf
--------------------------添加如下行------------------------------------
bcast   eth1 //定义发送心跳信息的广播接口,我这里是eth1
node    director1//定义节点
node    director2
-------------------------结束--------------------------------------------

编辑配置文件authkeys
[root@director1 ha.d]# vim authkeys   
-------------------------添加如下行---------------------------------
auth 1
1 md5 124hddhu56d8yd8//后边的为随机数值
--------------------------结束-------------------------------------
[root@director1 ha.d]# chmod 600 authkeys   //设置权限为600

编辑配置文件haresources
[root@director1 ha.d]# vim haresources    //编辑资源配置文件添加如下行
director1       192.168.56.200/32/eth1/192.168.56.200 ldirectord//定义资源VIP,ldirectord服务

编辑ldriectord配置文件
[root@director1 ha.d]# vim ldirectord.cf
--------------------------------修改为以下内容----------------------------
checktimeout=3    //检测超时时间
checkinterval=1    //检测间隔
autoreload=yes    //该配置文件修改后能够自动重载
quiescent=yes
virtual=192.168.56.200:80//定义VIP地址和端口
        real=192.168.56.103:80 gate//定义real server的IP和端口
        real=192.168.56.104:80 gate//定义第二个real server
        fallback=127.0.0.1:80 gate//如果所有后端节点不可用时请求连接的转发位置,此处设置转发给director自身的80端口
        service=http    //定义服务类型
        request=".test.html"//检测后端节点时使用的页面
        receive="ok"    //检测的关键字,这里的设置表示测试访问.test.html页面是否包含ok关键字,如果有则说明该节点正常,否则认定为故障
        scheduler=wlc//指定算法
        protocol=tcp//定义协议为tcp
        checktype=negotiate//检测类型
        checkport=80    //检测的端口
-----------------------------------结束------------------------------------------

3、把配置文件拷贝到director2节点
[root@director1 ha.d]# scp -p ha.cf authkeys ldirectord.cf haresources director2:/etc/ha.d/


四、配置后端服务节点

安装apache配置测试主页
[root@node1 ~]# yum -y install httpd
[root@node1 ~]# echo node1 > /var/www/html/index.html
[root@node1 ~]# echo ok > /var/www/html/.test.html
配置节点的其他参数请参看LVS的文档介绍,这里执行在LVS文档中介绍的real server上执行的脚本(参见另外一篇博客:LVS负载均衡集群详解):
[root@node1 ~]# bash realserver.sh start

在node2上执行与node1节点相同的操作,为了演示方便可以看出效果在node2节点上的index.html页面输入与node1不同的内容以示区分。

五、启动heartbeat服务测试
[root@director1 ha.d]# service heartbeat start
[root@director1 ha.d]# ssh director2 'service heartbeat start'//director节点通过SSH启动heartbeat服务

测试Director1节点故障
[root@director1 ha.d]# /usr/lib/heartbeat/hb_standby//该脚本为heartbeat自带的脚本可以使该节点转为备用节点。



测试node1节点故障
[root@node1 ~]# service httpd stop

  在director2节点上使用ipvsadm -Ln命令可以看到已经自动把node1节点相关条目移除

测试node1和node2节点同时故障,由于在ldirectord配置文件中设置了当所有后端节点故障时请求转发至director本身的80端口,所以这里需要director也安装httpd服务,或者修改该配置文件转向其他Web服务器。

总结:至此一个高可用的Director调度服务器集群已经完成,同时也要注意在现实环境中至少要2条线路来同时广播节点心跳信息,避免因为线路的故障造成节点间的资源争夺。




运维网声明 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-660392-1-1.html 上篇帖子: heartbeat 配置两台web服务器高可用集群案例 下篇帖子: 使用Heartbeat V1和V2 实现nfs作为共享存储的高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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