heartbeat
注意:heartbeat 2.* 和3.*不同:
一、
Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理。即heartbeat + cluster-glue + resouce-agent 三部分:
引用
(1)hearbeat本身是整个集群的基础(cluster messaging layer),负责维护集群各节点的信息以及它们之前通信;
(2)cluster-glue相当于一个中间层,可以将heartbeat和crm(pacemaker)联系起来,主要包含2个部分,LRM和STONITH;
(3)resource-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服务,虚拟ip是192.168.9.31。
你可用ifconfig命令来检查机器已经出现一个虚拟接口ip:192.168.9.31
然后我把1.11的心跳接口干掉
查看日志:
日志已说心跳已断
另一台机器也是这样的日志
eartbeat已将服务转到1.10机器上。
这样测试基本成功了
可在同理启动1.10接口,恢复心跳,又恢复了1.10的服务上。
日志如上