HA集群heartbeat配置--Nginx
HA即(high available)高可用,又被叫做双机热备,用于关键性业务。简单理解就是,两台机器A和B,正常是A提供服务,B待命限制,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡功能。
1、环境

主:snale2 eth0 192.168.0.44 eth1 192.168.3.44 CentOS6.7
从:snale3 eth0 192.168.0.45 eth1 192.168.3.45 CentOS6.7
VIP 192.168.0.23
关闭iptables和selinux,安装epel源,配置2台服务器通过秘钥互联;
配置2台各自的/etc/hosts
vim /etc/hosts
192.168.0.44 snale2
192.168.0.44 snale3
2、安装heartbeat
a、主和从上都安装heartbeat
#yum install -y heartbeat* libnet nginx
b、在主(snale2)上配置
cd /usr/share/doc/heartbeat-3.0.4
cp authkeys ha.cf haresources /etc/ha.d/
cd /etc/ha.d/
vim authkeys
更改
#auth 3
# 3 md5 Hello! 去掉前面的#号
然后修改其权限
chmod 600 authkeys
c、编辑haresources文件
vim haresources
加入下面一行
snale2 192.168.0.163/24/eth0:1 nginx
说明:snale2为主节点hostname,192.168.0.163为VIP,/24为24网段,eth0:1为VIP的设备名,nginx为heartbeat监控的服务,也是两台机器对外提供的核心服务。
d、然后编辑ha.cf
vim ha.cf
改为如下内容:#grep -v ^# 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 eth1 192.168.3.45
auto_failback on
node snale2
node snale3
respawn hacluster /usr/lib64/heartbeat/ipfail
说明:
debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息
logfile /var/log/ha-log :heartbeat的日志文件
keepalive 2:心跳的时间间隔,默认时间单位为秒
deadtime 30 :超出改时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
warntime 10: 超出改时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 60:在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的2倍。
udpport 694:设置广播通信使用的端口,694为默认使用的端口号。
ucast eth1 192.168.3.45 :设置对方机器心跳检测的网卡和ip。
auto_failback on: heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。
在该选项设置为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
node : 指定主和从节点,各占一行,主在上,从在下。
respawn hacluster /usr/lib64/heartbeat/ipfail :指定与heartbeat一同启动和关闭的进程,改进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于
检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。
3、把主(snale2)上的三个配置拷贝到从上
cd /etc/ha.d/
scp authkeys ha.cf haresources snale3:/etc/ha.d/
4、到从上(snale3)编辑ha.cf
vim /etc/ha.d/ha.cf
只需要更改一个地方
ucast eth1 192.168.3.45 改为 ucast eth1 192.168.3.44
5、启动heartbeat
先主、后从
service heartbeat start
6、检查测试
ifconfig
看看是否有eth0:1

访问 http://192.168.0.163

关闭主snale上的heartbeat服务
service heartbeat stop
再访问http://192.168.0.163

在snale2主机发生网络故障、主机关机或重启等情况下,如果snale2主机的heartbeat处于激活状态,则不能实现双机的无缝切换,切换过程会有一定的延迟,如果关闭主上的heartbeat服务,从snale3能立马进行切换,实现无缝切换,ping VIP一直处于连通状态,无延迟。
再重新启动主snale2的heatrbeat服务。在这种情况下,主节点snale2将重新绑定VIP地址,从节点snale3释放该VIP地址,并由主节点对外提供服务。在主节点启动heartbeat之后,VIP地址的
释放和绑定有一定的延迟。虽然有一定的延迟,但是VIP地址的释放和绑定是同步进行的,使用ping命令可以发现集群IP地址一直处于可通状态,该过程并不影响双机系统的可用性。所以该过程仍然是一个
无缝切换。
HA集群heartbeat配置--Nginx的更多相关文章
- nginx的HA集群及配置
一.服务器环境 master服务器: ip:192.168.11.155 系统环境:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 防火墙和 ...
- corosync+pacemaker实现高可用(HA)集群
corosync+pacemaker实现高可用(HA)集群(一) 重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与 ...
- centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课
centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课 heartbeat是Linu ...
- 用Heartbeat实现HA集群
HA即高可用(high avaliable),又被叫做双机热备,用于关键性业务,简单理解就是,有两台机器A和B,正常是A提供服务,B待机闲置,当A宕机或服务宕掉,会切换到B机器继续提供服务.常用实现高 ...
- heartbeat集群安装配置
安装配置高可用集群需要注意:1.节点名称:集群每个节点的名称都得能互相解析 /etc/hosts hosts主机名的正反解析结果必须跟"uname -n"的结果保持一致2.时间必须 ...
- FastDFS_v5.05+nginx+cache集群安装配置手册
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.FastDFS简单介绍 FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统, ...
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...
- nginx.conf 集群完整配置
###############################nginx.conf 集群完整配置############################### #user nobody; # user ...
- Linux集群之keepalive+Nginx
集群从功能实现上分高可用和负载均衡: 高可用集群,即“HA"集群,也常称作“双机热备”. 当提供服务的机器宕机,备胎将接替继续提供服务: 实现高可用的开源软件有:heartbeat.keep ...
随机推荐
- R语言︱R社区的简单解析(CRAN、CRAN Task View)
笔者寄语:菜鸟笔者一直觉得r CRAN离我们大家很远,在网上也很难找到这个社区的全解析教程,菜鸟我早上看到一篇文章提到了这个,于是抱着学渣学习的心态去看看这个社团的磅礴.威武. CRAN(The Co ...
- Java基本数据类型的长度范围
1.Java基本数据类型的长度范围代码 /** * @Title:DataTypeLength.java * @Package:com.you.dao * @Description:Java数据类型长 ...
- Error Code: 1305. FUNCTION student.rand_string does not exist
1.错误描述 13:52:42 call new_procedure Error Code: 1305. FUNCTION student.rand_string does not exist 0.0 ...
- Django学习-24-Ajax
jQuery.Ajax是原生Ajax的封装,它能自动识别浏览器的Ajax对象HttpResponse(status='404',reason='Page Not Found') 原生Ajax使用Xml ...
- 洛谷P3434 [POI2006]KRA-The Disks(线段树)
洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...
- 洛谷P2444 [POI2000]病毒(AC自动机,DFS求环)
洛谷题目传送门 AC自动机入门--yyb巨佬的博客 AC自动机入手经典好题(虽然年代久远) 有了fail指针,trie树就不是原来的树型结构了,我们可以把它叫做trie图,由父节点向子节点连的边和fa ...
- POJ 2516 Minimum Cost (费用流)
题面 Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area ...
- [BZOJ4825][HNOI2017]单旋spaly
BZOJ Luogu 题目太长了,就不放了. 题解 首先声明一点,无论是splay还是spaly,插入一个新的元素,都要rotate到根!所以说题目也算是给了一个错误示范吧. 我们发现把最值旋转到根并 ...
- [ZJOI2006]书架(树状数组水过)
这道题显然平衡树,splay,treap什么的随便切 然而我不想打,决定水过这道题 把空间开3倍,树状数组维护它前面的树的个数,开个id数组记录位置 找一个数排名直接二分加求前缀和,log^2的搞一搞 ...
- 【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)
doCreateBean方法 上文[Spring源码分析]非懒加载的单例Bean初始化过程(上篇),分析了单例的Bean初始化流程,并跟踪代码进入了主流程,看到了Bean是如何被实例化出来的.先贴一下 ...