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的更多相关文章

  1. nginx的HA集群及配置

    一.服务器环境 master服务器: ip:192.168.11.155 系统环境:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 防火墙和 ...

  2. corosync+pacemaker实现高可用(HA)集群

    corosync+pacemaker实现高可用(HA)集群(一)     重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与 ...

  3. centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课

    centos   HA高可用集群  heartbeat搭建 heartbeat测试  主上停止heartbeat服务  测试脑裂  两边都禁用ping仲裁  第三十二节课 heartbeat是Linu ...

  4. 用Heartbeat实现HA集群

    HA即高可用(high avaliable),又被叫做双机热备,用于关键性业务,简单理解就是,有两台机器A和B,正常是A提供服务,B待机闲置,当A宕机或服务宕掉,会切换到B机器继续提供服务.常用实现高 ...

  5. heartbeat集群安装配置

    安装配置高可用集群需要注意:1.节点名称:集群每个节点的名称都得能互相解析 /etc/hosts hosts主机名的正反解析结果必须跟"uname -n"的结果保持一致2.时间必须 ...

  6. FastDFS_v5.05+nginx+cache集群安装配置手册

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.FastDFS简单介绍 FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统, ...

  7. Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

    Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...

  8. nginx.conf 集群完整配置

    ###############################nginx.conf 集群完整配置############################### #user nobody; # user ...

  9. Linux集群之keepalive+Nginx

    集群从功能实现上分高可用和负载均衡: 高可用集群,即“HA"集群,也常称作“双机热备”. 当提供服务的机器宕机,备胎将接替继续提供服务: 实现高可用的开源软件有:heartbeat.keep ...

随机推荐

  1. 视频显示格式720p

    720p是一种视频显示格式.字母p意为逐行扫描(progressive scan),数字720则表示水平方向有720条扫描线. 通常720p的画面分辨率为1280×720,一般亦可称为高画质(HD). ...

  2. EDKII Build Process:EDKII项目源码的配置、编译流程[三]

    <EDKII Build Process:EDKII项目源码的配置.编译流程[3]>博文目录: 3. EDKII Build Process(EDKII项目源码的配置.编译流程) -> ...

  3. 错误代码: 1045 Access denied for user 'skyusers'@'%' (using password: YES)

    1. 错误描述 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "."; 1 queries exe ...

  4. Error Code: 1414. OUT or INOUT argument 2 for routine company.new_procedure is not a variable or NEW

    1.错误描述 16:27:36 call new_procedure(20150112,1) Error Code: 1414. OUT or INOUT argument 2 for routine ...

  5. 解析FAT16文件系统

    引导扇区的信息如下: 1.  偏移地址00H,长度3,内容:EB 3C 90 跳转指令. 2.  偏移地址03H,长度8,内容:4D 53 44 4F 53 35 2E 30 为厂商标志和os 版本号 ...

  6. TypeError:Error #1009

    1.错误描述 TypeError:Error #1009:无法访问空对象引用的属性和方法 2.错误原因 3.解决办法

  7. Cookie操作类、压缩、序列化

    1.cookie类 CartCookie.cs using System; using System.Data; using System.Configuration; using System.We ...

  8. angular路由操作

    在单页面应用程序中比如angular应用,我们需要根据url的变化(即:不同的请求),来分配不同的资源.根据请求的URL来决定执行哪个模块,这个过程叫路由,同时,我们需要设计路由规则. 下面给出一个简 ...

  9. Java中使用UDP实现简单的聊天功能

    通过DatagramSocket类来实现.此类表示用来发送和接收数据报包的套接字. 发送端代码如下: import java.io.IOException; import java.net.*; im ...

  10. layer与iframe 间值的相互传递

    在A页添加 <input id="handle_status" value="" hidden="hidden"> jq代码 l ...