Heartbeat实现Web服务的高可用群集
HA群集模型如下:对外的vip是192.168.2.1,处于活动状态的web的主机名node1,处于备份状态的web的主机名node2,当主状态的web死掉,处于备份状态的web立即变为主状态。以实现高可用性。(不考虑存储)
Node1的配置
1、配置主机名和ip地址
2、编辑hosts文件,使主备之间能相互解析
192.168.2.100 node1.server1.com
192.168.2.200 node2.server2.com
3、上传所需的heartbeat软件包,并安装
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm -y --nogpgcheck
4、将心跳探测配置文件、资源管理配置文件、之间身份验证配置文件拷贝到/etc/ha.d/目录下
cd /usr/share/doc/heartbeat-2.1.4/
cp ha.cf authkeys haresources /etc/ha.d/
5、编辑ha.cf插入如下
bcast eth1 --心跳探测接口
node node1.server1.com --两个节点
node node2.server2.com
6、编辑authkeys文件插入如下:
auth 3
3 md5 adf25a5a79c3be8e1df5ff1ac64a21fc --MD5的验证类型 后面是是密钥
chmod 600 authkeys
7、编辑haresources文件插入如下:
node1.server1.com 192.168.2.1/24/eth0 httpd (节点名称(激活的)-------节点vip---脚本资源)
8、将httpd的控制脚本拷贝到/etc/ha.d/resource.d/目录下,将有heartbeat控制httpd服务
cd /etc/ha.d/resource.d/
cp /etc/init.d/httpd ./
9、确保httpd现在是stop状态,且开机不启动,因为他的控制权以后就交个了heartbeat,并启动集群heartbeat
启动群集后多了一个接口地址即vip
此时httpd也启动了
即node1.server1.com是处于活动状态,下面的node2.server2.com就只能是处于备份状态了,
将不会产生eth0:0接口,及httpd也处于stop状态
Node2是配置
与node1(1-9步)的配置基本完全相同,不在叙述
启动node2.server2.com的群集heartbeat
测试一下
活动状态node1的web
在一个client上长ping vip地址,并将node1.server1.com该为备份状态,看是否有丢包(在实际中你可以拔掉一根线)
这样做
cd /usr/share/heartbeat/
./hb_standby -----模拟失效
再测试一下
node2的web,此时node2变成了活动状态
如果node1再抢占位活动状态执行如下命令
cd /usr/share/heartbeat/
./hb_takeover
这个过程中ping没有被中断,高可用群集保证了服务的不间断。。。!!!
本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1107944