码迷,mamicode.com
首页 > 其他好文 > 详细

heartbeat

时间:2015-08-25 12:47:32      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:heartbeat

Heartbeat高可用

 

技术分享

 

在整个环境中,通过heartbeat建立的高可用环境中,只有一台服务器是正常工作,另外一台服务器作为备份服务器。其工作原理是通过访问“虚拟IP”,虚拟IP根据heartbeat设置的“主节点”,定位到服务器。

 

第一步:按照环境,完成IP地址的配置,测试连通性

 

技术分享

技术分享


第二步:

1. hostname 设置好,分别为web1 web2

2. 关闭防火墙iptables -F; 

   关闭selinux setenforce 0

3. web1web2 /etc/hosts 增加如下内容

192.168.0.107 web1  

192.168.0.108 web2


三步:根据环境部署两台web服务器,部署简单nginx测试环境

Yum install nginx

已默认的web目录(/usr/share/nginx/html/)下,建立测试页面,并启动nginx服务(/etc/init.d/nginx start

Web.html

内容为server1192.168.0.107 page

技术分享

Web.html

内容为 server2192.168.0.108 page

技术分享

注意:两台服务器上的都为web.html,保证数据的一致性,而内容不一致,只为了测试使用

 

第四步:分别在两个服务器上安装heartbeat / libnet(注意需安装epel-release源)

yum  install -y heartbeat*   libnet

 

第五步:主服务器配置(主要配置authkeysha.cfharesources三个文件)

[root@web1sysconfig]# cd /usr/share/doc/heartbeat-3.0.4/

[root@web1heartbeat-3.0.4]# cp authkeys ha.cf haresources/etc/ha.d/

 

1、 配置authkeys(启动 3 md5 hello!的验证方式)

auth 3

#1 crc

#2 sha1 HI!

3 md5Hello!

 

chmod600 authkeys  #设置authkeys的权限为600

 

2、配置haresources (配置虚拟IP和启动的服务)

haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。其配置语句格式如下:

 

web1  192.168.0.200/24/eth1:0 nginx

 

web1为主节点名字,主节点的确定为ha.cf配置的第一个节点(node选项)就为“主节点”

nginx表示为启动的服务

eth1:0表示使用的接口

注意:两台服务器的haresources配置必须一致

 

3、  配置ha.cf

debugfile/var/log/ha-debug

logfile/var/log/ha-log

logfacility     local0

keepalive 2          #跳的时间间隔,默认时间单位为秒

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth210.0.11.12  #单播测试对端心跳线网络地址

auto_failback on      #heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。

node    web1      #表示设置的主节点

node    web2

ping  192.168.0.1  #将网关看成一个伪集群成员,与下面的ipfail一起使用。注意:不要使用一个集群节点作为ping节点

respawn hacluster/usr/lib/heartbeat/ipfail  #指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。

 

第六步:将如上的三个文件,copyweb2/etc/ha.d/目录下

 

[root@web1 ha.d]# scp authkeys ha.cfharesources web2:/etc/ha.d/

 

web2上修改ha.cfucasteth2 10.0.11.12 改为 ucast eth2 10.0.11.11

 

第七步:

1、先关闭nginx服务

2、启动heartbeat :

先主,后从

service heartbeat start

3、检查测试

ifconfig 查看看是否有 eth1:0

ps aux |grep nginx  查看是否启动了nginx

web1

技术分享技术分享


Web2 服务器上,没有启动eth1:0nginx

 

4、  测试访问http://192.168.0.200/web.html,返回的结果为“主节点(192.168.0.107)”的内容,如下所示

技术分享

 

第八步:故障模拟

1、主上故意禁ping
[root@web1 html]# iptables -I INPUT -p icmp -jDROP

 

此时web2会接替web1工作,如下所示

技术分享

注意:如果web1故障恢复,会主动抢占回去

 

2测试2
主上停止heartbeat服务

service heartbeat stop

同理web2会接替web1的工作

 

3、测试3

测试分裂

主和从上都downeth2(心跳线)网卡

ifdown eth2

 

如果心跳线出现故障,如下所示,主和从都会启动eth1:0nginx服务

Web1


技术分享技术分享

Web2

技术分享

技术分享

 

出现这样的情况,就到导致访问服务时,一会在web1,一会在web2,导致访问不稳定。


heartbeat

标签:heartbeat

原文地址:http://469952080.blog.51cto.com/8311493/1687481

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!