一、安装cluster glue
安装heartbeat以前须要安装glue。linux
- yum install autoconf automake libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel make wget(红色标记处也须要安装)
- groupadd haclient
- useradd -g haclient hacluster
- cd /tmp
- wget http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2
- tar xjf glue-1.0.9.tar.bz2
- cd Reusable-Cluster-Components-glue--glue-1.0.9
- ./autogen.sh
- ./configure --prefix=/usr/local/heartbeat LIBS=’/lib/libuuid.so.1‘(64位系统上是LIBS=’/lib64/libuuid.so.1‘)
- make && make install
安装过程当中会在INTERNET中校验一些xml文件,会耗费大量时间,要耐心等待。若是报错多是网络引发,多试几回就行(yum install docbook-dtds docbook-style-xsl安装这两个包以后解决 )。git
安装Resource Agents
- cd /tmp
- wget --no-check-certificate https://github.com/ClusterLabs/resource-agents/tarball/v3.9.2
- tar xzf v3.9.2
- cd ClusterLabs-resource-agents-b735277/
- ./autogen.sh
- ./configure --prefix=/usr/local/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib LIBS=’/lib/libuuid.so.1‘(64位系统上是LIBS=’/lib64/libuuid.so.1‘)
- ln -s /usr/local/heartbeat/lib/* /lib/ (64位系统是ln -s /usr/local/heartbeat/lib/* /lib64/ 解决libplumb.so.2等包找不到的问题,./configure的时候会产生一些须要的包)
- make && make install
安装Heartbeat
- cd /tmp
- wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/7e3a82377fa8.tar.bz2
- tar xjf 7e3a82377fa8.tar.bz2
- cd Heartbeat-3-0-7e3a82377fa8/
- ./bootstrap
- ./configure --prefix=/usr/local/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib LIBS='/lib64/libuuid.so.1'
- vim /usr/local/heartbeat/include/heartbeat/glue_config.h
- 删除最后一行:#define HA_HBCONF_DIR “/usr/local/heartbeat/etc/ha.d/”(解决glue_config.h:99:1: error: "HA_HBCONF_DIR" redefined错误)
- make && make install
- cp doc/ha.cf /usr/local/heartbeat/etc/ha.d/
- cp doc/haresources /usr/local/heartbeat/etc/ha.d/
- cp doc/authkeys /usr/local/heartbeat/etc/ha.d/
- cp heartbeat/init.d/heartbeat /etc/rc.d/init.d/
- chkconfig --add heartbeat
- chkconfig heartbeat on
- chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
- sed -i 's#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g' /usr/local/heartbeat/etc/ha.d/shellfuncs
- sed -i 's#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g' /usr/local/heartbeat/usr/lib/ocf/lib//heartbeat/ocf-shellfuncs
- sed -i 's#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g' /usr/local/heartbeat/etc/ha.d/resource.d//hto-mapfuncs
(上面1七、1八、19三条是用新的路径替换默认路径,将/usr/lib/ocf替换为/usr/local/heartbeat/usr/lib/ocf)github