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

[经验分享] 玩转Heartbeat,快速实现高可用性集群

[复制链接]

尚未签到

发表于 2019-1-7 06:57:26 | 显示全部楼层 |阅读模式
  Heartbeat实验环境:
  我们采用虚拟机:VMware 6.0.5
操作系统:RedHat Enterprise Linux 5
主节点和备节点架构服务:Web服务(Apache)

  实现目的:
  通过安装Heartbeat软件,实现Web服务的高可用性,以达到强化对于学习和练习Heartbeat使用的目的
  实现原理:
  我们使用加网卡,网卡之间的传输来传递心跳信息。通过内部网线,连接两个节点主机的网卡,让他们处于一个内网中,然后互相传递心跳信息
    两个节点机,通过Vmnet5之间进行通信传递心跳信息
  主节点(weiyan1.a.org):
        eth0:172.16.19.11/16   IP一定配置为静态
        eth1:Vmnet的IP:192.168.30.1/24 静态
  备节点(weiyan2.a.org):
        eth0:172.16.19.12/16   IP为静态
        eth1:192.168.30.2/24   静态
  VIP:172.16.19.1 这是我们对外公布的IP,访问都使用这个IP进行访问。(在配置文件中定义)
  我们定义两个资源,1:IP,2:Web服务
    yum源= http://172.16.0.1/pub/Server (由于我们有自己的服务器,所以我们使用yum构建基本安装环境)
  配置过程:


  • ## 主节点上配置:
  • vim /etc/hosts
  •     ##加入内容
  •     172.16.19.11    weiyan1.a.org    weiyan1
  •     ##加入内容
  •     172.16.19.12    weiyan2.a.org    weiyan2
  • vim /etc/sysconfig/network
  •     ##修改内容
  •     hostname=weiyan1.a.org
  • ##直接定义主节点hostname
  • hostname weiyan1.a.org
  • ##将配置发送至备节点省略配置
  • scp /etc/hosts weiyan2:/etc/hosts


  • ## 备节点上配置:
  • vim /etc/sysconfig/network
  •     ## 修改内容:
  •     hostname=weiyan2.a.org
  • ## 直接定义备节点hostname
  • hostname weiyan2.a.org


  • ## 主节点上配置:
  • ## 为心跳检测加入公钥,防止连接时提示输入密码
  • ssh-keygen -t rsa
  • ssh-copy-id -i .ssh/id_rsa.pub root@weiyan2
  • ssh weiyan2 -- 'ifconfig' ## 检测连接备节点是否需要密码,应为直接显示
  • ## 安装httpd并定义文件
  • yum install httpd -y
  • echo “weiyan1.a.org” > /var/www/html/index.html


  • ## 在备节点上进行一样的配置:
  • ssh-keygen -t rsa
  • ssh-copy-id -i .ssh/id_rsa.pub root@weiyan1
  • ssh weiyan1 -- 'ifconfig'  ## 检测连接主节点是否需要密码
  • yum install httpd -y
  • echo “weiyan2.a.org” > /var/www/html/index.html


  • ## 在主节点和备节点上安装heartbeat2的相关软件rpm包
  • mkdir heartbeat
  • cd heartbeat/
  • ## 这里我直接使用服务器上准备好的相关软件,大家如果需要可以从网上寻找
  • lftp 172.16.0.1/pub/Sources/Heartbeat2




  • mget *.i386.rpm
  • yum localinstall *.rpm --nogpgcheck
  • ## 将安装包发送到从节点,懒一下O(∩_∩)O~
  • cd
  • scp -r heartbeat/ weiyan2:/root
  • ## 发送后到备节点上安装,安装方法同主节点


  • ## 在主节点上:
  • cd /usr/share/doc/heartbeat-2.1.4/
  • cp ha.cf haresources authkeys /etc/ha.d
  • ##先编辑最底层的文件:ha.cf
  • cd /etc/ha.d/
  • vim ha.cf
  •     ## 启用logfile
  •     ## 启用:udpport 694
  •     ## 写入:
  •         bcast eth1
  •     ## 写入:
  •         node weiyan1.a.org
  •         node weiyan2.a.org


  • ##编辑authkeys
  • ##产生随机数
  • dd if=/dev/urandom bs=512 count=1 | md5sum
  • vim authkeys
  •         auth 2  ## 指定认证方式
  •         2 sha1 d41d8cd98f00b204e9800998ecf8427e  ## 将随机数贴入
  • chmod 400 authkeys  ## 必须给予该文件400权限


  • ## 编辑 haresources,定义集群的工作,以及虚拟IP的定义
  • vim haresources
  •         ##定义主节点,定义流动地址/指定网卡/指定广播地址 定义服务
  •         weiyan1.a.org 172.16.19.1/16/eth0/172.16.255.255 httpd


  • ##通过另一种机制配置weiyan2
  • cd /usr/lib/heartbeat
  • ./ha_propagate
  • cd /etc/ha.d
  • scp haresources weiyan2:/etc/ha.d



  • ## 启动集群服务
  • /etc/init.d/heartbeat start
  • ## 在当前已启动的主节点上启动另一个节点weiyan2
  • ssh weiyan2 -- ‘/etc/init.d/heartbeat start’

  此时,我们可以查看Iptables信息,发现集群自动将定义的VIP给予了主节点weiyan1的eth0:0上

  访问一下浏览器:

  查看从节点weiyan2的iptables,发现ip中没有虚拟ip

  停止服务,检测是否唤醒weiyan2
在备节点weiyan2上停止节点weiyan1
  ssh weiyan1 -- ‘/etc/init.d/heartbeat stop’
  此时发现weiyan1上立刻没有了eth0:0
而在weiyan2上发现了我们的虚拟IP

  此时再次访问浏览器

  在weiyan2上再次启用节点1
  ssh weiyan1 -- ‘/etc/init/heartbeat start’
  则发现服务又流转回去了。
  最后提供两个有趣的脚本
  /usr/lib/heartbeat/hb_standby
使用这个脚本,则能让自己变成备节点,将主节点拱手让人
  /usr/lib/heartbeat/hb_takeover
使用这个脚本可以让自己将节点抢回来,这个只能默认为主节点使用
  总结:
  通过简单配置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-660098-1-1.html 上篇帖子: HeartBeat?你到底要干什么! 下篇帖子: Heartbeat+Drbd+MySQL高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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