• 应用keepalived主从容灾


    一。 简单介绍keepalived

      keepalived提供基于linux高可用性负载均衡技术,基于VRRP协议(虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP))主要 用于主从结构提供服务  主从机器 必须安装keepalived  主机器 会默认给主机设置一个虚拟ip  同时将该虚拟ip和主机器的mac地址路由出去,当主机挂掉后 从机检测到主机不可达(互相发送心跳)  将虚拟ip收回  将虚拟ip和从机mac地址路由出去  其他机器访问的就是从机



    keepalive配置解释

      默认的配置文件位于 /etc/keepalived/keepalived.conf目录下

    keepalive 提供了vip转移  lvs健康检查  自定义健康检查等功能

    常用配置文件解释

    #全局配置
    global_defs {
       #出现机器挂掉通知邮件配置 可以配置多个邮件地址
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       #从哪个邮箱发出
       notification_email_from Alexandre.Cassen@firewall.loc
       #smtp服务器
       smtp_server 192.168.200.1
       #smtp连接超时时间
       smtp_connect_timeout 30
       #路由编号 每台机器不一样 发送邮件 使用这个表示表示当前主机挂了
       router_id LVS_DEVEL
    }
    #定义检测服务是否停止的脚本 该脚本只要返回任何非0的数字和字符串表示服务器存活 返回0表示服务器挂了
    vrrp_script chk_cur_tomcat {
        #自己编写该脚本 注意脚本返回0表示挂了
        script "/etc/keepalived/mytomcat_check.sh"
        #调用该脚本的检测时间 每 2s检查一次
        interval 2
        #当通过调用脚本检测失败后 vrrp_instance 配置的priority会减掉该weight  新的priority=priority-weight=95 再次失败继续减少
        weight -5
        #失败3次 才算失败 重连3次
        fall 3 
        #成功两次 才算成功 
        rise 2 
    }
    
    #配置当前ip映射到虚拟ip
    vrrp_instance tomcat135 {
        #表示主从部分的主机 是个表示 对应的是BACKUP
        state MASTER
        #虚拟ip绑定的网卡名称
        interface eth0
        #eth0的物理ip
        mcast_src_ip 192.168.58.135
        #虚拟路由编号 主从必须设置为一致
        virtual_router_id 51
        #优先级 优先级高的选举称为Master的机会高(1-254)
        priority 100
        #组播发送的间隔时间 检测心跳 两台机器配置一致
        advert_int 1
        #验证信息 使用密码 密码时1111 两台机器一致
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        #虚拟ip 给网卡绑定一个虚拟网卡 实际就是 ifconfig eth0 192.168.58.140/24 创建
        virtual_ipaddress {
            192.168.58.140
        }
        #表示诊断调用vrrp_script 
        #当master上的资源由于故障切换到backup上时候,那么如果想再切回来到master 就需要关闭backup的keepalived的服务才可以。
        track_script {
           chk_cur_tomcat 
        }
    }


    二。 实例演示

    模拟场景

       192.168.58.135 部署tomcat 端口80  安装keepalived

           配置以上脚本  mcast_src_ip 修改为当前ip192.168.58.135 

          编写脚本/etc/keepalived/mytomcat_check.sh"

    check_result=`ps -Cjava -f --no-heading | wc -l`
    if [ $check_result -eq 1 ]
    then
      #0 success
      exit 0
    else
      exit 1
    fi

      启动 keepalived service keepalived start  

      通过 ip addr 查看eth0网卡上多了一个虚拟ip 192.168.58.40



       192.168.58.136 部署tomcat 端口80  安装keepalived

        配置以上脚本  mcast_src_ip 修改为当前ip192.168.58.136 

                                 state BACKUP 表示从机

                                  priority 90 比主机略少 优先级低于主机

        编写脚本/etc/keepalived/mytomcat_check.sh和135一样

        启动 keepalived service keepalived start  

    访问 http://192.168.58.140 发现访问了 135的tomcat  停止135的tomcat 发现136的eth0网卡上多了一个虚拟ip 140 访问140 进入136的tomcat

    如果重新启动 135的tomcat 关闭136的tomcat 发现虚拟ip不能再次回到 主机135了   只能停止 136的keepalived才能重新切回到133

    同理 也可以配置 keepalived+nginx集群


  • 相关阅读:
    一起谈.NET技术,C#调试心经(续) 狼人:
    基于xmpp openfire smack开发之openfire介绍和部署[1]
    mysql学习笔记二
    使用jQuery实现的网页版的个人简历
    基于xmpp openfire smack开发之smack类库介绍和使用[2]
    基于色彩恒常( color constancy)特性的FrankleMcCann Retinex图像增强。
    The import org.cocos2dx.lib cannot be resolved
    C++编译器的递归深度与程序优化思考
    jquery实战视频教程_选项卡效果一
    编译器是怎样工作的?用lex和yacc 写一个计算器(2)
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331209.html
Copyright © 2020-2023  润新知