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

[经验分享] heartbeat高可用原理详解(上)

[复制链接]

尚未签到

发表于 2019-1-7 07:34:57 | 显示全部楼层 |阅读模式
  1.heartbeat的作用

  通过heartbeat,可以将资源(IP及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用服务。在实际生产中mkeepalived有很多相同之处。在生产实际的业务应用也是有区别的。
  2.工作原理
  通过修改heartbeat软件的配置文件,可以指定那一台heartbeat服务器作为主服务器,则另一台将自动称为热备服务器,然后在热备服务器上配置heartbeat守护进程来监听来自祝福我的心跳信息,如果热备服务器在指定实践内未监听到来自住服务器的心跳,就会启动故障转移程序,并取得住服务器上的相关资源服务的所有权,接替住服务继续不间断的提供服务,从而达到资源及服务高可用性的目的。这是heartbeat主备的模式。
  还可以支持主主模式,这时它们之间会相互发送报文给对方主机监听程序是否正常。
  在heartbeat进行主备切换的时候,是需要时间的,首先是判断主宕机,然后从接替vip,启动从服务上面的程序(备机上面的程序本来是没有开启的)。
  另外:和keepalived服务一样,heartbeat高可用是服务器级别的,不是服务器级别的,如果主上面的apache,mysqld服务出现问题,是不会切换的,只有服务器宕机,heartbeat服务本身故障或者heartbeat主备之间的连接线路出现问题才会发生切换。
  所以要做处理,如果服务宕机了,就把heartbeat停掉。
  心跳连接介绍:

  实现高可用,这两台主机之间是如何做到互相通信和互相监测的?
  1.串行电缆,所谓的串口(首先,缺点是距离不能太远)
  2.一根以太网线两网卡直连(推荐)
  3.以太网电缆,通过交换机等网络设备是连接(次选)增加来交换机故障点,容易受其他数据传输的影响,导致心跳报文发送失败。
  脑裂:
  由于两台高可用服务器对之间在指定时间内,无法检测到对方心跳而各自启动故障转移功能,取得了资源及服务的所有权,而此时的两台高可用服务器对都还或者并在正常运行,这样就会导致同一个IP或服务在两端同时启动而发生冲突的严重问题,最严重的是两台主机占用同一个vip地址,当用户写入数据可能会分别写入到两端,这样可能会导致服务器两端的数据不一致或数据丢失,这样情况就被称为脑裂,也有的人成气味分区集群或大脑垂直分割。
  防止脑裂:
  (推荐)同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳信息。
  (企业级别)*检测到脑裂时强行关闭一个心跳节点。(这个功能许特殊设备支持,如stonith,fence),相当于程序上备节点发现心跳线路故障,发送关机命令到主节点。
  做好对脑裂的监控报警(如邮件及手机短信等),在问题发生时认为第一时间介入仲裁,降低损失
  增加仲裁机制:
  当心跳线完全断开的时候,两个节点分别ping网关,那个ping不通就自己放弃。
  关于fence设备
  fence是HA集群环境下的术语,在硬件领域,fence设备其实就是一个智能电源管理设备(IPMI),不管是内部还是外部fence,这些外部fence,这些设备都是带有以太网口的,用来在HA切换触发时通过网络重启提供资源服务的服务器。
  heartbeat消息类型
  heartbeat高可用软件在工作过程中,一般来说,有三种消息类型,具体为:

  心跳消息
  集群转换消息
  重传请求
  1.心跳消息

  心跳消息为约150字节的数据包,可能为单播,广播或多播的方式,控制心跳频率及出现故障要等待多久进行故障转移。
  2.集群转换消息

  ip-request和ip-request-resp
  当主服务器恢复在线状态时,通过ip-request消息要求备机释放主服务器失败时备服务器取得的资源,然后备份服务器关闭释放主服务器失败时取得的资源及服务。
  备服务器释放主服务器失败时取得的资源及服务后,通过ip-request-resp消息通知主服务器它不在拥有该资源及服务,主服务器收到备节点的ip-request-resp消息通知后,启动失败时释放的资源及服务,并开始提供正常的访问服务。
  3.重传请求
  rexmit-request控制重传心跳请求,次消息不太重要。
  提示:以上心跳控制消息都使用UDP协议发送到/etc/ha.d/ha.cf文件指定的任意端口,或指定的多播地址。
  heartbeat IP地址接管和故障转移
  heartbeat是通过IP地址接管和ARP广播进行故障转移的。
  ARP广播:在主服务器故障时,备用节点接管资源后,会立即强制更新所有客户端本地的ARP表(即清除客户端本地缓存的失败服务器的Vip地址和mac地址的解析记录)。确保客户端和新的主服务器对话。
  这个所说的客户端是指的是在这个局域网内做ARP广播,告诉局域网此时VIP对应的MAC地址。

  VIP:
  绑定在网卡别名上的ip。

  手工配置VIP的方法:
  ifconfig eth0:1  10.0.0.4 netmask 255.255.255.224 up/down (ip别名)

  ip addr  add/del 10.0.0.5/24 broadcast  10.0.0.255 dev eth1 辅助IP
  提示:heartbeat3不在使用ip别名,而是使用辅助IP  
  




运维网声明 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-660123-1-1.html 上篇帖子: Linux 高可用(HA)集群之Heartbeat安装 下篇帖子: 编译安装Heartbeat常见错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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