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

[经验分享] 基于heartbeat v2与heartbeat

[复制链接]

尚未签到

发表于 2019-1-6 09:24:49 | 显示全部楼层 |阅读模式
  实验环境:四台虚拟机,两台为LVS,两台为web服务器。系统为redhat 5.8。使用图形窗口来配置。

  此次实现只对lvs做高可用,且lvs工作在DR模型中。DR模型怎么配置此次实现不在详细说明,请参照http://bingodeng.blog.运维网.com/1038075/948738。
  一,先对we1,web2安装好httpd软件,并且能够正常访问。还需要修改内核参数,对web1,web2,测试好后,请务必停止httpd服务。
  二,分别对lvs两台服务器测试,并用vip能正常访问到。
  三,上面两步做完之后,对lvs的yum源配置好,并对lvs做双机互信。双机互信参考此文http://bingodeng.blog.运维网.com/1038075/954107
  四,在两台lvs下载下列rpm包,并用yum -y --nogpgcheck localinstall *.rpm安装。


  • heartbeat-2.1.4-9.el5.i386.rpm            
  • heartbeat-pils-2.1.4-10.el5.i386.rpm
  • heartbeat-devel-2.1.4-9.el5.i386.rpm      
  • heartbeat-stonith-2.1.4-10.el5.i386.rpm
  • heartbeat-gui-2.1.4-9.el5.i386.rpm         
  • libnet-1.1.4-3.el5.i386.rpm
  • heartbeat-ldirectord-2.1.4-9.el5.i386.rpm  
  • perl-MailTools-1.77-1.el5.noarch.rpm

  五,安装成功后需要给heartbeat,heartbeat-ldirector提供配置文件


  • [root@director1 ~]# cd /etc/ha.d/
  • [root@director1 ~]# cp /usr/share/doc/heartbeat-2.1.4/authkeys /etc/ha.d/
  • [root@director1 ~]# cp /usr/share/doc/heartbeat-2.1.4/ha.cf /etc/ha.d/
  • [root@director1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/

  六,注意我的两台lvs的主机名分别为director1,director2。对上面的三个配置文件做以下修改:
(1)vim /etc/ha.d/ha.cf


  • keepalive 2表示每隔多长时间向对方传递一个心跳消息,启用
  • deadtime  30 备用节点在多长时间内收不到对方的心跳信息,则认为对方有故障,启用
  • warntime 10 多长时间发出警告,启用
  • initdead 120s 默认是120表示第一次等待多长时间等待别的节点加入。如果超过这个时间还没加入,
  • 则就只认为只有自己一个节点
  • udpport 694 心跳信息传递的端口,专门留给heartbeat传递心跳信息
  • bcast eth0,启用广播方式。也可以使用单播。通过eth0来广播
  • node director1
  • node director2定义节点的名称
  • auto_faliback 0n 表示当这个节点又重新工作时,把资源抢回来了。启用
  • ping 172.16.0.1 这个IP是网关,能ping通,表示网络正常。如果接收不对方的心跳则认为对方有故障,启用
  • debug 1如果启用可以记录更详细的信息,当出现故障可以启用。
  • compression bz2 启用压缩,采用bz2
  • compression_threshold 2只有大于2k才压缩,启用
  • crm yes(respawn) 添加这一行,表示启用crm功能,可以使用crm命令,并启用图形终端,这行必须添加

  (2)vim /etc/ha.d/authkeys添加下面两行,并此修改权限chmod 600 /etc/ha.d/authkeys,如果不修改无法启动heartbeat服务。


  • auth 1
  • 1  md5 294f6577d231a3bedaf26540a4faa660 通过下面命令生成
  • [root@node1 ha.d]# dd if=/dev/urandom  count=1 bs=512 |md5sum

  (3)vim /etc/ha.d/ldirectord.cf


  • # Global Directives (表示全局配置属性)
  • checktimeout=3 检查realserver超时时间,如果3秒内没有响应,则认为rs服务器出现故障
  • checkinterval=1 每隔一秒钟检查一次
  • #fallback=127.0.0.1:80
  • autoreload=yes  当前配置文件发生改变会自动加载
  • logfile="/var/log/ldirectord.log" 启用日志
  • #logfile="local0"
  • #emailalert="admin@x.y.z"
  • #emailalertfreq=3600
  • #emailalertstatus=all
  • quiescent=yes  工作在安静模式
  • virtual=172.16.150.1:80      
  •          real=172.16.150.30:80 gate        
  •          real=172.16.150.31:80 gate        
  •          #fallback=127.0.0.1:80 gate real都不在线时,将服务转到本机                 
  •          service=http   有监测后台rs的状态,基于http协议来检测         
  •          request=".test.html" 最好不要使用主页,使用一个隐藏的页面        
  •          receive="ok" 从检测页中获取的信息,如果能获取到则rs正常,否则就挂机了
  •          #virtualhost=some.domain.com.au 虚拟主机名         
  •          scheduler=rr 使用哪种算法         
  •          #persistent=600是否启用持久性        
  •          #netmask=255.255.255.255 虚拟ip的掩码        
  •          protocol=tcp                  
  •          checktype=negotiate 检测方式,协商的方式        
  •          checkport=80         
  •          #request="index.html"                   
  •          #receive="Test Page"        
  •          #virtualhost=www.x.y.z

  在web1,web2,分别建立
  [root@web1 ~]# vim /var/www/html/.test.html 建立测试页面,里面的内容必须包含ok。
  [root@web2 ~]# vim /var/www/html/.test.html
  (4)将三个文件复制director2上


  • [root@director1 ha.d]# scp authkeys ldirectord.cf ha.cf director2:/etc/ha.d/

  (5)启动heartbeat服务,在同一台主机启动与停止heartbeat服务


  • [root@director1 ~]# /etc/init.d/heartbeat start
  • Starting High-Availability services:  
  •                                                            [  OK  ]
  • [root@director1 ~]# ssh director2  /etc/init.d/heartbeat start

  七,下面开始使用图形界面配置:
  (1)给hacluster用户设定密码,登录图形的时候需要用这个用户登录,且需要密码
  [root@director1 ~]# passwd  hacluster
[root@director1 ~]# ha_gui & 启用图形终端,后台运行这个进程。我使用的远程连接软件Xmanager Enterprise 4,如果你使用的软件不支持启动图形界面,需要到虚拟机里面执行此命令,当执行完后,会弹出一个登录窗口。


  登录之后,可以看到当前两个集群节点的状态
  (2)定义资源vip与ldirectord两个资源,点Resources。

  选择native类型,Resouce ID,自己定义

  定义资源ldirector

  此时完成两个资源的定义。让两个资源生效,如下图点,右击,点start。两个资源不会同时运行在同一个节点上,那么此时需要对两个节点定义约束关系。

  对资源定义约束关系:分别定义顺序约束,与排列约束。顺序约束表示,两个资源哪个资源先启动。而排列约束定义两个资源要不要同时运行在一个节点,还是不能运行在同一个节点上。
  (1)先定义顺序约束:order。ldirectord比vip先动。ldirectord控制的是ipvsadm的规则。

  (2)定义排列约束:ldirectord与vip必须要在一起,才有意义。

  到此结束,查看vip,不能用ifconfig查看,需要用ip addr show来查看。查看ipvsadm -Ln,有没有生效。




运维网声明 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-659865-1-1.html 上篇帖子: heartbeat+lvs搭建负载均衡高可用集群 下篇帖子: Heartbeat高可用性和LVS的综合应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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