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. dojo实现省份地市级联报错(二)

  2. HighCharts之2D回归直线的散点

    HighCharts之2D回归直线的散点 1.实例源码 ScatterLine.html: <!DOCTYPE html> <html> <head> <me ...

  3. TCP为何采用三次握手来建立连接,若采用二次握手可以吗

    1. TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的.基于IP的传输层协议,采用三次握手确认建立一个连接. TCP为 ...

  4. Flex中配置FusionCharts

    Flex中配置FusionCharts 1.配置前说明 (需要的工具和插件) 1.1   MyEclipse10.0 1.2   Flash Builder4.0 1.3   FusionCharts ...

  5. java打印等腰三角形的两种方法!(根据行数,根据底边长度)

    首先来看根据用户输入的底边的长度判断: package cn.edu.nwpu.java; import java.util.Scanner; public class IsoscelesTriang ...

  6. angular路由参数说明

    AngularJS 路由 本章节我们将为大家介绍 AngularJS 路由. AngularJS 路由允许我们通过不同的 URL 访问不同的内容. 通过 AngularJS 可以实现多视图的单页Web ...

  7. Visio如何调整锁定图像大小

    在Visio中,比如模板中的UML类图,是不可调整大小的,这可能给我们设计图片带来了一些不便之处,如下图: 可以看到其边框是显示锁定状态无法修改的,当我们在左下角修改器长宽时,也会出现不可修改的情况. ...

  8. freemarker声明变量(十)

    freemarker声明变量 1.使用assign创建和替换变量 (1)新建声明变量的ftl variable.ftl: <html> <head> <meta http ...

  9. Git Compare with base,比较大文件时,长时间等待,无法加载

    问题 当使用Git比较一个大文件(几十兆数量级)版本见差异时,会一直等待加载,且内存消耗很大,导致其他进程很难执行.任务管理器中,可以看到此时的TortoiseGitMerge吃掉3G左右的内存. 原 ...

  10. RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用

    在AppiumLibrary库中,Open Application关键字用来打开一个待测试移动APP. 示例1:连接本机已经打开的appium服务端,打开一个待测试的安卓APP,指定测试平台为Andr ...