Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26314703
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-07-09 11:50:27

Heartbeat整理专题

高可用性集群的实现原理大致来说,就是有服务监测进程运行在负载均衡器上,用来定期检查服务器是否可用。如果在指定的时间内没有响应服务接入请求或没有从 服务器获得ICMP ECHO_REQUEST数据,监测服务就会认为服务器是不可用,并且将它从现有的负载均衡器上的服务器列表中删除,从而不会有新的请求再被发送到这台不 可用的服务器中。当监测服务检测到不可用的服务器已经可以恢复工作,监测服务将会把这台服务器重新添加到可用的服务器列表中。因此,负载均衡器可以自动解 决服务器进程或服务器的失效。此外,管理员还可以使用系统工具,增加新的服务器以提高系统的吞吐量或是为了系统维护方便而删除服务器,但同时不会使整个系 统服务不能工作。

现在,负载均衡器可能成为整个系统中单一的故障点,而Heartbeat就是用来解决该问题的。为了防止整个系统因为负载均衡器的失效而停止服务,我们需 要设置一个备份(或若干个备份)的负载均衡器。在只有一个备份的负载均衡器的情况下,两个heartbeat进程分别运行在主负载均衡器与备份负载均衡器 上,他们彼此通过串行线和/或网络接口定期传递我可用的信息。当在指定的时间内备份的负载均衡器上的heartbeat没有能从主负载均衡器接受消息,那么它将接管虚拟IP址,并提供负载均衡服 务。如果失效的负载均衡器能够恢复工作了,这时有两种解决方法,一种是它自动成为备份负载均衡器,另一种是正在服务的负载均衡器释放VIP地址,而主负载 均衡器接管VIP地址并再次提供负载均衡服务。

主负载均衡器保存了连接状态,即指明连接至哪几台服务器。如果备份负载均衡器接管时没有获得这些连接信息,客户就需要再次请求接入以获得服务。为了使负载均衡器的故障对客户端应用程序是透明的,我们执行连接时将会IPVS上同步 ,主负载均衡器保存的连接信息将会通过UDP连接同步保存在备份负载均衡器上。当备份负载均衡器接管一失效的主负载均衡器时,备份负载均衡器将有大部分的连接信息,因此几乎所有的连接可以通过备份负载均衡器继续访问该服务。

综上所述,HeartBeat的主要作用是:
安装在Load BalancerBackup上,运行于active/standby模式。
Load Balancer失效时,Backup自动激活,成为实际的Load Balancer
切换到active模式时,按顺序启动Virtual IPIPVSLdirectord
切换到standby模式时,按顺序关闭LdirectordIPVSVirtual IP
此外,在我们的解决方案中同样需要Ldirectord的支持。安装HeartBeat过程中,已经自动安装了Ldirectord,它的作用是:监测Real Server,当Real Server失效时,把它从Load Balancer列表中删除,恢复时重新添加

 

 

高可用(High Availability)HA集群, 使用Heartbeat实现;也会称为双机热备”, “双机互备”, “双机。负载均衡群集(Load Balance Cluster),使用Linux Virtual Server(LVS)实现;

heartbeat Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

我的理解:心跳监测其实是A告诉B说我还alive着然后B也会不断地告诉A说我还alive着。

 

阅读(908) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~