heartbeat3 使用(一)
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月份发布。
参考资料
- hearbeat 3.0 User'Guide http://people.linbit.com/~florian/heartbeat-users-guide/index.html (还在修订中的版本)
- Linux-HA Document http://www.linux-ha.org/LearningAboutHeartbeat (已过期,不再维护)
- Linux-HA wiki http://www.linux-ha.org/wiki/Documentation (正在建设中,文档很少)
- PaceMaker Project http://www.clusterlabs.org/wiki/Main_Page (主要是cib的配置)
- http://listen1001.blog.163.com/blog/static/76733730201001551530380