heartbeat

注意:heartbeat 2.* 3.*不同

一、

Heartbeat 32.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理。即heartbeat + cluster-glue + resouce-agent 三部分:

引用
1hearbeat本身是整个集群的基础(cluster messaging layer),负责维护集群各节点的信息以及它们之前通信; 
2cluster-glue相当于一个中间层,可以将heartbeatcrmpacemaker)联系起来,主要包含2个部分,LRMSTONITH 
3resource-agent,就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。

通过这三部分已可构成一套完整的HA集群系统。但是,这还不够,因为没有管理工具。
而原GUI 工具Cluster Resource Manager (简称CRM)也被拆分由另一独立项目Pacemaker 负责。Pacemaker 提供了多种用户接口:

 

二、安装heatbeat

 

环境:

 

    server1:  lvs  eth1 172.16.1.10  

 

                 eth0 192.168.9.37

    server2:  ser1  eth0 172.16.1.11  

 

                  eth1 192.168.9.109

      虚拟ip : 192.168.9.31

 

本人阿里云上有下载好的安装所需的包。

 

两台主机都是这样操作:

 

安装依赖包:

yum install autoconf automake libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel

 

安装heartbeat前先安装libnet

tar -zxvf libnet-1.1.2.1.tar.gz

cd  libnet

./configure

make  &&  make install

安装heartbeat.

tar  -zxvf  heartbeat-2.1.3.tar.gz

cd  heartbeat-2.1.3

./ConfigureMe configure

make

 

会有报错,那个是函数的定义问题,如下:

是里面Werror参数的告警导致报错,可以进到里面

vim  /heartbeat/heartbeat-2.1.3/lib/hbclient/Makefile 把文件里的:

 

Werror 去掉

 

然后再make 可能还有报错,如下;

这个错误有点坑爹,他需要你进到/heartbeat/heartbeat-2.1.3/lib/plugins/HBcomm/ucast.c

里面在466行把 int  i = 1 去掉就可以了。

然后再make 编译,还是有报错,不要急,还是上面第一个错误,只要在下面路径目录下把Makefile去掉Werror就可以了。

 

vim /heartbeat/heartbeat-2.1.3/lib/plugins/stonith/Makefile

然后再make看。

还是有报错,同上理操作可行!

经过一段反复的波折后,终于编译成功了!

然后再执行安装

make  install

这个安装还是挺顺利的喔!

接下来,就配置了,先把配置文件cp过去:

cp  doc/ha.cf  /etc/ha.d/

cp  doc/authkeys  /etc/ha.d/

cp  doc/haresources  /etc/ha.d/

ha.cf文件是检测文件

haresources 是处理动作

authkeys 是主备间的心跳检测,通过加密方式来达到心跳的检测。

然后修改配置文件:

vim /etc/ha.d/ha.cf

 

ucast 对应的是心跳ip

vim /etc/ha.d/authkeys

认证1方式是通过sha算法(哈希)来认证。

vim /etc/ha.d/haresources

服务器主机名 虚拟ip 所需启动的动作或程序

认证方式:

在两台机器上分别启动httpd服务和heartbeat服务。

index.html页面标注不同的内容来区分系统机器。

如:

echo  "172.16.1.10"  >>  /var/www/html/index.html ##这是172.16.1.10的机器这种方式区分。

现在有两台机器1.10 1.11

现在是访问的1.11这台机器的apache服务,虚拟ip192.168.9.31

你可用ifconfig命令来检查机器已经出现一个虚拟接口ip:192.168.9.31

然后我把1.11的心跳接口干掉

 

查看日志:

日志已说心跳已断

另一台机器也是这样的日志

 

eartbeat已将服务转到1.10机器上。

 

这样测试基本成功了

 

可在同理启动1.10接口,恢复心跳,又恢复了1.10的服务上。

日志如上

 

 

原文地址:https://www.cnblogs.com/fengzaoye/p/5844246.html