zoukankan      html  css  js  c++  java
  • 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地址一直处于可通状态,该过程并不影响双机系统的可用性。所以该过程仍然是一个

    无缝切换。

  • 相关阅读:
    你不知道的CSS(二) (转载)
    sass 使用
    前端常用工具介绍
    web端调用打印
    sublime 插件:Emmet
    Sublime text 安装Package Control
    Sublime Text 常用的16 个 Sublime Text 快捷键
    js中如何快速获取数组中的最大值最小值
    web app变革之rem
    前端工程需要会的技能
  • 原文地址:https://www.cnblogs.com/chenjiahe/p/5961539.html
Copyright © 2011-2022 走看看