首页 > 代码库 > heartbeat2.0 原理解析与高可用集群案例实现

heartbeat2.0 原理解析与高可用集群案例实现

 这篇文章我们将学习heartbeat2.0的基本原理以及如何简单配置高可用集群


技术分享



 

 ll  本文导航 

  · 什么是高可用集群

  · 高可用集群的解决方案

  · heartbeat之基本原理

  · heartbeat之逻辑架构

  · heartbeat之心跳连接

  · heartbeat之脑裂(资源争用、资源隔离)

  · heartbeat之配置文件

  · heartbeat至高可用集群配置


 ll  要求 



  什么是高可用集群 

   所谓高可用集群,即当前服务器出现故障时,可以将该服务器中的服务、资源、IP等转移到另外一台服务器上,从而满足业务的持续性;这两台或多台服务器构成了服务器高可用集群。

    对于客户端来说,集群就像是一台服务器,因为集群运行的是同一种服务,即使其中有的服务器宕机或无法通信时,也不会对业务造成影响。


  高可用集群的解决方案 

一、基于【CentOS | RHEL】5:

  1、自带: RHCS(cman+rgmanager)

  2、选用第三方:corosync+pacemaker, heartbeat(v1或v2), keepalived


二、基于【CentOS | RHEL】6:

  1、RHCS(cman+rgmanager)

  2、corosync+rgmanager

  3、cman+pacemaker

  4、heartbeat v3 + pacemaker:6.4之前

  5、keepalived:6.4之后


  heartbeat的基本原理 

  heartbeat是一个集群软件,它主要由心跳信息检测和资源管理两大核心部分组成。

  heartbeat构建的集群中,各服务器会向其他集群节点发送心跳信息(报文)并予以收集、分析,以判断该节点的状态,从而认为节点是否有效。当服务器在指定的时内检测不到其他节点的心跳信息或无法通过网络等方式连接时,会认为对方节点失效,此时,服务器需要启动资源接管模块来接管失效节点上的服务和资源。

  heartbeat仅能完成心跳信息检测和资源监管,不会监视其他资源和应用服务。若要监控其他资源和应用服务是否可用,需要安装第三方插件;如ipfail, ldirectord等。

  同样,对于操作系统自身的问题heartbeat同样无法监控。若主节点因操作系统问题无法向备节点发送心跳信息,则备节点无法接收主节点的信息,从而认为主节点已经失效,此时会启动资源接管模块来接管主节点的服务和资源。而主节点资源和服务并没有释放,此时主备节点会发生资源争用的情况,严重时可能会导致共享资源的数据损坏或者文件系统的崩溃。对于linux系统而言,要解决这个问题,需要在内核中开启watchdog模块,开启此模块后,watchdog会定时向/dev/watchdog设备文件执行写操作,从而确定系统是否正常运行。如果watchdog认为内核挂起,就会自动重新启动系统,从而释放节点的服务和资源。



本文出自 “ccschan” 博客,转载请与作者联系!

heartbeat2.0 原理解析与高可用集群案例实现