Heartbeat是著名HA项目,Heartbeat在3.0之后分拆为Heartbeat和Pacemaker 两个各自独立项目。Pacemaker在后续发展中使用Corosync作为消息层,和Corosync紧密结合,同时也保留Heartbeat作为可选的消息层。所以新版Pacemaker 1.1.x 和heartbeat3.x 结合方面有些问题,安装复杂,特此记录下安装过程中的问题及解决办法,以供参考。
安装环境:
Redhat Enterprise linux 6.4 (64Bit)
安装路径:/usr/local/heartbeat
配置文件路径:/etc/heartbeat/
软件介绍:
Cluster Glue 1.0.9 (中间层,粘合heartbeat和pacemaker,提供LRM和STONITH等工具及类库)
Resource Agents 3.9.2(提供各类资源脚本以供调用)
Heartbeat 3.0.5 (消息层,负责消息传递)
注:Heartbeat 2.1.4之后原先的项目被拆分成Cluster Glue,Resource Agents,Heartbeat 3个子项目
下载:http://www.linux-ha.org/wiki/Downloads
Pacemaker 1.1.11(即Cluster Resource Manager,简称CRM,用来管理整个HA的控制中心,属于管理层,客户端通过pacemaker来配置管理监控整个集群)
注:从Pacemaker 1.1.8开始,crmsh发展成一个独立项目,Pacemaker中不再提供。我们安装好Pacemaker后,是没有crm这个命令行模式的资源管理器的,需另行下载安装。(https://savannah.nongnu.org/projects/crmsh/)
Redhat发行版提供了另一个命令行管理器pcs作为crmsh替代, pcs还提供图形界面但需另外安装。
Pacemaker内部结构
准备工作:
1.yum install或rpm -ivh安装以下依赖软件包,以免安装过程中出错
yum -y install autoconf automake libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel libuuid-devel docbook-style-xsl docbook-dtds
2.添加用户和组
新建用户hacluster属于新建组haclient,用于配置respawn,软件安装中均指定uid=hacluster,gid=haclient
# groupadd haclient
# useradd -g haclient hacluster -M -s /sbin/nologin
按顺序安装软件:
1.安装Cluster Glue
# tar jxvf glue-1.0.9.tar.bz2
# cd Reusable-Cluster-Components-glue--glue-1.0.9/
# ./autogen.sh
# ./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
# make && make install
注:在./configure的时候指定一下LIBS='/lib64/libuuid.so.1',同理Resource Agents,Heartbeat,Pacemaker
在./configure的时候都指定一下,不然继续报错。
./.libs/libplumb.so: undefined reference to `uuid_parse’
./.libs/libplumb.so: undefined reference to `uuid_generate’
./.libs/libplumb.so: undefined reference to `uuid_copy’
./.libs/libplumb.so: undefined reference to `uuid_is_null’
./.libs/libplumb.so: undefined reference to `uuid_unparse’
./.libs/libplumb.so: undefined reference to `uuid_clear’
./.libs/libplumb.so: undefined reference to `uuid_compare’
...........................................................
configure: error: You do not have the libuuid development package installed
2.安装Resource Agents
# cd ClusterLabs-resource-agents-b735277/
# ./autogen.sh
# ./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
# make && make install
//建立一个软连接,避免编译时找不到所需要的包.
# ln -s /usr/local/heartbeat/lib64/* /lib64/
注: 如缺少一些依赖包,会有错误提示,按照提示安装相应包即可。
安装glue, resource agent, heartbeat时,需要到网上下载docbook-style-xsl,docbook-dtds包,
如网速慢容易出现错误,可单独下载或用yum install docbook-style-xsl docbook-dtds安装软件包,
以提高安装速度。
无法下载docbook时会发生类似错误:
error : Operation in progress
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/html/formal.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl line 46 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/html/formal.xsl
http://docbook.sourceforge.net/release/xsl/current/html/table.xsl:1: parser error : Document is empty
http://docbook.sourceforge.net/release/xsl/current/html/table.xsl:1: parser error : Start tag expected, ' |