此为转载文章。因为从源码编译虽然通过,但始终缺少shellfunc文件,所以查了一下从rpm包安装,找到了这篇文章。结合这个链接:
http://www.howtoforge.com/high-availability-load-balancer-haproxy-heartbeat-fedora8
配置基本搞定了。其中一个问题是他的主从机是反的!明天再试!
我已经不是第一次介绍Heatbeat,通过yum可轻松安装Heartbeat 2.x,网上的资料(包括我以前的多篇日志)都已很详细的介绍了Heartbeat 2.x 的部署方式。而自2月Heartbeat 3.0.2,作为首个3.x Final Release版本发布后,官方网站已改版,并建议从2.x更新到3.0.2,导致很多老的配置文档、说明等都很难找到链接。此外,触发我考虑使用Heartbeat3,也正是前几天用Heartbeat 2.1.3+DRBD+Oracle配置时遇到大量的Bug,可见这里。虽然最终解决问题,但缺少官方的支持,今后的维护可能会遇到困难。为长远考虑,使用Heartbeat 3是势在必行的。
幸亏,Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat 2.x按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码,我不喜欢以源码方式来在生成系统上部署软件,这会给后续的维护带来很大的问题。通过努力,我终于成功编译一套heartbeat 3.0.3,带GUI管理方式的rpm。
一、关于Heartbeat 3
1、版本问题
Heartbeat 官方最后一个STABLE release 2.x 版本是2.1.4。
虽然Fedora、OpenSUSE 等项目曾提供2.99、3.0等rpm版本,但实际上版本都是基于Heartbeat 3.0和3.0.1源码编译的。目前网上大部分资料中介绍的Heartbeat 3使用的也是该版本。
Heartbeat 3 官方正式发布的首个版本是3.0.2,这也是为了区别上面提到的2.99。此外,由于3.0.2 的正式发布,原由OpenSUSE提供的下载地址,也已被删除。
更详细信息,请见:Announce: Final Release of Heartbeat 3.0.2, Cluster-Glue 1.0.2, and Resource-Agents 1.0.2。
这些原理Heartbeat 3 与 2.x 基本是相同的,有疑问,可参考:[原]heartbeat 2.x基础架构。
2、组成
Heartbeat 3与2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理。即heartbeat + cluster-glue + resouce-agent 三部分:
(2)cluster-glue相当于一个中间层,可以将 heartbeat和crm(pacemaker)联系起来,主要包含2个部分,LRM和STONITH;
(3)resource-agent,就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。
通过这三部分已可构成一套完整的HA集群系统。但是,这还不够,因为没有管理工具。
而原GUI 工具Cluster Resource Manager (简称CRM)也被拆分由另一独立项目Pacemaker 负责。Pacemaker 提供了多种用户接口:
(2)一个使用Ajax Web配置方式的 web konsole 窗口;
(3)hb_gui ,即 heartbeat gui 图形配置工具,这也是原来2.x的默认GUI 配置工具;
(4) DRBD-MC,一个基于Java的配置管理工具。
更详细介绍,请见:这里。
以上几种用户管理接口,择其一即可。需要说明的是,Pacemaker 支持的Cluster Stacks中,除了Heartbeat,还支持OpenAIS。不过,OpenAIS 的内容已超出本文的范围,有待以后再做介绍。
二、关于rpm包
1、Heartbeat 3 的rpm
Heartbeat 3 官网上有提供Heartbeat 3.0.3、Cluster Glue 1.0.5、Resource Agents 1.0.3 的源码。下载回来编译安装即可。
若你像我一样,不喜欢用源码来部署生产系统,那你可以用源码包中的spec来编译。编译时,注意创建对应的源码包中的目录,spec中的变量设定等,但总体问题不大。
更好的是,在Pacemaker 的Install一文中,提供了EPEL 的安装包。若您的系统是Asianux 、RHEL、CentOS等,即可通过下面的方式来安装:
wget -O /etc/yum.repos.d/pacemaker.repo http://clusterlabs.org/ rpm/epel-5/clusterlabs.repo
yum install -y pacemaker corosync heartbeat
或者,直接点击下面的链接获取对应的rpm,或源码src.rpm:
http://www.clusterlabs.org/rpm/epel-5/
http://www.clusterlabs.org/rpm/epel-5/src/
通过以上安装过程,系统已提供搭建Heartbeat 3的环境,包括crm 命令行配置和管理工具(由pacemaker 提供)。但是,不包括hb_gui 图形配置工具。
※ 注意,我这里没有安装ldirectord,因为我没有用到LVS,若您需要监控LVS,可自行安装。
2、Pacemaker Python GUI
正如前文提到的,这是Pacemaker 提供的一个GUI 方式的配置管理工具,也就是heartbeat 2.x中的hb_gui 。
官方网站是:http://hg.clusterlabs.org/pacemaker/pygui
在某些Heartbeat 版本,例如Fedora 自行提供的2.99 中,称为:pacemaker-pygui-1.4,而目前最新版本是2.0,已改名为:pacemaker-mgmt-2.0.0 。
编译时,可能会遇到一些问题:
a、AC_PROG_INTLTOOL 报错
例如:
# ./bootstrap
Autoconf package autoconf found.
......
./configure: line 2064: syntax error near unexpected token `0.35.2'
./configure: line 2064: `AC_PROG_INTLTOOL(0.35.2)'
原因是,缺少一个依赖包intltool-0.35.0-2。安装后,运行:
# ./bootstrap