iamplane 2010-09-28
heartbeat是Linux-HA组织的一个开源项目。可以用来构建高可用性的集群。
heartbeat可以看成由两部分组成:第一部分可以称为集群通信层(cluster messaging layer),用来检测集群中各节点的可用情况(即集群中哪些节点可用,哪些节点挂掉了);第二部分是集群资源管理器(CRM),负责各种资源(虚拟 IP,Web Server,ftp Server等等)在集群上的分配。
例如现在有一个两节点的小集群A B两台服务器使用了heartbeat,A上面有apache. 现在A机器出现问题,heartbeat通过消息通信层发现这一异常,然后会自动通过CRM,将apache服务迁移到B机器上。
版本历史
从1999开始,Linux-HA项目发布了heartbeat初始版本,这个版本的heartbeat集成了CRM(这时的CRM功能很弱,只支持双节点,并且不能监测资源级别的错误)。
一直到heartbeat 2.1.4版本(包括2.1.4),hearbeat都是集成有CRM的。
从2007年开始heartbeat的CRM部分脱离了Linux-HA项目成立了Pacemaker项目。
之后的Release版本heartbeat 2.99,已经不再包含CRM功能,安装完heartbeat之后你还需要安装Pacemaker.
另外从heartbeat 2.99 开始,Pacemaker离开后,Linux-HA又将heartbeat项目,分成了三个子项目(仍然属于Linux-HA),分别是heartbeat,Resource Agent,Cluster Glue.
Linux-HA项目整个历史是一个功能不断加强,不断细化的历史;看起来可能很混乱。
heartbeat (Linux-HA子项目) hearbeat(Linux-HA) -------- Resource Agent (Linux-HA子项目) | Cluster Glue (Linux-HA子项目) heartbeat(Linux-HA) ----- | Pacemaker(不属于Linux-HA)
因为Linux-HA的三个子项目是紧密合作的,所有本文将三个子项目统称为heartbeat,不再仔细区分。
在Debian的lenny版本官方软件包中只提供了heartbeat 2.1.4及其之前的版本,没有Pacemaker.我们可以添加由Pacemaker官方提供的源来获得打包好的Pacemaker和heartbeat.
添加源 deb http://people.debian.org/~madkiss/ha lenny main 给你的apt系统加入Madkiss的key apt-key adv --keyserver pgp.mit.edu --recv-key 1CFA3E8CD7145E30 (不加会一直有错误提示) 然后 aptitude -y install heartbeat 会自动安装heartbeat,Pacemaker,Cluster Glue,Resource Agent. 启动 /etc/init.d/heartbeat start 会自动启动heartbeat及其Pacemaker等。 启动后通过pstree查看其相关进程。 heartbeat—┬—attrd ├—ccm ├—cib ├—crmd———pengine ├—3*[heartbeat] ├—lrmd └—stonithd
这里使用的测试版本是heartbeat 3.0 beta 和 Pacemaker 1.0.6版本。
测试系统为debian lenny
最新的heartbeat 3的Release版本将在 2010年1月份发布。
环境说明:本环境由两台mysql 数据库和heartbeat 组成,一台的ip 为192.168.10.197,一台为192.168.10.198,对外提供服务的vip 为192.168.10.200